mirror of
https://github.com/D4M13N-D3V/neroshitron.git
synced 2025-03-14 10:05:04 +00:00
44503 lines
1.7 MiB
44503 lines
1.7 MiB
var __create = Object.create;
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
var __getProtoOf = Object.getPrototypeOf;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
var __esm = (fn, res) => function __init() {
|
|
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
};
|
|
var __commonJS = (cb, mod) => function __require() {
|
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
};
|
|
var __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
};
|
|
var __copyProps = (to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames(from))
|
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
};
|
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
));
|
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
|
|
// node_modules/@tamagui/use-force-update/dist/cjs/index.js
|
|
var require_cjs = __commonJS({
|
|
"node_modules/@tamagui/use-force-update/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
isServerSide: () => isServerSide2,
|
|
useForceUpdate: () => useForceUpdate2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var import_react58 = require("react");
|
|
var isServerSide2 = typeof window > "u";
|
|
var idFn3 = /* @__PURE__ */ __name(() => {
|
|
}, "idFn");
|
|
function useForceUpdate2() {
|
|
return isServerSide2 ? idFn3 : (0, import_react58.useReducer)((x) => Math.random(), 0)[1];
|
|
}
|
|
__name(useForceUpdate2, "useForceUpdate");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/cjs/LayoutGroupContext.js
|
|
var require_LayoutGroupContext = __commonJS({
|
|
"node_modules/@tamagui/animate-presence/dist/cjs/LayoutGroupContext.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var LayoutGroupContext_exports = {};
|
|
__export2(LayoutGroupContext_exports, {
|
|
LayoutGroupContext: () => LayoutGroupContext2
|
|
});
|
|
module2.exports = __toCommonJS2(LayoutGroupContext_exports);
|
|
var import_react58 = require("react");
|
|
var LayoutGroupContext2 = (0, import_react58.createContext)({});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-constant/dist/cjs/index.js
|
|
var require_cjs2 = __commonJS({
|
|
"node_modules/@tamagui/use-constant/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
useConstant: () => useConstant2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var import_react58 = require("react");
|
|
function useConstant2(fn) {
|
|
if (typeof document > "u")
|
|
return (0, import_react58.useMemo)(() => fn(), []);
|
|
const ref = (0, import_react58.useRef)();
|
|
return ref.current || (ref.current = { v: fn() }), ref.current.v;
|
|
}
|
|
__name(useConstant2, "useConstant");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-presence/dist/cjs/PresenceContext.js
|
|
var require_PresenceContext = __commonJS({
|
|
"node_modules/@tamagui/use-presence/dist/cjs/PresenceContext.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var PresenceContext_exports = {};
|
|
__export2(PresenceContext_exports, {
|
|
PresenceContext: () => PresenceContext2,
|
|
ResetPresence: () => ResetPresence2
|
|
});
|
|
module2.exports = __toCommonJS2(PresenceContext_exports);
|
|
var import_react58 = require("react");
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var PresenceContext2 = (0, import_react58.createContext)(null);
|
|
var ResetPresence2 = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(PresenceContext2.Provider, { value: null, children: props.children }), "ResetPresence");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-presence/dist/cjs/usePresence.js
|
|
var require_usePresence = __commonJS({
|
|
"node_modules/@tamagui/use-presence/dist/cjs/usePresence.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var usePresence_exports = {};
|
|
__export2(usePresence_exports, {
|
|
isPresent: () => isPresent2,
|
|
useIsPresent: () => useIsPresent2,
|
|
usePresence: () => usePresence2
|
|
});
|
|
module2.exports = __toCommonJS2(usePresence_exports);
|
|
var import_react58 = require("react");
|
|
var import_PresenceContext2 = require_PresenceContext();
|
|
function usePresence2() {
|
|
const context = (0, import_react58.useContext)(import_PresenceContext2.PresenceContext);
|
|
if (!context)
|
|
return [true, null, context];
|
|
const { id, isPresent: isPresent22, onExitComplete, register } = context;
|
|
return (0, import_react58.useEffect)(() => register(id), []), !isPresent22 && onExitComplete ? [false, () => onExitComplete == null ? void 0 : onExitComplete(id), context] : [true, void 0, context];
|
|
}
|
|
__name(usePresence2, "usePresence");
|
|
function useIsPresent2() {
|
|
return isPresent2((0, import_react58.useContext)(import_PresenceContext2.PresenceContext));
|
|
}
|
|
__name(useIsPresent2, "useIsPresent");
|
|
function isPresent2(context) {
|
|
return context === null ? true : context.isPresent;
|
|
}
|
|
__name(isPresent2, "isPresent");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-presence/dist/cjs/index.js
|
|
var require_cjs3 = __commonJS({
|
|
"node_modules/@tamagui/use-presence/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_PresenceContext(), module2.exports);
|
|
__reExport2(src_exports, require_usePresence(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/cjs/PresenceChild.js
|
|
var require_PresenceChild = __commonJS({
|
|
"node_modules/@tamagui/animate-presence/dist/cjs/PresenceChild.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var PresenceChild_exports = {};
|
|
__export2(PresenceChild_exports, {
|
|
PresenceChild: () => PresenceChild2
|
|
});
|
|
module2.exports = __toCommonJS2(PresenceChild_exports);
|
|
var import_use_constant3 = require_cjs2();
|
|
var import_use_presence3 = require_cjs3();
|
|
var React44 = __toESM2(require("react"));
|
|
var import_react58 = require("react");
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var PresenceChild2 = React44.memo(
|
|
({
|
|
children,
|
|
initial,
|
|
isPresent: isPresent2,
|
|
onExitComplete,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
presenceAffectsLayout,
|
|
custom
|
|
}) => {
|
|
const presenceChildren = (0, import_use_constant3.useConstant)(newChildrenMap2), id = (0, import_react58.useId)() || "", context = React44.useMemo(
|
|
() => ({
|
|
id,
|
|
initial,
|
|
isPresent: isPresent2,
|
|
custom,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
onExitComplete: () => {
|
|
presenceChildren.set(id, true);
|
|
for (const isComplete of presenceChildren.values())
|
|
if (!isComplete)
|
|
return;
|
|
onExitComplete == null ? void 0 : onExitComplete();
|
|
},
|
|
register: () => (presenceChildren.set(id, false), () => presenceChildren.delete(id))
|
|
}),
|
|
/**
|
|
* If the presence of a child affects the layout of the components around it,
|
|
* we want to make a new context value to ensure they get re-rendered
|
|
* so they can detect that layout change.
|
|
*/
|
|
// @ts-expect-error its ok
|
|
presenceAffectsLayout ? void 0 : [isPresent2, exitVariant, enterVariant]
|
|
);
|
|
return React44.useMemo(() => {
|
|
presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
|
|
}, [isPresent2]), React44.useEffect(() => {
|
|
!isPresent2 && !presenceChildren.size && (onExitComplete == null ? void 0 : onExitComplete());
|
|
}, [isPresent2]), /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_use_presence3.PresenceContext.Provider, { value: context, children });
|
|
}
|
|
);
|
|
function newChildrenMap2() {
|
|
return /* @__PURE__ */ new Map();
|
|
}
|
|
__name(newChildrenMap2, "newChildrenMap");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/cjs/AnimatePresence.js
|
|
var require_AnimatePresence = __commonJS({
|
|
"node_modules/@tamagui/animate-presence/dist/cjs/AnimatePresence.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var AnimatePresence_exports = {};
|
|
__export2(AnimatePresence_exports, {
|
|
AnimatePresence: () => AnimatePresence2
|
|
});
|
|
module2.exports = __toCommonJS2(AnimatePresence_exports);
|
|
var import_use_force_update2 = require_cjs();
|
|
var import_react58 = require("react");
|
|
var import_LayoutGroupContext2 = require_LayoutGroupContext();
|
|
var import_PresenceChild2 = require_PresenceChild();
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var getChildKey2 = /* @__PURE__ */ __name((child) => child.key || "", "getChildKey");
|
|
function updateChildLookup2(children, allChildren) {
|
|
children.forEach((child) => {
|
|
const key = getChildKey2(child);
|
|
allChildren.set(key, child);
|
|
});
|
|
}
|
|
__name(updateChildLookup2, "updateChildLookup");
|
|
function onlyElements2(children) {
|
|
const filtered = [];
|
|
return import_react58.Children.forEach(children, (child) => {
|
|
(0, import_react58.isValidElement)(child) && filtered.push(child);
|
|
}), filtered;
|
|
}
|
|
__name(onlyElements2, "onlyElements");
|
|
var AnimatePresence2 = /* @__PURE__ */ __name(({
|
|
children,
|
|
enterVariant,
|
|
exitVariant,
|
|
enterExitVariant,
|
|
initial = true,
|
|
onExitComplete,
|
|
exitBeforeEnter,
|
|
presenceAffectsLayout = true,
|
|
custom
|
|
}) => {
|
|
let forceRender = (0, import_react58.useContext)(import_LayoutGroupContext2.LayoutGroupContext).forceRender ?? (0, import_use_force_update2.useForceUpdate)();
|
|
const filteredChildren = onlyElements2(children), presentChildren = (0, import_react58.useRef)(filteredChildren), allChildren = (0, import_react58.useRef)(/* @__PURE__ */ new Map()).current, exiting = (0, import_react58.useRef)(/* @__PURE__ */ new Set()).current;
|
|
updateChildLookup2(filteredChildren, allChildren);
|
|
const isInitialRender = (0, import_react58.useRef)(true);
|
|
if (isInitialRender.current)
|
|
return isInitialRender.current = false, /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, { children: filteredChildren.map((child) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_PresenceChild2.PresenceChild,
|
|
{
|
|
isPresent: true,
|
|
enterExitVariant,
|
|
exitVariant,
|
|
enterVariant,
|
|
initial: initial ? void 0 : false,
|
|
presenceAffectsLayout,
|
|
custom,
|
|
children: child
|
|
},
|
|
getChildKey2(child)
|
|
)) });
|
|
let childrenToRender = [...filteredChildren];
|
|
const presentKeys = presentChildren.current.map(getChildKey2), targetKeys = filteredChildren.map(getChildKey2), numPresent = presentKeys.length;
|
|
for (let i = 0; i < numPresent; i++) {
|
|
const key = presentKeys[i];
|
|
targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);
|
|
}
|
|
return exitBeforeEnter && exiting.size && (childrenToRender = []), exiting.forEach((key) => {
|
|
if (targetKeys.indexOf(key) !== -1)
|
|
return;
|
|
const child = allChildren.get(key);
|
|
if (!child)
|
|
return;
|
|
const insertionIndex = presentKeys.indexOf(key), exitingComponent = /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_PresenceChild2.PresenceChild,
|
|
{
|
|
isPresent: false,
|
|
onExitComplete: () => {
|
|
allChildren.delete(key), exiting.delete(key);
|
|
const removeIndex = presentChildren.current.findIndex(
|
|
(presentChild) => presentChild.key === key
|
|
);
|
|
presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete == null ? void 0 : onExitComplete());
|
|
},
|
|
presenceAffectsLayout,
|
|
enterExitVariant,
|
|
enterVariant,
|
|
exitVariant,
|
|
custom,
|
|
children: child
|
|
},
|
|
getChildKey2(child)
|
|
);
|
|
childrenToRender.splice(insertionIndex, 0, exitingComponent);
|
|
}), childrenToRender = childrenToRender.map((child) => {
|
|
const key = child.key;
|
|
return exiting.has(key) ? child : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_PresenceChild2.PresenceChild,
|
|
{
|
|
isPresent: true,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
presenceAffectsLayout,
|
|
custom,
|
|
children: child
|
|
},
|
|
getChildKey2(child)
|
|
);
|
|
}), presentChildren.current = childrenToRender, /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, { children: exiting.size ? childrenToRender : (
|
|
// biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>
|
|
childrenToRender.map((child) => (0, import_react58.cloneElement)(child))
|
|
) });
|
|
}, "AnimatePresence");
|
|
AnimatePresence2.displayName = "AnimatePresence";
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/cjs/types.js
|
|
var require_types = __commonJS({
|
|
"node_modules/@tamagui/animate-presence/dist/cjs/types.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var types_exports = {};
|
|
module2.exports = __toCommonJS2(types_exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/cjs/index.js
|
|
var require_cjs4 = __commonJS({
|
|
"node_modules/@tamagui/animate-presence/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_AnimatePresence(), module2.exports);
|
|
__reExport2(src_exports, require_cjs3(), module2.exports);
|
|
__reExport2(src_exports, require_types(), module2.exports);
|
|
__reExport2(src_exports, require_PresenceChild(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/simple-hash/dist/cjs/index.js
|
|
var require_cjs5 = __commonJS({
|
|
"node_modules/@tamagui/simple-hash/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
simpleHash: () => simpleHash2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var cache3 = /* @__PURE__ */ new Map();
|
|
var simpleHash2 = /* @__PURE__ */ __name((str, hashMin = 10) => {
|
|
if (cache3.has(str))
|
|
return cache3.get(str);
|
|
let hash = 0, valids = "";
|
|
const len = str.length;
|
|
for (let i = 0; i < len; i++) {
|
|
const char = str.charCodeAt(i);
|
|
if (hashMin !== "strict" && (char === 46 && (valids += "d0t"), isValidCSSCharCode2(char) && len <= hashMin)) {
|
|
valids += str[i];
|
|
continue;
|
|
}
|
|
hash = hashChar2(hash, str[i]);
|
|
}
|
|
const res = valids + (hash ? Math.abs(hash) : "");
|
|
return cache3.size > 1e4 && cache3.clear(), cache3.set(str, res), res;
|
|
}, "simpleHash");
|
|
var hashChar2 = /* @__PURE__ */ __name((hash, c) => Math.imul(31, hash) + c.charCodeAt(0) | 0, "hashChar");
|
|
function isValidCSSCharCode2(code) {
|
|
return (
|
|
// A-Z
|
|
code >= 65 && code <= 90 || // a-z
|
|
code >= 97 && code <= 122 || // _
|
|
code === 95 || // -
|
|
code === 45 || // 0-9
|
|
code >= 48 && code <= 57
|
|
);
|
|
}
|
|
__name(isValidCSSCharCode2, "isValidCSSCharCode");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/clamp.js
|
|
var require_clamp = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/clamp.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var clamp_exports = {};
|
|
__export2(clamp_exports, {
|
|
clamp: () => clamp3
|
|
});
|
|
module2.exports = __toCommonJS2(clamp_exports);
|
|
function clamp3(value, [min2, max2]) {
|
|
return Math.min(max2, Math.max(min2, value));
|
|
}
|
|
__name(clamp3, "clamp");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/composeEventHandlers.js
|
|
var require_composeEventHandlers = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/composeEventHandlers.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var composeEventHandlers_exports = {};
|
|
__export2(composeEventHandlers_exports, {
|
|
composeEventHandlers: () => composeEventHandlers3
|
|
});
|
|
module2.exports = __toCommonJS2(composeEventHandlers_exports);
|
|
function composeEventHandlers3(og, next, { checkDefaultPrevented = true } = {}) {
|
|
return !og || !next ? next || og || void 0 : (event) => {
|
|
if (og == null ? void 0 : og(event), !event || !(checkDefaultPrevented && "defaultPrevented" in event) || // @ts-ignore
|
|
"defaultPrevented" in event && !event.defaultPrevented)
|
|
return next == null ? void 0 : next(event);
|
|
};
|
|
}
|
|
__name(composeEventHandlers3, "composeEventHandlers");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/concatClassName.js
|
|
var require_concatClassName = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/concatClassName.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var concatClassName_exports = {};
|
|
__export2(concatClassName_exports, {
|
|
concatClassName: () => concatClassName2
|
|
});
|
|
module2.exports = __toCommonJS2(concatClassName_exports);
|
|
function concatClassName2(_cn) {
|
|
const args = arguments, usedPrefixes = [];
|
|
let final = "";
|
|
const len = args.length;
|
|
let propObjects = null;
|
|
for (let x = len; x >= 0; x--) {
|
|
const cns = args[x];
|
|
if (!cns)
|
|
continue;
|
|
if (!Array.isArray(cns) && typeof cns != "string") {
|
|
propObjects = propObjects || [], propObjects.push(cns);
|
|
continue;
|
|
}
|
|
const names = Array.isArray(cns) ? cns : cns.split(" "), numNames = names.length;
|
|
for (let i = numNames - 1; i >= 0; i--) {
|
|
const name = names[i];
|
|
if (!name || name === " ")
|
|
continue;
|
|
if (name[0] !== "_") {
|
|
final = name + " " + final;
|
|
continue;
|
|
}
|
|
const splitIndex = name.indexOf("-");
|
|
if (splitIndex < 1) {
|
|
final = name + " " + final;
|
|
continue;
|
|
}
|
|
const isMediaQuery = name[splitIndex + 1] === "_", styleKey = name.slice(1, name.lastIndexOf("-")), mediaKey = isMediaQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null, uid = mediaKey ? styleKey + mediaKey : styleKey;
|
|
if (usedPrefixes.indexOf(uid) > -1)
|
|
continue;
|
|
usedPrefixes.push(uid);
|
|
const propName = styleKey;
|
|
propName && propObjects && propObjects.some((po) => {
|
|
if (mediaKey) {
|
|
const propKey = pseudoInvert2[mediaKey];
|
|
return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
|
|
}
|
|
return po && propName in po && po[propName] !== null;
|
|
}) || (final = name + " " + final);
|
|
}
|
|
}
|
|
return final;
|
|
}
|
|
__name(concatClassName2, "concatClassName");
|
|
var pseudoInvert2 = {
|
|
hover: "hoverStyle",
|
|
focus: "focusStyle",
|
|
press: "pressStyle",
|
|
focusVisible: "focusVisibleStyle",
|
|
disabled: "disabledStyle"
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/types.js
|
|
var require_types2 = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/types.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var types_exports = {};
|
|
module2.exports = __toCommonJS2(types_exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/constants/dist/cjs/constants.js
|
|
var require_constants = __commonJS({
|
|
"node_modules/@tamagui/constants/dist/cjs/constants.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var constants_exports = {};
|
|
__export2(constants_exports, {
|
|
currentPlatform: () => currentPlatform2,
|
|
isAndroid: () => isAndroid4,
|
|
isChrome: () => isChrome3,
|
|
isClient: () => isClient5,
|
|
isIos: () => isIos2,
|
|
isServer: () => isServer3,
|
|
isTouchable: () => isTouchable3,
|
|
isWeb: () => isWeb9,
|
|
isWebTouchable: () => isWebTouchable3,
|
|
isWindowDefined: () => isWindowDefined2,
|
|
useIsomorphicLayoutEffect: () => useIsomorphicLayoutEffect3
|
|
});
|
|
module2.exports = __toCommonJS2(constants_exports);
|
|
var import_react58 = require("react");
|
|
var isWeb9 = true;
|
|
var isWindowDefined2 = typeof window < "u";
|
|
var isServer3 = isWeb9 && !isWindowDefined2;
|
|
var isClient5 = isWeb9 && isWindowDefined2;
|
|
var useIsomorphicLayoutEffect3 = isServer3 ? import_react58.useEffect : import_react58.useLayoutEffect;
|
|
var isChrome3 = typeof navigator < "u" && /Chrome/.test(navigator.userAgent || "");
|
|
var isWebTouchable3 = isClient5 && ("ontouchstart" in window || navigator.maxTouchPoints > 0);
|
|
var isTouchable3 = !isWeb9 || isWebTouchable3;
|
|
var isAndroid4 = false;
|
|
var isIos2 = false;
|
|
var currentPlatform2 = "web";
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/constants/dist/cjs/index.js
|
|
var require_cjs6 = __commonJS({
|
|
"node_modules/@tamagui/constants/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_constants(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/shouldRenderNativePlatform.js
|
|
var require_shouldRenderNativePlatform = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/shouldRenderNativePlatform.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var shouldRenderNativePlatform_exports = {};
|
|
__export2(shouldRenderNativePlatform_exports, {
|
|
shouldRenderNativePlatform: () => shouldRenderNativePlatform4
|
|
});
|
|
module2.exports = __toCommonJS2(shouldRenderNativePlatform_exports);
|
|
var import_constants46 = require_cjs6();
|
|
var ALL_PLATFORMS2 = ["web", "android", "ios"];
|
|
function shouldRenderNativePlatform4(nativeProp) {
|
|
if (!nativeProp)
|
|
return null;
|
|
const userRequestedPlatforms = resolvePlatformNames2(nativeProp);
|
|
for (const platform2 of ALL_PLATFORMS2)
|
|
if (platform2 === import_constants46.currentPlatform && userRequestedPlatforms.has(platform2))
|
|
return platform2;
|
|
return null;
|
|
}
|
|
__name(shouldRenderNativePlatform4, "shouldRenderNativePlatform");
|
|
function resolvePlatformNames2(nativeProp) {
|
|
const platforms = nativeProp === true ? ALL_PLATFORMS2 : nativeProp === false ? [] : Array.isArray(nativeProp) ? nativeProp : [nativeProp], set = new Set(platforms);
|
|
return set.has("mobile") && (set.add("android"), set.add("ios"), set.delete("mobile")), set;
|
|
}
|
|
__name(resolvePlatformNames2, "resolvePlatformNames");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/validStyleProps.js
|
|
var require_validStyleProps = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/validStyleProps.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var validStyleProps_exports = {};
|
|
__export2(validStyleProps_exports, {
|
|
stylePropsAll: () => stylePropsAll2,
|
|
stylePropsFont: () => stylePropsFont2,
|
|
stylePropsText: () => stylePropsText2,
|
|
stylePropsTextOnly: () => stylePropsTextOnly2,
|
|
stylePropsTransform: () => stylePropsTransform2,
|
|
stylePropsUnitless: () => stylePropsUnitless2,
|
|
stylePropsView: () => stylePropsView2,
|
|
tokenCategories: () => tokenCategories2,
|
|
validPseudoKeys: () => validPseudoKeys2,
|
|
validStyles: () => validStyles2
|
|
});
|
|
module2.exports = __toCommonJS2(validStyleProps_exports);
|
|
var import_constants46 = require_cjs6();
|
|
var textColors2 = {
|
|
color: true,
|
|
textDecorationColor: true,
|
|
textShadowColor: true
|
|
};
|
|
var tokenCategories2 = {
|
|
radius: {
|
|
borderRadius: true,
|
|
borderTopLeftRadius: true,
|
|
borderTopRightRadius: true,
|
|
borderBottomLeftRadius: true,
|
|
borderBottomRightRadius: true,
|
|
// logical
|
|
borderStartStartRadius: true,
|
|
borderStartEndRadius: true,
|
|
borderEndStartRadius: true,
|
|
borderEndEndRadius: true
|
|
},
|
|
size: {
|
|
width: true,
|
|
height: true,
|
|
minWidth: true,
|
|
minHeight: true,
|
|
maxWidth: true,
|
|
maxHeight: true,
|
|
blockSize: true,
|
|
minBlockSize: true,
|
|
maxBlockSize: true,
|
|
inlineSize: true,
|
|
minInlineSize: true,
|
|
maxInlineSize: true
|
|
},
|
|
zIndex: {
|
|
zIndex: true
|
|
},
|
|
color: {
|
|
backgroundColor: true,
|
|
borderColor: true,
|
|
borderBlockStartColor: true,
|
|
borderBlockEndColor: true,
|
|
borderBlockColor: true,
|
|
borderBottomColor: true,
|
|
borderInlineColor: true,
|
|
borderInlineStartColor: true,
|
|
borderInlineEndColor: true,
|
|
borderTopColor: true,
|
|
borderLeftColor: true,
|
|
borderRightColor: true,
|
|
borderEndColor: true,
|
|
borderStartColor: true,
|
|
shadowColor: true,
|
|
...textColors2,
|
|
outlineColor: true,
|
|
caretColor: true
|
|
}
|
|
};
|
|
var stylePropsUnitless2 = {
|
|
WebkitLineClamp: true,
|
|
animationIterationCount: true,
|
|
aspectRatio: true,
|
|
borderImageOutset: true,
|
|
borderImageSlice: true,
|
|
borderImageWidth: true,
|
|
columnCount: true,
|
|
flex: true,
|
|
flexGrow: true,
|
|
flexOrder: true,
|
|
flexPositive: true,
|
|
flexShrink: true,
|
|
flexNegative: true,
|
|
fontWeight: true,
|
|
gridRow: true,
|
|
gridRowEnd: true,
|
|
gridRowGap: true,
|
|
gridRowStart: true,
|
|
gridColumn: true,
|
|
gridColumnEnd: true,
|
|
gridColumnGap: true,
|
|
gridColumnStart: true,
|
|
lineClamp: true,
|
|
opacity: true,
|
|
order: true,
|
|
orphans: true,
|
|
tabSize: true,
|
|
widows: true,
|
|
zIndex: true,
|
|
zoom: true,
|
|
scale: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
scaleZ: true,
|
|
shadowOpacity: true
|
|
};
|
|
var stylePropsTransform2 = {
|
|
x: true,
|
|
y: true,
|
|
scale: true,
|
|
perspective: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
skewX: true,
|
|
skewY: true,
|
|
matrix: true,
|
|
rotate: true,
|
|
rotateY: true,
|
|
rotateX: true,
|
|
rotateZ: true
|
|
};
|
|
var stylePropsView2 = {
|
|
backfaceVisibility: true,
|
|
borderBottomEndRadius: true,
|
|
borderBottomStartRadius: true,
|
|
borderBottomWidth: true,
|
|
borderLeftWidth: true,
|
|
borderRightWidth: true,
|
|
borderBlockWidth: true,
|
|
borderBlockEndWidth: true,
|
|
borderBlockStartWidth: true,
|
|
borderInlineWidth: true,
|
|
borderInlineEndWidth: true,
|
|
borderInlineStartWidth: true,
|
|
borderStyle: true,
|
|
borderBlockStyle: true,
|
|
borderBlockEndStyle: true,
|
|
borderBlockStartStyle: true,
|
|
borderInlineStyle: true,
|
|
borderInlineEndStyle: true,
|
|
borderInlineStartStyle: true,
|
|
borderTopEndRadius: true,
|
|
borderTopStartRadius: true,
|
|
borderTopWidth: true,
|
|
borderWidth: true,
|
|
transform: true,
|
|
transformOrigin: true,
|
|
alignContent: true,
|
|
alignItems: true,
|
|
alignSelf: true,
|
|
borderEndWidth: true,
|
|
borderStartWidth: true,
|
|
bottom: true,
|
|
display: true,
|
|
end: true,
|
|
flexBasis: true,
|
|
flexDirection: true,
|
|
flexWrap: true,
|
|
gap: true,
|
|
columnGap: true,
|
|
rowGap: true,
|
|
justifyContent: true,
|
|
left: true,
|
|
margin: true,
|
|
marginBlock: true,
|
|
marginBlockEnd: true,
|
|
marginBlockStart: true,
|
|
marginInline: true,
|
|
marginInlineStart: true,
|
|
marginInlineEnd: true,
|
|
marginBottom: true,
|
|
marginEnd: true,
|
|
marginHorizontal: true,
|
|
marginLeft: true,
|
|
marginRight: true,
|
|
marginStart: true,
|
|
marginTop: true,
|
|
marginVertical: true,
|
|
overflow: true,
|
|
padding: true,
|
|
paddingBottom: true,
|
|
paddingInline: true,
|
|
paddingBlock: true,
|
|
paddingBlockStart: true,
|
|
paddingInlineEnd: true,
|
|
paddingInlineStart: true,
|
|
paddingEnd: true,
|
|
paddingHorizontal: true,
|
|
paddingLeft: true,
|
|
paddingRight: true,
|
|
paddingStart: true,
|
|
paddingTop: true,
|
|
paddingVertical: true,
|
|
position: true,
|
|
right: true,
|
|
start: true,
|
|
top: true,
|
|
inset: true,
|
|
insetBlock: true,
|
|
insetBlockEnd: true,
|
|
insetBlockStart: true,
|
|
insetInline: true,
|
|
insetInlineEnd: true,
|
|
insetInlineStart: true,
|
|
direction: true,
|
|
shadowOffset: true,
|
|
shadowRadius: true,
|
|
...tokenCategories2.color,
|
|
...tokenCategories2.radius,
|
|
...tokenCategories2.size,
|
|
...tokenCategories2.radius,
|
|
...stylePropsTransform2,
|
|
...stylePropsUnitless2,
|
|
// RN doesn't support specific border styles per-edge
|
|
borderBottomStyle: true,
|
|
borderTopStyle: true,
|
|
borderLeftStyle: true,
|
|
borderRightStyle: true,
|
|
caretColor: true,
|
|
scrollbarWidth: true,
|
|
overflowX: true,
|
|
overflowY: true,
|
|
userSelect: true,
|
|
cursor: true,
|
|
contain: true,
|
|
pointerEvents: true,
|
|
boxSizing: true,
|
|
boxShadow: true,
|
|
outlineStyle: true,
|
|
outlineOffset: true,
|
|
outlineWidth: true,
|
|
touchAction: true,
|
|
filter: true,
|
|
backdropFilter: true,
|
|
mixBlendMode: true,
|
|
backgroundImage: true,
|
|
backgroundOrigin: true,
|
|
backgroundPosition: true,
|
|
backgroundRepeat: true,
|
|
backgroundSize: true,
|
|
backgroundColor: true,
|
|
backgroundClip: true,
|
|
backgroundBlendMode: true,
|
|
backgroundAttachment: true,
|
|
background: true,
|
|
clipPath: true,
|
|
transformStyle: true,
|
|
mask: true,
|
|
maskImage: true,
|
|
textEmphasis: true,
|
|
borderImage: true,
|
|
float: true,
|
|
content: true,
|
|
overflowBlock: true,
|
|
overflowInline: true,
|
|
maskBorder: true,
|
|
maskBorderMode: true,
|
|
maskBorderOutset: true,
|
|
maskBorderRepeat: true,
|
|
maskBorderSlice: true,
|
|
maskBorderSource: true,
|
|
maskBorderWidth: true,
|
|
maskClip: true,
|
|
maskComposite: true,
|
|
maskMode: true,
|
|
maskOrigin: true,
|
|
maskPosition: true,
|
|
maskRepeat: true,
|
|
maskSize: true,
|
|
maskType: true,
|
|
...import_constants46.isAndroid ? { elevationAndroid: true } : {}
|
|
};
|
|
var stylePropsFont2 = {
|
|
fontFamily: true,
|
|
fontSize: true,
|
|
fontStyle: true,
|
|
fontWeight: true,
|
|
letterSpacing: true,
|
|
lineHeight: true,
|
|
textTransform: true
|
|
};
|
|
var stylePropsTextOnly2 = {
|
|
...stylePropsFont2,
|
|
textAlign: true,
|
|
textDecorationLine: true,
|
|
textDecorationStyle: true,
|
|
...textColors2,
|
|
textShadowOffset: true,
|
|
textShadowRadius: true,
|
|
userSelect: true,
|
|
selectable: true,
|
|
verticalAlign: true,
|
|
whiteSpace: true,
|
|
wordWrap: true,
|
|
textOverflow: true,
|
|
textDecorationDistance: true,
|
|
cursor: true,
|
|
WebkitLineClamp: true,
|
|
WebkitBoxOrient: true
|
|
};
|
|
var stylePropsText2 = {
|
|
...stylePropsView2,
|
|
...stylePropsTextOnly2
|
|
};
|
|
var stylePropsAll2 = stylePropsText2;
|
|
var validPseudoKeys2 = {
|
|
enterStyle: true,
|
|
exitStyle: true,
|
|
hoverStyle: true,
|
|
pressStyle: true,
|
|
focusStyle: true,
|
|
disabledStyle: true,
|
|
focusVisibleStyle: true
|
|
};
|
|
var validStyles2 = {
|
|
...validPseudoKeys2,
|
|
...stylePropsView2
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/withStaticProperties.js
|
|
var require_withStaticProperties = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/withStaticProperties.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var withStaticProperties_exports = {};
|
|
__export2(withStaticProperties_exports, {
|
|
withStaticProperties: () => withStaticProperties7
|
|
});
|
|
module2.exports = __toCommonJS2(withStaticProperties_exports);
|
|
var import_react58 = require("react");
|
|
var Decorated2 = Symbol();
|
|
var withStaticProperties7 = /* @__PURE__ */ __name((component, staticProps) => {
|
|
const next = (() => {
|
|
if (component[Decorated2]) {
|
|
const _ = (0, import_react58.forwardRef)(
|
|
(props, ref) => (0, import_react58.createElement)(component, { ...props, ref })
|
|
);
|
|
for (const key in component) {
|
|
const v = component[key];
|
|
_[key] = v && typeof v == "object" ? { ...v } : v;
|
|
}
|
|
}
|
|
return component;
|
|
})();
|
|
return Object.assign(next, staticProps), next[Decorated2] = true, next;
|
|
}, "withStaticProperties");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/helpers/dist/cjs/index.js
|
|
var require_cjs7 = __commonJS({
|
|
"node_modules/@tamagui/helpers/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_cjs5(), module2.exports);
|
|
__reExport2(src_exports, require_clamp(), module2.exports);
|
|
__reExport2(src_exports, require_composeEventHandlers(), module2.exports);
|
|
__reExport2(src_exports, require_concatClassName(), module2.exports);
|
|
__reExport2(src_exports, require_types2(), module2.exports);
|
|
__reExport2(src_exports, require_shouldRenderNativePlatform(), module2.exports);
|
|
__reExport2(src_exports, require_validStyleProps(), module2.exports);
|
|
__reExport2(src_exports, require_withStaticProperties(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-event/dist/cjs/useGet.js
|
|
var require_useGet = __commonJS({
|
|
"node_modules/@tamagui/use-event/dist/cjs/useGet.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var useGet_exports = {};
|
|
__export2(useGet_exports, {
|
|
useGet: () => useGet6
|
|
});
|
|
module2.exports = __toCommonJS2(useGet_exports);
|
|
var import_constants46 = require_cjs6();
|
|
var import_react58 = require("react");
|
|
function useGet6(currentValue, initialValue2, forwardToFunction) {
|
|
const curRef = (0, import_react58.useRef)(initialValue2 ?? currentValue);
|
|
return (0, import_constants46.useIsomorphicLayoutEffect)(() => {
|
|
curRef.current = currentValue;
|
|
}), (0, import_react58.useCallback)(
|
|
forwardToFunction ? (...args) => {
|
|
var _a;
|
|
return (_a = curRef.current) == null ? void 0 : _a.apply(null, args);
|
|
} : () => curRef.current,
|
|
[]
|
|
);
|
|
}
|
|
__name(useGet6, "useGet");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-event/dist/cjs/useEvent.js
|
|
var require_useEvent = __commonJS({
|
|
"node_modules/@tamagui/use-event/dist/cjs/useEvent.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var useEvent_exports = {};
|
|
__export2(useEvent_exports, {
|
|
useEvent: () => useEvent13
|
|
});
|
|
module2.exports = __toCommonJS2(useEvent_exports);
|
|
var import_useGet2 = require_useGet();
|
|
function useEvent13(callback) {
|
|
return (0, import_useGet2.useGet)(callback, defaultValue2, true);
|
|
}
|
|
__name(useEvent13, "useEvent");
|
|
var defaultValue2 = /* @__PURE__ */ __name(() => {
|
|
throw new Error("Cannot call an event handler while rendering.");
|
|
}, "defaultValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-event/dist/cjs/index.js
|
|
var require_cjs8 = __commonJS({
|
|
"node_modules/@tamagui/use-event/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_useEvent(), module2.exports);
|
|
__reExport2(src_exports, require_useGet(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-controllable-state/dist/cjs/useControllableState.js
|
|
var require_useControllableState = __commonJS({
|
|
"node_modules/@tamagui/use-controllable-state/dist/cjs/useControllableState.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var useControllableState_exports = {};
|
|
__export2(useControllableState_exports, {
|
|
useControllableState: () => useControllableState2
|
|
});
|
|
module2.exports = __toCommonJS2(useControllableState_exports);
|
|
var import_use_event4 = require_cjs8();
|
|
var import_react58 = require("react");
|
|
var emptyCallbackFn2 = /* @__PURE__ */ __name((_) => _(), "emptyCallbackFn");
|
|
function useControllableState2({
|
|
prop,
|
|
defaultProp,
|
|
onChange,
|
|
strategy = "prop-wins",
|
|
preventUpdate,
|
|
transition
|
|
}) {
|
|
const [state, setState] = (0, import_react58.useState)(prop ?? defaultProp), previous = (0, import_react58.useRef)(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = (0, import_use_event4.useEvent)(onChange || idFn3), transitionFn = transition ? import_react58.startTransition : emptyCallbackFn2;
|
|
(0, import_react58.useEffect)(() => {
|
|
prop !== void 0 && (previous.current = prop, transitionFn(() => {
|
|
setState(prop);
|
|
}));
|
|
}, [prop]), (0, import_react58.useEffect)(() => {
|
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
}, [onChangeCb, state, propWins]);
|
|
const setter = (0, import_use_event4.useEvent)((next) => {
|
|
if (!preventUpdate)
|
|
if (propWins) {
|
|
const nextValue = typeof next == "function" ? next(previous.current) : next;
|
|
onChangeCb(nextValue);
|
|
} else
|
|
transitionFn(() => {
|
|
setState(next);
|
|
});
|
|
});
|
|
return [value, setter];
|
|
}
|
|
__name(useControllableState2, "useControllableState");
|
|
var idFn3 = /* @__PURE__ */ __name(() => {
|
|
}, "idFn");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-controllable-state/dist/cjs/index.js
|
|
var require_cjs9 = __commonJS({
|
|
"node_modules/@tamagui/use-controllable-state/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_useControllableState(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/collapsible/dist/cjs/Collapsible.js
|
|
var require_Collapsible = __commonJS({
|
|
"node_modules/@tamagui/collapsible/dist/cjs/Collapsible.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Collapsible_exports = {};
|
|
__export2(Collapsible_exports, {
|
|
Collapsible: () => Collapsible,
|
|
CollapsibleContent: () => CollapsibleContent,
|
|
CollapsibleContentFrame: () => CollapsibleContentFrame,
|
|
CollapsibleTrigger: () => CollapsibleTrigger,
|
|
CollapsibleTriggerFrame: () => CollapsibleTriggerFrame
|
|
});
|
|
module2.exports = __toCommonJS2(Collapsible_exports);
|
|
var import_animate_presence6 = require_cjs4();
|
|
var import_helpers28 = require_cjs7();
|
|
var import_use_controllable_state16 = require_cjs9();
|
|
var import_web23 = require("@tamagui/core");
|
|
var React44 = __toESM2(require("react"));
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var COLLAPSIBLE_NAME = "Collapsible";
|
|
var { Provider: CollapsibleProvider, useStyledContext: useCollapsibleContext } = (0, import_web23.createStyledContext)();
|
|
var _Collapsible = React44.forwardRef(
|
|
(props, forwardedRef) => {
|
|
const {
|
|
__scopeCollapsible,
|
|
open: openProp,
|
|
defaultOpen,
|
|
disabled,
|
|
onOpenChange,
|
|
...collapsibleProps
|
|
} = props, [open = false, setOpen] = (0, import_use_controllable_state16.useControllableState)({
|
|
prop: openProp,
|
|
defaultProp: defaultOpen,
|
|
onChange: onOpenChange
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
CollapsibleProvider,
|
|
{
|
|
scope: __scopeCollapsible,
|
|
disabled,
|
|
contentId: React44.useId(),
|
|
open,
|
|
onOpenToggle: React44.useCallback(
|
|
() => setOpen((prevOpen) => !prevOpen),
|
|
[setOpen]
|
|
),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_web23.Stack,
|
|
{
|
|
"data-state": getState6(open),
|
|
"data-disabled": disabled ? "" : void 0,
|
|
...collapsibleProps,
|
|
ref: forwardedRef
|
|
}
|
|
)
|
|
}
|
|
);
|
|
}
|
|
);
|
|
_Collapsible.displayName = COLLAPSIBLE_NAME;
|
|
var TRIGGER_NAME6 = "CollapsibleTrigger";
|
|
var CollapsibleTriggerFrame = (0, import_web23.styled)(import_web23.Stack, {
|
|
name: TRIGGER_NAME6,
|
|
tag: "button"
|
|
});
|
|
var CollapsibleTrigger = CollapsibleTriggerFrame.styleable(
|
|
(props, forwardedRef) => {
|
|
const { __scopeCollapsible, children, ...triggerProps } = props, context = useCollapsibleContext(__scopeCollapsible);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
CollapsibleTriggerFrame,
|
|
{
|
|
"aria-controls": context.contentId,
|
|
"aria-expanded": context.open || false,
|
|
"data-state": getState6(context.open),
|
|
"data-disabled": context.disabled ? "" : void 0,
|
|
disabled: context.disabled,
|
|
...triggerProps,
|
|
ref: forwardedRef,
|
|
onPress: (0, import_helpers28.composeEventHandlers)(props.onPress, context.onOpenToggle),
|
|
children: typeof children == "function" ? children({ open: context.open }) : children
|
|
}
|
|
);
|
|
}
|
|
);
|
|
CollapsibleTrigger.displayName = TRIGGER_NAME6;
|
|
var CONTENT_NAME5 = "CollapsibleContent";
|
|
var CollapsibleContentFrame = (0, import_web23.styled)(import_web23.Stack, {
|
|
name: CONTENT_NAME5
|
|
});
|
|
var CollapsibleContent = CollapsibleContentFrame.styleable(
|
|
(props, forwardedRef) => {
|
|
const {
|
|
forceMount,
|
|
children,
|
|
// @ts-expect-error
|
|
__scopeCollapsible,
|
|
...contentProps
|
|
} = props, context = useCollapsibleContext(__scopeCollapsible);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_animate_presence6.AnimatePresence, { ...contentProps, children: forceMount || context.open ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(CollapsibleContentFrame, { ref: forwardedRef, ...contentProps, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_animate_presence6.ResetPresence, { children }) }) : null });
|
|
}
|
|
);
|
|
CollapsibleContent.displayName = CONTENT_NAME5;
|
|
function getState6(open) {
|
|
return open ? "open" : "closed";
|
|
}
|
|
__name(getState6, "getState");
|
|
var Collapsible = (0, import_helpers28.withStaticProperties)(_Collapsible, {
|
|
Trigger: CollapsibleTrigger,
|
|
Content: CollapsibleContent
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/collapsible/dist/cjs/index.js
|
|
var require_cjs10 = __commonJS({
|
|
"node_modules/@tamagui/collapsible/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_Collapsible(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/compose-refs/dist/cjs/compose-refs.js
|
|
var require_compose_refs = __commonJS({
|
|
"node_modules/@tamagui/compose-refs/dist/cjs/compose-refs.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var compose_refs_exports = {};
|
|
__export2(compose_refs_exports, {
|
|
composeRefs: () => composeRefs2,
|
|
setRef: () => setRef2,
|
|
useComposedRefs: () => useComposedRefs4
|
|
});
|
|
module2.exports = __toCommonJS2(compose_refs_exports);
|
|
var React44 = __toESM2(require("react"));
|
|
function setRef2(ref, value) {
|
|
typeof ref == "function" ? ref(value) : ref && (ref.current = value);
|
|
}
|
|
__name(setRef2, "setRef");
|
|
function composeRefs2(...refs) {
|
|
return (node) => refs.forEach((ref) => setRef2(ref, node));
|
|
}
|
|
__name(composeRefs2, "composeRefs");
|
|
function useComposedRefs4(...refs) {
|
|
return React44.useCallback(composeRefs2(...refs), refs);
|
|
}
|
|
__name(useComposedRefs4, "useComposedRefs");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/compose-refs/dist/cjs/index.js
|
|
var require_cjs11 = __commonJS({
|
|
"node_modules/@tamagui/compose-refs/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_compose_refs(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/collection/dist/cjs/Collection.js
|
|
var require_Collection = __commonJS({
|
|
"node_modules/@tamagui/collection/dist/cjs/Collection.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Collection_exports = {};
|
|
__export2(Collection_exports, {
|
|
createCollection: () => createCollection2
|
|
});
|
|
module2.exports = __toCommonJS2(Collection_exports);
|
|
var import_compose_refs25 = require_cjs11();
|
|
var import_constants46 = require_cjs6();
|
|
var import_core61 = require("@tamagui/core");
|
|
var import_react58 = __toESM2(require("react"));
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
function createCollection2(name) {
|
|
const { Provider: CollectionProviderImpl, useStyledContext: useCollectionContext } = (0, import_core61.createStyledContext)({
|
|
collectionRef: { current: null },
|
|
itemMap: /* @__PURE__ */ new Map()
|
|
}), CollectionProvider = /* @__PURE__ */ __name((props) => {
|
|
const { __scopeCollection, children } = props, ref = import_react58.default.useRef(null), itemMap = import_react58.default.useRef(/* @__PURE__ */ new Map()).current;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
CollectionProviderImpl,
|
|
{
|
|
scope: __scopeCollection,
|
|
itemMap,
|
|
collectionRef: ref,
|
|
children
|
|
}
|
|
);
|
|
}, "CollectionProvider");
|
|
CollectionProvider.displayName = "CollectionProvider";
|
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot", CollectionSlot = import_react58.default.forwardRef((props, forwardedRef) => {
|
|
const { __scopeCollection, children } = props, context = useCollectionContext(__scopeCollection), composedRefs = (0, import_compose_refs25.useComposedRefs)(forwardedRef, context.collectionRef);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_core61.Slot, { ref: composedRefs, children });
|
|
});
|
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot", ITEM_DATA_ATTR = "data-collection-item", CollectionItemSlot = import_react58.default.forwardRef((props, forwardedRef) => {
|
|
const { __scopeCollection, children, ...itemData } = props, ref = import_react58.default.useRef(null), composedRefs = (0, import_compose_refs25.useComposedRefs)(forwardedRef, ref), context = useCollectionContext(__scopeCollection);
|
|
return import_react58.default.useEffect(() => (context.itemMap.set(ref, { ref, ...itemData }), () => void context.itemMap.delete(ref))), /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_core61.Slot, { [ITEM_DATA_ATTR]: "", ref: composedRefs, children });
|
|
});
|
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
function useCollection2(__scopeCollection) {
|
|
const context = useCollectionContext(__scopeCollection);
|
|
return import_react58.default.useCallback(() => {
|
|
if (!import_constants46.isWeb)
|
|
return [];
|
|
const collectionNode = context.collectionRef.current;
|
|
if (!collectionNode)
|
|
return [];
|
|
const orderedNodes = Array.from(
|
|
collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`)
|
|
);
|
|
return Array.from(context.itemMap.values()).sort(
|
|
(a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)
|
|
);
|
|
}, [context.collectionRef, context.itemMap]);
|
|
}
|
|
__name(useCollection2, "useCollection");
|
|
return [
|
|
{ Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },
|
|
useCollection2
|
|
];
|
|
}
|
|
__name(createCollection2, "createCollection");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/collection/dist/cjs/index.js
|
|
var require_cjs12 = __commonJS({
|
|
"node_modules/@tamagui/collection/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_Collection(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/getElevation.js
|
|
var require_getElevation = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/getElevation.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var getElevation_exports = {};
|
|
__export2(getElevation_exports, {
|
|
getElevation: () => getElevation2,
|
|
getSizedElevation: () => getSizedElevation2
|
|
});
|
|
module2.exports = __toCommonJS2(getElevation_exports);
|
|
var import_core61 = require("@tamagui/core");
|
|
var getElevation2 = /* @__PURE__ */ __name((size6, extras) => {
|
|
if (!size6)
|
|
return;
|
|
const { tokens: tokens2 } = extras, token = tokens2.size[size6], sizeNum = (0, import_core61.isVariable)(token) ? +token.val : size6;
|
|
return getSizedElevation2(sizeNum, extras);
|
|
}, "getElevation");
|
|
var getSizedElevation2 = /* @__PURE__ */ __name((val, { theme, tokens: tokens2 }) => {
|
|
let num = 0;
|
|
if (val === true) {
|
|
const val2 = (0, import_core61.getVariableValue)(tokens2.size.true);
|
|
typeof val2 == "number" ? num = val2 : num = 10;
|
|
} else
|
|
num = +val;
|
|
if (num === 0)
|
|
return;
|
|
const [height, shadowRadius] = [Math.round(num / 4 + 1), Math.round(num / 2 + 2)];
|
|
return {
|
|
shadowColor: theme.shadowColor,
|
|
shadowRadius,
|
|
shadowOffset: { height, width: 0 },
|
|
...import_core61.isAndroid ? {
|
|
elevationAndroid: 2 * height
|
|
} : {}
|
|
};
|
|
}, "getSizedElevation");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/Stacks.js
|
|
var require_Stacks = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/Stacks.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Stacks_exports = {};
|
|
__export2(Stacks_exports, {
|
|
XStack: () => XStack2,
|
|
YStack: () => YStack2,
|
|
ZStack: () => ZStack2,
|
|
fullscreenStyle: () => fullscreenStyle2
|
|
});
|
|
module2.exports = __toCommonJS2(Stacks_exports);
|
|
var import_core61 = require("@tamagui/core");
|
|
var import_getElevation3 = require_getElevation();
|
|
var fullscreenStyle2 = {
|
|
position: "absolute",
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 0
|
|
};
|
|
var getInset2 = /* @__PURE__ */ __name((val) => val && typeof val == "object" ? val : {
|
|
top: val,
|
|
left: val,
|
|
bottom: val,
|
|
right: val
|
|
}, "getInset");
|
|
var variants2 = {
|
|
fullscreen: {
|
|
true: fullscreenStyle2
|
|
},
|
|
elevation: {
|
|
"...size": import_getElevation3.getElevation,
|
|
":number": import_getElevation3.getElevation
|
|
},
|
|
inset: getInset2
|
|
};
|
|
var YStack2 = (0, import_core61.styled)(import_core61.View, {
|
|
flexDirection: "column",
|
|
variants: variants2
|
|
});
|
|
YStack2.displayName = "YStack";
|
|
var XStack2 = (0, import_core61.styled)(import_core61.View, {
|
|
flexDirection: "row",
|
|
variants: variants2
|
|
});
|
|
XStack2.displayName = "XStack";
|
|
var ZStack2 = (0, import_core61.styled)(
|
|
YStack2,
|
|
{
|
|
position: "relative"
|
|
},
|
|
{
|
|
neverFlatten: true,
|
|
isZStack: true
|
|
}
|
|
);
|
|
ZStack2.displayName = "ZStack";
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/get-token/dist/cjs/index.js
|
|
var require_cjs13 = __commonJS({
|
|
"node_modules/@tamagui/get-token/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
getRadius: () => getRadius,
|
|
getSize: () => getSize2,
|
|
getSpace: () => getSpace2,
|
|
getTokenRelative: () => getTokenRelative2,
|
|
stepTokenUpOrDown: () => stepTokenUpOrDown2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var import_web23 = require("@tamagui/core");
|
|
var defaultOptions2 = {
|
|
shift: 0,
|
|
bounds: [0]
|
|
};
|
|
var getSize2 = /* @__PURE__ */ __name((size6, options) => getTokenRelative2("size", size6, options), "getSize");
|
|
var getSpace2 = /* @__PURE__ */ __name((space2, options) => getTokenRelative2("space", space2, options), "getSpace");
|
|
var getRadius = /* @__PURE__ */ __name((radius2, options) => getTokenRelative2("radius", radius2, options), "getRadius");
|
|
var cacheVariables2 = {};
|
|
var cacheWholeVariables2 = {};
|
|
var cacheKeys2 = {};
|
|
var cacheWholeKeys2 = {};
|
|
var stepTokenUpOrDown2 = /* @__PURE__ */ __name((type, current, options = defaultOptions2) => {
|
|
var _a, _b;
|
|
const tokens2 = (0, import_web23.getTokens)({ prefixed: true })[type];
|
|
if (!(type in cacheVariables2)) {
|
|
cacheKeys2[type] = [], cacheVariables2[type] = [], cacheWholeKeys2[type] = [], cacheWholeVariables2[type] = [];
|
|
const sorted = Object.keys(tokens2).map((k) => tokens2[k]).sort((a, b) => a.val - b.val);
|
|
for (const token of sorted)
|
|
cacheKeys2[type].push(token.key), cacheVariables2[type].push(token);
|
|
const sortedExcludingHalfSteps = sorted.filter((x) => !x.key.endsWith(".5"));
|
|
for (const token of sortedExcludingHalfSteps)
|
|
cacheWholeKeys2[type].push(token.key), cacheWholeVariables2[type].push(token);
|
|
}
|
|
const isString = typeof current == "string", tokensOrdered = (options.excludeHalfSteps ? isString ? cacheWholeKeys2 : cacheWholeVariables2 : isString ? cacheKeys2 : cacheVariables2)[type], min2 = ((_a = options.bounds) == null ? void 0 : _a[0]) ?? 0, max2 = ((_b = options.bounds) == null ? void 0 : _b[1]) ?? tokensOrdered.length - 1, currentIndex = tokensOrdered.indexOf(current);
|
|
let shift4 = options.shift || 0;
|
|
shift4 && (current === "$true" || (0, import_web23.isVariable)(current) && current.name === "true") && (shift4 += shift4 > 0 ? 1 : -1);
|
|
const index3 = Math.min(max2, Math.max(min2, currentIndex + shift4)), found = tokensOrdered[index3];
|
|
return (typeof found == "string" ? tokens2[found] : found) || tokens2.$true;
|
|
}, "stepTokenUpOrDown");
|
|
var getTokenRelative2 = stepTokenUpOrDown2;
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/get-button-sized/dist/cjs/index.js
|
|
var require_cjs14 = __commonJS({
|
|
"node_modules/@tamagui/get-button-sized/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
getButtonSized: () => getButtonSized2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var import_get_token16 = require_cjs13();
|
|
var getButtonSized2 = /* @__PURE__ */ __name((val, { tokens: tokens2, props }) => {
|
|
if (!val || props.circular)
|
|
return;
|
|
if (typeof val == "number")
|
|
return {
|
|
paddingHorizontal: val * 0.25,
|
|
height: val,
|
|
borderRadius: props.circular ? 1e5 : val * 0.2
|
|
};
|
|
const xSize = (0, import_get_token16.getSpace)(val), radiusToken = tokens2.radius[val] ?? tokens2.radius.$true;
|
|
return {
|
|
paddingHorizontal: xSize,
|
|
height: val,
|
|
borderRadius: props.circular ? 1e5 : radiusToken
|
|
};
|
|
}, "getButtonSized");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/variants.js
|
|
var require_variants = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/variants.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var variants_exports = {};
|
|
__export2(variants_exports, {
|
|
bordered: () => bordered2,
|
|
circular: () => circular2,
|
|
elevate: () => elevate2,
|
|
focusTheme: () => focusTheme2,
|
|
hoverTheme: () => hoverTheme2,
|
|
padded: () => padded2,
|
|
pressTheme: () => pressTheme2,
|
|
radiused: () => radiused2
|
|
});
|
|
module2.exports = __toCommonJS2(variants_exports);
|
|
var import_getElevation3 = require_getElevation();
|
|
var elevate2 = {
|
|
true: (_, extras) => (0, import_getElevation3.getElevation)(extras.props.size, extras)
|
|
};
|
|
var bordered2 = /* @__PURE__ */ __name((val, { props }) => ({
|
|
// TODO size it with size in '...size'
|
|
borderWidth: typeof val == "number" ? val : 1,
|
|
borderColor: "$borderColor",
|
|
...props.hoverTheme && {
|
|
hoverStyle: {
|
|
borderColor: "$borderColorHover"
|
|
}
|
|
},
|
|
...props.pressTheme && {
|
|
pressStyle: {
|
|
borderColor: "$borderColorPress"
|
|
}
|
|
},
|
|
...props.focusTheme && {
|
|
focusStyle: {
|
|
borderColor: "$borderColorFocus"
|
|
}
|
|
}
|
|
}), "bordered");
|
|
var padded2 = {
|
|
true: (_, extras) => {
|
|
const { tokens: tokens2, props } = extras;
|
|
return {
|
|
padding: tokens2.space[props.size] || tokens2.space.$true
|
|
};
|
|
}
|
|
};
|
|
var radiused2 = {
|
|
true: (_, extras) => {
|
|
const { tokens: tokens2, props } = extras;
|
|
return {
|
|
borderRadius: tokens2.radius[props.size] || tokens2.radius.$true
|
|
};
|
|
}
|
|
};
|
|
var circularStyle2 = {
|
|
borderRadius: 1e5,
|
|
padding: 0
|
|
};
|
|
var circular2 = {
|
|
true: (_, { props, tokens: tokens2 }) => {
|
|
if (!("size" in props))
|
|
return circularStyle2;
|
|
const size6 = typeof props.size == "number" ? props.size : tokens2.size[props.size];
|
|
return {
|
|
...circularStyle2,
|
|
width: size6,
|
|
height: size6,
|
|
maxWidth: size6,
|
|
maxHeight: size6,
|
|
minWidth: size6,
|
|
minHeight: size6
|
|
};
|
|
}
|
|
};
|
|
var hoverTheme2 = {
|
|
true: {
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover",
|
|
borderColor: "$borderColorHover"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
var pressTheme2 = {
|
|
true: {
|
|
cursor: "pointer",
|
|
pressStyle: {
|
|
backgroundColor: "$backgroundPress",
|
|
borderColor: "$borderColorPress"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
var focusTheme2 = {
|
|
true: {
|
|
focusStyle: {
|
|
backgroundColor: "$backgroundFocus",
|
|
borderColor: "$borderColorFocus"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/SizableStack.js
|
|
var require_SizableStack = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/SizableStack.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var SizableStack_exports = {};
|
|
__export2(SizableStack_exports, {
|
|
SizableStack: () => SizableStack2
|
|
});
|
|
module2.exports = __toCommonJS2(SizableStack_exports);
|
|
var import_core61 = require("@tamagui/core");
|
|
var import_get_button_sized6 = require_cjs14();
|
|
var import_Stacks3 = require_Stacks();
|
|
var import_variants3 = require_variants();
|
|
var SizableStack2 = (0, import_core61.styled)(import_Stacks3.XStack, {
|
|
name: "SizableStack",
|
|
variants: {
|
|
unstyled: {
|
|
true: {
|
|
hoverTheme: false,
|
|
pressTheme: false,
|
|
focusTheme: false,
|
|
elevate: false,
|
|
bordered: false
|
|
}
|
|
},
|
|
hoverTheme: import_variants3.hoverTheme,
|
|
pressTheme: import_variants3.pressTheme,
|
|
focusTheme: import_variants3.focusTheme,
|
|
circular: import_variants3.circular,
|
|
elevate: import_variants3.elevate,
|
|
bordered: import_variants3.bordered,
|
|
size: {
|
|
"...size": (val, extras) => (0, import_get_button_sized6.getButtonSized)(val, extras)
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/ThemeableStack.js
|
|
var require_ThemeableStack = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/ThemeableStack.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var ThemeableStack_exports = {};
|
|
__export2(ThemeableStack_exports, {
|
|
ThemeableStack: () => ThemeableStack2,
|
|
themeableVariants: () => themeableVariants2
|
|
});
|
|
module2.exports = __toCommonJS2(ThemeableStack_exports);
|
|
var import_core61 = require("@tamagui/core");
|
|
var import_Stacks3 = require_Stacks();
|
|
var import_variants3 = require_variants();
|
|
var chromelessStyle2 = {
|
|
backgroundColor: "transparent",
|
|
borderColor: "transparent",
|
|
shadowColor: "transparent",
|
|
hoverStyle: {
|
|
borderColor: "transparent"
|
|
}
|
|
};
|
|
var themeableVariants2 = {
|
|
backgrounded: {
|
|
true: {
|
|
backgroundColor: "$background"
|
|
}
|
|
},
|
|
radiused: import_variants3.radiused,
|
|
hoverTheme: import_variants3.hoverTheme,
|
|
pressTheme: import_variants3.pressTheme,
|
|
focusTheme: import_variants3.focusTheme,
|
|
circular: import_variants3.circular,
|
|
padded: import_variants3.padded,
|
|
elevate: import_variants3.elevate,
|
|
bordered: import_variants3.bordered,
|
|
transparent: {
|
|
true: {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
chromeless: {
|
|
true: chromelessStyle2,
|
|
all: {
|
|
...chromelessStyle2,
|
|
hoverStyle: chromelessStyle2,
|
|
pressStyle: chromelessStyle2,
|
|
focusStyle: chromelessStyle2
|
|
}
|
|
}
|
|
};
|
|
var ThemeableStack2 = (0, import_core61.styled)(import_Stacks3.YStack, {
|
|
variants: themeableVariants2
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/NestingContext.js
|
|
var require_NestingContext = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/NestingContext.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var NestingContext_exports = {};
|
|
__export2(NestingContext_exports, {
|
|
ButtonNestingContext: () => ButtonNestingContext2
|
|
});
|
|
module2.exports = __toCommonJS2(NestingContext_exports);
|
|
var import_react58 = require("react");
|
|
var ButtonNestingContext2 = (0, import_react58.createContext)(false);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/cjs/index.js
|
|
var require_cjs15 = __commonJS({
|
|
"node_modules/@tamagui/stacks/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_Stacks(), module2.exports);
|
|
__reExport2(src_exports, require_SizableStack(), module2.exports);
|
|
__reExport2(src_exports, require_ThemeableStack(), module2.exports);
|
|
__reExport2(src_exports, require_NestingContext(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/get-font-sized/dist/cjs/index.js
|
|
var require_cjs16 = __commonJS({
|
|
"node_modules/@tamagui/get-font-sized/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
getFontSized: () => getFontSized2
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var import_core61 = require("@tamagui/core");
|
|
var getFontSized2 = /* @__PURE__ */ __name((sizeTokenIn = "$true", { font, fontFamily, props }) => {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
if (!font) {
|
|
process.env.NODE_ENV === "development" && console.warn(
|
|
"Warning: No font found in props",
|
|
{ ...props },
|
|
'For a sized text component, you either need to set fontFamily directly, or through the "defaultFont" setting in your createTamagui config.'
|
|
);
|
|
return;
|
|
}
|
|
const sizeToken = sizeTokenIn === "$true" ? getDefaultSizeToken2(font) : sizeTokenIn, fontSize = font.size[sizeToken], lineHeight = (_a = font.lineHeight) == null ? void 0 : _a[sizeToken], fontWeight = (_b = font.weight) == null ? void 0 : _b[sizeToken], letterSpacing = (_c = font.letterSpacing) == null ? void 0 : _c[sizeToken], textTransform = (_d = font.transform) == null ? void 0 : _d[sizeToken], fontStyle = props.fontStyle ?? ((_e = font.style) == null ? void 0 : _e[sizeToken]), style = {
|
|
color: props.color ?? ((_f = font.color) == null ? void 0 : _f[sizeToken]),
|
|
fontStyle,
|
|
textTransform,
|
|
fontFamily,
|
|
fontWeight,
|
|
letterSpacing,
|
|
fontSize,
|
|
lineHeight
|
|
};
|
|
return process.env.NODE_ENV === "development" && props.debug && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} getFontSized", sizeTokenIn, sizeToken), console.info({ style, props, font }), console.groupEnd()), style;
|
|
}, "getFontSized");
|
|
var cache3 = /* @__PURE__ */ new WeakMap();
|
|
function getDefaultSizeToken2(font) {
|
|
if (typeof font == "object" && cache3.has(font))
|
|
return cache3.get(font);
|
|
const sizeTokens = "$true" in font.size ? font.size : (0, import_core61.getTokens)().size, sizeDefault = sizeTokens.$true, sizeDefaultSpecific = sizeDefault ? Object.keys(sizeTokens).find(
|
|
(x) => x !== "$true" && sizeTokens[x].val === sizeDefault.val
|
|
) : null;
|
|
return !sizeDefault || !sizeDefaultSpecific ? (process.env.NODE_ENV === "development" && console.warn(`No default size is set in your tokens for the "true" key, fonts will be inconsistent.
|
|
|
|
Fix this by having consistent tokens across fonts and sizes and setting a true key for your size tokens, or
|
|
set true keys for all your font tokens: "size", "lineHeight", "fontStyle", etc.`), Object.keys(font.size)[3]) : (cache3.set(font, sizeDefaultSpecific), sizeDefaultSpecific);
|
|
}
|
|
__name(getDefaultSizeToken2, "getDefaultSizeToken");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/SizableText.js
|
|
var require_SizableText = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/SizableText.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var SizableText_exports = {};
|
|
__export2(SizableText_exports, {
|
|
SizableText: () => SizableText2
|
|
});
|
|
module2.exports = __toCommonJS2(SizableText_exports);
|
|
var import_get_font_sized5 = require_cjs16();
|
|
var import_web23 = require("@tamagui/core");
|
|
var SizableText2 = (0, import_web23.styled)(import_web23.Text, {
|
|
name: "SizableText",
|
|
fontFamily: "$body",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
color: "$color"
|
|
}
|
|
},
|
|
size: import_get_font_sized5.getFontSized
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
SizableText2.staticConfig.variants.fontFamily = {
|
|
"...": (_, extras) => {
|
|
const size6 = extras.props.size || "$true";
|
|
return (0, import_get_font_sized5.getFontSized)(size6, extras);
|
|
}
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/Paragraph.js
|
|
var require_Paragraph = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/Paragraph.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Paragraph_exports = {};
|
|
__export2(Paragraph_exports, {
|
|
Paragraph: () => Paragraph2
|
|
});
|
|
module2.exports = __toCommonJS2(Paragraph_exports);
|
|
var import_web23 = require("@tamagui/core");
|
|
var import_SizableText2 = require_SizableText();
|
|
var Paragraph2 = (0, import_web23.styled)(import_SizableText2.SizableText, {
|
|
name: "Paragraph",
|
|
tag: "p",
|
|
userSelect: "auto",
|
|
color: "$color",
|
|
size: "$true",
|
|
whiteSpace: "normal"
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/Headings.js
|
|
var require_Headings = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/Headings.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Headings_exports = {};
|
|
__export2(Headings_exports, {
|
|
H1: () => H12,
|
|
H2: () => H22,
|
|
H3: () => H32,
|
|
H4: () => H42,
|
|
H5: () => H52,
|
|
H6: () => H62,
|
|
Heading: () => Heading2
|
|
});
|
|
module2.exports = __toCommonJS2(Headings_exports);
|
|
var import_web23 = require("@tamagui/core");
|
|
var import_Paragraph2 = require_Paragraph();
|
|
var Heading2 = (0, import_web23.styled)(import_Paragraph2.Paragraph, {
|
|
tag: "span",
|
|
name: "Heading",
|
|
accessibilityRole: "header",
|
|
fontFamily: "$heading",
|
|
size: "$8",
|
|
margin: 0
|
|
});
|
|
var H12 = (0, import_web23.styled)(Heading2, {
|
|
name: "H1",
|
|
tag: "h1",
|
|
size: "$10"
|
|
});
|
|
var H22 = (0, import_web23.styled)(Heading2, {
|
|
name: "H2",
|
|
tag: "h2",
|
|
size: "$9"
|
|
});
|
|
var H32 = (0, import_web23.styled)(Heading2, {
|
|
name: "H3",
|
|
tag: "h3",
|
|
size: "$8"
|
|
});
|
|
var H42 = (0, import_web23.styled)(Heading2, {
|
|
name: "H4",
|
|
tag: "h4",
|
|
size: "$7"
|
|
});
|
|
var H52 = (0, import_web23.styled)(Heading2, {
|
|
name: "H5",
|
|
tag: "h5",
|
|
size: "$6"
|
|
});
|
|
var H62 = (0, import_web23.styled)(Heading2, {
|
|
name: "H6",
|
|
tag: "h6",
|
|
size: "$5"
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/wrapChildrenInText.js
|
|
var require_wrapChildrenInText = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/wrapChildrenInText.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var wrapChildrenInText_exports = {};
|
|
__export2(wrapChildrenInText_exports, {
|
|
wrapChildrenInText: () => wrapChildrenInText2
|
|
});
|
|
module2.exports = __toCommonJS2(wrapChildrenInText_exports);
|
|
var import_react58 = __toESM2(require("react"));
|
|
var import_jsx_runtime63 = (
|
|
// so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
|
|
require("react/jsx-runtime")
|
|
);
|
|
function wrapChildrenInText2(TextComponent, propsIn, extraProps) {
|
|
const {
|
|
children,
|
|
textProps,
|
|
size: size6,
|
|
noTextWrap,
|
|
color: color2,
|
|
fontFamily,
|
|
fontSize,
|
|
fontWeight,
|
|
letterSpacing,
|
|
textAlign,
|
|
fontStyle,
|
|
maxFontSizeMultiplier
|
|
} = propsIn;
|
|
if (noTextWrap || !children)
|
|
return [children];
|
|
const props = {
|
|
...extraProps
|
|
};
|
|
return color2 && (props.color = color2), fontFamily && (props.fontFamily = fontFamily), fontSize && (props.fontSize = fontSize), fontWeight && (props.fontWeight = fontWeight), letterSpacing && (props.letterSpacing = letterSpacing), textAlign && (props.textAlign = textAlign), size6 && (props.size = size6), fontStyle && (props.fontStyle = fontStyle), maxFontSizeMultiplier && (props.maxFontSizeMultiplier = maxFontSizeMultiplier), import_react58.default.Children.toArray(children).map((child, index3) => typeof child == "string" ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(TextComponent, { ...props, ...textProps, children: child }, index3) : child);
|
|
}
|
|
__name(wrapChildrenInText2, "wrapChildrenInText");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/types.js
|
|
var require_types3 = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/types.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var types_exports = {};
|
|
module2.exports = __toCommonJS2(types_exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/cjs/index.js
|
|
var require_cjs17 = __commonJS({
|
|
"node_modules/@tamagui/text/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_SizableText(), module2.exports);
|
|
__reExport2(src_exports, require_Paragraph(), module2.exports);
|
|
__reExport2(src_exports, require_Headings(), module2.exports);
|
|
__reExport2(src_exports, require_wrapChildrenInText(), module2.exports);
|
|
__reExport2(src_exports, require_types3(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-direction/dist/cjs/useDirection.js
|
|
var require_useDirection = __commonJS({
|
|
"node_modules/@tamagui/use-direction/dist/cjs/useDirection.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var useDirection_exports = {};
|
|
__export2(useDirection_exports, {
|
|
DirectionProvider: () => DirectionProvider,
|
|
Provider: () => Provider,
|
|
useDirection: () => useDirection2
|
|
});
|
|
module2.exports = __toCommonJS2(useDirection_exports);
|
|
var React44 = __toESM2(require("react"));
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var DirectionContext2 = React44.createContext(void 0);
|
|
var DirectionProvider = /* @__PURE__ */ __name((props) => {
|
|
const { dir, children } = props;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DirectionContext2.Provider, { value: dir, children });
|
|
}, "DirectionProvider");
|
|
function useDirection2(localDir) {
|
|
const globalDir = React44.useContext(DirectionContext2);
|
|
return localDir || globalDir || "ltr";
|
|
}
|
|
__name(useDirection2, "useDirection");
|
|
var Provider = DirectionProvider;
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/use-direction/dist/cjs/index.js
|
|
var require_cjs18 = __commonJS({
|
|
"node_modules/@tamagui/use-direction/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_useDirection(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/accordion/dist/cjs/Accordion.js
|
|
var require_Accordion = __commonJS({
|
|
"node_modules/@tamagui/accordion/dist/cjs/Accordion.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var Accordion_exports = {};
|
|
__export2(Accordion_exports, {
|
|
Accordion: () => Accordion
|
|
});
|
|
module2.exports = __toCommonJS2(Accordion_exports);
|
|
var import_collapsible = require_cjs10();
|
|
var import_collection2 = require_cjs12();
|
|
var import_compose_refs25 = require_cjs11();
|
|
var import_constants46 = require_cjs6();
|
|
var import_helpers28 = require_cjs7();
|
|
var import_stacks27 = require_cjs15();
|
|
var import_text9 = require_cjs17();
|
|
var import_use_controllable_state16 = require_cjs9();
|
|
var import_use_direction5 = require_cjs18();
|
|
var import_web23 = require("@tamagui/core");
|
|
var import_web24 = require("@tamagui/core");
|
|
var React44 = __toESM2(require("react"));
|
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
var ACCORDION_NAME = "Accordion";
|
|
var ACCORDION_KEYS = ["Home", "End", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight"];
|
|
var [Collection2, useCollection2] = (0, import_collection2.createCollection)(ACCORDION_NAME);
|
|
var ACCORDION_CONTEXT = "Accordion";
|
|
var AccordionComponent = React44.forwardRef((props, forwardedRef) => {
|
|
const { type, ...accordionProps } = props, singleProps = accordionProps, multipleProps = accordionProps;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Collection2.Provider, { __scopeCollection: props.__scopeAccordion || ACCORDION_CONTEXT, children: type === "multiple" ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });
|
|
});
|
|
AccordionComponent.displayName = ACCORDION_NAME;
|
|
AccordionComponent.propTypes = {
|
|
type(props) {
|
|
const value = props.value || props.defaultValue;
|
|
return props.type && !["single", "multiple"].includes(props.type) ? new Error(
|
|
"Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`."
|
|
) : props.type === "multiple" && typeof value == "string" ? new Error(
|
|
"Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`."
|
|
) : props.type === "single" && Array.isArray(value) ? new Error(
|
|
"Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`."
|
|
) : null;
|
|
}
|
|
};
|
|
var { Provider: AccordionValueProvider, useStyledContext: useAccordionValueContext } = (0, import_web24.createStyledContext)();
|
|
var {
|
|
Provider: AccordionCollapsibleProvider,
|
|
useStyledContext: useAccordionCollapsibleContext
|
|
} = (0, import_web24.createStyledContext)();
|
|
var AccordionImplSingle = React44.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
value: valueProp,
|
|
defaultValue: defaultValue2,
|
|
control,
|
|
onValueChange = /* @__PURE__ */ __name(() => {
|
|
}, "onValueChange"),
|
|
collapsible = false,
|
|
...accordionSingleProps
|
|
} = props, [value, setValue] = (0, import_use_controllable_state16.useControllableState)({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2 || "",
|
|
onChange: onValueChange
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionValueProvider,
|
|
{
|
|
scope: props.__scopeAccordion,
|
|
value: value ? [value] : [],
|
|
onItemOpen: setValue,
|
|
onItemClose: React44.useCallback(
|
|
() => collapsible && setValue(""),
|
|
[setValue, collapsible]
|
|
),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionCollapsibleProvider,
|
|
{
|
|
scope: props.__scopeAccordion,
|
|
collapsible,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef })
|
|
}
|
|
)
|
|
}
|
|
);
|
|
});
|
|
var AccordionImplMultiple = React44.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
value: valueProp,
|
|
defaultValue: defaultValue2,
|
|
onValueChange = /* @__PURE__ */ __name(() => {
|
|
}, "onValueChange"),
|
|
...accordionMultipleProps
|
|
} = props, [value, setValue] = (0, import_use_controllable_state16.useControllableState)({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2 || [],
|
|
onChange: onValueChange
|
|
}), handleItemOpen = React44.useCallback(
|
|
(itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),
|
|
[setValue]
|
|
), handleItemClose = React44.useCallback(
|
|
(itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),
|
|
[setValue]
|
|
);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionValueProvider,
|
|
{
|
|
scope: props.__scopeAccordion,
|
|
value: value || [],
|
|
onItemOpen: handleItemOpen,
|
|
onItemClose: handleItemClose,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })
|
|
}
|
|
);
|
|
});
|
|
var { Provider: AccordionImplProvider, useStyledContext: useAccordionContext } = (0, import_web24.createStyledContext)();
|
|
var AccordionImpl = React44.forwardRef(
|
|
(props, forwardedRef) => {
|
|
const {
|
|
__scopeAccordion,
|
|
disabled,
|
|
dir,
|
|
orientation = "vertical",
|
|
...accordionProps
|
|
} = props, accordionRef = React44.useRef(null), composedRef = (0, import_compose_refs25.useComposedRefs)(accordionRef, forwardedRef), getItems = useCollection2(__scopeAccordion || ACCORDION_CONTEXT), isDirectionLTR = (0, import_use_direction5.useDirection)(dir) === "ltr", handleKeyDown = (0, import_helpers28.composeEventHandlers)(
|
|
props.onKeyDown,
|
|
(event) => {
|
|
var _a;
|
|
if (!ACCORDION_KEYS.includes(event.key))
|
|
return;
|
|
const target = event.target, triggerCollection = getItems().filter((item) => {
|
|
var _a2;
|
|
return !((_a2 = item.ref.current) == null ? void 0 : _a2.disabled);
|
|
}), triggerIndex = triggerCollection.findIndex(
|
|
(item) => item.ref.current === target
|
|
), triggerCount = triggerCollection.length;
|
|
if (triggerIndex === -1)
|
|
return;
|
|
event.preventDefault();
|
|
let nextIndex = triggerIndex;
|
|
const homeIndex = 0, endIndex = triggerCount - 1, moveNext = /* @__PURE__ */ __name(() => {
|
|
nextIndex = triggerIndex + 1, nextIndex > endIndex && (nextIndex = homeIndex);
|
|
}, "moveNext"), movePrev = /* @__PURE__ */ __name(() => {
|
|
nextIndex = triggerIndex - 1, nextIndex < homeIndex && (nextIndex = endIndex);
|
|
}, "movePrev");
|
|
switch (event.key) {
|
|
case "Home":
|
|
nextIndex = homeIndex;
|
|
break;
|
|
case "End":
|
|
nextIndex = endIndex;
|
|
break;
|
|
case "ArrowRight":
|
|
orientation === "horizontal" && (isDirectionLTR ? moveNext() : movePrev());
|
|
break;
|
|
case "ArrowDown":
|
|
orientation === "vertical" && moveNext();
|
|
break;
|
|
case "ArrowLeft":
|
|
orientation === "horizontal" && (isDirectionLTR ? movePrev() : moveNext());
|
|
break;
|
|
case "ArrowUp":
|
|
orientation === "vertical" && movePrev();
|
|
break;
|
|
}
|
|
const clampedIndex = nextIndex % triggerCount;
|
|
(_a = triggerCollection[clampedIndex].ref.current) == null ? void 0 : _a.focus();
|
|
}
|
|
);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionImplProvider,
|
|
{
|
|
scope: __scopeAccordion,
|
|
disabled,
|
|
direction: dir,
|
|
orientation,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Collection2.Slot, { __scopeCollection: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_stacks27.YStack,
|
|
{
|
|
"data-orientation": orientation,
|
|
ref: composedRef,
|
|
...accordionProps,
|
|
...import_constants46.isWeb && {
|
|
onKeyDown: handleKeyDown
|
|
}
|
|
}
|
|
) })
|
|
}
|
|
);
|
|
}
|
|
);
|
|
var ITEM_NAME3 = "AccordionItem";
|
|
var { Provider: AccordionItemProvider, useStyledContext: useAccordionItemContext } = (0, import_web24.createStyledContext)();
|
|
var AccordionItem = React44.forwardRef(
|
|
(props, forwardedRef) => {
|
|
const { __scopeAccordion, value, ...accordionItemProps } = props, accordionContext = useAccordionContext(__scopeAccordion), valueContext = useAccordionValueContext(__scopeAccordion), triggerId = React44.useId(), open = value && valueContext.value.includes(value) || false, disabled = accordionContext.disabled || props.disabled;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionItemProvider,
|
|
{
|
|
scope: __scopeAccordion,
|
|
open,
|
|
disabled,
|
|
triggerId,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_collapsible.Collapsible,
|
|
{
|
|
"data-orientation": accordionContext.orientation,
|
|
"data-state": open ? "open" : "closed",
|
|
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
...accordionItemProps,
|
|
ref: forwardedRef,
|
|
disabled,
|
|
open,
|
|
onOpenChange: (open2) => {
|
|
open2 ? valueContext.onItemOpen(value) : valueContext.onItemClose(value);
|
|
}
|
|
}
|
|
)
|
|
}
|
|
);
|
|
}
|
|
);
|
|
AccordionItem.displayName = ITEM_NAME3;
|
|
var HEADER_NAME = "AccordionHeader";
|
|
var AccordionHeader = React44.forwardRef(
|
|
(props, forwardedRef) => {
|
|
const { __scopeAccordion, ...headerProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_text9.H1,
|
|
{
|
|
"data-orientation": accordionContext.orientation,
|
|
"data-state": getState6(itemContext.open),
|
|
"data-disabled": itemContext.disabled ? "" : void 0,
|
|
...headerProps,
|
|
ref: forwardedRef
|
|
}
|
|
);
|
|
}
|
|
);
|
|
AccordionHeader.displayName = HEADER_NAME;
|
|
var AccordionTriggerFrame = (0, import_web24.styled)(import_collapsible.Collapsible.Trigger, {
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
cursor: "pointer",
|
|
backgroundColor: "$background",
|
|
borderColor: "$borderColor",
|
|
borderWidth: 1,
|
|
padding: "$true",
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover"
|
|
},
|
|
focusStyle: {
|
|
backgroundColor: "$backgroundFocus"
|
|
},
|
|
pressStyle: {
|
|
backgroundColor: "$backgroundPress"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var AccordionTrigger = AccordionTriggerFrame.styleable(function(props, forwardedRef) {
|
|
const { __scopeAccordion, ...triggerProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion), collapsibleContext = useAccordionCollapsibleContext(__scopeAccordion);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Collection2.ItemSlot, { __scopeCollection: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionTriggerFrame,
|
|
{
|
|
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
"aria-disabled": itemContext.open && !collapsibleContext.collapsible || void 0,
|
|
"data-orientation": accordionContext.orientation,
|
|
id: itemContext.triggerId,
|
|
...triggerProps,
|
|
ref: forwardedRef
|
|
}
|
|
) });
|
|
});
|
|
var AccordionContentFrame = (0, import_web24.styled)(import_collapsible.Collapsible.Content, {
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
padding: "$true",
|
|
backgroundColor: "$background"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var AccordionContent = AccordionContentFrame.styleable(function(props, forwardedRef) {
|
|
const { __scopeAccordion, ...contentProps } = props, accordionContext = useAccordionContext(__scopeAccordion), itemContext = useAccordionItemContext(__scopeAccordion);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
AccordionContentFrame,
|
|
{
|
|
role: "region",
|
|
"aria-labelledby": itemContext.triggerId,
|
|
"data-orientation": accordionContext.orientation,
|
|
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
...contentProps,
|
|
ref: forwardedRef
|
|
}
|
|
);
|
|
});
|
|
var HeightAnimator = import_web23.View.styleable((props, ref) => {
|
|
const itemContext = useAccordionItemContext(), { children, ...rest } = props, [height, setHeight] = React44.useState(0);
|
|
React44.useEffect(() => {
|
|
itemContext.open || setHeight(0);
|
|
}, [itemContext.open]);
|
|
const onLayout = (0, import_web23.useEvent)(({ nativeEvent }) => {
|
|
nativeEvent.layout.height && setHeight(nativeEvent.layout.height);
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_web23.View, { ref, height, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
import_web23.View,
|
|
{
|
|
position: "absolute",
|
|
onLayout,
|
|
children
|
|
}
|
|
) });
|
|
});
|
|
function getState6(open) {
|
|
return open ? "open" : "closed";
|
|
}
|
|
__name(getState6, "getState");
|
|
var Accordion = (0, import_helpers28.withStaticProperties)(AccordionComponent, {
|
|
Trigger: AccordionTrigger,
|
|
Header: AccordionHeader,
|
|
Content: AccordionContent,
|
|
Item: AccordionItem,
|
|
HeightAnimator
|
|
});
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/accordion/dist/cjs/index.js
|
|
var require_cjs19 = __commonJS({
|
|
"node_modules/@tamagui/accordion/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_Accordion(), module2.exports);
|
|
}
|
|
});
|
|
|
|
// node_modules/aria-hidden/dist/es5/index.js
|
|
var require_es5 = __commonJS({
|
|
"node_modules/aria-hidden/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.suppressOthers = exports2.supportsInert = exports2.inertOthers = exports2.hideOthers = void 0;
|
|
var getDefaultParent = /* @__PURE__ */ __name(function(originalTarget) {
|
|
if (typeof document === "undefined") {
|
|
return null;
|
|
}
|
|
var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;
|
|
return sampleTarget.ownerDocument.body;
|
|
}, "getDefaultParent");
|
|
var counterMap2 = /* @__PURE__ */ new WeakMap();
|
|
var uncontrolledNodes = /* @__PURE__ */ new WeakMap();
|
|
var markerMap2 = {};
|
|
var lockCount2 = 0;
|
|
var unwrapHost2 = /* @__PURE__ */ __name(function(node) {
|
|
return node && (node.host || unwrapHost2(node.parentNode));
|
|
}, "unwrapHost");
|
|
var correctTargets = /* @__PURE__ */ __name(function(parent, targets) {
|
|
return targets.map(function(target) {
|
|
if (parent.contains(target)) {
|
|
return target;
|
|
}
|
|
var correctedTarget = unwrapHost2(target);
|
|
if (correctedTarget && parent.contains(correctedTarget)) {
|
|
return correctedTarget;
|
|
}
|
|
console.error("aria-hidden", target, "in not contained inside", parent, ". Doing nothing");
|
|
return null;
|
|
}).filter(function(x) {
|
|
return Boolean(x);
|
|
});
|
|
}, "correctTargets");
|
|
var applyAttributeToOthers2 = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName, controlAttribute) {
|
|
var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
|
|
if (!markerMap2[markerName]) {
|
|
markerMap2[markerName] = /* @__PURE__ */ new WeakMap();
|
|
}
|
|
var markerCounter = markerMap2[markerName];
|
|
var hiddenNodes = [];
|
|
var elementsToKeep = /* @__PURE__ */ new Set();
|
|
var elementsToStop = new Set(targets);
|
|
var keep = /* @__PURE__ */ __name(function(el) {
|
|
if (!el || elementsToKeep.has(el)) {
|
|
return;
|
|
}
|
|
elementsToKeep.add(el);
|
|
keep(el.parentNode);
|
|
}, "keep");
|
|
targets.forEach(keep);
|
|
var deep = /* @__PURE__ */ __name(function(parent) {
|
|
if (!parent || elementsToStop.has(parent)) {
|
|
return;
|
|
}
|
|
Array.prototype.forEach.call(parent.children, function(node) {
|
|
if (elementsToKeep.has(node)) {
|
|
deep(node);
|
|
} else {
|
|
try {
|
|
var attr2 = node.getAttribute(controlAttribute);
|
|
var alreadyHidden = attr2 !== null && attr2 !== "false";
|
|
var counterValue = (counterMap2.get(node) || 0) + 1;
|
|
var markerValue = (markerCounter.get(node) || 0) + 1;
|
|
counterMap2.set(node, counterValue);
|
|
markerCounter.set(node, markerValue);
|
|
hiddenNodes.push(node);
|
|
if (counterValue === 1 && alreadyHidden) {
|
|
uncontrolledNodes.set(node, true);
|
|
}
|
|
if (markerValue === 1) {
|
|
node.setAttribute(markerName, "true");
|
|
}
|
|
if (!alreadyHidden) {
|
|
node.setAttribute(controlAttribute, "true");
|
|
}
|
|
} catch (e) {
|
|
console.error("aria-hidden: cannot operate on ", node, e);
|
|
}
|
|
}
|
|
});
|
|
}, "deep");
|
|
deep(parentNode);
|
|
elementsToKeep.clear();
|
|
lockCount2++;
|
|
return function() {
|
|
hiddenNodes.forEach(function(node) {
|
|
var counterValue = counterMap2.get(node) - 1;
|
|
var markerValue = markerCounter.get(node) - 1;
|
|
counterMap2.set(node, counterValue);
|
|
markerCounter.set(node, markerValue);
|
|
if (!counterValue) {
|
|
if (!uncontrolledNodes.has(node)) {
|
|
node.removeAttribute(controlAttribute);
|
|
}
|
|
uncontrolledNodes.delete(node);
|
|
}
|
|
if (!markerValue) {
|
|
node.removeAttribute(markerName);
|
|
}
|
|
});
|
|
lockCount2--;
|
|
if (!lockCount2) {
|
|
counterMap2 = /* @__PURE__ */ new WeakMap();
|
|
counterMap2 = /* @__PURE__ */ new WeakMap();
|
|
uncontrolledNodes = /* @__PURE__ */ new WeakMap();
|
|
markerMap2 = {};
|
|
}
|
|
};
|
|
}, "applyAttributeToOthers");
|
|
var hideOthers2 = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {
|
|
if (markerName === void 0) {
|
|
markerName = "data-aria-hidden";
|
|
}
|
|
var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);
|
|
var activeParentNode = parentNode || getDefaultParent(originalTarget);
|
|
if (!activeParentNode) {
|
|
return function() {
|
|
return null;
|
|
};
|
|
}
|
|
targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll("[aria-live]")));
|
|
return applyAttributeToOthers2(targets, activeParentNode, markerName, "aria-hidden");
|
|
}, "hideOthers");
|
|
exports2.hideOthers = hideOthers2;
|
|
var inertOthers = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {
|
|
if (markerName === void 0) {
|
|
markerName = "data-inert-ed";
|
|
}
|
|
var activeParentNode = parentNode || getDefaultParent(originalTarget);
|
|
if (!activeParentNode) {
|
|
return function() {
|
|
return null;
|
|
};
|
|
}
|
|
return applyAttributeToOthers2(originalTarget, activeParentNode, markerName, "inert");
|
|
}, "inertOthers");
|
|
exports2.inertOthers = inertOthers;
|
|
var supportsInert2 = /* @__PURE__ */ __name(function() {
|
|
return typeof HTMLElement !== "undefined" && HTMLElement.prototype.hasOwnProperty("inert");
|
|
}, "supportsInert");
|
|
exports2.supportsInert = supportsInert2;
|
|
var suppressOthers = /* @__PURE__ */ __name(function(originalTarget, parentNode, markerName) {
|
|
if (markerName === void 0) {
|
|
markerName = "data-suppressed";
|
|
}
|
|
return ((0, exports2.supportsInert)() ? exports2.inertOthers : exports2.hideOthers)(originalTarget, parentNode, markerName);
|
|
}, "suppressOthers");
|
|
exports2.suppressOthers = suppressOthers;
|
|
}
|
|
});
|
|
|
|
// node_modules/tslib/tslib.es6.mjs
|
|
var tslib_es6_exports = {};
|
|
__export(tslib_es6_exports, {
|
|
__addDisposableResource: () => __addDisposableResource,
|
|
__assign: () => __assign,
|
|
__asyncDelegator: () => __asyncDelegator,
|
|
__asyncGenerator: () => __asyncGenerator,
|
|
__asyncValues: () => __asyncValues,
|
|
__await: () => __await,
|
|
__awaiter: () => __awaiter,
|
|
__classPrivateFieldGet: () => __classPrivateFieldGet,
|
|
__classPrivateFieldIn: () => __classPrivateFieldIn,
|
|
__classPrivateFieldSet: () => __classPrivateFieldSet,
|
|
__createBinding: () => __createBinding,
|
|
__decorate: () => __decorate,
|
|
__disposeResources: () => __disposeResources,
|
|
__esDecorate: () => __esDecorate,
|
|
__exportStar: () => __exportStar,
|
|
__extends: () => __extends,
|
|
__generator: () => __generator,
|
|
__importDefault: () => __importDefault,
|
|
__importStar: () => __importStar,
|
|
__makeTemplateObject: () => __makeTemplateObject,
|
|
__metadata: () => __metadata,
|
|
__param: () => __param,
|
|
__propKey: () => __propKey,
|
|
__read: () => __read,
|
|
__rest: () => __rest,
|
|
__runInitializers: () => __runInitializers,
|
|
__setFunctionName: () => __setFunctionName,
|
|
__spread: () => __spread,
|
|
__spreadArray: () => __spreadArray,
|
|
__spreadArrays: () => __spreadArrays,
|
|
__values: () => __values,
|
|
default: () => tslib_es6_default
|
|
});
|
|
function __extends(d, b) {
|
|
if (typeof b !== "function" && b !== null)
|
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
extendStatics(d, b);
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
__name(__, "__");
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
}
|
|
function __rest(s, e) {
|
|
var t = {};
|
|
for (var p in s)
|
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
t[p] = s[p];
|
|
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
t[p[i]] = s[p[i]];
|
|
}
|
|
return t;
|
|
}
|
|
function __decorate(decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
r = Reflect.decorate(decorators, target, key, desc);
|
|
else
|
|
for (var i = decorators.length - 1; i >= 0; i--)
|
|
if (d = decorators[i])
|
|
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
}
|
|
function __param(paramIndex, decorator) {
|
|
return function(target, key) {
|
|
decorator(target, key, paramIndex);
|
|
};
|
|
}
|
|
function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
function accept(f) {
|
|
if (f !== void 0 && typeof f !== "function")
|
|
throw new TypeError("Function expected");
|
|
return f;
|
|
}
|
|
__name(accept, "accept");
|
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
var _, done = false;
|
|
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
var context = {};
|
|
for (var p in contextIn)
|
|
context[p] = p === "access" ? {} : contextIn[p];
|
|
for (var p in contextIn.access)
|
|
context.access[p] = contextIn.access[p];
|
|
context.addInitializer = function(f) {
|
|
if (done)
|
|
throw new TypeError("Cannot add initializers after decoration has completed");
|
|
extraInitializers.push(accept(f || null));
|
|
};
|
|
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
if (kind === "accessor") {
|
|
if (result === void 0)
|
|
continue;
|
|
if (result === null || typeof result !== "object")
|
|
throw new TypeError("Object expected");
|
|
if (_ = accept(result.get))
|
|
descriptor.get = _;
|
|
if (_ = accept(result.set))
|
|
descriptor.set = _;
|
|
if (_ = accept(result.init))
|
|
initializers.unshift(_);
|
|
} else if (_ = accept(result)) {
|
|
if (kind === "field")
|
|
initializers.unshift(_);
|
|
else
|
|
descriptor[key] = _;
|
|
}
|
|
}
|
|
if (target)
|
|
Object.defineProperty(target, contextIn.name, descriptor);
|
|
done = true;
|
|
}
|
|
function __runInitializers(thisArg, initializers, value) {
|
|
var useValue = arguments.length > 2;
|
|
for (var i = 0; i < initializers.length; i++) {
|
|
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
}
|
|
return useValue ? value : void 0;
|
|
}
|
|
function __propKey(x) {
|
|
return typeof x === "symbol" ? x : "".concat(x);
|
|
}
|
|
function __setFunctionName(f, name, prefix) {
|
|
if (typeof name === "symbol")
|
|
name = name.description ? "[".concat(name.description, "]") : "";
|
|
return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
|
|
}
|
|
function __metadata(metadataKey, metadataValue) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
return Reflect.metadata(metadataKey, metadataValue);
|
|
}
|
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
function adopt(value) {
|
|
return value instanceof P ? value : new P(function(resolve) {
|
|
resolve(value);
|
|
});
|
|
}
|
|
__name(adopt, "adopt");
|
|
return new (P || (P = Promise))(function(resolve, reject) {
|
|
function fulfilled(value) {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
__name(fulfilled, "fulfilled");
|
|
function rejected(value) {
|
|
try {
|
|
step(generator["throw"](value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
__name(rejected, "rejected");
|
|
function step(result) {
|
|
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
}
|
|
__name(step, "step");
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
}
|
|
function __generator(thisArg, body) {
|
|
var _ = { label: 0, sent: function() {
|
|
if (t[0] & 1)
|
|
throw t[1];
|
|
return t[1];
|
|
}, trys: [], ops: [] }, f, y, t, g;
|
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
return this;
|
|
}), g;
|
|
function verb(n) {
|
|
return function(v) {
|
|
return step([n, v]);
|
|
};
|
|
}
|
|
__name(verb, "verb");
|
|
function step(op) {
|
|
if (f)
|
|
throw new TypeError("Generator is already executing.");
|
|
while (g && (g = 0, op[0] && (_ = 0)), _)
|
|
try {
|
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
return t;
|
|
if (y = 0, t)
|
|
op = [op[0] & 2, t.value];
|
|
switch (op[0]) {
|
|
case 0:
|
|
case 1:
|
|
t = op;
|
|
break;
|
|
case 4:
|
|
_.label++;
|
|
return { value: op[1], done: false };
|
|
case 5:
|
|
_.label++;
|
|
y = op[1];
|
|
op = [0];
|
|
continue;
|
|
case 7:
|
|
op = _.ops.pop();
|
|
_.trys.pop();
|
|
continue;
|
|
default:
|
|
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
_ = 0;
|
|
continue;
|
|
}
|
|
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
_.label = op[1];
|
|
break;
|
|
}
|
|
if (op[0] === 6 && _.label < t[1]) {
|
|
_.label = t[1];
|
|
t = op;
|
|
break;
|
|
}
|
|
if (t && _.label < t[2]) {
|
|
_.label = t[2];
|
|
_.ops.push(op);
|
|
break;
|
|
}
|
|
if (t[2])
|
|
_.ops.pop();
|
|
_.trys.pop();
|
|
continue;
|
|
}
|
|
op = body.call(thisArg, _);
|
|
} catch (e) {
|
|
op = [6, e];
|
|
y = 0;
|
|
} finally {
|
|
f = t = 0;
|
|
}
|
|
if (op[0] & 5)
|
|
throw op[1];
|
|
return { value: op[0] ? op[1] : void 0, done: true };
|
|
}
|
|
__name(step, "step");
|
|
}
|
|
function __exportStar(m, o) {
|
|
for (var p in m)
|
|
if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
|
|
__createBinding(o, m, p);
|
|
}
|
|
function __values(o) {
|
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
if (m)
|
|
return m.call(o);
|
|
if (o && typeof o.length === "number")
|
|
return {
|
|
next: function() {
|
|
if (o && i >= o.length)
|
|
o = void 0;
|
|
return { value: o && o[i++], done: !o };
|
|
}
|
|
};
|
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
}
|
|
function __read(o, n) {
|
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
if (!m)
|
|
return o;
|
|
var i = m.call(o), r, ar = [], e;
|
|
try {
|
|
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
|
|
ar.push(r.value);
|
|
} catch (error2) {
|
|
e = { error: error2 };
|
|
} finally {
|
|
try {
|
|
if (r && !r.done && (m = i["return"]))
|
|
m.call(i);
|
|
} finally {
|
|
if (e)
|
|
throw e.error;
|
|
}
|
|
}
|
|
return ar;
|
|
}
|
|
function __spread() {
|
|
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
ar = ar.concat(__read(arguments[i]));
|
|
return ar;
|
|
}
|
|
function __spreadArrays() {
|
|
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
|
|
s += arguments[i].length;
|
|
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
r[k] = a[j];
|
|
return r;
|
|
}
|
|
function __spreadArray(to, from, pack) {
|
|
if (pack || arguments.length === 2)
|
|
for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
if (ar || !(i in from)) {
|
|
if (!ar)
|
|
ar = Array.prototype.slice.call(from, 0, i);
|
|
ar[i] = from[i];
|
|
}
|
|
}
|
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
}
|
|
function __await(v) {
|
|
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
}
|
|
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
if (!Symbol.asyncIterator)
|
|
throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
|
|
return this;
|
|
}, i;
|
|
function verb(n) {
|
|
if (g[n])
|
|
i[n] = function(v) {
|
|
return new Promise(function(a, b) {
|
|
q.push([n, v, a, b]) > 1 || resume(n, v);
|
|
});
|
|
};
|
|
}
|
|
__name(verb, "verb");
|
|
function resume(n, v) {
|
|
try {
|
|
step(g[n](v));
|
|
} catch (e) {
|
|
settle(q[0][3], e);
|
|
}
|
|
}
|
|
__name(resume, "resume");
|
|
function step(r) {
|
|
r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
|
|
}
|
|
__name(step, "step");
|
|
function fulfill(value) {
|
|
resume("next", value);
|
|
}
|
|
__name(fulfill, "fulfill");
|
|
function reject(value) {
|
|
resume("throw", value);
|
|
}
|
|
__name(reject, "reject");
|
|
function settle(f, v) {
|
|
if (f(v), q.shift(), q.length)
|
|
resume(q[0][0], q[0][1]);
|
|
}
|
|
__name(settle, "settle");
|
|
}
|
|
function __asyncDelegator(o) {
|
|
var i, p;
|
|
return i = {}, verb("next"), verb("throw", function(e) {
|
|
throw e;
|
|
}), verb("return"), i[Symbol.iterator] = function() {
|
|
return this;
|
|
}, i;
|
|
function verb(n, f) {
|
|
i[n] = o[n] ? function(v) {
|
|
return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v;
|
|
} : f;
|
|
}
|
|
__name(verb, "verb");
|
|
}
|
|
function __asyncValues(o) {
|
|
if (!Symbol.asyncIterator)
|
|
throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
var m = o[Symbol.asyncIterator], i;
|
|
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
|
|
return this;
|
|
}, i);
|
|
function verb(n) {
|
|
i[n] = o[n] && function(v) {
|
|
return new Promise(function(resolve, reject) {
|
|
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
});
|
|
};
|
|
}
|
|
__name(verb, "verb");
|
|
function settle(resolve, reject, d, v) {
|
|
Promise.resolve(v).then(function(v2) {
|
|
resolve({ value: v2, done: d });
|
|
}, reject);
|
|
}
|
|
__name(settle, "settle");
|
|
}
|
|
function __makeTemplateObject(cooked, raw) {
|
|
if (Object.defineProperty) {
|
|
Object.defineProperty(cooked, "raw", { value: raw });
|
|
} else {
|
|
cooked.raw = raw;
|
|
}
|
|
return cooked;
|
|
}
|
|
function __importStar(mod) {
|
|
if (mod && mod.__esModule)
|
|
return mod;
|
|
var result = {};
|
|
if (mod != null) {
|
|
for (var k in mod)
|
|
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
__createBinding(result, mod, k);
|
|
}
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
}
|
|
function __importDefault(mod) {
|
|
return mod && mod.__esModule ? mod : { default: mod };
|
|
}
|
|
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
if (kind === "a" && !f)
|
|
throw new TypeError("Private accessor was defined without a getter");
|
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
}
|
|
function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
if (kind === "m")
|
|
throw new TypeError("Private method is not writable");
|
|
if (kind === "a" && !f)
|
|
throw new TypeError("Private accessor was defined without a setter");
|
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
|
|
}
|
|
function __classPrivateFieldIn(state, receiver) {
|
|
if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function")
|
|
throw new TypeError("Cannot use 'in' operator on non-object");
|
|
return typeof state === "function" ? receiver === state : state.has(receiver);
|
|
}
|
|
function __addDisposableResource(env, value, async) {
|
|
if (value !== null && value !== void 0) {
|
|
if (typeof value !== "object" && typeof value !== "function")
|
|
throw new TypeError("Object expected.");
|
|
var dispose;
|
|
if (async) {
|
|
if (!Symbol.asyncDispose)
|
|
throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
dispose = value[Symbol.asyncDispose];
|
|
}
|
|
if (dispose === void 0) {
|
|
if (!Symbol.dispose)
|
|
throw new TypeError("Symbol.dispose is not defined.");
|
|
dispose = value[Symbol.dispose];
|
|
}
|
|
if (typeof dispose !== "function")
|
|
throw new TypeError("Object not disposable.");
|
|
env.stack.push({ value, dispose, async });
|
|
} else if (async) {
|
|
env.stack.push({ async: true });
|
|
}
|
|
return value;
|
|
}
|
|
function __disposeResources(env) {
|
|
function fail(e) {
|
|
env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
env.hasError = true;
|
|
}
|
|
__name(fail, "fail");
|
|
function next() {
|
|
while (env.stack.length) {
|
|
var rec = env.stack.pop();
|
|
try {
|
|
var result = rec.dispose && rec.dispose.call(rec.value);
|
|
if (rec.async)
|
|
return Promise.resolve(result).then(next, function(e) {
|
|
fail(e);
|
|
return next();
|
|
});
|
|
} catch (e) {
|
|
fail(e);
|
|
}
|
|
}
|
|
if (env.hasError)
|
|
throw env.error;
|
|
}
|
|
__name(next, "next");
|
|
return next();
|
|
}
|
|
var extendStatics, __assign, __createBinding, __setModuleDefault, _SuppressedError, tslib_es6_default;
|
|
var init_tslib_es6 = __esm({
|
|
"node_modules/tslib/tslib.es6.mjs"() {
|
|
extendStatics = /* @__PURE__ */ __name(function(d, b) {
|
|
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
|
|
d2.__proto__ = b2;
|
|
} || function(d2, b2) {
|
|
for (var p in b2)
|
|
if (Object.prototype.hasOwnProperty.call(b2, p))
|
|
d2[p] = b2[p];
|
|
};
|
|
return extendStatics(d, b);
|
|
}, "extendStatics");
|
|
__name(__extends, "__extends");
|
|
__assign = /* @__PURE__ */ __name(function() {
|
|
__assign = Object.assign || /* @__PURE__ */ __name(function __assign2(t) {
|
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
s = arguments[i];
|
|
for (var p in s)
|
|
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
t[p] = s[p];
|
|
}
|
|
return t;
|
|
}, "__assign");
|
|
return __assign.apply(this, arguments);
|
|
}, "__assign");
|
|
__name(__rest, "__rest");
|
|
__name(__decorate, "__decorate");
|
|
__name(__param, "__param");
|
|
__name(__esDecorate, "__esDecorate");
|
|
__name(__runInitializers, "__runInitializers");
|
|
__name(__propKey, "__propKey");
|
|
__name(__setFunctionName, "__setFunctionName");
|
|
__name(__metadata, "__metadata");
|
|
__name(__awaiter, "__awaiter");
|
|
__name(__generator, "__generator");
|
|
__createBinding = Object.create ? function(o, m, k, k2) {
|
|
if (k2 === void 0)
|
|
k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() {
|
|
return m[k];
|
|
} };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
} : function(o, m, k, k2) {
|
|
if (k2 === void 0)
|
|
k2 = k;
|
|
o[k2] = m[k];
|
|
};
|
|
__name(__exportStar, "__exportStar");
|
|
__name(__values, "__values");
|
|
__name(__read, "__read");
|
|
__name(__spread, "__spread");
|
|
__name(__spreadArrays, "__spreadArrays");
|
|
__name(__spreadArray, "__spreadArray");
|
|
__name(__await, "__await");
|
|
__name(__asyncGenerator, "__asyncGenerator");
|
|
__name(__asyncDelegator, "__asyncDelegator");
|
|
__name(__asyncValues, "__asyncValues");
|
|
__name(__makeTemplateObject, "__makeTemplateObject");
|
|
__setModuleDefault = Object.create ? function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
} : function(o, v) {
|
|
o["default"] = v;
|
|
};
|
|
__name(__importStar, "__importStar");
|
|
__name(__importDefault, "__importDefault");
|
|
__name(__classPrivateFieldGet, "__classPrivateFieldGet");
|
|
__name(__classPrivateFieldSet, "__classPrivateFieldSet");
|
|
__name(__classPrivateFieldIn, "__classPrivateFieldIn");
|
|
__name(__addDisposableResource, "__addDisposableResource");
|
|
_SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error2, suppressed, message) {
|
|
var e = new Error(message);
|
|
return e.name = "SuppressedError", e.error = error2, e.suppressed = suppressed, e;
|
|
};
|
|
__name(__disposeResources, "__disposeResources");
|
|
tslib_es6_default = {
|
|
__extends,
|
|
__assign,
|
|
__rest,
|
|
__decorate,
|
|
__param,
|
|
__metadata,
|
|
__awaiter,
|
|
__generator,
|
|
__createBinding,
|
|
__exportStar,
|
|
__values,
|
|
__read,
|
|
__spread,
|
|
__spreadArrays,
|
|
__spreadArray,
|
|
__await,
|
|
__asyncGenerator,
|
|
__asyncDelegator,
|
|
__asyncValues,
|
|
__makeTemplateObject,
|
|
__importStar,
|
|
__importDefault,
|
|
__classPrivateFieldGet,
|
|
__classPrivateFieldSet,
|
|
__classPrivateFieldIn,
|
|
__addDisposableResource,
|
|
__disposeResources
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll-bar/dist/es5/constants.js
|
|
var require_constants2 = __commonJS({
|
|
"node_modules/react-remove-scroll-bar/dist/es5/constants.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.removedBarSizeVariable = exports2.noScrollbarsClassName = exports2.fullWidthClassName = exports2.zeroRightClassName = void 0;
|
|
exports2.zeroRightClassName = "right-scroll-bar-position";
|
|
exports2.fullWidthClassName = "width-before-scroll-bar";
|
|
exports2.noScrollbarsClassName = "with-scroll-bars-hidden";
|
|
exports2.removedBarSizeVariable = "--removed-body-scroll-bar-size";
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/assignRef.js
|
|
var require_assignRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/assignRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.assignRef = void 0;
|
|
function assignRef(ref, value) {
|
|
if (typeof ref === "function") {
|
|
ref(value);
|
|
} else if (ref) {
|
|
ref.current = value;
|
|
}
|
|
return ref;
|
|
}
|
|
__name(assignRef, "assignRef");
|
|
exports2.assignRef = assignRef;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/useRef.js
|
|
var require_useRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/useRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useCallbackRef = void 0;
|
|
var react_1 = require("react");
|
|
function useCallbackRef2(initialValue2, callback) {
|
|
var ref = (0, react_1.useState)(function() {
|
|
return {
|
|
// value
|
|
value: initialValue2,
|
|
// last callback
|
|
callback,
|
|
// "memoized" public interface
|
|
facade: {
|
|
get current() {
|
|
return ref.value;
|
|
},
|
|
set current(value) {
|
|
var last = ref.value;
|
|
if (last !== value) {
|
|
ref.value = value;
|
|
ref.callback(value, last);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
})[0];
|
|
ref.callback = callback;
|
|
return ref.facade;
|
|
}
|
|
__name(useCallbackRef2, "useCallbackRef");
|
|
exports2.useCallbackRef = useCallbackRef2;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/createRef.js
|
|
var require_createRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/createRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.createCallbackRef = void 0;
|
|
function createCallbackRef(callback) {
|
|
var current = null;
|
|
return {
|
|
get current() {
|
|
return current;
|
|
},
|
|
set current(value) {
|
|
var last = current;
|
|
if (last !== value) {
|
|
current = value;
|
|
callback(value, last);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
__name(createCallbackRef, "createCallbackRef");
|
|
exports2.createCallbackRef = createCallbackRef;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/mergeRef.js
|
|
var require_mergeRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/mergeRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.mergeRefs = void 0;
|
|
var assignRef_1 = require_assignRef();
|
|
var createRef_1 = require_createRef();
|
|
function mergeRefs(refs) {
|
|
return (0, createRef_1.createCallbackRef)(function(newValue) {
|
|
return refs.forEach(function(ref) {
|
|
return (0, assignRef_1.assignRef)(ref, newValue);
|
|
});
|
|
});
|
|
}
|
|
__name(mergeRefs, "mergeRefs");
|
|
exports2.mergeRefs = mergeRefs;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/useMergeRef.js
|
|
var require_useMergeRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/useMergeRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useMergeRefs = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var assignRef_1 = require_assignRef();
|
|
var useRef_1 = require_useRef();
|
|
var useIsomorphicLayoutEffect3 = typeof window !== "undefined" ? React44.useLayoutEffect : React44.useEffect;
|
|
var currentValues = /* @__PURE__ */ new WeakMap();
|
|
function useMergeRefs(refs, defaultValue2) {
|
|
var callbackRef = (0, useRef_1.useCallbackRef)(defaultValue2 || null, function(newValue) {
|
|
return refs.forEach(function(ref) {
|
|
return (0, assignRef_1.assignRef)(ref, newValue);
|
|
});
|
|
});
|
|
useIsomorphicLayoutEffect3(function() {
|
|
var oldValue = currentValues.get(callbackRef);
|
|
if (oldValue) {
|
|
var prevRefs_1 = new Set(oldValue);
|
|
var nextRefs_1 = new Set(refs);
|
|
var current_1 = callbackRef.current;
|
|
prevRefs_1.forEach(function(ref) {
|
|
if (!nextRefs_1.has(ref)) {
|
|
(0, assignRef_1.assignRef)(ref, null);
|
|
}
|
|
});
|
|
nextRefs_1.forEach(function(ref) {
|
|
if (!prevRefs_1.has(ref)) {
|
|
(0, assignRef_1.assignRef)(ref, current_1);
|
|
}
|
|
});
|
|
}
|
|
currentValues.set(callbackRef, refs);
|
|
}, [refs]);
|
|
return callbackRef;
|
|
}
|
|
__name(useMergeRefs, "useMergeRefs");
|
|
exports2.useMergeRefs = useMergeRefs;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/useTransformRef.js
|
|
var require_useTransformRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/useTransformRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useTransformRef = void 0;
|
|
var assignRef_1 = require_assignRef();
|
|
var useRef_1 = require_useRef();
|
|
function useTransformRef(ref, transformer) {
|
|
return (0, useRef_1.useCallbackRef)(null, function(value) {
|
|
return (0, assignRef_1.assignRef)(ref, transformer(value));
|
|
});
|
|
}
|
|
__name(useTransformRef, "useTransformRef");
|
|
exports2.useTransformRef = useTransformRef;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/transformRef.js
|
|
var require_transformRef = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/transformRef.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.transformRef = void 0;
|
|
var assignRef_1 = require_assignRef();
|
|
var createRef_1 = require_createRef();
|
|
function transformRef(ref, transformer) {
|
|
return (0, createRef_1.createCallbackRef)(function(value) {
|
|
return (0, assignRef_1.assignRef)(ref, transformer(value));
|
|
});
|
|
}
|
|
__name(transformRef, "transformRef");
|
|
exports2.transformRef = transformRef;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/refToCallback.js
|
|
var require_refToCallback = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/refToCallback.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useRefToCallback = exports2.refToCallback = void 0;
|
|
function refToCallback(ref) {
|
|
return function(newValue) {
|
|
if (typeof ref === "function") {
|
|
ref(newValue);
|
|
} else if (ref) {
|
|
ref.current = newValue;
|
|
}
|
|
};
|
|
}
|
|
__name(refToCallback, "refToCallback");
|
|
exports2.refToCallback = refToCallback;
|
|
var nullCallback = /* @__PURE__ */ __name(function() {
|
|
return null;
|
|
}, "nullCallback");
|
|
var weakMem = /* @__PURE__ */ new WeakMap();
|
|
var weakMemoize = /* @__PURE__ */ __name(function(ref) {
|
|
var usedRef = ref || nullCallback;
|
|
var storedRef = weakMem.get(usedRef);
|
|
if (storedRef) {
|
|
return storedRef;
|
|
}
|
|
var cb = refToCallback(usedRef);
|
|
weakMem.set(usedRef, cb);
|
|
return cb;
|
|
}, "weakMemoize");
|
|
function useRefToCallback(ref) {
|
|
return weakMemoize(ref);
|
|
}
|
|
__name(useRefToCallback, "useRefToCallback");
|
|
exports2.useRefToCallback = useRefToCallback;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-callback-ref/dist/es5/index.js
|
|
var require_es52 = __commonJS({
|
|
"node_modules/use-callback-ref/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useRefToCallback = exports2.refToCallback = exports2.transformRef = exports2.useTransformRef = exports2.useMergeRefs = exports2.mergeRefs = exports2.createCallbackRef = exports2.useCallbackRef = exports2.assignRef = void 0;
|
|
var assignRef_1 = require_assignRef();
|
|
Object.defineProperty(exports2, "assignRef", { enumerable: true, get: function() {
|
|
return assignRef_1.assignRef;
|
|
} });
|
|
var useRef_1 = require_useRef();
|
|
Object.defineProperty(exports2, "useCallbackRef", { enumerable: true, get: function() {
|
|
return useRef_1.useCallbackRef;
|
|
} });
|
|
var createRef_1 = require_createRef();
|
|
Object.defineProperty(exports2, "createCallbackRef", { enumerable: true, get: function() {
|
|
return createRef_1.createCallbackRef;
|
|
} });
|
|
var mergeRef_1 = require_mergeRef();
|
|
Object.defineProperty(exports2, "mergeRefs", { enumerable: true, get: function() {
|
|
return mergeRef_1.mergeRefs;
|
|
} });
|
|
var useMergeRef_1 = require_useMergeRef();
|
|
Object.defineProperty(exports2, "useMergeRefs", { enumerable: true, get: function() {
|
|
return useMergeRef_1.useMergeRefs;
|
|
} });
|
|
var useTransformRef_1 = require_useTransformRef();
|
|
Object.defineProperty(exports2, "useTransformRef", { enumerable: true, get: function() {
|
|
return useTransformRef_1.useTransformRef;
|
|
} });
|
|
var transformRef_1 = require_transformRef();
|
|
Object.defineProperty(exports2, "transformRef", { enumerable: true, get: function() {
|
|
return transformRef_1.transformRef;
|
|
} });
|
|
var refToCallback_1 = require_refToCallback();
|
|
Object.defineProperty(exports2, "refToCallback", { enumerable: true, get: function() {
|
|
return refToCallback_1.refToCallback;
|
|
} });
|
|
Object.defineProperty(exports2, "useRefToCallback", { enumerable: true, get: function() {
|
|
return refToCallback_1.useRefToCallback;
|
|
} });
|
|
}
|
|
});
|
|
|
|
// node_modules/detect-node-es/es5/node.js
|
|
var require_node = __commonJS({
|
|
"node_modules/detect-node-es/es5/node.js"(exports2, module2) {
|
|
module2.exports.isNode = Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]";
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/env.js
|
|
var require_env = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/env.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.env = void 0;
|
|
var detect_node_es_1 = require_node();
|
|
exports2.env = {
|
|
isNode: detect_node_es_1.isNode,
|
|
forceCache: false
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/hook.js
|
|
var require_hook = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/hook.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.useSidecar = void 0;
|
|
var react_1 = require("react");
|
|
var env_1 = require_env();
|
|
var cache3 = /* @__PURE__ */ new WeakMap();
|
|
var NO_OPTIONS = {};
|
|
function useSidecar(importer, effect) {
|
|
var options = effect && effect.options || NO_OPTIONS;
|
|
if (env_1.env.isNode && !options.ssr) {
|
|
return [null, null];
|
|
}
|
|
return useRealSidecar(importer, effect);
|
|
}
|
|
__name(useSidecar, "useSidecar");
|
|
exports2.useSidecar = useSidecar;
|
|
function useRealSidecar(importer, effect) {
|
|
var options = effect && effect.options || NO_OPTIONS;
|
|
var couldUseCache = env_1.env.forceCache || env_1.env.isNode && !!options.ssr || !options.async;
|
|
var _a = (0, react_1.useState)(couldUseCache ? function() {
|
|
return cache3.get(importer);
|
|
} : void 0), Car = _a[0], setCar = _a[1];
|
|
var _b = (0, react_1.useState)(null), error2 = _b[0], setError = _b[1];
|
|
(0, react_1.useEffect)(function() {
|
|
if (!Car) {
|
|
importer().then(function(car) {
|
|
var resolved = effect ? effect.read() : car.default || car;
|
|
if (!resolved) {
|
|
console.error("Sidecar error: with importer", importer);
|
|
var error_1;
|
|
if (effect) {
|
|
console.error("Sidecar error: with medium", effect);
|
|
error_1 = new Error("Sidecar medium was not found");
|
|
} else {
|
|
error_1 = new Error("Sidecar was not found in exports");
|
|
}
|
|
setError(function() {
|
|
return error_1;
|
|
});
|
|
throw error_1;
|
|
}
|
|
cache3.set(importer, resolved);
|
|
setCar(function() {
|
|
return resolved;
|
|
});
|
|
}, function(e) {
|
|
return setError(function() {
|
|
return e;
|
|
});
|
|
});
|
|
}
|
|
}, []);
|
|
return [Car, error2];
|
|
}
|
|
__name(useRealSidecar, "useRealSidecar");
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/hoc.js
|
|
var require_hoc = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/hoc.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.sidecar = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var hook_1 = require_hook();
|
|
function sidecar(importer, errorComponent) {
|
|
var ErrorCase = /* @__PURE__ */ __name(function() {
|
|
return errorComponent;
|
|
}, "ErrorCase");
|
|
return /* @__PURE__ */ __name(function Sidecar(props) {
|
|
var _a = (0, hook_1.useSidecar)(importer, props.sideCar), Car = _a[0], error2 = _a[1];
|
|
if (error2 && errorComponent) {
|
|
return ErrorCase;
|
|
}
|
|
return Car ? React44.createElement(Car, tslib_1.__assign({}, props)) : null;
|
|
}, "Sidecar");
|
|
}
|
|
__name(sidecar, "sidecar");
|
|
exports2.sidecar = sidecar;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/config.js
|
|
var require_config = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/config.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.setConfig = exports2.config = void 0;
|
|
exports2.config = {
|
|
onError: function(e) {
|
|
return console.error(e);
|
|
}
|
|
};
|
|
var setConfig = /* @__PURE__ */ __name(function(conf) {
|
|
Object.assign(exports2.config, conf);
|
|
}, "setConfig");
|
|
exports2.setConfig = setConfig;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/medium.js
|
|
var require_medium = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/medium.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.createSidecarMedium = exports2.createMedium = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
function ItoI(a) {
|
|
return a;
|
|
}
|
|
__name(ItoI, "ItoI");
|
|
function innerCreateMedium(defaults, middleware) {
|
|
if (middleware === void 0) {
|
|
middleware = ItoI;
|
|
}
|
|
var buffer = [];
|
|
var assigned = false;
|
|
var medium = {
|
|
read: function() {
|
|
if (assigned) {
|
|
throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");
|
|
}
|
|
if (buffer.length) {
|
|
return buffer[buffer.length - 1];
|
|
}
|
|
return defaults;
|
|
},
|
|
useMedium: function(data) {
|
|
var item = middleware(data, assigned);
|
|
buffer.push(item);
|
|
return function() {
|
|
buffer = buffer.filter(function(x) {
|
|
return x !== item;
|
|
});
|
|
};
|
|
},
|
|
assignSyncMedium: function(cb) {
|
|
assigned = true;
|
|
while (buffer.length) {
|
|
var cbs2 = buffer;
|
|
buffer = [];
|
|
cbs2.forEach(cb);
|
|
}
|
|
buffer = {
|
|
push: function(x) {
|
|
return cb(x);
|
|
},
|
|
filter: function() {
|
|
return buffer;
|
|
}
|
|
};
|
|
},
|
|
assignMedium: function(cb) {
|
|
assigned = true;
|
|
var pendingQueue = [];
|
|
if (buffer.length) {
|
|
var cbs2 = buffer;
|
|
buffer = [];
|
|
cbs2.forEach(cb);
|
|
pendingQueue = buffer;
|
|
}
|
|
var executeQueue = /* @__PURE__ */ __name(function() {
|
|
var cbs3 = pendingQueue;
|
|
pendingQueue = [];
|
|
cbs3.forEach(cb);
|
|
}, "executeQueue");
|
|
var cycle = /* @__PURE__ */ __name(function() {
|
|
return Promise.resolve().then(executeQueue);
|
|
}, "cycle");
|
|
cycle();
|
|
buffer = {
|
|
push: function(x) {
|
|
pendingQueue.push(x);
|
|
cycle();
|
|
},
|
|
filter: function(filter) {
|
|
pendingQueue = pendingQueue.filter(filter);
|
|
return buffer;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
return medium;
|
|
}
|
|
__name(innerCreateMedium, "innerCreateMedium");
|
|
function createMedium(defaults, middleware) {
|
|
if (middleware === void 0) {
|
|
middleware = ItoI;
|
|
}
|
|
return innerCreateMedium(defaults, middleware);
|
|
}
|
|
__name(createMedium, "createMedium");
|
|
exports2.createMedium = createMedium;
|
|
function createSidecarMedium(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
var medium = innerCreateMedium(null);
|
|
medium.options = tslib_1.__assign({ async: true, ssr: false }, options);
|
|
return medium;
|
|
}
|
|
__name(createSidecarMedium, "createSidecarMedium");
|
|
exports2.createSidecarMedium = createSidecarMedium;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/renderProp.js
|
|
var require_renderProp = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/renderProp.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.renderCar = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var react_1 = require("react");
|
|
function renderCar(WrappedComponent, defaults) {
|
|
function State(_a) {
|
|
var stateRef = _a.stateRef, props = _a.props;
|
|
var renderTarget = (0, react_1.useCallback)(/* @__PURE__ */ __name(function SideTarget() {
|
|
var args = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
args[_i] = arguments[_i];
|
|
}
|
|
(0, react_1.useLayoutEffect)(function() {
|
|
stateRef.current(args);
|
|
});
|
|
return null;
|
|
}, "SideTarget"), []);
|
|
return React44.createElement(WrappedComponent, tslib_1.__assign({}, props, { children: renderTarget }));
|
|
}
|
|
__name(State, "State");
|
|
var Children7 = React44.memo(function(_a) {
|
|
var stateRef = _a.stateRef, defaultState = _a.defaultState, children = _a.children;
|
|
var _b = (0, react_1.useState)(defaultState.current), state = _b[0], setState = _b[1];
|
|
(0, react_1.useEffect)(function() {
|
|
stateRef.current = setState;
|
|
}, []);
|
|
return children.apply(void 0, state);
|
|
}, function() {
|
|
return true;
|
|
});
|
|
return /* @__PURE__ */ __name(function Combiner(props) {
|
|
var defaultState = React44.useRef(defaults(props));
|
|
var ref = React44.useRef(function(state) {
|
|
return defaultState.current = state;
|
|
});
|
|
return React44.createElement(
|
|
React44.Fragment,
|
|
null,
|
|
React44.createElement(State, { stateRef: ref, props }),
|
|
React44.createElement(Children7, { stateRef: ref, defaultState, children: props.children })
|
|
);
|
|
}, "Combiner");
|
|
}
|
|
__name(renderCar, "renderCar");
|
|
exports2.renderCar = renderCar;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/exports.js
|
|
var require_exports = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/exports.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.exportSidecar = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var SideCar = /* @__PURE__ */ __name(function(_a) {
|
|
var sideCar = _a.sideCar, rest = tslib_1.__rest(_a, ["sideCar"]);
|
|
if (!sideCar) {
|
|
throw new Error("Sidecar: please provide `sideCar` property to import the right car");
|
|
}
|
|
var Target = sideCar.read();
|
|
if (!Target) {
|
|
throw new Error("Sidecar medium not found");
|
|
}
|
|
return React44.createElement(Target, tslib_1.__assign({}, rest));
|
|
}, "SideCar");
|
|
SideCar.isSideCarExport = true;
|
|
function exportSidecar(medium, exported) {
|
|
medium.useMedium(exported);
|
|
return SideCar;
|
|
}
|
|
__name(exportSidecar, "exportSidecar");
|
|
exports2.exportSidecar = exportSidecar;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sidecar/dist/es5/index.js
|
|
var require_es53 = __commonJS({
|
|
"node_modules/use-sidecar/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.exportSidecar = exports2.renderCar = exports2.createSidecarMedium = exports2.createMedium = exports2.setConfig = exports2.useSidecar = exports2.sidecar = void 0;
|
|
var hoc_1 = require_hoc();
|
|
Object.defineProperty(exports2, "sidecar", { enumerable: true, get: function() {
|
|
return hoc_1.sidecar;
|
|
} });
|
|
var hook_1 = require_hook();
|
|
Object.defineProperty(exports2, "useSidecar", { enumerable: true, get: function() {
|
|
return hook_1.useSidecar;
|
|
} });
|
|
var config_1 = require_config();
|
|
Object.defineProperty(exports2, "setConfig", { enumerable: true, get: function() {
|
|
return config_1.setConfig;
|
|
} });
|
|
var medium_1 = require_medium();
|
|
Object.defineProperty(exports2, "createMedium", { enumerable: true, get: function() {
|
|
return medium_1.createMedium;
|
|
} });
|
|
Object.defineProperty(exports2, "createSidecarMedium", { enumerable: true, get: function() {
|
|
return medium_1.createSidecarMedium;
|
|
} });
|
|
var renderProp_1 = require_renderProp();
|
|
Object.defineProperty(exports2, "renderCar", { enumerable: true, get: function() {
|
|
return renderProp_1.renderCar;
|
|
} });
|
|
var exports_1 = require_exports();
|
|
Object.defineProperty(exports2, "exportSidecar", { enumerable: true, get: function() {
|
|
return exports_1.exportSidecar;
|
|
} });
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/medium.js
|
|
var require_medium2 = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/medium.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.effectCar = void 0;
|
|
var use_sidecar_1 = require_es53();
|
|
exports2.effectCar = (0, use_sidecar_1.createSidecarMedium)();
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/UI.js
|
|
var require_UI = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/UI.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.RemoveScroll = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var constants_1 = require_constants2();
|
|
var use_callback_ref_1 = require_es52();
|
|
var medium_1 = require_medium2();
|
|
var nothing = /* @__PURE__ */ __name(function() {
|
|
return;
|
|
}, "nothing");
|
|
var RemoveScroll2 = React44.forwardRef(function(props, parentRef) {
|
|
var ref = React44.useRef(null);
|
|
var _a = React44.useState({
|
|
onScrollCapture: nothing,
|
|
onWheelCapture: nothing,
|
|
onTouchMoveCapture: nothing
|
|
}), callbacks = _a[0], setCallbacks = _a[1];
|
|
var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? "div" : _b, rest = tslib_1.__rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noIsolation", "inert", "allowPinchZoom", "as"]);
|
|
var SideCar = sideCar;
|
|
var containerRef = (0, use_callback_ref_1.useMergeRefs)([ref, parentRef]);
|
|
var containerProps = tslib_1.__assign(tslib_1.__assign({}, rest), callbacks);
|
|
return React44.createElement(
|
|
React44.Fragment,
|
|
null,
|
|
enabled && React44.createElement(SideCar, { sideCar: medium_1.effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref }),
|
|
forwardProps ? React44.cloneElement(React44.Children.only(children), tslib_1.__assign(tslib_1.__assign({}, containerProps), { ref: containerRef })) : React44.createElement(Container, tslib_1.__assign({}, containerProps, { className, ref: containerRef }), children)
|
|
);
|
|
});
|
|
exports2.RemoveScroll = RemoveScroll2;
|
|
RemoveScroll2.defaultProps = {
|
|
enabled: true,
|
|
removeScrollBar: true,
|
|
inert: false
|
|
};
|
|
RemoveScroll2.classNames = {
|
|
fullWidth: constants_1.fullWidthClassName,
|
|
zeroRight: constants_1.zeroRightClassName
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/get-nonce/dist/es5/index.js
|
|
var require_es54 = __commonJS({
|
|
"node_modules/get-nonce/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
var currentNonce;
|
|
exports2.setNonce = function(nonce) {
|
|
currentNonce = nonce;
|
|
};
|
|
exports2.getNonce = function() {
|
|
if (currentNonce) {
|
|
return currentNonce;
|
|
}
|
|
if (typeof __webpack_nonce__ !== "undefined") {
|
|
return __webpack_nonce__;
|
|
}
|
|
return void 0;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/react-style-singleton/dist/es5/singleton.js
|
|
var require_singleton = __commonJS({
|
|
"node_modules/react-style-singleton/dist/es5/singleton.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.stylesheetSingleton = void 0;
|
|
var get_nonce_1 = require_es54();
|
|
function makeStyleTag() {
|
|
if (!document)
|
|
return null;
|
|
var tag = document.createElement("style");
|
|
tag.type = "text/css";
|
|
var nonce = (0, get_nonce_1.getNonce)();
|
|
if (nonce) {
|
|
tag.setAttribute("nonce", nonce);
|
|
}
|
|
return tag;
|
|
}
|
|
__name(makeStyleTag, "makeStyleTag");
|
|
function injectStyles(tag, css) {
|
|
if (tag.styleSheet) {
|
|
tag.styleSheet.cssText = css;
|
|
} else {
|
|
tag.appendChild(document.createTextNode(css));
|
|
}
|
|
}
|
|
__name(injectStyles, "injectStyles");
|
|
function insertStyleTag(tag) {
|
|
var head = document.head || document.getElementsByTagName("head")[0];
|
|
head.appendChild(tag);
|
|
}
|
|
__name(insertStyleTag, "insertStyleTag");
|
|
var stylesheetSingleton = /* @__PURE__ */ __name(function() {
|
|
var counter = 0;
|
|
var stylesheet = null;
|
|
return {
|
|
add: function(style) {
|
|
if (counter == 0) {
|
|
if (stylesheet = makeStyleTag()) {
|
|
injectStyles(stylesheet, style);
|
|
insertStyleTag(stylesheet);
|
|
}
|
|
}
|
|
counter++;
|
|
},
|
|
remove: function() {
|
|
counter--;
|
|
if (!counter && stylesheet) {
|
|
stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);
|
|
stylesheet = null;
|
|
}
|
|
}
|
|
};
|
|
}, "stylesheetSingleton");
|
|
exports2.stylesheetSingleton = stylesheetSingleton;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-style-singleton/dist/es5/hook.js
|
|
var require_hook2 = __commonJS({
|
|
"node_modules/react-style-singleton/dist/es5/hook.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.styleHookSingleton = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var singleton_1 = require_singleton();
|
|
var styleHookSingleton = /* @__PURE__ */ __name(function() {
|
|
var sheet = (0, singleton_1.stylesheetSingleton)();
|
|
return function(styles, isDynamic) {
|
|
React44.useEffect(function() {
|
|
sheet.add(styles);
|
|
return function() {
|
|
sheet.remove();
|
|
};
|
|
}, [styles && isDynamic]);
|
|
};
|
|
}, "styleHookSingleton");
|
|
exports2.styleHookSingleton = styleHookSingleton;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-style-singleton/dist/es5/component.js
|
|
var require_component = __commonJS({
|
|
"node_modules/react-style-singleton/dist/es5/component.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.styleSingleton = void 0;
|
|
var hook_1 = require_hook2();
|
|
var styleSingleton = /* @__PURE__ */ __name(function() {
|
|
var useStyle2 = (0, hook_1.styleHookSingleton)();
|
|
var Sheet2 = /* @__PURE__ */ __name(function(_a) {
|
|
var styles = _a.styles, dynamic = _a.dynamic;
|
|
useStyle2(styles, dynamic);
|
|
return null;
|
|
}, "Sheet");
|
|
return Sheet2;
|
|
}, "styleSingleton");
|
|
exports2.styleSingleton = styleSingleton;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-style-singleton/dist/es5/index.js
|
|
var require_es55 = __commonJS({
|
|
"node_modules/react-style-singleton/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.styleHookSingleton = exports2.stylesheetSingleton = exports2.styleSingleton = void 0;
|
|
var component_1 = require_component();
|
|
Object.defineProperty(exports2, "styleSingleton", { enumerable: true, get: function() {
|
|
return component_1.styleSingleton;
|
|
} });
|
|
var singleton_1 = require_singleton();
|
|
Object.defineProperty(exports2, "stylesheetSingleton", { enumerable: true, get: function() {
|
|
return singleton_1.stylesheetSingleton;
|
|
} });
|
|
var hook_1 = require_hook2();
|
|
Object.defineProperty(exports2, "styleHookSingleton", { enumerable: true, get: function() {
|
|
return hook_1.styleHookSingleton;
|
|
} });
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll-bar/dist/es5/utils.js
|
|
var require_utils = __commonJS({
|
|
"node_modules/react-remove-scroll-bar/dist/es5/utils.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.getGapWidth = exports2.zeroGap = void 0;
|
|
exports2.zeroGap = {
|
|
left: 0,
|
|
top: 0,
|
|
right: 0,
|
|
gap: 0
|
|
};
|
|
var parse = /* @__PURE__ */ __name(function(x) {
|
|
return parseInt(x || "", 10) || 0;
|
|
}, "parse");
|
|
var getOffset = /* @__PURE__ */ __name(function(gapMode) {
|
|
var cs = window.getComputedStyle(document.body);
|
|
var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"];
|
|
var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"];
|
|
var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"];
|
|
return [parse(left), parse(top), parse(right)];
|
|
}, "getOffset");
|
|
var getGapWidth = /* @__PURE__ */ __name(function(gapMode) {
|
|
if (gapMode === void 0) {
|
|
gapMode = "margin";
|
|
}
|
|
if (typeof window === "undefined") {
|
|
return exports2.zeroGap;
|
|
}
|
|
var offsets = getOffset(gapMode);
|
|
var documentWidth = document.documentElement.clientWidth;
|
|
var windowWidth = window.innerWidth;
|
|
return {
|
|
left: offsets[0],
|
|
top: offsets[1],
|
|
right: offsets[2],
|
|
gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])
|
|
};
|
|
}, "getGapWidth");
|
|
exports2.getGapWidth = getGapWidth;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll-bar/dist/es5/component.js
|
|
var require_component2 = __commonJS({
|
|
"node_modules/react-remove-scroll-bar/dist/es5/component.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.RemoveScrollBar = exports2.useLockAttribute = exports2.lockAttribute = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var react_style_singleton_1 = require_es55();
|
|
var constants_1 = require_constants2();
|
|
var utils_1 = require_utils();
|
|
var Style = (0, react_style_singleton_1.styleSingleton)();
|
|
exports2.lockAttribute = "data-scroll-locked";
|
|
var getStyles = /* @__PURE__ */ __name(function(_a, allowRelative, gapMode, important) {
|
|
var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;
|
|
if (gapMode === void 0) {
|
|
gapMode = "margin";
|
|
}
|
|
return "\n .".concat(constants_1.noScrollbarsClassName, " {\n overflow: hidden ").concat(important, ";\n padding-right: ").concat(gap, "px ").concat(important, ";\n }\n body[").concat(exports2.lockAttribute, "] {\n overflow: hidden ").concat(important, ";\n overscroll-behavior: contain;\n ").concat([
|
|
allowRelative && "position: relative ".concat(important, ";"),
|
|
gapMode === "margin" && "\n padding-left: ".concat(left, "px;\n padding-top: ").concat(top, "px;\n padding-right: ").concat(right, "px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(gap, "px ").concat(important, ";\n "),
|
|
gapMode === "padding" && "padding-right: ".concat(gap, "px ").concat(important, ";")
|
|
].filter(Boolean).join(""), "\n }\n \n .").concat(constants_1.zeroRightClassName, " {\n right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(constants_1.fullWidthClassName, " {\n margin-right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(constants_1.zeroRightClassName, " .").concat(constants_1.zeroRightClassName, " {\n right: 0 ").concat(important, ";\n }\n \n .").concat(constants_1.fullWidthClassName, " .").concat(constants_1.fullWidthClassName, " {\n margin-right: 0 ").concat(important, ";\n }\n \n body[").concat(exports2.lockAttribute, "] {\n ").concat(constants_1.removedBarSizeVariable, ": ").concat(gap, "px;\n }\n");
|
|
}, "getStyles");
|
|
var getCurrentUseCounter = /* @__PURE__ */ __name(function() {
|
|
var counter = parseInt(document.body.getAttribute(exports2.lockAttribute) || "0", 10);
|
|
return isFinite(counter) ? counter : 0;
|
|
}, "getCurrentUseCounter");
|
|
var useLockAttribute = /* @__PURE__ */ __name(function() {
|
|
React44.useEffect(function() {
|
|
document.body.setAttribute(exports2.lockAttribute, (getCurrentUseCounter() + 1).toString());
|
|
return function() {
|
|
var newCounter = getCurrentUseCounter() - 1;
|
|
if (newCounter <= 0) {
|
|
document.body.removeAttribute(exports2.lockAttribute);
|
|
} else {
|
|
document.body.setAttribute(exports2.lockAttribute, newCounter.toString());
|
|
}
|
|
};
|
|
}, []);
|
|
}, "useLockAttribute");
|
|
exports2.useLockAttribute = useLockAttribute;
|
|
var RemoveScrollBar = /* @__PURE__ */ __name(function(_a) {
|
|
var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? "margin" : _b;
|
|
(0, exports2.useLockAttribute)();
|
|
var gap = React44.useMemo(function() {
|
|
return (0, utils_1.getGapWidth)(gapMode);
|
|
}, [gapMode]);
|
|
return React44.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") });
|
|
}, "RemoveScrollBar");
|
|
exports2.RemoveScrollBar = RemoveScrollBar;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll-bar/dist/es5/index.js
|
|
var require_es56 = __commonJS({
|
|
"node_modules/react-remove-scroll-bar/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.getGapWidth = exports2.removedBarSizeVariable = exports2.noScrollbarsClassName = exports2.fullWidthClassName = exports2.zeroRightClassName = exports2.RemoveScrollBar = void 0;
|
|
var component_1 = require_component2();
|
|
Object.defineProperty(exports2, "RemoveScrollBar", { enumerable: true, get: function() {
|
|
return component_1.RemoveScrollBar;
|
|
} });
|
|
var constants_1 = require_constants2();
|
|
Object.defineProperty(exports2, "zeroRightClassName", { enumerable: true, get: function() {
|
|
return constants_1.zeroRightClassName;
|
|
} });
|
|
Object.defineProperty(exports2, "fullWidthClassName", { enumerable: true, get: function() {
|
|
return constants_1.fullWidthClassName;
|
|
} });
|
|
Object.defineProperty(exports2, "noScrollbarsClassName", { enumerable: true, get: function() {
|
|
return constants_1.noScrollbarsClassName;
|
|
} });
|
|
Object.defineProperty(exports2, "removedBarSizeVariable", { enumerable: true, get: function() {
|
|
return constants_1.removedBarSizeVariable;
|
|
} });
|
|
var utils_1 = require_utils();
|
|
Object.defineProperty(exports2, "getGapWidth", { enumerable: true, get: function() {
|
|
return utils_1.getGapWidth;
|
|
} });
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js
|
|
var require_aggresiveCapture = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.nonPassive = void 0;
|
|
var passiveSupported = false;
|
|
if (typeof window !== "undefined") {
|
|
try {
|
|
options = Object.defineProperty({}, "passive", {
|
|
get: function() {
|
|
passiveSupported = true;
|
|
return true;
|
|
}
|
|
});
|
|
window.addEventListener("test", options, options);
|
|
window.removeEventListener("test", options, options);
|
|
} catch (err) {
|
|
passiveSupported = false;
|
|
}
|
|
}
|
|
var options;
|
|
exports2.nonPassive = passiveSupported ? { passive: false } : false;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/handleScroll.js
|
|
var require_handleScroll = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/handleScroll.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.handleScroll = exports2.locationCouldBeScrolled = void 0;
|
|
var alwaysContainsScroll = /* @__PURE__ */ __name(function(node) {
|
|
return node.tagName === "TEXTAREA";
|
|
}, "alwaysContainsScroll");
|
|
var elementCanBeScrolled = /* @__PURE__ */ __name(function(node, overflow) {
|
|
var styles = window.getComputedStyle(node);
|
|
return (
|
|
// not-not-scrollable
|
|
styles[overflow] !== "hidden" && // contains scroll inside self
|
|
!(styles.overflowY === styles.overflowX && !alwaysContainsScroll(node) && styles[overflow] === "visible")
|
|
);
|
|
}, "elementCanBeScrolled");
|
|
var elementCouldBeVScrolled = /* @__PURE__ */ __name(function(node) {
|
|
return elementCanBeScrolled(node, "overflowY");
|
|
}, "elementCouldBeVScrolled");
|
|
var elementCouldBeHScrolled = /* @__PURE__ */ __name(function(node) {
|
|
return elementCanBeScrolled(node, "overflowX");
|
|
}, "elementCouldBeHScrolled");
|
|
var locationCouldBeScrolled = /* @__PURE__ */ __name(function(axis, node) {
|
|
var current = node;
|
|
do {
|
|
if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) {
|
|
current = current.host;
|
|
}
|
|
var isScrollable = elementCouldBeScrolled(axis, current);
|
|
if (isScrollable) {
|
|
var _a = getScrollVariables(axis, current), s = _a[1], d = _a[2];
|
|
if (s > d) {
|
|
return true;
|
|
}
|
|
}
|
|
current = current.parentNode;
|
|
} while (current && current !== document.body);
|
|
return false;
|
|
}, "locationCouldBeScrolled");
|
|
exports2.locationCouldBeScrolled = locationCouldBeScrolled;
|
|
var getVScrollVariables = /* @__PURE__ */ __name(function(_a) {
|
|
var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
|
|
return [
|
|
scrollTop,
|
|
scrollHeight,
|
|
clientHeight
|
|
];
|
|
}, "getVScrollVariables");
|
|
var getHScrollVariables = /* @__PURE__ */ __name(function(_a) {
|
|
var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;
|
|
return [
|
|
scrollLeft,
|
|
scrollWidth,
|
|
clientWidth
|
|
];
|
|
}, "getHScrollVariables");
|
|
var elementCouldBeScrolled = /* @__PURE__ */ __name(function(axis, node) {
|
|
return axis === "v" ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);
|
|
}, "elementCouldBeScrolled");
|
|
var getScrollVariables = /* @__PURE__ */ __name(function(axis, node) {
|
|
return axis === "v" ? getVScrollVariables(node) : getHScrollVariables(node);
|
|
}, "getScrollVariables");
|
|
var getDirectionFactor = /* @__PURE__ */ __name(function(axis, direction) {
|
|
return axis === "h" && direction === "rtl" ? -1 : 1;
|
|
}, "getDirectionFactor");
|
|
var handleScroll = /* @__PURE__ */ __name(function(axis, endTarget, event, sourceDelta, noOverscroll) {
|
|
var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);
|
|
var delta = directionFactor * sourceDelta;
|
|
var target = event.target;
|
|
var targetInLock = endTarget.contains(target);
|
|
var shouldCancelScroll = false;
|
|
var isDeltaPositive = delta > 0;
|
|
var availableScroll = 0;
|
|
var availableScrollTop = 0;
|
|
do {
|
|
var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];
|
|
var elementScroll = scroll_1 - capacity - directionFactor * position;
|
|
if (position || elementScroll) {
|
|
if (elementCouldBeScrolled(axis, target)) {
|
|
availableScroll += elementScroll;
|
|
availableScrollTop += position;
|
|
}
|
|
}
|
|
target = target.parentNode;
|
|
} while (
|
|
// portaled content
|
|
!targetInLock && target !== document.body || // self content
|
|
targetInLock && (endTarget.contains(target) || endTarget === target)
|
|
);
|
|
if (isDeltaPositive && (noOverscroll && availableScroll === 0 || !noOverscroll && delta > availableScroll)) {
|
|
shouldCancelScroll = true;
|
|
} else if (!isDeltaPositive && (noOverscroll && availableScrollTop === 0 || !noOverscroll && -delta > availableScrollTop)) {
|
|
shouldCancelScroll = true;
|
|
}
|
|
return shouldCancelScroll;
|
|
}, "handleScroll");
|
|
exports2.handleScroll = handleScroll;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/SideEffect.js
|
|
var require_SideEffect = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/SideEffect.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.RemoveScrollSideCar = exports2.getDeltaXY = exports2.getTouchXY = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var react_remove_scroll_bar_1 = require_es56();
|
|
var react_style_singleton_1 = require_es55();
|
|
var aggresiveCapture_1 = require_aggresiveCapture();
|
|
var handleScroll_1 = require_handleScroll();
|
|
var getTouchXY = /* @__PURE__ */ __name(function(event) {
|
|
return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];
|
|
}, "getTouchXY");
|
|
exports2.getTouchXY = getTouchXY;
|
|
var getDeltaXY = /* @__PURE__ */ __name(function(event) {
|
|
return [event.deltaX, event.deltaY];
|
|
}, "getDeltaXY");
|
|
exports2.getDeltaXY = getDeltaXY;
|
|
var extractRef = /* @__PURE__ */ __name(function(ref) {
|
|
return ref && "current" in ref ? ref.current : ref;
|
|
}, "extractRef");
|
|
var deltaCompare = /* @__PURE__ */ __name(function(x, y) {
|
|
return x[0] === y[0] && x[1] === y[1];
|
|
}, "deltaCompare");
|
|
var generateStyle = /* @__PURE__ */ __name(function(id) {
|
|
return "\n .block-interactivity-".concat(id, " {pointer-events: none;}\n .allow-interactivity-").concat(id, " {pointer-events: all;}\n");
|
|
}, "generateStyle");
|
|
var idCounter = 0;
|
|
var lockStack = [];
|
|
function RemoveScrollSideCar(props) {
|
|
var shouldPreventQueue = React44.useRef([]);
|
|
var touchStartRef = React44.useRef([0, 0]);
|
|
var activeAxis = React44.useRef();
|
|
var id = React44.useState(idCounter++)[0];
|
|
var Style = React44.useState(function() {
|
|
return (0, react_style_singleton_1.styleSingleton)();
|
|
})[0];
|
|
var lastProps = React44.useRef(props);
|
|
React44.useEffect(function() {
|
|
lastProps.current = props;
|
|
}, [props]);
|
|
React44.useEffect(function() {
|
|
if (props.inert) {
|
|
document.body.classList.add("block-interactivity-".concat(id));
|
|
var allow_1 = tslib_1.__spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);
|
|
allow_1.forEach(function(el) {
|
|
return el.classList.add("allow-interactivity-".concat(id));
|
|
});
|
|
return function() {
|
|
document.body.classList.remove("block-interactivity-".concat(id));
|
|
allow_1.forEach(function(el) {
|
|
return el.classList.remove("allow-interactivity-".concat(id));
|
|
});
|
|
};
|
|
}
|
|
return;
|
|
}, [props.inert, props.lockRef.current, props.shards]);
|
|
var shouldCancelEvent = React44.useCallback(function(event, parent) {
|
|
if ("touches" in event && event.touches.length === 2) {
|
|
return !lastProps.current.allowPinchZoom;
|
|
}
|
|
var touch = (0, exports2.getTouchXY)(event);
|
|
var touchStart = touchStartRef.current;
|
|
var deltaX = "deltaX" in event ? event.deltaX : touchStart[0] - touch[0];
|
|
var deltaY = "deltaY" in event ? event.deltaY : touchStart[1] - touch[1];
|
|
var currentAxis;
|
|
var target = event.target;
|
|
var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? "h" : "v";
|
|
if ("touches" in event && moveDirection === "h" && target.type === "range") {
|
|
return false;
|
|
}
|
|
var canBeScrolledInMainDirection = (0, handleScroll_1.locationCouldBeScrolled)(moveDirection, target);
|
|
if (!canBeScrolledInMainDirection) {
|
|
return true;
|
|
}
|
|
if (canBeScrolledInMainDirection) {
|
|
currentAxis = moveDirection;
|
|
} else {
|
|
currentAxis = moveDirection === "v" ? "h" : "v";
|
|
canBeScrolledInMainDirection = (0, handleScroll_1.locationCouldBeScrolled)(moveDirection, target);
|
|
}
|
|
if (!canBeScrolledInMainDirection) {
|
|
return false;
|
|
}
|
|
if (!activeAxis.current && "changedTouches" in event && (deltaX || deltaY)) {
|
|
activeAxis.current = currentAxis;
|
|
}
|
|
if (!currentAxis) {
|
|
return true;
|
|
}
|
|
var cancelingAxis = activeAxis.current || currentAxis;
|
|
return (0, handleScroll_1.handleScroll)(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true);
|
|
}, []);
|
|
var shouldPrevent = React44.useCallback(function(_event) {
|
|
var event = _event;
|
|
if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {
|
|
return;
|
|
}
|
|
var delta = "deltaY" in event ? (0, exports2.getDeltaXY)(event) : (0, exports2.getTouchXY)(event);
|
|
var sourceEvent = shouldPreventQueue.current.filter(function(e) {
|
|
return e.name === event.type && e.target === event.target && deltaCompare(e.delta, delta);
|
|
})[0];
|
|
if (sourceEvent && sourceEvent.should) {
|
|
if (event.cancelable) {
|
|
event.preventDefault();
|
|
}
|
|
return;
|
|
}
|
|
if (!sourceEvent) {
|
|
var shardNodes = (lastProps.current.shards || []).map(extractRef).filter(Boolean).filter(function(node) {
|
|
return node.contains(event.target);
|
|
});
|
|
var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;
|
|
if (shouldStop) {
|
|
if (event.cancelable) {
|
|
event.preventDefault();
|
|
}
|
|
}
|
|
}
|
|
}, []);
|
|
var shouldCancel = React44.useCallback(function(name, delta, target, should) {
|
|
var event = { name, delta, target, should };
|
|
shouldPreventQueue.current.push(event);
|
|
setTimeout(function() {
|
|
shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) {
|
|
return e !== event;
|
|
});
|
|
}, 1);
|
|
}, []);
|
|
var scrollTouchStart = React44.useCallback(function(event) {
|
|
touchStartRef.current = (0, exports2.getTouchXY)(event);
|
|
activeAxis.current = void 0;
|
|
}, []);
|
|
var scrollWheel = React44.useCallback(function(event) {
|
|
shouldCancel(event.type, (0, exports2.getDeltaXY)(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
}, []);
|
|
var scrollTouchMove = React44.useCallback(function(event) {
|
|
shouldCancel(event.type, (0, exports2.getTouchXY)(event), event.target, shouldCancelEvent(event, props.lockRef.current));
|
|
}, []);
|
|
React44.useEffect(function() {
|
|
lockStack.push(Style);
|
|
props.setCallbacks({
|
|
onScrollCapture: scrollWheel,
|
|
onWheelCapture: scrollWheel,
|
|
onTouchMoveCapture: scrollTouchMove
|
|
});
|
|
document.addEventListener("wheel", shouldPrevent, aggresiveCapture_1.nonPassive);
|
|
document.addEventListener("touchmove", shouldPrevent, aggresiveCapture_1.nonPassive);
|
|
document.addEventListener("touchstart", scrollTouchStart, aggresiveCapture_1.nonPassive);
|
|
return function() {
|
|
lockStack = lockStack.filter(function(inst) {
|
|
return inst !== Style;
|
|
});
|
|
document.removeEventListener("wheel", shouldPrevent, aggresiveCapture_1.nonPassive);
|
|
document.removeEventListener("touchmove", shouldPrevent, aggresiveCapture_1.nonPassive);
|
|
document.removeEventListener("touchstart", scrollTouchStart, aggresiveCapture_1.nonPassive);
|
|
};
|
|
}, []);
|
|
var removeScrollBar = props.removeScrollBar, inert = props.inert;
|
|
return React44.createElement(
|
|
React44.Fragment,
|
|
null,
|
|
inert ? React44.createElement(Style, { styles: generateStyle(id) }) : null,
|
|
removeScrollBar ? React44.createElement(react_remove_scroll_bar_1.RemoveScrollBar, { gapMode: "margin" }) : null
|
|
);
|
|
}
|
|
__name(RemoveScrollSideCar, "RemoveScrollSideCar");
|
|
exports2.RemoveScrollSideCar = RemoveScrollSideCar;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/sidecar.js
|
|
var require_sidecar = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/sidecar.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
var use_sidecar_1 = require_es53();
|
|
var SideEffect_1 = require_SideEffect();
|
|
var medium_1 = require_medium2();
|
|
exports2.default = (0, use_sidecar_1.exportSidecar)(medium_1.effectCar, SideEffect_1.RemoveScrollSideCar);
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/Combination.js
|
|
var require_Combination = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/Combination.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var React44 = tslib_1.__importStar(require("react"));
|
|
var UI_1 = require_UI();
|
|
var sidecar_1 = tslib_1.__importDefault(require_sidecar());
|
|
var ReactRemoveScroll = React44.forwardRef(function(props, ref) {
|
|
return React44.createElement(UI_1.RemoveScroll, tslib_1.__assign({}, props, { ref, sideCar: sidecar_1.default }));
|
|
});
|
|
ReactRemoveScroll.classNames = UI_1.RemoveScroll.classNames;
|
|
exports2.default = ReactRemoveScroll;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-remove-scroll/dist/es5/index.js
|
|
var require_es57 = __commonJS({
|
|
"node_modules/react-remove-scroll/dist/es5/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
exports2.RemoveScroll = void 0;
|
|
var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
|
|
var Combination_1 = tslib_1.__importDefault(require_Combination());
|
|
exports2.RemoveScroll = Combination_1.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/interopRequireDefault.js
|
|
var require_interopRequireDefault = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/interopRequireDefault.js"(exports2, module2) {
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
"default": obj
|
|
};
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
module2.exports = _interopRequireDefault, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/isDisabled.js
|
|
var require_isDisabled = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/isDisabled.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var isDisabled2 = /* @__PURE__ */ __name((props) => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf("disabled") > -1, "isDisabled");
|
|
var _default = isDisabled2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.js
|
|
var require_propsToAriaRole = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAriaRole.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var accessibilityRoleToWebRole = {
|
|
adjustable: "slider",
|
|
button: "button",
|
|
header: "heading",
|
|
image: "img",
|
|
imagebutton: null,
|
|
keyboardkey: null,
|
|
label: null,
|
|
link: "link",
|
|
none: "presentation",
|
|
search: "search",
|
|
summary: "region",
|
|
text: null
|
|
};
|
|
var propsToAriaRole = /* @__PURE__ */ __name((_ref) => {
|
|
var accessibilityRole = _ref.accessibilityRole, role = _ref.role;
|
|
var _role = role || accessibilityRole;
|
|
if (_role) {
|
|
var inferredRole = accessibilityRoleToWebRole[_role];
|
|
if (inferredRole !== null) {
|
|
return inferredRole || _role;
|
|
}
|
|
}
|
|
}, "propsToAriaRole");
|
|
var _default = propsToAriaRole;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.js
|
|
var require_propsToAccessibilityComponent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/propsToAccessibilityComponent.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _propsToAriaRole = _interopRequireDefault(require_propsToAriaRole());
|
|
var roleComponents = {
|
|
article: "article",
|
|
banner: "header",
|
|
blockquote: "blockquote",
|
|
button: "button",
|
|
code: "code",
|
|
complementary: "aside",
|
|
contentinfo: "footer",
|
|
deletion: "del",
|
|
emphasis: "em",
|
|
figure: "figure",
|
|
insertion: "ins",
|
|
form: "form",
|
|
list: "ul",
|
|
listitem: "li",
|
|
main: "main",
|
|
navigation: "nav",
|
|
paragraph: "p",
|
|
region: "section",
|
|
strong: "strong"
|
|
};
|
|
var emptyObject = {};
|
|
var propsToAccessibilityComponent = /* @__PURE__ */ __name(function propsToAccessibilityComponent2(props) {
|
|
if (props === void 0) {
|
|
props = emptyObject;
|
|
}
|
|
if (props.accessibilityRole === "label") {
|
|
return "label";
|
|
}
|
|
var role = (0, _propsToAriaRole.default)(props);
|
|
if (role) {
|
|
if (role === "heading") {
|
|
var level = props.accessibilityLevel || props["aria-level"];
|
|
if (level != null) {
|
|
return "h" + level;
|
|
}
|
|
return "h1";
|
|
}
|
|
return roleComponents[role];
|
|
}
|
|
}, "propsToAccessibilityComponent");
|
|
var _default = propsToAccessibilityComponent;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/index.js
|
|
var require_AccessibilityUtil = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/AccessibilityUtil/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _isDisabled = _interopRequireDefault(require_isDisabled());
|
|
var _propsToAccessibilityComponent = _interopRequireDefault(require_propsToAccessibilityComponent());
|
|
var _propsToAriaRole = _interopRequireDefault(require_propsToAriaRole());
|
|
var AccessibilityUtil = {
|
|
isDisabled: _isDisabled.default,
|
|
propsToAccessibilityComponent: _propsToAccessibilityComponent.default,
|
|
propsToAriaRole: _propsToAriaRole.default
|
|
};
|
|
var _default = AccessibilityUtil;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/typeof.js
|
|
var require_typeof = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/typeof.js"(exports2, module2) {
|
|
function _typeof(o) {
|
|
"@babel/helpers - typeof";
|
|
return module2.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
|
|
return typeof o2;
|
|
} : function(o2) {
|
|
return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
|
|
}, module2.exports.__esModule = true, module2.exports["default"] = module2.exports, _typeof(o);
|
|
}
|
|
__name(_typeof, "_typeof");
|
|
module2.exports = _typeof, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/toPrimitive.js
|
|
var require_toPrimitive = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/toPrimitive.js"(exports2, module2) {
|
|
var _typeof = require_typeof()["default"];
|
|
function toPrimitive(t, r) {
|
|
if ("object" != _typeof(t) || !t)
|
|
return t;
|
|
var e = t[Symbol.toPrimitive];
|
|
if (void 0 !== e) {
|
|
var i = e.call(t, r || "default");
|
|
if ("object" != _typeof(i))
|
|
return i;
|
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
}
|
|
return ("string" === r ? String : Number)(t);
|
|
}
|
|
__name(toPrimitive, "toPrimitive");
|
|
module2.exports = toPrimitive, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/toPropertyKey.js
|
|
var require_toPropertyKey = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/toPropertyKey.js"(exports2, module2) {
|
|
var _typeof = require_typeof()["default"];
|
|
var toPrimitive = require_toPrimitive();
|
|
function toPropertyKey(t) {
|
|
var i = toPrimitive(t, "string");
|
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
}
|
|
__name(toPropertyKey, "toPropertyKey");
|
|
module2.exports = toPropertyKey, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/defineProperty.js
|
|
var require_defineProperty = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/defineProperty.js"(exports2, module2) {
|
|
var toPropertyKey = require_toPropertyKey();
|
|
function _defineProperty(obj, key, value) {
|
|
key = toPropertyKey(key);
|
|
if (key in obj) {
|
|
Object.defineProperty(obj, key, {
|
|
value,
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true
|
|
});
|
|
} else {
|
|
obj[key] = value;
|
|
}
|
|
return obj;
|
|
}
|
|
__name(_defineProperty, "_defineProperty");
|
|
module2.exports = _defineProperty, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/objectSpread2.js
|
|
var require_objectSpread2 = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/objectSpread2.js"(exports2, module2) {
|
|
var defineProperty = require_defineProperty();
|
|
function ownKeys(e, r) {
|
|
var t = Object.keys(e);
|
|
if (Object.getOwnPropertySymbols) {
|
|
var o = Object.getOwnPropertySymbols(e);
|
|
r && (o = o.filter(function(r2) {
|
|
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
})), t.push.apply(t, o);
|
|
}
|
|
return t;
|
|
}
|
|
__name(ownKeys, "ownKeys");
|
|
function _objectSpread2(e) {
|
|
for (var r = 1; r < arguments.length; r++) {
|
|
var t = null != arguments[r] ? arguments[r] : {};
|
|
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
defineProperty(e, r2, t[r2]);
|
|
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
});
|
|
}
|
|
return e;
|
|
}
|
|
__name(_objectSpread2, "_objectSpread2");
|
|
module2.exports = _objectSpread2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js
|
|
var require_objectWithoutPropertiesLoose = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js"(exports2, module2) {
|
|
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
if (source == null)
|
|
return {};
|
|
var target = {};
|
|
for (var key in source) {
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
if (excluded.indexOf(key) >= 0)
|
|
continue;
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
return target;
|
|
}
|
|
__name(_objectWithoutPropertiesLoose, "_objectWithoutPropertiesLoose");
|
|
module2.exports = _objectWithoutPropertiesLoose, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/unitlessNumbers.js
|
|
var require_unitlessNumbers = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/unitlessNumbers.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var unitlessNumbers = {
|
|
animationIterationCount: true,
|
|
aspectRatio: true,
|
|
borderImageOutset: true,
|
|
borderImageSlice: true,
|
|
borderImageWidth: true,
|
|
boxFlex: true,
|
|
boxFlexGroup: true,
|
|
boxOrdinalGroup: true,
|
|
columnCount: true,
|
|
flex: true,
|
|
flexGrow: true,
|
|
flexOrder: true,
|
|
flexPositive: true,
|
|
flexShrink: true,
|
|
flexNegative: true,
|
|
fontWeight: true,
|
|
gridRow: true,
|
|
gridRowEnd: true,
|
|
gridRowGap: true,
|
|
gridRowStart: true,
|
|
gridColumn: true,
|
|
gridColumnEnd: true,
|
|
gridColumnGap: true,
|
|
gridColumnStart: true,
|
|
lineClamp: true,
|
|
opacity: true,
|
|
order: true,
|
|
orphans: true,
|
|
tabSize: true,
|
|
widows: true,
|
|
zIndex: true,
|
|
zoom: true,
|
|
// SVG-related
|
|
fillOpacity: true,
|
|
floodOpacity: true,
|
|
stopOpacity: true,
|
|
strokeDasharray: true,
|
|
strokeDashoffset: true,
|
|
strokeMiterlimit: true,
|
|
strokeOpacity: true,
|
|
strokeWidth: true,
|
|
// transform types
|
|
scale: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
scaleZ: true,
|
|
// RN properties
|
|
shadowOpacity: true
|
|
};
|
|
var prefixes = ["ms", "Moz", "O", "Webkit"];
|
|
var prefixKey = /* @__PURE__ */ __name((prefix, key) => {
|
|
return prefix + key.charAt(0).toUpperCase() + key.substring(1);
|
|
}, "prefixKey");
|
|
Object.keys(unitlessNumbers).forEach((prop) => {
|
|
prefixes.forEach((prefix) => {
|
|
unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];
|
|
});
|
|
});
|
|
var _default = unitlessNumbers;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/isWebColor/index.js
|
|
var require_isWebColor = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/isWebColor/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var isWebColor = /* @__PURE__ */ __name((color2) => color2 === "currentcolor" || color2 === "currentColor" || color2 === "inherit" || color2.indexOf("var(") === 0, "isWebColor");
|
|
var _default = isWebColor;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/@react-native/normalize-colors/index.js
|
|
var require_normalize_colors = __commonJS({
|
|
"node_modules/@react-native/normalize-colors/index.js"(exports2, module2) {
|
|
"use strict";
|
|
function normalizeColor(color2) {
|
|
if (typeof color2 === "number") {
|
|
if (color2 >>> 0 === color2 && color2 >= 0 && color2 <= 4294967295) {
|
|
return color2;
|
|
}
|
|
return null;
|
|
}
|
|
if (typeof color2 !== "string") {
|
|
return null;
|
|
}
|
|
const matchers = getMatchers();
|
|
let match;
|
|
if (match = matchers.hex6.exec(color2)) {
|
|
return parseInt(match[1] + "ff", 16) >>> 0;
|
|
}
|
|
const colorFromKeyword = normalizeKeyword(color2);
|
|
if (colorFromKeyword != null) {
|
|
return colorFromKeyword;
|
|
}
|
|
if (match = matchers.rgb.exec(color2)) {
|
|
return (parse255(match[1]) << 24 | // r
|
|
parse255(match[2]) << 16 | // g
|
|
parse255(match[3]) << 8 | // b
|
|
255) >>> // a
|
|
0;
|
|
}
|
|
if (match = matchers.rgba.exec(color2)) {
|
|
if (match[6] !== void 0) {
|
|
return (parse255(match[6]) << 24 | // r
|
|
parse255(match[7]) << 16 | // g
|
|
parse255(match[8]) << 8 | // b
|
|
parse1(match[9])) >>> // a
|
|
0;
|
|
}
|
|
return (parse255(match[2]) << 24 | // r
|
|
parse255(match[3]) << 16 | // g
|
|
parse255(match[4]) << 8 | // b
|
|
parse1(match[5])) >>> // a
|
|
0;
|
|
}
|
|
if (match = matchers.hex3.exec(color2)) {
|
|
return parseInt(
|
|
match[1] + match[1] + // r
|
|
match[2] + match[2] + // g
|
|
match[3] + match[3] + // b
|
|
"ff",
|
|
// a
|
|
16
|
|
) >>> 0;
|
|
}
|
|
if (match = matchers.hex8.exec(color2)) {
|
|
return parseInt(match[1], 16) >>> 0;
|
|
}
|
|
if (match = matchers.hex4.exec(color2)) {
|
|
return parseInt(
|
|
match[1] + match[1] + // r
|
|
match[2] + match[2] + // g
|
|
match[3] + match[3] + // b
|
|
match[4] + match[4],
|
|
// a
|
|
16
|
|
) >>> 0;
|
|
}
|
|
if (match = matchers.hsl.exec(color2)) {
|
|
return (hslToRgb(
|
|
parse360(match[1]),
|
|
// h
|
|
parsePercentage(match[2]),
|
|
// s
|
|
parsePercentage(match[3])
|
|
// l
|
|
) | 255) >>> // a
|
|
0;
|
|
}
|
|
if (match = matchers.hsla.exec(color2)) {
|
|
if (match[6] !== void 0) {
|
|
return (hslToRgb(
|
|
parse360(match[6]),
|
|
// h
|
|
parsePercentage(match[7]),
|
|
// s
|
|
parsePercentage(match[8])
|
|
// l
|
|
) | parse1(match[9])) >>> // a
|
|
0;
|
|
}
|
|
return (hslToRgb(
|
|
parse360(match[2]),
|
|
// h
|
|
parsePercentage(match[3]),
|
|
// s
|
|
parsePercentage(match[4])
|
|
// l
|
|
) | parse1(match[5])) >>> // a
|
|
0;
|
|
}
|
|
if (match = matchers.hwb.exec(color2)) {
|
|
return (hwbToRgb(
|
|
parse360(match[1]),
|
|
// h
|
|
parsePercentage(match[2]),
|
|
// w
|
|
parsePercentage(match[3])
|
|
// b
|
|
) | 255) >>> // a
|
|
0;
|
|
}
|
|
return null;
|
|
}
|
|
__name(normalizeColor, "normalizeColor");
|
|
function hue2rgb(p, q, t) {
|
|
if (t < 0) {
|
|
t += 1;
|
|
}
|
|
if (t > 1) {
|
|
t -= 1;
|
|
}
|
|
if (t < 1 / 6) {
|
|
return p + (q - p) * 6 * t;
|
|
}
|
|
if (t < 1 / 2) {
|
|
return q;
|
|
}
|
|
if (t < 2 / 3) {
|
|
return p + (q - p) * (2 / 3 - t) * 6;
|
|
}
|
|
return p;
|
|
}
|
|
__name(hue2rgb, "hue2rgb");
|
|
function hslToRgb(h, s, l) {
|
|
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
const p = 2 * l - q;
|
|
const r = hue2rgb(p, q, h + 1 / 3);
|
|
const g = hue2rgb(p, q, h);
|
|
const b = hue2rgb(p, q, h - 1 / 3);
|
|
return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;
|
|
}
|
|
__name(hslToRgb, "hslToRgb");
|
|
function hwbToRgb(h, w, b) {
|
|
if (w + b >= 1) {
|
|
const gray3 = Math.round(w * 255 / (w + b));
|
|
return gray3 << 24 | gray3 << 16 | gray3 << 8;
|
|
}
|
|
const red3 = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;
|
|
const green3 = hue2rgb(0, 1, h) * (1 - w - b) + w;
|
|
const blue3 = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;
|
|
return Math.round(red3 * 255) << 24 | Math.round(green3 * 255) << 16 | Math.round(blue3 * 255) << 8;
|
|
}
|
|
__name(hwbToRgb, "hwbToRgb");
|
|
var NUMBER = "[-+]?\\d*\\.?\\d+";
|
|
var PERCENTAGE = NUMBER + "%";
|
|
function call(...args) {
|
|
return "\\(\\s*(" + args.join(")\\s*,?\\s*(") + ")\\s*\\)";
|
|
}
|
|
__name(call, "call");
|
|
function callWithSlashSeparator(...args) {
|
|
return "\\(\\s*(" + args.slice(0, args.length - 1).join(")\\s*,?\\s*(") + ")\\s*/\\s*(" + args[args.length - 1] + ")\\s*\\)";
|
|
}
|
|
__name(callWithSlashSeparator, "callWithSlashSeparator");
|
|
function commaSeparatedCall(...args) {
|
|
return "\\(\\s*(" + args.join(")\\s*,\\s*(") + ")\\s*\\)";
|
|
}
|
|
__name(commaSeparatedCall, "commaSeparatedCall");
|
|
var cachedMatchers;
|
|
function getMatchers() {
|
|
if (cachedMatchers === void 0) {
|
|
cachedMatchers = {
|
|
rgb: new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER)),
|
|
rgba: new RegExp(
|
|
"rgba(" + commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) + "|" + callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) + ")"
|
|
),
|
|
hsl: new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE)),
|
|
hsla: new RegExp(
|
|
"hsla(" + commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + "|" + callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) + ")"
|
|
),
|
|
hwb: new RegExp("hwb" + call(NUMBER, PERCENTAGE, PERCENTAGE)),
|
|
hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
|
hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
|
hex6: /^#([0-9a-fA-F]{6})$/,
|
|
hex8: /^#([0-9a-fA-F]{8})$/
|
|
};
|
|
}
|
|
return cachedMatchers;
|
|
}
|
|
__name(getMatchers, "getMatchers");
|
|
function parse255(str) {
|
|
const int = parseInt(str, 10);
|
|
if (int < 0) {
|
|
return 0;
|
|
}
|
|
if (int > 255) {
|
|
return 255;
|
|
}
|
|
return int;
|
|
}
|
|
__name(parse255, "parse255");
|
|
function parse360(str) {
|
|
const int = parseFloat(str);
|
|
return (int % 360 + 360) % 360 / 360;
|
|
}
|
|
__name(parse360, "parse360");
|
|
function parse1(str) {
|
|
const num = parseFloat(str);
|
|
if (num < 0) {
|
|
return 0;
|
|
}
|
|
if (num > 1) {
|
|
return 255;
|
|
}
|
|
return Math.round(num * 255);
|
|
}
|
|
__name(parse1, "parse1");
|
|
function parsePercentage(str) {
|
|
const int = parseFloat(str);
|
|
if (int < 0) {
|
|
return 0;
|
|
}
|
|
if (int > 100) {
|
|
return 1;
|
|
}
|
|
return int / 100;
|
|
}
|
|
__name(parsePercentage, "parsePercentage");
|
|
function normalizeKeyword(name) {
|
|
switch (name) {
|
|
case "transparent":
|
|
return 0;
|
|
case "aliceblue":
|
|
return 4042850303;
|
|
case "antiquewhite":
|
|
return 4209760255;
|
|
case "aqua":
|
|
return 16777215;
|
|
case "aquamarine":
|
|
return 2147472639;
|
|
case "azure":
|
|
return 4043309055;
|
|
case "beige":
|
|
return 4126530815;
|
|
case "bisque":
|
|
return 4293182719;
|
|
case "black":
|
|
return 255;
|
|
case "blanchedalmond":
|
|
return 4293643775;
|
|
case "blue":
|
|
return 65535;
|
|
case "blueviolet":
|
|
return 2318131967;
|
|
case "brown":
|
|
return 2771004159;
|
|
case "burlywood":
|
|
return 3736635391;
|
|
case "burntsienna":
|
|
return 3934150143;
|
|
case "cadetblue":
|
|
return 1604231423;
|
|
case "chartreuse":
|
|
return 2147418367;
|
|
case "chocolate":
|
|
return 3530104575;
|
|
case "coral":
|
|
return 4286533887;
|
|
case "cornflowerblue":
|
|
return 1687547391;
|
|
case "cornsilk":
|
|
return 4294499583;
|
|
case "crimson":
|
|
return 3692313855;
|
|
case "cyan":
|
|
return 16777215;
|
|
case "darkblue":
|
|
return 35839;
|
|
case "darkcyan":
|
|
return 9145343;
|
|
case "darkgoldenrod":
|
|
return 3095792639;
|
|
case "darkgray":
|
|
return 2846468607;
|
|
case "darkgreen":
|
|
return 6553855;
|
|
case "darkgrey":
|
|
return 2846468607;
|
|
case "darkkhaki":
|
|
return 3182914559;
|
|
case "darkmagenta":
|
|
return 2332068863;
|
|
case "darkolivegreen":
|
|
return 1433087999;
|
|
case "darkorange":
|
|
return 4287365375;
|
|
case "darkorchid":
|
|
return 2570243327;
|
|
case "darkred":
|
|
return 2332033279;
|
|
case "darksalmon":
|
|
return 3918953215;
|
|
case "darkseagreen":
|
|
return 2411499519;
|
|
case "darkslateblue":
|
|
return 1211993087;
|
|
case "darkslategray":
|
|
return 793726975;
|
|
case "darkslategrey":
|
|
return 793726975;
|
|
case "darkturquoise":
|
|
return 13554175;
|
|
case "darkviolet":
|
|
return 2483082239;
|
|
case "deeppink":
|
|
return 4279538687;
|
|
case "deepskyblue":
|
|
return 12582911;
|
|
case "dimgray":
|
|
return 1768516095;
|
|
case "dimgrey":
|
|
return 1768516095;
|
|
case "dodgerblue":
|
|
return 512819199;
|
|
case "firebrick":
|
|
return 2988581631;
|
|
case "floralwhite":
|
|
return 4294635775;
|
|
case "forestgreen":
|
|
return 579543807;
|
|
case "fuchsia":
|
|
return 4278255615;
|
|
case "gainsboro":
|
|
return 3705462015;
|
|
case "ghostwhite":
|
|
return 4177068031;
|
|
case "gold":
|
|
return 4292280575;
|
|
case "goldenrod":
|
|
return 3668254975;
|
|
case "gray":
|
|
return 2155905279;
|
|
case "green":
|
|
return 8388863;
|
|
case "greenyellow":
|
|
return 2919182335;
|
|
case "grey":
|
|
return 2155905279;
|
|
case "honeydew":
|
|
return 4043305215;
|
|
case "hotpink":
|
|
return 4285117695;
|
|
case "indianred":
|
|
return 3445382399;
|
|
case "indigo":
|
|
return 1258324735;
|
|
case "ivory":
|
|
return 4294963455;
|
|
case "khaki":
|
|
return 4041641215;
|
|
case "lavender":
|
|
return 3873897215;
|
|
case "lavenderblush":
|
|
return 4293981695;
|
|
case "lawngreen":
|
|
return 2096890111;
|
|
case "lemonchiffon":
|
|
return 4294626815;
|
|
case "lightblue":
|
|
return 2916673279;
|
|
case "lightcoral":
|
|
return 4034953471;
|
|
case "lightcyan":
|
|
return 3774873599;
|
|
case "lightgoldenrodyellow":
|
|
return 4210742015;
|
|
case "lightgray":
|
|
return 3553874943;
|
|
case "lightgreen":
|
|
return 2431553791;
|
|
case "lightgrey":
|
|
return 3553874943;
|
|
case "lightpink":
|
|
return 4290167295;
|
|
case "lightsalmon":
|
|
return 4288707327;
|
|
case "lightseagreen":
|
|
return 548580095;
|
|
case "lightskyblue":
|
|
return 2278488831;
|
|
case "lightslategray":
|
|
return 2005441023;
|
|
case "lightslategrey":
|
|
return 2005441023;
|
|
case "lightsteelblue":
|
|
return 2965692159;
|
|
case "lightyellow":
|
|
return 4294959359;
|
|
case "lime":
|
|
return 16711935;
|
|
case "limegreen":
|
|
return 852308735;
|
|
case "linen":
|
|
return 4210091775;
|
|
case "magenta":
|
|
return 4278255615;
|
|
case "maroon":
|
|
return 2147483903;
|
|
case "mediumaquamarine":
|
|
return 1724754687;
|
|
case "mediumblue":
|
|
return 52735;
|
|
case "mediumorchid":
|
|
return 3126187007;
|
|
case "mediumpurple":
|
|
return 2473647103;
|
|
case "mediumseagreen":
|
|
return 1018393087;
|
|
case "mediumslateblue":
|
|
return 2070474495;
|
|
case "mediumspringgreen":
|
|
return 16423679;
|
|
case "mediumturquoise":
|
|
return 1221709055;
|
|
case "mediumvioletred":
|
|
return 3340076543;
|
|
case "midnightblue":
|
|
return 421097727;
|
|
case "mintcream":
|
|
return 4127193855;
|
|
case "mistyrose":
|
|
return 4293190143;
|
|
case "moccasin":
|
|
return 4293178879;
|
|
case "navajowhite":
|
|
return 4292783615;
|
|
case "navy":
|
|
return 33023;
|
|
case "oldlace":
|
|
return 4260751103;
|
|
case "olive":
|
|
return 2155872511;
|
|
case "olivedrab":
|
|
return 1804477439;
|
|
case "orange":
|
|
return 4289003775;
|
|
case "orangered":
|
|
return 4282712319;
|
|
case "orchid":
|
|
return 3664828159;
|
|
case "palegoldenrod":
|
|
return 4008225535;
|
|
case "palegreen":
|
|
return 2566625535;
|
|
case "paleturquoise":
|
|
return 2951671551;
|
|
case "palevioletred":
|
|
return 3681588223;
|
|
case "papayawhip":
|
|
return 4293907967;
|
|
case "peachpuff":
|
|
return 4292524543;
|
|
case "peru":
|
|
return 3448061951;
|
|
case "pink":
|
|
return 4290825215;
|
|
case "plum":
|
|
return 3718307327;
|
|
case "powderblue":
|
|
return 2967529215;
|
|
case "purple":
|
|
return 2147516671;
|
|
case "rebeccapurple":
|
|
return 1714657791;
|
|
case "red":
|
|
return 4278190335;
|
|
case "rosybrown":
|
|
return 3163525119;
|
|
case "royalblue":
|
|
return 1097458175;
|
|
case "saddlebrown":
|
|
return 2336560127;
|
|
case "salmon":
|
|
return 4202722047;
|
|
case "sandybrown":
|
|
return 4104413439;
|
|
case "seagreen":
|
|
return 780883967;
|
|
case "seashell":
|
|
return 4294307583;
|
|
case "sienna":
|
|
return 2689740287;
|
|
case "silver":
|
|
return 3233857791;
|
|
case "skyblue":
|
|
return 2278484991;
|
|
case "slateblue":
|
|
return 1784335871;
|
|
case "slategray":
|
|
return 1887473919;
|
|
case "slategrey":
|
|
return 1887473919;
|
|
case "snow":
|
|
return 4294638335;
|
|
case "springgreen":
|
|
return 16744447;
|
|
case "steelblue":
|
|
return 1182971135;
|
|
case "tan":
|
|
return 3535047935;
|
|
case "teal":
|
|
return 8421631;
|
|
case "thistle":
|
|
return 3636451583;
|
|
case "tomato":
|
|
return 4284696575;
|
|
case "turquoise":
|
|
return 1088475391;
|
|
case "violet":
|
|
return 4001558271;
|
|
case "wheat":
|
|
return 4125012991;
|
|
case "white":
|
|
return 4294967295;
|
|
case "whitesmoke":
|
|
return 4126537215;
|
|
case "yellow":
|
|
return 4294902015;
|
|
case "yellowgreen":
|
|
return 2597139199;
|
|
}
|
|
return null;
|
|
}
|
|
__name(normalizeKeyword, "normalizeKeyword");
|
|
module2.exports = normalizeColor;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/processColor/index.js
|
|
var require_processColor = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/processColor/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _normalizeColors = _interopRequireDefault(require_normalize_colors());
|
|
var processColor = /* @__PURE__ */ __name((color2) => {
|
|
if (color2 === void 0 || color2 === null) {
|
|
return color2;
|
|
}
|
|
var int32Color = (0, _normalizeColors.default)(color2);
|
|
if (int32Color === void 0 || int32Color === null) {
|
|
return void 0;
|
|
}
|
|
int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;
|
|
return int32Color;
|
|
}, "processColor");
|
|
var _default = processColor;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeColor.js
|
|
var require_normalizeColor = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeColor.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _isWebColor = _interopRequireDefault(require_isWebColor());
|
|
var _processColor = _interopRequireDefault(require_processColor());
|
|
var normalizeColor = /* @__PURE__ */ __name(function normalizeColor2(color2, opacity) {
|
|
if (opacity === void 0) {
|
|
opacity = 1;
|
|
}
|
|
if (color2 == null)
|
|
return;
|
|
if (typeof color2 === "string" && (0, _isWebColor.default)(color2)) {
|
|
return color2;
|
|
}
|
|
var colorInt = (0, _processColor.default)(color2);
|
|
if (colorInt != null) {
|
|
var r = colorInt >> 16 & 255;
|
|
var g = colorInt >> 8 & 255;
|
|
var b = colorInt & 255;
|
|
var a = (colorInt >> 24 & 255) / 255;
|
|
var alpha = (a * opacity).toFixed(2);
|
|
return "rgba(" + r + "," + g + "," + b + "," + alpha + ")";
|
|
}
|
|
}, "normalizeColor");
|
|
var _default = normalizeColor;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeValueWithProperty.js
|
|
var require_normalizeValueWithProperty = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/normalizeValueWithProperty.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = normalizeValueWithProperty;
|
|
var _unitlessNumbers = _interopRequireDefault(require_unitlessNumbers());
|
|
var _normalizeColor = _interopRequireDefault(require_normalizeColor());
|
|
var colorProps = {
|
|
backgroundColor: true,
|
|
borderColor: true,
|
|
borderTopColor: true,
|
|
borderRightColor: true,
|
|
borderBottomColor: true,
|
|
borderLeftColor: true,
|
|
color: true,
|
|
shadowColor: true,
|
|
textDecorationColor: true,
|
|
textShadowColor: true
|
|
};
|
|
function normalizeValueWithProperty(value, property) {
|
|
var returnValue = value;
|
|
if ((property == null || !_unitlessNumbers.default[property]) && typeof value === "number") {
|
|
returnValue = value + "px";
|
|
} else if (property != null && colorProps[property]) {
|
|
returnValue = (0, _normalizeColor.default)(value);
|
|
}
|
|
return returnValue;
|
|
}
|
|
__name(normalizeValueWithProperty, "normalizeValueWithProperty");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/canUseDom/index.js
|
|
var require_canUseDom = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/canUseDom/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
|
|
var _default = canUseDOM;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle.js
|
|
var require_createReactDOMStyle = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/createReactDOMStyle.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var emptyObject = {};
|
|
var supportsCSS3TextDecoration = !_canUseDom.default || window.CSS != null && window.CSS.supports != null && (window.CSS.supports("text-decoration-line", "none") || window.CSS.supports("-webkit-text-decoration-line", "none"));
|
|
var MONOSPACE_FONT_STACK = "monospace,monospace";
|
|
var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif';
|
|
var STYLE_SHORT_FORM_EXPANSIONS = {
|
|
borderColor: ["borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor"],
|
|
borderBlockColor: ["borderTopColor", "borderBottomColor"],
|
|
borderInlineColor: ["borderRightColor", "borderLeftColor"],
|
|
borderRadius: ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
|
|
borderStyle: ["borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle"],
|
|
borderBlockStyle: ["borderTopStyle", "borderBottomStyle"],
|
|
borderInlineStyle: ["borderRightStyle", "borderLeftStyle"],
|
|
borderWidth: ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"],
|
|
borderBlockWidth: ["borderTopWidth", "borderBottomWidth"],
|
|
borderInlineWidth: ["borderRightWidth", "borderLeftWidth"],
|
|
insetBlock: ["top", "bottom"],
|
|
insetInline: ["left", "right"],
|
|
marginBlock: ["marginTop", "marginBottom"],
|
|
marginInline: ["marginRight", "marginLeft"],
|
|
paddingBlock: ["paddingTop", "paddingBottom"],
|
|
paddingInline: ["paddingRight", "paddingLeft"],
|
|
overflow: ["overflowX", "overflowY"],
|
|
overscrollBehavior: ["overscrollBehaviorX", "overscrollBehaviorY"],
|
|
borderBlockStartColor: ["borderTopColor"],
|
|
borderBlockStartStyle: ["borderTopStyle"],
|
|
borderBlockStartWidth: ["borderTopWidth"],
|
|
borderBlockEndColor: ["borderBottomColor"],
|
|
borderBlockEndStyle: ["borderBottomStyle"],
|
|
borderBlockEndWidth: ["borderBottomWidth"],
|
|
//borderInlineStartColor: ['borderLeftColor'],
|
|
//borderInlineStartStyle: ['borderLeftStyle'],
|
|
//borderInlineStartWidth: ['borderLeftWidth'],
|
|
//borderInlineEndColor: ['borderRightColor'],
|
|
//borderInlineEndStyle: ['borderRightStyle'],
|
|
//borderInlineEndWidth: ['borderRightWidth'],
|
|
borderEndStartRadius: ["borderBottomLeftRadius"],
|
|
borderEndEndRadius: ["borderBottomRightRadius"],
|
|
borderStartStartRadius: ["borderTopLeftRadius"],
|
|
borderStartEndRadius: ["borderTopRightRadius"],
|
|
insetBlockEnd: ["bottom"],
|
|
insetBlockStart: ["top"],
|
|
//insetInlineEnd: ['right'],
|
|
//insetInlineStart: ['left'],
|
|
marginBlockStart: ["marginTop"],
|
|
marginBlockEnd: ["marginBottom"],
|
|
//marginInlineStart: ['marginLeft'],
|
|
//marginInlineEnd: ['marginRight'],
|
|
paddingBlockStart: ["paddingTop"],
|
|
paddingBlockEnd: ["paddingBottom"]
|
|
//paddingInlineStart: ['marginLeft'],
|
|
//paddingInlineEnd: ['marginRight'],
|
|
};
|
|
var createReactDOMStyle = /* @__PURE__ */ __name((style, isInline) => {
|
|
if (!style) {
|
|
return emptyObject;
|
|
}
|
|
var resolvedStyle = {};
|
|
var _loop = /* @__PURE__ */ __name(function _loop2() {
|
|
var value = style[prop];
|
|
if (
|
|
// Ignore everything with a null value
|
|
value == null
|
|
) {
|
|
return "continue";
|
|
}
|
|
if (prop === "backgroundClip") {
|
|
if (value === "text") {
|
|
resolvedStyle.backgroundClip = value;
|
|
resolvedStyle.WebkitBackgroundClip = value;
|
|
}
|
|
} else if (prop === "flex") {
|
|
if (value === -1) {
|
|
resolvedStyle.flexGrow = 0;
|
|
resolvedStyle.flexShrink = 1;
|
|
resolvedStyle.flexBasis = "auto";
|
|
} else {
|
|
resolvedStyle.flex = value;
|
|
}
|
|
} else if (prop === "font") {
|
|
resolvedStyle[prop] = value.replace("System", SYSTEM_FONT_STACK);
|
|
} else if (prop === "fontFamily") {
|
|
if (value.indexOf("System") > -1) {
|
|
var stack = value.split(/,\s*/);
|
|
stack[stack.indexOf("System")] = SYSTEM_FONT_STACK;
|
|
resolvedStyle[prop] = stack.join(",");
|
|
} else if (value === "monospace") {
|
|
resolvedStyle[prop] = MONOSPACE_FONT_STACK;
|
|
} else {
|
|
resolvedStyle[prop] = value;
|
|
}
|
|
} else if (prop === "textDecorationLine") {
|
|
if (!supportsCSS3TextDecoration) {
|
|
resolvedStyle.textDecoration = value;
|
|
} else {
|
|
resolvedStyle.textDecorationLine = value;
|
|
}
|
|
} else if (prop === "writingDirection") {
|
|
resolvedStyle.direction = value;
|
|
} else {
|
|
var _value = (0, _normalizeValueWithProperty.default)(style[prop], prop);
|
|
var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];
|
|
if (isInline && prop === "inset") {
|
|
if (style.insetInline == null) {
|
|
resolvedStyle.left = _value;
|
|
resolvedStyle.right = _value;
|
|
}
|
|
if (style.insetBlock == null) {
|
|
resolvedStyle.top = _value;
|
|
resolvedStyle.bottom = _value;
|
|
}
|
|
} else if (isInline && prop === "margin") {
|
|
if (style.marginInline == null) {
|
|
resolvedStyle.marginLeft = _value;
|
|
resolvedStyle.marginRight = _value;
|
|
}
|
|
if (style.marginBlock == null) {
|
|
resolvedStyle.marginTop = _value;
|
|
resolvedStyle.marginBottom = _value;
|
|
}
|
|
} else if (isInline && prop === "padding") {
|
|
if (style.paddingInline == null) {
|
|
resolvedStyle.paddingLeft = _value;
|
|
resolvedStyle.paddingRight = _value;
|
|
}
|
|
if (style.paddingBlock == null) {
|
|
resolvedStyle.paddingTop = _value;
|
|
resolvedStyle.paddingBottom = _value;
|
|
}
|
|
} else if (longFormProperties) {
|
|
longFormProperties.forEach((longForm, i) => {
|
|
if (style[longForm] == null) {
|
|
resolvedStyle[longForm] = _value;
|
|
}
|
|
});
|
|
} else {
|
|
resolvedStyle[prop] = _value;
|
|
}
|
|
}
|
|
}, "_loop");
|
|
for (var prop in style) {
|
|
var _ret = _loop();
|
|
if (_ret === "continue")
|
|
continue;
|
|
}
|
|
return resolvedStyle;
|
|
}, "createReactDOMStyle");
|
|
var _default = createReactDOMStyle;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hash.js
|
|
var require_hash = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hash.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
function murmurhash2_32_gc(str, seed) {
|
|
var l = str.length, h = seed ^ l, i = 0, k;
|
|
while (l >= 4) {
|
|
k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24;
|
|
k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);
|
|
k ^= k >>> 24;
|
|
k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);
|
|
h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16) ^ k;
|
|
l -= 4;
|
|
++i;
|
|
}
|
|
switch (l) {
|
|
case 3:
|
|
h ^= (str.charCodeAt(i + 2) & 255) << 16;
|
|
case 2:
|
|
h ^= (str.charCodeAt(i + 1) & 255) << 8;
|
|
case 1:
|
|
h ^= str.charCodeAt(i) & 255;
|
|
h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);
|
|
}
|
|
h ^= h >>> 13;
|
|
h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);
|
|
h ^= h >>> 15;
|
|
return h >>> 0;
|
|
}
|
|
__name(murmurhash2_32_gc, "murmurhash2_32_gc");
|
|
var hash = /* @__PURE__ */ __name((str) => murmurhash2_32_gc(str, 1).toString(36), "hash");
|
|
var _default = hash;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hyphenateStyleName.js
|
|
var require_hyphenateStyleName = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/hyphenateStyleName.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var uppercasePattern = /[A-Z]/g;
|
|
var msPattern = /^ms-/;
|
|
var cache3 = {};
|
|
function toHyphenLower(match) {
|
|
return "-" + match.toLowerCase();
|
|
}
|
|
__name(toHyphenLower, "toHyphenLower");
|
|
function hyphenateStyleName(name) {
|
|
if (name in cache3) {
|
|
return cache3[name];
|
|
}
|
|
var hName = name.replace(uppercasePattern, toHyphenLower);
|
|
return cache3[name] = msPattern.test(hName) ? "-" + hName : hName;
|
|
}
|
|
__name(hyphenateStyleName, "hyphenateStyleName");
|
|
var _default = hyphenateStyleName;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/utils/capitalizeString.js
|
|
var require_capitalizeString = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/utils/capitalizeString.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = capitalizeString;
|
|
function capitalizeString(str) {
|
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
}
|
|
__name(capitalizeString, "capitalizeString");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/utils/prefixProperty.js
|
|
var require_prefixProperty = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/utils/prefixProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = prefixProperty;
|
|
var _capitalizeString = require_capitalizeString();
|
|
var _capitalizeString2 = _interopRequireDefault(_capitalizeString);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function prefixProperty(prefixProperties, property, style) {
|
|
var requiredPrefixes = prefixProperties[property];
|
|
if (requiredPrefixes && style.hasOwnProperty(property)) {
|
|
var capitalizedProperty = (0, _capitalizeString2.default)(property);
|
|
for (var i = 0; i < requiredPrefixes.length; ++i) {
|
|
var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;
|
|
if (!style[prefixedProperty]) {
|
|
style[prefixedProperty] = style[property];
|
|
}
|
|
}
|
|
}
|
|
return style;
|
|
}
|
|
__name(prefixProperty, "prefixProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/utils/prefixValue.js
|
|
var require_prefixValue = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/utils/prefixValue.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = prefixValue;
|
|
function prefixValue(plugins, property, value, style, metaData) {
|
|
for (var i = 0, len = plugins.length; i < len; ++i) {
|
|
var processedValue = plugins[i](property, value, style, metaData);
|
|
if (processedValue) {
|
|
return processedValue;
|
|
}
|
|
}
|
|
}
|
|
__name(prefixValue, "prefixValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js
|
|
var require_addNewValuesOnly = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = addNewValuesOnly;
|
|
function addIfNew(list, value) {
|
|
if (list.indexOf(value) === -1) {
|
|
list.push(value);
|
|
}
|
|
}
|
|
__name(addIfNew, "addIfNew");
|
|
function addNewValuesOnly(list, values) {
|
|
if (Array.isArray(values)) {
|
|
for (var i = 0, len = values.length; i < len; ++i) {
|
|
addIfNew(list, values[i]);
|
|
}
|
|
} else {
|
|
addIfNew(list, values);
|
|
}
|
|
}
|
|
__name(addNewValuesOnly, "addNewValuesOnly");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/utils/isObject.js
|
|
var require_isObject = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/utils/isObject.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = isObject;
|
|
function isObject(value) {
|
|
return value instanceof Object && !Array.isArray(value);
|
|
}
|
|
__name(isObject, "isObject");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/createPrefixer.js
|
|
var require_createPrefixer = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/createPrefixer.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = createPrefixer;
|
|
var _prefixProperty = require_prefixProperty();
|
|
var _prefixProperty2 = _interopRequireDefault(_prefixProperty);
|
|
var _prefixValue = require_prefixValue();
|
|
var _prefixValue2 = _interopRequireDefault(_prefixValue);
|
|
var _addNewValuesOnly = require_addNewValuesOnly();
|
|
var _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);
|
|
var _isObject = require_isObject();
|
|
var _isObject2 = _interopRequireDefault(_isObject);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function createPrefixer(_ref) {
|
|
var prefixMap = _ref.prefixMap, plugins = _ref.plugins;
|
|
return /* @__PURE__ */ __name(function prefix(style) {
|
|
for (var property in style) {
|
|
var value = style[property];
|
|
if ((0, _isObject2.default)(value)) {
|
|
style[property] = prefix(value);
|
|
} else if (Array.isArray(value)) {
|
|
var combinedValue = [];
|
|
for (var i = 0, len = value.length; i < len; ++i) {
|
|
var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);
|
|
(0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);
|
|
}
|
|
if (combinedValue.length > 0) {
|
|
style[property] = combinedValue;
|
|
}
|
|
} else {
|
|
var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);
|
|
if (_processedValue) {
|
|
style[property] = _processedValue;
|
|
}
|
|
style = (0, _prefixProperty2.default)(prefixMap, property, style);
|
|
}
|
|
}
|
|
return style;
|
|
}, "prefix");
|
|
}
|
|
__name(createPrefixer, "createPrefixer");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js
|
|
var require_backgroundClip = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = backgroundClip;
|
|
function backgroundClip() {
|
|
return null;
|
|
}
|
|
__name(backgroundClip, "backgroundClip");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/assignStyle.js
|
|
var require_assignStyle = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/assignStyle.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = assignStyle;
|
|
function _typeof(obj) {
|
|
"@babel/helpers - typeof";
|
|
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
|
_typeof = /* @__PURE__ */ __name(function _typeof2(obj2) {
|
|
return typeof obj2;
|
|
}, "_typeof");
|
|
} else {
|
|
_typeof = /* @__PURE__ */ __name(function _typeof2(obj2) {
|
|
return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
|
|
}, "_typeof");
|
|
}
|
|
return _typeof(obj);
|
|
}
|
|
__name(_typeof, "_typeof");
|
|
function _toConsumableArray(arr) {
|
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
}
|
|
__name(_toConsumableArray, "_toConsumableArray");
|
|
function _nonIterableSpread() {
|
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
}
|
|
__name(_nonIterableSpread, "_nonIterableSpread");
|
|
function _unsupportedIterableToArray(o, minLen) {
|
|
if (!o)
|
|
return;
|
|
if (typeof o === "string")
|
|
return _arrayLikeToArray(o, minLen);
|
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
if (n === "Object" && o.constructor)
|
|
n = o.constructor.name;
|
|
if (n === "Map" || n === "Set")
|
|
return Array.from(n);
|
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
return _arrayLikeToArray(o, minLen);
|
|
}
|
|
__name(_unsupportedIterableToArray, "_unsupportedIterableToArray");
|
|
function _iterableToArray(iter) {
|
|
if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter))
|
|
return Array.from(iter);
|
|
}
|
|
__name(_iterableToArray, "_iterableToArray");
|
|
function _arrayWithoutHoles(arr) {
|
|
if (Array.isArray(arr))
|
|
return _arrayLikeToArray(arr);
|
|
}
|
|
__name(_arrayWithoutHoles, "_arrayWithoutHoles");
|
|
function _arrayLikeToArray(arr, len) {
|
|
if (len == null || len > arr.length)
|
|
len = arr.length;
|
|
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
|
arr2[i] = arr[i];
|
|
}
|
|
return arr2;
|
|
}
|
|
__name(_arrayLikeToArray, "_arrayLikeToArray");
|
|
function filterUniqueArray(arr) {
|
|
return arr.filter(function(val, index3) {
|
|
return arr.lastIndexOf(val) === index3;
|
|
});
|
|
}
|
|
__name(filterUniqueArray, "filterUniqueArray");
|
|
function assignStyle(base) {
|
|
for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {
|
|
var style = i + 1 < 1 || arguments.length <= i + 1 ? void 0 : arguments[i + 1];
|
|
for (var property in style) {
|
|
var value = style[property];
|
|
var baseValue = base[property];
|
|
if (baseValue && value) {
|
|
if (Array.isArray(baseValue)) {
|
|
base[property] = filterUniqueArray(baseValue.concat(value));
|
|
continue;
|
|
}
|
|
if (Array.isArray(value)) {
|
|
base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));
|
|
continue;
|
|
}
|
|
if (_typeof(value) === "object") {
|
|
base[property] = assignStyle({}, baseValue, value);
|
|
continue;
|
|
}
|
|
}
|
|
base[property] = value;
|
|
}
|
|
}
|
|
return base;
|
|
}
|
|
__name(assignStyle, "assignStyle");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/camelCaseProperty.js
|
|
var require_camelCaseProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/camelCaseProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = camelCaseProperty;
|
|
var DASH = /-([a-z])/g;
|
|
var MS = /^Ms/g;
|
|
var cache3 = {};
|
|
function toUpper(match) {
|
|
return match[1].toUpperCase();
|
|
}
|
|
__name(toUpper, "toUpper");
|
|
function camelCaseProperty(property) {
|
|
if (cache3.hasOwnProperty(property)) {
|
|
return cache3[property];
|
|
}
|
|
var camelProp = property.replace(DASH, toUpper).replace(MS, "ms");
|
|
cache3[property] = camelProp;
|
|
return camelProp;
|
|
}
|
|
__name(camelCaseProperty, "camelCaseProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/hyphenate-style-name/index.cjs.js
|
|
var require_index_cjs = __commonJS({
|
|
"node_modules/hyphenate-style-name/index.cjs.js"(exports2, module2) {
|
|
"use strict";
|
|
var uppercasePattern = /[A-Z]/g;
|
|
var msPattern = /^ms-/;
|
|
var cache3 = {};
|
|
function toHyphenLower(match) {
|
|
return "-" + match.toLowerCase();
|
|
}
|
|
__name(toHyphenLower, "toHyphenLower");
|
|
function hyphenateStyleName(name) {
|
|
if (cache3.hasOwnProperty(name)) {
|
|
return cache3[name];
|
|
}
|
|
var hName = name.replace(uppercasePattern, toHyphenLower);
|
|
return cache3[name] = msPattern.test(hName) ? "-" + hName : hName;
|
|
}
|
|
__name(hyphenateStyleName, "hyphenateStyleName");
|
|
module2.exports = hyphenateStyleName;
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/hyphenateProperty.js
|
|
var require_hyphenateProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/hyphenateProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = hyphenateProperty;
|
|
var _hyphenateStyleName = require_index_cjs();
|
|
var _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function hyphenateProperty(property) {
|
|
return (0, _hyphenateStyleName2["default"])(property);
|
|
}
|
|
__name(hyphenateProperty, "hyphenateProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/cssifyDeclaration.js
|
|
var require_cssifyDeclaration = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/cssifyDeclaration.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = cssifyDeclaration;
|
|
var _hyphenateProperty = require_hyphenateProperty();
|
|
var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function cssifyDeclaration(property, value) {
|
|
return (0, _hyphenateProperty2["default"])(property) + ":" + value;
|
|
}
|
|
__name(cssifyDeclaration, "cssifyDeclaration");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/cssifyObject.js
|
|
var require_cssifyObject = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/cssifyObject.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = cssifyObject;
|
|
var _cssifyDeclaration = require_cssifyDeclaration();
|
|
var _cssifyDeclaration2 = _interopRequireDefault(_cssifyDeclaration);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function cssifyObject(style) {
|
|
var css = "";
|
|
for (var property in style) {
|
|
var value = style[property];
|
|
if (typeof value !== "string" && typeof value !== "number") {
|
|
continue;
|
|
}
|
|
if (css) {
|
|
css += ";";
|
|
}
|
|
css += (0, _cssifyDeclaration2["default"])(property, value);
|
|
}
|
|
return css;
|
|
}
|
|
__name(cssifyObject, "cssifyObject");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/isPrefixedProperty.js
|
|
var require_isPrefixedProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/isPrefixedProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = isPrefixedProperty;
|
|
var RE = /^(Webkit|Moz|O|ms)/;
|
|
function isPrefixedProperty(property) {
|
|
return RE.test(property);
|
|
}
|
|
__name(isPrefixedProperty, "isPrefixedProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/isPrefixedValue.js
|
|
var require_isPrefixedValue = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/isPrefixedValue.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = isPrefixedValue;
|
|
var RE = /-webkit-|-moz-|-ms-/;
|
|
function isPrefixedValue(value) {
|
|
return typeof value === "string" && RE.test(value);
|
|
}
|
|
__name(isPrefixedValue, "isPrefixedValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/isUnitlessProperty.js
|
|
var require_isUnitlessProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/isUnitlessProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = isUnitlessProperty;
|
|
var _hyphenateProperty = require_hyphenateProperty();
|
|
var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
var unitlessProperties = {
|
|
borderImageOutset: true,
|
|
borderImageSlice: true,
|
|
borderImageWidth: true,
|
|
fontWeight: true,
|
|
lineHeight: true,
|
|
opacity: true,
|
|
orphans: true,
|
|
tabSize: true,
|
|
widows: true,
|
|
zIndex: true,
|
|
zoom: true,
|
|
// SVG-related properties
|
|
fillOpacity: true,
|
|
floodOpacity: true,
|
|
stopOpacity: true,
|
|
strokeDasharray: true,
|
|
strokeDashoffset: true,
|
|
strokeMiterlimit: true,
|
|
strokeOpacity: true,
|
|
strokeWidth: true
|
|
};
|
|
var prefixedUnitlessProperties = ["animationIterationCount", "boxFlex", "boxFlexGroup", "boxOrdinalGroup", "columnCount", "flex", "flexGrow", "flexPositive", "flexShrink", "flexNegative", "flexOrder", "gridColumn", "gridColumnEnd", "gridColumnStart", "gridRow", "gridRowEnd", "gridRowStart", "lineClamp", "order"];
|
|
var prefixes = ["Webkit", "ms", "Moz", "O"];
|
|
function getPrefixedProperty(prefix, property2) {
|
|
return prefix + property2.charAt(0).toUpperCase() + property2.slice(1);
|
|
}
|
|
__name(getPrefixedProperty, "getPrefixedProperty");
|
|
for (i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {
|
|
property = prefixedUnitlessProperties[i];
|
|
unitlessProperties[property] = true;
|
|
for (j = 0, jLen = prefixes.length; j < jLen; ++j) {
|
|
unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;
|
|
}
|
|
}
|
|
var property;
|
|
var j;
|
|
var jLen;
|
|
var i;
|
|
var len;
|
|
for (_property in unitlessProperties) {
|
|
unitlessProperties[(0, _hyphenateProperty2["default"])(_property)] = true;
|
|
}
|
|
var _property;
|
|
function isUnitlessProperty(property2) {
|
|
return unitlessProperties.hasOwnProperty(property2);
|
|
}
|
|
__name(isUnitlessProperty, "isUnitlessProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/unprefixProperty.js
|
|
var require_unprefixProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/unprefixProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = unprefixProperty;
|
|
var RE = /^(ms|Webkit|Moz|O)/;
|
|
function unprefixProperty(property) {
|
|
var propertyWithoutPrefix = property.replace(RE, "");
|
|
return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);
|
|
}
|
|
__name(unprefixProperty, "unprefixProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/normalizeProperty.js
|
|
var require_normalizeProperty = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/normalizeProperty.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = normalizeProperty;
|
|
var _camelCaseProperty = require_camelCaseProperty();
|
|
var _camelCaseProperty2 = _interopRequireDefault(_camelCaseProperty);
|
|
var _unprefixProperty = require_unprefixProperty();
|
|
var _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function normalizeProperty(property) {
|
|
return (0, _unprefixProperty2["default"])((0, _camelCaseProperty2["default"])(property));
|
|
}
|
|
__name(normalizeProperty, "normalizeProperty");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/resolveArrayValue.js
|
|
var require_resolveArrayValue = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/resolveArrayValue.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = resolveArrayValue;
|
|
var _hyphenateProperty = require_hyphenateProperty();
|
|
var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
function resolveArrayValue(property, value) {
|
|
return value.join(";" + (0, _hyphenateProperty2["default"])(property) + ":");
|
|
}
|
|
__name(resolveArrayValue, "resolveArrayValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/unprefixValue.js
|
|
var require_unprefixValue = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/unprefixValue.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2["default"] = unprefixValue;
|
|
var RE = /(-ms-|-webkit-|-moz-|-o-)/g;
|
|
function unprefixValue(value) {
|
|
if (typeof value === "string") {
|
|
return value.replace(RE, "");
|
|
}
|
|
return value;
|
|
}
|
|
__name(unprefixValue, "unprefixValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/css-in-js-utils/lib/index.js
|
|
var require_lib = __commonJS({
|
|
"node_modules/css-in-js-utils/lib/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.unprefixValue = exports2.unprefixProperty = exports2.resolveArrayValue = exports2.normalizeProperty = exports2.isUnitlessProperty = exports2.isPrefixedValue = exports2.isPrefixedProperty = exports2.hyphenateProperty = exports2.cssifyObject = exports2.cssifyDeclaration = exports2.camelCaseProperty = exports2.assignStyle = void 0;
|
|
var _assignStyle = require_assignStyle();
|
|
var _assignStyle2 = _interopRequireDefault(_assignStyle);
|
|
var _camelCaseProperty = require_camelCaseProperty();
|
|
var _camelCaseProperty2 = _interopRequireDefault(_camelCaseProperty);
|
|
var _cssifyDeclaration = require_cssifyDeclaration();
|
|
var _cssifyDeclaration2 = _interopRequireDefault(_cssifyDeclaration);
|
|
var _cssifyObject = require_cssifyObject();
|
|
var _cssifyObject2 = _interopRequireDefault(_cssifyObject);
|
|
var _hyphenateProperty = require_hyphenateProperty();
|
|
var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);
|
|
var _isPrefixedProperty = require_isPrefixedProperty();
|
|
var _isPrefixedProperty2 = _interopRequireDefault(_isPrefixedProperty);
|
|
var _isPrefixedValue = require_isPrefixedValue();
|
|
var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);
|
|
var _isUnitlessProperty = require_isUnitlessProperty();
|
|
var _isUnitlessProperty2 = _interopRequireDefault(_isUnitlessProperty);
|
|
var _normalizeProperty = require_normalizeProperty();
|
|
var _normalizeProperty2 = _interopRequireDefault(_normalizeProperty);
|
|
var _resolveArrayValue = require_resolveArrayValue();
|
|
var _resolveArrayValue2 = _interopRequireDefault(_resolveArrayValue);
|
|
var _unprefixProperty = require_unprefixProperty();
|
|
var _unprefixProperty2 = _interopRequireDefault(_unprefixProperty);
|
|
var _unprefixValue = require_unprefixValue();
|
|
var _unprefixValue2 = _interopRequireDefault(_unprefixValue);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { "default": obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
exports2.assignStyle = _assignStyle2["default"];
|
|
exports2.camelCaseProperty = _camelCaseProperty2["default"];
|
|
exports2.cssifyDeclaration = _cssifyDeclaration2["default"];
|
|
exports2.cssifyObject = _cssifyObject2["default"];
|
|
exports2.hyphenateProperty = _hyphenateProperty2["default"];
|
|
exports2.isPrefixedProperty = _isPrefixedProperty2["default"];
|
|
exports2.isPrefixedValue = _isPrefixedValue2["default"];
|
|
exports2.isUnitlessProperty = _isUnitlessProperty2["default"];
|
|
exports2.normalizeProperty = _normalizeProperty2["default"];
|
|
exports2.resolveArrayValue = _resolveArrayValue2["default"];
|
|
exports2.unprefixProperty = _unprefixProperty2["default"];
|
|
exports2.unprefixValue = _unprefixValue2["default"];
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/crossFade.js
|
|
var require_crossFade = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/crossFade.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = crossFade;
|
|
var _cssInJsUtils = require_lib();
|
|
var CROSS_FADE_REGEX = /cross-fade\(/g;
|
|
var prefixes = ["-webkit-", ""];
|
|
function crossFade(property, value) {
|
|
if (typeof value === "string" && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf("cross-fade(") !== -1) {
|
|
return prefixes.map(function(prefix) {
|
|
return value.replace(CROSS_FADE_REGEX, prefix + "cross-fade(");
|
|
});
|
|
}
|
|
}
|
|
__name(crossFade, "crossFade");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/cursor.js
|
|
var require_cursor = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/cursor.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = cursor;
|
|
var prefixes = ["-webkit-", "-moz-", ""];
|
|
var values = {
|
|
"zoom-in": true,
|
|
"zoom-out": true,
|
|
grab: true,
|
|
grabbing: true
|
|
};
|
|
function cursor(property, value) {
|
|
if (property === "cursor" && values.hasOwnProperty(value)) {
|
|
return prefixes.map(function(prefix) {
|
|
return prefix + value;
|
|
});
|
|
}
|
|
}
|
|
__name(cursor, "cursor");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/filter.js
|
|
var require_filter = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/filter.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = filter;
|
|
var _cssInJsUtils = require_lib();
|
|
var FILTER_REGEX = /filter\(/g;
|
|
var prefixes = ["-webkit-", ""];
|
|
function filter(property, value) {
|
|
if (typeof value === "string" && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf("filter(") !== -1) {
|
|
return prefixes.map(function(prefix) {
|
|
return value.replace(FILTER_REGEX, prefix + "filter(");
|
|
});
|
|
}
|
|
}
|
|
__name(filter, "filter");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/imageSet.js
|
|
var require_imageSet = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/imageSet.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = imageSet;
|
|
var _isPrefixedValue = require_isPrefixedValue();
|
|
var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
var prefixes = ["-webkit-", ""];
|
|
function imageSet(property, value) {
|
|
if (typeof value === "string" && !(0, _isPrefixedValue2.default)(value) && value.indexOf("image-set(") > -1) {
|
|
return prefixes.map(function(prefix) {
|
|
return value.replace(/image-set\(/g, prefix + "image-set(");
|
|
});
|
|
}
|
|
}
|
|
__name(imageSet, "imageSet");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/logical.js
|
|
var require_logical = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/logical.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = logical;
|
|
var alternativeProps = {
|
|
marginBlockStart: ["WebkitMarginBefore"],
|
|
marginBlockEnd: ["WebkitMarginAfter"],
|
|
marginInlineStart: ["WebkitMarginStart", "MozMarginStart"],
|
|
marginInlineEnd: ["WebkitMarginEnd", "MozMarginEnd"],
|
|
paddingBlockStart: ["WebkitPaddingBefore"],
|
|
paddingBlockEnd: ["WebkitPaddingAfter"],
|
|
paddingInlineStart: ["WebkitPaddingStart", "MozPaddingStart"],
|
|
paddingInlineEnd: ["WebkitPaddingEnd", "MozPaddingEnd"],
|
|
borderBlockStart: ["WebkitBorderBefore"],
|
|
borderBlockStartColor: ["WebkitBorderBeforeColor"],
|
|
borderBlockStartStyle: ["WebkitBorderBeforeStyle"],
|
|
borderBlockStartWidth: ["WebkitBorderBeforeWidth"],
|
|
borderBlockEnd: ["WebkitBorderAfter"],
|
|
borderBlockEndColor: ["WebkitBorderAfterColor"],
|
|
borderBlockEndStyle: ["WebkitBorderAfterStyle"],
|
|
borderBlockEndWidth: ["WebkitBorderAfterWidth"],
|
|
borderInlineStart: ["WebkitBorderStart", "MozBorderStart"],
|
|
borderInlineStartColor: ["WebkitBorderStartColor", "MozBorderStartColor"],
|
|
borderInlineStartStyle: ["WebkitBorderStartStyle", "MozBorderStartStyle"],
|
|
borderInlineStartWidth: ["WebkitBorderStartWidth", "MozBorderStartWidth"],
|
|
borderInlineEnd: ["WebkitBorderEnd", "MozBorderEnd"],
|
|
borderInlineEndColor: ["WebkitBorderEndColor", "MozBorderEndColor"],
|
|
borderInlineEndStyle: ["WebkitBorderEndStyle", "MozBorderEndStyle"],
|
|
borderInlineEndWidth: ["WebkitBorderEndWidth", "MozBorderEndWidth"]
|
|
};
|
|
function logical(property, value, style) {
|
|
if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {
|
|
var alternativePropList = alternativeProps[property];
|
|
for (var i = 0, len = alternativePropList.length; i < len; ++i) {
|
|
style[alternativePropList[i]] = value;
|
|
}
|
|
}
|
|
}
|
|
__name(logical, "logical");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/position.js
|
|
var require_position = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/position.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = position;
|
|
function position(property, value) {
|
|
if (property === "position" && value === "sticky") {
|
|
return ["-webkit-sticky", "sticky"];
|
|
}
|
|
}
|
|
__name(position, "position");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/sizing.js
|
|
var require_sizing = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/sizing.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = sizing;
|
|
var prefixes = ["-webkit-", "-moz-", ""];
|
|
var properties = {
|
|
maxHeight: true,
|
|
maxWidth: true,
|
|
width: true,
|
|
height: true,
|
|
columnWidth: true,
|
|
minWidth: true,
|
|
minHeight: true
|
|
};
|
|
var values = {
|
|
"min-content": true,
|
|
"max-content": true,
|
|
"fill-available": true,
|
|
"fit-content": true,
|
|
"contain-floats": true
|
|
};
|
|
function sizing(property, value) {
|
|
if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {
|
|
return prefixes.map(function(prefix) {
|
|
return prefix + value;
|
|
});
|
|
}
|
|
}
|
|
__name(sizing, "sizing");
|
|
}
|
|
});
|
|
|
|
// node_modules/inline-style-prefixer/lib/plugins/transition.js
|
|
var require_transition = __commonJS({
|
|
"node_modules/inline-style-prefixer/lib/plugins/transition.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.default = transition;
|
|
var _hyphenateProperty = require_hyphenateProperty();
|
|
var _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);
|
|
var _isPrefixedValue = require_isPrefixedValue();
|
|
var _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);
|
|
var _capitalizeString = require_capitalizeString();
|
|
var _capitalizeString2 = _interopRequireDefault(_capitalizeString);
|
|
function _interopRequireDefault(obj) {
|
|
return obj && obj.__esModule ? obj : { default: obj };
|
|
}
|
|
__name(_interopRequireDefault, "_interopRequireDefault");
|
|
var properties = {
|
|
transition: true,
|
|
transitionProperty: true,
|
|
WebkitTransition: true,
|
|
WebkitTransitionProperty: true,
|
|
MozTransition: true,
|
|
MozTransitionProperty: true
|
|
};
|
|
var prefixMapping = {
|
|
Webkit: "-webkit-",
|
|
Moz: "-moz-",
|
|
ms: "-ms-"
|
|
};
|
|
function prefixValue(value, propertyPrefixMap) {
|
|
if ((0, _isPrefixedValue2.default)(value)) {
|
|
return value;
|
|
}
|
|
var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);
|
|
for (var i = 0, len = multipleValues.length; i < len; ++i) {
|
|
var singleValue = multipleValues[i];
|
|
var values = [singleValue];
|
|
for (var property in propertyPrefixMap) {
|
|
var dashCaseProperty = (0, _hyphenateProperty2.default)(property);
|
|
if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== "order") {
|
|
var prefixes = propertyPrefixMap[property];
|
|
for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {
|
|
values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));
|
|
}
|
|
}
|
|
}
|
|
multipleValues[i] = values.join(",");
|
|
}
|
|
return multipleValues.join(",");
|
|
}
|
|
__name(prefixValue, "prefixValue");
|
|
function transition(property, value, style, propertyPrefixMap) {
|
|
if (typeof value === "string" && properties.hasOwnProperty(property)) {
|
|
var outputValue = prefixValue(value, propertyPrefixMap);
|
|
var webkitOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(val) {
|
|
return !/-moz-|-ms-/.test(val);
|
|
}).join(",");
|
|
if (property.indexOf("Webkit") > -1) {
|
|
return webkitOutput;
|
|
}
|
|
var mozOutput = outputValue.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(val) {
|
|
return !/-webkit-|-ms-/.test(val);
|
|
}).join(",");
|
|
if (property.indexOf("Moz") > -1) {
|
|
return mozOutput;
|
|
}
|
|
style["Webkit" + (0, _capitalizeString2.default)(property)] = webkitOutput;
|
|
style["Moz" + (0, _capitalizeString2.default)(property)] = mozOutput;
|
|
return outputValue;
|
|
}
|
|
}
|
|
__name(transition, "transition");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/prefixStyles/static.js
|
|
var require_static = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/prefixStyles/static.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _backgroundClip = _interopRequireDefault(require_backgroundClip());
|
|
var _crossFade = _interopRequireDefault(require_crossFade());
|
|
var _cursor = _interopRequireDefault(require_cursor());
|
|
var _filter = _interopRequireDefault(require_filter());
|
|
var _imageSet = _interopRequireDefault(require_imageSet());
|
|
var _logical = _interopRequireDefault(require_logical());
|
|
var _position = _interopRequireDefault(require_position());
|
|
var _sizing = _interopRequireDefault(require_sizing());
|
|
var _transition = _interopRequireDefault(require_transition());
|
|
var w = ["Webkit"];
|
|
var m = ["Moz"];
|
|
var wm = ["Webkit", "Moz"];
|
|
var wms = ["Webkit", "ms"];
|
|
var wmms = ["Webkit", "Moz", "ms"];
|
|
var _default = {
|
|
plugins: [_backgroundClip.default, _crossFade.default, _cursor.default, _filter.default, _imageSet.default, _logical.default, _position.default, _sizing.default, _transition.default],
|
|
prefixMap: {
|
|
appearance: wmms,
|
|
userSelect: wm,
|
|
textEmphasisPosition: wms,
|
|
textEmphasis: wms,
|
|
textEmphasisStyle: wms,
|
|
textEmphasisColor: wms,
|
|
boxDecorationBreak: wms,
|
|
clipPath: w,
|
|
maskImage: wms,
|
|
maskMode: wms,
|
|
maskRepeat: wms,
|
|
maskPosition: wms,
|
|
maskClip: wms,
|
|
maskOrigin: wms,
|
|
maskSize: wms,
|
|
maskComposite: wms,
|
|
mask: wms,
|
|
maskBorderSource: wms,
|
|
maskBorderMode: wms,
|
|
maskBorderSlice: wms,
|
|
maskBorderWidth: wms,
|
|
maskBorderOutset: wms,
|
|
maskBorderRepeat: wms,
|
|
maskBorder: wms,
|
|
maskType: wms,
|
|
textDecorationStyle: w,
|
|
textDecorationSkip: w,
|
|
textDecorationLine: w,
|
|
textDecorationColor: w,
|
|
filter: w,
|
|
breakAfter: w,
|
|
breakBefore: w,
|
|
breakInside: w,
|
|
columnCount: w,
|
|
columnFill: w,
|
|
columnGap: w,
|
|
columnRule: w,
|
|
columnRuleColor: w,
|
|
columnRuleStyle: w,
|
|
columnRuleWidth: w,
|
|
columns: w,
|
|
columnSpan: w,
|
|
columnWidth: w,
|
|
backdropFilter: w,
|
|
hyphens: w,
|
|
flowInto: w,
|
|
flowFrom: w,
|
|
regionFragment: w,
|
|
textOrientation: w,
|
|
tabSize: m,
|
|
fontKerning: w,
|
|
textSizeAdjust: w
|
|
}
|
|
};
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/prefixStyles/index.js
|
|
var require_prefixStyles = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/prefixStyles/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _createPrefixer = _interopRequireDefault(require_createPrefixer());
|
|
var _static = _interopRequireDefault(require_static());
|
|
var prefixAll = (0, _createPrefixer.default)(_static.default);
|
|
var _default = prefixAll;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/index.js
|
|
var require_compiler = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/compiler/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.atomic = atomic;
|
|
exports2.classic = classic;
|
|
exports2.inline = inline4;
|
|
exports2.stringifyValueWithProperty = stringifyValueWithProperty;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _createReactDOMStyle = _interopRequireDefault(require_createReactDOMStyle());
|
|
var _hash = _interopRequireDefault(require_hash());
|
|
var _hyphenateStyleName = _interopRequireDefault(require_hyphenateStyleName());
|
|
var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());
|
|
var _prefixStyles = _interopRequireDefault(require_prefixStyles());
|
|
var _excluded = ["animationKeyframes"];
|
|
var cache3 = /* @__PURE__ */ new Map();
|
|
var emptyObject = {};
|
|
var classicGroup = 1;
|
|
var atomicGroup = 3;
|
|
var customGroup = {
|
|
borderColor: 2,
|
|
borderRadius: 2,
|
|
borderStyle: 2,
|
|
borderWidth: 2,
|
|
display: 2,
|
|
flex: 2,
|
|
inset: 2,
|
|
margin: 2,
|
|
overflow: 2,
|
|
overscrollBehavior: 2,
|
|
padding: 2,
|
|
insetBlock: 2.1,
|
|
insetInline: 2.1,
|
|
marginInline: 2.1,
|
|
marginBlock: 2.1,
|
|
paddingInline: 2.1,
|
|
paddingBlock: 2.1,
|
|
borderBlockStartColor: 2.2,
|
|
borderBlockStartStyle: 2.2,
|
|
borderBlockStartWidth: 2.2,
|
|
borderBlockEndColor: 2.2,
|
|
borderBlockEndStyle: 2.2,
|
|
borderBlockEndWidth: 2.2,
|
|
borderInlineStartColor: 2.2,
|
|
borderInlineStartStyle: 2.2,
|
|
borderInlineStartWidth: 2.2,
|
|
borderInlineEndColor: 2.2,
|
|
borderInlineEndStyle: 2.2,
|
|
borderInlineEndWidth: 2.2,
|
|
borderEndStartRadius: 2.2,
|
|
borderEndEndRadius: 2.2,
|
|
borderStartStartRadius: 2.2,
|
|
borderStartEndRadius: 2.2,
|
|
insetBlockEnd: 2.2,
|
|
insetBlockStart: 2.2,
|
|
insetInlineEnd: 2.2,
|
|
insetInlineStart: 2.2,
|
|
marginBlockStart: 2.2,
|
|
marginBlockEnd: 2.2,
|
|
marginInlineStart: 2.2,
|
|
marginInlineEnd: 2.2,
|
|
paddingBlockStart: 2.2,
|
|
paddingBlockEnd: 2.2,
|
|
paddingInlineStart: 2.2,
|
|
paddingInlineEnd: 2.2
|
|
};
|
|
var borderTopLeftRadius = "borderTopLeftRadius";
|
|
var borderTopRightRadius = "borderTopRightRadius";
|
|
var borderBottomLeftRadius = "borderBottomLeftRadius";
|
|
var borderBottomRightRadius = "borderBottomRightRadius";
|
|
var borderLeftColor = "borderLeftColor";
|
|
var borderLeftStyle = "borderLeftStyle";
|
|
var borderLeftWidth = "borderLeftWidth";
|
|
var borderRightColor = "borderRightColor";
|
|
var borderRightStyle = "borderRightStyle";
|
|
var borderRightWidth = "borderRightWidth";
|
|
var right = "right";
|
|
var marginLeft = "marginLeft";
|
|
var marginRight = "marginRight";
|
|
var paddingLeft = "paddingLeft";
|
|
var paddingRight = "paddingRight";
|
|
var left = "left";
|
|
var PROPERTIES_FLIP = {
|
|
[borderTopLeftRadius]: borderTopRightRadius,
|
|
[borderTopRightRadius]: borderTopLeftRadius,
|
|
[borderBottomLeftRadius]: borderBottomRightRadius,
|
|
[borderBottomRightRadius]: borderBottomLeftRadius,
|
|
[borderLeftColor]: borderRightColor,
|
|
[borderLeftStyle]: borderRightStyle,
|
|
[borderLeftWidth]: borderRightWidth,
|
|
[borderRightColor]: borderLeftColor,
|
|
[borderRightStyle]: borderLeftStyle,
|
|
[borderRightWidth]: borderLeftWidth,
|
|
[left]: right,
|
|
[marginLeft]: marginRight,
|
|
[marginRight]: marginLeft,
|
|
[paddingLeft]: paddingRight,
|
|
[paddingRight]: paddingLeft,
|
|
[right]: left
|
|
};
|
|
var PROPERTIES_I18N = {
|
|
borderStartStartRadius: borderTopLeftRadius,
|
|
borderStartEndRadius: borderTopRightRadius,
|
|
borderEndStartRadius: borderBottomLeftRadius,
|
|
borderEndEndRadius: borderBottomRightRadius,
|
|
borderInlineStartColor: borderLeftColor,
|
|
borderInlineStartStyle: borderLeftStyle,
|
|
borderInlineStartWidth: borderLeftWidth,
|
|
borderInlineEndColor: borderRightColor,
|
|
borderInlineEndStyle: borderRightStyle,
|
|
borderInlineEndWidth: borderRightWidth,
|
|
insetInlineEnd: right,
|
|
insetInlineStart: left,
|
|
marginInlineStart: marginLeft,
|
|
marginInlineEnd: marginRight,
|
|
paddingInlineStart: paddingLeft,
|
|
paddingInlineEnd: paddingRight
|
|
};
|
|
var PROPERTIES_VALUE = ["clear", "float", "textAlign"];
|
|
function atomic(style) {
|
|
var compiledStyle = {
|
|
$$css: true
|
|
};
|
|
var compiledRules = [];
|
|
function atomicCompile(srcProp, prop, value) {
|
|
var valueString = stringifyValueWithProperty(value, prop);
|
|
var cacheKey = prop + valueString;
|
|
var cachedResult = cache3.get(cacheKey);
|
|
var identifier;
|
|
if (cachedResult != null) {
|
|
identifier = cachedResult[0];
|
|
compiledRules.push(cachedResult[1]);
|
|
} else {
|
|
var v = srcProp !== prop ? cacheKey : valueString;
|
|
identifier = createIdentifier("r", srcProp, v);
|
|
var order = customGroup[srcProp] || atomicGroup;
|
|
var rules = createAtomicRules(identifier, prop, value);
|
|
var orderedRules = [rules, order];
|
|
compiledRules.push(orderedRules);
|
|
cache3.set(cacheKey, [identifier, orderedRules]);
|
|
}
|
|
return identifier;
|
|
}
|
|
__name(atomicCompile, "atomicCompile");
|
|
Object.keys(style).sort().forEach((srcProp) => {
|
|
var value = style[srcProp];
|
|
if (value != null) {
|
|
var localizeableValue;
|
|
if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {
|
|
var _left = atomicCompile(srcProp, srcProp, "left");
|
|
var _right = atomicCompile(srcProp, srcProp, "right");
|
|
if (value === "start") {
|
|
localizeableValue = [_left, _right];
|
|
} else if (value === "end") {
|
|
localizeableValue = [_right, _left];
|
|
}
|
|
}
|
|
var propPolyfill = PROPERTIES_I18N[srcProp];
|
|
if (propPolyfill != null) {
|
|
var ltr = atomicCompile(srcProp, propPolyfill, value);
|
|
var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);
|
|
localizeableValue = [ltr, rtl];
|
|
}
|
|
if (srcProp === "transitionProperty") {
|
|
var values = Array.isArray(value) ? value : [value];
|
|
var polyfillIndices = [];
|
|
for (var i = 0; i < values.length; i++) {
|
|
var val = values[i];
|
|
if (typeof val === "string" && PROPERTIES_I18N[val] != null) {
|
|
polyfillIndices.push(i);
|
|
}
|
|
}
|
|
if (polyfillIndices.length > 0) {
|
|
var ltrPolyfillValues = [...values];
|
|
var rtlPolyfillValues = [...values];
|
|
polyfillIndices.forEach((i2) => {
|
|
var ltrVal = ltrPolyfillValues[i2];
|
|
if (typeof ltrVal === "string") {
|
|
var ltrPolyfill = PROPERTIES_I18N[ltrVal];
|
|
var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];
|
|
ltrPolyfillValues[i2] = ltrPolyfill;
|
|
rtlPolyfillValues[i2] = rtlPolyfill;
|
|
var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);
|
|
var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);
|
|
localizeableValue = [_ltr, _rtl];
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (localizeableValue == null) {
|
|
localizeableValue = atomicCompile(srcProp, srcProp, value);
|
|
} else {
|
|
compiledStyle["$$css$localize"] = true;
|
|
}
|
|
compiledStyle[srcProp] = localizeableValue;
|
|
}
|
|
});
|
|
return [compiledStyle, compiledRules];
|
|
}
|
|
__name(atomic, "atomic");
|
|
function classic(style, name) {
|
|
var compiledStyle = {
|
|
$$css: true
|
|
};
|
|
var compiledRules = [];
|
|
var animationKeyframes = style.animationKeyframes, rest = (0, _objectWithoutPropertiesLoose2.default)(style, _excluded);
|
|
var identifier = createIdentifier("css", name, JSON.stringify(style));
|
|
var selector = "." + identifier;
|
|
var animationName;
|
|
if (animationKeyframes != null) {
|
|
var _processKeyframesValu = processKeyframesValue(animationKeyframes), animationNames = _processKeyframesValu[0], keyframesRules = _processKeyframesValu[1];
|
|
animationName = animationNames.join(",");
|
|
compiledRules.push(...keyframesRules);
|
|
}
|
|
var block = createDeclarationBlock((0, _objectSpread2.default)((0, _objectSpread2.default)({}, rest), {}, {
|
|
animationName
|
|
}));
|
|
compiledRules.push("" + selector + block);
|
|
compiledStyle[identifier] = identifier;
|
|
return [compiledStyle, [[compiledRules, classicGroup]]];
|
|
}
|
|
__name(classic, "classic");
|
|
function inline4(originalStyle, isRTL2) {
|
|
var style = originalStyle || emptyObject;
|
|
var frozenProps = {};
|
|
var nextStyle = {};
|
|
var _loop = /* @__PURE__ */ __name(function _loop2() {
|
|
var originalValue = style[originalProp];
|
|
var prop = originalProp;
|
|
var value = originalValue;
|
|
if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {
|
|
return "continue";
|
|
}
|
|
if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {
|
|
if (originalValue === "start") {
|
|
value = isRTL2 ? "right" : "left";
|
|
} else if (originalValue === "end") {
|
|
value = isRTL2 ? "left" : "right";
|
|
}
|
|
}
|
|
var propPolyfill = PROPERTIES_I18N[originalProp];
|
|
if (propPolyfill != null) {
|
|
prop = isRTL2 ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;
|
|
}
|
|
if (originalProp === "transitionProperty") {
|
|
var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];
|
|
originalValues.forEach((val, i) => {
|
|
if (typeof val === "string") {
|
|
var valuePolyfill = PROPERTIES_I18N[val];
|
|
if (valuePolyfill != null) {
|
|
originalValues[i] = isRTL2 ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;
|
|
value = originalValues.join(" ");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
if (!frozenProps[prop]) {
|
|
nextStyle[prop] = value;
|
|
}
|
|
if (prop === originalProp) {
|
|
frozenProps[prop] = true;
|
|
}
|
|
}, "_loop");
|
|
for (var originalProp in style) {
|
|
var _ret = _loop();
|
|
if (_ret === "continue")
|
|
continue;
|
|
}
|
|
return (0, _createReactDOMStyle.default)(nextStyle, true);
|
|
}
|
|
__name(inline4, "inline");
|
|
function stringifyValueWithProperty(value, property) {
|
|
var normalizedValue = (0, _normalizeValueWithProperty.default)(value, property);
|
|
return typeof normalizedValue !== "string" ? JSON.stringify(normalizedValue || "") : normalizedValue;
|
|
}
|
|
__name(stringifyValueWithProperty, "stringifyValueWithProperty");
|
|
function createAtomicRules(identifier, property, value) {
|
|
var rules = [];
|
|
var selector = "." + identifier;
|
|
switch (property) {
|
|
case "animationKeyframes": {
|
|
var _processKeyframesValu2 = processKeyframesValue(value), animationNames = _processKeyframesValu2[0], keyframesRules = _processKeyframesValu2[1];
|
|
var block = createDeclarationBlock({
|
|
animationName: animationNames.join(",")
|
|
});
|
|
rules.push("" + selector + block, ...keyframesRules);
|
|
break;
|
|
}
|
|
case "placeholderTextColor": {
|
|
var _block = createDeclarationBlock({
|
|
color: value,
|
|
opacity: 1
|
|
});
|
|
rules.push(selector + "::-webkit-input-placeholder" + _block, selector + "::-moz-placeholder" + _block, selector + ":-ms-input-placeholder" + _block, selector + "::placeholder" + _block);
|
|
break;
|
|
}
|
|
case "pointerEvents": {
|
|
var finalValue = value;
|
|
if (value === "auto" || value === "box-only") {
|
|
finalValue = "auto!important";
|
|
if (value === "box-only") {
|
|
var _block2 = createDeclarationBlock({
|
|
pointerEvents: "none"
|
|
});
|
|
rules.push(selector + ">*" + _block2);
|
|
}
|
|
} else if (value === "none" || value === "box-none") {
|
|
finalValue = "none!important";
|
|
if (value === "box-none") {
|
|
var _block3 = createDeclarationBlock({
|
|
pointerEvents: "auto"
|
|
});
|
|
rules.push(selector + ">*" + _block3);
|
|
}
|
|
}
|
|
var _block4 = createDeclarationBlock({
|
|
pointerEvents: finalValue
|
|
});
|
|
rules.push("" + selector + _block4);
|
|
break;
|
|
}
|
|
case "scrollbarWidth": {
|
|
if (value === "none") {
|
|
rules.push(selector + "::-webkit-scrollbar{display:none}");
|
|
}
|
|
var _block5 = createDeclarationBlock({
|
|
scrollbarWidth: value
|
|
});
|
|
rules.push("" + selector + _block5);
|
|
break;
|
|
}
|
|
default: {
|
|
var _block6 = createDeclarationBlock({
|
|
[property]: value
|
|
});
|
|
rules.push("" + selector + _block6);
|
|
break;
|
|
}
|
|
}
|
|
return rules;
|
|
}
|
|
__name(createAtomicRules, "createAtomicRules");
|
|
function createDeclarationBlock(style) {
|
|
var domStyle = (0, _prefixStyles.default)((0, _createReactDOMStyle.default)(style));
|
|
var declarationsString = Object.keys(domStyle).map((property) => {
|
|
var value = domStyle[property];
|
|
var prop = (0, _hyphenateStyleName.default)(property);
|
|
if (Array.isArray(value)) {
|
|
return value.map((v) => prop + ":" + v).join(";");
|
|
} else {
|
|
return prop + ":" + value;
|
|
}
|
|
}).sort().join(";");
|
|
return "{" + declarationsString + ";}";
|
|
}
|
|
__name(createDeclarationBlock, "createDeclarationBlock");
|
|
function createIdentifier(prefix, name, key) {
|
|
var hashedString = (0, _hash.default)(name + key);
|
|
return process.env.NODE_ENV !== "production" ? prefix + "-" + name + "-" + hashedString : prefix + "-" + hashedString;
|
|
}
|
|
__name(createIdentifier, "createIdentifier");
|
|
function createKeyframes(keyframes) {
|
|
var prefixes = ["-webkit-", ""];
|
|
var identifier = createIdentifier("r", "animation", JSON.stringify(keyframes));
|
|
var steps = "{" + Object.keys(keyframes).map((stepName) => {
|
|
var rule = keyframes[stepName];
|
|
var block = createDeclarationBlock(rule);
|
|
return "" + stepName + block;
|
|
}).join("") + "}";
|
|
var rules = prefixes.map((prefix) => {
|
|
return "@" + prefix + "keyframes " + identifier + steps;
|
|
});
|
|
return [identifier, rules];
|
|
}
|
|
__name(createKeyframes, "createKeyframes");
|
|
function processKeyframesValue(keyframesValue) {
|
|
if (typeof keyframesValue === "number") {
|
|
throw new Error("Invalid CSS keyframes type: " + typeof keyframesValue);
|
|
}
|
|
var animationNames = [];
|
|
var rules = [];
|
|
var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];
|
|
value.forEach((keyframes) => {
|
|
if (typeof keyframes === "string") {
|
|
animationNames.push(keyframes);
|
|
} else {
|
|
var _createKeyframes = createKeyframes(keyframes), identifier = _createKeyframes[0], keyframesRules = _createKeyframes[1];
|
|
animationNames.push(identifier);
|
|
rules.push(...keyframesRules);
|
|
}
|
|
});
|
|
return [animationNames, rules];
|
|
}
|
|
__name(processKeyframesValue, "processKeyframesValue");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createCSSStyleSheet.js
|
|
var require_createCSSStyleSheet = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createCSSStyleSheet.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = createCSSStyleSheet;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
function createCSSStyleSheet(id, rootNode, textContent) {
|
|
if (_canUseDom.default) {
|
|
var root = rootNode != null ? rootNode : document;
|
|
var element = root.getElementById(id);
|
|
if (element == null) {
|
|
element = document.createElement("style");
|
|
element.setAttribute("id", id);
|
|
if (typeof textContent === "string") {
|
|
element.appendChild(document.createTextNode(textContent));
|
|
}
|
|
if (root instanceof ShadowRoot) {
|
|
root.insertBefore(element, root.firstChild);
|
|
} else {
|
|
var head = root.head;
|
|
if (head) {
|
|
head.insertBefore(element, head.firstChild);
|
|
}
|
|
}
|
|
}
|
|
return element.sheet;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
__name(createCSSStyleSheet, "createCSSStyleSheet");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js
|
|
var require_createOrderedCSSStyleSheet = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = createOrderedCSSStyleSheet;
|
|
var slice = Array.prototype.slice;
|
|
function createOrderedCSSStyleSheet(sheet) {
|
|
var groups = {};
|
|
var selectors = {};
|
|
if (sheet != null) {
|
|
var group;
|
|
slice.call(sheet.cssRules).forEach((cssRule, i) => {
|
|
var cssText = cssRule.cssText;
|
|
if (cssText.indexOf("stylesheet-group") > -1) {
|
|
group = decodeGroupRule(cssRule);
|
|
groups[group] = {
|
|
start: i,
|
|
rules: [cssText]
|
|
};
|
|
} else {
|
|
var selectorText = getSelectorText(cssText);
|
|
if (selectorText != null) {
|
|
selectors[selectorText] = true;
|
|
groups[group].rules.push(cssText);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
function sheetInsert(sheet2, group2, text) {
|
|
var orderedGroups = getOrderedGroups(groups);
|
|
var groupIndex = orderedGroups.indexOf(group2);
|
|
var nextGroupIndex = groupIndex + 1;
|
|
var nextGroup = orderedGroups[nextGroupIndex];
|
|
var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet2.cssRules.length;
|
|
var isInserted = insertRuleAt(sheet2, text, position);
|
|
if (isInserted) {
|
|
if (groups[group2].start == null) {
|
|
groups[group2].start = position;
|
|
}
|
|
for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {
|
|
var groupNumber = orderedGroups[i];
|
|
var previousStart = groups[groupNumber].start || 0;
|
|
groups[groupNumber].start = previousStart + 1;
|
|
}
|
|
}
|
|
return isInserted;
|
|
}
|
|
__name(sheetInsert, "sheetInsert");
|
|
var OrderedCSSStyleSheet = {
|
|
/**
|
|
* The textContent of the style sheet.
|
|
*/
|
|
getTextContent() {
|
|
return getOrderedGroups(groups).map((group2) => {
|
|
var rules = groups[group2].rules;
|
|
var marker = rules.shift();
|
|
rules.sort();
|
|
rules.unshift(marker);
|
|
return rules.join("\n");
|
|
}).join("\n");
|
|
},
|
|
/**
|
|
* Insert a rule into the style sheet
|
|
*/
|
|
insert(cssText, groupValue) {
|
|
var group2 = Number(groupValue);
|
|
if (groups[group2] == null) {
|
|
var markerRule = encodeGroupRule(group2);
|
|
groups[group2] = {
|
|
start: null,
|
|
rules: [markerRule]
|
|
};
|
|
if (sheet != null) {
|
|
sheetInsert(sheet, group2, markerRule);
|
|
}
|
|
}
|
|
var selectorText = getSelectorText(cssText);
|
|
if (selectorText != null && selectors[selectorText] == null) {
|
|
selectors[selectorText] = true;
|
|
groups[group2].rules.push(cssText);
|
|
if (sheet != null) {
|
|
var isInserted = sheetInsert(sheet, group2, cssText);
|
|
if (!isInserted) {
|
|
groups[group2].rules.pop();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return OrderedCSSStyleSheet;
|
|
}
|
|
__name(createOrderedCSSStyleSheet, "createOrderedCSSStyleSheet");
|
|
function encodeGroupRule(group) {
|
|
return '[stylesheet-group="' + group + '"]{}';
|
|
}
|
|
__name(encodeGroupRule, "encodeGroupRule");
|
|
var groupPattern = /["']/g;
|
|
function decodeGroupRule(cssRule) {
|
|
return Number(cssRule.selectorText.split(groupPattern)[1]);
|
|
}
|
|
__name(decodeGroupRule, "decodeGroupRule");
|
|
function getOrderedGroups(obj) {
|
|
return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);
|
|
}
|
|
__name(getOrderedGroups, "getOrderedGroups");
|
|
var selectorPattern = /\s*([,])\s*/g;
|
|
function getSelectorText(cssText) {
|
|
var selector = cssText.split("{")[0].trim();
|
|
return selector !== "" ? selector.replace(selectorPattern, "$1") : null;
|
|
}
|
|
__name(getSelectorText, "getSelectorText");
|
|
function insertRuleAt(root, cssText, position) {
|
|
try {
|
|
root.insertRule(cssText, position);
|
|
return true;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
__name(insertRuleAt, "insertRuleAt");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/index.js
|
|
var require_dom = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/dom/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.createSheet = createSheet2;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var _createCSSStyleSheet = _interopRequireDefault(require_createCSSStyleSheet());
|
|
var _createOrderedCSSStyleSheet = _interopRequireDefault(require_createOrderedCSSStyleSheet());
|
|
var defaultId = "react-native-stylesheet";
|
|
var roots = /* @__PURE__ */ new WeakMap();
|
|
var sheets = [];
|
|
var initialRules = [
|
|
// minimal top-level reset
|
|
"html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}",
|
|
"body{margin:0;}",
|
|
// minimal form pseudo-element reset
|
|
"button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}",
|
|
"input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}"
|
|
];
|
|
function createSheet2(root, id) {
|
|
if (id === void 0) {
|
|
id = defaultId;
|
|
}
|
|
var sheet;
|
|
if (_canUseDom.default) {
|
|
var rootNode = root != null ? root.getRootNode() : document;
|
|
if (sheets.length === 0) {
|
|
sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id));
|
|
initialRules.forEach((rule) => {
|
|
sheet.insert(rule, 0);
|
|
});
|
|
roots.set(rootNode, sheets.length);
|
|
sheets.push(sheet);
|
|
} else {
|
|
var index3 = roots.get(rootNode);
|
|
if (index3 == null) {
|
|
var initialSheet = sheets[0];
|
|
var textContent = initialSheet != null ? initialSheet.getTextContent() : "";
|
|
sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id, rootNode, textContent));
|
|
roots.set(rootNode, sheets.length);
|
|
sheets.push(sheet);
|
|
} else {
|
|
sheet = sheets[index3];
|
|
}
|
|
}
|
|
} else {
|
|
if (sheets.length === 0) {
|
|
sheet = (0, _createOrderedCSSStyleSheet.default)((0, _createCSSStyleSheet.default)(id));
|
|
initialRules.forEach((rule) => {
|
|
sheet.insert(rule, 0);
|
|
});
|
|
sheets.push(sheet);
|
|
} else {
|
|
sheet = sheets[0];
|
|
}
|
|
}
|
|
return {
|
|
getTextContent() {
|
|
return sheet.getTextContent();
|
|
},
|
|
id,
|
|
insert(cssText, groupValue) {
|
|
sheets.forEach((s) => {
|
|
s.insert(cssText, groupValue);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
__name(createSheet2, "createSheet");
|
|
}
|
|
});
|
|
|
|
// node_modules/styleq/dist/transform-localize-style.js
|
|
var require_transform_localize_style = __commonJS({
|
|
"node_modules/styleq/dist/transform-localize-style.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.localizeStyle = localizeStyle;
|
|
var cache3 = /* @__PURE__ */ new WeakMap();
|
|
var markerProp = "$$css$localize";
|
|
function compileStyle(style, isRTL2) {
|
|
var compiledStyle = {};
|
|
for (var prop in style) {
|
|
if (prop !== markerProp) {
|
|
var value = style[prop];
|
|
if (Array.isArray(value)) {
|
|
compiledStyle[prop] = isRTL2 ? value[1] : value[0];
|
|
} else {
|
|
compiledStyle[prop] = value;
|
|
}
|
|
}
|
|
}
|
|
return compiledStyle;
|
|
}
|
|
__name(compileStyle, "compileStyle");
|
|
function localizeStyle(style, isRTL2) {
|
|
if (style[markerProp] != null) {
|
|
var compiledStyleIndex = isRTL2 ? 1 : 0;
|
|
if (cache3.has(style)) {
|
|
var _cachedStyles = cache3.get(style);
|
|
var _compiledStyle = _cachedStyles[compiledStyleIndex];
|
|
if (_compiledStyle == null) {
|
|
_compiledStyle = compileStyle(style, isRTL2);
|
|
_cachedStyles[compiledStyleIndex] = _compiledStyle;
|
|
cache3.set(style, _cachedStyles);
|
|
}
|
|
return _compiledStyle;
|
|
}
|
|
var compiledStyle = compileStyle(style, isRTL2);
|
|
var cachedStyles = new Array(2);
|
|
cachedStyles[compiledStyleIndex] = compiledStyle;
|
|
cache3.set(style, cachedStyles);
|
|
return compiledStyle;
|
|
}
|
|
return style;
|
|
}
|
|
__name(localizeStyle, "localizeStyle");
|
|
}
|
|
});
|
|
|
|
// node_modules/styleq/transform-localize-style.js
|
|
var require_transform_localize_style2 = __commonJS({
|
|
"node_modules/styleq/transform-localize-style.js"(exports2, module2) {
|
|
module2.exports = require_transform_localize_style();
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/warnOnce/index.js
|
|
var require_warnOnce = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/warnOnce/index.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.warnOnce = warnOnce;
|
|
var warnedKeys = {};
|
|
function warnOnce(key, message) {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
if (warnedKeys[key]) {
|
|
return;
|
|
}
|
|
console.warn(message);
|
|
warnedKeys[key] = true;
|
|
}
|
|
}
|
|
__name(warnOnce, "warnOnce");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/preprocess.js
|
|
var require_preprocess = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/preprocess.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.preprocess = exports2.default = exports2.createTransformValue = exports2.createTextShadowValue = exports2.createBoxShadowValue = void 0;
|
|
var _normalizeColor = _interopRequireDefault(require_normalizeColor());
|
|
var _normalizeValueWithProperty = _interopRequireDefault(require_normalizeValueWithProperty());
|
|
var _warnOnce = require_warnOnce();
|
|
var emptyObject = {};
|
|
var defaultOffset = {
|
|
height: 0,
|
|
width: 0
|
|
};
|
|
var createBoxShadowValue = /* @__PURE__ */ __name((style) => {
|
|
var shadowColor = style.shadowColor, shadowOffset = style.shadowOffset, shadowOpacity = style.shadowOpacity, shadowRadius = style.shadowRadius;
|
|
var _ref = shadowOffset || defaultOffset, height = _ref.height, width = _ref.width;
|
|
var offsetX = (0, _normalizeValueWithProperty.default)(width);
|
|
var offsetY = (0, _normalizeValueWithProperty.default)(height);
|
|
var blurRadius = (0, _normalizeValueWithProperty.default)(shadowRadius || 0);
|
|
var color2 = (0, _normalizeColor.default)(shadowColor || "black", shadowOpacity);
|
|
if (color2 != null && offsetX != null && offsetY != null && blurRadius != null) {
|
|
return offsetX + " " + offsetY + " " + blurRadius + " " + color2;
|
|
}
|
|
}, "createBoxShadowValue");
|
|
exports2.createBoxShadowValue = createBoxShadowValue;
|
|
var createTextShadowValue = /* @__PURE__ */ __name((style) => {
|
|
var textShadowColor = style.textShadowColor, textShadowOffset = style.textShadowOffset, textShadowRadius = style.textShadowRadius;
|
|
var _ref2 = textShadowOffset || defaultOffset, height = _ref2.height, width = _ref2.width;
|
|
var radius2 = textShadowRadius || 0;
|
|
var offsetX = (0, _normalizeValueWithProperty.default)(width);
|
|
var offsetY = (0, _normalizeValueWithProperty.default)(height);
|
|
var blurRadius = (0, _normalizeValueWithProperty.default)(radius2);
|
|
var color2 = (0, _normalizeValueWithProperty.default)(textShadowColor, "textShadowColor");
|
|
if (color2 && (height !== 0 || width !== 0 || radius2 !== 0) && offsetX != null && offsetY != null && blurRadius != null) {
|
|
return offsetX + " " + offsetY + " " + blurRadius + " " + color2;
|
|
}
|
|
}, "createTextShadowValue");
|
|
exports2.createTextShadowValue = createTextShadowValue;
|
|
var mapTransform = /* @__PURE__ */ __name((transform) => {
|
|
var type = Object.keys(transform)[0];
|
|
var value = transform[type];
|
|
if (type === "matrix" || type === "matrix3d") {
|
|
return type + "(" + value.join(",") + ")";
|
|
} else {
|
|
var normalizedValue = (0, _normalizeValueWithProperty.default)(value, type);
|
|
return type + "(" + normalizedValue + ")";
|
|
}
|
|
}, "mapTransform");
|
|
var createTransformValue = /* @__PURE__ */ __name((value) => {
|
|
return value.map(mapTransform).join(" ");
|
|
}, "createTransformValue");
|
|
exports2.createTransformValue = createTransformValue;
|
|
var PROPERTIES_STANDARD = {
|
|
borderBottomEndRadius: "borderEndEndRadius",
|
|
borderBottomStartRadius: "borderEndStartRadius",
|
|
borderTopEndRadius: "borderStartEndRadius",
|
|
borderTopStartRadius: "borderStartStartRadius",
|
|
borderEndColor: "borderInlineEndColor",
|
|
borderEndStyle: "borderInlineEndStyle",
|
|
borderEndWidth: "borderInlineEndWidth",
|
|
borderStartColor: "borderInlineStartColor",
|
|
borderStartStyle: "borderInlineStartStyle",
|
|
borderStartWidth: "borderInlineStartWidth",
|
|
end: "insetInlineEnd",
|
|
marginEnd: "marginInlineEnd",
|
|
marginHorizontal: "marginInline",
|
|
marginStart: "marginInlineStart",
|
|
marginVertical: "marginBlock",
|
|
paddingEnd: "paddingInlineEnd",
|
|
paddingHorizontal: "paddingInline",
|
|
paddingStart: "paddingInlineStart",
|
|
paddingVertical: "paddingBlock",
|
|
start: "insetInlineStart"
|
|
};
|
|
var ignoredProps = {
|
|
elevation: true,
|
|
overlayColor: true,
|
|
resizeMode: true,
|
|
tintColor: true
|
|
};
|
|
var preprocess = /* @__PURE__ */ __name(function preprocess2(originalStyle, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
var style = originalStyle || emptyObject;
|
|
var nextStyle = {};
|
|
if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {
|
|
(0, _warnOnce.warnOnce)("shadowStyles", '"shadow*" style props are deprecated. Use "boxShadow".');
|
|
var boxShadowValue = createBoxShadowValue(style);
|
|
if (boxShadowValue != null && nextStyle.boxShadow == null) {
|
|
var boxShadow = style.boxShadow;
|
|
var value = boxShadow ? boxShadow + ", " + boxShadowValue : boxShadowValue;
|
|
nextStyle.boxShadow = value;
|
|
}
|
|
}
|
|
if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {
|
|
(0, _warnOnce.warnOnce)("textShadowStyles", '"textShadow*" style props are deprecated. Use "textShadow".');
|
|
var textShadowValue = createTextShadowValue(style);
|
|
if (textShadowValue != null && nextStyle.textShadow == null) {
|
|
var textShadow = style.textShadow;
|
|
var _value = textShadow ? textShadow + ", " + textShadowValue : textShadowValue;
|
|
nextStyle.textShadow = _value;
|
|
}
|
|
}
|
|
for (var originalProp in style) {
|
|
if (
|
|
// Ignore some React Native styles
|
|
ignoredProps[originalProp] != null || originalProp === "shadowColor" || originalProp === "shadowOffset" || originalProp === "shadowOpacity" || originalProp === "shadowRadius" || originalProp === "textShadowColor" || originalProp === "textShadowOffset" || originalProp === "textShadowRadius"
|
|
) {
|
|
continue;
|
|
}
|
|
var originalValue = style[originalProp];
|
|
var prop = PROPERTIES_STANDARD[originalProp] || originalProp;
|
|
var _value2 = originalValue;
|
|
if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {
|
|
continue;
|
|
}
|
|
if (prop === "aspectRatio" && typeof _value2 === "number") {
|
|
nextStyle[prop] = _value2.toString();
|
|
} else if (prop === "fontVariant") {
|
|
if (Array.isArray(_value2) && _value2.length > 0) {
|
|
(0, _warnOnce.warnOnce)("fontVariant", '"fontVariant" style array value is deprecated. Use space-separated values.');
|
|
_value2 = _value2.join(" ");
|
|
}
|
|
nextStyle[prop] = _value2;
|
|
} else if (prop === "textAlignVertical") {
|
|
(0, _warnOnce.warnOnce)("textAlignVertical", '"textAlignVertical" style is deprecated. Use "verticalAlign".');
|
|
if (style.verticalAlign == null) {
|
|
nextStyle.verticalAlign = _value2 === "center" ? "middle" : _value2;
|
|
}
|
|
} else if (prop === "transform") {
|
|
if (Array.isArray(_value2)) {
|
|
_value2 = createTransformValue(_value2);
|
|
}
|
|
nextStyle.transform = _value2;
|
|
} else {
|
|
nextStyle[prop] = _value2;
|
|
}
|
|
}
|
|
return nextStyle;
|
|
}, "preprocess");
|
|
exports2.preprocess = preprocess;
|
|
var _default = preprocess;
|
|
exports2.default = _default;
|
|
}
|
|
});
|
|
|
|
// node_modules/styleq/dist/styleq.js
|
|
var require_styleq = __commonJS({
|
|
"node_modules/styleq/dist/styleq.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", {
|
|
value: true
|
|
});
|
|
exports2.styleq = void 0;
|
|
var cache3 = /* @__PURE__ */ new WeakMap();
|
|
var compiledKey = "$$css";
|
|
function createStyleq(options) {
|
|
var disableCache;
|
|
var disableMix;
|
|
var transform;
|
|
if (options != null) {
|
|
disableCache = options.disableCache === true;
|
|
disableMix = options.disableMix === true;
|
|
transform = options.transform;
|
|
}
|
|
return /* @__PURE__ */ __name(function styleq2() {
|
|
var definedProperties = [];
|
|
var className = "";
|
|
var inlineStyle = null;
|
|
var nextCache = disableCache ? null : cache3;
|
|
var styles = new Array(arguments.length);
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
styles[i] = arguments[i];
|
|
}
|
|
while (styles.length > 0) {
|
|
var possibleStyle = styles.pop();
|
|
if (possibleStyle == null || possibleStyle === false) {
|
|
continue;
|
|
}
|
|
if (Array.isArray(possibleStyle)) {
|
|
for (var _i = 0; _i < possibleStyle.length; _i++) {
|
|
styles.push(possibleStyle[_i]);
|
|
}
|
|
continue;
|
|
}
|
|
var style = transform != null ? transform(possibleStyle) : possibleStyle;
|
|
if (style.$$css) {
|
|
var classNameChunk = "";
|
|
if (nextCache != null && nextCache.has(style)) {
|
|
var cacheEntry = nextCache.get(style);
|
|
if (cacheEntry != null) {
|
|
classNameChunk = cacheEntry[0];
|
|
definedProperties.push.apply(definedProperties, cacheEntry[1]);
|
|
nextCache = cacheEntry[2];
|
|
}
|
|
} else {
|
|
var definedPropertiesChunk = [];
|
|
for (var prop in style) {
|
|
var value = style[prop];
|
|
if (prop === compiledKey)
|
|
continue;
|
|
if (typeof value === "string" || value === null) {
|
|
if (!definedProperties.includes(prop)) {
|
|
definedProperties.push(prop);
|
|
if (nextCache != null) {
|
|
definedPropertiesChunk.push(prop);
|
|
}
|
|
if (typeof value === "string") {
|
|
classNameChunk += classNameChunk ? " " + value : value;
|
|
}
|
|
}
|
|
} else {
|
|
console.error("styleq: ".concat(prop, " typeof ").concat(String(value), ' is not "string" or "null".'));
|
|
}
|
|
}
|
|
if (nextCache != null) {
|
|
var weakMap = /* @__PURE__ */ new WeakMap();
|
|
nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);
|
|
nextCache = weakMap;
|
|
}
|
|
}
|
|
if (classNameChunk) {
|
|
className = className ? classNameChunk + " " + className : classNameChunk;
|
|
}
|
|
} else {
|
|
if (disableMix) {
|
|
if (inlineStyle == null) {
|
|
inlineStyle = {};
|
|
}
|
|
inlineStyle = Object.assign({}, style, inlineStyle);
|
|
} else {
|
|
var subStyle = null;
|
|
for (var _prop in style) {
|
|
var _value = style[_prop];
|
|
if (_value !== void 0) {
|
|
if (!definedProperties.includes(_prop)) {
|
|
if (_value != null) {
|
|
if (inlineStyle == null) {
|
|
inlineStyle = {};
|
|
}
|
|
if (subStyle == null) {
|
|
subStyle = {};
|
|
}
|
|
subStyle[_prop] = _value;
|
|
}
|
|
definedProperties.push(_prop);
|
|
nextCache = null;
|
|
}
|
|
}
|
|
}
|
|
if (subStyle != null) {
|
|
inlineStyle = Object.assign(subStyle, inlineStyle);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var styleProps = [className, inlineStyle];
|
|
return styleProps;
|
|
}, "styleq");
|
|
}
|
|
__name(createStyleq, "createStyleq");
|
|
var styleq = createStyleq();
|
|
exports2.styleq = styleq;
|
|
styleq.factory = createStyleq;
|
|
}
|
|
});
|
|
|
|
// node_modules/styleq/styleq.js
|
|
var require_styleq2 = __commonJS({
|
|
"node_modules/styleq/styleq.js"(exports2, module2) {
|
|
module2.exports = require_styleq();
|
|
}
|
|
});
|
|
|
|
// node_modules/postcss-value-parser/lib/parse.js
|
|
var require_parse = __commonJS({
|
|
"node_modules/postcss-value-parser/lib/parse.js"(exports2, module2) {
|
|
var openParentheses = "(".charCodeAt(0);
|
|
var closeParentheses = ")".charCodeAt(0);
|
|
var singleQuote = "'".charCodeAt(0);
|
|
var doubleQuote = '"'.charCodeAt(0);
|
|
var backslash = "\\".charCodeAt(0);
|
|
var slash = "/".charCodeAt(0);
|
|
var comma = ",".charCodeAt(0);
|
|
var colon = ":".charCodeAt(0);
|
|
var star = "*".charCodeAt(0);
|
|
var uLower = "u".charCodeAt(0);
|
|
var uUpper = "U".charCodeAt(0);
|
|
var plus = "+".charCodeAt(0);
|
|
var isUnicodeRange = /^[a-f0-9?-]+$/i;
|
|
module2.exports = function(input) {
|
|
var tokens2 = [];
|
|
var value = input;
|
|
var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos;
|
|
var pos = 0;
|
|
var code = value.charCodeAt(pos);
|
|
var max2 = value.length;
|
|
var stack = [{ nodes: tokens2 }];
|
|
var balanced = 0;
|
|
var parent;
|
|
var name = "";
|
|
var before = "";
|
|
var after = "";
|
|
while (pos < max2) {
|
|
if (code <= 32) {
|
|
next = pos;
|
|
do {
|
|
next += 1;
|
|
code = value.charCodeAt(next);
|
|
} while (code <= 32);
|
|
token = value.slice(pos, next);
|
|
prev = tokens2[tokens2.length - 1];
|
|
if (code === closeParentheses && balanced) {
|
|
after = token;
|
|
} else if (prev && prev.type === "div") {
|
|
prev.after = token;
|
|
prev.sourceEndIndex += token.length;
|
|
} else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === "function" && parent.value !== "calc")) {
|
|
before = token;
|
|
} else {
|
|
tokens2.push({
|
|
type: "space",
|
|
sourceIndex: pos,
|
|
sourceEndIndex: next,
|
|
value: token
|
|
});
|
|
}
|
|
pos = next;
|
|
} else if (code === singleQuote || code === doubleQuote) {
|
|
next = pos;
|
|
quote = code === singleQuote ? "'" : '"';
|
|
token = {
|
|
type: "string",
|
|
sourceIndex: pos,
|
|
quote
|
|
};
|
|
do {
|
|
escape = false;
|
|
next = value.indexOf(quote, next + 1);
|
|
if (~next) {
|
|
escapePos = next;
|
|
while (value.charCodeAt(escapePos - 1) === backslash) {
|
|
escapePos -= 1;
|
|
escape = !escape;
|
|
}
|
|
} else {
|
|
value += quote;
|
|
next = value.length - 1;
|
|
token.unclosed = true;
|
|
}
|
|
} while (escape);
|
|
token.value = value.slice(pos + 1, next);
|
|
token.sourceEndIndex = token.unclosed ? next : next + 1;
|
|
tokens2.push(token);
|
|
pos = next + 1;
|
|
code = value.charCodeAt(pos);
|
|
} else if (code === slash && value.charCodeAt(pos + 1) === star) {
|
|
next = value.indexOf("*/", pos);
|
|
token = {
|
|
type: "comment",
|
|
sourceIndex: pos,
|
|
sourceEndIndex: next + 2
|
|
};
|
|
if (next === -1) {
|
|
token.unclosed = true;
|
|
next = value.length;
|
|
token.sourceEndIndex = next;
|
|
}
|
|
token.value = value.slice(pos + 2, next);
|
|
tokens2.push(token);
|
|
pos = next + 2;
|
|
code = value.charCodeAt(pos);
|
|
} else if ((code === slash || code === star) && parent && parent.type === "function" && parent.value === "calc") {
|
|
token = value[pos];
|
|
tokens2.push({
|
|
type: "word",
|
|
sourceIndex: pos - before.length,
|
|
sourceEndIndex: pos + token.length,
|
|
value: token
|
|
});
|
|
pos += 1;
|
|
code = value.charCodeAt(pos);
|
|
} else if (code === slash || code === comma || code === colon) {
|
|
token = value[pos];
|
|
tokens2.push({
|
|
type: "div",
|
|
sourceIndex: pos - before.length,
|
|
sourceEndIndex: pos + token.length,
|
|
value: token,
|
|
before,
|
|
after: ""
|
|
});
|
|
before = "";
|
|
pos += 1;
|
|
code = value.charCodeAt(pos);
|
|
} else if (openParentheses === code) {
|
|
next = pos;
|
|
do {
|
|
next += 1;
|
|
code = value.charCodeAt(next);
|
|
} while (code <= 32);
|
|
parenthesesOpenPos = pos;
|
|
token = {
|
|
type: "function",
|
|
sourceIndex: pos - name.length,
|
|
value: name,
|
|
before: value.slice(parenthesesOpenPos + 1, next)
|
|
};
|
|
pos = next;
|
|
if (name === "url" && code !== singleQuote && code !== doubleQuote) {
|
|
next -= 1;
|
|
do {
|
|
escape = false;
|
|
next = value.indexOf(")", next + 1);
|
|
if (~next) {
|
|
escapePos = next;
|
|
while (value.charCodeAt(escapePos - 1) === backslash) {
|
|
escapePos -= 1;
|
|
escape = !escape;
|
|
}
|
|
} else {
|
|
value += ")";
|
|
next = value.length - 1;
|
|
token.unclosed = true;
|
|
}
|
|
} while (escape);
|
|
whitespacePos = next;
|
|
do {
|
|
whitespacePos -= 1;
|
|
code = value.charCodeAt(whitespacePos);
|
|
} while (code <= 32);
|
|
if (parenthesesOpenPos < whitespacePos) {
|
|
if (pos !== whitespacePos + 1) {
|
|
token.nodes = [
|
|
{
|
|
type: "word",
|
|
sourceIndex: pos,
|
|
sourceEndIndex: whitespacePos + 1,
|
|
value: value.slice(pos, whitespacePos + 1)
|
|
}
|
|
];
|
|
} else {
|
|
token.nodes = [];
|
|
}
|
|
if (token.unclosed && whitespacePos + 1 !== next) {
|
|
token.after = "";
|
|
token.nodes.push({
|
|
type: "space",
|
|
sourceIndex: whitespacePos + 1,
|
|
sourceEndIndex: next,
|
|
value: value.slice(whitespacePos + 1, next)
|
|
});
|
|
} else {
|
|
token.after = value.slice(whitespacePos + 1, next);
|
|
token.sourceEndIndex = next;
|
|
}
|
|
} else {
|
|
token.after = "";
|
|
token.nodes = [];
|
|
}
|
|
pos = next + 1;
|
|
token.sourceEndIndex = token.unclosed ? next : pos;
|
|
code = value.charCodeAt(pos);
|
|
tokens2.push(token);
|
|
} else {
|
|
balanced += 1;
|
|
token.after = "";
|
|
token.sourceEndIndex = pos + 1;
|
|
tokens2.push(token);
|
|
stack.push(token);
|
|
tokens2 = token.nodes = [];
|
|
parent = token;
|
|
}
|
|
name = "";
|
|
} else if (closeParentheses === code && balanced) {
|
|
pos += 1;
|
|
code = value.charCodeAt(pos);
|
|
parent.after = after;
|
|
parent.sourceEndIndex += after.length;
|
|
after = "";
|
|
balanced -= 1;
|
|
stack[stack.length - 1].sourceEndIndex = pos;
|
|
stack.pop();
|
|
parent = stack[balanced];
|
|
tokens2 = parent.nodes;
|
|
} else {
|
|
next = pos;
|
|
do {
|
|
if (code === backslash) {
|
|
next += 1;
|
|
}
|
|
next += 1;
|
|
code = value.charCodeAt(next);
|
|
} while (next < max2 && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === "function" && parent.value === "calc" || code === slash && parent.type === "function" && parent.value === "calc" || code === closeParentheses && balanced));
|
|
token = value.slice(pos, next);
|
|
if (openParentheses === code) {
|
|
name = token;
|
|
} else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) {
|
|
tokens2.push({
|
|
type: "unicode-range",
|
|
sourceIndex: pos,
|
|
sourceEndIndex: next,
|
|
value: token
|
|
});
|
|
} else {
|
|
tokens2.push({
|
|
type: "word",
|
|
sourceIndex: pos,
|
|
sourceEndIndex: next,
|
|
value: token
|
|
});
|
|
}
|
|
pos = next;
|
|
}
|
|
}
|
|
for (pos = stack.length - 1; pos; pos -= 1) {
|
|
stack[pos].unclosed = true;
|
|
stack[pos].sourceEndIndex = value.length;
|
|
}
|
|
return stack[0].nodes;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/postcss-value-parser/lib/walk.js
|
|
var require_walk = __commonJS({
|
|
"node_modules/postcss-value-parser/lib/walk.js"(exports2, module2) {
|
|
module2.exports = /* @__PURE__ */ __name(function walk(nodes, cb, bubble) {
|
|
var i, max2, node, result;
|
|
for (i = 0, max2 = nodes.length; i < max2; i += 1) {
|
|
node = nodes[i];
|
|
if (!bubble) {
|
|
result = cb(node, i, nodes);
|
|
}
|
|
if (result !== false && node.type === "function" && Array.isArray(node.nodes)) {
|
|
walk(node.nodes, cb, bubble);
|
|
}
|
|
if (bubble) {
|
|
cb(node, i, nodes);
|
|
}
|
|
}
|
|
}, "walk");
|
|
}
|
|
});
|
|
|
|
// node_modules/postcss-value-parser/lib/stringify.js
|
|
var require_stringify = __commonJS({
|
|
"node_modules/postcss-value-parser/lib/stringify.js"(exports2, module2) {
|
|
function stringifyNode(node, custom) {
|
|
var type = node.type;
|
|
var value = node.value;
|
|
var buf;
|
|
var customResult;
|
|
if (custom && (customResult = custom(node)) !== void 0) {
|
|
return customResult;
|
|
} else if (type === "word" || type === "space") {
|
|
return value;
|
|
} else if (type === "string") {
|
|
buf = node.quote || "";
|
|
return buf + value + (node.unclosed ? "" : buf);
|
|
} else if (type === "comment") {
|
|
return "/*" + value + (node.unclosed ? "" : "*/");
|
|
} else if (type === "div") {
|
|
return (node.before || "") + value + (node.after || "");
|
|
} else if (Array.isArray(node.nodes)) {
|
|
buf = stringify(node.nodes, custom);
|
|
if (type !== "function") {
|
|
return buf;
|
|
}
|
|
return value + "(" + (node.before || "") + buf + (node.after || "") + (node.unclosed ? "" : ")");
|
|
}
|
|
return value;
|
|
}
|
|
__name(stringifyNode, "stringifyNode");
|
|
function stringify(nodes, custom) {
|
|
var result, i;
|
|
if (Array.isArray(nodes)) {
|
|
result = "";
|
|
for (i = nodes.length - 1; ~i; i -= 1) {
|
|
result = stringifyNode(nodes[i], custom) + result;
|
|
}
|
|
return result;
|
|
}
|
|
return stringifyNode(nodes, custom);
|
|
}
|
|
__name(stringify, "stringify");
|
|
module2.exports = stringify;
|
|
}
|
|
});
|
|
|
|
// node_modules/postcss-value-parser/lib/unit.js
|
|
var require_unit = __commonJS({
|
|
"node_modules/postcss-value-parser/lib/unit.js"(exports2, module2) {
|
|
var minus = "-".charCodeAt(0);
|
|
var plus = "+".charCodeAt(0);
|
|
var dot = ".".charCodeAt(0);
|
|
var exp = "e".charCodeAt(0);
|
|
var EXP = "E".charCodeAt(0);
|
|
function likeNumber(value) {
|
|
var code = value.charCodeAt(0);
|
|
var nextCode;
|
|
if (code === plus || code === minus) {
|
|
nextCode = value.charCodeAt(1);
|
|
if (nextCode >= 48 && nextCode <= 57) {
|
|
return true;
|
|
}
|
|
var nextNextCode = value.charCodeAt(2);
|
|
if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
if (code === dot) {
|
|
nextCode = value.charCodeAt(1);
|
|
if (nextCode >= 48 && nextCode <= 57) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
if (code >= 48 && code <= 57) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
__name(likeNumber, "likeNumber");
|
|
module2.exports = function(value) {
|
|
var pos = 0;
|
|
var length = value.length;
|
|
var code;
|
|
var nextCode;
|
|
var nextNextCode;
|
|
if (length === 0 || !likeNumber(value)) {
|
|
return false;
|
|
}
|
|
code = value.charCodeAt(pos);
|
|
if (code === plus || code === minus) {
|
|
pos++;
|
|
}
|
|
while (pos < length) {
|
|
code = value.charCodeAt(pos);
|
|
if (code < 48 || code > 57) {
|
|
break;
|
|
}
|
|
pos += 1;
|
|
}
|
|
code = value.charCodeAt(pos);
|
|
nextCode = value.charCodeAt(pos + 1);
|
|
if (code === dot && nextCode >= 48 && nextCode <= 57) {
|
|
pos += 2;
|
|
while (pos < length) {
|
|
code = value.charCodeAt(pos);
|
|
if (code < 48 || code > 57) {
|
|
break;
|
|
}
|
|
pos += 1;
|
|
}
|
|
}
|
|
code = value.charCodeAt(pos);
|
|
nextCode = value.charCodeAt(pos + 1);
|
|
nextNextCode = value.charCodeAt(pos + 2);
|
|
if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) {
|
|
pos += nextCode === plus || nextCode === minus ? 3 : 2;
|
|
while (pos < length) {
|
|
code = value.charCodeAt(pos);
|
|
if (code < 48 || code > 57) {
|
|
break;
|
|
}
|
|
pos += 1;
|
|
}
|
|
}
|
|
return {
|
|
number: value.slice(0, pos),
|
|
unit: value.slice(pos)
|
|
};
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/postcss-value-parser/lib/index.js
|
|
var require_lib2 = __commonJS({
|
|
"node_modules/postcss-value-parser/lib/index.js"(exports2, module2) {
|
|
var parse = require_parse();
|
|
var walk = require_walk();
|
|
var stringify = require_stringify();
|
|
function ValueParser(value) {
|
|
if (this instanceof ValueParser) {
|
|
this.nodes = parse(value);
|
|
return this;
|
|
}
|
|
return new ValueParser(value);
|
|
}
|
|
__name(ValueParser, "ValueParser");
|
|
ValueParser.prototype.toString = function() {
|
|
return Array.isArray(this.nodes) ? stringify(this.nodes) : "";
|
|
};
|
|
ValueParser.prototype.walk = function(cb, bubble) {
|
|
walk(this.nodes, cb, bubble);
|
|
return this;
|
|
};
|
|
ValueParser.unit = require_unit();
|
|
ValueParser.walk = walk;
|
|
ValueParser.stringify = stringify;
|
|
module2.exports = ValueParser;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/validate.js
|
|
var require_validate = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/validate.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.validate = validate;
|
|
var _postcssValueParser = _interopRequireDefault(require_lib2());
|
|
var invalidShortforms = {
|
|
background: true,
|
|
borderBottom: true,
|
|
borderLeft: true,
|
|
borderRight: true,
|
|
borderTop: true,
|
|
font: true,
|
|
grid: true,
|
|
outline: true,
|
|
textDecoration: true
|
|
};
|
|
var invalidMultiValueShortforms = {
|
|
flex: true,
|
|
margin: true,
|
|
padding: true,
|
|
borderColor: true,
|
|
borderRadius: true,
|
|
borderStyle: true,
|
|
borderWidth: true,
|
|
inset: true,
|
|
insetBlock: true,
|
|
insetInline: true,
|
|
marginBlock: true,
|
|
marginInline: true,
|
|
marginHorizontal: true,
|
|
marginVertical: true,
|
|
paddingBlock: true,
|
|
paddingInline: true,
|
|
paddingHorizontal: true,
|
|
paddingVertical: true,
|
|
overflow: true,
|
|
overscrollBehavior: true,
|
|
backgroundPosition: true
|
|
};
|
|
function error2(message) {
|
|
console.error(message);
|
|
}
|
|
__name(error2, "error");
|
|
function validate(obj) {
|
|
for (var k in obj) {
|
|
var prop = k.trim();
|
|
var value = obj[prop];
|
|
var isInvalid = false;
|
|
if (value === null) {
|
|
continue;
|
|
}
|
|
if (typeof value === "string" && value.indexOf("!important") > -1) {
|
|
error2('Invalid style declaration "' + prop + ":" + value + '". Values cannot include "!important"');
|
|
isInvalid = true;
|
|
} else {
|
|
var suggestion = "";
|
|
if (prop === "animation" || prop === "animationName") {
|
|
suggestion = 'Did you mean "animationKeyframes"?';
|
|
isInvalid = true;
|
|
} else if (prop === "direction") {
|
|
suggestion = 'Did you mean "writingDirection"?';
|
|
isInvalid = true;
|
|
} else if (invalidShortforms[prop]) {
|
|
suggestion = "Please use long-form properties.";
|
|
isInvalid = true;
|
|
} else if (invalidMultiValueShortforms[prop]) {
|
|
if (typeof value === "string" && (0, _postcssValueParser.default)(value).nodes.length > 1) {
|
|
suggestion = 'Value is "' + value + '" but only single values are supported.';
|
|
isInvalid = true;
|
|
}
|
|
}
|
|
if (suggestion !== "") {
|
|
error2('Invalid style property of "' + prop + '". ' + suggestion);
|
|
}
|
|
}
|
|
if (isInvalid) {
|
|
delete obj[k];
|
|
}
|
|
}
|
|
}
|
|
__name(validate, "validate");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StyleSheet/index.js
|
|
var require_StyleSheet = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StyleSheet/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _compiler = require_compiler();
|
|
var _dom = require_dom();
|
|
var _transformLocalizeStyle = require_transform_localize_style2();
|
|
var _preprocess = require_preprocess();
|
|
var _styleq = require_styleq2();
|
|
var _validate = require_validate();
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var _excluded = ["writingDirection"];
|
|
var staticStyleMap = /* @__PURE__ */ new WeakMap();
|
|
var sheet = (0, _dom.createSheet)();
|
|
var defaultPreprocessOptions = {
|
|
shadow: true,
|
|
textShadow: true
|
|
};
|
|
function customStyleq(styles, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
var _options = options, writingDirection = _options.writingDirection, preprocessOptions = (0, _objectWithoutPropertiesLoose2.default)(_options, _excluded);
|
|
var isRTL2 = writingDirection === "rtl";
|
|
return _styleq.styleq.factory({
|
|
transform(style) {
|
|
var compiledStyle = staticStyleMap.get(style);
|
|
if (compiledStyle != null) {
|
|
return (0, _transformLocalizeStyle.localizeStyle)(compiledStyle, isRTL2);
|
|
}
|
|
return (0, _preprocess.preprocess)(style, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultPreprocessOptions), preprocessOptions));
|
|
}
|
|
})(styles);
|
|
}
|
|
__name(customStyleq, "customStyleq");
|
|
function insertRules(compiledOrderedRules) {
|
|
compiledOrderedRules.forEach((_ref) => {
|
|
var rules = _ref[0], order = _ref[1];
|
|
if (sheet != null) {
|
|
rules.forEach((rule) => {
|
|
sheet.insert(rule, order);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
__name(insertRules, "insertRules");
|
|
function compileAndInsertAtomic(style) {
|
|
var _atomic = (0, _compiler.atomic)((0, _preprocess.preprocess)(style, defaultPreprocessOptions)), compiledStyle = _atomic[0], compiledOrderedRules = _atomic[1];
|
|
insertRules(compiledOrderedRules);
|
|
return compiledStyle;
|
|
}
|
|
__name(compileAndInsertAtomic, "compileAndInsertAtomic");
|
|
function compileAndInsertReset(style, key) {
|
|
var _classic = (0, _compiler.classic)(style, key), compiledStyle = _classic[0], compiledOrderedRules = _classic[1];
|
|
insertRules(compiledOrderedRules);
|
|
return compiledStyle;
|
|
}
|
|
__name(compileAndInsertReset, "compileAndInsertReset");
|
|
var absoluteFillObject = {
|
|
position: "absolute",
|
|
left: 0,
|
|
right: 0,
|
|
top: 0,
|
|
bottom: 0
|
|
};
|
|
var absoluteFill = create2({
|
|
x: (0, _objectSpread2.default)({}, absoluteFillObject)
|
|
}).x;
|
|
function create2(styles) {
|
|
Object.keys(styles).forEach((key) => {
|
|
var styleObj = styles[key];
|
|
if (styleObj != null && styleObj.$$css !== true) {
|
|
var compiledStyles;
|
|
if (key.indexOf("$raw") > -1) {
|
|
compiledStyles = compileAndInsertReset(styleObj, key.split("$raw")[0]);
|
|
} else {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
(0, _validate.validate)(styleObj);
|
|
styles[key] = Object.freeze(styleObj);
|
|
}
|
|
compiledStyles = compileAndInsertAtomic(styleObj);
|
|
}
|
|
staticStyleMap.set(styleObj, compiledStyles);
|
|
}
|
|
});
|
|
return styles;
|
|
}
|
|
__name(create2, "create");
|
|
function compose(style1, style2) {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
var len = arguments.length;
|
|
if (len > 2) {
|
|
var readableStyles = [...arguments].map((a) => flatten(a));
|
|
throw new Error("StyleSheet.compose() only accepts 2 arguments, received " + len + ": " + JSON.stringify(readableStyles));
|
|
}
|
|
console.warn("StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].");
|
|
}
|
|
return [style1, style2];
|
|
}
|
|
__name(compose, "compose");
|
|
function flatten() {
|
|
for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
styles[_key] = arguments[_key];
|
|
}
|
|
var flatArray = styles.flat(Infinity);
|
|
var result = {};
|
|
for (var i = 0; i < flatArray.length; i++) {
|
|
var style = flatArray[i];
|
|
if (style != null && typeof style === "object") {
|
|
Object.assign(result, style);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
__name(flatten, "flatten");
|
|
function getSheet() {
|
|
return {
|
|
id: sheet.id,
|
|
textContent: sheet.getTextContent()
|
|
};
|
|
}
|
|
__name(getSheet, "getSheet");
|
|
function StyleSheet(styles, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
var isRTL2 = options.writingDirection === "rtl";
|
|
var styleProps = customStyleq(styles, options);
|
|
if (Array.isArray(styleProps) && styleProps[1] != null) {
|
|
styleProps[1] = (0, _compiler.inline)(styleProps[1], isRTL2);
|
|
}
|
|
return styleProps;
|
|
}
|
|
__name(StyleSheet, "StyleSheet");
|
|
StyleSheet.absoluteFill = absoluteFill;
|
|
StyleSheet.absoluteFillObject = absoluteFillObject;
|
|
StyleSheet.create = create2;
|
|
StyleSheet.compose = compose;
|
|
StyleSheet.flatten = flatten;
|
|
StyleSheet.getSheet = getSheet;
|
|
StyleSheet.hairlineWidth = 1;
|
|
if (_canUseDom.default && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
|
window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;
|
|
}
|
|
var stylesheet = StyleSheet;
|
|
var _default = stylesheet;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/createDOMProps/index.js
|
|
var require_createDOMProps = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/createDOMProps/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());
|
|
var _StyleSheet2 = _interopRequireDefault(require_StyleSheet());
|
|
var _warnOnce = require_warnOnce();
|
|
var _excluded = ["aria-activedescendant", "accessibilityActiveDescendant", "aria-atomic", "accessibilityAtomic", "aria-autocomplete", "accessibilityAutoComplete", "aria-busy", "accessibilityBusy", "aria-checked", "accessibilityChecked", "aria-colcount", "accessibilityColumnCount", "aria-colindex", "accessibilityColumnIndex", "aria-colspan", "accessibilityColumnSpan", "aria-controls", "accessibilityControls", "aria-current", "accessibilityCurrent", "aria-describedby", "accessibilityDescribedBy", "aria-details", "accessibilityDetails", "aria-disabled", "accessibilityDisabled", "aria-errormessage", "accessibilityErrorMessage", "aria-expanded", "accessibilityExpanded", "aria-flowto", "accessibilityFlowTo", "aria-haspopup", "accessibilityHasPopup", "aria-hidden", "accessibilityHidden", "aria-invalid", "accessibilityInvalid", "aria-keyshortcuts", "accessibilityKeyShortcuts", "aria-label", "accessibilityLabel", "aria-labelledby", "accessibilityLabelledBy", "aria-level", "accessibilityLevel", "aria-live", "accessibilityLiveRegion", "aria-modal", "accessibilityModal", "aria-multiline", "accessibilityMultiline", "aria-multiselectable", "accessibilityMultiSelectable", "aria-orientation", "accessibilityOrientation", "aria-owns", "accessibilityOwns", "aria-placeholder", "accessibilityPlaceholder", "aria-posinset", "accessibilityPosInSet", "aria-pressed", "accessibilityPressed", "aria-readonly", "accessibilityReadOnly", "aria-required", "accessibilityRequired", "role", "accessibilityRole", "aria-roledescription", "accessibilityRoleDescription", "aria-rowcount", "accessibilityRowCount", "aria-rowindex", "accessibilityRowIndex", "aria-rowspan", "accessibilityRowSpan", "aria-selected", "accessibilitySelected", "aria-setsize", "accessibilitySetSize", "aria-sort", "accessibilitySort", "aria-valuemax", "accessibilityValueMax", "aria-valuemin", "accessibilityValueMin", "aria-valuenow", "accessibilityValueNow", "aria-valuetext", "accessibilityValueText", "dataSet", "focusable", "id", "nativeID", "pointerEvents", "style", "tabIndex", "testID"];
|
|
var emptyObject = {};
|
|
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
var isArray = Array.isArray;
|
|
var uppercasePattern = /[A-Z]/g;
|
|
function toHyphenLower(match) {
|
|
return "-" + match.toLowerCase();
|
|
}
|
|
__name(toHyphenLower, "toHyphenLower");
|
|
function hyphenateString(str) {
|
|
return str.replace(uppercasePattern, toHyphenLower);
|
|
}
|
|
__name(hyphenateString, "hyphenateString");
|
|
function processIDRefList(idRefList) {
|
|
return isArray(idRefList) ? idRefList.join(" ") : idRefList;
|
|
}
|
|
__name(processIDRefList, "processIDRefList");
|
|
var pointerEventsStyles = _StyleSheet2.default.create({
|
|
auto: {
|
|
pointerEvents: "auto"
|
|
},
|
|
"box-none": {
|
|
pointerEvents: "box-none"
|
|
},
|
|
"box-only": {
|
|
pointerEvents: "box-only"
|
|
},
|
|
none: {
|
|
pointerEvents: "none"
|
|
}
|
|
});
|
|
var createDOMProps = /* @__PURE__ */ __name((elementType, props, options) => {
|
|
if (!props) {
|
|
props = emptyObject;
|
|
}
|
|
var _props = props, ariaActiveDescendant = _props["aria-activedescendant"], accessibilityActiveDescendant = _props.accessibilityActiveDescendant, ariaAtomic = _props["aria-atomic"], accessibilityAtomic = _props.accessibilityAtomic, ariaAutoComplete = _props["aria-autocomplete"], accessibilityAutoComplete = _props.accessibilityAutoComplete, ariaBusy = _props["aria-busy"], accessibilityBusy = _props.accessibilityBusy, ariaChecked = _props["aria-checked"], accessibilityChecked = _props.accessibilityChecked, ariaColumnCount = _props["aria-colcount"], accessibilityColumnCount = _props.accessibilityColumnCount, ariaColumnIndex = _props["aria-colindex"], accessibilityColumnIndex = _props.accessibilityColumnIndex, ariaColumnSpan = _props["aria-colspan"], accessibilityColumnSpan = _props.accessibilityColumnSpan, ariaControls = _props["aria-controls"], accessibilityControls = _props.accessibilityControls, ariaCurrent = _props["aria-current"], accessibilityCurrent = _props.accessibilityCurrent, ariaDescribedBy = _props["aria-describedby"], accessibilityDescribedBy = _props.accessibilityDescribedBy, ariaDetails = _props["aria-details"], accessibilityDetails = _props.accessibilityDetails, ariaDisabled = _props["aria-disabled"], accessibilityDisabled = _props.accessibilityDisabled, ariaErrorMessage = _props["aria-errormessage"], accessibilityErrorMessage = _props.accessibilityErrorMessage, ariaExpanded = _props["aria-expanded"], accessibilityExpanded = _props.accessibilityExpanded, ariaFlowTo = _props["aria-flowto"], accessibilityFlowTo = _props.accessibilityFlowTo, ariaHasPopup = _props["aria-haspopup"], accessibilityHasPopup = _props.accessibilityHasPopup, ariaHidden = _props["aria-hidden"], accessibilityHidden = _props.accessibilityHidden, ariaInvalid = _props["aria-invalid"], accessibilityInvalid = _props.accessibilityInvalid, ariaKeyShortcuts = _props["aria-keyshortcuts"], accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts, ariaLabel = _props["aria-label"], accessibilityLabel = _props.accessibilityLabel, ariaLabelledBy = _props["aria-labelledby"], accessibilityLabelledBy = _props.accessibilityLabelledBy, ariaLevel = _props["aria-level"], accessibilityLevel = _props.accessibilityLevel, ariaLive = _props["aria-live"], accessibilityLiveRegion = _props.accessibilityLiveRegion, ariaModal = _props["aria-modal"], accessibilityModal = _props.accessibilityModal, ariaMultiline = _props["aria-multiline"], accessibilityMultiline = _props.accessibilityMultiline, ariaMultiSelectable = _props["aria-multiselectable"], accessibilityMultiSelectable = _props.accessibilityMultiSelectable, ariaOrientation = _props["aria-orientation"], accessibilityOrientation = _props.accessibilityOrientation, ariaOwns = _props["aria-owns"], accessibilityOwns = _props.accessibilityOwns, ariaPlaceholder = _props["aria-placeholder"], accessibilityPlaceholder = _props.accessibilityPlaceholder, ariaPosInSet = _props["aria-posinset"], accessibilityPosInSet = _props.accessibilityPosInSet, ariaPressed = _props["aria-pressed"], accessibilityPressed = _props.accessibilityPressed, ariaReadOnly = _props["aria-readonly"], accessibilityReadOnly = _props.accessibilityReadOnly, ariaRequired = _props["aria-required"], accessibilityRequired = _props.accessibilityRequired, ariaRole = _props.role, accessibilityRole = _props.accessibilityRole, ariaRoleDescription = _props["aria-roledescription"], accessibilityRoleDescription = _props.accessibilityRoleDescription, ariaRowCount = _props["aria-rowcount"], accessibilityRowCount = _props.accessibilityRowCount, ariaRowIndex = _props["aria-rowindex"], accessibilityRowIndex = _props.accessibilityRowIndex, ariaRowSpan = _props["aria-rowspan"], accessibilityRowSpan = _props.accessibilityRowSpan, ariaSelected = _props["aria-selected"], accessibilitySelected = _props.accessibilitySelected, ariaSetSize = _props["aria-setsize"], accessibilitySetSize = _props.accessibilitySetSize, ariaSort = _props["aria-sort"], accessibilitySort = _props.accessibilitySort, ariaValueMax = _props["aria-valuemax"], accessibilityValueMax = _props.accessibilityValueMax, ariaValueMin = _props["aria-valuemin"], accessibilityValueMin = _props.accessibilityValueMin, ariaValueNow = _props["aria-valuenow"], accessibilityValueNow = _props.accessibilityValueNow, ariaValueText = _props["aria-valuetext"], accessibilityValueText = _props.accessibilityValueText, dataSet = _props.dataSet, focusable = _props.focusable, id = _props.id, nativeID = _props.nativeID, pointerEvents = _props.pointerEvents, style = _props.style, tabIndex = _props.tabIndex, testID = _props.testID, domProps = (0, _objectWithoutPropertiesLoose2.default)(_props, _excluded);
|
|
if (accessibilityDisabled != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityDisabled", "accessibilityDisabled is deprecated.");
|
|
}
|
|
var disabled = ariaDisabled || accessibilityDisabled;
|
|
var role = _AccessibilityUtil.default.propsToAriaRole(props);
|
|
if (accessibilityActiveDescendant != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityActiveDescendant", "accessibilityActiveDescendant is deprecated. Use aria-activedescendant.");
|
|
}
|
|
var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;
|
|
if (_ariaActiveDescendant != null) {
|
|
domProps["aria-activedescendant"] = _ariaActiveDescendant;
|
|
}
|
|
if (accessibilityAtomic != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityAtomic", "accessibilityAtomic is deprecated. Use aria-atomic.");
|
|
}
|
|
var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;
|
|
if (_ariaAtomic != null) {
|
|
domProps["aria-atomic"] = _ariaAtomic;
|
|
}
|
|
if (accessibilityAutoComplete != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityAutoComplete", "accessibilityAutoComplete is deprecated. Use aria-autocomplete.");
|
|
}
|
|
var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;
|
|
if (_ariaAutoComplete != null) {
|
|
domProps["aria-autocomplete"] = _ariaAutoComplete;
|
|
}
|
|
if (accessibilityBusy != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityBusy", "accessibilityBusy is deprecated. Use aria-busy.");
|
|
}
|
|
var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;
|
|
if (_ariaBusy != null) {
|
|
domProps["aria-busy"] = _ariaBusy;
|
|
}
|
|
if (accessibilityChecked != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityChecked", "accessibilityChecked is deprecated. Use aria-checked.");
|
|
}
|
|
var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;
|
|
if (_ariaChecked != null) {
|
|
domProps["aria-checked"] = _ariaChecked;
|
|
}
|
|
if (accessibilityColumnCount != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityColumnCount", "accessibilityColumnCount is deprecated. Use aria-colcount.");
|
|
}
|
|
var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;
|
|
if (_ariaColumnCount != null) {
|
|
domProps["aria-colcount"] = _ariaColumnCount;
|
|
}
|
|
if (accessibilityColumnIndex != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityColumnIndex", "accessibilityColumnIndex is deprecated. Use aria-colindex.");
|
|
}
|
|
var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;
|
|
if (_ariaColumnIndex != null) {
|
|
domProps["aria-colindex"] = _ariaColumnIndex;
|
|
}
|
|
if (accessibilityColumnSpan != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityColumnSpan", "accessibilityColumnSpan is deprecated. Use aria-colspan.");
|
|
}
|
|
var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;
|
|
if (_ariaColumnSpan != null) {
|
|
domProps["aria-colspan"] = _ariaColumnSpan;
|
|
}
|
|
if (accessibilityControls != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityControls", "accessibilityControls is deprecated. Use aria-controls.");
|
|
}
|
|
var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;
|
|
if (_ariaControls != null) {
|
|
domProps["aria-controls"] = processIDRefList(_ariaControls);
|
|
}
|
|
if (accessibilityCurrent != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityCurrent", "accessibilityCurrent is deprecated. Use aria-current.");
|
|
}
|
|
var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;
|
|
if (_ariaCurrent != null) {
|
|
domProps["aria-current"] = _ariaCurrent;
|
|
}
|
|
if (accessibilityDescribedBy != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityDescribedBy", "accessibilityDescribedBy is deprecated. Use aria-describedby.");
|
|
}
|
|
var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;
|
|
if (_ariaDescribedBy != null) {
|
|
domProps["aria-describedby"] = processIDRefList(_ariaDescribedBy);
|
|
}
|
|
if (accessibilityDetails != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityDetails", "accessibilityDetails is deprecated. Use aria-details.");
|
|
}
|
|
var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;
|
|
if (_ariaDetails != null) {
|
|
domProps["aria-details"] = _ariaDetails;
|
|
}
|
|
if (disabled === true) {
|
|
domProps["aria-disabled"] = true;
|
|
if (elementType === "button" || elementType === "form" || elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
domProps.disabled = true;
|
|
}
|
|
}
|
|
if (accessibilityErrorMessage != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityErrorMessage", "accessibilityErrorMessage is deprecated. Use aria-errormessage.");
|
|
}
|
|
var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;
|
|
if (_ariaErrorMessage != null) {
|
|
domProps["aria-errormessage"] = _ariaErrorMessage;
|
|
}
|
|
if (accessibilityExpanded != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityExpanded", "accessibilityExpanded is deprecated. Use aria-expanded.");
|
|
}
|
|
var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;
|
|
if (_ariaExpanded != null) {
|
|
domProps["aria-expanded"] = _ariaExpanded;
|
|
}
|
|
if (accessibilityFlowTo != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityFlowTo", "accessibilityFlowTo is deprecated. Use aria-flowto.");
|
|
}
|
|
var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;
|
|
if (_ariaFlowTo != null) {
|
|
domProps["aria-flowto"] = processIDRefList(_ariaFlowTo);
|
|
}
|
|
if (accessibilityHasPopup != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityHasPopup", "accessibilityHasPopup is deprecated. Use aria-haspopup.");
|
|
}
|
|
var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;
|
|
if (_ariaHasPopup != null) {
|
|
domProps["aria-haspopup"] = _ariaHasPopup;
|
|
}
|
|
if (accessibilityHidden != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityHidden", "accessibilityHidden is deprecated. Use aria-hidden.");
|
|
}
|
|
var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;
|
|
if (_ariaHidden === true) {
|
|
domProps["aria-hidden"] = _ariaHidden;
|
|
}
|
|
if (accessibilityInvalid != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityInvalid", "accessibilityInvalid is deprecated. Use aria-invalid.");
|
|
}
|
|
var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;
|
|
if (_ariaInvalid != null) {
|
|
domProps["aria-invalid"] = _ariaInvalid;
|
|
}
|
|
if (accessibilityKeyShortcuts != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityKeyShortcuts", "accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.");
|
|
}
|
|
var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;
|
|
if (_ariaKeyShortcuts != null) {
|
|
domProps["aria-keyshortcuts"] = processIDRefList(_ariaKeyShortcuts);
|
|
}
|
|
if (accessibilityLabel != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityLabel", "accessibilityLabel is deprecated. Use aria-label.");
|
|
}
|
|
var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;
|
|
if (_ariaLabel != null) {
|
|
domProps["aria-label"] = _ariaLabel;
|
|
}
|
|
if (accessibilityLabelledBy != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityLabelledBy", "accessibilityLabelledBy is deprecated. Use aria-labelledby.");
|
|
}
|
|
var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;
|
|
if (_ariaLabelledBy != null) {
|
|
domProps["aria-labelledby"] = processIDRefList(_ariaLabelledBy);
|
|
}
|
|
if (accessibilityLevel != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityLevel", "accessibilityLevel is deprecated. Use aria-level.");
|
|
}
|
|
var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;
|
|
if (_ariaLevel != null) {
|
|
domProps["aria-level"] = _ariaLevel;
|
|
}
|
|
if (accessibilityLiveRegion != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityLiveRegion", "accessibilityLiveRegion is deprecated. Use aria-live.");
|
|
}
|
|
var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;
|
|
if (_ariaLive != null) {
|
|
domProps["aria-live"] = _ariaLive === "none" ? "off" : _ariaLive;
|
|
}
|
|
if (accessibilityModal != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityModal", "accessibilityModal is deprecated. Use aria-modal.");
|
|
}
|
|
var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;
|
|
if (_ariaModal != null) {
|
|
domProps["aria-modal"] = _ariaModal;
|
|
}
|
|
if (accessibilityMultiline != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityMultiline", "accessibilityMultiline is deprecated. Use aria-multiline.");
|
|
}
|
|
var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;
|
|
if (_ariaMultiline != null) {
|
|
domProps["aria-multiline"] = _ariaMultiline;
|
|
}
|
|
if (accessibilityMultiSelectable != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityMultiSelectable", "accessibilityMultiSelectable is deprecated. Use aria-multiselectable.");
|
|
}
|
|
var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;
|
|
if (_ariaMultiSelectable != null) {
|
|
domProps["aria-multiselectable"] = _ariaMultiSelectable;
|
|
}
|
|
if (accessibilityOrientation != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityOrientation", "accessibilityOrientation is deprecated. Use aria-orientation.");
|
|
}
|
|
var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;
|
|
if (_ariaOrientation != null) {
|
|
domProps["aria-orientation"] = _ariaOrientation;
|
|
}
|
|
if (accessibilityOwns != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityOwns", "accessibilityOwns is deprecated. Use aria-owns.");
|
|
}
|
|
var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;
|
|
if (_ariaOwns != null) {
|
|
domProps["aria-owns"] = processIDRefList(_ariaOwns);
|
|
}
|
|
if (accessibilityPlaceholder != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityPlaceholder", "accessibilityPlaceholder is deprecated. Use aria-placeholder.");
|
|
}
|
|
var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;
|
|
if (_ariaPlaceholder != null) {
|
|
domProps["aria-placeholder"] = _ariaPlaceholder;
|
|
}
|
|
if (accessibilityPosInSet != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityPosInSet", "accessibilityPosInSet is deprecated. Use aria-posinset.");
|
|
}
|
|
var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;
|
|
if (_ariaPosInSet != null) {
|
|
domProps["aria-posinset"] = _ariaPosInSet;
|
|
}
|
|
if (accessibilityPressed != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityPressed", "accessibilityPressed is deprecated. Use aria-pressed.");
|
|
}
|
|
var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;
|
|
if (_ariaPressed != null) {
|
|
domProps["aria-pressed"] = _ariaPressed;
|
|
}
|
|
if (accessibilityReadOnly != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityReadOnly", "accessibilityReadOnly is deprecated. Use aria-readonly.");
|
|
}
|
|
var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;
|
|
if (_ariaReadOnly != null) {
|
|
domProps["aria-readonly"] = _ariaReadOnly;
|
|
if (elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
domProps.readOnly = true;
|
|
}
|
|
}
|
|
if (accessibilityRequired != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRequired", "accessibilityRequired is deprecated. Use aria-required.");
|
|
}
|
|
var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;
|
|
if (_ariaRequired != null) {
|
|
domProps["aria-required"] = _ariaRequired;
|
|
if (elementType === "input" || elementType === "select" || elementType === "textarea") {
|
|
domProps.required = accessibilityRequired;
|
|
}
|
|
}
|
|
if (accessibilityRole != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRole", "accessibilityRole is deprecated. Use role.");
|
|
}
|
|
if (role != null) {
|
|
domProps["role"] = role === "none" ? "presentation" : role;
|
|
}
|
|
if (accessibilityRoleDescription != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRoleDescription", "accessibilityRoleDescription is deprecated. Use aria-roledescription.");
|
|
}
|
|
var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;
|
|
if (_ariaRoleDescription != null) {
|
|
domProps["aria-roledescription"] = _ariaRoleDescription;
|
|
}
|
|
if (accessibilityRowCount != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRowCount", "accessibilityRowCount is deprecated. Use aria-rowcount.");
|
|
}
|
|
var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;
|
|
if (_ariaRowCount != null) {
|
|
domProps["aria-rowcount"] = _ariaRowCount;
|
|
}
|
|
if (accessibilityRowIndex != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRowIndex", "accessibilityRowIndex is deprecated. Use aria-rowindex.");
|
|
}
|
|
var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;
|
|
if (_ariaRowIndex != null) {
|
|
domProps["aria-rowindex"] = _ariaRowIndex;
|
|
}
|
|
if (accessibilityRowSpan != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityRowSpan", "accessibilityRowSpan is deprecated. Use aria-rowspan.");
|
|
}
|
|
var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;
|
|
if (_ariaRowSpan != null) {
|
|
domProps["aria-rowspan"] = _ariaRowSpan;
|
|
}
|
|
if (accessibilitySelected != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilitySelected", "accessibilitySelected is deprecated. Use aria-selected.");
|
|
}
|
|
var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;
|
|
if (_ariaSelected != null) {
|
|
domProps["aria-selected"] = _ariaSelected;
|
|
}
|
|
if (accessibilitySetSize != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilitySetSize", "accessibilitySetSize is deprecated. Use aria-setsize.");
|
|
}
|
|
var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;
|
|
if (_ariaSetSize != null) {
|
|
domProps["aria-setsize"] = _ariaSetSize;
|
|
}
|
|
if (accessibilitySort != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilitySort", "accessibilitySort is deprecated. Use aria-sort.");
|
|
}
|
|
var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;
|
|
if (_ariaSort != null) {
|
|
domProps["aria-sort"] = _ariaSort;
|
|
}
|
|
if (accessibilityValueMax != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityValueMax", "accessibilityValueMax is deprecated. Use aria-valuemax.");
|
|
}
|
|
var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;
|
|
if (_ariaValueMax != null) {
|
|
domProps["aria-valuemax"] = _ariaValueMax;
|
|
}
|
|
if (accessibilityValueMin != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityValueMin", "accessibilityValueMin is deprecated. Use aria-valuemin.");
|
|
}
|
|
var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;
|
|
if (_ariaValueMin != null) {
|
|
domProps["aria-valuemin"] = _ariaValueMin;
|
|
}
|
|
if (accessibilityValueNow != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityValueNow", "accessibilityValueNow is deprecated. Use aria-valuenow.");
|
|
}
|
|
var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;
|
|
if (_ariaValueNow != null) {
|
|
domProps["aria-valuenow"] = _ariaValueNow;
|
|
}
|
|
if (accessibilityValueText != null) {
|
|
(0, _warnOnce.warnOnce)("accessibilityValueText", "accessibilityValueText is deprecated. Use aria-valuetext.");
|
|
}
|
|
var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;
|
|
if (_ariaValueText != null) {
|
|
domProps["aria-valuetext"] = _ariaValueText;
|
|
}
|
|
if (dataSet != null) {
|
|
for (var dataProp in dataSet) {
|
|
if (hasOwnProperty.call(dataSet, dataProp)) {
|
|
var dataName = hyphenateString(dataProp);
|
|
var dataValue = dataSet[dataProp];
|
|
if (dataValue != null) {
|
|
domProps["data-" + dataName] = dataValue;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (tabIndex === 0 || tabIndex === "0" || tabIndex === -1 || tabIndex === "-1") {
|
|
domProps.tabIndex = tabIndex;
|
|
} else {
|
|
if (focusable != null) {
|
|
(0, _warnOnce.warnOnce)("focusable", "focusable is deprecated.");
|
|
}
|
|
if (focusable === false) {
|
|
domProps.tabIndex = "-1";
|
|
}
|
|
if (
|
|
// These native elements are keyboard focusable by default
|
|
elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea"
|
|
) {
|
|
if (focusable === false || accessibilityDisabled === true) {
|
|
domProps.tabIndex = "-1";
|
|
}
|
|
} else if (
|
|
// These roles are made keyboard focusable by default
|
|
role === "button" || role === "checkbox" || role === "link" || role === "radio" || role === "textbox" || role === "switch"
|
|
) {
|
|
if (focusable !== false) {
|
|
domProps.tabIndex = "0";
|
|
}
|
|
} else {
|
|
if (focusable === true) {
|
|
domProps.tabIndex = "0";
|
|
}
|
|
}
|
|
}
|
|
if (pointerEvents != null) {
|
|
(0, _warnOnce.warnOnce)("pointerEvents", "props.pointerEvents is deprecated. Use style.pointerEvents");
|
|
}
|
|
var _StyleSheet = (0, _StyleSheet2.default)([style, pointerEvents && pointerEventsStyles[pointerEvents]], (0, _objectSpread2.default)({
|
|
writingDirection: "ltr"
|
|
}, options)), className = _StyleSheet[0], inlineStyle = _StyleSheet[1];
|
|
if (className) {
|
|
domProps.className = className;
|
|
}
|
|
if (inlineStyle) {
|
|
domProps.style = inlineStyle;
|
|
}
|
|
if (nativeID != null) {
|
|
(0, _warnOnce.warnOnce)("nativeID", "nativeID is deprecated. Use id.");
|
|
}
|
|
var _id = id != null ? id : nativeID;
|
|
if (_id != null) {
|
|
domProps.id = _id;
|
|
}
|
|
if (testID != null) {
|
|
domProps["data-testid"] = testID;
|
|
}
|
|
if (domProps.type == null && elementType === "button") {
|
|
domProps.type = "button";
|
|
}
|
|
return domProps;
|
|
}, "createDOMProps");
|
|
var _default = createDOMProps;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/interopRequireWildcard.js
|
|
var require_interopRequireWildcard = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/interopRequireWildcard.js"(exports2, module2) {
|
|
var _typeof = require_typeof()["default"];
|
|
function _getRequireWildcardCache(e) {
|
|
if ("function" != typeof WeakMap)
|
|
return null;
|
|
var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap();
|
|
return (_getRequireWildcardCache = /* @__PURE__ */ __name(function _getRequireWildcardCache2(e2) {
|
|
return e2 ? t : r;
|
|
}, "_getRequireWildcardCache"))(e);
|
|
}
|
|
__name(_getRequireWildcardCache, "_getRequireWildcardCache");
|
|
function _interopRequireWildcard(e, r) {
|
|
if (!r && e && e.__esModule)
|
|
return e;
|
|
if (null === e || "object" != _typeof(e) && "function" != typeof e)
|
|
return {
|
|
"default": e
|
|
};
|
|
var t = _getRequireWildcardCache(r);
|
|
if (t && t.has(e))
|
|
return t.get(e);
|
|
var n = {
|
|
__proto__: null
|
|
}, a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for (var u in e)
|
|
if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
|
}
|
|
return n["default"] = e, t && t.set(e, n), n;
|
|
}
|
|
__name(_interopRequireWildcard, "_interopRequireWildcard");
|
|
module2.exports = _interopRequireWildcard, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useLocale/isLocaleRTL.js
|
|
var require_isLocaleRTL = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useLocale/isLocaleRTL.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.isLocaleRTL = isLocaleRTL;
|
|
var rtlScripts = /* @__PURE__ */ new Set(["Arab", "Syrc", "Samr", "Mand", "Thaa", "Mend", "Nkoo", "Adlm", "Rohg", "Hebr"]);
|
|
var rtlLangs = /* @__PURE__ */ new Set([
|
|
"ae",
|
|
// Avestan
|
|
"ar",
|
|
// Arabic
|
|
"arc",
|
|
// Aramaic
|
|
"bcc",
|
|
// Southern Balochi
|
|
"bqi",
|
|
// Bakthiari
|
|
"ckb",
|
|
// Sorani
|
|
"dv",
|
|
// Dhivehi
|
|
"fa",
|
|
"far",
|
|
// Persian
|
|
"glk",
|
|
// Gilaki
|
|
"he",
|
|
"iw",
|
|
// Hebrew
|
|
"khw",
|
|
// Khowar
|
|
"ks",
|
|
// Kashmiri
|
|
"ku",
|
|
// Kurdish
|
|
"mzn",
|
|
// Mazanderani
|
|
"nqo",
|
|
// N'Ko
|
|
"pnb",
|
|
// Western Punjabi
|
|
"ps",
|
|
// Pashto
|
|
"sd",
|
|
// Sindhi
|
|
"ug",
|
|
// Uyghur
|
|
"ur",
|
|
// Urdu
|
|
"yi"
|
|
// Yiddish
|
|
]);
|
|
var cache3 = /* @__PURE__ */ new Map();
|
|
function isLocaleRTL(locale) {
|
|
var cachedRTL = cache3.get(locale);
|
|
if (cachedRTL) {
|
|
return cachedRTL;
|
|
}
|
|
var isRTL2 = false;
|
|
if (Intl.Locale) {
|
|
var script = new Intl.Locale(locale).maximize().script;
|
|
isRTL2 = rtlScripts.has(script);
|
|
} else {
|
|
var lang = locale.split("-")[0];
|
|
isRTL2 = rtlLangs.has(lang);
|
|
}
|
|
cache3.set(locale, isRTL2);
|
|
return isRTL2;
|
|
}
|
|
__name(isLocaleRTL, "isLocaleRTL");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useLocale/index.js
|
|
var require_useLocale = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useLocale/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.LocaleProvider = LocaleProvider;
|
|
exports2.getLocaleDirection = getLocaleDirection;
|
|
exports2.useLocaleContext = useLocaleContext;
|
|
var _react = _interopRequireWildcard(require("react"));
|
|
var _isLocaleRTL = require_isLocaleRTL();
|
|
var defaultLocale = {
|
|
direction: "ltr",
|
|
locale: "en-US"
|
|
};
|
|
var LocaleContext = /* @__PURE__ */ (0, _react.createContext)(defaultLocale);
|
|
function getLocaleDirection(locale) {
|
|
return (0, _isLocaleRTL.isLocaleRTL)(locale) ? "rtl" : "ltr";
|
|
}
|
|
__name(getLocaleDirection, "getLocaleDirection");
|
|
function LocaleProvider(props) {
|
|
var direction = props.direction, locale = props.locale, children = props.children;
|
|
var needsContext = direction || locale;
|
|
return needsContext ? /* @__PURE__ */ _react.default.createElement(LocaleContext.Provider, {
|
|
children,
|
|
value: {
|
|
direction: locale ? getLocaleDirection(locale) : direction,
|
|
locale
|
|
}
|
|
}) : children;
|
|
}
|
|
__name(LocaleProvider, "LocaleProvider");
|
|
function useLocaleContext() {
|
|
return (0, _react.useContext)(LocaleContext);
|
|
}
|
|
__name(useLocaleContext, "useLocaleContext");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/createElement/index.js
|
|
var require_createElement = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/createElement/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());
|
|
var _createDOMProps = _interopRequireDefault(require_createDOMProps());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _useLocale = require_useLocale();
|
|
var createElement5 = /* @__PURE__ */ __name((component, props, options) => {
|
|
var accessibilityComponent;
|
|
if (component && component.constructor === String) {
|
|
accessibilityComponent = _AccessibilityUtil.default.propsToAccessibilityComponent(props);
|
|
}
|
|
var Component = accessibilityComponent || component;
|
|
var domProps = (0, _createDOMProps.default)(Component, props, options);
|
|
var element = /* @__PURE__ */ _react.default.createElement(Component, domProps);
|
|
var elementWithLocaleProvider = domProps.dir ? /* @__PURE__ */ _react.default.createElement(_useLocale.LocaleProvider, {
|
|
children: element,
|
|
direction: domProps.dir,
|
|
locale: domProps.lang
|
|
}) : element;
|
|
return elementWithLocaleProvider;
|
|
}, "createElement");
|
|
var _default = createElement5;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/findNodeHandle/index.js
|
|
var require_findNodeHandle = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/findNodeHandle/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _reactDom = require("react-dom");
|
|
var findNodeHandle = /* @__PURE__ */ __name((component) => {
|
|
var node;
|
|
try {
|
|
node = (0, _reactDom.findDOMNode)(component);
|
|
} catch (e) {
|
|
}
|
|
return node;
|
|
}, "findNodeHandle");
|
|
var _default = findNodeHandle;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/unmountComponentAtNode/index.js
|
|
var require_unmountComponentAtNode = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/unmountComponentAtNode/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _reactDom = require("react-dom");
|
|
var _default = _reactDom.unmountComponentAtNode;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/render/index.js
|
|
var require_render = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/render/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = renderLegacy;
|
|
exports2.hydrate = hydrate;
|
|
exports2.hydrateLegacy = hydrateLegacy;
|
|
exports2.render = render;
|
|
var _reactDom = require("react-dom");
|
|
var _client = require("react-dom/client");
|
|
var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());
|
|
var _dom = require_dom();
|
|
function hydrate(element, root) {
|
|
(0, _dom.createSheet)(root);
|
|
return (0, _client.hydrateRoot)(root, element);
|
|
}
|
|
__name(hydrate, "hydrate");
|
|
function render(element, root) {
|
|
(0, _dom.createSheet)(root);
|
|
var reactRoot = (0, _client.createRoot)(root);
|
|
reactRoot.render(element);
|
|
return reactRoot;
|
|
}
|
|
__name(render, "render");
|
|
function hydrateLegacy(element, root, callback) {
|
|
(0, _dom.createSheet)(root);
|
|
(0, _reactDom.hydrate)(element, root, callback);
|
|
return {
|
|
unmount: /* @__PURE__ */ __name(function unmount() {
|
|
return (0, _unmountComponentAtNode.default)(root);
|
|
}, "unmount")
|
|
};
|
|
}
|
|
__name(hydrateLegacy, "hydrateLegacy");
|
|
function renderLegacy(element, root, callback) {
|
|
(0, _dom.createSheet)(root);
|
|
(0, _reactDom.render)(element, root, callback);
|
|
return {
|
|
unmount: /* @__PURE__ */ __name(function unmount() {
|
|
return (0, _unmountComponentAtNode.default)(root);
|
|
}, "unmount")
|
|
};
|
|
}
|
|
__name(renderLegacy, "renderLegacy");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/getBoundingClientRect/index.js
|
|
var require_getBoundingClientRect = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/getBoundingClientRect/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var getBoundingClientRect2 = /* @__PURE__ */ __name((node) => {
|
|
if (node != null) {
|
|
var isElement2 = node.nodeType === 1;
|
|
if (isElement2 && typeof node.getBoundingClientRect === "function") {
|
|
return node.getBoundingClientRect();
|
|
}
|
|
}
|
|
}, "getBoundingClientRect");
|
|
var _default = getBoundingClientRect2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/unitlessNumbers/index.js
|
|
var require_unitlessNumbers2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/unitlessNumbers/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var unitlessNumbers = {
|
|
animationIterationCount: true,
|
|
aspectRatio: true,
|
|
borderImageOutset: true,
|
|
borderImageSlice: true,
|
|
borderImageWidth: true,
|
|
boxFlex: true,
|
|
boxFlexGroup: true,
|
|
boxOrdinalGroup: true,
|
|
columnCount: true,
|
|
flex: true,
|
|
flexGrow: true,
|
|
flexOrder: true,
|
|
flexPositive: true,
|
|
flexShrink: true,
|
|
flexNegative: true,
|
|
fontWeight: true,
|
|
gridRow: true,
|
|
gridRowEnd: true,
|
|
gridRowGap: true,
|
|
gridRowStart: true,
|
|
gridColumn: true,
|
|
gridColumnEnd: true,
|
|
gridColumnGap: true,
|
|
gridColumnStart: true,
|
|
lineClamp: true,
|
|
opacity: true,
|
|
order: true,
|
|
orphans: true,
|
|
tabSize: true,
|
|
widows: true,
|
|
zIndex: true,
|
|
zoom: true,
|
|
// SVG-related
|
|
fillOpacity: true,
|
|
floodOpacity: true,
|
|
stopOpacity: true,
|
|
strokeDasharray: true,
|
|
strokeDashoffset: true,
|
|
strokeMiterlimit: true,
|
|
strokeOpacity: true,
|
|
strokeWidth: true,
|
|
// transform types
|
|
scale: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
scaleZ: true,
|
|
// RN properties
|
|
shadowOpacity: true
|
|
};
|
|
var prefixes = ["ms", "Moz", "O", "Webkit"];
|
|
var prefixKey = /* @__PURE__ */ __name((prefix, key) => {
|
|
return prefix + key.charAt(0).toUpperCase() + key.substring(1);
|
|
}, "prefixKey");
|
|
Object.keys(unitlessNumbers).forEach((prop) => {
|
|
prefixes.forEach((prefix) => {
|
|
unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];
|
|
});
|
|
});
|
|
var _default = unitlessNumbers;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/setValueForStyles/dangerousStyleValue.js
|
|
var require_dangerousStyleValue = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/setValueForStyles/dangerousStyleValue.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _unitlessNumbers = _interopRequireDefault(require_unitlessNumbers2());
|
|
function dangerousStyleValue(name, value, isCustomProperty) {
|
|
var isEmpty = value == null || typeof value === "boolean" || value === "";
|
|
if (isEmpty) {
|
|
return "";
|
|
}
|
|
if (!isCustomProperty && typeof value === "number" && value !== 0 && !(_unitlessNumbers.default.hasOwnProperty(name) && _unitlessNumbers.default[name])) {
|
|
return value + "px";
|
|
}
|
|
return ("" + value).trim();
|
|
}
|
|
__name(dangerousStyleValue, "dangerousStyleValue");
|
|
var _default = dangerousStyleValue;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/setValueForStyles/index.js
|
|
var require_setValueForStyles = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/setValueForStyles/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _dangerousStyleValue = _interopRequireDefault(require_dangerousStyleValue());
|
|
function setValueForStyles(node, styles) {
|
|
var style = node.style;
|
|
for (var styleName in styles) {
|
|
if (!styles.hasOwnProperty(styleName)) {
|
|
continue;
|
|
}
|
|
var isCustomProperty = styleName.indexOf("--") === 0;
|
|
var styleValue = (0, _dangerousStyleValue.default)(styleName, styles[styleName], isCustomProperty);
|
|
if (styleName === "float") {
|
|
styleName = "cssFloat";
|
|
}
|
|
if (isCustomProperty) {
|
|
style.setProperty(styleName, styleValue);
|
|
} else {
|
|
style[styleName] = styleValue;
|
|
}
|
|
}
|
|
}
|
|
__name(setValueForStyles, "setValueForStyles");
|
|
var _default = setValueForStyles;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/UIManager/index.js
|
|
var require_UIManager = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/UIManager/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _getBoundingClientRect = _interopRequireDefault(require_getBoundingClientRect());
|
|
var _setValueForStyles = _interopRequireDefault(require_setValueForStyles());
|
|
var getRect = /* @__PURE__ */ __name((node) => {
|
|
var height = node.offsetHeight;
|
|
var width = node.offsetWidth;
|
|
var left = node.offsetLeft;
|
|
var top = node.offsetTop;
|
|
node = node.offsetParent;
|
|
while (node && node.nodeType === 1) {
|
|
left += node.offsetLeft + node.clientLeft - node.scrollLeft;
|
|
top += node.offsetTop + node.clientTop - node.scrollTop;
|
|
node = node.offsetParent;
|
|
}
|
|
top -= window.scrollY;
|
|
left -= window.scrollX;
|
|
return {
|
|
width,
|
|
height,
|
|
top,
|
|
left
|
|
};
|
|
}, "getRect");
|
|
var measureLayout = /* @__PURE__ */ __name((node, relativeToNativeNode, callback) => {
|
|
var relativeNode = relativeToNativeNode || node && node.parentNode;
|
|
if (node && relativeNode) {
|
|
setTimeout(() => {
|
|
if (node.isConnected && relativeNode.isConnected) {
|
|
var relativeRect = getRect(relativeNode);
|
|
var _getRect = getRect(node), height = _getRect.height, left = _getRect.left, top = _getRect.top, width = _getRect.width;
|
|
var x = left - relativeRect.left;
|
|
var y = top - relativeRect.top;
|
|
callback(x, y, width, height, left, top);
|
|
}
|
|
}, 0);
|
|
}
|
|
}, "measureLayout");
|
|
var elementsToIgnore = {
|
|
A: true,
|
|
BODY: true,
|
|
INPUT: true,
|
|
SELECT: true,
|
|
TEXTAREA: true
|
|
};
|
|
var UIManager = {
|
|
blur(node) {
|
|
try {
|
|
node.blur();
|
|
} catch (err) {
|
|
}
|
|
},
|
|
focus(node) {
|
|
try {
|
|
var name = node.nodeName;
|
|
if (node.getAttribute("tabIndex") == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {
|
|
node.setAttribute("tabIndex", "-1");
|
|
}
|
|
node.focus();
|
|
} catch (err) {
|
|
}
|
|
},
|
|
measure(node, callback) {
|
|
measureLayout(node, null, callback);
|
|
},
|
|
measureInWindow(node, callback) {
|
|
if (node) {
|
|
setTimeout(() => {
|
|
var _getBoundingClientRec = (0, _getBoundingClientRect.default)(node), height = _getBoundingClientRec.height, left = _getBoundingClientRec.left, top = _getBoundingClientRec.top, width = _getBoundingClientRec.width;
|
|
callback(left, top, width, height);
|
|
}, 0);
|
|
}
|
|
},
|
|
measureLayout(node, relativeToNativeNode, onFail, onSuccess) {
|
|
measureLayout(node, relativeToNativeNode, onSuccess);
|
|
},
|
|
updateView(node, props) {
|
|
for (var prop in props) {
|
|
if (!Object.prototype.hasOwnProperty.call(props, prop)) {
|
|
continue;
|
|
}
|
|
var value = props[prop];
|
|
switch (prop) {
|
|
case "style": {
|
|
(0, _setValueForStyles.default)(node, value);
|
|
break;
|
|
}
|
|
case "class":
|
|
case "className": {
|
|
node.setAttribute("class", value);
|
|
break;
|
|
}
|
|
case "text":
|
|
case "value":
|
|
node.value = value;
|
|
break;
|
|
default:
|
|
node.setAttribute(prop, value);
|
|
}
|
|
}
|
|
},
|
|
configureNextLayoutAnimation(config2, onAnimationDidEnd) {
|
|
onAnimationDidEnd();
|
|
},
|
|
// mocks
|
|
setLayoutAnimationEnabledExperimental() {
|
|
}
|
|
};
|
|
var _default = UIManager;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/NativeModules/index.js
|
|
var require_NativeModules = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/NativeModules/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var NativeModules = {
|
|
UIManager: _UIManager.default
|
|
};
|
|
var _default = NativeModules;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/AccessibilityInfo/index.js
|
|
var require_AccessibilityInfo = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/AccessibilityInfo/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
function isScreenReaderEnabled() {
|
|
return new Promise((resolve, reject) => {
|
|
resolve(true);
|
|
});
|
|
}
|
|
__name(isScreenReaderEnabled, "isScreenReaderEnabled");
|
|
var prefersReducedMotionMedia = _canUseDom.default && typeof window.matchMedia === "function" ? window.matchMedia("(prefers-reduced-motion: reduce)") : null;
|
|
function isReduceMotionEnabled() {
|
|
return new Promise((resolve, reject) => {
|
|
resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);
|
|
});
|
|
}
|
|
__name(isReduceMotionEnabled, "isReduceMotionEnabled");
|
|
function addChangeListener(fn) {
|
|
if (prefersReducedMotionMedia != null) {
|
|
prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener("change", fn) : prefersReducedMotionMedia.addListener(fn);
|
|
}
|
|
}
|
|
__name(addChangeListener, "addChangeListener");
|
|
function removeChangeListener(fn) {
|
|
if (prefersReducedMotionMedia != null) {
|
|
prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener("change", fn) : prefersReducedMotionMedia.removeListener(fn);
|
|
}
|
|
}
|
|
__name(removeChangeListener, "removeChangeListener");
|
|
var handlers = {};
|
|
var AccessibilityInfo = {
|
|
/**
|
|
* Query whether a screen reader is currently enabled.
|
|
*
|
|
* Returns a promise which resolves to a boolean.
|
|
* The result is `true` when a screen reader is enabled and `false` otherwise.
|
|
*/
|
|
isScreenReaderEnabled,
|
|
/**
|
|
* Query whether the user prefers reduced motion.
|
|
*
|
|
* Returns a promise which resolves to a boolean.
|
|
* The result is `true` when a screen reader is enabled and `false` otherwise.
|
|
*/
|
|
isReduceMotionEnabled,
|
|
/**
|
|
* Deprecated
|
|
*/
|
|
fetch: isScreenReaderEnabled,
|
|
/**
|
|
* Add an event handler. Supported events: reduceMotionChanged
|
|
*/
|
|
addEventListener: /* @__PURE__ */ __name(function addEventListener(eventName, handler) {
|
|
if (eventName === "reduceMotionChanged") {
|
|
if (!prefersReducedMotionMedia) {
|
|
return;
|
|
}
|
|
var listener = /* @__PURE__ */ __name((event) => {
|
|
handler(event.matches);
|
|
}, "listener");
|
|
addChangeListener(listener);
|
|
handlers[handler] = listener;
|
|
}
|
|
return {
|
|
remove: () => AccessibilityInfo.removeEventListener(eventName, handler)
|
|
};
|
|
}, "addEventListener"),
|
|
/**
|
|
* Set accessibility focus to a react component.
|
|
*/
|
|
setAccessibilityFocus: /* @__PURE__ */ __name(function setAccessibilityFocus(reactTag) {
|
|
}, "setAccessibilityFocus"),
|
|
/**
|
|
* Post a string to be announced by the screen reader.
|
|
*/
|
|
announceForAccessibility: /* @__PURE__ */ __name(function announceForAccessibility(announcement) {
|
|
}, "announceForAccessibility"),
|
|
/**
|
|
* Remove an event handler.
|
|
*/
|
|
removeEventListener: /* @__PURE__ */ __name(function removeEventListener(eventName, handler) {
|
|
if (eventName === "reduceMotionChanged") {
|
|
var listener = handlers[handler];
|
|
if (!listener || !prefersReducedMotionMedia) {
|
|
return;
|
|
}
|
|
removeChangeListener(listener);
|
|
}
|
|
return;
|
|
}, "removeEventListener")
|
|
};
|
|
var _default = AccessibilityInfo;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Alert/index.js
|
|
var require_Alert = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Alert/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Alert = class _Alert {
|
|
static alert() {
|
|
}
|
|
};
|
|
__name(_Alert, "Alert");
|
|
var Alert = _Alert;
|
|
var _default = Alert;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Platform/index.js
|
|
var require_Platform = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Platform/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var Platform3 = {
|
|
OS: "web",
|
|
select: (obj) => "web" in obj ? obj.web : obj.default,
|
|
get isTesting() {
|
|
if (process.env.NODE_ENV === "test") {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
};
|
|
var _default = Platform3;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/extends.js
|
|
var require_extends = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/extends.js"(exports2, module2) {
|
|
function _extends2() {
|
|
module2.exports = _extends2 = Object.assign ? Object.assign.bind() : function(target) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
var source = arguments[i];
|
|
for (var key in source) {
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
}
|
|
return target;
|
|
}, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
return _extends2.apply(this, arguments);
|
|
}
|
|
__name(_extends2, "_extends");
|
|
module2.exports = _extends2, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/forwardedProps/index.js
|
|
var require_forwardedProps = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/forwardedProps/index.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.touchProps = exports2.styleProps = exports2.mouseProps = exports2.keyboardProps = exports2.focusProps = exports2.defaultProps = exports2.clickProps = exports2.accessibilityProps = void 0;
|
|
var defaultProps = {
|
|
children: true,
|
|
dataSet: true,
|
|
dir: true,
|
|
id: true,
|
|
ref: true,
|
|
suppressHydrationWarning: true,
|
|
tabIndex: true,
|
|
testID: true,
|
|
// @deprecated
|
|
focusable: true,
|
|
nativeID: true
|
|
};
|
|
exports2.defaultProps = defaultProps;
|
|
var accessibilityProps = {
|
|
"aria-activedescendant": true,
|
|
"aria-atomic": true,
|
|
"aria-autocomplete": true,
|
|
"aria-busy": true,
|
|
"aria-checked": true,
|
|
"aria-colcount": true,
|
|
"aria-colindex": true,
|
|
"aria-colspan": true,
|
|
"aria-controls": true,
|
|
"aria-current": true,
|
|
"aria-describedby": true,
|
|
"aria-details": true,
|
|
"aria-disabled": true,
|
|
"aria-errormessage": true,
|
|
"aria-expanded": true,
|
|
"aria-flowto": true,
|
|
"aria-haspopup": true,
|
|
"aria-hidden": true,
|
|
"aria-invalid": true,
|
|
"aria-keyshortcuts": true,
|
|
"aria-label": true,
|
|
"aria-labelledby": true,
|
|
"aria-level": true,
|
|
"aria-live": true,
|
|
"aria-modal": true,
|
|
"aria-multiline": true,
|
|
"aria-multiselectable": true,
|
|
"aria-orientation": true,
|
|
"aria-owns": true,
|
|
"aria-placeholder": true,
|
|
"aria-posinset": true,
|
|
"aria-pressed": true,
|
|
"aria-readonly": true,
|
|
"aria-required": true,
|
|
role: true,
|
|
"aria-roledescription": true,
|
|
"aria-rowcount": true,
|
|
"aria-rowindex": true,
|
|
"aria-rowspan": true,
|
|
"aria-selected": true,
|
|
"aria-setsize": true,
|
|
"aria-sort": true,
|
|
"aria-valuemax": true,
|
|
"aria-valuemin": true,
|
|
"aria-valuenow": true,
|
|
"aria-valuetext": true,
|
|
// @deprecated
|
|
accessibilityActiveDescendant: true,
|
|
accessibilityAtomic: true,
|
|
accessibilityAutoComplete: true,
|
|
accessibilityBusy: true,
|
|
accessibilityChecked: true,
|
|
accessibilityColumnCount: true,
|
|
accessibilityColumnIndex: true,
|
|
accessibilityColumnSpan: true,
|
|
accessibilityControls: true,
|
|
accessibilityCurrent: true,
|
|
accessibilityDescribedBy: true,
|
|
accessibilityDetails: true,
|
|
accessibilityDisabled: true,
|
|
accessibilityErrorMessage: true,
|
|
accessibilityExpanded: true,
|
|
accessibilityFlowTo: true,
|
|
accessibilityHasPopup: true,
|
|
accessibilityHidden: true,
|
|
accessibilityInvalid: true,
|
|
accessibilityKeyShortcuts: true,
|
|
accessibilityLabel: true,
|
|
accessibilityLabelledBy: true,
|
|
accessibilityLevel: true,
|
|
accessibilityLiveRegion: true,
|
|
accessibilityModal: true,
|
|
accessibilityMultiline: true,
|
|
accessibilityMultiSelectable: true,
|
|
accessibilityOrientation: true,
|
|
accessibilityOwns: true,
|
|
accessibilityPlaceholder: true,
|
|
accessibilityPosInSet: true,
|
|
accessibilityPressed: true,
|
|
accessibilityReadOnly: true,
|
|
accessibilityRequired: true,
|
|
accessibilityRole: true,
|
|
accessibilityRoleDescription: true,
|
|
accessibilityRowCount: true,
|
|
accessibilityRowIndex: true,
|
|
accessibilityRowSpan: true,
|
|
accessibilitySelected: true,
|
|
accessibilitySetSize: true,
|
|
accessibilitySort: true,
|
|
accessibilityValueMax: true,
|
|
accessibilityValueMin: true,
|
|
accessibilityValueNow: true,
|
|
accessibilityValueText: true
|
|
};
|
|
exports2.accessibilityProps = accessibilityProps;
|
|
var clickProps = {
|
|
onClick: true,
|
|
onAuxClick: true,
|
|
onContextMenu: true,
|
|
onGotPointerCapture: true,
|
|
onLostPointerCapture: true,
|
|
onPointerCancel: true,
|
|
onPointerDown: true,
|
|
onPointerEnter: true,
|
|
onPointerMove: true,
|
|
onPointerLeave: true,
|
|
onPointerOut: true,
|
|
onPointerOver: true,
|
|
onPointerUp: true
|
|
};
|
|
exports2.clickProps = clickProps;
|
|
var focusProps = {
|
|
onBlur: true,
|
|
onFocus: true
|
|
};
|
|
exports2.focusProps = focusProps;
|
|
var keyboardProps = {
|
|
onKeyDown: true,
|
|
onKeyDownCapture: true,
|
|
onKeyUp: true,
|
|
onKeyUpCapture: true
|
|
};
|
|
exports2.keyboardProps = keyboardProps;
|
|
var mouseProps = {
|
|
onMouseDown: true,
|
|
onMouseEnter: true,
|
|
onMouseLeave: true,
|
|
onMouseMove: true,
|
|
onMouseOver: true,
|
|
onMouseOut: true,
|
|
onMouseUp: true
|
|
};
|
|
exports2.mouseProps = mouseProps;
|
|
var touchProps = {
|
|
onTouchCancel: true,
|
|
onTouchCancelCapture: true,
|
|
onTouchEnd: true,
|
|
onTouchEndCapture: true,
|
|
onTouchMove: true,
|
|
onTouchMoveCapture: true,
|
|
onTouchStart: true,
|
|
onTouchStartCapture: true
|
|
};
|
|
exports2.touchProps = touchProps;
|
|
var styleProps = {
|
|
style: true
|
|
};
|
|
exports2.styleProps = styleProps;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/pick/index.js
|
|
var require_pick = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/pick/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = pick;
|
|
function pick(obj, list) {
|
|
var nextObj = {};
|
|
for (var key in obj) {
|
|
if (obj.hasOwnProperty(key)) {
|
|
if (list[key] === true) {
|
|
nextObj[key] = obj[key];
|
|
}
|
|
}
|
|
}
|
|
return nextObj;
|
|
}
|
|
__name(pick, "pick");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useLayoutEffect/index.js
|
|
var require_useLayoutEffect = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useLayoutEffect/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _react = require("react");
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var useLayoutEffectImpl = _canUseDom.default ? _react.useLayoutEffect : _react.useEffect;
|
|
var _default = useLayoutEffectImpl;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useElementLayout/index.js
|
|
var require_useElementLayout = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useElementLayout/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useElementLayout;
|
|
var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var DOM_LAYOUT_HANDLER_NAME = "__reactLayoutHandler";
|
|
var didWarn = !_canUseDom.default;
|
|
var resizeObserver = null;
|
|
function getResizeObserver() {
|
|
if (_canUseDom.default && typeof window.ResizeObserver !== "undefined") {
|
|
if (resizeObserver == null) {
|
|
resizeObserver = new window.ResizeObserver(function(entries) {
|
|
entries.forEach((entry) => {
|
|
var node = entry.target;
|
|
var onLayout = node[DOM_LAYOUT_HANDLER_NAME];
|
|
if (typeof onLayout === "function") {
|
|
_UIManager.default.measure(node, (x, y, width, height, left, top) => {
|
|
var event = {
|
|
// $FlowFixMe
|
|
nativeEvent: {
|
|
layout: {
|
|
x,
|
|
y,
|
|
width,
|
|
height,
|
|
left,
|
|
top
|
|
}
|
|
},
|
|
timeStamp: Date.now()
|
|
};
|
|
Object.defineProperty(event.nativeEvent, "target", {
|
|
enumerable: true,
|
|
get: () => entry.target
|
|
});
|
|
onLayout(event);
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
} else if (!didWarn) {
|
|
if (process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test") {
|
|
console.warn("onLayout relies on ResizeObserver which is not supported by your browser. Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.");
|
|
didWarn = true;
|
|
}
|
|
}
|
|
return resizeObserver;
|
|
}
|
|
__name(getResizeObserver, "getResizeObserver");
|
|
function useElementLayout(ref, onLayout) {
|
|
var observer = getResizeObserver();
|
|
(0, _useLayoutEffect.default)(() => {
|
|
var node = ref.current;
|
|
if (node != null) {
|
|
node[DOM_LAYOUT_HANDLER_NAME] = onLayout;
|
|
}
|
|
}, [ref, onLayout]);
|
|
(0, _useLayoutEffect.default)(() => {
|
|
var node = ref.current;
|
|
if (node != null && observer != null) {
|
|
if (typeof node[DOM_LAYOUT_HANDLER_NAME] === "function") {
|
|
observer.observe(node);
|
|
} else {
|
|
observer.unobserve(node);
|
|
}
|
|
}
|
|
return () => {
|
|
if (node != null && observer != null) {
|
|
observer.unobserve(node);
|
|
}
|
|
};
|
|
}, [ref, observer]);
|
|
}
|
|
__name(useElementLayout, "useElementLayout");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/mergeRefs/index.js
|
|
var require_mergeRefs = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/mergeRefs/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = mergeRefs;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
function mergeRefs() {
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return /* @__PURE__ */ __name(function forwardRef25(node) {
|
|
args.forEach((ref) => {
|
|
if (ref == null) {
|
|
return;
|
|
}
|
|
if (typeof ref === "function") {
|
|
ref(node);
|
|
return;
|
|
}
|
|
if (typeof ref === "object") {
|
|
ref.current = node;
|
|
return;
|
|
}
|
|
console.error("mergeRefs cannot handle Refs of type boolean, number or string, received ref " + String(ref));
|
|
});
|
|
}, "forwardRef");
|
|
}
|
|
__name(mergeRefs, "mergeRefs");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useMergeRefs/index.js
|
|
var require_useMergeRefs = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useMergeRefs/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useMergeRefs;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _mergeRefs = _interopRequireDefault(require_mergeRefs());
|
|
function useMergeRefs() {
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return React44.useMemo(
|
|
() => (0, _mergeRefs.default)(...args),
|
|
// eslint-disable-next-line
|
|
[...args]
|
|
);
|
|
}
|
|
__name(useMergeRefs, "useMergeRefs");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useStable/index.js
|
|
var require_useStable = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useStable/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useStable;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var UNINITIALIZED = typeof Symbol === "function" && typeof Symbol() === "symbol" ? Symbol() : Object.freeze({});
|
|
function useStable(getInitialValue) {
|
|
var ref = React44.useRef(UNINITIALIZED);
|
|
if (ref.current === UNINITIALIZED) {
|
|
ref.current = getInitialValue();
|
|
}
|
|
return ref.current;
|
|
}
|
|
__name(useStable, "useStable");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/usePlatformMethods/index.js
|
|
var require_usePlatformMethods = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/usePlatformMethods/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = usePlatformMethods;
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var _useStable = _interopRequireDefault(require_useStable());
|
|
function usePlatformMethods(_ref) {
|
|
var pointerEvents = _ref.pointerEvents, style = _ref.style;
|
|
var ref = (0, _useStable.default)(() => (hostNode) => {
|
|
if (hostNode != null) {
|
|
hostNode.measure = (callback) => _UIManager.default.measure(hostNode, callback);
|
|
hostNode.measureLayout = (relativeToNode, success, failure) => _UIManager.default.measureLayout(hostNode, relativeToNode, failure, success);
|
|
hostNode.measureInWindow = (callback) => _UIManager.default.measureInWindow(hostNode, callback);
|
|
}
|
|
});
|
|
return ref;
|
|
}
|
|
__name(usePlatformMethods, "usePlatformMethods");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/createResponderEvent.js
|
|
var require_createResponderEvent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/createResponderEvent.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = createResponderEvent;
|
|
var _getBoundingClientRect = _interopRequireDefault(require_getBoundingClientRect());
|
|
var emptyFunction = /* @__PURE__ */ __name(() => {
|
|
}, "emptyFunction");
|
|
var emptyObject = {};
|
|
var emptyArray = [];
|
|
function normalizeIdentifier(identifier) {
|
|
return identifier > 20 ? identifier % 20 : identifier;
|
|
}
|
|
__name(normalizeIdentifier, "normalizeIdentifier");
|
|
function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
var rect;
|
|
var propagationWasStopped = false;
|
|
var changedTouches;
|
|
var touches;
|
|
var domEventChangedTouches = domEvent.changedTouches;
|
|
var domEventType = domEvent.type;
|
|
var metaKey = domEvent.metaKey === true;
|
|
var shiftKey = domEvent.shiftKey === true;
|
|
var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;
|
|
var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);
|
|
var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;
|
|
var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;
|
|
var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;
|
|
var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;
|
|
var preventDefault = typeof domEvent.preventDefault === "function" ? domEvent.preventDefault.bind(domEvent) : emptyFunction;
|
|
var timestamp = domEvent.timeStamp;
|
|
function normalizeTouches(touches2) {
|
|
return Array.prototype.slice.call(touches2).map((touch) => {
|
|
return {
|
|
force: touch.force,
|
|
identifier: normalizeIdentifier(touch.identifier),
|
|
get locationX() {
|
|
return locationX(touch.clientX);
|
|
},
|
|
get locationY() {
|
|
return locationY(touch.clientY);
|
|
},
|
|
pageX: touch.pageX,
|
|
pageY: touch.pageY,
|
|
target: touch.target,
|
|
timestamp
|
|
};
|
|
});
|
|
}
|
|
__name(normalizeTouches, "normalizeTouches");
|
|
if (domEventChangedTouches != null) {
|
|
changedTouches = normalizeTouches(domEventChangedTouches);
|
|
touches = normalizeTouches(domEvent.touches);
|
|
} else {
|
|
var emulatedTouches = [{
|
|
force,
|
|
identifier,
|
|
get locationX() {
|
|
return locationX(clientX);
|
|
},
|
|
get locationY() {
|
|
return locationY(clientY);
|
|
},
|
|
pageX,
|
|
pageY,
|
|
target: domEvent.target,
|
|
timestamp
|
|
}];
|
|
changedTouches = emulatedTouches;
|
|
touches = domEventType === "mouseup" || domEventType === "dragstart" ? emptyArray : emulatedTouches;
|
|
}
|
|
var responderEvent = {
|
|
bubbles: true,
|
|
cancelable: true,
|
|
// `currentTarget` is set before dispatch
|
|
currentTarget: null,
|
|
defaultPrevented: domEvent.defaultPrevented,
|
|
dispatchConfig: emptyObject,
|
|
eventPhase: domEvent.eventPhase,
|
|
isDefaultPrevented() {
|
|
return domEvent.defaultPrevented;
|
|
},
|
|
isPropagationStopped() {
|
|
return propagationWasStopped;
|
|
},
|
|
isTrusted: domEvent.isTrusted,
|
|
nativeEvent: {
|
|
altKey: false,
|
|
ctrlKey: false,
|
|
metaKey,
|
|
shiftKey,
|
|
changedTouches,
|
|
force,
|
|
identifier,
|
|
get locationX() {
|
|
return locationX(clientX);
|
|
},
|
|
get locationY() {
|
|
return locationY(clientY);
|
|
},
|
|
pageX,
|
|
pageY,
|
|
target: domEvent.target,
|
|
timestamp,
|
|
touches,
|
|
type: domEventType
|
|
},
|
|
persist: emptyFunction,
|
|
preventDefault,
|
|
stopPropagation() {
|
|
propagationWasStopped = true;
|
|
},
|
|
target: domEvent.target,
|
|
timeStamp: timestamp,
|
|
touchHistory: responderTouchHistoryStore.touchHistory
|
|
};
|
|
function locationX(x) {
|
|
rect = rect || (0, _getBoundingClientRect.default)(responderEvent.currentTarget);
|
|
if (rect) {
|
|
return x - rect.left;
|
|
}
|
|
}
|
|
__name(locationX, "locationX");
|
|
function locationY(y) {
|
|
rect = rect || (0, _getBoundingClientRect.default)(responderEvent.currentTarget);
|
|
if (rect) {
|
|
return y - rect.top;
|
|
}
|
|
}
|
|
__name(locationY, "locationY");
|
|
return responderEvent;
|
|
}
|
|
__name(createResponderEvent, "createResponderEvent");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderEventTypes.js
|
|
var require_ResponderEventTypes = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderEventTypes.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.TOUCH_START = exports2.TOUCH_MOVE = exports2.TOUCH_END = exports2.TOUCH_CANCEL = exports2.SELECTION_CHANGE = exports2.SELECT = exports2.SCROLL = exports2.MOUSE_UP = exports2.MOUSE_MOVE = exports2.MOUSE_DOWN = exports2.MOUSE_CANCEL = exports2.FOCUS_OUT = exports2.CONTEXT_MENU = exports2.BLUR = void 0;
|
|
exports2.isCancelish = isCancelish;
|
|
exports2.isEndish = isEndish;
|
|
exports2.isMoveish = isMoveish;
|
|
exports2.isScroll = isScroll;
|
|
exports2.isSelectionChange = isSelectionChange;
|
|
exports2.isStartish = isStartish;
|
|
var BLUR = "blur";
|
|
exports2.BLUR = BLUR;
|
|
var CONTEXT_MENU = "contextmenu";
|
|
exports2.CONTEXT_MENU = CONTEXT_MENU;
|
|
var FOCUS_OUT = "focusout";
|
|
exports2.FOCUS_OUT = FOCUS_OUT;
|
|
var MOUSE_DOWN = "mousedown";
|
|
exports2.MOUSE_DOWN = MOUSE_DOWN;
|
|
var MOUSE_MOVE = "mousemove";
|
|
exports2.MOUSE_MOVE = MOUSE_MOVE;
|
|
var MOUSE_UP = "mouseup";
|
|
exports2.MOUSE_UP = MOUSE_UP;
|
|
var MOUSE_CANCEL = "dragstart";
|
|
exports2.MOUSE_CANCEL = MOUSE_CANCEL;
|
|
var TOUCH_START = "touchstart";
|
|
exports2.TOUCH_START = TOUCH_START;
|
|
var TOUCH_MOVE = "touchmove";
|
|
exports2.TOUCH_MOVE = TOUCH_MOVE;
|
|
var TOUCH_END = "touchend";
|
|
exports2.TOUCH_END = TOUCH_END;
|
|
var TOUCH_CANCEL = "touchcancel";
|
|
exports2.TOUCH_CANCEL = TOUCH_CANCEL;
|
|
var SCROLL = "scroll";
|
|
exports2.SCROLL = SCROLL;
|
|
var SELECT = "select";
|
|
exports2.SELECT = SELECT;
|
|
var SELECTION_CHANGE = "selectionchange";
|
|
exports2.SELECTION_CHANGE = SELECTION_CHANGE;
|
|
function isStartish(eventType) {
|
|
return eventType === TOUCH_START || eventType === MOUSE_DOWN;
|
|
}
|
|
__name(isStartish, "isStartish");
|
|
function isMoveish(eventType) {
|
|
return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;
|
|
}
|
|
__name(isMoveish, "isMoveish");
|
|
function isEndish(eventType) {
|
|
return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);
|
|
}
|
|
__name(isEndish, "isEndish");
|
|
function isCancelish(eventType) {
|
|
return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;
|
|
}
|
|
__name(isCancelish, "isCancelish");
|
|
function isScroll(eventType) {
|
|
return eventType === SCROLL;
|
|
}
|
|
__name(isScroll, "isScroll");
|
|
function isSelectionChange(eventType) {
|
|
return eventType === SELECT || eventType === SELECTION_CHANGE;
|
|
}
|
|
__name(isSelectionChange, "isSelectionChange");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/isSelectionValid/index.js
|
|
var require_isSelectionValid = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/isSelectionValid/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = isSelectionValid;
|
|
function isSelectionValid() {
|
|
var selection = window.getSelection();
|
|
var string = selection.toString();
|
|
var anchorNode = selection.anchorNode;
|
|
var focusNode = selection.focusNode;
|
|
var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;
|
|
return string.length >= 1 && string !== "\n" && isTextNode;
|
|
}
|
|
__name(isSelectionValid, "isSelectionValid");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/utils.js
|
|
var require_utils2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/utils.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.getLowestCommonAncestor = getLowestCommonAncestor;
|
|
exports2.getResponderPaths = getResponderPaths;
|
|
exports2.hasTargetTouches = hasTargetTouches;
|
|
exports2.hasValidSelection = hasValidSelection;
|
|
exports2.isPrimaryPointerDown = isPrimaryPointerDown;
|
|
exports2.setResponderId = setResponderId;
|
|
var _isSelectionValid = _interopRequireDefault(require_isSelectionValid());
|
|
var keyName = "__reactResponderId";
|
|
function getEventPath(domEvent) {
|
|
if (domEvent.type === "selectionchange") {
|
|
var target = window.getSelection().anchorNode;
|
|
return composedPathFallback(target);
|
|
} else {
|
|
var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);
|
|
return path;
|
|
}
|
|
}
|
|
__name(getEventPath, "getEventPath");
|
|
function composedPathFallback(target) {
|
|
var path = [];
|
|
while (target != null && target !== document.body) {
|
|
path.push(target);
|
|
target = target.parentNode;
|
|
}
|
|
return path;
|
|
}
|
|
__name(composedPathFallback, "composedPathFallback");
|
|
function getResponderId(node) {
|
|
if (node != null) {
|
|
return node[keyName];
|
|
}
|
|
return null;
|
|
}
|
|
__name(getResponderId, "getResponderId");
|
|
function setResponderId(node, id) {
|
|
if (node != null) {
|
|
node[keyName] = id;
|
|
}
|
|
}
|
|
__name(setResponderId, "setResponderId");
|
|
function getResponderPaths(domEvent) {
|
|
var idPath = [];
|
|
var nodePath = [];
|
|
var eventPath = getEventPath(domEvent);
|
|
for (var i = 0; i < eventPath.length; i++) {
|
|
var node = eventPath[i];
|
|
var id = getResponderId(node);
|
|
if (id != null) {
|
|
idPath.push(id);
|
|
nodePath.push(node);
|
|
}
|
|
}
|
|
return {
|
|
idPath,
|
|
nodePath
|
|
};
|
|
}
|
|
__name(getResponderPaths, "getResponderPaths");
|
|
function getLowestCommonAncestor(pathA, pathB) {
|
|
var pathALength = pathA.length;
|
|
var pathBLength = pathB.length;
|
|
if (
|
|
// If either path is empty
|
|
pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor
|
|
// that is connected to the responder system
|
|
pathA[pathALength - 1] !== pathB[pathBLength - 1]
|
|
) {
|
|
return null;
|
|
}
|
|
var itemA = pathA[0];
|
|
var indexA = 0;
|
|
var itemB = pathB[0];
|
|
var indexB = 0;
|
|
if (pathALength - pathBLength > 0) {
|
|
indexA = pathALength - pathBLength;
|
|
itemA = pathA[indexA];
|
|
pathALength = pathBLength;
|
|
}
|
|
if (pathBLength - pathALength > 0) {
|
|
indexB = pathBLength - pathALength;
|
|
itemB = pathB[indexB];
|
|
pathBLength = pathALength;
|
|
}
|
|
var depth = pathALength;
|
|
while (depth--) {
|
|
if (itemA === itemB) {
|
|
return itemA;
|
|
}
|
|
itemA = pathA[indexA++];
|
|
itemB = pathB[indexB++];
|
|
}
|
|
return null;
|
|
}
|
|
__name(getLowestCommonAncestor, "getLowestCommonAncestor");
|
|
function hasTargetTouches(target, touches) {
|
|
if (!touches || touches.length === 0) {
|
|
return false;
|
|
}
|
|
for (var i = 0; i < touches.length; i++) {
|
|
var node = touches[i].target;
|
|
if (node != null) {
|
|
if (target.contains(node)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
__name(hasTargetTouches, "hasTargetTouches");
|
|
function hasValidSelection(domEvent) {
|
|
if (domEvent.type === "selectionchange") {
|
|
return (0, _isSelectionValid.default)();
|
|
}
|
|
return domEvent.type === "select";
|
|
}
|
|
__name(hasValidSelection, "hasValidSelection");
|
|
function isPrimaryPointerDown(domEvent) {
|
|
var altKey = domEvent.altKey, button = domEvent.button, buttons = domEvent.buttons, ctrlKey = domEvent.ctrlKey, type = domEvent.type;
|
|
var isTouch = type === "touchstart" || type === "touchmove";
|
|
var isPrimaryMouseDown = type === "mousedown" && (button === 0 || buttons === 1);
|
|
var isPrimaryMouseMove = type === "mousemove" && buttons === 1;
|
|
var noModifiers = altKey === false && ctrlKey === false;
|
|
if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
__name(isPrimaryPointerDown, "isPrimaryPointerDown");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderTouchHistoryStore.js
|
|
var require_ResponderTouchHistoryStore = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderTouchHistoryStore.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.ResponderTouchHistoryStore = void 0;
|
|
var _ResponderEventTypes = require_ResponderEventTypes();
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
var MAX_TOUCH_BANK = 20;
|
|
function timestampForTouch(touch) {
|
|
return touch.timeStamp || touch.timestamp;
|
|
}
|
|
__name(timestampForTouch, "timestampForTouch");
|
|
function createTouchRecord(touch) {
|
|
return {
|
|
touchActive: true,
|
|
startPageX: touch.pageX,
|
|
startPageY: touch.pageY,
|
|
startTimeStamp: timestampForTouch(touch),
|
|
currentPageX: touch.pageX,
|
|
currentPageY: touch.pageY,
|
|
currentTimeStamp: timestampForTouch(touch),
|
|
previousPageX: touch.pageX,
|
|
previousPageY: touch.pageY,
|
|
previousTimeStamp: timestampForTouch(touch)
|
|
};
|
|
}
|
|
__name(createTouchRecord, "createTouchRecord");
|
|
function resetTouchRecord(touchRecord, touch) {
|
|
touchRecord.touchActive = true;
|
|
touchRecord.startPageX = touch.pageX;
|
|
touchRecord.startPageY = touch.pageY;
|
|
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
touchRecord.currentPageX = touch.pageX;
|
|
touchRecord.currentPageY = touch.pageY;
|
|
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
touchRecord.previousPageX = touch.pageX;
|
|
touchRecord.previousPageY = touch.pageY;
|
|
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
}
|
|
__name(resetTouchRecord, "resetTouchRecord");
|
|
function getTouchIdentifier(_ref) {
|
|
var identifier = _ref.identifier;
|
|
if (identifier == null) {
|
|
console.error("Touch object is missing identifier.");
|
|
}
|
|
if (__DEV__) {
|
|
if (identifier > MAX_TOUCH_BANK) {
|
|
console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.", identifier, MAX_TOUCH_BANK);
|
|
}
|
|
}
|
|
return identifier;
|
|
}
|
|
__name(getTouchIdentifier, "getTouchIdentifier");
|
|
function recordTouchStart(touch, touchHistory) {
|
|
var identifier = getTouchIdentifier(touch);
|
|
var touchRecord = touchHistory.touchBank[identifier];
|
|
if (touchRecord) {
|
|
resetTouchRecord(touchRecord, touch);
|
|
} else {
|
|
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
}
|
|
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
}
|
|
__name(recordTouchStart, "recordTouchStart");
|
|
function recordTouchMove(touch, touchHistory) {
|
|
var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
if (touchRecord) {
|
|
touchRecord.touchActive = true;
|
|
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
touchRecord.currentPageX = touch.pageX;
|
|
touchRecord.currentPageY = touch.pageY;
|
|
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
} else {
|
|
console.warn("Cannot record touch move without a touch start.\n", "Touch Move: " + printTouch(touch) + "\n", "Touch Bank: " + printTouchBank(touchHistory));
|
|
}
|
|
}
|
|
__name(recordTouchMove, "recordTouchMove");
|
|
function recordTouchEnd(touch, touchHistory) {
|
|
var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
if (touchRecord) {
|
|
touchRecord.touchActive = false;
|
|
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
touchRecord.currentPageX = touch.pageX;
|
|
touchRecord.currentPageY = touch.pageY;
|
|
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
} else {
|
|
console.warn("Cannot record touch end without a touch start.\n", "Touch End: " + printTouch(touch) + "\n", "Touch Bank: " + printTouchBank(touchHistory));
|
|
}
|
|
}
|
|
__name(recordTouchEnd, "recordTouchEnd");
|
|
function printTouch(touch) {
|
|
return JSON.stringify({
|
|
identifier: touch.identifier,
|
|
pageX: touch.pageX,
|
|
pageY: touch.pageY,
|
|
timestamp: timestampForTouch(touch)
|
|
});
|
|
}
|
|
__name(printTouch, "printTouch");
|
|
function printTouchBank(touchHistory) {
|
|
var touchBank = touchHistory.touchBank;
|
|
var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
if (touchBank.length > MAX_TOUCH_BANK) {
|
|
printed += " (original size: " + touchBank.length + ")";
|
|
}
|
|
return printed;
|
|
}
|
|
__name(printTouchBank, "printTouchBank");
|
|
var _ResponderTouchHistoryStore = class _ResponderTouchHistoryStore {
|
|
constructor() {
|
|
this._touchHistory = {
|
|
touchBank: [],
|
|
//Array<TouchRecord>
|
|
numberActiveTouches: 0,
|
|
// If there is only one active touch, we remember its location. This prevents
|
|
// us having to loop through all of the touches all the time in the most
|
|
// common case.
|
|
indexOfSingleActiveTouch: -1,
|
|
mostRecentTimeStamp: 0
|
|
};
|
|
}
|
|
recordTouchTrack(topLevelType, nativeEvent) {
|
|
var touchHistory = this._touchHistory;
|
|
if ((0, _ResponderEventTypes.isMoveish)(topLevelType)) {
|
|
nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));
|
|
} else if ((0, _ResponderEventTypes.isStartish)(topLevelType)) {
|
|
nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));
|
|
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
if (touchHistory.numberActiveTouches === 1) {
|
|
touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
|
|
}
|
|
} else if ((0, _ResponderEventTypes.isEndish)(topLevelType)) {
|
|
nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));
|
|
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
if (touchHistory.numberActiveTouches === 1) {
|
|
var touchBank = touchHistory.touchBank;
|
|
for (var i = 0; i < touchBank.length; i++) {
|
|
var touchTrackToCheck = touchBank[i];
|
|
if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {
|
|
touchHistory.indexOfSingleActiveTouch = i;
|
|
break;
|
|
}
|
|
}
|
|
if (__DEV__) {
|
|
var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
if (!(activeRecord != null && activeRecord.touchActive)) {
|
|
console.error("Cannot find single active touch.");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
get touchHistory() {
|
|
return this._touchHistory;
|
|
}
|
|
};
|
|
__name(_ResponderTouchHistoryStore, "ResponderTouchHistoryStore");
|
|
var ResponderTouchHistoryStore = _ResponderTouchHistoryStore;
|
|
exports2.ResponderTouchHistoryStore = ResponderTouchHistoryStore;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderSystem.js
|
|
var require_ResponderSystem = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/ResponderSystem.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.addNode = addNode;
|
|
exports2.attachListeners = attachListeners;
|
|
exports2.getResponderNode = getResponderNode;
|
|
exports2.removeNode = removeNode;
|
|
exports2.terminateResponder = terminateResponder;
|
|
var _createResponderEvent = _interopRequireDefault(require_createResponderEvent());
|
|
var _ResponderEventTypes = require_ResponderEventTypes();
|
|
var _utils = require_utils2();
|
|
var _ResponderTouchHistoryStore = require_ResponderTouchHistoryStore();
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var emptyObject = {};
|
|
var startRegistration = ["onStartShouldSetResponderCapture", "onStartShouldSetResponder", {
|
|
bubbles: true
|
|
}];
|
|
var moveRegistration = ["onMoveShouldSetResponderCapture", "onMoveShouldSetResponder", {
|
|
bubbles: true
|
|
}];
|
|
var scrollRegistration = ["onScrollShouldSetResponderCapture", "onScrollShouldSetResponder", {
|
|
bubbles: false
|
|
}];
|
|
var shouldSetResponderEvents = {
|
|
touchstart: startRegistration,
|
|
mousedown: startRegistration,
|
|
touchmove: moveRegistration,
|
|
mousemove: moveRegistration,
|
|
scroll: scrollRegistration
|
|
};
|
|
var emptyResponder = {
|
|
id: null,
|
|
idPath: null,
|
|
node: null
|
|
};
|
|
var responderListenersMap = /* @__PURE__ */ new Map();
|
|
var isEmulatingMouseEvents = false;
|
|
var trackedTouchCount = 0;
|
|
var currentResponder = {
|
|
id: null,
|
|
node: null,
|
|
idPath: null
|
|
};
|
|
var responderTouchHistoryStore = new _ResponderTouchHistoryStore.ResponderTouchHistoryStore();
|
|
function changeCurrentResponder(responder) {
|
|
currentResponder = responder;
|
|
}
|
|
__name(changeCurrentResponder, "changeCurrentResponder");
|
|
function getResponderConfig(id) {
|
|
var config2 = responderListenersMap.get(id);
|
|
return config2 != null ? config2 : emptyObject;
|
|
}
|
|
__name(getResponderConfig, "getResponderConfig");
|
|
function eventListener(domEvent) {
|
|
var eventType = domEvent.type;
|
|
var eventTarget = domEvent.target;
|
|
if (eventType === "touchstart") {
|
|
isEmulatingMouseEvents = true;
|
|
}
|
|
if (eventType === "touchmove" || trackedTouchCount > 1) {
|
|
isEmulatingMouseEvents = false;
|
|
}
|
|
if (
|
|
// Ignore browser emulated mouse events
|
|
eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first
|
|
eventType === "mousemove" && trackedTouchCount < 1
|
|
) {
|
|
return;
|
|
}
|
|
if (isEmulatingMouseEvents && eventType === "mouseup") {
|
|
if (trackedTouchCount === 0) {
|
|
isEmulatingMouseEvents = false;
|
|
}
|
|
return;
|
|
}
|
|
var isStartEvent = (0, _ResponderEventTypes.isStartish)(eventType) && (0, _utils.isPrimaryPointerDown)(domEvent);
|
|
var isMoveEvent = (0, _ResponderEventTypes.isMoveish)(eventType);
|
|
var isEndEvent = (0, _ResponderEventTypes.isEndish)(eventType);
|
|
var isScrollEvent = (0, _ResponderEventTypes.isScroll)(eventType);
|
|
var isSelectionChangeEvent = (0, _ResponderEventTypes.isSelectionChange)(eventType);
|
|
var responderEvent = (0, _createResponderEvent.default)(domEvent, responderTouchHistoryStore);
|
|
if (isStartEvent || isMoveEvent || isEndEvent) {
|
|
if (domEvent.touches) {
|
|
trackedTouchCount = domEvent.touches.length;
|
|
} else {
|
|
if (isStartEvent) {
|
|
trackedTouchCount = 1;
|
|
} else if (isEndEvent) {
|
|
trackedTouchCount = 0;
|
|
}
|
|
}
|
|
responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);
|
|
}
|
|
var eventPaths = (0, _utils.getResponderPaths)(domEvent);
|
|
var wasNegotiated = false;
|
|
var wantsResponder;
|
|
if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
|
|
var currentResponderIdPath = currentResponder.idPath;
|
|
var eventIdPath = eventPaths.idPath;
|
|
if (currentResponderIdPath != null && eventIdPath != null) {
|
|
var lowestCommonAncestor = (0, _utils.getLowestCommonAncestor)(currentResponderIdPath, eventIdPath);
|
|
if (lowestCommonAncestor != null) {
|
|
var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);
|
|
var index3 = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
|
|
eventPaths = {
|
|
idPath: eventIdPath.slice(index3),
|
|
nodePath: eventPaths.nodePath.slice(index3)
|
|
};
|
|
} else {
|
|
eventPaths = null;
|
|
}
|
|
}
|
|
if (eventPaths != null) {
|
|
wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);
|
|
if (wantsResponder != null) {
|
|
attemptTransfer(responderEvent, wantsResponder);
|
|
wasNegotiated = true;
|
|
}
|
|
}
|
|
}
|
|
if (currentResponder.id != null && currentResponder.node != null) {
|
|
var _currentResponder = currentResponder, id = _currentResponder.id, node = _currentResponder.node;
|
|
var _getResponderConfig = getResponderConfig(id), onResponderStart = _getResponderConfig.onResponderStart, onResponderMove = _getResponderConfig.onResponderMove, onResponderEnd = _getResponderConfig.onResponderEnd, onResponderRelease = _getResponderConfig.onResponderRelease, onResponderTerminate = _getResponderConfig.onResponderTerminate, onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;
|
|
responderEvent.bubbles = false;
|
|
responderEvent.cancelable = false;
|
|
responderEvent.currentTarget = node;
|
|
if (isStartEvent) {
|
|
if (onResponderStart != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderStart";
|
|
onResponderStart(responderEvent);
|
|
}
|
|
} else if (isMoveEvent) {
|
|
if (onResponderMove != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderMove";
|
|
onResponderMove(responderEvent);
|
|
}
|
|
} else {
|
|
var isTerminateEvent = (0, _ResponderEventTypes.isCancelish)(eventType) || // native context menu
|
|
eventType === "contextmenu" || // window blur
|
|
eventType === "blur" && eventTarget === window || // responder (or ancestors) blur
|
|
eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer
|
|
isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)
|
|
isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node
|
|
isSelectionChangeEvent && (0, _utils.hasValidSelection)(domEvent);
|
|
var isReleaseEvent = isEndEvent && !isTerminateEvent && !(0, _utils.hasTargetTouches)(node, domEvent.touches);
|
|
if (isEndEvent) {
|
|
if (onResponderEnd != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderEnd";
|
|
onResponderEnd(responderEvent);
|
|
}
|
|
}
|
|
if (isReleaseEvent) {
|
|
if (onResponderRelease != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderRelease";
|
|
onResponderRelease(responderEvent);
|
|
}
|
|
changeCurrentResponder(emptyResponder);
|
|
}
|
|
if (isTerminateEvent) {
|
|
var shouldTerminate = true;
|
|
if (eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") {
|
|
if (wasNegotiated) {
|
|
shouldTerminate = false;
|
|
} else if (onResponderTerminationRequest != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
|
|
if (onResponderTerminationRequest(responderEvent) === false) {
|
|
shouldTerminate = false;
|
|
}
|
|
}
|
|
}
|
|
if (shouldTerminate) {
|
|
if (onResponderTerminate != null) {
|
|
responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
|
|
onResponderTerminate(responderEvent);
|
|
}
|
|
changeCurrentResponder(emptyResponder);
|
|
isEmulatingMouseEvents = false;
|
|
trackedTouchCount = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
__name(eventListener, "eventListener");
|
|
function findWantsResponder(eventPaths, domEvent, responderEvent) {
|
|
var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
|
|
if (shouldSetCallbacks != null) {
|
|
var idPath = eventPaths.idPath, nodePath = eventPaths.nodePath;
|
|
var shouldSetCallbackCaptureName = shouldSetCallbacks[0];
|
|
var shouldSetCallbackBubbleName = shouldSetCallbacks[1];
|
|
var bubbles = shouldSetCallbacks[2].bubbles;
|
|
var check = /* @__PURE__ */ __name(function check2(id2, node2, callbackName) {
|
|
var config2 = getResponderConfig(id2);
|
|
var shouldSetCallback = config2[callbackName];
|
|
if (shouldSetCallback != null) {
|
|
responderEvent.currentTarget = node2;
|
|
if (shouldSetCallback(responderEvent) === true) {
|
|
var prunedIdPath = idPath.slice(idPath.indexOf(id2));
|
|
return {
|
|
id: id2,
|
|
node: node2,
|
|
idPath: prunedIdPath
|
|
};
|
|
}
|
|
}
|
|
}, "check");
|
|
for (var i = idPath.length - 1; i >= 0; i--) {
|
|
var id = idPath[i];
|
|
var node = nodePath[i];
|
|
var result = check(id, node, shouldSetCallbackCaptureName);
|
|
if (result != null) {
|
|
return result;
|
|
}
|
|
if (responderEvent.isPropagationStopped() === true) {
|
|
return;
|
|
}
|
|
}
|
|
if (bubbles) {
|
|
for (var _i = 0; _i < idPath.length; _i++) {
|
|
var _id = idPath[_i];
|
|
var _node = nodePath[_i];
|
|
var _result = check(_id, _node, shouldSetCallbackBubbleName);
|
|
if (_result != null) {
|
|
return _result;
|
|
}
|
|
if (responderEvent.isPropagationStopped() === true) {
|
|
return;
|
|
}
|
|
}
|
|
} else {
|
|
var _id2 = idPath[0];
|
|
var _node2 = nodePath[0];
|
|
var target = domEvent.target;
|
|
if (target === _node2) {
|
|
return check(_id2, _node2, shouldSetCallbackBubbleName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
__name(findWantsResponder, "findWantsResponder");
|
|
function attemptTransfer(responderEvent, wantsResponder) {
|
|
var _currentResponder2 = currentResponder, currentId = _currentResponder2.id, currentNode = _currentResponder2.node;
|
|
var id = wantsResponder.id, node = wantsResponder.node;
|
|
var _getResponderConfig2 = getResponderConfig(id), onResponderGrant = _getResponderConfig2.onResponderGrant, onResponderReject = _getResponderConfig2.onResponderReject;
|
|
responderEvent.bubbles = false;
|
|
responderEvent.cancelable = false;
|
|
responderEvent.currentTarget = node;
|
|
if (currentId == null) {
|
|
if (onResponderGrant != null) {
|
|
responderEvent.currentTarget = node;
|
|
responderEvent.dispatchConfig.registrationName = "onResponderGrant";
|
|
onResponderGrant(responderEvent);
|
|
}
|
|
changeCurrentResponder(wantsResponder);
|
|
} else {
|
|
var _getResponderConfig3 = getResponderConfig(currentId), onResponderTerminate = _getResponderConfig3.onResponderTerminate, onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;
|
|
var allowTransfer = true;
|
|
if (onResponderTerminationRequest != null) {
|
|
responderEvent.currentTarget = currentNode;
|
|
responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
|
|
if (onResponderTerminationRequest(responderEvent) === false) {
|
|
allowTransfer = false;
|
|
}
|
|
}
|
|
if (allowTransfer) {
|
|
if (onResponderTerminate != null) {
|
|
responderEvent.currentTarget = currentNode;
|
|
responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
|
|
onResponderTerminate(responderEvent);
|
|
}
|
|
if (onResponderGrant != null) {
|
|
responderEvent.currentTarget = node;
|
|
responderEvent.dispatchConfig.registrationName = "onResponderGrant";
|
|
onResponderGrant(responderEvent);
|
|
}
|
|
changeCurrentResponder(wantsResponder);
|
|
} else {
|
|
if (onResponderReject != null) {
|
|
responderEvent.currentTarget = node;
|
|
responderEvent.dispatchConfig.registrationName = "onResponderReject";
|
|
onResponderReject(responderEvent);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
__name(attemptTransfer, "attemptTransfer");
|
|
var documentEventsCapturePhase = ["blur", "scroll"];
|
|
var documentEventsBubblePhase = [
|
|
// mouse
|
|
"mousedown",
|
|
"mousemove",
|
|
"mouseup",
|
|
"dragstart",
|
|
// touch
|
|
"touchstart",
|
|
"touchmove",
|
|
"touchend",
|
|
"touchcancel",
|
|
// other
|
|
"contextmenu",
|
|
"select",
|
|
"selectionchange"
|
|
];
|
|
function attachListeners() {
|
|
if (_canUseDom.default && window.__reactResponderSystemActive == null) {
|
|
window.addEventListener("blur", eventListener);
|
|
documentEventsBubblePhase.forEach((eventType) => {
|
|
document.addEventListener(eventType, eventListener);
|
|
});
|
|
documentEventsCapturePhase.forEach((eventType) => {
|
|
document.addEventListener(eventType, eventListener, true);
|
|
});
|
|
window.__reactResponderSystemActive = true;
|
|
}
|
|
}
|
|
__name(attachListeners, "attachListeners");
|
|
function addNode(id, node, config2) {
|
|
(0, _utils.setResponderId)(node, id);
|
|
responderListenersMap.set(id, config2);
|
|
}
|
|
__name(addNode, "addNode");
|
|
function removeNode(id) {
|
|
if (currentResponder.id === id) {
|
|
terminateResponder();
|
|
}
|
|
if (responderListenersMap.has(id)) {
|
|
responderListenersMap.delete(id);
|
|
}
|
|
}
|
|
__name(removeNode, "removeNode");
|
|
function terminateResponder() {
|
|
var _currentResponder3 = currentResponder, id = _currentResponder3.id, node = _currentResponder3.node;
|
|
if (id != null && node != null) {
|
|
var _getResponderConfig4 = getResponderConfig(id), onResponderTerminate = _getResponderConfig4.onResponderTerminate;
|
|
if (onResponderTerminate != null) {
|
|
var event = (0, _createResponderEvent.default)({}, responderTouchHistoryStore);
|
|
event.currentTarget = node;
|
|
onResponderTerminate(event);
|
|
}
|
|
changeCurrentResponder(emptyResponder);
|
|
}
|
|
isEmulatingMouseEvents = false;
|
|
trackedTouchCount = 0;
|
|
}
|
|
__name(terminateResponder, "terminateResponder");
|
|
function getResponderNode() {
|
|
return currentResponder.node;
|
|
}
|
|
__name(getResponderNode, "getResponderNode");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useResponderEvents/index.js
|
|
var require_useResponderEvents = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useResponderEvents/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useResponderEvents;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var ResponderSystem = _interopRequireWildcard(require_ResponderSystem());
|
|
var emptyObject = {};
|
|
var idCounter = 0;
|
|
function useStable(getInitialValue) {
|
|
var ref = React44.useRef(null);
|
|
if (ref.current == null) {
|
|
ref.current = getInitialValue();
|
|
}
|
|
return ref.current;
|
|
}
|
|
__name(useStable, "useStable");
|
|
function useResponderEvents(hostRef, config2) {
|
|
if (config2 === void 0) {
|
|
config2 = emptyObject;
|
|
}
|
|
var id = useStable(() => idCounter++);
|
|
var isAttachedRef = React44.useRef(false);
|
|
React44.useEffect(() => {
|
|
ResponderSystem.attachListeners();
|
|
return () => {
|
|
ResponderSystem.removeNode(id);
|
|
};
|
|
}, [id]);
|
|
React44.useEffect(() => {
|
|
var _config = config2, onMoveShouldSetResponder = _config.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture, onScrollShouldSetResponder = _config.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = _config.onStartShouldSetResponder, onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;
|
|
var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;
|
|
var node = hostRef.current;
|
|
if (requiresResponderSystem) {
|
|
ResponderSystem.addNode(id, node, config2);
|
|
isAttachedRef.current = true;
|
|
} else if (isAttachedRef.current) {
|
|
ResponderSystem.removeNode(id);
|
|
isAttachedRef.current = false;
|
|
}
|
|
}, [config2, hostRef, id]);
|
|
React44.useDebugValue({
|
|
isResponder: hostRef.current === ResponderSystem.getResponderNode()
|
|
});
|
|
React44.useDebugValue(config2);
|
|
}
|
|
__name(useResponderEvents, "useResponderEvents");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Text/TextAncestorContext.js
|
|
var require_TextAncestorContext = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Text/TextAncestorContext.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _react = require("react");
|
|
var TextAncestorContext = /* @__PURE__ */ (0, _react.createContext)(false);
|
|
var _default = TextAncestorContext;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/View/index.js
|
|
var require_View = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/View/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var forwardedProps = _interopRequireWildcard(require_forwardedProps());
|
|
var _pick = _interopRequireDefault(require_pick());
|
|
var _useElementLayout = _interopRequireDefault(require_useElementLayout());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());
|
|
var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());
|
|
var _useLocale = require_useLocale();
|
|
var _excluded = ["hrefAttrs", "onLayout", "onMoveShouldSetResponder", "onMoveShouldSetResponderCapture", "onResponderEnd", "onResponderGrant", "onResponderMove", "onResponderReject", "onResponderRelease", "onResponderStart", "onResponderTerminate", "onResponderTerminationRequest", "onScrollShouldSetResponder", "onScrollShouldSetResponderCapture", "onSelectionChangeShouldSetResponder", "onSelectionChangeShouldSetResponderCapture", "onStartShouldSetResponder", "onStartShouldSetResponderCapture"];
|
|
var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {
|
|
href: true,
|
|
lang: true,
|
|
onScroll: true,
|
|
onWheel: true,
|
|
pointerEvents: true
|
|
});
|
|
var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), "pickProps");
|
|
var View10 = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var hrefAttrs = props.hrefAttrs, onLayout = props.onLayout, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
if (process.env.NODE_ENV !== "production") {
|
|
React44.Children.toArray(props.children).forEach((item) => {
|
|
if (typeof item === "string") {
|
|
console.error("Unexpected text node: " + item + ". A text node cannot be a child of a <View>.");
|
|
}
|
|
});
|
|
}
|
|
var hasTextAncestor = React44.useContext(_TextAncestorContext.default);
|
|
var hostRef = React44.useRef(null);
|
|
var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;
|
|
(0, _useElementLayout.default)(hostRef, onLayout);
|
|
(0, _useResponderEvents.default)(hostRef, {
|
|
onMoveShouldSetResponder,
|
|
onMoveShouldSetResponderCapture,
|
|
onResponderEnd,
|
|
onResponderGrant,
|
|
onResponderMove,
|
|
onResponderReject,
|
|
onResponderRelease,
|
|
onResponderStart,
|
|
onResponderTerminate,
|
|
onResponderTerminationRequest,
|
|
onScrollShouldSetResponder,
|
|
onScrollShouldSetResponderCapture,
|
|
onSelectionChangeShouldSetResponder,
|
|
onSelectionChangeShouldSetResponderCapture,
|
|
onStartShouldSetResponder,
|
|
onStartShouldSetResponderCapture
|
|
});
|
|
var component = "div";
|
|
var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;
|
|
var componentDirection = props.dir || langDirection;
|
|
var writingDirection = componentDirection || contextDirection;
|
|
var supportedProps = pickProps(rest);
|
|
supportedProps.dir = componentDirection;
|
|
supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];
|
|
if (props.href != null) {
|
|
component = "a";
|
|
if (hrefAttrs != null) {
|
|
var download = hrefAttrs.download, rel = hrefAttrs.rel, target = hrefAttrs.target;
|
|
if (download != null) {
|
|
supportedProps.download = download;
|
|
}
|
|
if (rel != null) {
|
|
supportedProps.rel = rel;
|
|
}
|
|
if (typeof target === "string") {
|
|
supportedProps.target = target.charAt(0) !== "_" ? "_" + target : target;
|
|
}
|
|
}
|
|
}
|
|
var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);
|
|
var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);
|
|
supportedProps.ref = setRef2;
|
|
return (0, _createElement.default)(component, supportedProps, {
|
|
writingDirection
|
|
});
|
|
});
|
|
View10.displayName = "View";
|
|
var styles = _StyleSheet.default.create({
|
|
view$raw: {
|
|
alignItems: "stretch",
|
|
backgroundColor: "transparent",
|
|
border: "0 solid black",
|
|
boxSizing: "border-box",
|
|
display: "flex",
|
|
flexBasis: "auto",
|
|
flexDirection: "column",
|
|
flexShrink: 0,
|
|
listStyle: "none",
|
|
margin: 0,
|
|
minHeight: 0,
|
|
minWidth: 0,
|
|
padding: 0,
|
|
position: "relative",
|
|
textDecoration: "none",
|
|
zIndex: 0
|
|
},
|
|
inline: {
|
|
display: "inline-flex"
|
|
}
|
|
});
|
|
var _default = View10;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/deepDiffer/index.js
|
|
var require_deepDiffer = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/deepDiffer/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var deepDiffer = /* @__PURE__ */ __name(function deepDiffer2(one, two, maxDepth) {
|
|
if (maxDepth === void 0) {
|
|
maxDepth = -1;
|
|
}
|
|
if (maxDepth === 0) {
|
|
return true;
|
|
}
|
|
if (one === two) {
|
|
return false;
|
|
}
|
|
if (typeof one === "function" && typeof two === "function") {
|
|
return false;
|
|
}
|
|
if (typeof one !== "object" || one === null) {
|
|
return one !== two;
|
|
}
|
|
if (typeof two !== "object" || two === null) {
|
|
return true;
|
|
}
|
|
if (one.constructor !== two.constructor) {
|
|
return true;
|
|
}
|
|
if (Array.isArray(one)) {
|
|
var len = one.length;
|
|
if (two.length !== len) {
|
|
return true;
|
|
}
|
|
for (var ii = 0; ii < len; ii++) {
|
|
if (deepDiffer2(one[ii], two[ii], maxDepth - 1)) {
|
|
return true;
|
|
}
|
|
}
|
|
} else {
|
|
for (var key in one) {
|
|
if (deepDiffer2(one[key], two[key], maxDepth - 1)) {
|
|
return true;
|
|
}
|
|
}
|
|
for (var twoKey in two) {
|
|
if (one[twoKey] === void 0 && two[twoKey] !== void 0) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}, "deepDiffer");
|
|
var _default = deepDiffer;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/fbjs/lib/invariant.js
|
|
var require_invariant = __commonJS({
|
|
"node_modules/fbjs/lib/invariant.js"(exports2, module2) {
|
|
"use strict";
|
|
var validateFormat = process.env.NODE_ENV !== "production" ? function(format) {
|
|
if (format === void 0) {
|
|
throw new Error("invariant(...): Second argument must be a string.");
|
|
}
|
|
} : function(format) {
|
|
};
|
|
function invariant(condition, format) {
|
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
args[_key - 2] = arguments[_key];
|
|
}
|
|
validateFormat(format);
|
|
if (!condition) {
|
|
var error2;
|
|
if (format === void 0) {
|
|
error2 = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");
|
|
} else {
|
|
var argIndex = 0;
|
|
error2 = new Error(format.replace(/%s/g, function() {
|
|
return String(args[argIndex++]);
|
|
}));
|
|
error2.name = "Invariant Violation";
|
|
}
|
|
error2.framesToPop = 1;
|
|
throw error2;
|
|
}
|
|
}
|
|
__name(invariant, "invariant");
|
|
module2.exports = invariant;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/arrayLikeToArray.js
|
|
var require_arrayLikeToArray = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/arrayLikeToArray.js"(exports2, module2) {
|
|
function _arrayLikeToArray(arr, len) {
|
|
if (len == null || len > arr.length)
|
|
len = arr.length;
|
|
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
arr2[i] = arr[i];
|
|
return arr2;
|
|
}
|
|
__name(_arrayLikeToArray, "_arrayLikeToArray");
|
|
module2.exports = _arrayLikeToArray, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js
|
|
var require_unsupportedIterableToArray = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"(exports2, module2) {
|
|
var arrayLikeToArray = require_arrayLikeToArray();
|
|
function _unsupportedIterableToArray(o, minLen) {
|
|
if (!o)
|
|
return;
|
|
if (typeof o === "string")
|
|
return arrayLikeToArray(o, minLen);
|
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
if (n === "Object" && o.constructor)
|
|
n = o.constructor.name;
|
|
if (n === "Map" || n === "Set")
|
|
return Array.from(o);
|
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
return arrayLikeToArray(o, minLen);
|
|
}
|
|
__name(_unsupportedIterableToArray, "_unsupportedIterableToArray");
|
|
module2.exports = _unsupportedIterableToArray, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js
|
|
var require_createForOfIteratorHelperLoose = __commonJS({
|
|
"node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js"(exports2, module2) {
|
|
var unsupportedIterableToArray = require_unsupportedIterableToArray();
|
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
if (it)
|
|
return (it = it.call(o)).next.bind(it);
|
|
if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
if (it)
|
|
o = it;
|
|
var i = 0;
|
|
return function() {
|
|
if (i >= o.length)
|
|
return {
|
|
done: true
|
|
};
|
|
return {
|
|
done: false,
|
|
value: o[i++]
|
|
};
|
|
};
|
|
}
|
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
}
|
|
__name(_createForOfIteratorHelperLoose, "_createForOfIteratorHelperLoose");
|
|
module2.exports = _createForOfIteratorHelperLoose, module2.exports.__esModule = true, module2.exports["default"] = module2.exports;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/RefreshControl/index.js
|
|
var require_RefreshControl = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/RefreshControl/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _excluded = ["colors", "enabled", "onRefresh", "progressBackgroundColor", "progressViewOffset", "refreshing", "size", "tintColor", "title", "titleColor"];
|
|
function RefreshControl(props) {
|
|
var colors = props.colors, enabled = props.enabled, onRefresh = props.onRefresh, progressBackgroundColor = props.progressBackgroundColor, progressViewOffset = props.progressViewOffset, refreshing = props.refreshing, size6 = props.size, tintColor = props.tintColor, title = props.title, titleColor = props.titleColor, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
return /* @__PURE__ */ _react.default.createElement(_View.default, rest);
|
|
}
|
|
__name(RefreshControl, "RefreshControl");
|
|
var _default = RefreshControl;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Dimensions/index.js
|
|
var require_Dimensions = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Dimensions/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var dimensions = {
|
|
window: {
|
|
fontScale: 1,
|
|
height: 0,
|
|
scale: 1,
|
|
width: 0
|
|
},
|
|
screen: {
|
|
fontScale: 1,
|
|
height: 0,
|
|
scale: 1,
|
|
width: 0
|
|
}
|
|
};
|
|
var listeners = {};
|
|
var shouldInit = _canUseDom.default;
|
|
function update() {
|
|
if (!_canUseDom.default) {
|
|
return;
|
|
}
|
|
var win = window;
|
|
var height;
|
|
var width;
|
|
if (win.visualViewport) {
|
|
var visualViewport = win.visualViewport;
|
|
height = Math.round(visualViewport.height * visualViewport.scale);
|
|
width = Math.round(visualViewport.width * visualViewport.scale);
|
|
} else {
|
|
var docEl = win.document.documentElement;
|
|
height = docEl.clientHeight;
|
|
width = docEl.clientWidth;
|
|
}
|
|
dimensions.window = {
|
|
fontScale: 1,
|
|
height,
|
|
scale: win.devicePixelRatio || 1,
|
|
width
|
|
};
|
|
dimensions.screen = {
|
|
fontScale: 1,
|
|
height: win.screen.height,
|
|
scale: win.devicePixelRatio || 1,
|
|
width: win.screen.width
|
|
};
|
|
}
|
|
__name(update, "update");
|
|
function handleResize() {
|
|
update();
|
|
if (Array.isArray(listeners["change"])) {
|
|
listeners["change"].forEach((handler) => handler(dimensions));
|
|
}
|
|
}
|
|
__name(handleResize, "handleResize");
|
|
var _Dimensions = class _Dimensions {
|
|
static get(dimension) {
|
|
if (shouldInit) {
|
|
shouldInit = false;
|
|
update();
|
|
}
|
|
(0, _invariant.default)(dimensions[dimension], "No dimension set for key " + dimension);
|
|
return dimensions[dimension];
|
|
}
|
|
static set(initialDimensions) {
|
|
if (initialDimensions) {
|
|
if (_canUseDom.default) {
|
|
(0, _invariant.default)(false, "Dimensions cannot be set in the browser");
|
|
} else {
|
|
if (initialDimensions.screen != null) {
|
|
dimensions.screen = initialDimensions.screen;
|
|
}
|
|
if (initialDimensions.window != null) {
|
|
dimensions.window = initialDimensions.window;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
static addEventListener(type, handler) {
|
|
listeners[type] = listeners[type] || [];
|
|
listeners[type].push(handler);
|
|
return {
|
|
remove: () => {
|
|
this.removeEventListener(type, handler);
|
|
}
|
|
};
|
|
}
|
|
static removeEventListener(type, handler) {
|
|
if (Array.isArray(listeners[type])) {
|
|
listeners[type] = listeners[type].filter((_handler) => _handler !== handler);
|
|
}
|
|
}
|
|
};
|
|
__name(_Dimensions, "Dimensions");
|
|
var Dimensions3 = _Dimensions;
|
|
exports2.default = Dimensions3;
|
|
if (_canUseDom.default) {
|
|
if (window.visualViewport) {
|
|
window.visualViewport.addEventListener("resize", handleResize, false);
|
|
} else {
|
|
window.addEventListener("resize", handleResize, false);
|
|
}
|
|
}
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/TextInputState/index.js
|
|
var require_TextInputState = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/TextInputState/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var TextInputState = {
|
|
/**
|
|
* Internal state
|
|
*/
|
|
_currentlyFocusedNode: null,
|
|
/**
|
|
* Returns the ID of the currently focused text field, if one exists
|
|
* If no text field is focused it returns null
|
|
*/
|
|
currentlyFocusedField() {
|
|
if (document.activeElement !== this._currentlyFocusedNode) {
|
|
this._currentlyFocusedNode = null;
|
|
}
|
|
return this._currentlyFocusedNode;
|
|
},
|
|
/**
|
|
* @param {Object} TextInputID id of the text field to focus
|
|
* Focuses the specified text field
|
|
* noop if the text field was already focused
|
|
*/
|
|
focusTextInput(textFieldNode) {
|
|
if (textFieldNode !== null) {
|
|
this._currentlyFocusedNode = textFieldNode;
|
|
if (document.activeElement !== textFieldNode) {
|
|
_UIManager.default.focus(textFieldNode);
|
|
}
|
|
}
|
|
},
|
|
/**
|
|
* @param {Object} textFieldNode id of the text field to focus
|
|
* Unfocuses the specified text field
|
|
* noop if it wasn't focused
|
|
*/
|
|
blurTextInput(textFieldNode) {
|
|
if (textFieldNode !== null) {
|
|
this._currentlyFocusedNode = null;
|
|
if (document.activeElement === textFieldNode) {
|
|
_UIManager.default.blur(textFieldNode);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
var _default = TextInputState;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/dismissKeyboard/index.js
|
|
var require_dismissKeyboard = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/dismissKeyboard/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _TextInputState = _interopRequireDefault(require_TextInputState());
|
|
var dismissKeyboard = /* @__PURE__ */ __name(() => {
|
|
_TextInputState.default.blurTextInput(_TextInputState.default.currentlyFocusedField());
|
|
}, "dismissKeyboard");
|
|
var _default = dismissKeyboard;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/ScrollView/ScrollViewBase.js
|
|
var require_ScrollViewBase = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/ScrollView/ScrollViewBase.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _excluded = ["onScroll", "onTouchMove", "onWheel", "scrollEnabled", "scrollEventThrottle", "showsHorizontalScrollIndicator", "showsVerticalScrollIndicator", "style"];
|
|
function normalizeScrollEvent(e) {
|
|
return {
|
|
nativeEvent: {
|
|
contentOffset: {
|
|
get x() {
|
|
return e.target.scrollLeft;
|
|
},
|
|
get y() {
|
|
return e.target.scrollTop;
|
|
}
|
|
},
|
|
contentSize: {
|
|
get height() {
|
|
return e.target.scrollHeight;
|
|
},
|
|
get width() {
|
|
return e.target.scrollWidth;
|
|
}
|
|
},
|
|
layoutMeasurement: {
|
|
get height() {
|
|
return e.target.offsetHeight;
|
|
},
|
|
get width() {
|
|
return e.target.offsetWidth;
|
|
}
|
|
}
|
|
},
|
|
timeStamp: Date.now()
|
|
};
|
|
}
|
|
__name(normalizeScrollEvent, "normalizeScrollEvent");
|
|
function shouldEmitScrollEvent(lastTick, eventThrottle) {
|
|
var timeSinceLastTick = Date.now() - lastTick;
|
|
return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;
|
|
}
|
|
__name(shouldEmitScrollEvent, "shouldEmitScrollEvent");
|
|
var ScrollViewBase = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var onScroll = props.onScroll, onTouchMove = props.onTouchMove, onWheel = props.onWheel, _props$scrollEnabled = props.scrollEnabled, scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled, _props$scrollEventThr = props.scrollEventThrottle, scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr, showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator, showsVerticalScrollIndicator = props.showsVerticalScrollIndicator, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var scrollState = React44.useRef({
|
|
isScrolling: false,
|
|
scrollLastTick: 0
|
|
});
|
|
var scrollTimeout = React44.useRef(null);
|
|
var scrollRef = React44.useRef(null);
|
|
function createPreventableScrollHandler(handler) {
|
|
return (e) => {
|
|
if (scrollEnabled) {
|
|
if (handler) {
|
|
handler(e);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
__name(createPreventableScrollHandler, "createPreventableScrollHandler");
|
|
function handleScroll(e) {
|
|
e.stopPropagation();
|
|
if (e.target === scrollRef.current) {
|
|
e.persist();
|
|
if (scrollTimeout.current != null) {
|
|
clearTimeout(scrollTimeout.current);
|
|
}
|
|
scrollTimeout.current = setTimeout(() => {
|
|
handleScrollEnd(e);
|
|
}, 100);
|
|
if (scrollState.current.isScrolling) {
|
|
if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {
|
|
handleScrollTick(e);
|
|
}
|
|
} else {
|
|
handleScrollStart(e);
|
|
}
|
|
}
|
|
}
|
|
__name(handleScroll, "handleScroll");
|
|
function handleScrollStart(e) {
|
|
scrollState.current.isScrolling = true;
|
|
handleScrollTick(e);
|
|
}
|
|
__name(handleScrollStart, "handleScrollStart");
|
|
function handleScrollTick(e) {
|
|
scrollState.current.scrollLastTick = Date.now();
|
|
if (onScroll) {
|
|
onScroll(normalizeScrollEvent(e));
|
|
}
|
|
}
|
|
__name(handleScrollTick, "handleScrollTick");
|
|
function handleScrollEnd(e) {
|
|
scrollState.current.isScrolling = false;
|
|
if (onScroll) {
|
|
onScroll(normalizeScrollEvent(e));
|
|
}
|
|
}
|
|
__name(handleScrollEnd, "handleScrollEnd");
|
|
var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, {
|
|
onScroll: handleScroll,
|
|
onTouchMove: createPreventableScrollHandler(onTouchMove),
|
|
onWheel: createPreventableScrollHandler(onWheel),
|
|
ref: (0, _useMergeRefs.default)(scrollRef, forwardedRef),
|
|
style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]
|
|
}));
|
|
});
|
|
var styles = _StyleSheet.default.create({
|
|
scrollDisabled: {
|
|
overflowX: "hidden",
|
|
overflowY: "hidden",
|
|
touchAction: "none"
|
|
},
|
|
hideScrollbar: {
|
|
scrollbarWidth: "none"
|
|
}
|
|
});
|
|
var _default = ScrollViewBase;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/fbjs/lib/emptyFunction.js
|
|
var require_emptyFunction = __commonJS({
|
|
"node_modules/fbjs/lib/emptyFunction.js"(exports2, module2) {
|
|
"use strict";
|
|
function makeEmptyFunction(arg) {
|
|
return function() {
|
|
return arg;
|
|
};
|
|
}
|
|
__name(makeEmptyFunction, "makeEmptyFunction");
|
|
var emptyFunction = /* @__PURE__ */ __name(function emptyFunction2() {
|
|
}, "emptyFunction");
|
|
emptyFunction.thatReturns = makeEmptyFunction;
|
|
emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
|
|
emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
|
|
emptyFunction.thatReturnsNull = makeEmptyFunction(null);
|
|
emptyFunction.thatReturnsThis = function() {
|
|
return this;
|
|
};
|
|
emptyFunction.thatReturnsArgument = function(arg) {
|
|
return arg;
|
|
};
|
|
module2.exports = emptyFunction;
|
|
}
|
|
});
|
|
|
|
// node_modules/fbjs/lib/warning.js
|
|
var require_warning = __commonJS({
|
|
"node_modules/fbjs/lib/warning.js"(exports2, module2) {
|
|
"use strict";
|
|
var emptyFunction = require_emptyFunction();
|
|
function printWarning(format) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
var argIndex = 0;
|
|
var message = "Warning: " + format.replace(/%s/g, function() {
|
|
return args[argIndex++];
|
|
});
|
|
if (typeof console !== "undefined") {
|
|
console.error(message);
|
|
}
|
|
try {
|
|
throw new Error(message);
|
|
} catch (x) {
|
|
}
|
|
}
|
|
__name(printWarning, "printWarning");
|
|
var warning = process.env.NODE_ENV !== "production" ? function(condition, format) {
|
|
if (format === void 0) {
|
|
throw new Error("`warning(condition, format, ...args)` requires a warning message argument");
|
|
}
|
|
if (!condition) {
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
|
args[_key2 - 2] = arguments[_key2];
|
|
}
|
|
printWarning.apply(void 0, [format].concat(args));
|
|
}
|
|
} : emptyFunction;
|
|
module2.exports = warning;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/ScrollView/index.js
|
|
var require_ScrollView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/ScrollView/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _Dimensions = _interopRequireDefault(require_Dimensions());
|
|
var _dismissKeyboard = _interopRequireDefault(require_dismissKeyboard());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _mergeRefs = _interopRequireDefault(require_mergeRefs());
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _ScrollViewBase = _interopRequireDefault(require_ScrollViewBase());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TextInputState = _interopRequireDefault(require_TextInputState());
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _warning = _interopRequireDefault(require_warning());
|
|
var _excluded = ["contentContainerStyle", "horizontal", "onContentSizeChange", "refreshControl", "stickyHeaderIndices", "pagingEnabled", "forwardedRef", "keyboardDismissMode", "onScroll", "centerContent"];
|
|
var emptyObject = {};
|
|
var IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;
|
|
var _ScrollView = class _ScrollView extends _react.default.Component {
|
|
constructor() {
|
|
super(...arguments);
|
|
this._scrollNodeRef = null;
|
|
this._innerViewRef = null;
|
|
this.isTouching = false;
|
|
this.lastMomentumScrollBeginTime = 0;
|
|
this.lastMomentumScrollEndTime = 0;
|
|
this.observedScrollSinceBecomingResponder = false;
|
|
this.becameResponderWhileAnimating = false;
|
|
this.scrollResponderHandleScrollShouldSetResponder = () => {
|
|
return this.isTouching;
|
|
};
|
|
this.scrollResponderHandleStartShouldSetResponderCapture = (e) => {
|
|
return this.scrollResponderIsAnimating();
|
|
};
|
|
this.scrollResponderHandleTerminationRequest = () => {
|
|
return !this.observedScrollSinceBecomingResponder;
|
|
};
|
|
this.scrollResponderHandleTouchEnd = (e) => {
|
|
var nativeEvent = e.nativeEvent;
|
|
this.isTouching = nativeEvent.touches.length !== 0;
|
|
this.props.onTouchEnd && this.props.onTouchEnd(e);
|
|
};
|
|
this.scrollResponderHandleResponderRelease = (e) => {
|
|
this.props.onResponderRelease && this.props.onResponderRelease(e);
|
|
var currentlyFocusedTextInput = _TextInputState.default.currentlyFocusedField();
|
|
if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.observedScrollSinceBecomingResponder && !this.becameResponderWhileAnimating) {
|
|
this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);
|
|
_TextInputState.default.blurTextInput(currentlyFocusedTextInput);
|
|
}
|
|
};
|
|
this.scrollResponderHandleScroll = (e) => {
|
|
this.observedScrollSinceBecomingResponder = true;
|
|
this.props.onScroll && this.props.onScroll(e);
|
|
};
|
|
this.scrollResponderHandleResponderGrant = (e) => {
|
|
this.observedScrollSinceBecomingResponder = false;
|
|
this.props.onResponderGrant && this.props.onResponderGrant(e);
|
|
this.becameResponderWhileAnimating = this.scrollResponderIsAnimating();
|
|
};
|
|
this.scrollResponderHandleScrollBeginDrag = (e) => {
|
|
this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);
|
|
};
|
|
this.scrollResponderHandleScrollEndDrag = (e) => {
|
|
this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);
|
|
};
|
|
this.scrollResponderHandleMomentumScrollBegin = (e) => {
|
|
this.lastMomentumScrollBeginTime = Date.now();
|
|
this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);
|
|
};
|
|
this.scrollResponderHandleMomentumScrollEnd = (e) => {
|
|
this.lastMomentumScrollEndTime = Date.now();
|
|
this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);
|
|
};
|
|
this.scrollResponderHandleTouchStart = (e) => {
|
|
this.isTouching = true;
|
|
this.props.onTouchStart && this.props.onTouchStart(e);
|
|
};
|
|
this.scrollResponderHandleTouchMove = (e) => {
|
|
this.props.onTouchMove && this.props.onTouchMove(e);
|
|
};
|
|
this.scrollResponderIsAnimating = () => {
|
|
var now = Date.now();
|
|
var timeSinceLastMomentumScrollEnd = now - this.lastMomentumScrollEndTime;
|
|
var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.lastMomentumScrollEndTime < this.lastMomentumScrollBeginTime;
|
|
return isAnimating;
|
|
};
|
|
this.scrollResponderScrollTo = (x, y, animated) => {
|
|
if (typeof x === "number") {
|
|
console.warn("`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.");
|
|
} else {
|
|
var _ref = x || emptyObject;
|
|
x = _ref.x;
|
|
y = _ref.y;
|
|
animated = _ref.animated;
|
|
}
|
|
var node = this.getScrollableNode();
|
|
var left = x || 0;
|
|
var top = y || 0;
|
|
if (node != null) {
|
|
if (typeof node.scroll === "function") {
|
|
node.scroll({
|
|
top,
|
|
left,
|
|
behavior: !animated ? "auto" : "smooth"
|
|
});
|
|
} else {
|
|
node.scrollLeft = left;
|
|
node.scrollTop = top;
|
|
}
|
|
}
|
|
};
|
|
this.scrollResponderZoomTo = (rect, animated) => {
|
|
if (_Platform.default.OS !== "ios") {
|
|
(0, _invariant.default)("zoomToRect is not implemented");
|
|
}
|
|
};
|
|
this.scrollResponderScrollNativeHandleToKeyboard = (nodeHandle, additionalOffset, preventNegativeScrollOffset) => {
|
|
this.additionalScrollOffset = additionalOffset || 0;
|
|
this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;
|
|
_UIManager.default.measureLayout(nodeHandle, this.getInnerViewNode(), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);
|
|
};
|
|
this.scrollResponderInputMeasureAndScrollToKeyboard = (left, top, width, height) => {
|
|
var keyboardScreenY = _Dimensions.default.get("window").height;
|
|
if (this.keyboardWillOpenTo) {
|
|
keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;
|
|
}
|
|
var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset;
|
|
if (this.preventNegativeScrollOffset) {
|
|
scrollOffsetY = Math.max(0, scrollOffsetY);
|
|
}
|
|
this.scrollResponderScrollTo({
|
|
x: 0,
|
|
y: scrollOffsetY,
|
|
animated: true
|
|
});
|
|
this.additionalOffset = 0;
|
|
this.preventNegativeScrollOffset = false;
|
|
};
|
|
this.scrollResponderKeyboardWillShow = (e) => {
|
|
this.keyboardWillOpenTo = e;
|
|
this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);
|
|
};
|
|
this.scrollResponderKeyboardWillHide = (e) => {
|
|
this.keyboardWillOpenTo = null;
|
|
this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);
|
|
};
|
|
this.scrollResponderKeyboardDidShow = (e) => {
|
|
if (e) {
|
|
this.keyboardWillOpenTo = e;
|
|
}
|
|
this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);
|
|
};
|
|
this.scrollResponderKeyboardDidHide = (e) => {
|
|
this.keyboardWillOpenTo = null;
|
|
this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);
|
|
};
|
|
this.flashScrollIndicators = () => {
|
|
this.scrollResponderFlashScrollIndicators();
|
|
};
|
|
this.getScrollResponder = () => {
|
|
return this;
|
|
};
|
|
this.getScrollableNode = () => {
|
|
return this._scrollNodeRef;
|
|
};
|
|
this.getInnerViewRef = () => {
|
|
return this._innerViewRef;
|
|
};
|
|
this.getInnerViewNode = () => {
|
|
return this._innerViewRef;
|
|
};
|
|
this.getNativeScrollRef = () => {
|
|
return this._scrollNodeRef;
|
|
};
|
|
this.scrollTo = (y, x, animated) => {
|
|
if (typeof y === "number") {
|
|
console.warn("`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.");
|
|
} else {
|
|
var _ref2 = y || emptyObject;
|
|
x = _ref2.x;
|
|
y = _ref2.y;
|
|
animated = _ref2.animated;
|
|
}
|
|
this.scrollResponderScrollTo({
|
|
x: x || 0,
|
|
y: y || 0,
|
|
animated: animated !== false
|
|
});
|
|
};
|
|
this.scrollToEnd = (options) => {
|
|
var animated = (options && options.animated) !== false;
|
|
var horizontal = this.props.horizontal;
|
|
var scrollResponderNode = this.getScrollableNode();
|
|
var x = horizontal ? scrollResponderNode.scrollWidth : 0;
|
|
var y = horizontal ? 0 : scrollResponderNode.scrollHeight;
|
|
this.scrollResponderScrollTo({
|
|
x,
|
|
y,
|
|
animated
|
|
});
|
|
};
|
|
this._handleContentOnLayout = (e) => {
|
|
var _e$nativeEvent$layout = e.nativeEvent.layout, width = _e$nativeEvent$layout.width, height = _e$nativeEvent$layout.height;
|
|
this.props.onContentSizeChange(width, height);
|
|
};
|
|
this._handleScroll = (e) => {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
if (this.props.onScroll && this.props.scrollEventThrottle == null) {
|
|
console.log("You specified `onScroll` on a <ScrollView> but not `scrollEventThrottle`. You will only receive one event. Using `16` you get all the events but be aware that it may cause frame drops, use a bigger number if you don't need as much precision.");
|
|
}
|
|
}
|
|
if (this.props.keyboardDismissMode === "on-drag") {
|
|
(0, _dismissKeyboard.default)();
|
|
}
|
|
this.scrollResponderHandleScroll(e);
|
|
};
|
|
this._setInnerViewRef = (node) => {
|
|
this._innerViewRef = node;
|
|
};
|
|
this._setScrollNodeRef = (node) => {
|
|
this._scrollNodeRef = node;
|
|
if (node != null) {
|
|
node.getScrollResponder = this.getScrollResponder;
|
|
node.getInnerViewNode = this.getInnerViewNode;
|
|
node.getInnerViewRef = this.getInnerViewRef;
|
|
node.getNativeScrollRef = this.getNativeScrollRef;
|
|
node.getScrollableNode = this.getScrollableNode;
|
|
node.scrollTo = this.scrollTo;
|
|
node.scrollToEnd = this.scrollToEnd;
|
|
node.flashScrollIndicators = this.flashScrollIndicators;
|
|
node.scrollResponderZoomTo = this.scrollResponderZoomTo;
|
|
node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;
|
|
}
|
|
var ref = (0, _mergeRefs.default)(this.props.forwardedRef);
|
|
ref(node);
|
|
};
|
|
}
|
|
/**
|
|
* Merely touch starting is not sufficient for a scroll view to become the
|
|
* responder. Being the "responder" means that the very next touch move/end
|
|
* event will result in an action/movement.
|
|
*
|
|
* Invoke this from an `onStartShouldSetResponder` event.
|
|
*
|
|
* `onStartShouldSetResponder` is used when the next move/end will trigger
|
|
* some UI movement/action, but when you want to yield priority to views
|
|
* nested inside of the view.
|
|
*
|
|
* There may be some cases where scroll views actually should return `true`
|
|
* from `onStartShouldSetResponder`: Any time we are detecting a standard tap
|
|
* that gives priority to nested views.
|
|
*
|
|
* - If a single tap on the scroll view triggers an action such as
|
|
* recentering a map style view yet wants to give priority to interaction
|
|
* views inside (such as dropped pins or labels), then we would return true
|
|
* from this method when there is a single touch.
|
|
*
|
|
* - Similar to the previous case, if a two finger "tap" should trigger a
|
|
* zoom, we would check the `touches` count, and if `>= 2`, we would return
|
|
* true.
|
|
*
|
|
*/
|
|
scrollResponderHandleStartShouldSetResponder() {
|
|
return false;
|
|
}
|
|
/**
|
|
* There are times when the scroll view wants to become the responder
|
|
* (meaning respond to the next immediate `touchStart/touchEnd`), in a way
|
|
* that *doesn't* give priority to nested views (hence the capture phase):
|
|
*
|
|
* - Currently animating.
|
|
* - Tapping anywhere that is not the focused input, while the keyboard is
|
|
* up (which should dismiss the keyboard).
|
|
*
|
|
* Invoke this from an `onStartShouldSetResponderCapture` event.
|
|
*/
|
|
/**
|
|
* Invoke this from an `onResponderReject` event.
|
|
*
|
|
* Some other element is not yielding its role as responder. Normally, we'd
|
|
* just disable the `UIScrollView`, but a touch has already began on it, the
|
|
* `UIScrollView` will not accept being disabled after that. The easiest
|
|
* solution for now is to accept the limitation of disallowing this
|
|
* altogether. To improve this, find a way to disable the `UIScrollView` after
|
|
* a touch has already started.
|
|
*/
|
|
scrollResponderHandleResponderReject() {
|
|
(0, _warning.default)(false, "ScrollView doesn't take rejection well - scrolls anyway");
|
|
}
|
|
/**
|
|
* We will allow the scroll view to give up its lock iff it acquired the lock
|
|
* during an animation. This is a very useful default that happens to satisfy
|
|
* many common user experiences.
|
|
*
|
|
* - Stop a scroll on the left edge, then turn that into an outer view's
|
|
* backswipe.
|
|
* - Stop a scroll mid-bounce at the top, continue pulling to have the outer
|
|
* view dismiss.
|
|
* - However, without catching the scroll view mid-bounce (while it is
|
|
* motionless), if you drag far enough for the scroll view to become
|
|
* responder (and therefore drag the scroll view a bit), any backswipe
|
|
* navigation of a swipe gesture higher in the view hierarchy, should be
|
|
* rejected.
|
|
*/
|
|
/**
|
|
* Displays the scroll indicators momentarily.
|
|
*/
|
|
scrollResponderFlashScrollIndicators() {
|
|
}
|
|
/**
|
|
* This method should be used as the callback to onFocus in a TextInputs'
|
|
* parent view. Note that any module using this mixin needs to return
|
|
* the parent view's ref in getScrollViewRef() in order to use this method.
|
|
* @param {any} nodeHandle The TextInput node handle
|
|
* @param {number} additionalOffset The scroll view's top "contentInset".
|
|
* Default is 0.
|
|
* @param {bool} preventNegativeScrolling Whether to allow pulling the content
|
|
* down to make it meet the keyboard's top. Default is false.
|
|
*/
|
|
scrollResponderTextInputFocusError(e) {
|
|
console.error("Error measuring text field: ", e);
|
|
}
|
|
/**
|
|
* Warning, this may be called several times for a single keyboard opening.
|
|
* It's best to store the information in this method and then take any action
|
|
* at a later point (either in `keyboardDidShow` or other).
|
|
*
|
|
* Here's the order that events occur in:
|
|
* - focus
|
|
* - willShow {startCoordinates, endCoordinates} several times
|
|
* - didShow several times
|
|
* - blur
|
|
* - willHide {startCoordinates, endCoordinates} several times
|
|
* - didHide several times
|
|
*
|
|
* The `ScrollResponder` providesModule callbacks for each of these events.
|
|
* Even though any user could have easily listened to keyboard events
|
|
* themselves, using these `props` callbacks ensures that ordering of events
|
|
* is consistent - and not dependent on the order that the keyboard events are
|
|
* subscribed to. This matters when telling the scroll view to scroll to where
|
|
* the keyboard is headed - the scroll responder better have been notified of
|
|
* the keyboard destination before being instructed to scroll to where the
|
|
* keyboard will be. Stick to the `ScrollResponder` callbacks, and everything
|
|
* will work.
|
|
*
|
|
* WARNING: These callbacks will fire even if a keyboard is displayed in a
|
|
* different navigation pane. Filter out the events to determine if they are
|
|
* relevant to you. (For example, only if you receive these callbacks after
|
|
* you had explicitly focused a node etc).
|
|
*/
|
|
render() {
|
|
var _this$props = this.props, contentContainerStyle = _this$props.contentContainerStyle, horizontal = _this$props.horizontal, onContentSizeChange = _this$props.onContentSizeChange, refreshControl = _this$props.refreshControl, stickyHeaderIndices = _this$props.stickyHeaderIndices, pagingEnabled = _this$props.pagingEnabled, forwardedRef = _this$props.forwardedRef, keyboardDismissMode = _this$props.keyboardDismissMode, onScroll = _this$props.onScroll, centerContent = _this$props.centerContent, other = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
|
|
if (process.env.NODE_ENV !== "production" && this.props.style) {
|
|
var style = _StyleSheet.default.flatten(this.props.style);
|
|
var childLayoutProps = ["alignItems", "justifyContent"].filter((prop) => style && style[prop] !== void 0);
|
|
(0, _invariant.default)(childLayoutProps.length === 0, "ScrollView child layout (" + JSON.stringify(childLayoutProps) + ") must be applied through the contentContainerStyle prop.");
|
|
}
|
|
var contentSizeChangeProps = {};
|
|
if (onContentSizeChange) {
|
|
contentSizeChangeProps = {
|
|
onLayout: this._handleContentOnLayout
|
|
};
|
|
}
|
|
var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);
|
|
var children = hasStickyHeaderIndices || pagingEnabled ? _react.default.Children.map(this.props.children, (child, i) => {
|
|
var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;
|
|
if (child != null && (isSticky || pagingEnabled)) {
|
|
return /* @__PURE__ */ _react.default.createElement(_View.default, {
|
|
style: [isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild]
|
|
}, child);
|
|
} else {
|
|
return child;
|
|
}
|
|
}) : this.props.children;
|
|
var contentContainer = /* @__PURE__ */ _react.default.createElement(_View.default, (0, _extends2.default)({}, contentSizeChangeProps, {
|
|
children,
|
|
collapsable: false,
|
|
ref: this._setInnerViewRef,
|
|
style: [horizontal && styles.contentContainerHorizontal, centerContent && styles.contentContainerCenterContent, contentContainerStyle]
|
|
}));
|
|
var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
|
|
var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;
|
|
var props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, other), {}, {
|
|
style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],
|
|
onTouchStart: this.scrollResponderHandleTouchStart,
|
|
onTouchMove: this.scrollResponderHandleTouchMove,
|
|
onTouchEnd: this.scrollResponderHandleTouchEnd,
|
|
onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,
|
|
onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,
|
|
onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,
|
|
onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,
|
|
onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,
|
|
onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,
|
|
onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,
|
|
onScroll: this._handleScroll,
|
|
onResponderGrant: this.scrollResponderHandleResponderGrant,
|
|
onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,
|
|
onResponderTerminate: this.scrollResponderHandleTerminate,
|
|
onResponderRelease: this.scrollResponderHandleResponderRelease,
|
|
onResponderReject: this.scrollResponderHandleResponderReject
|
|
});
|
|
var ScrollViewClass = _ScrollViewBase.default;
|
|
(0, _invariant.default)(ScrollViewClass !== void 0, "ScrollViewClass must not be undefined");
|
|
var scrollView = /* @__PURE__ */ _react.default.createElement(ScrollViewClass, (0, _extends2.default)({}, props, {
|
|
ref: this._setScrollNodeRef
|
|
}), contentContainer);
|
|
if (refreshControl) {
|
|
return /* @__PURE__ */ _react.default.cloneElement(refreshControl, {
|
|
style: props.style
|
|
}, scrollView);
|
|
}
|
|
return scrollView;
|
|
}
|
|
};
|
|
__name(_ScrollView, "ScrollView");
|
|
var ScrollView4 = _ScrollView;
|
|
var commonStyle = {
|
|
flexGrow: 1,
|
|
flexShrink: 1,
|
|
// Enable hardware compositing in modern browsers.
|
|
// Creates a new layer with its own backing surface that can significantly
|
|
// improve scroll performance.
|
|
transform: "translateZ(0)",
|
|
// iOS native scrolling
|
|
WebkitOverflowScrolling: "touch"
|
|
};
|
|
var styles = _StyleSheet.default.create({
|
|
baseVertical: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, commonStyle), {}, {
|
|
flexDirection: "column",
|
|
overflowX: "hidden",
|
|
overflowY: "auto"
|
|
}),
|
|
baseHorizontal: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, commonStyle), {}, {
|
|
flexDirection: "row",
|
|
overflowX: "auto",
|
|
overflowY: "hidden"
|
|
}),
|
|
contentContainerHorizontal: {
|
|
flexDirection: "row"
|
|
},
|
|
contentContainerCenterContent: {
|
|
justifyContent: "center",
|
|
flexGrow: 1
|
|
},
|
|
stickyHeader: {
|
|
position: "sticky",
|
|
top: 0,
|
|
zIndex: 10
|
|
},
|
|
pagingEnabledHorizontal: {
|
|
scrollSnapType: "x mandatory"
|
|
},
|
|
pagingEnabledVertical: {
|
|
scrollSnapType: "y mandatory"
|
|
},
|
|
pagingEnabledChild: {
|
|
scrollSnapAlign: "start"
|
|
}
|
|
});
|
|
var ForwardedScrollView = /* @__PURE__ */ _react.default.forwardRef((props, forwardedRef) => {
|
|
return /* @__PURE__ */ _react.default.createElement(ScrollView4, (0, _extends2.default)({}, props, {
|
|
forwardedRef
|
|
}));
|
|
});
|
|
ForwardedScrollView.displayName = "ScrollView";
|
|
var _default = ForwardedScrollView;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/InteractionManager/TaskQueue.js
|
|
var require_TaskQueue = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/InteractionManager/TaskQueue.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _TaskQueue = class _TaskQueue {
|
|
constructor(_ref) {
|
|
var onMoreTasks = _ref.onMoreTasks;
|
|
this._onMoreTasks = onMoreTasks;
|
|
this._queueStack = [{
|
|
tasks: [],
|
|
popable: true
|
|
}];
|
|
}
|
|
enqueue(task) {
|
|
this._getCurrentQueue().push(task);
|
|
}
|
|
enqueueTasks(tasks) {
|
|
tasks.forEach((task) => this.enqueue(task));
|
|
}
|
|
cancelTasks(tasksToCancel) {
|
|
this._queueStack = this._queueStack.map((queue) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, queue), {}, {
|
|
tasks: queue.tasks.filter((task) => tasksToCancel.indexOf(task) === -1)
|
|
})).filter((queue, idx) => queue.tasks.length > 0 || idx === 0);
|
|
}
|
|
hasTasksToProcess() {
|
|
return this._getCurrentQueue().length > 0;
|
|
}
|
|
/**
|
|
* Executes the next task in the queue.
|
|
*/
|
|
processNext() {
|
|
var queue = this._getCurrentQueue();
|
|
if (queue.length) {
|
|
var task = queue.shift();
|
|
try {
|
|
if (typeof task === "object" && task.gen) {
|
|
this._genPromise(task);
|
|
} else if (typeof task === "object" && task.run) {
|
|
task.run();
|
|
} else {
|
|
(0, _invariant.default)(typeof task === "function", "Expected Function, SimpleTask, or PromiseTask, but got:\n" + JSON.stringify(task, null, 2));
|
|
task();
|
|
}
|
|
} catch (e) {
|
|
e.message = "TaskQueue: Error with task " + (task.name || "") + ": " + e.message;
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
_getCurrentQueue() {
|
|
var stackIdx = this._queueStack.length - 1;
|
|
var queue = this._queueStack[stackIdx];
|
|
if (queue.popable && queue.tasks.length === 0 && stackIdx > 0) {
|
|
this._queueStack.pop();
|
|
return this._getCurrentQueue();
|
|
} else {
|
|
return queue.tasks;
|
|
}
|
|
}
|
|
_genPromise(task) {
|
|
var length = this._queueStack.push({
|
|
tasks: [],
|
|
popable: false
|
|
});
|
|
var stackIdx = length - 1;
|
|
var stackItem = this._queueStack[stackIdx];
|
|
task.gen().then(() => {
|
|
stackItem.popable = true;
|
|
this.hasTasksToProcess() && this._onMoreTasks();
|
|
}).catch((ex) => {
|
|
setTimeout(() => {
|
|
ex.message = "TaskQueue: Error resolving Promise in task " + task.name + ": " + ex.message;
|
|
throw ex;
|
|
}, 0);
|
|
});
|
|
}
|
|
};
|
|
__name(_TaskQueue, "TaskQueue");
|
|
var TaskQueue = _TaskQueue;
|
|
var _default = TaskQueue;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js
|
|
var require_EventEmitter = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/vendor/emitter/EventEmitter.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _EventEmitter = class _EventEmitter {
|
|
constructor() {
|
|
this._registry = {};
|
|
}
|
|
/**
|
|
* Registers a listener that is called when the supplied event is emitted.
|
|
* Returns a subscription that has a `remove` method to undo registration.
|
|
*/
|
|
addListener(eventType, listener, context) {
|
|
var registrations = allocate(this._registry, eventType);
|
|
var registration = {
|
|
context,
|
|
listener,
|
|
remove() {
|
|
registrations.delete(registration);
|
|
}
|
|
};
|
|
registrations.add(registration);
|
|
return registration;
|
|
}
|
|
/**
|
|
* Emits the supplied event. Additional arguments supplied to `emit` will be
|
|
* passed through to each of the registered listeners.
|
|
*
|
|
* If a listener modifies the listeners registered for the same event, those
|
|
* changes will not be reflected in the current invocation of `emit`.
|
|
*/
|
|
emit(eventType) {
|
|
var registrations = this._registry[eventType];
|
|
if (registrations != null) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
for (var _i = 0, _arr = [...registrations]; _i < _arr.length; _i++) {
|
|
var registration = _arr[_i];
|
|
registration.listener.apply(registration.context, args);
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Removes all registered listeners.
|
|
*/
|
|
removeAllListeners(eventType) {
|
|
if (eventType == null) {
|
|
this._registry = {};
|
|
} else {
|
|
delete this._registry[eventType];
|
|
}
|
|
}
|
|
/**
|
|
* Returns the number of registered listeners for the supplied event.
|
|
*/
|
|
listenerCount(eventType) {
|
|
var registrations = this._registry[eventType];
|
|
return registrations == null ? 0 : registrations.size;
|
|
}
|
|
};
|
|
__name(_EventEmitter, "EventEmitter");
|
|
var EventEmitter = _EventEmitter;
|
|
exports2.default = EventEmitter;
|
|
function allocate(registry, eventType) {
|
|
var registrations = registry[eventType];
|
|
if (registrations == null) {
|
|
registrations = /* @__PURE__ */ new Set();
|
|
registry[eventType] = registrations;
|
|
}
|
|
return registrations;
|
|
}
|
|
__name(allocate, "allocate");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/requestIdleCallback/index.js
|
|
var require_requestIdleCallback = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/requestIdleCallback/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = exports2.cancelIdleCallback = void 0;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var _requestIdleCallback = /* @__PURE__ */ __name(function _requestIdleCallback2(cb, options) {
|
|
return setTimeout(() => {
|
|
var start = Date.now();
|
|
cb({
|
|
didTimeout: false,
|
|
timeRemaining() {
|
|
return Math.max(0, 50 - (Date.now() - start));
|
|
}
|
|
});
|
|
}, 1);
|
|
}, "_requestIdleCallback");
|
|
var _cancelIdleCallback = /* @__PURE__ */ __name(function _cancelIdleCallback2(id) {
|
|
clearTimeout(id);
|
|
}, "_cancelIdleCallback");
|
|
var isSupported = _canUseDom.default && typeof window.requestIdleCallback !== "undefined";
|
|
var requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;
|
|
var cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;
|
|
exports2.cancelIdleCallback = cancelIdleCallback;
|
|
var _default = requestIdleCallback;
|
|
exports2.default = _default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/InteractionManager/index.js
|
|
var require_InteractionManager = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/InteractionManager/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _TaskQueue = _interopRequireDefault(require_TaskQueue());
|
|
var _EventEmitter = _interopRequireDefault(require_EventEmitter());
|
|
var _requestIdleCallback = _interopRequireDefault(require_requestIdleCallback());
|
|
var _emitter = new _EventEmitter.default();
|
|
var InteractionManager = {
|
|
Events: {
|
|
interactionStart: "interactionStart",
|
|
interactionComplete: "interactionComplete"
|
|
},
|
|
/**
|
|
* Schedule a function to run after all interactions have completed.
|
|
*/
|
|
runAfterInteractions(task) {
|
|
var tasks = [];
|
|
var promise = new Promise((resolve) => {
|
|
_scheduleUpdate();
|
|
if (task) {
|
|
tasks.push(task);
|
|
}
|
|
tasks.push({
|
|
run: resolve,
|
|
name: "resolve " + (task && task.name || "?")
|
|
});
|
|
_taskQueue.enqueueTasks(tasks);
|
|
});
|
|
return {
|
|
then: promise.then.bind(promise),
|
|
done: promise.then.bind(promise),
|
|
cancel: () => {
|
|
_taskQueue.cancelTasks(tasks);
|
|
}
|
|
};
|
|
},
|
|
/**
|
|
* Notify manager that an interaction has started.
|
|
*/
|
|
createInteractionHandle() {
|
|
_scheduleUpdate();
|
|
var handle = ++_inc;
|
|
_addInteractionSet.add(handle);
|
|
return handle;
|
|
},
|
|
/**
|
|
* Notify manager that an interaction has completed.
|
|
*/
|
|
clearInteractionHandle(handle) {
|
|
(0, _invariant.default)(!!handle, "Must provide a handle to clear.");
|
|
_scheduleUpdate();
|
|
_addInteractionSet.delete(handle);
|
|
_deleteInteractionSet.add(handle);
|
|
},
|
|
addListener: _emitter.addListener.bind(_emitter),
|
|
/**
|
|
*
|
|
* @param deadline
|
|
*/
|
|
setDeadline(deadline) {
|
|
_deadline = deadline;
|
|
}
|
|
};
|
|
var _interactionSet = /* @__PURE__ */ new Set();
|
|
var _addInteractionSet = /* @__PURE__ */ new Set();
|
|
var _deleteInteractionSet = /* @__PURE__ */ new Set();
|
|
var _taskQueue = new _TaskQueue.default({
|
|
onMoreTasks: _scheduleUpdate
|
|
});
|
|
var _nextUpdateHandle = 0;
|
|
var _inc = 0;
|
|
var _deadline = -1;
|
|
function _scheduleUpdate() {
|
|
if (!_nextUpdateHandle) {
|
|
if (_deadline > 0) {
|
|
_nextUpdateHandle = setTimeout(_processUpdate);
|
|
} else {
|
|
_nextUpdateHandle = (0, _requestIdleCallback.default)(_processUpdate);
|
|
}
|
|
}
|
|
}
|
|
__name(_scheduleUpdate, "_scheduleUpdate");
|
|
function _processUpdate() {
|
|
_nextUpdateHandle = 0;
|
|
var interactionCount = _interactionSet.size;
|
|
_addInteractionSet.forEach((handle) => _interactionSet.add(handle));
|
|
_deleteInteractionSet.forEach((handle) => _interactionSet.delete(handle));
|
|
var nextInteractionCount = _interactionSet.size;
|
|
if (interactionCount !== 0 && nextInteractionCount === 0) {
|
|
_emitter.emit(InteractionManager.Events.interactionComplete);
|
|
} else if (interactionCount === 0 && nextInteractionCount !== 0) {
|
|
_emitter.emit(InteractionManager.Events.interactionStart);
|
|
}
|
|
if (nextInteractionCount === 0) {
|
|
var begin = Date.now();
|
|
while (_taskQueue.hasTasksToProcess()) {
|
|
_taskQueue.processNext();
|
|
if (_deadline > 0 && Date.now() - begin >= _deadline) {
|
|
_scheduleUpdate();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
_addInteractionSet.clear();
|
|
_deleteInteractionSet.clear();
|
|
}
|
|
__name(_processUpdate, "_processUpdate");
|
|
var _default = InteractionManager;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Batchinator/index.js
|
|
var require_Batchinator = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Batchinator/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _InteractionManager = _interopRequireDefault(require_InteractionManager());
|
|
var _Batchinator = class _Batchinator {
|
|
constructor(callback, delayMS) {
|
|
this._delay = delayMS;
|
|
this._callback = callback;
|
|
}
|
|
/*
|
|
* Cleanup any pending tasks.
|
|
*
|
|
* By default, if there is a pending task the callback is run immediately. Set the option abort to
|
|
* true to not call the callback if it was pending.
|
|
*/
|
|
dispose(options) {
|
|
if (options === void 0) {
|
|
options = {
|
|
abort: false
|
|
};
|
|
}
|
|
if (this._taskHandle) {
|
|
this._taskHandle.cancel();
|
|
if (!options.abort) {
|
|
this._callback();
|
|
}
|
|
this._taskHandle = null;
|
|
}
|
|
}
|
|
schedule() {
|
|
if (this._taskHandle) {
|
|
return;
|
|
}
|
|
var timeoutHandle = setTimeout(() => {
|
|
this._taskHandle = _InteractionManager.default.runAfterInteractions(() => {
|
|
this._taskHandle = null;
|
|
this._callback();
|
|
});
|
|
}, this._delay);
|
|
this._taskHandle = {
|
|
cancel: () => clearTimeout(timeoutHandle)
|
|
};
|
|
}
|
|
};
|
|
__name(_Batchinator, "Batchinator");
|
|
var Batchinator = _Batchinator;
|
|
var _default = Batchinator;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/clamp.js
|
|
var require_clamp2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/clamp.js"(exports2, module2) {
|
|
"use strict";
|
|
function clamp3(min2, value, max2) {
|
|
if (value < min2) {
|
|
return min2;
|
|
}
|
|
if (value > max2) {
|
|
return max2;
|
|
}
|
|
return value;
|
|
}
|
|
__name(clamp3, "clamp");
|
|
module2.exports = clamp3;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/infoLog/index.js
|
|
var require_infoLog = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/infoLog/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
function infoLog() {
|
|
return console.log(...arguments);
|
|
}
|
|
__name(infoLog, "infoLog");
|
|
var _default = infoLog;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js
|
|
var require_CellRenderMask = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/CellRenderMask.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.CellRenderMask = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _CellRenderMask = class _CellRenderMask {
|
|
constructor(numCells) {
|
|
(0, _invariant.default)(numCells >= 0, "CellRenderMask must contain a non-negative number os cells");
|
|
this._numCells = numCells;
|
|
if (numCells === 0) {
|
|
this._regions = [];
|
|
} else {
|
|
this._regions = [{
|
|
first: 0,
|
|
last: numCells - 1,
|
|
isSpacer: true
|
|
}];
|
|
}
|
|
}
|
|
enumerateRegions() {
|
|
return this._regions;
|
|
}
|
|
addCells(cells) {
|
|
(0, _invariant.default)(cells.first >= 0 && cells.first < this._numCells && cells.last >= -1 && cells.last < this._numCells && cells.last >= cells.first - 1, "CellRenderMask.addCells called with invalid cell range");
|
|
if (cells.last < cells.first) {
|
|
return;
|
|
}
|
|
var _this$_findRegion = this._findRegion(cells.first), firstIntersect = _this$_findRegion[0], firstIntersectIdx = _this$_findRegion[1];
|
|
var _this$_findRegion2 = this._findRegion(cells.last), lastIntersect = _this$_findRegion2[0], lastIntersectIdx = _this$_findRegion2[1];
|
|
if (firstIntersectIdx === lastIntersectIdx && !firstIntersect.isSpacer) {
|
|
return;
|
|
}
|
|
var newLeadRegion = [];
|
|
var newTailRegion = [];
|
|
var newMainRegion = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, cells), {}, {
|
|
isSpacer: false
|
|
});
|
|
if (firstIntersect.first < newMainRegion.first) {
|
|
if (firstIntersect.isSpacer) {
|
|
newLeadRegion.push({
|
|
first: firstIntersect.first,
|
|
last: newMainRegion.first - 1,
|
|
isSpacer: true
|
|
});
|
|
} else {
|
|
newMainRegion.first = firstIntersect.first;
|
|
}
|
|
}
|
|
if (lastIntersect.last > newMainRegion.last) {
|
|
if (lastIntersect.isSpacer) {
|
|
newTailRegion.push({
|
|
first: newMainRegion.last + 1,
|
|
last: lastIntersect.last,
|
|
isSpacer: true
|
|
});
|
|
} else {
|
|
newMainRegion.last = lastIntersect.last;
|
|
}
|
|
}
|
|
var replacementRegions = [...newLeadRegion, newMainRegion, ...newTailRegion];
|
|
var numRegionsToDelete = lastIntersectIdx - firstIntersectIdx + 1;
|
|
this._regions.splice(firstIntersectIdx, numRegionsToDelete, ...replacementRegions);
|
|
}
|
|
numCells() {
|
|
return this._numCells;
|
|
}
|
|
equals(other) {
|
|
return this._numCells === other._numCells && this._regions.length === other._regions.length && this._regions.every((region, i) => region.first === other._regions[i].first && region.last === other._regions[i].last && region.isSpacer === other._regions[i].isSpacer);
|
|
}
|
|
_findRegion(cellIdx) {
|
|
var firstIdx = 0;
|
|
var lastIdx = this._regions.length - 1;
|
|
while (firstIdx <= lastIdx) {
|
|
var middleIdx = Math.floor((firstIdx + lastIdx) / 2);
|
|
var middleRegion = this._regions[middleIdx];
|
|
if (cellIdx >= middleRegion.first && cellIdx <= middleRegion.last) {
|
|
return [middleRegion, middleIdx];
|
|
} else if (cellIdx < middleRegion.first) {
|
|
lastIdx = middleIdx - 1;
|
|
} else if (cellIdx > middleRegion.last) {
|
|
firstIdx = middleIdx + 1;
|
|
}
|
|
}
|
|
(0, _invariant.default)(false, "A region was not found containing cellIdx " + cellIdx);
|
|
}
|
|
};
|
|
__name(_CellRenderMask, "CellRenderMask");
|
|
var CellRenderMask = _CellRenderMask;
|
|
exports2.CellRenderMask = CellRenderMask;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js
|
|
var require_ChildListCollection = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/ChildListCollection.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _ChildListCollection = class _ChildListCollection {
|
|
constructor() {
|
|
this._cellKeyToChildren = /* @__PURE__ */ new Map();
|
|
this._childrenToCellKey = /* @__PURE__ */ new Map();
|
|
}
|
|
add(list, cellKey) {
|
|
var _this$_cellKeyToChild;
|
|
(0, _invariant.default)(!this._childrenToCellKey.has(list), "Trying to add already present child list");
|
|
var cellLists = (_this$_cellKeyToChild = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild !== void 0 ? _this$_cellKeyToChild : /* @__PURE__ */ new Set();
|
|
cellLists.add(list);
|
|
this._cellKeyToChildren.set(cellKey, cellLists);
|
|
this._childrenToCellKey.set(list, cellKey);
|
|
}
|
|
remove(list) {
|
|
var cellKey = this._childrenToCellKey.get(list);
|
|
(0, _invariant.default)(cellKey != null, "Trying to remove non-present child list");
|
|
this._childrenToCellKey.delete(list);
|
|
var cellLists = this._cellKeyToChildren.get(cellKey);
|
|
(0, _invariant.default)(cellLists, "_cellKeyToChildren should contain cellKey");
|
|
cellLists.delete(list);
|
|
if (cellLists.size === 0) {
|
|
this._cellKeyToChildren.delete(cellKey);
|
|
}
|
|
}
|
|
forEach(fn) {
|
|
for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this._cellKeyToChildren.values()), _step; !(_step = _iterator()).done; ) {
|
|
var listSet = _step.value;
|
|
for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step2; !(_step2 = _iterator2()).done; ) {
|
|
var list = _step2.value;
|
|
fn(list);
|
|
}
|
|
}
|
|
}
|
|
forEachInCell(cellKey, fn) {
|
|
var _this$_cellKeyToChild2;
|
|
var listSet = (_this$_cellKeyToChild2 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild2 !== void 0 ? _this$_cellKeyToChild2 : [];
|
|
for (var _iterator3 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step3; !(_step3 = _iterator3()).done; ) {
|
|
var list = _step3.value;
|
|
fn(list);
|
|
}
|
|
}
|
|
anyInCell(cellKey, fn) {
|
|
var _this$_cellKeyToChild3;
|
|
var listSet = (_this$_cellKeyToChild3 = this._cellKeyToChildren.get(cellKey)) !== null && _this$_cellKeyToChild3 !== void 0 ? _this$_cellKeyToChild3 : [];
|
|
for (var _iterator4 = (0, _createForOfIteratorHelperLoose2.default)(listSet), _step4; !(_step4 = _iterator4()).done; ) {
|
|
var list = _step4.value;
|
|
if (fn(list)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
size() {
|
|
return this._childrenToCellKey.size;
|
|
}
|
|
};
|
|
__name(_ChildListCollection, "ChildListCollection");
|
|
var ChildListCollection = _ChildListCollection;
|
|
exports2.default = ChildListCollection;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/FillRateHelper/index.js
|
|
var require_FillRateHelper = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/FillRateHelper/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _Info = class _Info {
|
|
constructor() {
|
|
this.any_blank_count = 0;
|
|
this.any_blank_ms = 0;
|
|
this.any_blank_speed_sum = 0;
|
|
this.mostly_blank_count = 0;
|
|
this.mostly_blank_ms = 0;
|
|
this.pixels_blank = 0;
|
|
this.pixels_sampled = 0;
|
|
this.pixels_scrolled = 0;
|
|
this.total_time_spent = 0;
|
|
this.sample_count = 0;
|
|
}
|
|
};
|
|
__name(_Info, "Info");
|
|
var Info = _Info;
|
|
var DEBUG = false;
|
|
var _listeners = [];
|
|
var _minSampleCount = 10;
|
|
var _sampleRate = DEBUG ? 1 : null;
|
|
var _FillRateHelper = class _FillRateHelper {
|
|
static addListener(callback) {
|
|
if (_sampleRate === null) {
|
|
console.warn("Call `FillRateHelper.setSampleRate` before `addListener`.");
|
|
}
|
|
_listeners.push(callback);
|
|
return {
|
|
remove: () => {
|
|
_listeners = _listeners.filter((listener) => callback !== listener);
|
|
}
|
|
};
|
|
}
|
|
static setSampleRate(sampleRate) {
|
|
_sampleRate = sampleRate;
|
|
}
|
|
static setMinSampleCount(minSampleCount) {
|
|
_minSampleCount = minSampleCount;
|
|
}
|
|
constructor(getFrameMetrics) {
|
|
this._anyBlankStartTime = null;
|
|
this._enabled = false;
|
|
this._info = new Info();
|
|
this._mostlyBlankStartTime = null;
|
|
this._samplesStartTime = null;
|
|
this._getFrameMetrics = getFrameMetrics;
|
|
this._enabled = (_sampleRate || 0) > Math.random();
|
|
this._resetData();
|
|
}
|
|
activate() {
|
|
if (this._enabled && this._samplesStartTime == null) {
|
|
DEBUG && console.debug("FillRateHelper: activate");
|
|
this._samplesStartTime = global.performance.now();
|
|
}
|
|
}
|
|
deactivateAndFlush() {
|
|
if (!this._enabled) {
|
|
return;
|
|
}
|
|
var start = this._samplesStartTime;
|
|
if (start == null) {
|
|
DEBUG && console.debug("FillRateHelper: bail on deactivate with no start time");
|
|
return;
|
|
}
|
|
if (this._info.sample_count < _minSampleCount) {
|
|
this._resetData();
|
|
return;
|
|
}
|
|
var total_time_spent = global.performance.now() - start;
|
|
var info = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._info), {}, {
|
|
total_time_spent
|
|
});
|
|
if (DEBUG) {
|
|
var derived = {
|
|
avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,
|
|
avg_speed: this._info.pixels_scrolled / (total_time_spent / 1e3),
|
|
avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,
|
|
any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1e3 / 60),
|
|
any_blank_time_frac: this._info.any_blank_ms / total_time_spent,
|
|
mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1e3 / 60),
|
|
mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent
|
|
};
|
|
for (var key in derived) {
|
|
derived[key] = Math.round(1e3 * derived[key]) / 1e3;
|
|
}
|
|
console.debug("FillRateHelper deactivateAndFlush: ", {
|
|
derived,
|
|
info
|
|
});
|
|
}
|
|
_listeners.forEach((listener) => listener(info));
|
|
this._resetData();
|
|
}
|
|
computeBlankness(props, cellsAroundViewport, scrollMetrics) {
|
|
if (!this._enabled || props.getItemCount(props.data) === 0 || cellsAroundViewport.last < cellsAroundViewport.first || this._samplesStartTime == null) {
|
|
return 0;
|
|
}
|
|
var dOffset = scrollMetrics.dOffset, offset4 = scrollMetrics.offset, velocity = scrollMetrics.velocity, visibleLength = scrollMetrics.visibleLength;
|
|
this._info.sample_count++;
|
|
this._info.pixels_sampled += Math.round(visibleLength);
|
|
this._info.pixels_scrolled += Math.round(Math.abs(dOffset));
|
|
var scrollSpeed = Math.round(Math.abs(velocity) * 1e3);
|
|
var now = global.performance.now();
|
|
if (this._anyBlankStartTime != null) {
|
|
this._info.any_blank_ms += now - this._anyBlankStartTime;
|
|
}
|
|
this._anyBlankStartTime = null;
|
|
if (this._mostlyBlankStartTime != null) {
|
|
this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;
|
|
}
|
|
this._mostlyBlankStartTime = null;
|
|
var blankTop = 0;
|
|
var first = cellsAroundViewport.first;
|
|
var firstFrame = this._getFrameMetrics(first, props);
|
|
while (first <= cellsAroundViewport.last && (!firstFrame || !firstFrame.inLayout)) {
|
|
firstFrame = this._getFrameMetrics(first, props);
|
|
first++;
|
|
}
|
|
if (firstFrame && first > 0) {
|
|
blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset4));
|
|
}
|
|
var blankBottom = 0;
|
|
var last = cellsAroundViewport.last;
|
|
var lastFrame = this._getFrameMetrics(last, props);
|
|
while (last >= cellsAroundViewport.first && (!lastFrame || !lastFrame.inLayout)) {
|
|
lastFrame = this._getFrameMetrics(last, props);
|
|
last--;
|
|
}
|
|
if (lastFrame && last < props.getItemCount(props.data) - 1) {
|
|
var bottomEdge = lastFrame.offset + lastFrame.length;
|
|
blankBottom = Math.min(visibleLength, Math.max(0, offset4 + visibleLength - bottomEdge));
|
|
}
|
|
var pixels_blank = Math.round(blankTop + blankBottom);
|
|
var blankness = pixels_blank / visibleLength;
|
|
if (blankness > 0) {
|
|
this._anyBlankStartTime = now;
|
|
this._info.any_blank_speed_sum += scrollSpeed;
|
|
this._info.any_blank_count++;
|
|
this._info.pixels_blank += pixels_blank;
|
|
if (blankness > 0.5) {
|
|
this._mostlyBlankStartTime = now;
|
|
this._info.mostly_blank_count++;
|
|
}
|
|
} else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {
|
|
this.deactivateAndFlush();
|
|
}
|
|
return blankness;
|
|
}
|
|
enabled() {
|
|
return this._enabled;
|
|
}
|
|
_resetData() {
|
|
this._anyBlankStartTime = null;
|
|
this._info = new Info();
|
|
this._mostlyBlankStartTime = null;
|
|
this._samplesStartTime = null;
|
|
}
|
|
};
|
|
__name(_FillRateHelper, "FillRateHelper");
|
|
var FillRateHelper = _FillRateHelper;
|
|
var _default = FillRateHelper;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js
|
|
var require_StateSafePureComponent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/StateSafePureComponent.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StateSafePureComponent = class _StateSafePureComponent extends React44.PureComponent {
|
|
constructor(props) {
|
|
super(props);
|
|
this._inAsyncStateUpdate = false;
|
|
this._installSetStateHooks();
|
|
}
|
|
setState(partialState, callback) {
|
|
if (typeof partialState === "function") {
|
|
super.setState((state, props) => {
|
|
this._inAsyncStateUpdate = true;
|
|
var ret;
|
|
try {
|
|
ret = partialState(state, props);
|
|
} catch (err) {
|
|
throw err;
|
|
} finally {
|
|
this._inAsyncStateUpdate = false;
|
|
}
|
|
return ret;
|
|
}, callback);
|
|
} else {
|
|
super.setState(partialState, callback);
|
|
}
|
|
}
|
|
_installSetStateHooks() {
|
|
var that = this;
|
|
var props = this.props, state = this.state;
|
|
Object.defineProperty(this, "props", {
|
|
get() {
|
|
(0, _invariant.default)(!that._inAsyncStateUpdate, '"this.props" should not be accessed during state updates');
|
|
return props;
|
|
},
|
|
set(newProps) {
|
|
props = newProps;
|
|
}
|
|
});
|
|
Object.defineProperty(this, "state", {
|
|
get() {
|
|
(0, _invariant.default)(!that._inAsyncStateUpdate, '"this.state" should not be acceessed during state updates');
|
|
return state;
|
|
},
|
|
set(newState) {
|
|
state = newState;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
__name(_StateSafePureComponent, "StateSafePureComponent");
|
|
var StateSafePureComponent = _StateSafePureComponent;
|
|
exports2.default = StateSafePureComponent;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/ViewabilityHelper/index.js
|
|
var require_ViewabilityHelper = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/ViewabilityHelper/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _ViewabilityHelper = class _ViewabilityHelper {
|
|
constructor(config2) {
|
|
if (config2 === void 0) {
|
|
config2 = {
|
|
viewAreaCoveragePercentThreshold: 0
|
|
};
|
|
}
|
|
this._hasInteracted = false;
|
|
this._timers = /* @__PURE__ */ new Set();
|
|
this._viewableIndices = [];
|
|
this._viewableItems = /* @__PURE__ */ new Map();
|
|
this._config = config2;
|
|
}
|
|
/**
|
|
* Cleanup, e.g. on unmount. Clears any pending timers.
|
|
*/
|
|
dispose() {
|
|
this._timers.forEach(clearTimeout);
|
|
}
|
|
/**
|
|
* Determines which items are viewable based on the current metrics and config.
|
|
*/
|
|
computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {
|
|
var itemCount = props.getItemCount(props.data);
|
|
var _this$_config = this._config, itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold, viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;
|
|
var viewAreaMode = viewAreaCoveragePercentThreshold != null;
|
|
var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;
|
|
(0, _invariant.default)(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), "Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold");
|
|
var viewableIndices = [];
|
|
if (itemCount === 0) {
|
|
return viewableIndices;
|
|
}
|
|
var firstVisible = -1;
|
|
var _ref = renderRange || {
|
|
first: 0,
|
|
last: itemCount - 1
|
|
}, first = _ref.first, last = _ref.last;
|
|
if (last >= itemCount) {
|
|
console.warn("Invalid render range computing viewability " + JSON.stringify({
|
|
renderRange,
|
|
itemCount
|
|
}));
|
|
return [];
|
|
}
|
|
for (var idx = first; idx <= last; idx++) {
|
|
var metrics = getFrameMetrics(idx, props);
|
|
if (!metrics) {
|
|
continue;
|
|
}
|
|
var top = metrics.offset - scrollOffset;
|
|
var bottom = top + metrics.length;
|
|
if (top < viewportHeight && bottom > 0) {
|
|
firstVisible = idx;
|
|
if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {
|
|
viewableIndices.push(idx);
|
|
}
|
|
} else if (firstVisible >= 0) {
|
|
break;
|
|
}
|
|
}
|
|
return viewableIndices;
|
|
}
|
|
/**
|
|
* Figures out which items are viewable and how that has changed from before and calls
|
|
* `onViewableItemsChanged` as appropriate.
|
|
*/
|
|
onUpdate(props, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {
|
|
var itemCount = props.getItemCount(props.data);
|
|
if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0, props)) {
|
|
return;
|
|
}
|
|
var viewableIndices = [];
|
|
if (itemCount) {
|
|
viewableIndices = this.computeViewableItems(props, scrollOffset, viewportHeight, getFrameMetrics, renderRange);
|
|
}
|
|
if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every((v, ii) => v === viewableIndices[ii])) {
|
|
return;
|
|
}
|
|
this._viewableIndices = viewableIndices;
|
|
if (this._config.minimumViewTime) {
|
|
var handle = setTimeout(() => {
|
|
this._timers.delete(handle);
|
|
this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);
|
|
}, this._config.minimumViewTime);
|
|
this._timers.add(handle);
|
|
} else {
|
|
this._onUpdateSync(props, viewableIndices, onViewableItemsChanged, createViewToken);
|
|
}
|
|
}
|
|
/**
|
|
* clean-up cached _viewableIndices to evaluate changed items on next update
|
|
*/
|
|
resetViewableIndices() {
|
|
this._viewableIndices = [];
|
|
}
|
|
/**
|
|
* Records that an interaction has happened even if there has been no scroll.
|
|
*/
|
|
recordInteraction() {
|
|
this._hasInteracted = true;
|
|
}
|
|
_onUpdateSync(props, viewableIndicesToCheck, onViewableItemsChanged, createViewToken) {
|
|
viewableIndicesToCheck = viewableIndicesToCheck.filter((ii) => this._viewableIndices.includes(ii));
|
|
var prevItems = this._viewableItems;
|
|
var nextItems = new Map(viewableIndicesToCheck.map((ii) => {
|
|
var viewable2 = createViewToken(ii, true, props);
|
|
return [viewable2.key, viewable2];
|
|
}));
|
|
var changed = [];
|
|
for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(nextItems), _step; !(_step = _iterator()).done; ) {
|
|
var _step$value = _step.value, key = _step$value[0], viewable = _step$value[1];
|
|
if (!prevItems.has(key)) {
|
|
changed.push(viewable);
|
|
}
|
|
}
|
|
for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(prevItems), _step2; !(_step2 = _iterator2()).done; ) {
|
|
var _step2$value = _step2.value, _key = _step2$value[0], _viewable = _step2$value[1];
|
|
if (!nextItems.has(_key)) {
|
|
changed.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, _viewable), {}, {
|
|
isViewable: false
|
|
}));
|
|
}
|
|
}
|
|
if (changed.length > 0) {
|
|
this._viewableItems = nextItems;
|
|
onViewableItemsChanged({
|
|
viewableItems: Array.from(nextItems.values()),
|
|
changed,
|
|
viewabilityConfig: this._config
|
|
});
|
|
}
|
|
}
|
|
};
|
|
__name(_ViewabilityHelper, "ViewabilityHelper");
|
|
var ViewabilityHelper = _ViewabilityHelper;
|
|
function _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {
|
|
if (_isEntirelyVisible(top, bottom, viewportHeight)) {
|
|
return true;
|
|
} else {
|
|
var pixels = _getPixelsVisible(top, bottom, viewportHeight);
|
|
var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);
|
|
return percent >= viewablePercentThreshold;
|
|
}
|
|
}
|
|
__name(_isViewable, "_isViewable");
|
|
function _getPixelsVisible(top, bottom, viewportHeight) {
|
|
var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);
|
|
return Math.max(0, visibleHeight);
|
|
}
|
|
__name(_getPixelsVisible, "_getPixelsVisible");
|
|
function _isEntirelyVisible(top, bottom, viewportHeight) {
|
|
return top >= 0 && bottom <= viewportHeight && bottom > top;
|
|
}
|
|
__name(_isEntirelyVisible, "_isEntirelyVisible");
|
|
var _default = ViewabilityHelper;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js
|
|
var require_VirtualizedListContext = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListContext.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.VirtualizedListCellContextProvider = VirtualizedListCellContextProvider;
|
|
exports2.VirtualizedListContext = void 0;
|
|
exports2.VirtualizedListContextProvider = VirtualizedListContextProvider;
|
|
exports2.VirtualizedListContextResetter = VirtualizedListContextResetter;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
var VirtualizedListContext = /* @__PURE__ */ React44.createContext(null);
|
|
exports2.VirtualizedListContext = VirtualizedListContext;
|
|
if (__DEV__) {
|
|
VirtualizedListContext.displayName = "VirtualizedListContext";
|
|
}
|
|
function VirtualizedListContextResetter(_ref) {
|
|
var children = _ref.children;
|
|
return /* @__PURE__ */ React44.createElement(VirtualizedListContext.Provider, {
|
|
value: null
|
|
}, children);
|
|
}
|
|
__name(VirtualizedListContextResetter, "VirtualizedListContextResetter");
|
|
function VirtualizedListContextProvider(_ref2) {
|
|
var children = _ref2.children, value = _ref2.value;
|
|
var context = (0, React44.useMemo)(() => ({
|
|
cellKey: null,
|
|
getScrollMetrics: value.getScrollMetrics,
|
|
horizontal: value.horizontal,
|
|
getOutermostParentListRef: value.getOutermostParentListRef,
|
|
registerAsNestedChild: value.registerAsNestedChild,
|
|
unregisterAsNestedChild: value.unregisterAsNestedChild
|
|
}), [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.registerAsNestedChild, value.unregisterAsNestedChild]);
|
|
return /* @__PURE__ */ React44.createElement(VirtualizedListContext.Provider, {
|
|
value: context
|
|
}, children);
|
|
}
|
|
__name(VirtualizedListContextProvider, "VirtualizedListContextProvider");
|
|
function VirtualizedListCellContextProvider(_ref3) {
|
|
var cellKey = _ref3.cellKey, children = _ref3.children;
|
|
var currContext = (0, React44.useContext)(VirtualizedListContext);
|
|
var context = (0, React44.useMemo)(() => currContext == null ? null : (0, _objectSpread2.default)((0, _objectSpread2.default)({}, currContext), {}, {
|
|
cellKey
|
|
}), [currContext, cellKey]);
|
|
return /* @__PURE__ */ React44.createElement(VirtualizedListContext.Provider, {
|
|
value: context
|
|
}, children);
|
|
}
|
|
__name(VirtualizedListCellContextProvider, "VirtualizedListCellContextProvider");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js
|
|
var require_VirtualizedListCellRenderer = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/VirtualizedListCellRenderer.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _VirtualizedListContext = require_VirtualizedListContext();
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _CellRenderer = class _CellRenderer extends React44.Component {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.state = {
|
|
separatorProps: {
|
|
highlighted: false,
|
|
leadingItem: this.props.item
|
|
}
|
|
};
|
|
this._separators = {
|
|
highlight: () => {
|
|
var _this$props = this.props, cellKey = _this$props.cellKey, prevCellKey = _this$props.prevCellKey;
|
|
this.props.onUpdateSeparators([cellKey, prevCellKey], {
|
|
highlighted: true
|
|
});
|
|
},
|
|
unhighlight: () => {
|
|
var _this$props2 = this.props, cellKey = _this$props2.cellKey, prevCellKey = _this$props2.prevCellKey;
|
|
this.props.onUpdateSeparators([cellKey, prevCellKey], {
|
|
highlighted: false
|
|
});
|
|
},
|
|
updateProps: (select, newProps) => {
|
|
var _this$props3 = this.props, cellKey = _this$props3.cellKey, prevCellKey = _this$props3.prevCellKey;
|
|
this.props.onUpdateSeparators([select === "leading" ? prevCellKey : cellKey], newProps);
|
|
}
|
|
};
|
|
this._onLayout = (nativeEvent) => {
|
|
this.props.onCellLayout && this.props.onCellLayout(nativeEvent, this.props.cellKey, this.props.index);
|
|
};
|
|
}
|
|
static getDerivedStateFromProps(props, prevState) {
|
|
return {
|
|
separatorProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState.separatorProps), {}, {
|
|
leadingItem: props.item
|
|
})
|
|
};
|
|
}
|
|
// TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not
|
|
// reused by SectionList and we can keep VirtualizedList simpler.
|
|
// $FlowFixMe[missing-local-annot]
|
|
updateSeparatorProps(newProps) {
|
|
this.setState((state) => ({
|
|
separatorProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state.separatorProps), newProps)
|
|
}));
|
|
}
|
|
componentWillUnmount() {
|
|
this.props.onUnmount(this.props.cellKey);
|
|
}
|
|
_renderElement(renderItem, ListItemComponent2, item, index3) {
|
|
if (renderItem && ListItemComponent2) {
|
|
console.warn("VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take precedence over renderItem.");
|
|
}
|
|
if (ListItemComponent2) {
|
|
return /* @__PURE__ */ React44.createElement(ListItemComponent2, {
|
|
item,
|
|
index: index3,
|
|
separators: this._separators
|
|
});
|
|
}
|
|
if (renderItem) {
|
|
return renderItem({
|
|
item,
|
|
index: index3,
|
|
separators: this._separators
|
|
});
|
|
}
|
|
(0, _invariant.default)(false, "VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.");
|
|
}
|
|
render() {
|
|
var _this$props4 = this.props, CellRendererComponent = _this$props4.CellRendererComponent, ItemSeparatorComponent = _this$props4.ItemSeparatorComponent, ListItemComponent2 = _this$props4.ListItemComponent, cellKey = _this$props4.cellKey, horizontal = _this$props4.horizontal, item = _this$props4.item, index3 = _this$props4.index, inversionStyle = _this$props4.inversionStyle, onCellFocusCapture = _this$props4.onCellFocusCapture, onCellLayout = _this$props4.onCellLayout, renderItem = _this$props4.renderItem;
|
|
var element = this._renderElement(renderItem, ListItemComponent2, item, index3);
|
|
var itemSeparator = /* @__PURE__ */ React44.isValidElement(ItemSeparatorComponent) ? (
|
|
// $FlowFixMe[incompatible-type]
|
|
ItemSeparatorComponent
|
|
) : (
|
|
// $FlowFixMe[incompatible-type]
|
|
ItemSeparatorComponent && /* @__PURE__ */ React44.createElement(ItemSeparatorComponent, this.state.separatorProps)
|
|
);
|
|
var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;
|
|
var result = !CellRendererComponent ? /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({
|
|
style: cellStyle,
|
|
onFocusCapture: onCellFocusCapture
|
|
}, onCellLayout && {
|
|
onLayout: this._onLayout
|
|
}), element, itemSeparator) : /* @__PURE__ */ React44.createElement(CellRendererComponent, (0, _extends2.default)({
|
|
cellKey,
|
|
index: index3,
|
|
item,
|
|
style: cellStyle,
|
|
onFocusCapture: onCellFocusCapture
|
|
}, onCellLayout && {
|
|
onLayout: this._onLayout
|
|
}), element, itemSeparator);
|
|
return /* @__PURE__ */ React44.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {
|
|
cellKey: this.props.cellKey
|
|
}, result);
|
|
}
|
|
};
|
|
__name(_CellRenderer, "CellRenderer");
|
|
var CellRenderer = _CellRenderer;
|
|
exports2.default = CellRenderer;
|
|
var styles = _StyleSheet.default.create({
|
|
row: {
|
|
flexDirection: "row"
|
|
},
|
|
rowReverse: {
|
|
flexDirection: "row-reverse"
|
|
},
|
|
columnReverse: {
|
|
flexDirection: "column-reverse"
|
|
}
|
|
});
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizeUtils/index.js
|
|
var require_VirtualizeUtils = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizeUtils/index.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.computeWindowedRenderLimits = computeWindowedRenderLimits;
|
|
exports2.elementsThatOverlapOffsets = elementsThatOverlapOffsets;
|
|
exports2.keyExtractor = keyExtractor;
|
|
exports2.newRangeCount = newRangeCount;
|
|
function elementsThatOverlapOffsets(offsets, props, getFrameMetrics, zoomScale) {
|
|
if (zoomScale === void 0) {
|
|
zoomScale = 1;
|
|
}
|
|
var itemCount = props.getItemCount(props.data);
|
|
var result = [];
|
|
for (var offsetIndex = 0; offsetIndex < offsets.length; offsetIndex++) {
|
|
var currentOffset = offsets[offsetIndex];
|
|
var left = 0;
|
|
var right = itemCount - 1;
|
|
while (left <= right) {
|
|
var mid = left + (right - left >>> 1);
|
|
var frame = getFrameMetrics(mid, props);
|
|
var scaledOffsetStart = frame.offset * zoomScale;
|
|
var scaledOffsetEnd = (frame.offset + frame.length) * zoomScale;
|
|
if (mid === 0 && currentOffset < scaledOffsetStart || mid !== 0 && currentOffset <= scaledOffsetStart) {
|
|
right = mid - 1;
|
|
} else if (currentOffset > scaledOffsetEnd) {
|
|
left = mid + 1;
|
|
} else {
|
|
result[offsetIndex] = mid;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
__name(elementsThatOverlapOffsets, "elementsThatOverlapOffsets");
|
|
function newRangeCount(prev, next) {
|
|
return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));
|
|
}
|
|
__name(newRangeCount, "newRangeCount");
|
|
function computeWindowedRenderLimits(props, maxToRenderPerBatch, windowSize, prev, getFrameMetricsApprox, scrollMetrics) {
|
|
var itemCount = props.getItemCount(props.data);
|
|
if (itemCount === 0) {
|
|
return {
|
|
first: 0,
|
|
last: -1
|
|
};
|
|
}
|
|
var offset4 = scrollMetrics.offset, velocity = scrollMetrics.velocity, visibleLength = scrollMetrics.visibleLength, _scrollMetrics$zoomSc = scrollMetrics.zoomScale, zoomScale = _scrollMetrics$zoomSc === void 0 ? 1 : _scrollMetrics$zoomSc;
|
|
var visibleBegin = Math.max(0, offset4);
|
|
var visibleEnd = visibleBegin + visibleLength;
|
|
var overscanLength = (windowSize - 1) * visibleLength;
|
|
var leadFactor = 0.5;
|
|
var fillPreference = velocity > 1 ? "after" : velocity < -1 ? "before" : "none";
|
|
var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);
|
|
var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);
|
|
var lastItemOffset = getFrameMetricsApprox(itemCount - 1, props).offset * zoomScale;
|
|
if (lastItemOffset < overscanBegin) {
|
|
return {
|
|
first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),
|
|
last: itemCount - 1
|
|
};
|
|
}
|
|
var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props, getFrameMetricsApprox, zoomScale), overscanFirst = _elementsThatOverlapO[0], first = _elementsThatOverlapO[1], last = _elementsThatOverlapO[2], overscanLast = _elementsThatOverlapO[3];
|
|
overscanFirst = overscanFirst == null ? 0 : overscanFirst;
|
|
first = first == null ? Math.max(0, overscanFirst) : first;
|
|
overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;
|
|
last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;
|
|
var visible = {
|
|
first,
|
|
last
|
|
};
|
|
var newCellCount = newRangeCount(prev, visible);
|
|
while (true) {
|
|
if (first <= overscanFirst && last >= overscanLast) {
|
|
break;
|
|
}
|
|
var maxNewCells = newCellCount >= maxToRenderPerBatch;
|
|
var firstWillAddMore = first <= prev.first || first > prev.last;
|
|
var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);
|
|
var lastWillAddMore = last >= prev.last || last < prev.first;
|
|
var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);
|
|
if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {
|
|
break;
|
|
}
|
|
if (firstShouldIncrement && !(fillPreference === "after" && lastShouldIncrement && lastWillAddMore)) {
|
|
if (firstWillAddMore) {
|
|
newCellCount++;
|
|
}
|
|
first--;
|
|
}
|
|
if (lastShouldIncrement && !(fillPreference === "before" && firstShouldIncrement && firstWillAddMore)) {
|
|
if (lastWillAddMore) {
|
|
newCellCount++;
|
|
}
|
|
last++;
|
|
}
|
|
}
|
|
if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {
|
|
throw new Error("Bad window calculation " + JSON.stringify({
|
|
first,
|
|
last,
|
|
itemCount,
|
|
overscanFirst,
|
|
overscanLast,
|
|
visible
|
|
}));
|
|
}
|
|
return {
|
|
first,
|
|
last
|
|
};
|
|
}
|
|
__name(computeWindowedRenderLimits, "computeWindowedRenderLimits");
|
|
function keyExtractor(item, index3) {
|
|
if (typeof item === "object" && (item == null ? void 0 : item.key) != null) {
|
|
return item.key;
|
|
}
|
|
if (typeof item === "object" && (item == null ? void 0 : item.id) != null) {
|
|
return item.id;
|
|
}
|
|
return String(index3);
|
|
}
|
|
__name(keyExtractor, "keyExtractor");
|
|
}
|
|
});
|
|
|
|
// node_modules/nullthrows/nullthrows.js
|
|
var require_nullthrows = __commonJS({
|
|
"node_modules/nullthrows/nullthrows.js"(exports2, module2) {
|
|
"use strict";
|
|
function nullthrows(x, message) {
|
|
if (x != null) {
|
|
return x;
|
|
}
|
|
var error2 = new Error(message !== void 0 ? message : "Got unexpected " + x);
|
|
error2.framesToPop = 1;
|
|
throw error2;
|
|
}
|
|
__name(nullthrows, "nullthrows");
|
|
module2.exports = nullthrows;
|
|
module2.exports.default = nullthrows;
|
|
Object.defineProperty(module2.exports, "__esModule", { value: true });
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/index.js
|
|
var require_VirtualizedList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _RefreshControl = _interopRequireDefault(require_RefreshControl());
|
|
var _ScrollView = _interopRequireDefault(require_ScrollView());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _findNodeHandle = _interopRequireDefault(require_findNodeHandle());
|
|
var _Batchinator = _interopRequireDefault(require_Batchinator());
|
|
var _clamp = _interopRequireDefault(require_clamp2());
|
|
var _infoLog = _interopRequireDefault(require_infoLog());
|
|
var _CellRenderMask = require_CellRenderMask();
|
|
var _ChildListCollection = _interopRequireDefault(require_ChildListCollection());
|
|
var _FillRateHelper = _interopRequireDefault(require_FillRateHelper());
|
|
var _StateSafePureComponent = _interopRequireDefault(require_StateSafePureComponent());
|
|
var _ViewabilityHelper = _interopRequireDefault(require_ViewabilityHelper());
|
|
var _VirtualizedListCellRenderer = _interopRequireDefault(require_VirtualizedListCellRenderer());
|
|
var _VirtualizedListContext = require_VirtualizedListContext();
|
|
var _VirtualizeUtils = require_VirtualizeUtils();
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _nullthrows = _interopRequireDefault(require_nullthrows());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
var ON_EDGE_REACHED_EPSILON = 1e-3;
|
|
var _usedIndexForKey = false;
|
|
var _keylessItemComponentName = "";
|
|
function horizontalOrDefault(horizontal) {
|
|
return horizontal !== null && horizontal !== void 0 ? horizontal : false;
|
|
}
|
|
__name(horizontalOrDefault, "horizontalOrDefault");
|
|
function initialNumToRenderOrDefault(initialNumToRender) {
|
|
return initialNumToRender !== null && initialNumToRender !== void 0 ? initialNumToRender : 10;
|
|
}
|
|
__name(initialNumToRenderOrDefault, "initialNumToRenderOrDefault");
|
|
function maxToRenderPerBatchOrDefault(maxToRenderPerBatch) {
|
|
return maxToRenderPerBatch !== null && maxToRenderPerBatch !== void 0 ? maxToRenderPerBatch : 10;
|
|
}
|
|
__name(maxToRenderPerBatchOrDefault, "maxToRenderPerBatchOrDefault");
|
|
function onStartReachedThresholdOrDefault(onStartReachedThreshold) {
|
|
return onStartReachedThreshold !== null && onStartReachedThreshold !== void 0 ? onStartReachedThreshold : 2;
|
|
}
|
|
__name(onStartReachedThresholdOrDefault, "onStartReachedThresholdOrDefault");
|
|
function onEndReachedThresholdOrDefault(onEndReachedThreshold) {
|
|
return onEndReachedThreshold !== null && onEndReachedThreshold !== void 0 ? onEndReachedThreshold : 2;
|
|
}
|
|
__name(onEndReachedThresholdOrDefault, "onEndReachedThresholdOrDefault");
|
|
function getScrollingThreshold(threshold, visibleLength) {
|
|
return threshold * visibleLength / 2;
|
|
}
|
|
__name(getScrollingThreshold, "getScrollingThreshold");
|
|
function scrollEventThrottleOrDefault(scrollEventThrottle) {
|
|
return scrollEventThrottle !== null && scrollEventThrottle !== void 0 ? scrollEventThrottle : 50;
|
|
}
|
|
__name(scrollEventThrottleOrDefault, "scrollEventThrottleOrDefault");
|
|
function windowSizeOrDefault(windowSize) {
|
|
return windowSize !== null && windowSize !== void 0 ? windowSize : 21;
|
|
}
|
|
__name(windowSizeOrDefault, "windowSizeOrDefault");
|
|
function findLastWhere(arr, predicate) {
|
|
for (var i = arr.length - 1; i >= 0; i--) {
|
|
if (predicate(arr[i])) {
|
|
return arr[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
__name(findLastWhere, "findLastWhere");
|
|
var _VirtualizedList = class _VirtualizedList extends _StateSafePureComponent.default {
|
|
// scrollToEnd may be janky without getItemLayout prop
|
|
scrollToEnd(params) {
|
|
var animated = params ? params.animated : true;
|
|
var veryLast = this.props.getItemCount(this.props.data) - 1;
|
|
if (veryLast < 0) {
|
|
return;
|
|
}
|
|
var frame = this.__getFrameMetricsApprox(veryLast, this.props);
|
|
var offset4 = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);
|
|
if (this._scrollRef == null) {
|
|
return;
|
|
}
|
|
if (this._scrollRef.scrollTo == null) {
|
|
console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
|
|
return;
|
|
}
|
|
this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {
|
|
x: offset4,
|
|
animated
|
|
} : {
|
|
y: offset4,
|
|
animated
|
|
});
|
|
}
|
|
// scrollToIndex may be janky without getItemLayout prop
|
|
scrollToIndex(params) {
|
|
var _this$props = this.props, data = _this$props.data, horizontal = _this$props.horizontal, getItemCount = _this$props.getItemCount, getItemLayout = _this$props.getItemLayout, onScrollToIndexFailed = _this$props.onScrollToIndexFailed;
|
|
var animated = params.animated, index3 = params.index, viewOffset = params.viewOffset, viewPosition = params.viewPosition;
|
|
(0, _invariant.default)(index3 >= 0, "scrollToIndex out of range: requested index " + index3 + " but minimum is 0");
|
|
(0, _invariant.default)(getItemCount(data) >= 1, "scrollToIndex out of range: item length " + getItemCount(data) + " but minimum is 1");
|
|
(0, _invariant.default)(index3 < getItemCount(data), "scrollToIndex out of range: requested index " + index3 + " is out of 0 to " + (getItemCount(data) - 1));
|
|
if (!getItemLayout && index3 > this._highestMeasuredFrameIndex) {
|
|
(0, _invariant.default)(!!onScrollToIndexFailed, "scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures.");
|
|
onScrollToIndexFailed({
|
|
averageItemLength: this._averageCellLength,
|
|
highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,
|
|
index: index3
|
|
});
|
|
return;
|
|
}
|
|
var frame = this.__getFrameMetricsApprox(Math.floor(index3), this.props);
|
|
var offset4 = Math.max(0, this._getOffsetApprox(index3, this.props) - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);
|
|
if (this._scrollRef == null) {
|
|
return;
|
|
}
|
|
if (this._scrollRef.scrollTo == null) {
|
|
console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
|
|
return;
|
|
}
|
|
this._scrollRef.scrollTo(horizontal ? {
|
|
x: offset4,
|
|
animated
|
|
} : {
|
|
y: offset4,
|
|
animated
|
|
});
|
|
}
|
|
// scrollToItem may be janky without getItemLayout prop. Required linear scan through items -
|
|
// use scrollToIndex instead if possible.
|
|
scrollToItem(params) {
|
|
var item = params.item;
|
|
var _this$props2 = this.props, data = _this$props2.data, getItem = _this$props2.getItem, getItemCount = _this$props2.getItemCount;
|
|
var itemCount = getItemCount(data);
|
|
for (var _index = 0; _index < itemCount; _index++) {
|
|
if (getItem(data, _index) === item) {
|
|
this.scrollToIndex((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
index: _index
|
|
}));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Scroll to a specific content pixel offset in the list.
|
|
*
|
|
* Param `offset` expects the offset to scroll to.
|
|
* In case of `horizontal` is true, the offset is the x-value,
|
|
* in any other case the offset is the y-value.
|
|
*
|
|
* Param `animated` (`true` by default) defines whether the list
|
|
* should do an animation while scrolling.
|
|
*/
|
|
scrollToOffset(params) {
|
|
var animated = params.animated, offset4 = params.offset;
|
|
if (this._scrollRef == null) {
|
|
return;
|
|
}
|
|
if (this._scrollRef.scrollTo == null) {
|
|
console.warn("No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.");
|
|
return;
|
|
}
|
|
this._scrollRef.scrollTo(horizontalOrDefault(this.props.horizontal) ? {
|
|
x: offset4,
|
|
animated
|
|
} : {
|
|
y: offset4,
|
|
animated
|
|
});
|
|
}
|
|
recordInteraction() {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList.recordInteraction();
|
|
});
|
|
this._viewabilityTuples.forEach((t) => {
|
|
t.viewabilityHelper.recordInteraction();
|
|
});
|
|
this._updateViewableItems(this.props, this.state.cellsAroundViewport);
|
|
}
|
|
flashScrollIndicators() {
|
|
if (this._scrollRef == null) {
|
|
return;
|
|
}
|
|
this._scrollRef.flashScrollIndicators();
|
|
}
|
|
/**
|
|
* Provides a handle to the underlying scroll responder.
|
|
* Note that `this._scrollRef` might not be a `ScrollView`, so we
|
|
* need to check that it responds to `getScrollResponder` before calling it.
|
|
*/
|
|
getScrollResponder() {
|
|
if (this._scrollRef && this._scrollRef.getScrollResponder) {
|
|
return this._scrollRef.getScrollResponder();
|
|
}
|
|
}
|
|
getScrollableNode() {
|
|
if (this._scrollRef && this._scrollRef.getScrollableNode) {
|
|
return this._scrollRef.getScrollableNode();
|
|
} else {
|
|
return this._scrollRef;
|
|
}
|
|
}
|
|
getScrollRef() {
|
|
if (this._scrollRef && this._scrollRef.getScrollRef) {
|
|
return this._scrollRef.getScrollRef();
|
|
} else {
|
|
return this._scrollRef;
|
|
}
|
|
}
|
|
_getCellKey() {
|
|
var _this$context;
|
|
return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || "rootList";
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
hasMore() {
|
|
return this._hasMore;
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
constructor(_props) {
|
|
var _this$props$updateCel;
|
|
super(_props);
|
|
this._getScrollMetrics = () => {
|
|
return this._scrollMetrics;
|
|
};
|
|
this._getOutermostParentListRef = () => {
|
|
if (this._isNestedWithSameOrientation()) {
|
|
return this.context.getOutermostParentListRef();
|
|
} else {
|
|
return this;
|
|
}
|
|
};
|
|
this._registerAsNestedChild = (childList) => {
|
|
this._nestedChildLists.add(childList.ref, childList.cellKey);
|
|
if (this._hasInteracted) {
|
|
childList.ref.recordInteraction();
|
|
}
|
|
};
|
|
this._unregisterAsNestedChild = (childList) => {
|
|
this._nestedChildLists.remove(childList.ref);
|
|
};
|
|
this._onUpdateSeparators = (keys, newProps) => {
|
|
keys.forEach((key) => {
|
|
var ref = key != null && this._cellRefs[key];
|
|
ref && ref.updateSeparatorProps(newProps);
|
|
});
|
|
};
|
|
this._getSpacerKey = (isVertical) => isVertical ? "height" : "width";
|
|
this._averageCellLength = 0;
|
|
this._cellRefs = {};
|
|
this._frames = {};
|
|
this._footerLength = 0;
|
|
this._hasTriggeredInitialScrollToIndex = false;
|
|
this._hasInteracted = false;
|
|
this._hasMore = false;
|
|
this._hasWarned = {};
|
|
this._headerLength = 0;
|
|
this._hiPriInProgress = false;
|
|
this._highestMeasuredFrameIndex = 0;
|
|
this._indicesToKeys = /* @__PURE__ */ new Map();
|
|
this._lastFocusedCellKey = null;
|
|
this._nestedChildLists = new _ChildListCollection.default();
|
|
this._offsetFromParentVirtualizedList = 0;
|
|
this._prevParentOffset = 0;
|
|
this._scrollMetrics = {
|
|
contentLength: 0,
|
|
dOffset: 0,
|
|
dt: 10,
|
|
offset: 0,
|
|
timestamp: 0,
|
|
velocity: 0,
|
|
visibleLength: 0,
|
|
zoomScale: 1
|
|
};
|
|
this._scrollRef = null;
|
|
this._sentStartForContentLength = 0;
|
|
this._sentEndForContentLength = 0;
|
|
this._totalCellLength = 0;
|
|
this._totalCellsMeasured = 0;
|
|
this._viewabilityTuples = [];
|
|
this._captureScrollRef = (ref) => {
|
|
this._scrollRef = ref;
|
|
};
|
|
this._defaultRenderScrollComponent = (props) => {
|
|
var onRefresh = props.onRefresh;
|
|
if (this._isNestedWithSameOrientation()) {
|
|
return /* @__PURE__ */ React44.createElement(_View.default, props);
|
|
} else if (onRefresh) {
|
|
var _props$refreshing;
|
|
(0, _invariant.default)(typeof props.refreshing === "boolean", "`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `" + JSON.stringify((_props$refreshing = props.refreshing) !== null && _props$refreshing !== void 0 ? _props$refreshing : "undefined") + "`");
|
|
return (
|
|
// $FlowFixMe[prop-missing] Invalid prop usage
|
|
// $FlowFixMe[incompatible-use]
|
|
/* @__PURE__ */ React44.createElement(_ScrollView.default, (0, _extends2.default)({}, props, {
|
|
refreshControl: props.refreshControl == null ? /* @__PURE__ */ React44.createElement(
|
|
_RefreshControl.default,
|
|
{
|
|
refreshing: props.refreshing,
|
|
onRefresh,
|
|
progressViewOffset: props.progressViewOffset
|
|
}
|
|
) : props.refreshControl
|
|
}))
|
|
);
|
|
} else {
|
|
return /* @__PURE__ */ React44.createElement(_ScrollView.default, props);
|
|
}
|
|
};
|
|
this._onCellLayout = (e, cellKey, index3) => {
|
|
var layout = e.nativeEvent.layout;
|
|
var next = {
|
|
offset: this._selectOffset(layout),
|
|
length: this._selectLength(layout),
|
|
index: index3,
|
|
inLayout: true
|
|
};
|
|
var curr = this._frames[cellKey];
|
|
if (!curr || next.offset !== curr.offset || next.length !== curr.length || index3 !== curr.index) {
|
|
this._totalCellLength += next.length - (curr ? curr.length : 0);
|
|
this._totalCellsMeasured += curr ? 0 : 1;
|
|
this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;
|
|
this._frames[cellKey] = next;
|
|
this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index3);
|
|
this._scheduleCellsToRenderUpdate();
|
|
} else {
|
|
this._frames[cellKey].inLayout = true;
|
|
}
|
|
this._triggerRemeasureForChildListsInCell(cellKey);
|
|
this._computeBlankness();
|
|
this._updateViewableItems(this.props, this.state.cellsAroundViewport);
|
|
};
|
|
this._onCellUnmount = (cellKey) => {
|
|
delete this._cellRefs[cellKey];
|
|
var curr = this._frames[cellKey];
|
|
if (curr) {
|
|
this._frames[cellKey] = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, curr), {}, {
|
|
inLayout: false
|
|
});
|
|
}
|
|
};
|
|
this._onLayout = (e) => {
|
|
if (this._isNestedWithSameOrientation()) {
|
|
this.measureLayoutRelativeToContainingList();
|
|
} else {
|
|
this._scrollMetrics.visibleLength = this._selectLength(e.nativeEvent.layout);
|
|
}
|
|
this.props.onLayout && this.props.onLayout(e);
|
|
this._scheduleCellsToRenderUpdate();
|
|
this._maybeCallOnEdgeReached();
|
|
};
|
|
this._onLayoutEmpty = (e) => {
|
|
this.props.onLayout && this.props.onLayout(e);
|
|
};
|
|
this._onLayoutFooter = (e) => {
|
|
this._triggerRemeasureForChildListsInCell(this._getFooterCellKey());
|
|
this._footerLength = this._selectLength(e.nativeEvent.layout);
|
|
};
|
|
this._onLayoutHeader = (e) => {
|
|
this._headerLength = this._selectLength(e.nativeEvent.layout);
|
|
};
|
|
this._onContentSizeChange = (width, height) => {
|
|
if (width > 0 && height > 0 && this.props.initialScrollIndex != null && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex) {
|
|
if (this.props.contentOffset == null) {
|
|
if (this.props.initialScrollIndex < this.props.getItemCount(this.props.data)) {
|
|
this.scrollToIndex({
|
|
animated: false,
|
|
index: (0, _nullthrows.default)(this.props.initialScrollIndex)
|
|
});
|
|
} else {
|
|
this.scrollToEnd({
|
|
animated: false
|
|
});
|
|
}
|
|
}
|
|
this._hasTriggeredInitialScrollToIndex = true;
|
|
}
|
|
if (this.props.onContentSizeChange) {
|
|
this.props.onContentSizeChange(width, height);
|
|
}
|
|
this._scrollMetrics.contentLength = this._selectLength({
|
|
height,
|
|
width
|
|
});
|
|
this._scheduleCellsToRenderUpdate();
|
|
this._maybeCallOnEdgeReached();
|
|
};
|
|
this._convertParentScrollMetrics = (metrics) => {
|
|
var offset4 = metrics.offset - this._offsetFromParentVirtualizedList;
|
|
var visibleLength = metrics.visibleLength;
|
|
var dOffset = offset4 - this._scrollMetrics.offset;
|
|
var contentLength = this._scrollMetrics.contentLength;
|
|
return {
|
|
visibleLength,
|
|
contentLength,
|
|
offset: offset4,
|
|
dOffset
|
|
};
|
|
};
|
|
this._onScroll = (e) => {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList._onScroll(e);
|
|
});
|
|
if (this.props.onScroll) {
|
|
this.props.onScroll(e);
|
|
}
|
|
var timestamp = e.timeStamp;
|
|
var visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement);
|
|
var contentLength = this._selectLength(e.nativeEvent.contentSize);
|
|
var offset4 = this._selectOffset(e.nativeEvent.contentOffset);
|
|
var dOffset = offset4 - this._scrollMetrics.offset;
|
|
if (this._isNestedWithSameOrientation()) {
|
|
if (this._scrollMetrics.contentLength === 0) {
|
|
return;
|
|
}
|
|
var _this$_convertParentS = this._convertParentScrollMetrics({
|
|
visibleLength,
|
|
offset: offset4
|
|
});
|
|
visibleLength = _this$_convertParentS.visibleLength;
|
|
contentLength = _this$_convertParentS.contentLength;
|
|
offset4 = _this$_convertParentS.offset;
|
|
dOffset = _this$_convertParentS.dOffset;
|
|
}
|
|
var dt = this._scrollMetrics.timestamp ? Math.max(1, timestamp - this._scrollMetrics.timestamp) : 1;
|
|
var velocity = dOffset / dt;
|
|
if (dt > 500 && this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !this._hasWarned.perf) {
|
|
(0, _infoLog.default)("VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.", {
|
|
dt,
|
|
prevDt: this._scrollMetrics.dt,
|
|
contentLength
|
|
});
|
|
this._hasWarned.perf = true;
|
|
}
|
|
var zoomScale = e.nativeEvent.zoomScale < 0 ? 1 : e.nativeEvent.zoomScale;
|
|
this._scrollMetrics = {
|
|
contentLength,
|
|
dt,
|
|
dOffset,
|
|
offset: offset4,
|
|
timestamp,
|
|
velocity,
|
|
visibleLength,
|
|
zoomScale
|
|
};
|
|
this._updateViewableItems(this.props, this.state.cellsAroundViewport);
|
|
if (!this.props) {
|
|
return;
|
|
}
|
|
this._maybeCallOnEdgeReached();
|
|
if (velocity !== 0) {
|
|
this._fillRateHelper.activate();
|
|
}
|
|
this._computeBlankness();
|
|
this._scheduleCellsToRenderUpdate();
|
|
};
|
|
this._onScrollBeginDrag = (e) => {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList._onScrollBeginDrag(e);
|
|
});
|
|
this._viewabilityTuples.forEach((tuple) => {
|
|
tuple.viewabilityHelper.recordInteraction();
|
|
});
|
|
this._hasInteracted = true;
|
|
this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);
|
|
};
|
|
this._onScrollEndDrag = (e) => {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList._onScrollEndDrag(e);
|
|
});
|
|
var velocity = e.nativeEvent.velocity;
|
|
if (velocity) {
|
|
this._scrollMetrics.velocity = this._selectOffset(velocity);
|
|
}
|
|
this._computeBlankness();
|
|
this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);
|
|
};
|
|
this._onMomentumScrollBegin = (e) => {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList._onMomentumScrollBegin(e);
|
|
});
|
|
this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);
|
|
};
|
|
this._onMomentumScrollEnd = (e) => {
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList._onMomentumScrollEnd(e);
|
|
});
|
|
this._scrollMetrics.velocity = 0;
|
|
this._computeBlankness();
|
|
this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);
|
|
};
|
|
this._updateCellsToRender = () => {
|
|
this._updateViewableItems(this.props, this.state.cellsAroundViewport);
|
|
this.setState((state, props) => {
|
|
var cellsAroundViewport = this._adjustCellsAroundViewport(props, state.cellsAroundViewport);
|
|
var renderMask = _VirtualizedList._createRenderMask(props, cellsAroundViewport, this._getNonViewportRenderRegions(props));
|
|
if (cellsAroundViewport.first === state.cellsAroundViewport.first && cellsAroundViewport.last === state.cellsAroundViewport.last && renderMask.equals(state.renderMask)) {
|
|
return null;
|
|
}
|
|
return {
|
|
cellsAroundViewport,
|
|
renderMask
|
|
};
|
|
});
|
|
};
|
|
this._createViewToken = (index3, isViewable, props) => {
|
|
var data = props.data, getItem = props.getItem;
|
|
var item = getItem(data, index3);
|
|
return {
|
|
index: index3,
|
|
item,
|
|
key: this._keyExtractor(item, index3, props),
|
|
isViewable
|
|
};
|
|
};
|
|
this._getOffsetApprox = (index3, props) => {
|
|
if (Number.isInteger(index3)) {
|
|
return this.__getFrameMetricsApprox(index3, props).offset;
|
|
} else {
|
|
var frameMetrics = this.__getFrameMetricsApprox(Math.floor(index3), props);
|
|
var remainder = index3 - Math.floor(index3);
|
|
return frameMetrics.offset + remainder * frameMetrics.length;
|
|
}
|
|
};
|
|
this.__getFrameMetricsApprox = (index3, props) => {
|
|
var frame = this._getFrameMetrics(index3, props);
|
|
if (frame && frame.index === index3) {
|
|
return frame;
|
|
} else {
|
|
var data = props.data, getItemCount = props.getItemCount, getItemLayout = props.getItemLayout;
|
|
(0, _invariant.default)(index3 >= 0 && index3 < getItemCount(data), "Tried to get frame for out of range index " + index3);
|
|
(0, _invariant.default)(!getItemLayout, "Should not have to estimate frames when a measurement metrics function is provided");
|
|
return {
|
|
length: this._averageCellLength,
|
|
offset: this._averageCellLength * index3
|
|
};
|
|
}
|
|
};
|
|
this._getFrameMetrics = (index3, props) => {
|
|
var data = props.data, getItem = props.getItem, getItemCount = props.getItemCount, getItemLayout = props.getItemLayout;
|
|
(0, _invariant.default)(index3 >= 0 && index3 < getItemCount(data), "Tried to get frame for out of range index " + index3);
|
|
var item = getItem(data, index3);
|
|
var frame = this._frames[this._keyExtractor(item, index3, props)];
|
|
if (!frame || frame.index !== index3) {
|
|
if (getItemLayout) {
|
|
return getItemLayout(data, index3);
|
|
}
|
|
}
|
|
return frame;
|
|
};
|
|
this._getNonViewportRenderRegions = (props) => {
|
|
if (!(this._lastFocusedCellKey && this._cellRefs[this._lastFocusedCellKey])) {
|
|
return [];
|
|
}
|
|
var lastFocusedCellRenderer = this._cellRefs[this._lastFocusedCellKey];
|
|
var focusedCellIndex = lastFocusedCellRenderer.props.index;
|
|
var itemCount = props.getItemCount(props.data);
|
|
if (focusedCellIndex >= itemCount || this._keyExtractor(props.getItem(props.data, focusedCellIndex), focusedCellIndex, props) !== this._lastFocusedCellKey) {
|
|
return [];
|
|
}
|
|
var first = focusedCellIndex;
|
|
var heightOfCellsBeforeFocused = 0;
|
|
for (var i = first - 1; i >= 0 && heightOfCellsBeforeFocused < this._scrollMetrics.visibleLength; i--) {
|
|
first--;
|
|
heightOfCellsBeforeFocused += this.__getFrameMetricsApprox(i, props).length;
|
|
}
|
|
var last = focusedCellIndex;
|
|
var heightOfCellsAfterFocused = 0;
|
|
for (var _i = last + 1; _i < itemCount && heightOfCellsAfterFocused < this._scrollMetrics.visibleLength; _i++) {
|
|
last++;
|
|
heightOfCellsAfterFocused += this.__getFrameMetricsApprox(_i, props).length;
|
|
}
|
|
return [{
|
|
first,
|
|
last
|
|
}];
|
|
};
|
|
this._checkProps(_props);
|
|
this._fillRateHelper = new _FillRateHelper.default(this._getFrameMetrics);
|
|
this._updateCellsToRenderBatcher = new _Batchinator.default(this._updateCellsToRender, (_this$props$updateCel = this.props.updateCellsBatchingPeriod) !== null && _this$props$updateCel !== void 0 ? _this$props$updateCel : 50);
|
|
if (this.props.viewabilityConfigCallbackPairs) {
|
|
this._viewabilityTuples = this.props.viewabilityConfigCallbackPairs.map((pair) => ({
|
|
viewabilityHelper: new _ViewabilityHelper.default(pair.viewabilityConfig),
|
|
onViewableItemsChanged: pair.onViewableItemsChanged
|
|
}));
|
|
} else {
|
|
var _this$props3 = this.props, onViewableItemsChanged = _this$props3.onViewableItemsChanged, viewabilityConfig = _this$props3.viewabilityConfig;
|
|
if (onViewableItemsChanged) {
|
|
this._viewabilityTuples.push({
|
|
viewabilityHelper: new _ViewabilityHelper.default(viewabilityConfig),
|
|
onViewableItemsChanged
|
|
});
|
|
}
|
|
}
|
|
var initialRenderRegion = _VirtualizedList._initialRenderRegion(_props);
|
|
this.state = {
|
|
cellsAroundViewport: initialRenderRegion,
|
|
renderMask: _VirtualizedList._createRenderMask(_props, initialRenderRegion)
|
|
};
|
|
this.invertedWheelEventHandler = (ev) => {
|
|
var scrollOffset = this.props.horizontal ? ev.target.scrollLeft : ev.target.scrollTop;
|
|
var scrollLength = this.props.horizontal ? ev.target.scrollWidth : ev.target.scrollHeight;
|
|
var clientLength = this.props.horizontal ? ev.target.clientWidth : ev.target.clientHeight;
|
|
var isEventTargetScrollable = scrollLength > clientLength;
|
|
var delta = this.props.horizontal ? ev.deltaX || ev.wheelDeltaX : ev.deltaY || ev.wheelDeltaY;
|
|
var leftoverDelta = delta;
|
|
if (isEventTargetScrollable) {
|
|
leftoverDelta = delta < 0 ? Math.min(delta + scrollOffset, 0) : Math.max(delta - (scrollLength - clientLength - scrollOffset), 0);
|
|
}
|
|
var targetDelta = delta - leftoverDelta;
|
|
if (this.props.inverted && this._scrollRef && this._scrollRef.getScrollableNode) {
|
|
var node = this._scrollRef.getScrollableNode();
|
|
if (this.props.horizontal) {
|
|
ev.target.scrollLeft += targetDelta;
|
|
var nextScrollLeft = node.scrollLeft - leftoverDelta;
|
|
node.scrollLeft = !this.props.getItemLayout ? Math.min(nextScrollLeft, this._totalCellLength) : nextScrollLeft;
|
|
} else {
|
|
ev.target.scrollTop += targetDelta;
|
|
var nextScrollTop = node.scrollTop - leftoverDelta;
|
|
node.scrollTop = !this.props.getItemLayout ? Math.min(nextScrollTop, this._totalCellLength) : nextScrollTop;
|
|
}
|
|
ev.preventDefault();
|
|
}
|
|
};
|
|
}
|
|
_checkProps(props) {
|
|
var onScroll = props.onScroll, windowSize = props.windowSize, getItemCount = props.getItemCount, data = props.data, initialScrollIndex = props.initialScrollIndex;
|
|
(0, _invariant.default)(
|
|
// $FlowFixMe[prop-missing]
|
|
!onScroll || !onScroll.__isNative,
|
|
"Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver"
|
|
);
|
|
(0, _invariant.default)(windowSizeOrDefault(windowSize) > 0, "VirtualizedList: The windowSize prop must be present and set to a value greater than 0.");
|
|
(0, _invariant.default)(getItemCount, 'VirtualizedList: The "getItemCount" prop must be provided');
|
|
var itemCount = getItemCount(data);
|
|
if (initialScrollIndex != null && !this._hasTriggeredInitialScrollToIndex && (initialScrollIndex < 0 || itemCount > 0 && initialScrollIndex >= itemCount) && !this._hasWarned.initialScrollIndex) {
|
|
console.warn('initialScrollIndex "' + initialScrollIndex + '" is not valid (list has ' + itemCount + " items)");
|
|
this._hasWarned.initialScrollIndex = true;
|
|
}
|
|
if (__DEV__ && !this._hasWarned.flexWrap) {
|
|
var flatStyles = _StyleSheet.default.flatten(this.props.contentContainerStyle);
|
|
if (flatStyles != null && flatStyles.flexWrap === "wrap") {
|
|
console.warn("`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.Consider using `numColumns` with `FlatList` instead.");
|
|
this._hasWarned.flexWrap = true;
|
|
}
|
|
}
|
|
}
|
|
static _createRenderMask(props, cellsAroundViewport, additionalRegions) {
|
|
var itemCount = props.getItemCount(props.data);
|
|
(0, _invariant.default)(cellsAroundViewport.first >= 0 && cellsAroundViewport.last >= cellsAroundViewport.first - 1 && cellsAroundViewport.last < itemCount, 'Invalid cells around viewport "[' + cellsAroundViewport.first + ", " + cellsAroundViewport.last + ']" was passed to VirtualizedList._createRenderMask');
|
|
var renderMask = new _CellRenderMask.CellRenderMask(itemCount);
|
|
if (itemCount > 0) {
|
|
var allRegions = [cellsAroundViewport, ...additionalRegions !== null && additionalRegions !== void 0 ? additionalRegions : []];
|
|
for (var _i2 = 0, _allRegions = allRegions; _i2 < _allRegions.length; _i2++) {
|
|
var region = _allRegions[_i2];
|
|
renderMask.addCells(region);
|
|
}
|
|
if (props.initialScrollIndex == null || props.initialScrollIndex <= 0) {
|
|
var initialRegion = _VirtualizedList._initialRenderRegion(props);
|
|
renderMask.addCells(initialRegion);
|
|
}
|
|
var stickyIndicesSet = new Set(props.stickyHeaderIndices);
|
|
_VirtualizedList._ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellsAroundViewport.first);
|
|
}
|
|
return renderMask;
|
|
}
|
|
static _initialRenderRegion(props) {
|
|
var _props$initialScrollI;
|
|
var itemCount = props.getItemCount(props.data);
|
|
var firstCellIndex = Math.max(0, Math.min(itemCount - 1, Math.floor((_props$initialScrollI = props.initialScrollIndex) !== null && _props$initialScrollI !== void 0 ? _props$initialScrollI : 0)));
|
|
var lastCellIndex = Math.min(itemCount, firstCellIndex + initialNumToRenderOrDefault(props.initialNumToRender)) - 1;
|
|
return {
|
|
first: firstCellIndex,
|
|
last: lastCellIndex
|
|
};
|
|
}
|
|
static _ensureClosestStickyHeader(props, stickyIndicesSet, renderMask, cellIdx) {
|
|
var stickyOffset = props.ListHeaderComponent ? 1 : 0;
|
|
for (var itemIdx = cellIdx - 1; itemIdx >= 0; itemIdx--) {
|
|
if (stickyIndicesSet.has(itemIdx + stickyOffset)) {
|
|
renderMask.addCells({
|
|
first: itemIdx,
|
|
last: itemIdx
|
|
});
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
_adjustCellsAroundViewport(props, cellsAroundViewport) {
|
|
var data = props.data, getItemCount = props.getItemCount;
|
|
var onEndReachedThreshold = onEndReachedThresholdOrDefault(props.onEndReachedThreshold);
|
|
var _this$_scrollMetrics = this._scrollMetrics, contentLength = _this$_scrollMetrics.contentLength, offset4 = _this$_scrollMetrics.offset, visibleLength = _this$_scrollMetrics.visibleLength;
|
|
var distanceFromEnd = contentLength - visibleLength - offset4;
|
|
if (visibleLength <= 0 || contentLength <= 0) {
|
|
return cellsAroundViewport.last >= getItemCount(data) ? _VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;
|
|
}
|
|
var newCellsAroundViewport;
|
|
if (props.disableVirtualization) {
|
|
var renderAhead = distanceFromEnd < onEndReachedThreshold * visibleLength ? maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch) : 0;
|
|
newCellsAroundViewport = {
|
|
first: 0,
|
|
last: Math.min(cellsAroundViewport.last + renderAhead, getItemCount(data) - 1)
|
|
};
|
|
} else {
|
|
if (props.initialScrollIndex && !this._scrollMetrics.offset && Math.abs(distanceFromEnd) >= Number.EPSILON) {
|
|
return cellsAroundViewport.last >= getItemCount(data) ? _VirtualizedList._constrainToItemCount(cellsAroundViewport, props) : cellsAroundViewport;
|
|
}
|
|
newCellsAroundViewport = (0, _VirtualizeUtils.computeWindowedRenderLimits)(props, maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch), windowSizeOrDefault(props.windowSize), cellsAroundViewport, this.__getFrameMetricsApprox, this._scrollMetrics);
|
|
(0, _invariant.default)(newCellsAroundViewport.last < getItemCount(data), "computeWindowedRenderLimits() should return range in-bounds");
|
|
}
|
|
if (this._nestedChildLists.size() > 0) {
|
|
var childIdx = this._findFirstChildWithMore(newCellsAroundViewport.first, newCellsAroundViewport.last);
|
|
newCellsAroundViewport.last = childIdx !== null && childIdx !== void 0 ? childIdx : newCellsAroundViewport.last;
|
|
}
|
|
return newCellsAroundViewport;
|
|
}
|
|
_findFirstChildWithMore(first, last) {
|
|
for (var ii = first; ii <= last; ii++) {
|
|
var cellKeyForIndex = this._indicesToKeys.get(ii);
|
|
if (cellKeyForIndex != null && this._nestedChildLists.anyInCell(cellKeyForIndex, (childList) => childList.hasMore())) {
|
|
return ii;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
componentDidMount() {
|
|
if (this._isNestedWithSameOrientation()) {
|
|
this.context.registerAsNestedChild({
|
|
ref: this,
|
|
cellKey: this.context.cellKey
|
|
});
|
|
}
|
|
this.setupWebWheelHandler();
|
|
}
|
|
componentWillUnmount() {
|
|
if (this._isNestedWithSameOrientation()) {
|
|
this.context.unregisterAsNestedChild({
|
|
ref: this
|
|
});
|
|
}
|
|
this._updateCellsToRenderBatcher.dispose({
|
|
abort: true
|
|
});
|
|
this._viewabilityTuples.forEach((tuple) => {
|
|
tuple.viewabilityHelper.dispose();
|
|
});
|
|
this._fillRateHelper.deactivateAndFlush();
|
|
this.teardownWebWheelHandler();
|
|
}
|
|
// REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.
|
|
setupWebWheelHandler() {
|
|
if (this._scrollRef && this._scrollRef.getScrollableNode) {
|
|
this._scrollRef.getScrollableNode().addEventListener("wheel", this.invertedWheelEventHandler, {
|
|
passive: true
|
|
});
|
|
} else {
|
|
setTimeout(() => this.setupWebWheelHandler(), 50);
|
|
return;
|
|
}
|
|
}
|
|
// REACT-NATIVE-WEB patch to preserve during future RN merges: Support inverted wheel scroller.
|
|
teardownWebWheelHandler() {
|
|
if (this._scrollRef && this._scrollRef.getScrollableNode) {
|
|
this._scrollRef.getScrollableNode().removeEventListener("wheel", this.invertedWheelEventHandler);
|
|
}
|
|
}
|
|
static getDerivedStateFromProps(newProps, prevState) {
|
|
var itemCount = newProps.getItemCount(newProps.data);
|
|
if (itemCount === prevState.renderMask.numCells()) {
|
|
return prevState;
|
|
}
|
|
var constrainedCells = _VirtualizedList._constrainToItemCount(prevState.cellsAroundViewport, newProps);
|
|
return {
|
|
cellsAroundViewport: constrainedCells,
|
|
renderMask: _VirtualizedList._createRenderMask(newProps, constrainedCells)
|
|
};
|
|
}
|
|
_pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {
|
|
var _this = this;
|
|
var _this$props4 = this.props, CellRendererComponent = _this$props4.CellRendererComponent, ItemSeparatorComponent = _this$props4.ItemSeparatorComponent, ListHeaderComponent = _this$props4.ListHeaderComponent, ListItemComponent2 = _this$props4.ListItemComponent, data = _this$props4.data, debug = _this$props4.debug, getItem = _this$props4.getItem, getItemCount = _this$props4.getItemCount, getItemLayout = _this$props4.getItemLayout, horizontal = _this$props4.horizontal, renderItem = _this$props4.renderItem;
|
|
var stickyOffset = ListHeaderComponent ? 1 : 0;
|
|
var end = getItemCount(data) - 1;
|
|
var prevCellKey;
|
|
last = Math.min(end, last);
|
|
var _loop = /* @__PURE__ */ __name(function _loop2() {
|
|
var item = getItem(data, ii);
|
|
var key = _this._keyExtractor(item, ii, _this.props);
|
|
_this._indicesToKeys.set(ii, key);
|
|
if (stickyIndicesFromProps.has(ii + stickyOffset)) {
|
|
stickyHeaderIndices.push(cells.length);
|
|
}
|
|
var shouldListenForLayout = getItemLayout == null || debug || _this._fillRateHelper.enabled();
|
|
cells.push(/* @__PURE__ */ React44.createElement(_VirtualizedListCellRenderer.default, (0, _extends2.default)({
|
|
CellRendererComponent,
|
|
ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : void 0,
|
|
ListItemComponent: ListItemComponent2,
|
|
cellKey: key,
|
|
horizontal,
|
|
index: ii,
|
|
inversionStyle,
|
|
item,
|
|
key,
|
|
prevCellKey,
|
|
onUpdateSeparators: _this._onUpdateSeparators,
|
|
onCellFocusCapture: (e) => _this._onCellFocusCapture(key),
|
|
onUnmount: _this._onCellUnmount,
|
|
ref: (_ref) => {
|
|
_this._cellRefs[key] = _ref;
|
|
},
|
|
renderItem
|
|
}, shouldListenForLayout && {
|
|
onCellLayout: _this._onCellLayout
|
|
})));
|
|
prevCellKey = key;
|
|
}, "_loop");
|
|
for (var ii = first; ii <= last; ii++) {
|
|
_loop();
|
|
}
|
|
}
|
|
static _constrainToItemCount(cells, props) {
|
|
var itemCount = props.getItemCount(props.data);
|
|
var last = Math.min(itemCount - 1, cells.last);
|
|
var maxToRenderPerBatch = maxToRenderPerBatchOrDefault(props.maxToRenderPerBatch);
|
|
return {
|
|
first: (0, _clamp.default)(0, itemCount - 1 - maxToRenderPerBatch, cells.first),
|
|
last
|
|
};
|
|
}
|
|
_isNestedWithSameOrientation() {
|
|
var nestedContext = this.context;
|
|
return !!(nestedContext && !!nestedContext.horizontal === horizontalOrDefault(this.props.horizontal));
|
|
}
|
|
_keyExtractor(item, index3, props) {
|
|
if (props.keyExtractor != null) {
|
|
return props.keyExtractor(item, index3);
|
|
}
|
|
var key = (0, _VirtualizeUtils.keyExtractor)(item, index3);
|
|
if (key === String(index3)) {
|
|
_usedIndexForKey = true;
|
|
if (item.type && item.type.displayName) {
|
|
_keylessItemComponentName = item.type.displayName;
|
|
}
|
|
}
|
|
return key;
|
|
}
|
|
render() {
|
|
this._checkProps(this.props);
|
|
var _this$props5 = this.props, ListEmptyComponent = _this$props5.ListEmptyComponent, ListFooterComponent = _this$props5.ListFooterComponent, ListHeaderComponent = _this$props5.ListHeaderComponent;
|
|
var _this$props6 = this.props, data = _this$props6.data, horizontal = _this$props6.horizontal;
|
|
var inversionStyle = this.props.inverted ? horizontalOrDefault(this.props.horizontal) ? styles.horizontallyInverted : styles.verticallyInverted : null;
|
|
var cells = [];
|
|
var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);
|
|
var stickyHeaderIndices = [];
|
|
if (ListHeaderComponent) {
|
|
if (stickyIndicesFromProps.has(0)) {
|
|
stickyHeaderIndices.push(0);
|
|
}
|
|
var _element = /* @__PURE__ */ React44.isValidElement(ListHeaderComponent) ? ListHeaderComponent : (
|
|
// $FlowFixMe[not-a-component]
|
|
// $FlowFixMe[incompatible-type-arg]
|
|
/* @__PURE__ */ React44.createElement(ListHeaderComponent, null)
|
|
);
|
|
cells.push(/* @__PURE__ */ React44.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {
|
|
cellKey: this._getCellKey() + "-header",
|
|
key: "$header"
|
|
}, /* @__PURE__ */ React44.createElement(
|
|
_View.default,
|
|
{
|
|
onLayout: this._onLayoutHeader,
|
|
style: [inversionStyle, this.props.ListHeaderComponentStyle]
|
|
},
|
|
// $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors
|
|
_element
|
|
)));
|
|
}
|
|
var itemCount = this.props.getItemCount(data);
|
|
if (itemCount === 0 && ListEmptyComponent) {
|
|
var _element2 = /* @__PURE__ */ React44.isValidElement(ListEmptyComponent) ? ListEmptyComponent : (
|
|
// $FlowFixMe[not-a-component]
|
|
// $FlowFixMe[incompatible-type-arg]
|
|
/* @__PURE__ */ React44.createElement(ListEmptyComponent, null)
|
|
);
|
|
cells.push(/* @__PURE__ */ React44.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {
|
|
cellKey: this._getCellKey() + "-empty",
|
|
key: "$empty"
|
|
}, /* @__PURE__ */ React44.cloneElement(_element2, {
|
|
onLayout: (event) => {
|
|
this._onLayoutEmpty(event);
|
|
if (_element2.props.onLayout) {
|
|
_element2.props.onLayout(event);
|
|
}
|
|
},
|
|
style: [inversionStyle, _element2.props.style]
|
|
})));
|
|
}
|
|
if (itemCount > 0) {
|
|
_usedIndexForKey = false;
|
|
_keylessItemComponentName = "";
|
|
var spacerKey = this._getSpacerKey(!horizontal);
|
|
var renderRegions = this.state.renderMask.enumerateRegions();
|
|
var lastSpacer = findLastWhere(renderRegions, (r) => r.isSpacer);
|
|
for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(renderRegions), _step; !(_step = _iterator()).done; ) {
|
|
var section = _step.value;
|
|
if (section.isSpacer) {
|
|
if (this.props.disableVirtualization) {
|
|
continue;
|
|
}
|
|
var isLastSpacer = section === lastSpacer;
|
|
var constrainToMeasured = isLastSpacer && !this.props.getItemLayout;
|
|
var last = constrainToMeasured ? (0, _clamp.default)(section.first - 1, section.last, this._highestMeasuredFrameIndex) : section.last;
|
|
var firstMetrics = this.__getFrameMetricsApprox(section.first, this.props);
|
|
var lastMetrics = this.__getFrameMetricsApprox(last, this.props);
|
|
var spacerSize = lastMetrics.offset + lastMetrics.length - firstMetrics.offset;
|
|
cells.push(/* @__PURE__ */ React44.createElement(_View.default, {
|
|
key: "$spacer-" + section.first,
|
|
style: {
|
|
[spacerKey]: spacerSize
|
|
}
|
|
}));
|
|
} else {
|
|
this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, section.first, section.last, inversionStyle);
|
|
}
|
|
}
|
|
if (!this._hasWarned.keys && _usedIndexForKey) {
|
|
console.warn("VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.", _keylessItemComponentName);
|
|
this._hasWarned.keys = true;
|
|
}
|
|
}
|
|
if (ListFooterComponent) {
|
|
var _element3 = /* @__PURE__ */ React44.isValidElement(ListFooterComponent) ? ListFooterComponent : (
|
|
// $FlowFixMe[not-a-component]
|
|
// $FlowFixMe[incompatible-type-arg]
|
|
/* @__PURE__ */ React44.createElement(ListFooterComponent, null)
|
|
);
|
|
cells.push(/* @__PURE__ */ React44.createElement(_VirtualizedListContext.VirtualizedListCellContextProvider, {
|
|
cellKey: this._getFooterCellKey(),
|
|
key: "$footer"
|
|
}, /* @__PURE__ */ React44.createElement(
|
|
_View.default,
|
|
{
|
|
onLayout: this._onLayoutFooter,
|
|
style: [inversionStyle, this.props.ListFooterComponentStyle]
|
|
},
|
|
// $FlowFixMe[incompatible-type] - Typing ReactNativeComponent revealed errors
|
|
_element3
|
|
)));
|
|
}
|
|
var scrollProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.props), {}, {
|
|
onContentSizeChange: this._onContentSizeChange,
|
|
onLayout: this._onLayout,
|
|
onScroll: this._onScroll,
|
|
onScrollBeginDrag: this._onScrollBeginDrag,
|
|
onScrollEndDrag: this._onScrollEndDrag,
|
|
onMomentumScrollBegin: this._onMomentumScrollBegin,
|
|
onMomentumScrollEnd: this._onMomentumScrollEnd,
|
|
scrollEventThrottle: scrollEventThrottleOrDefault(this.props.scrollEventThrottle),
|
|
// TODO: Android support
|
|
invertStickyHeaders: this.props.invertStickyHeaders !== void 0 ? this.props.invertStickyHeaders : this.props.inverted,
|
|
stickyHeaderIndices,
|
|
style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style
|
|
});
|
|
this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1;
|
|
var innerRet = /* @__PURE__ */ React44.createElement(_VirtualizedListContext.VirtualizedListContextProvider, {
|
|
value: {
|
|
cellKey: null,
|
|
getScrollMetrics: this._getScrollMetrics,
|
|
horizontal: horizontalOrDefault(this.props.horizontal),
|
|
getOutermostParentListRef: this._getOutermostParentListRef,
|
|
registerAsNestedChild: this._registerAsNestedChild,
|
|
unregisterAsNestedChild: this._unregisterAsNestedChild
|
|
}
|
|
}, /* @__PURE__ */ React44.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {
|
|
ref: this._captureScrollRef
|
|
}, cells));
|
|
var ret = innerRet;
|
|
if (this.props.debug) {
|
|
return /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: styles.debug
|
|
}, ret, this._renderDebugOverlay());
|
|
} else {
|
|
return ret;
|
|
}
|
|
}
|
|
componentDidUpdate(prevProps) {
|
|
var _this$props7 = this.props, data = _this$props7.data, extraData = _this$props7.extraData;
|
|
if (data !== prevProps.data || extraData !== prevProps.extraData) {
|
|
this._viewabilityTuples.forEach((tuple) => {
|
|
tuple.viewabilityHelper.resetViewableIndices();
|
|
});
|
|
}
|
|
var hiPriInProgress = this._hiPriInProgress;
|
|
this._scheduleCellsToRenderUpdate();
|
|
if (hiPriInProgress) {
|
|
this._hiPriInProgress = false;
|
|
}
|
|
}
|
|
_computeBlankness() {
|
|
this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics);
|
|
}
|
|
/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
|
|
* LTI update could not be added via codemod */
|
|
_onCellFocusCapture(cellKey) {
|
|
this._lastFocusedCellKey = cellKey;
|
|
this._updateCellsToRender();
|
|
}
|
|
_triggerRemeasureForChildListsInCell(cellKey) {
|
|
this._nestedChildLists.forEachInCell(cellKey, (childList) => {
|
|
childList.measureLayoutRelativeToContainingList();
|
|
});
|
|
}
|
|
measureLayoutRelativeToContainingList() {
|
|
try {
|
|
if (!this._scrollRef) {
|
|
return;
|
|
}
|
|
this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), (x, y, width, height) => {
|
|
this._offsetFromParentVirtualizedList = this._selectOffset({
|
|
x,
|
|
y
|
|
});
|
|
this._scrollMetrics.contentLength = this._selectLength({
|
|
width,
|
|
height
|
|
});
|
|
var scrollMetrics = this._convertParentScrollMetrics(this.context.getScrollMetrics());
|
|
var metricsChanged = this._scrollMetrics.visibleLength !== scrollMetrics.visibleLength || this._scrollMetrics.offset !== scrollMetrics.offset;
|
|
if (metricsChanged) {
|
|
this._scrollMetrics.visibleLength = scrollMetrics.visibleLength;
|
|
this._scrollMetrics.offset = scrollMetrics.offset;
|
|
this._nestedChildLists.forEach((childList) => {
|
|
childList.measureLayoutRelativeToContainingList();
|
|
});
|
|
}
|
|
}, (error2) => {
|
|
console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList.");
|
|
});
|
|
} catch (error2) {
|
|
console.warn("measureLayoutRelativeToContainingList threw an error", error2.stack);
|
|
}
|
|
}
|
|
_getFooterCellKey() {
|
|
return this._getCellKey() + "-footer";
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
_renderDebugOverlay() {
|
|
var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);
|
|
var framesInLayout = [];
|
|
var itemCount = this.props.getItemCount(this.props.data);
|
|
for (var ii = 0; ii < itemCount; ii++) {
|
|
var frame = this.__getFrameMetricsApprox(ii, this.props);
|
|
if (frame.inLayout) {
|
|
framesInLayout.push(frame);
|
|
}
|
|
}
|
|
var windowTop = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.first, this.props).offset;
|
|
var frameLast = this.__getFrameMetricsApprox(this.state.cellsAroundViewport.last, this.props);
|
|
var windowLen = frameLast.offset + frameLast.length - windowTop;
|
|
var visTop = this._scrollMetrics.offset;
|
|
var visLen = this._scrollMetrics.visibleLength;
|
|
return /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [styles.debugOverlayBase, styles.debugOverlay]
|
|
}, framesInLayout.map((f, ii2) => /* @__PURE__ */ React44.createElement(_View.default, {
|
|
key: "f" + ii2,
|
|
style: [styles.debugOverlayBase, styles.debugOverlayFrame, {
|
|
top: f.offset * normalize,
|
|
height: f.length * normalize
|
|
}]
|
|
})), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {
|
|
top: windowTop * normalize,
|
|
height: windowLen * normalize
|
|
}]
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {
|
|
top: visTop * normalize,
|
|
height: visLen * normalize
|
|
}]
|
|
}));
|
|
}
|
|
_selectLength(metrics) {
|
|
return !horizontalOrDefault(this.props.horizontal) ? metrics.height : metrics.width;
|
|
}
|
|
_selectOffset(metrics) {
|
|
return !horizontalOrDefault(this.props.horizontal) ? metrics.y : metrics.x;
|
|
}
|
|
_maybeCallOnEdgeReached() {
|
|
var _this$props8 = this.props, data = _this$props8.data, getItemCount = _this$props8.getItemCount, onStartReached = _this$props8.onStartReached, onStartReachedThreshold = _this$props8.onStartReachedThreshold, onEndReached = _this$props8.onEndReached, onEndReachedThreshold = _this$props8.onEndReachedThreshold, initialScrollIndex = _this$props8.initialScrollIndex;
|
|
var _this$_scrollMetrics2 = this._scrollMetrics, contentLength = _this$_scrollMetrics2.contentLength, visibleLength = _this$_scrollMetrics2.visibleLength, offset4 = _this$_scrollMetrics2.offset;
|
|
var distanceFromStart = offset4;
|
|
var distanceFromEnd = contentLength - visibleLength - offset4;
|
|
if (distanceFromStart < ON_EDGE_REACHED_EPSILON) {
|
|
distanceFromStart = 0;
|
|
}
|
|
if (distanceFromEnd < ON_EDGE_REACHED_EPSILON) {
|
|
distanceFromEnd = 0;
|
|
}
|
|
var DEFAULT_THRESHOLD_PX = 2;
|
|
var startThreshold = onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;
|
|
var endThreshold = onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : DEFAULT_THRESHOLD_PX;
|
|
var isWithinStartThreshold = distanceFromStart <= startThreshold;
|
|
var isWithinEndThreshold = distanceFromEnd <= endThreshold;
|
|
if (onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1 && isWithinEndThreshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {
|
|
this._sentEndForContentLength = this._scrollMetrics.contentLength;
|
|
onEndReached({
|
|
distanceFromEnd
|
|
});
|
|
} else if (onStartReached != null && this.state.cellsAroundViewport.first === 0 && isWithinStartThreshold && this._scrollMetrics.contentLength !== this._sentStartForContentLength) {
|
|
if (!initialScrollIndex || this._scrollMetrics.timestamp !== 0) {
|
|
this._sentStartForContentLength = this._scrollMetrics.contentLength;
|
|
onStartReached({
|
|
distanceFromStart
|
|
});
|
|
}
|
|
} else {
|
|
this._sentStartForContentLength = isWithinStartThreshold ? this._sentStartForContentLength : 0;
|
|
this._sentEndForContentLength = isWithinEndThreshold ? this._sentEndForContentLength : 0;
|
|
}
|
|
}
|
|
_scheduleCellsToRenderUpdate() {
|
|
var _this$state$cellsArou = this.state.cellsAroundViewport, first = _this$state$cellsArou.first, last = _this$state$cellsArou.last;
|
|
var _this$_scrollMetrics3 = this._scrollMetrics, offset4 = _this$_scrollMetrics3.offset, visibleLength = _this$_scrollMetrics3.visibleLength, velocity = _this$_scrollMetrics3.velocity;
|
|
var itemCount = this.props.getItemCount(this.props.data);
|
|
var hiPri = false;
|
|
var onStartReachedThreshold = onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold);
|
|
var onEndReachedThreshold = onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold);
|
|
if (first > 0) {
|
|
var distTop = offset4 - this.__getFrameMetricsApprox(first, this.props).offset;
|
|
hiPri = distTop < 0 || velocity < -2 && distTop < getScrollingThreshold(onStartReachedThreshold, visibleLength);
|
|
}
|
|
if (!hiPri && last >= 0 && last < itemCount - 1) {
|
|
var distBottom = this.__getFrameMetricsApprox(last, this.props).offset - (offset4 + visibleLength);
|
|
hiPri = distBottom < 0 || velocity > 2 && distBottom < getScrollingThreshold(onEndReachedThreshold, visibleLength);
|
|
}
|
|
if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {
|
|
this._hiPriInProgress = true;
|
|
this._updateCellsToRenderBatcher.dispose({
|
|
abort: true
|
|
});
|
|
this._updateCellsToRender();
|
|
return;
|
|
} else {
|
|
this._updateCellsToRenderBatcher.schedule();
|
|
}
|
|
}
|
|
_updateViewableItems(props, cellsAroundViewport) {
|
|
this._viewabilityTuples.forEach((tuple) => {
|
|
tuple.viewabilityHelper.onUpdate(props, this._scrollMetrics.offset, this._scrollMetrics.visibleLength, this._getFrameMetrics, this._createViewToken, tuple.onViewableItemsChanged, cellsAroundViewport);
|
|
});
|
|
}
|
|
};
|
|
__name(_VirtualizedList, "VirtualizedList");
|
|
var VirtualizedList = _VirtualizedList;
|
|
VirtualizedList.contextType = _VirtualizedListContext.VirtualizedListContext;
|
|
var styles = _StyleSheet.default.create({
|
|
verticallyInverted: {
|
|
transform: "scaleY(-1)"
|
|
},
|
|
horizontallyInverted: {
|
|
transform: "scaleX(-1)"
|
|
},
|
|
debug: {
|
|
flex: 1
|
|
},
|
|
debugOverlayBase: {
|
|
position: "absolute",
|
|
top: 0,
|
|
right: 0
|
|
},
|
|
debugOverlay: {
|
|
bottom: 0,
|
|
width: 20,
|
|
borderColor: "blue",
|
|
borderWidth: 1
|
|
},
|
|
debugOverlayFrame: {
|
|
left: 0,
|
|
backgroundColor: "orange"
|
|
},
|
|
debugOverlayFrameLast: {
|
|
left: 0,
|
|
borderColor: "green",
|
|
borderWidth: 2
|
|
},
|
|
debugOverlayFrameVis: {
|
|
left: 0,
|
|
borderColor: "red",
|
|
borderWidth: 2
|
|
}
|
|
});
|
|
var _default = VirtualizedList;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.cjs.js
|
|
var require_memoize_one_cjs = __commonJS({
|
|
"node_modules/react-native-web/node_modules/memoize-one/dist/memoize-one.cjs.js"(exports2, module2) {
|
|
"use strict";
|
|
var safeIsNaN = Number.isNaN || /* @__PURE__ */ __name(function ponyfill(value) {
|
|
return typeof value === "number" && value !== value;
|
|
}, "ponyfill");
|
|
function isEqual(first, second) {
|
|
if (first === second) {
|
|
return true;
|
|
}
|
|
if (safeIsNaN(first) && safeIsNaN(second)) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
__name(isEqual, "isEqual");
|
|
function areInputsEqual(newInputs, lastInputs) {
|
|
if (newInputs.length !== lastInputs.length) {
|
|
return false;
|
|
}
|
|
for (var i = 0; i < newInputs.length; i++) {
|
|
if (!isEqual(newInputs[i], lastInputs[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
__name(areInputsEqual, "areInputsEqual");
|
|
function memoizeOne(resultFn, isEqual2) {
|
|
if (isEqual2 === void 0) {
|
|
isEqual2 = areInputsEqual;
|
|
}
|
|
var cache3 = null;
|
|
function memoized() {
|
|
var newArgs = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
newArgs[_i] = arguments[_i];
|
|
}
|
|
if (cache3 && cache3.lastThis === this && isEqual2(newArgs, cache3.lastArgs)) {
|
|
return cache3.lastResult;
|
|
}
|
|
var lastResult = resultFn.apply(this, newArgs);
|
|
cache3 = {
|
|
lastResult,
|
|
lastArgs: newArgs,
|
|
lastThis: this
|
|
};
|
|
return lastResult;
|
|
}
|
|
__name(memoized, "memoized");
|
|
memoized.clear = /* @__PURE__ */ __name(function clear() {
|
|
cache3 = null;
|
|
}, "clear");
|
|
return memoized;
|
|
}
|
|
__name(memoizeOne, "memoizeOne");
|
|
module2.exports = memoizeOne;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/FlatList/index.js
|
|
var require_FlatList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/FlatList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _deepDiffer = _interopRequireDefault(require_deepDiffer());
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());
|
|
var _VirtualizeUtils = require_VirtualizeUtils();
|
|
var _memoizeOne = _interopRequireDefault(require_memoize_one_cjs());
|
|
var _excluded = ["numColumns", "columnWrapperStyle", "removeClippedSubviews", "strictMode"];
|
|
function removeClippedSubviewsOrDefault(removeClippedSubviews) {
|
|
return removeClippedSubviews !== null && removeClippedSubviews !== void 0 ? removeClippedSubviews : _Platform.default.OS === "android";
|
|
}
|
|
__name(removeClippedSubviewsOrDefault, "removeClippedSubviewsOrDefault");
|
|
function numColumnsOrDefault(numColumns) {
|
|
return numColumns !== null && numColumns !== void 0 ? numColumns : 1;
|
|
}
|
|
__name(numColumnsOrDefault, "numColumnsOrDefault");
|
|
function isArrayLike(data) {
|
|
return typeof Object(data).length === "number";
|
|
}
|
|
__name(isArrayLike, "isArrayLike");
|
|
var _FlatList = class _FlatList extends React44.PureComponent {
|
|
/**
|
|
* Scrolls to the end of the content. May be janky without `getItemLayout` prop.
|
|
*/
|
|
scrollToEnd(params) {
|
|
if (this._listRef) {
|
|
this._listRef.scrollToEnd(params);
|
|
}
|
|
}
|
|
/**
|
|
* Scrolls to the item at the specified index such that it is positioned in the viewable area
|
|
* such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the
|
|
* middle. `viewOffset` is a fixed number of pixels to offset the final target position.
|
|
*
|
|
* Note: cannot scroll to locations outside the render window without specifying the
|
|
* `getItemLayout` prop.
|
|
*/
|
|
scrollToIndex(params) {
|
|
if (this._listRef) {
|
|
this._listRef.scrollToIndex(params);
|
|
}
|
|
}
|
|
/**
|
|
* Requires linear scan through data - use `scrollToIndex` instead if possible.
|
|
*
|
|
* Note: cannot scroll to locations outside the render window without specifying the
|
|
* `getItemLayout` prop.
|
|
*/
|
|
scrollToItem(params) {
|
|
if (this._listRef) {
|
|
this._listRef.scrollToItem(params);
|
|
}
|
|
}
|
|
/**
|
|
* Scroll to a specific content pixel offset in the list.
|
|
*
|
|
* Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList
|
|
*/
|
|
scrollToOffset(params) {
|
|
if (this._listRef) {
|
|
this._listRef.scrollToOffset(params);
|
|
}
|
|
}
|
|
/**
|
|
* Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.
|
|
* if `waitForInteractions` is true and the user has not scrolled. This is typically called by
|
|
* taps on items or by navigation actions.
|
|
*/
|
|
recordInteraction() {
|
|
if (this._listRef) {
|
|
this._listRef.recordInteraction();
|
|
}
|
|
}
|
|
/**
|
|
* Displays the scroll indicators momentarily.
|
|
*
|
|
* @platform ios
|
|
*/
|
|
flashScrollIndicators() {
|
|
if (this._listRef) {
|
|
this._listRef.flashScrollIndicators();
|
|
}
|
|
}
|
|
/**
|
|
* Provides a handle to the underlying scroll responder.
|
|
*/
|
|
getScrollResponder() {
|
|
if (this._listRef) {
|
|
return this._listRef.getScrollResponder();
|
|
}
|
|
}
|
|
/**
|
|
* Provides a reference to the underlying host component
|
|
*/
|
|
getNativeScrollRef() {
|
|
if (this._listRef) {
|
|
return this._listRef.getScrollRef();
|
|
}
|
|
}
|
|
getScrollableNode() {
|
|
if (this._listRef) {
|
|
return this._listRef.getScrollableNode();
|
|
}
|
|
}
|
|
constructor(_props) {
|
|
super(_props);
|
|
this._virtualizedListPairs = [];
|
|
this._captureRef = (ref) => {
|
|
this._listRef = ref;
|
|
};
|
|
this._getItem = (data, index3) => {
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
if (numColumns > 1) {
|
|
var ret = [];
|
|
for (var kk = 0; kk < numColumns; kk++) {
|
|
var itemIndex = index3 * numColumns + kk;
|
|
if (itemIndex < data.length) {
|
|
var _item = data[itemIndex];
|
|
ret.push(_item);
|
|
}
|
|
}
|
|
return ret;
|
|
} else {
|
|
return data[index3];
|
|
}
|
|
};
|
|
this._getItemCount = (data) => {
|
|
if (data != null && isArrayLike(data)) {
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;
|
|
} else {
|
|
return 0;
|
|
}
|
|
};
|
|
this._keyExtractor = (items, index3) => {
|
|
var _this$props$keyExtrac;
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
var keyExtractor = (_this$props$keyExtrac = this.props.keyExtractor) !== null && _this$props$keyExtrac !== void 0 ? _this$props$keyExtrac : _VirtualizeUtils.keyExtractor;
|
|
if (numColumns > 1) {
|
|
(0, _invariant.default)(Array.isArray(items), "FlatList: Encountered internal consistency error, expected each item to consist of an array with 1-%s columns; instead, received a single item.", numColumns);
|
|
return items.map((item, kk) => keyExtractor(item, index3 * numColumns + kk)).join(":");
|
|
}
|
|
return keyExtractor(items, index3);
|
|
};
|
|
this._renderer = (ListItemComponent2, renderItem, columnWrapperStyle, numColumns, extraData) => {
|
|
var cols = numColumnsOrDefault(numColumns);
|
|
var render = /* @__PURE__ */ __name((props) => {
|
|
if (ListItemComponent2) {
|
|
return /* @__PURE__ */ React44.createElement(ListItemComponent2, props);
|
|
} else if (renderItem) {
|
|
return renderItem(props);
|
|
} else {
|
|
return null;
|
|
}
|
|
}, "render");
|
|
var renderProp = /* @__PURE__ */ __name((info) => {
|
|
if (cols > 1) {
|
|
var _item2 = info.item, _index = info.index;
|
|
(0, _invariant.default)(Array.isArray(_item2), "Expected array of items with numColumns > 1");
|
|
return /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [styles.row, columnWrapperStyle]
|
|
}, _item2.map((it, kk) => {
|
|
var element = render({
|
|
// $FlowFixMe[incompatible-call]
|
|
item: it,
|
|
index: _index * cols + kk,
|
|
separators: info.separators
|
|
});
|
|
return element != null ? /* @__PURE__ */ React44.createElement(React44.Fragment, {
|
|
key: kk
|
|
}, element) : null;
|
|
}));
|
|
} else {
|
|
return render(info);
|
|
}
|
|
}, "renderProp");
|
|
return ListItemComponent2 ? {
|
|
ListItemComponent: renderProp
|
|
} : {
|
|
renderItem: renderProp
|
|
};
|
|
};
|
|
this._memoizedRenderer = (0, _memoizeOne.default)(this._renderer);
|
|
this._checkProps(this.props);
|
|
if (this.props.viewabilityConfigCallbackPairs) {
|
|
this._virtualizedListPairs = this.props.viewabilityConfigCallbackPairs.map((pair) => ({
|
|
viewabilityConfig: pair.viewabilityConfig,
|
|
onViewableItemsChanged: this._createOnViewableItemsChanged(pair.onViewableItemsChanged)
|
|
}));
|
|
} else if (this.props.onViewableItemsChanged) {
|
|
this._virtualizedListPairs.push({
|
|
/* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This
|
|
* comment suppresses an error found when Flow v0.63 was deployed. To
|
|
* see the error delete this comment and run Flow. */
|
|
viewabilityConfig: this.props.viewabilityConfig,
|
|
onViewableItemsChanged: this._createOnViewableItemsChanged(this.props.onViewableItemsChanged)
|
|
});
|
|
}
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
componentDidUpdate(prevProps) {
|
|
(0, _invariant.default)(prevProps.numColumns === this.props.numColumns, "Changing numColumns on the fly is not supported. Change the key prop on FlatList when changing the number of columns to force a fresh render of the component.");
|
|
(0, _invariant.default)(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, "Changing onViewableItemsChanged on the fly is not supported");
|
|
(0, _invariant.default)(!(0, _deepDiffer.default)(prevProps.viewabilityConfig, this.props.viewabilityConfig), "Changing viewabilityConfig on the fly is not supported");
|
|
(0, _invariant.default)(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, "Changing viewabilityConfigCallbackPairs on the fly is not supported");
|
|
this._checkProps(this.props);
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
_checkProps(props) {
|
|
var getItem = props.getItem, getItemCount = props.getItemCount, horizontal = props.horizontal, columnWrapperStyle = props.columnWrapperStyle, onViewableItemsChanged = props.onViewableItemsChanged, viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
(0, _invariant.default)(!getItem && !getItemCount, "FlatList does not support custom data formats.");
|
|
if (numColumns > 1) {
|
|
(0, _invariant.default)(!horizontal, "numColumns does not support horizontal.");
|
|
} else {
|
|
(0, _invariant.default)(!columnWrapperStyle, "columnWrapperStyle not supported for single column lists");
|
|
}
|
|
(0, _invariant.default)(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), "FlatList does not support setting both onViewableItemsChanged and viewabilityConfigCallbackPairs.");
|
|
}
|
|
_pushMultiColumnViewable(arr, v) {
|
|
var _this$props$keyExtrac2;
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
var keyExtractor = (_this$props$keyExtrac2 = this.props.keyExtractor) !== null && _this$props$keyExtrac2 !== void 0 ? _this$props$keyExtrac2 : _VirtualizeUtils.keyExtractor;
|
|
v.item.forEach((item, ii) => {
|
|
(0, _invariant.default)(v.index != null, "Missing index!");
|
|
var index3 = v.index * numColumns + ii;
|
|
arr.push((0, _objectSpread2.default)((0, _objectSpread2.default)({}, v), {}, {
|
|
item,
|
|
key: keyExtractor(item, index3),
|
|
index: index3
|
|
}));
|
|
});
|
|
}
|
|
_createOnViewableItemsChanged(onViewableItemsChanged) {
|
|
return (info) => {
|
|
var numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
if (onViewableItemsChanged) {
|
|
if (numColumns > 1) {
|
|
var changed = [];
|
|
var viewableItems = [];
|
|
info.viewableItems.forEach((v) => this._pushMultiColumnViewable(viewableItems, v));
|
|
info.changed.forEach((v) => this._pushMultiColumnViewable(changed, v));
|
|
onViewableItemsChanged({
|
|
viewableItems,
|
|
changed
|
|
});
|
|
} else {
|
|
onViewableItemsChanged(info);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
render() {
|
|
var _this$props = this.props, numColumns = _this$props.numColumns, columnWrapperStyle = _this$props.columnWrapperStyle, _removeClippedSubviews = _this$props.removeClippedSubviews, _this$props$strictMod = _this$props.strictMode, strictMode = _this$props$strictMod === void 0 ? false : _this$props$strictMod, restProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
|
|
var renderer = strictMode ? this._memoizedRenderer : this._renderer;
|
|
return (
|
|
// $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.
|
|
/* @__PURE__ */ React44.createElement(_VirtualizedList.default, (0, _extends2.default)({}, restProps, {
|
|
getItem: this._getItem,
|
|
getItemCount: this._getItemCount,
|
|
keyExtractor: this._keyExtractor,
|
|
ref: this._captureRef,
|
|
viewabilityConfigCallbackPairs: this._virtualizedListPairs,
|
|
removeClippedSubviews: removeClippedSubviewsOrDefault(_removeClippedSubviews)
|
|
}, renderer(this.props.ListItemComponent, this.props.renderItem, columnWrapperStyle, numColumns, this.props.extraData)))
|
|
);
|
|
}
|
|
};
|
|
__name(_FlatList, "FlatList");
|
|
var FlatList = _FlatList;
|
|
var styles = _StyleSheet.default.create({
|
|
row: {
|
|
flexDirection: "row"
|
|
}
|
|
});
|
|
var _default = FlatList;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/FlatList/index.js
|
|
var require_FlatList2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/FlatList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _FlatList = _interopRequireDefault(require_FlatList());
|
|
var _default = _FlatList.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js
|
|
var require_TurboModuleRegistry = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/TurboModule/TurboModuleRegistry.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.get = get;
|
|
exports2.getEnforcing = getEnforcing;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
function get(name) {
|
|
return null;
|
|
}
|
|
__name(get, "get");
|
|
function getEnforcing(name) {
|
|
var module3 = get(name);
|
|
(0, _invariant.default)(module3 != null, "TurboModuleRegistry.getEnforcing(...): '" + name + "' could not be found. Verify that a module by this name is registered in the native binary.");
|
|
return module3;
|
|
}
|
|
__name(getEnforcing, "getEnforcing");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js
|
|
var require_NativeAnimatedModule = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedModule.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var TurboModuleRegistry = _interopRequireWildcard(require_TurboModuleRegistry());
|
|
var _default = TurboModuleRegistry.get("NativeAnimatedModule");
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js
|
|
var require_NativeAnimatedTurboModule = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedTurboModule.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var TurboModuleRegistry = _interopRequireWildcard(require_TurboModuleRegistry());
|
|
var _default = TurboModuleRegistry.get("NativeAnimatedTurboModule");
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js
|
|
var require_RCTDeviceEventEmitter = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/RCTDeviceEventEmitter.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _EventEmitter = _interopRequireDefault(require_EventEmitter());
|
|
var _default = new _EventEmitter.default();
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js
|
|
var require_NativeEventEmitter = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/EventEmitter/NativeEventEmitter.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _NativeEventEmitter = class _NativeEventEmitter {
|
|
constructor(nativeModule) {
|
|
if (_Platform.default.OS === "ios") {
|
|
(0, _invariant.default)(nativeModule != null, "`new NativeEventEmitter()` requires a non-null argument.");
|
|
this._nativeModule = nativeModule;
|
|
}
|
|
}
|
|
addListener(eventType, listener, context) {
|
|
var _this$_nativeModule;
|
|
(_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);
|
|
var subscription = _RCTDeviceEventEmitter.default.addListener(eventType, listener, context);
|
|
return {
|
|
remove: () => {
|
|
if (subscription != null) {
|
|
var _this$_nativeModule2;
|
|
(_this$_nativeModule2 = this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1);
|
|
subscription.remove();
|
|
subscription = null;
|
|
}
|
|
}
|
|
};
|
|
}
|
|
/**
|
|
* @deprecated Use `remove` on the EventSubscription from `addListener`.
|
|
*/
|
|
removeListener(eventType, listener) {
|
|
var _this$_nativeModule3;
|
|
(_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1);
|
|
_RCTDeviceEventEmitter.default.removeListener(eventType, listener);
|
|
}
|
|
emit(eventType) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
_RCTDeviceEventEmitter.default.emit(eventType, ...args);
|
|
}
|
|
removeAllListeners(eventType) {
|
|
var _this$_nativeModule4;
|
|
(0, _invariant.default)(eventType != null, "`NativeEventEmitter.removeAllListener()` requires a non-null argument.");
|
|
(_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));
|
|
_RCTDeviceEventEmitter.default.removeAllListeners(eventType);
|
|
}
|
|
listenerCount(eventType) {
|
|
return _RCTDeviceEventEmitter.default.listenerCount(eventType);
|
|
}
|
|
};
|
|
__name(_NativeEventEmitter, "NativeEventEmitter");
|
|
var NativeEventEmitter = _NativeEventEmitter;
|
|
exports2.default = NativeEventEmitter;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/Platform.js
|
|
var require_Platform2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/Platform.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _default = _Platform.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js
|
|
var require_ReactNativeFeatureFlags = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/ReactNative/ReactNativeFeatureFlags.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var ReactNativeFeatureFlags = {
|
|
isLayoutAnimationEnabled: () => true,
|
|
shouldEmitW3CPointerEvents: () => false,
|
|
shouldPressibilityUseW3CPointerEventsForHover: () => false,
|
|
animatedShouldDebounceQueueFlush: () => false,
|
|
animatedShouldUseSingleOp: () => false
|
|
};
|
|
var _default = ReactNativeFeatureFlags;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js
|
|
var require_NativeAnimatedHelper = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/NativeAnimatedHelper.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.API = void 0;
|
|
exports2.addWhitelistedInterpolationParam = addWhitelistedInterpolationParam;
|
|
exports2.addWhitelistedStyleProp = addWhitelistedStyleProp;
|
|
exports2.addWhitelistedTransformProp = addWhitelistedTransformProp;
|
|
exports2.assertNativeAnimatedModule = assertNativeAnimatedModule;
|
|
exports2.default = void 0;
|
|
exports2.generateNewAnimationId = generateNewAnimationId;
|
|
exports2.generateNewNodeTag = generateNewNodeTag;
|
|
exports2.isSupportedColorStyleProp = isSupportedColorStyleProp;
|
|
exports2.isSupportedInterpolationParam = isSupportedInterpolationParam;
|
|
exports2.isSupportedStyleProp = isSupportedStyleProp;
|
|
exports2.isSupportedTransformProp = isSupportedTransformProp;
|
|
exports2.shouldUseNativeDriver = shouldUseNativeDriver;
|
|
exports2.transformDataType = transformDataType;
|
|
exports2.validateInterpolation = validateInterpolation;
|
|
exports2.validateStyles = validateStyles;
|
|
exports2.validateTransform = validateTransform;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _NativeAnimatedModule = _interopRequireDefault(require_NativeAnimatedModule());
|
|
var _NativeAnimatedTurboModule = _interopRequireDefault(require_NativeAnimatedTurboModule());
|
|
var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter());
|
|
var _Platform = _interopRequireDefault(require_Platform2());
|
|
var _ReactNativeFeatureFlags = _interopRequireDefault(require_ReactNativeFeatureFlags());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());
|
|
var NativeAnimatedModule = _Platform.default.OS === "ios" && global.RN$Bridgeless === true ? _NativeAnimatedTurboModule.default : _NativeAnimatedModule.default;
|
|
var __nativeAnimatedNodeTagCount = 1;
|
|
var __nativeAnimationIdCount = 1;
|
|
var nativeEventEmitter;
|
|
var waitingForQueuedOperations = /* @__PURE__ */ new Set();
|
|
var queueOperations = false;
|
|
var queue = [];
|
|
var singleOpQueue = [];
|
|
var useSingleOpBatching = false;
|
|
_Platform.default.OS === "android" && !!(NativeAnimatedModule != null && NativeAnimatedModule.queueAndExecuteBatchedOperations) && _ReactNativeFeatureFlags.default.animatedShouldUseSingleOp();
|
|
var flushQueueTimeout = null;
|
|
var eventListenerGetValueCallbacks = {};
|
|
var eventListenerAnimationFinishedCallbacks = {};
|
|
var nativeOps = useSingleOpBatching ? function() {
|
|
var apis = [
|
|
"createAnimatedNode",
|
|
// 1
|
|
"updateAnimatedNodeConfig",
|
|
// 2
|
|
"getValue",
|
|
// 3
|
|
"startListeningToAnimatedNodeValue",
|
|
// 4
|
|
"stopListeningToAnimatedNodeValue",
|
|
// 5
|
|
"connectAnimatedNodes",
|
|
// 6
|
|
"disconnectAnimatedNodes",
|
|
// 7
|
|
"startAnimatingNode",
|
|
// 8
|
|
"stopAnimation",
|
|
// 9
|
|
"setAnimatedNodeValue",
|
|
// 10
|
|
"setAnimatedNodeOffset",
|
|
// 11
|
|
"flattenAnimatedNodeOffset",
|
|
// 12
|
|
"extractAnimatedNodeOffset",
|
|
// 13
|
|
"connectAnimatedNodeToView",
|
|
// 14
|
|
"disconnectAnimatedNodeFromView",
|
|
// 15
|
|
"restoreDefaultValues",
|
|
// 16
|
|
"dropAnimatedNode",
|
|
// 17
|
|
"addAnimatedEventToView",
|
|
// 18
|
|
"removeAnimatedEventFromView",
|
|
// 19
|
|
"addListener",
|
|
// 20
|
|
"removeListener"
|
|
// 21
|
|
];
|
|
return apis.reduce((acc, functionName, i) => {
|
|
acc[functionName] = i + 1;
|
|
return acc;
|
|
}, {});
|
|
}() : NativeAnimatedModule;
|
|
var API = {
|
|
getValue: /* @__PURE__ */ __name(function getValue2(tag, saveValueCallback) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
if (useSingleOpBatching) {
|
|
if (saveValueCallback) {
|
|
eventListenerGetValueCallbacks[tag] = saveValueCallback;
|
|
}
|
|
API.queueOperation(nativeOps.getValue, tag);
|
|
} else {
|
|
API.queueOperation(nativeOps.getValue, tag, saveValueCallback);
|
|
}
|
|
}, "getValue"),
|
|
setWaitingForIdentifier: /* @__PURE__ */ __name(function setWaitingForIdentifier(id) {
|
|
waitingForQueuedOperations.add(id);
|
|
queueOperations = true;
|
|
if (_ReactNativeFeatureFlags.default.animatedShouldDebounceQueueFlush() && flushQueueTimeout) {
|
|
clearTimeout(flushQueueTimeout);
|
|
}
|
|
}, "setWaitingForIdentifier"),
|
|
unsetWaitingForIdentifier: /* @__PURE__ */ __name(function unsetWaitingForIdentifier(id) {
|
|
waitingForQueuedOperations.delete(id);
|
|
if (waitingForQueuedOperations.size === 0) {
|
|
queueOperations = false;
|
|
API.disableQueue();
|
|
}
|
|
}, "unsetWaitingForIdentifier"),
|
|
disableQueue: /* @__PURE__ */ __name(function disableQueue() {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
if (_ReactNativeFeatureFlags.default.animatedShouldDebounceQueueFlush()) {
|
|
var prevTimeout = flushQueueTimeout;
|
|
clearImmediate(prevTimeout);
|
|
flushQueueTimeout = setImmediate(API.flushQueue);
|
|
} else {
|
|
API.flushQueue();
|
|
}
|
|
}, "disableQueue"),
|
|
flushQueue: /* @__PURE__ */ __name(function flushQueue() {
|
|
}, "flushQueue"),
|
|
queueOperation: /* @__PURE__ */ __name(function queueOperation(fn) {
|
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
if (useSingleOpBatching) {
|
|
singleOpQueue.push(fn, ...args);
|
|
return;
|
|
}
|
|
if (queueOperations || queue.length !== 0) {
|
|
queue.push(() => fn(...args));
|
|
} else {
|
|
fn(...args);
|
|
}
|
|
}, "queueOperation"),
|
|
createAnimatedNode: /* @__PURE__ */ __name(function createAnimatedNode(tag, config2) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.createAnimatedNode, tag, config2);
|
|
}, "createAnimatedNode"),
|
|
updateAnimatedNodeConfig: /* @__PURE__ */ __name(function updateAnimatedNodeConfig(tag, config2) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
}, "updateAnimatedNodeConfig"),
|
|
startListeningToAnimatedNodeValue: /* @__PURE__ */ __name(function startListeningToAnimatedNodeValue(tag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.startListeningToAnimatedNodeValue, tag);
|
|
}, "startListeningToAnimatedNodeValue"),
|
|
stopListeningToAnimatedNodeValue: /* @__PURE__ */ __name(function stopListeningToAnimatedNodeValue(tag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.stopListeningToAnimatedNodeValue, tag);
|
|
}, "stopListeningToAnimatedNodeValue"),
|
|
connectAnimatedNodes: /* @__PURE__ */ __name(function connectAnimatedNodes(parentTag, childTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.connectAnimatedNodes, parentTag, childTag);
|
|
}, "connectAnimatedNodes"),
|
|
disconnectAnimatedNodes: /* @__PURE__ */ __name(function disconnectAnimatedNodes(parentTag, childTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.disconnectAnimatedNodes, parentTag, childTag);
|
|
}, "disconnectAnimatedNodes"),
|
|
startAnimatingNode: /* @__PURE__ */ __name(function startAnimatingNode(animationId, nodeTag, config2, endCallback) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
if (useSingleOpBatching) {
|
|
if (endCallback) {
|
|
eventListenerAnimationFinishedCallbacks[animationId] = endCallback;
|
|
}
|
|
API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config2);
|
|
} else {
|
|
API.queueOperation(nativeOps.startAnimatingNode, animationId, nodeTag, config2, endCallback);
|
|
}
|
|
}, "startAnimatingNode"),
|
|
stopAnimation: /* @__PURE__ */ __name(function stopAnimation(animationId) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.stopAnimation, animationId);
|
|
}, "stopAnimation"),
|
|
setAnimatedNodeValue: /* @__PURE__ */ __name(function setAnimatedNodeValue(nodeTag, value) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.setAnimatedNodeValue, nodeTag, value);
|
|
}, "setAnimatedNodeValue"),
|
|
setAnimatedNodeOffset: /* @__PURE__ */ __name(function setAnimatedNodeOffset(nodeTag, offset4) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.setAnimatedNodeOffset, nodeTag, offset4);
|
|
}, "setAnimatedNodeOffset"),
|
|
flattenAnimatedNodeOffset: /* @__PURE__ */ __name(function flattenAnimatedNodeOffset(nodeTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.flattenAnimatedNodeOffset, nodeTag);
|
|
}, "flattenAnimatedNodeOffset"),
|
|
extractAnimatedNodeOffset: /* @__PURE__ */ __name(function extractAnimatedNodeOffset(nodeTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.extractAnimatedNodeOffset, nodeTag);
|
|
}, "extractAnimatedNodeOffset"),
|
|
connectAnimatedNodeToView: /* @__PURE__ */ __name(function connectAnimatedNodeToView(nodeTag, viewTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.connectAnimatedNodeToView, nodeTag, viewTag);
|
|
}, "connectAnimatedNodeToView"),
|
|
disconnectAnimatedNodeFromView: /* @__PURE__ */ __name(function disconnectAnimatedNodeFromView(nodeTag, viewTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.disconnectAnimatedNodeFromView, nodeTag, viewTag);
|
|
}, "disconnectAnimatedNodeFromView"),
|
|
restoreDefaultValues: /* @__PURE__ */ __name(function restoreDefaultValues(nodeTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
if (nativeOps.restoreDefaultValues != null) {
|
|
API.queueOperation(nativeOps.restoreDefaultValues, nodeTag);
|
|
}
|
|
}, "restoreDefaultValues"),
|
|
dropAnimatedNode: /* @__PURE__ */ __name(function dropAnimatedNode(tag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.dropAnimatedNode, tag);
|
|
}, "dropAnimatedNode"),
|
|
addAnimatedEventToView: /* @__PURE__ */ __name(function addAnimatedEventToView(viewTag, eventName, eventMapping) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.addAnimatedEventToView, viewTag, eventName, eventMapping);
|
|
}, "addAnimatedEventToView"),
|
|
removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {
|
|
(0, _invariant.default)(nativeOps, "Native animated module is not available");
|
|
API.queueOperation(nativeOps.removeAnimatedEventFromView, viewTag, eventName, animatedNodeTag);
|
|
}
|
|
};
|
|
exports2.API = API;
|
|
var SUPPORTED_COLOR_STYLES = {
|
|
backgroundColor: true,
|
|
borderBottomColor: true,
|
|
borderColor: true,
|
|
borderEndColor: true,
|
|
borderLeftColor: true,
|
|
borderRightColor: true,
|
|
borderStartColor: true,
|
|
borderTopColor: true,
|
|
color: true,
|
|
tintColor: true
|
|
};
|
|
var SUPPORTED_STYLES = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, SUPPORTED_COLOR_STYLES), {}, {
|
|
borderBottomEndRadius: true,
|
|
borderBottomLeftRadius: true,
|
|
borderBottomRightRadius: true,
|
|
borderBottomStartRadius: true,
|
|
borderRadius: true,
|
|
borderTopEndRadius: true,
|
|
borderTopLeftRadius: true,
|
|
borderTopRightRadius: true,
|
|
borderTopStartRadius: true,
|
|
elevation: true,
|
|
opacity: true,
|
|
transform: true,
|
|
zIndex: true,
|
|
/* ios styles */
|
|
shadowOpacity: true,
|
|
shadowRadius: true,
|
|
/* legacy android transform properties */
|
|
scaleX: true,
|
|
scaleY: true,
|
|
translateX: true,
|
|
translateY: true
|
|
});
|
|
var SUPPORTED_TRANSFORMS = {
|
|
translateX: true,
|
|
translateY: true,
|
|
scale: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
rotate: true,
|
|
rotateX: true,
|
|
rotateY: true,
|
|
rotateZ: true,
|
|
perspective: true
|
|
};
|
|
var SUPPORTED_INTERPOLATION_PARAMS = {
|
|
inputRange: true,
|
|
outputRange: true,
|
|
extrapolate: true,
|
|
extrapolateRight: true,
|
|
extrapolateLeft: true
|
|
};
|
|
function addWhitelistedStyleProp(prop) {
|
|
SUPPORTED_STYLES[prop] = true;
|
|
}
|
|
__name(addWhitelistedStyleProp, "addWhitelistedStyleProp");
|
|
function addWhitelistedTransformProp(prop) {
|
|
SUPPORTED_TRANSFORMS[prop] = true;
|
|
}
|
|
__name(addWhitelistedTransformProp, "addWhitelistedTransformProp");
|
|
function addWhitelistedInterpolationParam(param) {
|
|
SUPPORTED_INTERPOLATION_PARAMS[param] = true;
|
|
}
|
|
__name(addWhitelistedInterpolationParam, "addWhitelistedInterpolationParam");
|
|
function isSupportedColorStyleProp(prop) {
|
|
return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);
|
|
}
|
|
__name(isSupportedColorStyleProp, "isSupportedColorStyleProp");
|
|
function isSupportedStyleProp(prop) {
|
|
return SUPPORTED_STYLES.hasOwnProperty(prop);
|
|
}
|
|
__name(isSupportedStyleProp, "isSupportedStyleProp");
|
|
function isSupportedTransformProp(prop) {
|
|
return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);
|
|
}
|
|
__name(isSupportedTransformProp, "isSupportedTransformProp");
|
|
function isSupportedInterpolationParam(param) {
|
|
return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);
|
|
}
|
|
__name(isSupportedInterpolationParam, "isSupportedInterpolationParam");
|
|
function validateTransform(configs) {
|
|
configs.forEach((config2) => {
|
|
if (!isSupportedTransformProp(config2.property)) {
|
|
throw new Error("Property '" + config2.property + "' is not supported by native animated module");
|
|
}
|
|
});
|
|
}
|
|
__name(validateTransform, "validateTransform");
|
|
function validateStyles(styles) {
|
|
for (var _key2 in styles) {
|
|
if (!isSupportedStyleProp(_key2)) {
|
|
throw new Error("Style property '" + _key2 + "' is not supported by native animated module");
|
|
}
|
|
}
|
|
}
|
|
__name(validateStyles, "validateStyles");
|
|
function validateInterpolation(config2) {
|
|
for (var _key3 in config2) {
|
|
if (!isSupportedInterpolationParam(_key3)) {
|
|
throw new Error("Interpolation property '" + _key3 + "' is not supported by native animated module");
|
|
}
|
|
}
|
|
}
|
|
__name(validateInterpolation, "validateInterpolation");
|
|
function generateNewNodeTag() {
|
|
return __nativeAnimatedNodeTagCount++;
|
|
}
|
|
__name(generateNewNodeTag, "generateNewNodeTag");
|
|
function generateNewAnimationId() {
|
|
return __nativeAnimationIdCount++;
|
|
}
|
|
__name(generateNewAnimationId, "generateNewAnimationId");
|
|
function assertNativeAnimatedModule() {
|
|
(0, _invariant.default)(NativeAnimatedModule, "Native animated module is not available");
|
|
}
|
|
__name(assertNativeAnimatedModule, "assertNativeAnimatedModule");
|
|
var _warnedMissingNativeAnimated = false;
|
|
function shouldUseNativeDriver(config2) {
|
|
if (config2.useNativeDriver == null) {
|
|
console.warn("Animated: `useNativeDriver` was not specified. This is a required option and must be explicitly set to `true` or `false`");
|
|
}
|
|
if (config2.useNativeDriver === true && !NativeAnimatedModule) {
|
|
if (!_warnedMissingNativeAnimated) {
|
|
console.warn("Animated: `useNativeDriver` is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add `RCTAnimation` module to this app, or remove `useNativeDriver`. Make sure to run `bundle exec pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md");
|
|
_warnedMissingNativeAnimated = true;
|
|
}
|
|
return false;
|
|
}
|
|
return config2.useNativeDriver || false;
|
|
}
|
|
__name(shouldUseNativeDriver, "shouldUseNativeDriver");
|
|
function transformDataType(value) {
|
|
if (typeof value !== "string") {
|
|
return value;
|
|
}
|
|
if (/deg$/.test(value)) {
|
|
var degrees = parseFloat(value) || 0;
|
|
var radians = degrees * Math.PI / 180;
|
|
return radians;
|
|
} else {
|
|
return value;
|
|
}
|
|
}
|
|
__name(transformDataType, "transformDataType");
|
|
var _default = {
|
|
API,
|
|
isSupportedColorStyleProp,
|
|
isSupportedStyleProp,
|
|
isSupportedTransformProp,
|
|
isSupportedInterpolationParam,
|
|
addWhitelistedStyleProp,
|
|
addWhitelistedTransformProp,
|
|
addWhitelistedInterpolationParam,
|
|
validateStyles,
|
|
validateTransform,
|
|
validateInterpolation,
|
|
generateNewNodeTag,
|
|
generateNewAnimationId,
|
|
assertNativeAnimatedModule,
|
|
shouldUseNativeDriver,
|
|
transformDataType,
|
|
// $FlowExpectedError[unsafe-getters-setters] - unsafe getter lint suppresion
|
|
// $FlowExpectedError[missing-type-arg] - unsafe getter lint suppresion
|
|
get nativeEventEmitter() {
|
|
if (!nativeEventEmitter) {
|
|
nativeEventEmitter = new _NativeEventEmitter.default(
|
|
// T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
|
|
// If you want to use the native module on other platforms, please remove this condition and test its behavior
|
|
_Platform.default.OS !== "ios" ? null : NativeAnimatedModule
|
|
);
|
|
}
|
|
return nativeEventEmitter;
|
|
}
|
|
};
|
|
exports2.default = _default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js
|
|
var require_AnimatedNode = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedNode.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;
|
|
var _uniqueId = 1;
|
|
var _AnimatedNode = class _AnimatedNode {
|
|
__attach() {
|
|
}
|
|
__detach() {
|
|
if (this.__isNative && this.__nativeTag != null) {
|
|
_NativeAnimatedHelper.default.API.dropAnimatedNode(this.__nativeTag);
|
|
this.__nativeTag = void 0;
|
|
}
|
|
}
|
|
__getValue() {
|
|
}
|
|
__getAnimatedValue() {
|
|
return this.__getValue();
|
|
}
|
|
__addChild(child) {
|
|
}
|
|
__removeChild(child) {
|
|
}
|
|
__getChildren() {
|
|
return [];
|
|
}
|
|
/* Methods and props used by native Animated impl */
|
|
constructor() {
|
|
this._listeners = {};
|
|
}
|
|
__makeNative(platformConfig) {
|
|
if (!this.__isNative) {
|
|
throw new Error('This node cannot be made a "native" animated node');
|
|
}
|
|
this._platformConfig = platformConfig;
|
|
if (this.hasListeners()) {
|
|
this._startListeningToNativeValueUpdates();
|
|
}
|
|
}
|
|
/**
|
|
* Adds an asynchronous listener to the value so you can observe updates from
|
|
* animations. This is useful because there is no way to
|
|
* synchronously read the value because it might be driven natively.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#addlistener
|
|
*/
|
|
addListener(callback) {
|
|
var id = String(_uniqueId++);
|
|
this._listeners[id] = callback;
|
|
if (this.__isNative) {
|
|
this._startListeningToNativeValueUpdates();
|
|
}
|
|
return id;
|
|
}
|
|
/**
|
|
* Unregister a listener. The `id` param shall match the identifier
|
|
* previously returned by `addListener()`.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#removelistener
|
|
*/
|
|
removeListener(id) {
|
|
delete this._listeners[id];
|
|
if (this.__isNative && !this.hasListeners()) {
|
|
this._stopListeningForNativeValueUpdates();
|
|
}
|
|
}
|
|
/**
|
|
* Remove all registered listeners.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#removealllisteners
|
|
*/
|
|
removeAllListeners() {
|
|
this._listeners = {};
|
|
if (this.__isNative) {
|
|
this._stopListeningForNativeValueUpdates();
|
|
}
|
|
}
|
|
hasListeners() {
|
|
return !!Object.keys(this._listeners).length;
|
|
}
|
|
_startListeningToNativeValueUpdates() {
|
|
if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {
|
|
return;
|
|
}
|
|
if (this.__shouldUpdateListenersForNewNativeTag) {
|
|
this.__shouldUpdateListenersForNewNativeTag = false;
|
|
this._stopListeningForNativeValueUpdates();
|
|
}
|
|
NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());
|
|
this.__nativeAnimatedValueListener = _NativeAnimatedHelper.default.nativeEventEmitter.addListener("onAnimatedValueUpdate", (data) => {
|
|
if (data.tag !== this.__getNativeTag()) {
|
|
return;
|
|
}
|
|
this.__onAnimatedValueUpdateReceived(data.value);
|
|
});
|
|
}
|
|
__onAnimatedValueUpdateReceived(value) {
|
|
this.__callListeners(value);
|
|
}
|
|
__callListeners(value) {
|
|
for (var _key in this._listeners) {
|
|
this._listeners[_key]({
|
|
value
|
|
});
|
|
}
|
|
}
|
|
_stopListeningForNativeValueUpdates() {
|
|
if (!this.__nativeAnimatedValueListener) {
|
|
return;
|
|
}
|
|
this.__nativeAnimatedValueListener.remove();
|
|
this.__nativeAnimatedValueListener = null;
|
|
NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());
|
|
}
|
|
__getNativeTag() {
|
|
var _this$__nativeTag;
|
|
_NativeAnimatedHelper.default.assertNativeAnimatedModule();
|
|
(0, _invariant.default)(this.__isNative, 'Attempt to get native tag from node not marked as "native"');
|
|
var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : _NativeAnimatedHelper.default.generateNewNodeTag();
|
|
if (this.__nativeTag == null) {
|
|
this.__nativeTag = nativeTag;
|
|
var config2 = this.__getNativeConfig();
|
|
if (this._platformConfig) {
|
|
config2.platformConfig = this._platformConfig;
|
|
}
|
|
_NativeAnimatedHelper.default.API.createAnimatedNode(nativeTag, config2);
|
|
this.__shouldUpdateListenersForNewNativeTag = true;
|
|
}
|
|
return nativeTag;
|
|
}
|
|
__getNativeConfig() {
|
|
throw new Error("This JS animated node type cannot be used as native animated node");
|
|
}
|
|
toJSON() {
|
|
return this.__getValue();
|
|
}
|
|
__getPlatformConfig() {
|
|
return this._platformConfig;
|
|
}
|
|
__setPlatformConfig(platformConfig) {
|
|
this._platformConfig = platformConfig;
|
|
}
|
|
};
|
|
__name(_AnimatedNode, "AnimatedNode");
|
|
var AnimatedNode = _AnimatedNode;
|
|
var _default = AnimatedNode;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js
|
|
var require_AnimatedWithChildren = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedWithChildren.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _AnimatedWithChildren = class _AnimatedWithChildren extends _AnimatedNode.default {
|
|
constructor() {
|
|
super();
|
|
this._children = [];
|
|
}
|
|
__makeNative(platformConfig) {
|
|
if (!this.__isNative) {
|
|
this.__isNative = true;
|
|
for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this._children), _step; !(_step = _iterator()).done; ) {
|
|
var child = _step.value;
|
|
child.__makeNative(platformConfig);
|
|
_NativeAnimatedHelper.default.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
|
|
}
|
|
}
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__addChild(child) {
|
|
if (this._children.length === 0) {
|
|
this.__attach();
|
|
}
|
|
this._children.push(child);
|
|
if (this.__isNative) {
|
|
child.__makeNative(this.__getPlatformConfig());
|
|
_NativeAnimatedHelper.default.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
|
|
}
|
|
}
|
|
__removeChild(child) {
|
|
var index3 = this._children.indexOf(child);
|
|
if (index3 === -1) {
|
|
console.warn("Trying to remove a child that doesn't exist");
|
|
return;
|
|
}
|
|
if (this.__isNative && child.__isNative) {
|
|
_NativeAnimatedHelper.default.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());
|
|
}
|
|
this._children.splice(index3, 1);
|
|
if (this._children.length === 0) {
|
|
this.__detach();
|
|
}
|
|
}
|
|
__getChildren() {
|
|
return this._children;
|
|
}
|
|
__callListeners(value) {
|
|
super.__callListeners(value);
|
|
if (!this.__isNative) {
|
|
for (var _iterator2 = (0, _createForOfIteratorHelperLoose2.default)(this._children), _step2; !(_step2 = _iterator2()).done; ) {
|
|
var child = _step2.value;
|
|
if (child.__getValue) {
|
|
child.__callListeners(child.__getValue());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
__name(_AnimatedWithChildren, "AnimatedWithChildren");
|
|
var AnimatedWithChildren = _AnimatedWithChildren;
|
|
var _default = AnimatedWithChildren;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js
|
|
var require_AnimatedInterpolation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedInterpolation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _normalizeColors = _interopRequireDefault(require_normalize_colors());
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
var linear = /* @__PURE__ */ __name((t) => t, "linear");
|
|
function createInterpolation(config2) {
|
|
if (config2.outputRange && typeof config2.outputRange[0] === "string") {
|
|
return createInterpolationFromStringOutputRange(config2);
|
|
}
|
|
var outputRange = config2.outputRange;
|
|
var inputRange = config2.inputRange;
|
|
if (__DEV__) {
|
|
checkInfiniteRange("outputRange", outputRange);
|
|
checkInfiniteRange("inputRange", inputRange);
|
|
checkValidInputRange(inputRange);
|
|
(0, _invariant.default)(inputRange.length === outputRange.length, "inputRange (" + inputRange.length + ") and outputRange (" + outputRange.length + ") must have the same length");
|
|
}
|
|
var easing = config2.easing || linear;
|
|
var extrapolateLeft = "extend";
|
|
if (config2.extrapolateLeft !== void 0) {
|
|
extrapolateLeft = config2.extrapolateLeft;
|
|
} else if (config2.extrapolate !== void 0) {
|
|
extrapolateLeft = config2.extrapolate;
|
|
}
|
|
var extrapolateRight = "extend";
|
|
if (config2.extrapolateRight !== void 0) {
|
|
extrapolateRight = config2.extrapolateRight;
|
|
} else if (config2.extrapolate !== void 0) {
|
|
extrapolateRight = config2.extrapolate;
|
|
}
|
|
return (input) => {
|
|
(0, _invariant.default)(typeof input === "number", "Cannot interpolation an input which is not a number");
|
|
var range = findRange(input, inputRange);
|
|
return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);
|
|
};
|
|
}
|
|
__name(createInterpolation, "createInterpolation");
|
|
function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {
|
|
var result = input;
|
|
if (result < inputMin) {
|
|
if (extrapolateLeft === "identity") {
|
|
return result;
|
|
} else if (extrapolateLeft === "clamp") {
|
|
result = inputMin;
|
|
} else if (extrapolateLeft === "extend") {
|
|
}
|
|
}
|
|
if (result > inputMax) {
|
|
if (extrapolateRight === "identity") {
|
|
return result;
|
|
} else if (extrapolateRight === "clamp") {
|
|
result = inputMax;
|
|
} else if (extrapolateRight === "extend") {
|
|
}
|
|
}
|
|
if (outputMin === outputMax) {
|
|
return outputMin;
|
|
}
|
|
if (inputMin === inputMax) {
|
|
if (input <= inputMin) {
|
|
return outputMin;
|
|
}
|
|
return outputMax;
|
|
}
|
|
if (inputMin === -Infinity) {
|
|
result = -result;
|
|
} else if (inputMax === Infinity) {
|
|
result = result - inputMin;
|
|
} else {
|
|
result = (result - inputMin) / (inputMax - inputMin);
|
|
}
|
|
result = easing(result);
|
|
if (outputMin === -Infinity) {
|
|
result = -result;
|
|
} else if (outputMax === Infinity) {
|
|
result = result + outputMin;
|
|
} else {
|
|
result = result * (outputMax - outputMin) + outputMin;
|
|
}
|
|
return result;
|
|
}
|
|
__name(interpolate, "interpolate");
|
|
function colorToRgba(input) {
|
|
var normalizedColor = (0, _normalizeColors.default)(input);
|
|
if (normalizedColor === null || typeof normalizedColor !== "number") {
|
|
return input;
|
|
}
|
|
normalizedColor = normalizedColor || 0;
|
|
var r = (normalizedColor & 4278190080) >>> 24;
|
|
var g = (normalizedColor & 16711680) >>> 16;
|
|
var b = (normalizedColor & 65280) >>> 8;
|
|
var a = (normalizedColor & 255) / 255;
|
|
return "rgba(" + r + ", " + g + ", " + b + ", " + a + ")";
|
|
}
|
|
__name(colorToRgba, "colorToRgba");
|
|
var stringShapeRegex = /[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/g;
|
|
function createInterpolationFromStringOutputRange(config2) {
|
|
var outputRange = config2.outputRange;
|
|
(0, _invariant.default)(outputRange.length >= 2, "Bad output range");
|
|
outputRange = outputRange.map(colorToRgba);
|
|
checkPattern(outputRange);
|
|
var outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);
|
|
outputRange.forEach((value) => {
|
|
value.match(stringShapeRegex).forEach((number, i) => {
|
|
outputRanges[i].push(+number);
|
|
});
|
|
});
|
|
var interpolations = outputRange[0].match(stringShapeRegex).map((value, i) => {
|
|
return createInterpolation((0, _objectSpread2.default)((0, _objectSpread2.default)({}, config2), {}, {
|
|
outputRange: outputRanges[i]
|
|
}));
|
|
});
|
|
var shouldRound = isRgbOrRgba(outputRange[0]);
|
|
return (input) => {
|
|
var i = 0;
|
|
return outputRange[0].replace(stringShapeRegex, () => {
|
|
var val = +interpolations[i++](input);
|
|
if (shouldRound) {
|
|
val = i < 4 ? Math.round(val) : Math.round(val * 1e3) / 1e3;
|
|
}
|
|
return String(val);
|
|
});
|
|
};
|
|
}
|
|
__name(createInterpolationFromStringOutputRange, "createInterpolationFromStringOutputRange");
|
|
function isRgbOrRgba(range) {
|
|
return typeof range === "string" && range.startsWith("rgb");
|
|
}
|
|
__name(isRgbOrRgba, "isRgbOrRgba");
|
|
function checkPattern(arr) {
|
|
var pattern = arr[0].replace(stringShapeRegex, "");
|
|
for (var i = 1; i < arr.length; ++i) {
|
|
(0, _invariant.default)(pattern === arr[i].replace(stringShapeRegex, ""), "invalid pattern " + arr[0] + " and " + arr[i]);
|
|
}
|
|
}
|
|
__name(checkPattern, "checkPattern");
|
|
function findRange(input, inputRange) {
|
|
var i;
|
|
for (i = 1; i < inputRange.length - 1; ++i) {
|
|
if (inputRange[i] >= input) {
|
|
break;
|
|
}
|
|
}
|
|
return i - 1;
|
|
}
|
|
__name(findRange, "findRange");
|
|
function checkValidInputRange(arr) {
|
|
(0, _invariant.default)(arr.length >= 2, "inputRange must have at least 2 elements");
|
|
var message = "inputRange must be monotonically non-decreasing " + String(arr);
|
|
for (var i = 1; i < arr.length; ++i) {
|
|
(0, _invariant.default)(arr[i] >= arr[i - 1], message);
|
|
}
|
|
}
|
|
__name(checkValidInputRange, "checkValidInputRange");
|
|
function checkInfiniteRange(name, arr) {
|
|
(0, _invariant.default)(arr.length >= 2, name + " must have at least 2 elements");
|
|
(0, _invariant.default)(
|
|
arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,
|
|
/* $FlowFixMe[incompatible-type] (>=0.13.0) - In the addition expression
|
|
* below this comment, one or both of the operands may be something that
|
|
* doesn't cleanly convert to a string, like undefined, null, and object,
|
|
* etc. If you really mean this implicit string conversion, you can do
|
|
* something like String(myThing) */
|
|
name + "cannot be ]-infinity;+infinity[ " + arr
|
|
);
|
|
}
|
|
__name(checkInfiniteRange, "checkInfiniteRange");
|
|
var _AnimatedInterpolation = class _AnimatedInterpolation extends _AnimatedWithChildren.default {
|
|
// Export for testing.
|
|
constructor(parent, config2) {
|
|
super();
|
|
this._parent = parent;
|
|
this._config = config2;
|
|
this._interpolation = createInterpolation(config2);
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._parent.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
var parentValue = this._parent.__getValue();
|
|
(0, _invariant.default)(typeof parentValue === "number", "Cannot interpolate an input which is not a number.");
|
|
return this._interpolation(parentValue);
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation(this, config2);
|
|
}
|
|
__attach() {
|
|
this._parent.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._parent.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__transformDataType(range) {
|
|
return range.map(_NativeAnimatedHelper.default.transformDataType);
|
|
}
|
|
__getNativeConfig() {
|
|
if (__DEV__) {
|
|
_NativeAnimatedHelper.default.validateInterpolation(this._config);
|
|
}
|
|
return {
|
|
inputRange: this._config.inputRange,
|
|
// Only the `outputRange` can contain strings so we don't need to transform `inputRange` here
|
|
outputRange: this.__transformDataType(this._config.outputRange),
|
|
extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || "extend",
|
|
extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || "extend",
|
|
type: "interpolation"
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedInterpolation, "AnimatedInterpolation");
|
|
var AnimatedInterpolation = _AnimatedInterpolation;
|
|
AnimatedInterpolation.__createInterpolation = createInterpolation;
|
|
var _default = AnimatedInterpolation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js
|
|
var require_AnimatedValue = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValue.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _InteractionManager = _interopRequireDefault(require_InteractionManager());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;
|
|
function _flush(rootNode) {
|
|
var animatedStyles = /* @__PURE__ */ new Set();
|
|
function findAnimatedStyles(node) {
|
|
if (typeof node.update === "function") {
|
|
animatedStyles.add(node);
|
|
} else {
|
|
node.__getChildren().forEach(findAnimatedStyles);
|
|
}
|
|
}
|
|
__name(findAnimatedStyles, "findAnimatedStyles");
|
|
findAnimatedStyles(rootNode);
|
|
animatedStyles.forEach((animatedStyle) => animatedStyle.update());
|
|
}
|
|
__name(_flush, "_flush");
|
|
function _executeAsAnimatedBatch(id, operation) {
|
|
NativeAnimatedAPI.setWaitingForIdentifier(id);
|
|
operation();
|
|
NativeAnimatedAPI.unsetWaitingForIdentifier(id);
|
|
}
|
|
__name(_executeAsAnimatedBatch, "_executeAsAnimatedBatch");
|
|
var _AnimatedValue = class _AnimatedValue extends _AnimatedWithChildren.default {
|
|
constructor(value, config2) {
|
|
super();
|
|
if (typeof value !== "number") {
|
|
throw new Error("AnimatedValue: Attempting to set value to undefined");
|
|
}
|
|
this._startingValue = this._value = value;
|
|
this._offset = 0;
|
|
this._animation = null;
|
|
if (config2 && config2.useNativeDriver) {
|
|
this.__makeNative();
|
|
}
|
|
}
|
|
__detach() {
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.getValue(this.__getNativeTag(), (value) => {
|
|
this._value = value - this._offset;
|
|
});
|
|
}
|
|
this.stopAnimation();
|
|
super.__detach();
|
|
}
|
|
__getValue() {
|
|
return this._value + this._offset;
|
|
}
|
|
/**
|
|
* Directly set the value. This will stop any animations running on the value
|
|
* and update all the bound properties.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#setvalue
|
|
*/
|
|
setValue(value) {
|
|
if (this._animation) {
|
|
this._animation.stop();
|
|
this._animation = null;
|
|
}
|
|
this._updateValue(
|
|
value,
|
|
!this.__isNative
|
|
/* don't perform a flush for natively driven values */
|
|
);
|
|
if (this.__isNative) {
|
|
_executeAsAnimatedBatch(this.__getNativeTag().toString(), () => NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value));
|
|
}
|
|
}
|
|
/**
|
|
* Sets an offset that is applied on top of whatever value is set, whether via
|
|
* `setValue`, an animation, or `Animated.event`. Useful for compensating
|
|
* things like the start of a pan gesture.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#setoffset
|
|
*/
|
|
setOffset(offset4) {
|
|
this._offset = offset4;
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset4);
|
|
}
|
|
}
|
|
/**
|
|
* Merges the offset value into the base value and resets the offset to zero.
|
|
* The final output of the value is unchanged.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#flattenoffset
|
|
*/
|
|
flattenOffset() {
|
|
this._value += this._offset;
|
|
this._offset = 0;
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());
|
|
}
|
|
}
|
|
/**
|
|
* Sets the offset value to the base value, and resets the base value to zero.
|
|
* The final output of the value is unchanged.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#extractoffset
|
|
*/
|
|
extractOffset() {
|
|
this._offset += this._value;
|
|
this._value = 0;
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());
|
|
}
|
|
}
|
|
/**
|
|
* Stops any running animation or tracking. `callback` is invoked with the
|
|
* final value after stopping the animation, which is useful for updating
|
|
* state to match the animation position with layout.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#stopanimation
|
|
*/
|
|
stopAnimation(callback) {
|
|
this.stopTracking();
|
|
this._animation && this._animation.stop();
|
|
this._animation = null;
|
|
if (callback) {
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.getValue(this.__getNativeTag(), callback);
|
|
} else {
|
|
callback(this.__getValue());
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Stops any animation and resets the value to its original.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#resetanimation
|
|
*/
|
|
resetAnimation(callback) {
|
|
this.stopAnimation(callback);
|
|
this._value = this._startingValue;
|
|
if (this.__isNative) {
|
|
NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), this._startingValue);
|
|
}
|
|
}
|
|
__onAnimatedValueUpdateReceived(value) {
|
|
this._updateValue(
|
|
value,
|
|
false
|
|
/*flush*/
|
|
);
|
|
}
|
|
/**
|
|
* Interpolates the value before updating the property, e.g. mapping 0-1 to
|
|
* 0-10.
|
|
*/
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
/**
|
|
* Typically only used internally, but could be used by a custom Animation
|
|
* class.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvalue#animate
|
|
*/
|
|
animate(animation, callback) {
|
|
var handle = null;
|
|
if (animation.__isInteraction) {
|
|
handle = _InteractionManager.default.createInteractionHandle();
|
|
}
|
|
var previousAnimation = this._animation;
|
|
this._animation && this._animation.stop();
|
|
this._animation = animation;
|
|
animation.start(this._value, (value) => {
|
|
this._updateValue(
|
|
value,
|
|
true
|
|
/* flush */
|
|
);
|
|
}, (result) => {
|
|
this._animation = null;
|
|
if (handle !== null) {
|
|
_InteractionManager.default.clearInteractionHandle(handle);
|
|
}
|
|
callback && callback(result);
|
|
}, previousAnimation, this);
|
|
}
|
|
/**
|
|
* Typically only used internally.
|
|
*/
|
|
stopTracking() {
|
|
this._tracking && this._tracking.__detach();
|
|
this._tracking = null;
|
|
}
|
|
/**
|
|
* Typically only used internally.
|
|
*/
|
|
track(tracking) {
|
|
this.stopTracking();
|
|
this._tracking = tracking;
|
|
this._tracking && this._tracking.update();
|
|
}
|
|
_updateValue(value, flush) {
|
|
if (value === void 0) {
|
|
throw new Error("AnimatedValue: Attempting to set value to undefined");
|
|
}
|
|
this._value = value;
|
|
if (flush) {
|
|
_flush(this);
|
|
}
|
|
super.__callListeners(this.__getValue());
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "value",
|
|
value: this._value,
|
|
offset: this._offset
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedValue, "AnimatedValue");
|
|
var AnimatedValue = _AnimatedValue;
|
|
var _default = AnimatedValue;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js
|
|
var require_AnimatedEvent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedEvent.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.AnimatedEvent = void 0;
|
|
exports2.attachNativeEvent = attachNativeEvent;
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _NativeAnimatedHelper = _interopRequireWildcard(require_NativeAnimatedHelper());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
function attachNativeEvent(viewRef, eventName, argMapping) {
|
|
var eventMappings = [];
|
|
var traverse = /* @__PURE__ */ __name((value, path) => {
|
|
if (value instanceof _AnimatedValue.default) {
|
|
value.__makeNative();
|
|
eventMappings.push({
|
|
nativeEventPath: path,
|
|
animatedValueTag: value.__getNativeTag()
|
|
});
|
|
} else if (typeof value === "object") {
|
|
for (var _key in value) {
|
|
traverse(value[_key], path.concat(_key));
|
|
}
|
|
}
|
|
}, "traverse");
|
|
(0, _invariant.default)(argMapping[0] && argMapping[0].nativeEvent, "Native driven events only support animated values contained inside `nativeEvent`.");
|
|
traverse(argMapping[0].nativeEvent, []);
|
|
if (viewRef != null) {
|
|
eventMappings.forEach((mapping) => {
|
|
_NativeAnimatedHelper.default.API.addAnimatedEventToView(viewRef, eventName, mapping);
|
|
});
|
|
}
|
|
return {
|
|
detach() {
|
|
if (viewRef != null) {
|
|
eventMappings.forEach((mapping) => {
|
|
_NativeAnimatedHelper.default.API.removeAnimatedEventFromView(
|
|
viewRef,
|
|
eventName,
|
|
// $FlowFixMe[incompatible-call]
|
|
mapping.animatedValueTag
|
|
);
|
|
});
|
|
}
|
|
}
|
|
};
|
|
}
|
|
__name(attachNativeEvent, "attachNativeEvent");
|
|
function validateMapping(argMapping, args) {
|
|
var validate = /* @__PURE__ */ __name((recMapping, recEvt, key) => {
|
|
if (recMapping instanceof _AnimatedValue.default) {
|
|
(0, _invariant.default)(typeof recEvt === "number", "Bad mapping of event key " + key + ", should be number but got " + typeof recEvt);
|
|
return;
|
|
}
|
|
if (typeof recEvt === "number") {
|
|
(0, _invariant.default)(recMapping instanceof _AnimatedValue.default, "Bad mapping of type " + typeof recMapping + " for key " + key + ", event value must map to AnimatedValue");
|
|
return;
|
|
}
|
|
(0, _invariant.default)(typeof recMapping === "object", "Bad mapping of type " + typeof recMapping + " for key " + key);
|
|
(0, _invariant.default)(typeof recEvt === "object", "Bad event of type " + typeof recEvt + " for key " + key);
|
|
for (var mappingKey in recMapping) {
|
|
validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);
|
|
}
|
|
}, "validate");
|
|
(0, _invariant.default)(args.length >= argMapping.length, "Event has less arguments than mapping");
|
|
argMapping.forEach((mapping, idx) => {
|
|
validate(mapping, args[idx], "arg" + idx);
|
|
});
|
|
}
|
|
__name(validateMapping, "validateMapping");
|
|
var _AnimatedEvent = class _AnimatedEvent {
|
|
constructor(argMapping, config2) {
|
|
this._listeners = [];
|
|
this._argMapping = argMapping;
|
|
if (config2 == null) {
|
|
console.warn("Animated.event now requires a second argument for options");
|
|
config2 = {
|
|
useNativeDriver: false
|
|
};
|
|
}
|
|
if (config2.listener) {
|
|
this.__addListener(config2.listener);
|
|
}
|
|
this._callListeners = this._callListeners.bind(this);
|
|
this._attachedEvent = null;
|
|
this.__isNative = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config2);
|
|
}
|
|
__addListener(callback) {
|
|
this._listeners.push(callback);
|
|
}
|
|
__removeListener(callback) {
|
|
this._listeners = this._listeners.filter((listener) => listener !== callback);
|
|
}
|
|
__attach(viewRef, eventName) {
|
|
(0, _invariant.default)(this.__isNative, "Only native driven events need to be attached.");
|
|
this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);
|
|
}
|
|
__detach(viewTag, eventName) {
|
|
(0, _invariant.default)(this.__isNative, "Only native driven events need to be detached.");
|
|
this._attachedEvent && this._attachedEvent.detach();
|
|
}
|
|
__getHandler() {
|
|
var _this = this;
|
|
if (this.__isNative) {
|
|
if (__DEV__) {
|
|
var _validatedMapping = false;
|
|
return function() {
|
|
for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
|
|
args[_key2] = arguments[_key2];
|
|
}
|
|
if (!_validatedMapping) {
|
|
validateMapping(_this._argMapping, args);
|
|
_validatedMapping = true;
|
|
}
|
|
_this._callListeners(...args);
|
|
};
|
|
} else {
|
|
return this._callListeners;
|
|
}
|
|
}
|
|
var validatedMapping = false;
|
|
return function() {
|
|
for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
|
|
args[_key3] = arguments[_key3];
|
|
}
|
|
if (__DEV__ && !validatedMapping) {
|
|
validateMapping(_this._argMapping, args);
|
|
validatedMapping = true;
|
|
}
|
|
var traverse = /* @__PURE__ */ __name((recMapping, recEvt, key) => {
|
|
if (recMapping instanceof _AnimatedValue.default) {
|
|
if (typeof recEvt === "number") {
|
|
recMapping.setValue(recEvt);
|
|
}
|
|
} else if (typeof recMapping === "object") {
|
|
for (var mappingKey in recMapping) {
|
|
traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);
|
|
}
|
|
}
|
|
}, "traverse");
|
|
_this._argMapping.forEach((mapping, idx) => {
|
|
traverse(mapping, args[idx], "arg" + idx);
|
|
});
|
|
_this._callListeners(...args);
|
|
};
|
|
}
|
|
_callListeners() {
|
|
for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {
|
|
args[_key4] = arguments[_key4];
|
|
}
|
|
this._listeners.forEach((listener) => listener(...args));
|
|
}
|
|
};
|
|
__name(_AnimatedEvent, "AnimatedEvent");
|
|
var AnimatedEvent = _AnimatedEvent;
|
|
exports2.AnimatedEvent = AnimatedEvent;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js
|
|
var require_AnimatedTransform = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTransform.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _AnimatedTransform = class _AnimatedTransform extends _AnimatedWithChildren.default {
|
|
constructor(transforms) {
|
|
super();
|
|
this._transforms = transforms;
|
|
}
|
|
__makeNative() {
|
|
this._transforms.forEach((transform) => {
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__makeNative();
|
|
}
|
|
}
|
|
});
|
|
super.__makeNative();
|
|
}
|
|
__getValue() {
|
|
return this._transforms.map((transform) => {
|
|
var result = {};
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
result[key] = value.__getValue();
|
|
} else {
|
|
result[key] = value;
|
|
}
|
|
}
|
|
return result;
|
|
});
|
|
}
|
|
__getAnimatedValue() {
|
|
return this._transforms.map((transform) => {
|
|
var result = {};
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
result[key] = value.__getAnimatedValue();
|
|
} else {
|
|
result[key] = value;
|
|
}
|
|
}
|
|
return result;
|
|
});
|
|
}
|
|
__attach() {
|
|
this._transforms.forEach((transform) => {
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__addChild(this);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
__detach() {
|
|
this._transforms.forEach((transform) => {
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__removeChild(this);
|
|
}
|
|
}
|
|
});
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
var transConfigs = [];
|
|
this._transforms.forEach((transform) => {
|
|
for (var key in transform) {
|
|
var value = transform[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
transConfigs.push({
|
|
type: "animated",
|
|
property: key,
|
|
nodeTag: value.__getNativeTag()
|
|
});
|
|
} else {
|
|
transConfigs.push({
|
|
type: "static",
|
|
property: key,
|
|
value: _NativeAnimatedHelper.default.transformDataType(value)
|
|
});
|
|
}
|
|
}
|
|
});
|
|
_NativeAnimatedHelper.default.validateTransform(transConfigs);
|
|
return {
|
|
type: "transform",
|
|
transforms: transConfigs
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedTransform, "AnimatedTransform");
|
|
var AnimatedTransform = _AnimatedTransform;
|
|
var _default = AnimatedTransform;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js
|
|
var require_AnimatedStyle = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedStyle.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedTransform = _interopRequireDefault(require_AnimatedTransform());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var flattenStyle = _StyleSheet.default.flatten;
|
|
function createAnimatedStyle(inputStyle) {
|
|
var style = flattenStyle(inputStyle);
|
|
var animatedStyles = {};
|
|
for (var key in style) {
|
|
var value = style[key];
|
|
if (key === "transform" && Array.isArray(value)) {
|
|
animatedStyles[key] = new _AnimatedTransform.default(value);
|
|
} else if (value instanceof _AnimatedNode.default) {
|
|
animatedStyles[key] = value;
|
|
} else if (value && !Array.isArray(value) && typeof value === "object") {
|
|
animatedStyles[key] = createAnimatedStyle(value);
|
|
}
|
|
}
|
|
return animatedStyles;
|
|
}
|
|
__name(createAnimatedStyle, "createAnimatedStyle");
|
|
var _AnimatedStyle = class _AnimatedStyle extends _AnimatedWithChildren.default {
|
|
constructor(style) {
|
|
super();
|
|
this._inputStyle = style;
|
|
this._style = createAnimatedStyle(style);
|
|
}
|
|
// Recursively get values for nested styles (like iOS's shadowOffset)
|
|
_walkStyleAndGetValues(style) {
|
|
var updatedStyle = {};
|
|
for (var key in style) {
|
|
var value = style[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
if (!value.__isNative) {
|
|
updatedStyle[key] = value.__getValue();
|
|
}
|
|
} else if (value && !Array.isArray(value) && typeof value === "object") {
|
|
updatedStyle[key] = this._walkStyleAndGetValues(value);
|
|
} else {
|
|
updatedStyle[key] = value;
|
|
}
|
|
}
|
|
return updatedStyle;
|
|
}
|
|
__getValue() {
|
|
return [this._inputStyle, this._walkStyleAndGetValues(this._style)];
|
|
}
|
|
// Recursively get animated values for nested styles (like iOS's shadowOffset)
|
|
_walkStyleAndGetAnimatedValues(style) {
|
|
var updatedStyle = {};
|
|
for (var key in style) {
|
|
var value = style[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
updatedStyle[key] = value.__getAnimatedValue();
|
|
} else if (value && !Array.isArray(value) && typeof value === "object") {
|
|
updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);
|
|
}
|
|
}
|
|
return updatedStyle;
|
|
}
|
|
__getAnimatedValue() {
|
|
return this._walkStyleAndGetAnimatedValues(this._style);
|
|
}
|
|
__attach() {
|
|
for (var key in this._style) {
|
|
var value = this._style[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__addChild(this);
|
|
}
|
|
}
|
|
}
|
|
__detach() {
|
|
for (var key in this._style) {
|
|
var value = this._style[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__removeChild(this);
|
|
}
|
|
}
|
|
super.__detach();
|
|
}
|
|
__makeNative() {
|
|
for (var key in this._style) {
|
|
var value = this._style[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__makeNative();
|
|
}
|
|
}
|
|
super.__makeNative();
|
|
}
|
|
__getNativeConfig() {
|
|
var styleConfig = {};
|
|
for (var styleKey in this._style) {
|
|
if (this._style[styleKey] instanceof _AnimatedNode.default) {
|
|
var style = this._style[styleKey];
|
|
style.__makeNative();
|
|
styleConfig[styleKey] = style.__getNativeTag();
|
|
}
|
|
}
|
|
_NativeAnimatedHelper.default.validateStyles(styleConfig);
|
|
return {
|
|
type: "style",
|
|
style: styleConfig
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedStyle, "AnimatedStyle");
|
|
var AnimatedStyle = _AnimatedStyle;
|
|
var _default = AnimatedStyle;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js
|
|
var require_AnimatedProps = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedProps.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedEvent = require_AnimatedEvent();
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedStyle = _interopRequireDefault(require_AnimatedStyle());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _AnimatedProps = class _AnimatedProps extends _AnimatedNode.default {
|
|
constructor(props, callback) {
|
|
super();
|
|
if (props.style) {
|
|
props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
|
style: new _AnimatedStyle.default(props.style)
|
|
});
|
|
}
|
|
this._props = props;
|
|
this._callback = callback;
|
|
this.__attach();
|
|
}
|
|
__getValue() {
|
|
var props = {};
|
|
for (var key in this._props) {
|
|
var value = this._props[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
if (!value.__isNative || value instanceof _AnimatedStyle.default) {
|
|
props[key] = value.__getValue();
|
|
}
|
|
} else if (value instanceof _AnimatedEvent.AnimatedEvent) {
|
|
props[key] = value.__getHandler();
|
|
} else {
|
|
props[key] = value;
|
|
}
|
|
}
|
|
return props;
|
|
}
|
|
__getAnimatedValue() {
|
|
var props = {};
|
|
for (var key in this._props) {
|
|
var value = this._props[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
props[key] = value.__getAnimatedValue();
|
|
}
|
|
}
|
|
return props;
|
|
}
|
|
__attach() {
|
|
for (var key in this._props) {
|
|
var value = this._props[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__addChild(this);
|
|
}
|
|
}
|
|
}
|
|
__detach() {
|
|
if (this.__isNative && this._animatedView) {
|
|
this.__disconnectAnimatedView();
|
|
}
|
|
for (var key in this._props) {
|
|
var value = this._props[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__removeChild(this);
|
|
}
|
|
}
|
|
super.__detach();
|
|
}
|
|
update() {
|
|
this._callback();
|
|
}
|
|
__makeNative() {
|
|
if (!this.__isNative) {
|
|
this.__isNative = true;
|
|
for (var key in this._props) {
|
|
var value = this._props[key];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__makeNative();
|
|
}
|
|
}
|
|
if (this._animatedView) {
|
|
this.__connectAnimatedView();
|
|
}
|
|
}
|
|
}
|
|
setNativeView(animatedView) {
|
|
if (this._animatedView === animatedView) {
|
|
return;
|
|
}
|
|
this._animatedView = animatedView;
|
|
if (this.__isNative) {
|
|
this.__connectAnimatedView();
|
|
}
|
|
}
|
|
__connectAnimatedView() {
|
|
(0, _invariant.default)(this.__isNative, 'Expected node to be marked as "native"');
|
|
var nativeViewTag = this._animatedView;
|
|
(0, _invariant.default)(nativeViewTag != null, "Unable to locate attached view in the native tree");
|
|
_NativeAnimatedHelper.default.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);
|
|
}
|
|
__disconnectAnimatedView() {
|
|
(0, _invariant.default)(this.__isNative, 'Expected node to be marked as "native"');
|
|
var nativeViewTag = this._animatedView;
|
|
(0, _invariant.default)(nativeViewTag != null, "Unable to locate attached view in the native tree");
|
|
_NativeAnimatedHelper.default.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);
|
|
}
|
|
__restoreDefaultValues() {
|
|
if (this.__isNative) {
|
|
_NativeAnimatedHelper.default.API.restoreDefaultValues(this.__getNativeTag());
|
|
}
|
|
}
|
|
__getNativeConfig() {
|
|
var propsConfig = {};
|
|
for (var propKey in this._props) {
|
|
var value = this._props[propKey];
|
|
if (value instanceof _AnimatedNode.default) {
|
|
value.__makeNative();
|
|
propsConfig[propKey] = value.__getNativeTag();
|
|
}
|
|
}
|
|
return {
|
|
type: "props",
|
|
props: propsConfig
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedProps, "AnimatedProps");
|
|
var AnimatedProps = _AnimatedProps;
|
|
var _default = AnimatedProps;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useRefEffect.js
|
|
var require_useRefEffect = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useRefEffect.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = useRefEffect;
|
|
var _react = require("react");
|
|
function useRefEffect(effect) {
|
|
var cleanupRef = (0, _react.useRef)(void 0);
|
|
return (0, _react.useCallback)((instance) => {
|
|
if (cleanupRef.current) {
|
|
cleanupRef.current();
|
|
cleanupRef.current = void 0;
|
|
}
|
|
if (instance != null) {
|
|
cleanupRef.current = effect(instance);
|
|
}
|
|
}, [effect]);
|
|
}
|
|
__name(useRefEffect, "useRefEffect");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js
|
|
var require_useAnimatedProps = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/useAnimatedProps.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useAnimatedProps;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedProps = _interopRequireDefault(require_AnimatedProps());
|
|
var _AnimatedEvent = require_AnimatedEvent();
|
|
var _useRefEffect = _interopRequireDefault(require_useRefEffect());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var _react = require("react");
|
|
var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());
|
|
function useAnimatedProps(props) {
|
|
var _useReducer = (0, _react.useReducer)((count2) => count2 + 1, 0), scheduleUpdate = _useReducer[1];
|
|
var onUpdateRef = (0, _react.useRef)(null);
|
|
var node = (0, _react.useMemo)(() => new _AnimatedProps.default(props, () => onUpdateRef.current == null ? void 0 : onUpdateRef.current()), [props]);
|
|
useAnimatedPropsLifecycle(node);
|
|
var refEffect = (0, _react.useCallback)((instance) => {
|
|
node.setNativeView(instance);
|
|
onUpdateRef.current = () => {
|
|
scheduleUpdate();
|
|
};
|
|
var target = getEventTarget(instance);
|
|
var events = [];
|
|
for (var propName in props) {
|
|
var propValue = props[propName];
|
|
if (propValue instanceof _AnimatedEvent.AnimatedEvent && propValue.__isNative) {
|
|
propValue.__attach(target, propName);
|
|
events.push([propName, propValue]);
|
|
}
|
|
}
|
|
return () => {
|
|
onUpdateRef.current = null;
|
|
for (var _i = 0, _events = events; _i < _events.length; _i++) {
|
|
var _events$_i = _events[_i], _propName = _events$_i[0], _propValue = _events$_i[1];
|
|
_propValue.__detach(target, _propName);
|
|
}
|
|
};
|
|
}, [props, node]);
|
|
var callbackRef = (0, _useRefEffect.default)(refEffect);
|
|
return [reduceAnimatedProps(node), callbackRef];
|
|
}
|
|
__name(useAnimatedProps, "useAnimatedProps");
|
|
function reduceAnimatedProps(node) {
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, node.__getValue()), {}, {
|
|
collapsable: false
|
|
});
|
|
}
|
|
__name(reduceAnimatedProps, "reduceAnimatedProps");
|
|
function useAnimatedPropsLifecycle(node) {
|
|
var prevNodeRef = (0, _react.useRef)(null);
|
|
var isUnmountingRef = (0, _react.useRef)(false);
|
|
(0, _react.useEffect)(() => {
|
|
_NativeAnimatedHelper.default.API.flushQueue();
|
|
});
|
|
(0, _useLayoutEffect.default)(() => {
|
|
isUnmountingRef.current = false;
|
|
return () => {
|
|
isUnmountingRef.current = true;
|
|
};
|
|
}, []);
|
|
(0, _useLayoutEffect.default)(() => {
|
|
node.__attach();
|
|
if (prevNodeRef.current != null) {
|
|
var prevNode = prevNodeRef.current;
|
|
prevNode.__restoreDefaultValues();
|
|
prevNode.__detach();
|
|
prevNodeRef.current = null;
|
|
}
|
|
return () => {
|
|
if (isUnmountingRef.current) {
|
|
node.__detach();
|
|
} else {
|
|
prevNodeRef.current = node;
|
|
}
|
|
};
|
|
}, [node]);
|
|
}
|
|
__name(useAnimatedPropsLifecycle, "useAnimatedPropsLifecycle");
|
|
function getEventTarget(instance) {
|
|
return typeof instance === "object" && typeof (instance == null ? void 0 : instance.getScrollableNode) === "function" ? (
|
|
// $FlowFixMe[incompatible-use] - Legacy instance assumptions.
|
|
instance.getScrollableNode()
|
|
) : instance;
|
|
}
|
|
__name(getEventTarget, "getEventTarget");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js
|
|
var require_useMergeRefs2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Utilities/useMergeRefs.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = useMergeRefs;
|
|
var _react = require("react");
|
|
function useMergeRefs() {
|
|
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
refs[_key] = arguments[_key];
|
|
}
|
|
return (0, _react.useCallback)(
|
|
(current) => {
|
|
for (var _i = 0, _refs = refs; _i < _refs.length; _i++) {
|
|
var ref = _refs[_i];
|
|
if (ref != null) {
|
|
if (typeof ref === "function") {
|
|
ref(current);
|
|
} else {
|
|
ref.current = current;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
[...refs]
|
|
// eslint-disable-line react-hooks/exhaustive-deps
|
|
);
|
|
}
|
|
__name(useMergeRefs, "useMergeRefs");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js
|
|
var require_createAnimatedComponent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/createAnimatedComponent.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = createAnimatedComponent;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _useAnimatedProps2 = _interopRequireDefault(require_useAnimatedProps());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs2());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _excluded = ["style"];
|
|
function createAnimatedComponent(Component) {
|
|
return /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var _useAnimatedProps = (0, _useAnimatedProps2.default)(props), reducedProps = _useAnimatedProps[0], callbackRef = _useAnimatedProps[1];
|
|
var ref = (0, _useMergeRefs.default)(callbackRef, forwardedRef);
|
|
var passthroughAnimatedPropExplicitValues = reducedProps.passthroughAnimatedPropExplicitValues, style = reducedProps.style;
|
|
var _ref = passthroughAnimatedPropExplicitValues !== null && passthroughAnimatedPropExplicitValues !== void 0 ? passthroughAnimatedPropExplicitValues : {}, passthroughStyle = _ref.style, passthroughProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
var mergedStyle = [style, passthroughStyle];
|
|
return /* @__PURE__ */ React44.createElement(Component, (0, _extends2.default)({}, reducedProps, passthroughProps, {
|
|
style: mergedStyle,
|
|
ref
|
|
}));
|
|
});
|
|
}
|
|
__name(createAnimatedComponent, "createAnimatedComponent");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js
|
|
var require_AnimatedFlatList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedFlatList.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _FlatList = _interopRequireDefault(require_FlatList2());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var FlatListWithEventThrottle = /* @__PURE__ */ React44.forwardRef((props, ref) => /* @__PURE__ */ React44.createElement(_FlatList.default, (0, _extends2.default)({
|
|
scrollEventThrottle: 1e-4
|
|
}, props, {
|
|
ref
|
|
})));
|
|
var _default = (0, _createAnimatedComponent.default)(FlatListWithEventThrottle);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/AssetRegistry/index.js
|
|
var require_AssetRegistry = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/AssetRegistry/index.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.getAssetByID = getAssetByID;
|
|
exports2.registerAsset = registerAsset;
|
|
var assets = [];
|
|
function registerAsset(asset) {
|
|
return assets.push(asset);
|
|
}
|
|
__name(registerAsset, "registerAsset");
|
|
function getAssetByID(assetId) {
|
|
return assets[assetId - 1];
|
|
}
|
|
__name(getAssetByID, "getAssetByID");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/ImageLoader/index.js
|
|
var require_ImageLoader = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/ImageLoader/index.js"(exports2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = exports2.ImageUriCache = void 0;
|
|
var dataUriPattern = /^data:/;
|
|
var _ImageUriCache = class _ImageUriCache {
|
|
static has(uri) {
|
|
var entries = _ImageUriCache._entries;
|
|
var isDataUri = dataUriPattern.test(uri);
|
|
return isDataUri || Boolean(entries[uri]);
|
|
}
|
|
static add(uri) {
|
|
var entries = _ImageUriCache._entries;
|
|
var lastUsedTimestamp = Date.now();
|
|
if (entries[uri]) {
|
|
entries[uri].lastUsedTimestamp = lastUsedTimestamp;
|
|
entries[uri].refCount += 1;
|
|
} else {
|
|
entries[uri] = {
|
|
lastUsedTimestamp,
|
|
refCount: 1
|
|
};
|
|
}
|
|
}
|
|
static remove(uri) {
|
|
var entries = _ImageUriCache._entries;
|
|
if (entries[uri]) {
|
|
entries[uri].refCount -= 1;
|
|
}
|
|
_ImageUriCache._cleanUpIfNeeded();
|
|
}
|
|
static _cleanUpIfNeeded() {
|
|
var entries = _ImageUriCache._entries;
|
|
var imageUris = Object.keys(entries);
|
|
if (imageUris.length + 1 > _ImageUriCache._maximumEntries) {
|
|
var leastRecentlyUsedKey;
|
|
var leastRecentlyUsedEntry;
|
|
imageUris.forEach((uri) => {
|
|
var entry = entries[uri];
|
|
if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {
|
|
leastRecentlyUsedKey = uri;
|
|
leastRecentlyUsedEntry = entry;
|
|
}
|
|
});
|
|
if (leastRecentlyUsedKey) {
|
|
delete entries[leastRecentlyUsedKey];
|
|
}
|
|
}
|
|
}
|
|
};
|
|
__name(_ImageUriCache, "ImageUriCache");
|
|
var ImageUriCache = _ImageUriCache;
|
|
exports2.ImageUriCache = ImageUriCache;
|
|
ImageUriCache._maximumEntries = 256;
|
|
ImageUriCache._entries = {};
|
|
var id = 0;
|
|
var requests = {};
|
|
var ImageLoader = {
|
|
abort(requestId) {
|
|
var image = requests["" + requestId];
|
|
if (image) {
|
|
image.onerror = null;
|
|
image.onload = null;
|
|
image = null;
|
|
delete requests["" + requestId];
|
|
}
|
|
},
|
|
getSize(uri, success, failure) {
|
|
var complete = false;
|
|
var interval = setInterval(callback, 16);
|
|
var requestId = ImageLoader.load(uri, callback, errorCallback);
|
|
function callback() {
|
|
var image = requests["" + requestId];
|
|
if (image) {
|
|
var naturalHeight = image.naturalHeight, naturalWidth = image.naturalWidth;
|
|
if (naturalHeight && naturalWidth) {
|
|
success(naturalWidth, naturalHeight);
|
|
complete = true;
|
|
}
|
|
}
|
|
if (complete) {
|
|
ImageLoader.abort(requestId);
|
|
clearInterval(interval);
|
|
}
|
|
}
|
|
__name(callback, "callback");
|
|
function errorCallback() {
|
|
if (typeof failure === "function") {
|
|
failure();
|
|
}
|
|
ImageLoader.abort(requestId);
|
|
clearInterval(interval);
|
|
}
|
|
__name(errorCallback, "errorCallback");
|
|
},
|
|
has(uri) {
|
|
return ImageUriCache.has(uri);
|
|
},
|
|
load(uri, onLoad, onError) {
|
|
id += 1;
|
|
var image = new window.Image();
|
|
image.onerror = onError;
|
|
image.onload = (e) => {
|
|
var onDecode = /* @__PURE__ */ __name(() => onLoad({
|
|
nativeEvent: e
|
|
}), "onDecode");
|
|
if (typeof image.decode === "function") {
|
|
image.decode().then(onDecode, onDecode);
|
|
} else {
|
|
setTimeout(onDecode, 0);
|
|
}
|
|
};
|
|
image.src = uri;
|
|
requests["" + id] = image;
|
|
return id;
|
|
},
|
|
prefetch(uri) {
|
|
return new Promise((resolve, reject) => {
|
|
ImageLoader.load(uri, () => {
|
|
ImageUriCache.add(uri);
|
|
ImageUriCache.remove(uri);
|
|
resolve();
|
|
}, reject);
|
|
});
|
|
},
|
|
queryCache(uris) {
|
|
var result = {};
|
|
uris.forEach((u) => {
|
|
if (ImageUriCache.has(u)) {
|
|
result[u] = "disk/memory";
|
|
}
|
|
});
|
|
return Promise.resolve(result);
|
|
}
|
|
};
|
|
var _default = ImageLoader;
|
|
exports2.default = _default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/PixelRatio/index.js
|
|
var require_PixelRatio = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/PixelRatio/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Dimensions = _interopRequireDefault(require_Dimensions());
|
|
var _PixelRatio = class _PixelRatio {
|
|
/**
|
|
* Returns the device pixel density.
|
|
*/
|
|
static get() {
|
|
return _Dimensions.default.get("window").scale;
|
|
}
|
|
/**
|
|
* No equivalent for Web
|
|
*/
|
|
static getFontScale() {
|
|
return _Dimensions.default.get("window").fontScale || _PixelRatio.get();
|
|
}
|
|
/**
|
|
* Converts a layout size (dp) to pixel size (px).
|
|
* Guaranteed to return an integer number.
|
|
*/
|
|
static getPixelSizeForLayoutSize(layoutSize) {
|
|
return Math.round(layoutSize * _PixelRatio.get());
|
|
}
|
|
/**
|
|
* Rounds a layout size (dp) to the nearest layout size that corresponds to
|
|
* an integer number of pixels. For example, on a device with a PixelRatio
|
|
* of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to
|
|
* exactly (8.33 * 3) = 25 pixels.
|
|
*/
|
|
static roundToNearestPixel(layoutSize) {
|
|
var ratio = _PixelRatio.get();
|
|
return Math.round(layoutSize * ratio) / ratio;
|
|
}
|
|
};
|
|
__name(_PixelRatio, "PixelRatio");
|
|
var PixelRatio = _PixelRatio;
|
|
exports2.default = PixelRatio;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Image/index.js
|
|
var require_Image = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Image/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var _AssetRegistry = require_AssetRegistry();
|
|
var _preprocess = require_preprocess();
|
|
var _ImageLoader = _interopRequireDefault(require_ImageLoader());
|
|
var _PixelRatio = _interopRequireDefault(require_PixelRatio());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _warnOnce = require_warnOnce();
|
|
var _excluded = ["aria-label", "blurRadius", "defaultSource", "draggable", "onError", "onLayout", "onLoad", "onLoadEnd", "onLoadStart", "pointerEvents", "source", "style"];
|
|
var ERRORED = "ERRORED";
|
|
var LOADED = "LOADED";
|
|
var LOADING = "LOADING";
|
|
var IDLE = "IDLE";
|
|
var _filterId = 0;
|
|
var svgDataUriPattern = /^(data:image\/svg\+xml;utf8,)(.*)/;
|
|
function createTintColorSVG(tintColor, id) {
|
|
return tintColor && id != null ? /* @__PURE__ */ React44.createElement("svg", {
|
|
style: {
|
|
position: "absolute",
|
|
height: 0,
|
|
visibility: "hidden",
|
|
width: 0
|
|
}
|
|
}, /* @__PURE__ */ React44.createElement("defs", null, /* @__PURE__ */ React44.createElement("filter", {
|
|
id: "tint-" + id,
|
|
suppressHydrationWarning: true
|
|
}, /* @__PURE__ */ React44.createElement("feFlood", {
|
|
floodColor: "" + tintColor,
|
|
key: tintColor
|
|
}), /* @__PURE__ */ React44.createElement("feComposite", {
|
|
in2: "SourceAlpha",
|
|
operator: "atop"
|
|
})))) : null;
|
|
}
|
|
__name(createTintColorSVG, "createTintColorSVG");
|
|
function extractNonStandardStyleProps(style, blurRadius, filterId, tintColorProp) {
|
|
var flatStyle = _StyleSheet.default.flatten(style);
|
|
var filter = flatStyle.filter, resizeMode = flatStyle.resizeMode, shadowOffset = flatStyle.shadowOffset, tintColor = flatStyle.tintColor;
|
|
if (flatStyle.resizeMode) {
|
|
(0, _warnOnce.warnOnce)("Image.style.resizeMode", "Image: style.resizeMode is deprecated. Please use props.resizeMode.");
|
|
}
|
|
if (flatStyle.tintColor) {
|
|
(0, _warnOnce.warnOnce)("Image.style.tintColor", "Image: style.tintColor is deprecated. Please use props.tintColor.");
|
|
}
|
|
var filters = [];
|
|
var _filter = null;
|
|
if (filter) {
|
|
filters.push(filter);
|
|
}
|
|
if (blurRadius) {
|
|
filters.push("blur(" + blurRadius + "px)");
|
|
}
|
|
if (shadowOffset) {
|
|
var shadowString = (0, _preprocess.createBoxShadowValue)(flatStyle);
|
|
if (shadowString) {
|
|
filters.push("drop-shadow(" + shadowString + ")");
|
|
}
|
|
}
|
|
if ((tintColorProp || tintColor) && filterId != null) {
|
|
filters.push("url(#tint-" + filterId + ")");
|
|
}
|
|
if (filters.length > 0) {
|
|
_filter = filters.join(" ");
|
|
}
|
|
return [resizeMode, _filter, tintColor];
|
|
}
|
|
__name(extractNonStandardStyleProps, "extractNonStandardStyleProps");
|
|
function resolveAssetDimensions(source) {
|
|
if (typeof source === "number") {
|
|
var _getAssetByID = (0, _AssetRegistry.getAssetByID)(source), _height = _getAssetByID.height, _width = _getAssetByID.width;
|
|
return {
|
|
height: _height,
|
|
width: _width
|
|
};
|
|
} else if (source != null && !Array.isArray(source) && typeof source === "object") {
|
|
var _height2 = source.height, _width2 = source.width;
|
|
return {
|
|
height: _height2,
|
|
width: _width2
|
|
};
|
|
}
|
|
}
|
|
__name(resolveAssetDimensions, "resolveAssetDimensions");
|
|
function resolveAssetUri(source) {
|
|
var uri = null;
|
|
if (typeof source === "number") {
|
|
var asset = (0, _AssetRegistry.getAssetByID)(source);
|
|
if (asset == null) {
|
|
throw new Error('Image: asset with ID "' + source + '" could not be found. Please check the image source or packager.');
|
|
}
|
|
var scale = asset.scales[0];
|
|
if (asset.scales.length > 1) {
|
|
var preferredScale = _PixelRatio.default.get();
|
|
scale = asset.scales.reduce((prev, curr) => Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev);
|
|
}
|
|
var scaleSuffix = scale !== 1 ? "@" + scale + "x" : "";
|
|
uri = asset ? asset.httpServerLocation + "/" + asset.name + scaleSuffix + "." + asset.type : "";
|
|
} else if (typeof source === "string") {
|
|
uri = source;
|
|
} else if (source && typeof source.uri === "string") {
|
|
uri = source.uri;
|
|
}
|
|
if (uri) {
|
|
var match = uri.match(svgDataUriPattern);
|
|
if (match) {
|
|
var prefix = match[1], svg = match[2];
|
|
var encodedSvg = encodeURIComponent(svg);
|
|
return "" + prefix + encodedSvg;
|
|
}
|
|
}
|
|
return uri;
|
|
}
|
|
__name(resolveAssetUri, "resolveAssetUri");
|
|
var Image2 = /* @__PURE__ */ React44.forwardRef((props, ref) => {
|
|
var ariaLabel = props["aria-label"], blurRadius = props.blurRadius, defaultSource = props.defaultSource, draggable = props.draggable, onError = props.onError, onLayout = props.onLayout, onLoad = props.onLoad, onLoadEnd = props.onLoadEnd, onLoadStart = props.onLoadStart, pointerEvents = props.pointerEvents, source = props.source, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
if (process.env.NODE_ENV !== "production") {
|
|
if (props.children) {
|
|
throw new Error("The <Image> component cannot contain children. If you want to render content on top of the image, consider using the <ImageBackground> component or absolute positioning.");
|
|
}
|
|
}
|
|
var _React$useState = React44.useState(() => {
|
|
var uri2 = resolveAssetUri(source);
|
|
if (uri2 != null) {
|
|
var isLoaded = _ImageLoader.default.has(uri2);
|
|
if (isLoaded) {
|
|
return LOADED;
|
|
}
|
|
}
|
|
return IDLE;
|
|
}), state = _React$useState[0], updateState = _React$useState[1];
|
|
var _React$useState2 = React44.useState({}), layout = _React$useState2[0], updateLayout = _React$useState2[1];
|
|
var hasTextAncestor = React44.useContext(_TextAncestorContext.default);
|
|
var hiddenImageRef = React44.useRef(null);
|
|
var filterRef = React44.useRef(_filterId++);
|
|
var requestRef = React44.useRef(null);
|
|
var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;
|
|
var _extractNonStandardSt = extractNonStandardStyleProps(style, blurRadius, filterRef.current, props.tintColor), _resizeMode = _extractNonStandardSt[0], filter = _extractNonStandardSt[1], _tintColor = _extractNonStandardSt[2];
|
|
var resizeMode = props.resizeMode || _resizeMode || "cover";
|
|
var tintColor = props.tintColor || _tintColor;
|
|
var selectedSource = shouldDisplaySource ? source : defaultSource;
|
|
var displayImageUri = resolveAssetUri(selectedSource);
|
|
var imageSizeStyle = resolveAssetDimensions(selectedSource);
|
|
var backgroundImage = displayImageUri ? 'url("' + displayImageUri + '")' : null;
|
|
var backgroundSize = getBackgroundSize();
|
|
var hiddenImage = displayImageUri ? (0, _createElement.default)("img", {
|
|
alt: ariaLabel || "",
|
|
style: styles.accessibilityImage$raw,
|
|
draggable: draggable || false,
|
|
ref: hiddenImageRef,
|
|
src: displayImageUri
|
|
}) : null;
|
|
function getBackgroundSize() {
|
|
if (hiddenImageRef.current != null && (resizeMode === "center" || resizeMode === "repeat")) {
|
|
var _hiddenImageRef$curre = hiddenImageRef.current, naturalHeight = _hiddenImageRef$curre.naturalHeight, naturalWidth = _hiddenImageRef$curre.naturalWidth;
|
|
var _height3 = layout.height, _width3 = layout.width;
|
|
if (naturalHeight && naturalWidth && _height3 && _width3) {
|
|
var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);
|
|
var x = Math.ceil(scaleFactor * naturalWidth);
|
|
var y = Math.ceil(scaleFactor * naturalHeight);
|
|
return x + "px " + y + "px";
|
|
}
|
|
}
|
|
}
|
|
__name(getBackgroundSize, "getBackgroundSize");
|
|
function handleLayout(e) {
|
|
if (resizeMode === "center" || resizeMode === "repeat" || onLayout) {
|
|
var _layout = e.nativeEvent.layout;
|
|
onLayout && onLayout(e);
|
|
updateLayout(_layout);
|
|
}
|
|
}
|
|
__name(handleLayout, "handleLayout");
|
|
var uri = resolveAssetUri(source);
|
|
React44.useEffect(() => {
|
|
abortPendingRequest();
|
|
if (uri != null) {
|
|
updateState(LOADING);
|
|
if (onLoadStart) {
|
|
onLoadStart();
|
|
}
|
|
requestRef.current = _ImageLoader.default.load(uri, /* @__PURE__ */ __name(function load(e) {
|
|
updateState(LOADED);
|
|
if (onLoad) {
|
|
onLoad(e);
|
|
}
|
|
if (onLoadEnd) {
|
|
onLoadEnd();
|
|
}
|
|
}, "load"), /* @__PURE__ */ __name(function error2() {
|
|
updateState(ERRORED);
|
|
if (onError) {
|
|
onError({
|
|
nativeEvent: {
|
|
error: "Failed to load resource " + uri + " (404)"
|
|
}
|
|
});
|
|
}
|
|
if (onLoadEnd) {
|
|
onLoadEnd();
|
|
}
|
|
}, "error"));
|
|
}
|
|
function abortPendingRequest() {
|
|
if (requestRef.current != null) {
|
|
_ImageLoader.default.abort(requestRef.current);
|
|
requestRef.current = null;
|
|
}
|
|
}
|
|
__name(abortPendingRequest, "abortPendingRequest");
|
|
return abortPendingRequest;
|
|
}, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, {
|
|
"aria-label": ariaLabel,
|
|
onLayout: handleLayout,
|
|
pointerEvents,
|
|
ref,
|
|
style: [
|
|
styles.root,
|
|
hasTextAncestor && styles.inline,
|
|
imageSizeStyle,
|
|
style,
|
|
styles.undo,
|
|
// TEMP: avoid deprecated shadow props regression
|
|
// until Image refactored to use createElement.
|
|
{
|
|
boxShadow: null
|
|
}
|
|
]
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [styles.image, resizeModeStyles[resizeMode], {
|
|
backgroundImage,
|
|
filter
|
|
}, backgroundSize != null && {
|
|
backgroundSize
|
|
}],
|
|
suppressHydrationWarning: true
|
|
}), hiddenImage, createTintColorSVG(tintColor, filterRef.current));
|
|
});
|
|
Image2.displayName = "Image";
|
|
var ImageWithStatics = Image2;
|
|
ImageWithStatics.getSize = function(uri, success, failure) {
|
|
_ImageLoader.default.getSize(uri, success, failure);
|
|
};
|
|
ImageWithStatics.prefetch = function(uri) {
|
|
return _ImageLoader.default.prefetch(uri);
|
|
};
|
|
ImageWithStatics.queryCache = function(uris) {
|
|
return _ImageLoader.default.queryCache(uris);
|
|
};
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
flexBasis: "auto",
|
|
overflow: "hidden",
|
|
zIndex: 0
|
|
},
|
|
inline: {
|
|
display: "inline-flex"
|
|
},
|
|
undo: {
|
|
// These styles are converted to CSS filters applied to the
|
|
// element displaying the background image.
|
|
blurRadius: null,
|
|
shadowColor: null,
|
|
shadowOpacity: null,
|
|
shadowOffset: null,
|
|
shadowRadius: null,
|
|
tintColor: null,
|
|
// These styles are not supported
|
|
overlayColor: null,
|
|
resizeMode: null
|
|
},
|
|
image: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {
|
|
backgroundColor: "transparent",
|
|
backgroundPosition: "center",
|
|
backgroundRepeat: "no-repeat",
|
|
backgroundSize: "cover",
|
|
height: "100%",
|
|
width: "100%",
|
|
zIndex: -1
|
|
}),
|
|
accessibilityImage$raw: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {
|
|
height: "100%",
|
|
opacity: 0,
|
|
width: "100%",
|
|
zIndex: -1
|
|
})
|
|
});
|
|
var resizeModeStyles = _StyleSheet.default.create({
|
|
center: {
|
|
backgroundSize: "auto"
|
|
},
|
|
contain: {
|
|
backgroundSize: "contain"
|
|
},
|
|
cover: {
|
|
backgroundSize: "cover"
|
|
},
|
|
none: {
|
|
backgroundPosition: "0",
|
|
backgroundSize: "auto"
|
|
},
|
|
repeat: {
|
|
backgroundPosition: "0",
|
|
backgroundRepeat: "repeat",
|
|
backgroundSize: "auto"
|
|
},
|
|
stretch: {
|
|
backgroundSize: "100% 100%"
|
|
}
|
|
});
|
|
var _default = ImageWithStatics;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js
|
|
var require_AnimatedImage = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedImage.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _Image = _interopRequireDefault(require_Image());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var _default = (0, _createAnimatedComponent.default)(_Image.default);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js
|
|
var require_AnimatedScrollView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedScrollView.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _ScrollView = _interopRequireDefault(require_ScrollView());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var ScrollViewWithEventThrottle = /* @__PURE__ */ React44.forwardRef((props, ref) => /* @__PURE__ */ React44.createElement(_ScrollView.default, (0, _extends2.default)({
|
|
scrollEventThrottle: 1e-4
|
|
}, props, {
|
|
ref
|
|
})));
|
|
var _default = (0, _createAnimatedComponent.default)(ScrollViewWithEventThrottle);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js
|
|
var require_VirtualizedSectionList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/VirtualizedSectionList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _createForOfIteratorHelperLoose2 = _interopRequireDefault(require_createForOfIteratorHelperLoose());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());
|
|
var _VirtualizeUtils = require_VirtualizeUtils();
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _excluded = ["ItemSeparatorComponent", "SectionSeparatorComponent", "renderItem", "renderSectionFooter", "renderSectionHeader", "sections", "stickySectionHeadersEnabled"];
|
|
var _VirtualizedSectionList = class _VirtualizedSectionList extends React44.PureComponent {
|
|
constructor() {
|
|
super(...arguments);
|
|
this._keyExtractor = (item, index3) => {
|
|
var info = this._subExtractor(index3);
|
|
return info && info.key || String(index3);
|
|
};
|
|
this._convertViewable = (viewable) => {
|
|
var _info$index;
|
|
(0, _invariant.default)(viewable.index != null, "Received a broken ViewToken");
|
|
var info = this._subExtractor(viewable.index);
|
|
if (!info) {
|
|
return null;
|
|
}
|
|
var keyExtractorWithNullableIndex = info.section.keyExtractor;
|
|
var keyExtractorWithNonNullableIndex = this.props.keyExtractor || _VirtualizeUtils.keyExtractor;
|
|
var key = keyExtractorWithNullableIndex != null ? keyExtractorWithNullableIndex(viewable.item, info.index) : keyExtractorWithNonNullableIndex(viewable.item, (_info$index = info.index) !== null && _info$index !== void 0 ? _info$index : 0);
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, viewable), {}, {
|
|
index: info.index,
|
|
key,
|
|
section: info.section
|
|
});
|
|
};
|
|
this._onViewableItemsChanged = (_ref) => {
|
|
var viewableItems = _ref.viewableItems, changed = _ref.changed;
|
|
var onViewableItemsChanged = this.props.onViewableItemsChanged;
|
|
if (onViewableItemsChanged != null) {
|
|
onViewableItemsChanged({
|
|
viewableItems: viewableItems.map(this._convertViewable, this).filter(Boolean),
|
|
changed: changed.map(this._convertViewable, this).filter(Boolean)
|
|
});
|
|
}
|
|
};
|
|
this._renderItem = (listItemCount) => (
|
|
// eslint-disable-next-line react/no-unstable-nested-components
|
|
(_ref2) => {
|
|
var item = _ref2.item, index3 = _ref2.index;
|
|
var info = this._subExtractor(index3);
|
|
if (!info) {
|
|
return null;
|
|
}
|
|
var infoIndex = info.index;
|
|
if (infoIndex == null) {
|
|
var section = info.section;
|
|
if (info.header === true) {
|
|
var renderSectionHeader = this.props.renderSectionHeader;
|
|
return renderSectionHeader ? renderSectionHeader({
|
|
section
|
|
}) : null;
|
|
} else {
|
|
var renderSectionFooter = this.props.renderSectionFooter;
|
|
return renderSectionFooter ? renderSectionFooter({
|
|
section
|
|
}) : null;
|
|
}
|
|
} else {
|
|
var renderItem = info.section.renderItem || this.props.renderItem;
|
|
var SeparatorComponent = this._getSeparatorComponent(index3, info, listItemCount);
|
|
(0, _invariant.default)(renderItem, "no renderItem!");
|
|
return /* @__PURE__ */ React44.createElement(ItemWithSeparator, {
|
|
SeparatorComponent,
|
|
LeadingSeparatorComponent: infoIndex === 0 ? this.props.SectionSeparatorComponent : void 0,
|
|
cellKey: info.key,
|
|
index: infoIndex,
|
|
item,
|
|
leadingItem: info.leadingItem,
|
|
leadingSection: info.leadingSection,
|
|
prevCellKey: (this._subExtractor(index3 - 1) || {}).key,
|
|
setSelfHighlightCallback: this._setUpdateHighlightFor,
|
|
setSelfUpdatePropsCallback: this._setUpdatePropsFor,
|
|
updateHighlightFor: this._updateHighlightFor,
|
|
updatePropsFor: this._updatePropsFor,
|
|
renderItem,
|
|
section: info.section,
|
|
trailingItem: info.trailingItem,
|
|
trailingSection: info.trailingSection,
|
|
inverted: !!this.props.inverted
|
|
});
|
|
}
|
|
}
|
|
);
|
|
this._updatePropsFor = (cellKey, value) => {
|
|
var updateProps = this._updatePropsMap[cellKey];
|
|
if (updateProps != null) {
|
|
updateProps(value);
|
|
}
|
|
};
|
|
this._updateHighlightFor = (cellKey, value) => {
|
|
var updateHighlight = this._updateHighlightMap[cellKey];
|
|
if (updateHighlight != null) {
|
|
updateHighlight(value);
|
|
}
|
|
};
|
|
this._setUpdateHighlightFor = (cellKey, updateHighlightFn) => {
|
|
if (updateHighlightFn != null) {
|
|
this._updateHighlightMap[cellKey] = updateHighlightFn;
|
|
} else {
|
|
delete this._updateHighlightFor[cellKey];
|
|
}
|
|
};
|
|
this._setUpdatePropsFor = (cellKey, updatePropsFn) => {
|
|
if (updatePropsFn != null) {
|
|
this._updatePropsMap[cellKey] = updatePropsFn;
|
|
} else {
|
|
delete this._updatePropsMap[cellKey];
|
|
}
|
|
};
|
|
this._updateHighlightMap = {};
|
|
this._updatePropsMap = {};
|
|
this._captureRef = (ref) => {
|
|
this._listRef = ref;
|
|
};
|
|
}
|
|
scrollToLocation(params) {
|
|
var index3 = params.itemIndex;
|
|
for (var i = 0; i < params.sectionIndex; i++) {
|
|
index3 += this.props.getItemCount(this.props.sections[i].data) + 2;
|
|
}
|
|
var viewOffset = params.viewOffset || 0;
|
|
if (this._listRef == null) {
|
|
return;
|
|
}
|
|
if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {
|
|
var frame = this._listRef.__getFrameMetricsApprox(index3 - params.itemIndex, this._listRef.props);
|
|
viewOffset += frame.length;
|
|
}
|
|
var toIndexParams = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
viewOffset,
|
|
index: index3
|
|
});
|
|
this._listRef.scrollToIndex(toIndexParams);
|
|
}
|
|
getListRef() {
|
|
return this._listRef;
|
|
}
|
|
render() {
|
|
var _this$props = this.props, ItemSeparatorComponent = _this$props.ItemSeparatorComponent, SectionSeparatorComponent = _this$props.SectionSeparatorComponent, _renderItem = _this$props.renderItem, renderSectionFooter = _this$props.renderSectionFooter, renderSectionHeader = _this$props.renderSectionHeader, _sections = _this$props.sections, stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled, passThroughProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
|
|
var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;
|
|
var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : void 0;
|
|
var itemCount = 0;
|
|
for (var _iterator = (0, _createForOfIteratorHelperLoose2.default)(this.props.sections), _step; !(_step = _iterator()).done; ) {
|
|
var section = _step.value;
|
|
if (stickyHeaderIndices != null) {
|
|
stickyHeaderIndices.push(itemCount + listHeaderOffset);
|
|
}
|
|
itemCount += 2;
|
|
itemCount += this.props.getItemCount(section.data);
|
|
}
|
|
var renderItem = this._renderItem(itemCount);
|
|
return /* @__PURE__ */ React44.createElement(_VirtualizedList.default, (0, _extends2.default)({}, passThroughProps, {
|
|
keyExtractor: this._keyExtractor,
|
|
stickyHeaderIndices,
|
|
renderItem,
|
|
data: this.props.sections,
|
|
getItem: (sections, index3) => this._getItem(this.props, sections, index3),
|
|
getItemCount: () => itemCount,
|
|
onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : void 0,
|
|
ref: this._captureRef
|
|
}));
|
|
}
|
|
_getItem(props, sections, index3) {
|
|
if (!sections) {
|
|
return null;
|
|
}
|
|
var itemIdx = index3 - 1;
|
|
for (var i = 0; i < sections.length; i++) {
|
|
var section = sections[i];
|
|
var sectionData = section.data;
|
|
var itemCount = props.getItemCount(sectionData);
|
|
if (itemIdx === -1 || itemIdx === itemCount) {
|
|
return section;
|
|
} else if (itemIdx < itemCount) {
|
|
return props.getItem(sectionData, itemIdx);
|
|
} else {
|
|
itemIdx -= itemCount + 2;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
// $FlowFixMe[missing-local-annot]
|
|
_subExtractor(index3) {
|
|
var itemIndex = index3;
|
|
var _this$props2 = this.props, getItem = _this$props2.getItem, getItemCount = _this$props2.getItemCount, keyExtractor = _this$props2.keyExtractor, sections = _this$props2.sections;
|
|
for (var i = 0; i < sections.length; i++) {
|
|
var section = sections[i];
|
|
var sectionData = section.data;
|
|
var key = section.key || String(i);
|
|
itemIndex -= 1;
|
|
if (itemIndex >= getItemCount(sectionData) + 1) {
|
|
itemIndex -= getItemCount(sectionData) + 1;
|
|
} else if (itemIndex === -1) {
|
|
return {
|
|
section,
|
|
key: key + ":header",
|
|
index: null,
|
|
header: true,
|
|
trailingSection: sections[i + 1]
|
|
};
|
|
} else if (itemIndex === getItemCount(sectionData)) {
|
|
return {
|
|
section,
|
|
key: key + ":footer",
|
|
index: null,
|
|
header: false,
|
|
trailingSection: sections[i + 1]
|
|
};
|
|
} else {
|
|
var extractor = section.keyExtractor || keyExtractor || _VirtualizeUtils.keyExtractor;
|
|
return {
|
|
section,
|
|
key: key + ":" + extractor(getItem(sectionData, itemIndex), itemIndex),
|
|
index: itemIndex,
|
|
leadingItem: getItem(sectionData, itemIndex - 1),
|
|
leadingSection: sections[i - 1],
|
|
trailingItem: getItem(sectionData, itemIndex + 1),
|
|
trailingSection: sections[i + 1]
|
|
};
|
|
}
|
|
}
|
|
}
|
|
_getSeparatorComponent(index3, info, listItemCount) {
|
|
info = info || this._subExtractor(index3);
|
|
if (!info) {
|
|
return null;
|
|
}
|
|
var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;
|
|
var SectionSeparatorComponent = this.props.SectionSeparatorComponent;
|
|
var isLastItemInList = index3 === listItemCount - 1;
|
|
var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;
|
|
if (SectionSeparatorComponent && isLastItemInSection) {
|
|
return SectionSeparatorComponent;
|
|
}
|
|
if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {
|
|
return ItemSeparatorComponent;
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
__name(_VirtualizedSectionList, "VirtualizedSectionList");
|
|
var VirtualizedSectionList = _VirtualizedSectionList;
|
|
function ItemWithSeparator(props) {
|
|
var LeadingSeparatorComponent = props.LeadingSeparatorComponent, SeparatorComponent = props.SeparatorComponent, cellKey = props.cellKey, prevCellKey = props.prevCellKey, setSelfHighlightCallback = props.setSelfHighlightCallback, updateHighlightFor = props.updateHighlightFor, setSelfUpdatePropsCallback = props.setSelfUpdatePropsCallback, updatePropsFor = props.updatePropsFor, item = props.item, index3 = props.index, section = props.section, inverted = props.inverted;
|
|
var _React$useState = React44.useState(false), leadingSeparatorHiglighted = _React$useState[0], setLeadingSeparatorHighlighted = _React$useState[1];
|
|
var _React$useState2 = React44.useState(false), separatorHighlighted = _React$useState2[0], setSeparatorHighlighted = _React$useState2[1];
|
|
var _React$useState3 = React44.useState({
|
|
leadingItem: props.leadingItem,
|
|
leadingSection: props.leadingSection,
|
|
section: props.section,
|
|
trailingItem: props.item,
|
|
trailingSection: props.trailingSection
|
|
}), leadingSeparatorProps = _React$useState3[0], setLeadingSeparatorProps = _React$useState3[1];
|
|
var _React$useState4 = React44.useState({
|
|
leadingItem: props.item,
|
|
leadingSection: props.leadingSection,
|
|
section: props.section,
|
|
trailingItem: props.trailingItem,
|
|
trailingSection: props.trailingSection
|
|
}), separatorProps = _React$useState4[0], setSeparatorProps = _React$useState4[1];
|
|
React44.useEffect(() => {
|
|
setSelfHighlightCallback(cellKey, setSeparatorHighlighted);
|
|
setSelfUpdatePropsCallback(cellKey, setSeparatorProps);
|
|
return () => {
|
|
setSelfUpdatePropsCallback(cellKey, null);
|
|
setSelfHighlightCallback(cellKey, null);
|
|
};
|
|
}, [cellKey, setSelfHighlightCallback, setSeparatorProps, setSelfUpdatePropsCallback]);
|
|
var separators = {
|
|
highlight: () => {
|
|
setLeadingSeparatorHighlighted(true);
|
|
setSeparatorHighlighted(true);
|
|
if (prevCellKey != null) {
|
|
updateHighlightFor(prevCellKey, true);
|
|
}
|
|
},
|
|
unhighlight: () => {
|
|
setLeadingSeparatorHighlighted(false);
|
|
setSeparatorHighlighted(false);
|
|
if (prevCellKey != null) {
|
|
updateHighlightFor(prevCellKey, false);
|
|
}
|
|
},
|
|
updateProps: (select, newProps) => {
|
|
if (select === "leading") {
|
|
if (LeadingSeparatorComponent != null) {
|
|
setLeadingSeparatorProps((0, _objectSpread2.default)((0, _objectSpread2.default)({}, leadingSeparatorProps), newProps));
|
|
} else if (prevCellKey != null) {
|
|
updatePropsFor(prevCellKey, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, leadingSeparatorProps), newProps));
|
|
}
|
|
} else if (select === "trailing" && SeparatorComponent != null) {
|
|
setSeparatorProps((0, _objectSpread2.default)((0, _objectSpread2.default)({}, separatorProps), newProps));
|
|
}
|
|
}
|
|
};
|
|
var element = props.renderItem({
|
|
item,
|
|
index: index3,
|
|
section,
|
|
separators
|
|
});
|
|
var leadingSeparator = LeadingSeparatorComponent != null && /* @__PURE__ */ React44.createElement(LeadingSeparatorComponent, (0, _extends2.default)({
|
|
highlighted: leadingSeparatorHiglighted
|
|
}, leadingSeparatorProps));
|
|
var separator = SeparatorComponent != null && /* @__PURE__ */ React44.createElement(SeparatorComponent, (0, _extends2.default)({
|
|
highlighted: separatorHighlighted
|
|
}, separatorProps));
|
|
return leadingSeparator || separator ? /* @__PURE__ */ React44.createElement(_View.default, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;
|
|
}
|
|
__name(ItemWithSeparator, "ItemWithSeparator");
|
|
var _default = VirtualizedSectionList;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/SectionList/index.js
|
|
var require_SectionList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/SectionList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _VirtualizedSectionList = _interopRequireDefault(require_VirtualizedSectionList());
|
|
var _excluded = ["stickySectionHeadersEnabled"];
|
|
var _SectionList = class _SectionList extends React44.PureComponent {
|
|
constructor() {
|
|
super(...arguments);
|
|
this._captureRef = (ref) => {
|
|
this._wrapperListRef = ref;
|
|
};
|
|
}
|
|
/**
|
|
* Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)
|
|
* positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be
|
|
* covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a
|
|
* fixed number of pixels to offset the final target position, e.g. to compensate for sticky
|
|
* headers.
|
|
*
|
|
* Note: cannot scroll to locations outside the render window without specifying the
|
|
* `getItemLayout` prop.
|
|
*/
|
|
scrollToLocation(params) {
|
|
if (this._wrapperListRef != null) {
|
|
this._wrapperListRef.scrollToLocation(params);
|
|
}
|
|
}
|
|
/**
|
|
* Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.
|
|
* if `waitForInteractions` is true and the user has not scrolled. This is typically called by
|
|
* taps on items or by navigation actions.
|
|
*/
|
|
recordInteraction() {
|
|
var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();
|
|
listRef && listRef.recordInteraction();
|
|
}
|
|
/**
|
|
* Displays the scroll indicators momentarily.
|
|
*
|
|
* @platform ios
|
|
*/
|
|
flashScrollIndicators() {
|
|
var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();
|
|
listRef && listRef.flashScrollIndicators();
|
|
}
|
|
/**
|
|
* Provides a handle to the underlying scroll responder.
|
|
*/
|
|
getScrollResponder() {
|
|
var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();
|
|
if (listRef) {
|
|
return listRef.getScrollResponder();
|
|
}
|
|
}
|
|
getScrollableNode() {
|
|
var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();
|
|
if (listRef) {
|
|
return listRef.getScrollableNode();
|
|
}
|
|
}
|
|
render() {
|
|
var _this$props = this.props, _stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled, restProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
|
|
var stickySectionHeadersEnabled = _stickySectionHeadersEnabled !== null && _stickySectionHeadersEnabled !== void 0 ? _stickySectionHeadersEnabled : _Platform.default.OS === "ios";
|
|
return /* @__PURE__ */ React44.createElement(_VirtualizedSectionList.default, (0, _extends2.default)({}, restProps, {
|
|
stickySectionHeadersEnabled,
|
|
ref: this._captureRef,
|
|
getItemCount: (items) => items.length,
|
|
getItem: (items, index3) => items[index3]
|
|
}));
|
|
}
|
|
};
|
|
__name(_SectionList, "SectionList");
|
|
var SectionList = _SectionList;
|
|
exports2.default = SectionList;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/SectionList/index.js
|
|
var require_SectionList2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/SectionList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _SectionList = _interopRequireDefault(require_SectionList());
|
|
var _default = _SectionList.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js
|
|
var require_AnimatedSectionList = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedSectionList.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _SectionList = _interopRequireDefault(require_SectionList2());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var SectionListWithEventThrottle = /* @__PURE__ */ React44.forwardRef((props, ref) => /* @__PURE__ */ React44.createElement(_SectionList.default, (0, _extends2.default)({
|
|
scrollEventThrottle: 1e-4
|
|
}, props, {
|
|
ref
|
|
})));
|
|
var _default = (0, _createAnimatedComponent.default)(SectionListWithEventThrottle);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Text/index.js
|
|
var require_Text = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Text/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var forwardedProps = _interopRequireWildcard(require_forwardedProps());
|
|
var _pick = _interopRequireDefault(require_pick());
|
|
var _useElementLayout = _interopRequireDefault(require_useElementLayout());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());
|
|
var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TextAncestorContext = _interopRequireDefault(require_TextAncestorContext());
|
|
var _useLocale = require_useLocale();
|
|
var _warnOnce = require_warnOnce();
|
|
var _excluded = ["hrefAttrs", "numberOfLines", "onClick", "onLayout", "onPress", "onMoveShouldSetResponder", "onMoveShouldSetResponderCapture", "onResponderEnd", "onResponderGrant", "onResponderMove", "onResponderReject", "onResponderRelease", "onResponderStart", "onResponderTerminate", "onResponderTerminationRequest", "onScrollShouldSetResponder", "onScrollShouldSetResponderCapture", "onSelectionChangeShouldSetResponder", "onSelectionChangeShouldSetResponderCapture", "onStartShouldSetResponder", "onStartShouldSetResponderCapture", "selectable"];
|
|
var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {
|
|
href: true,
|
|
lang: true,
|
|
pointerEvents: true
|
|
});
|
|
var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), "pickProps");
|
|
var Text4 = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var hrefAttrs = props.hrefAttrs, numberOfLines = props.numberOfLines, onClick = props.onClick, onLayout = props.onLayout, onPress = props.onPress, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, selectable = props.selectable, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
if (selectable != null) {
|
|
(0, _warnOnce.warnOnce)("selectable", "selectable prop is deprecated. Use styles.userSelect.");
|
|
}
|
|
var hasTextAncestor = React44.useContext(_TextAncestorContext.default);
|
|
var hostRef = React44.useRef(null);
|
|
var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;
|
|
(0, _useElementLayout.default)(hostRef, onLayout);
|
|
(0, _useResponderEvents.default)(hostRef, {
|
|
onMoveShouldSetResponder,
|
|
onMoveShouldSetResponderCapture,
|
|
onResponderEnd,
|
|
onResponderGrant,
|
|
onResponderMove,
|
|
onResponderReject,
|
|
onResponderRelease,
|
|
onResponderStart,
|
|
onResponderTerminate,
|
|
onResponderTerminationRequest,
|
|
onScrollShouldSetResponder,
|
|
onScrollShouldSetResponderCapture,
|
|
onSelectionChangeShouldSetResponder,
|
|
onSelectionChangeShouldSetResponderCapture,
|
|
onStartShouldSetResponder,
|
|
onStartShouldSetResponderCapture
|
|
});
|
|
var handleClick = React44.useCallback((e) => {
|
|
if (onClick != null) {
|
|
onClick(e);
|
|
} else if (onPress != null) {
|
|
e.stopPropagation();
|
|
onPress(e);
|
|
}
|
|
}, [onClick, onPress]);
|
|
var component = hasTextAncestor ? "span" : "div";
|
|
var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;
|
|
var componentDirection = props.dir || langDirection;
|
|
var writingDirection = componentDirection || contextDirection;
|
|
var supportedProps = pickProps(rest);
|
|
supportedProps.dir = componentDirection;
|
|
if (!hasTextAncestor) {
|
|
supportedProps.dir = componentDirection != null ? componentDirection : "auto";
|
|
}
|
|
if (onClick || onPress) {
|
|
supportedProps.onClick = handleClick;
|
|
}
|
|
supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {
|
|
WebkitLineClamp: numberOfLines
|
|
}, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];
|
|
if (props.href != null) {
|
|
component = "a";
|
|
if (hrefAttrs != null) {
|
|
var download = hrefAttrs.download, rel = hrefAttrs.rel, target = hrefAttrs.target;
|
|
if (download != null) {
|
|
supportedProps.download = download;
|
|
}
|
|
if (rel != null) {
|
|
supportedProps.rel = rel;
|
|
}
|
|
if (typeof target === "string") {
|
|
supportedProps.target = target.charAt(0) !== "_" ? "_" + target : target;
|
|
}
|
|
}
|
|
}
|
|
var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);
|
|
var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);
|
|
supportedProps.ref = setRef2;
|
|
var element = (0, _createElement.default)(component, supportedProps, {
|
|
writingDirection
|
|
});
|
|
return hasTextAncestor ? element : /* @__PURE__ */ React44.createElement(_TextAncestorContext.default.Provider, {
|
|
value: true
|
|
}, element);
|
|
});
|
|
Text4.displayName = "Text";
|
|
var textStyle = {
|
|
backgroundColor: "transparent",
|
|
border: "0 solid black",
|
|
boxSizing: "border-box",
|
|
color: "black",
|
|
display: "inline",
|
|
font: "14px System",
|
|
listStyle: "none",
|
|
margin: 0,
|
|
padding: 0,
|
|
position: "relative",
|
|
textAlign: "start",
|
|
textDecoration: "none",
|
|
whiteSpace: "pre-wrap",
|
|
wordWrap: "break-word"
|
|
};
|
|
var styles = _StyleSheet.default.create({
|
|
text$raw: textStyle,
|
|
textHasAncestor$raw: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, textStyle), {}, {
|
|
color: "inherit",
|
|
font: "inherit",
|
|
textAlign: "inherit",
|
|
whiteSpace: "inherit"
|
|
}),
|
|
textOneLine: {
|
|
maxWidth: "100%",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis",
|
|
whiteSpace: "nowrap",
|
|
wordWrap: "normal"
|
|
},
|
|
// See #13
|
|
textMultiLine: {
|
|
display: "-webkit-box",
|
|
maxWidth: "100%",
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis",
|
|
WebkitBoxOrient: "vertical"
|
|
},
|
|
notSelectable: {
|
|
userSelect: "none"
|
|
},
|
|
selectable: {
|
|
userSelect: "text"
|
|
},
|
|
pressable: {
|
|
cursor: "pointer"
|
|
}
|
|
});
|
|
var _default = Text4;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js
|
|
var require_AnimatedText = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedText.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _Text = _interopRequireDefault(require_Text());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var _default = (0, _createAnimatedComponent.default)(_Text.default);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js
|
|
var require_AnimatedView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/components/AnimatedView.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var _default = (0, _createAnimatedComponent.default)(_View.default);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js
|
|
var require_AnimatedAddition = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedAddition.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedAddition = class _AnimatedAddition extends _AnimatedWithChildren.default {
|
|
constructor(a, b) {
|
|
super();
|
|
this._a = typeof a === "number" ? new _AnimatedValue.default(a) : a;
|
|
this._b = typeof b === "number" ? new _AnimatedValue.default(b) : b;
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
this._b.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
return this._a.__getValue() + this._b.__getValue();
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
this._b.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
this._b.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "addition",
|
|
input: [this._a.__getNativeTag(), this._b.__getNativeTag()]
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedAddition, "AnimatedAddition");
|
|
var AnimatedAddition = _AnimatedAddition;
|
|
var _default = AnimatedAddition;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js
|
|
var require_AnimatedDiffClamp = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedDiffClamp = class _AnimatedDiffClamp extends _AnimatedWithChildren.default {
|
|
constructor(a, min2, max2) {
|
|
super();
|
|
this._a = a;
|
|
this._min = min2;
|
|
this._max = max2;
|
|
this._value = this._lastValue = this._a.__getValue();
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__getValue() {
|
|
var value = this._a.__getValue();
|
|
var diff = value - this._lastValue;
|
|
this._lastValue = value;
|
|
this._value = Math.min(Math.max(this._value + diff, this._min), this._max);
|
|
return this._value;
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "diffclamp",
|
|
input: this._a.__getNativeTag(),
|
|
min: this._min,
|
|
max: this._max
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedDiffClamp, "AnimatedDiffClamp");
|
|
var AnimatedDiffClamp = _AnimatedDiffClamp;
|
|
var _default = AnimatedDiffClamp;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js
|
|
var require_AnimatedDivision = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedDivision.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedDivision = class _AnimatedDivision extends _AnimatedWithChildren.default {
|
|
constructor(a, b) {
|
|
super();
|
|
this._warnedAboutDivideByZero = false;
|
|
if (b === 0 || b instanceof _AnimatedNode.default && b.__getValue() === 0) {
|
|
console.error("Detected potential division by zero in AnimatedDivision");
|
|
}
|
|
this._a = typeof a === "number" ? new _AnimatedValue.default(a) : a;
|
|
this._b = typeof b === "number" ? new _AnimatedValue.default(b) : b;
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
this._b.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
var a = this._a.__getValue();
|
|
var b = this._b.__getValue();
|
|
if (b === 0) {
|
|
if (!this._warnedAboutDivideByZero) {
|
|
console.error("Detected division by zero in AnimatedDivision");
|
|
this._warnedAboutDivideByZero = true;
|
|
}
|
|
return 0;
|
|
}
|
|
this._warnedAboutDivideByZero = false;
|
|
return a / b;
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
this._b.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
this._b.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "division",
|
|
input: [this._a.__getNativeTag(), this._b.__getNativeTag()]
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedDivision, "AnimatedDivision");
|
|
var AnimatedDivision = _AnimatedDivision;
|
|
var _default = AnimatedDivision;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js
|
|
var require_AnimatedModulo = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedModulo.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedModulo = class _AnimatedModulo extends _AnimatedWithChildren.default {
|
|
constructor(a, modulus) {
|
|
super();
|
|
this._a = a;
|
|
this._modulus = modulus;
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "modulus",
|
|
input: this._a.__getNativeTag(),
|
|
modulus: this._modulus
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedModulo, "AnimatedModulo");
|
|
var AnimatedModulo = _AnimatedModulo;
|
|
var _default = AnimatedModulo;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js
|
|
var require_AnimatedMultiplication = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedMultiplication.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedMultiplication = class _AnimatedMultiplication extends _AnimatedWithChildren.default {
|
|
constructor(a, b) {
|
|
super();
|
|
this._a = typeof a === "number" ? new _AnimatedValue.default(a) : a;
|
|
this._b = typeof b === "number" ? new _AnimatedValue.default(b) : b;
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
this._b.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
return this._a.__getValue() * this._b.__getValue();
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
this._b.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
this._b.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "multiplication",
|
|
input: [this._a.__getNativeTag(), this._b.__getNativeTag()]
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedMultiplication, "AnimatedMultiplication");
|
|
var AnimatedMultiplication = _AnimatedMultiplication;
|
|
var _default = AnimatedMultiplication;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js
|
|
var require_AnimatedSubtraction = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedSubtraction.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _AnimatedSubtraction = class _AnimatedSubtraction extends _AnimatedWithChildren.default {
|
|
constructor(a, b) {
|
|
super();
|
|
this._a = typeof a === "number" ? new _AnimatedValue.default(a) : a;
|
|
this._b = typeof b === "number" ? new _AnimatedValue.default(b) : b;
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this._a.__makeNative(platformConfig);
|
|
this._b.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getValue() {
|
|
return this._a.__getValue() - this._b.__getValue();
|
|
}
|
|
interpolate(config2) {
|
|
return new _AnimatedInterpolation.default(this, config2);
|
|
}
|
|
__attach() {
|
|
this._a.__addChild(this);
|
|
this._b.__addChild(this);
|
|
}
|
|
__detach() {
|
|
this._a.__removeChild(this);
|
|
this._b.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "subtraction",
|
|
input: [this._a.__getNativeTag(), this._b.__getNativeTag()]
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedSubtraction, "AnimatedSubtraction");
|
|
var AnimatedSubtraction = _AnimatedSubtraction;
|
|
var _default = AnimatedSubtraction;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js
|
|
var require_AnimatedTracking = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedTracking.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _NativeAnimatedHelper = require_NativeAnimatedHelper();
|
|
var _AnimatedTracking = class _AnimatedTracking extends _AnimatedNode.default {
|
|
constructor(value, parent, animationClass, animationConfig, callback) {
|
|
super();
|
|
this._value = value;
|
|
this._parent = parent;
|
|
this._animationClass = animationClass;
|
|
this._animationConfig = animationConfig;
|
|
this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(animationConfig);
|
|
this._callback = callback;
|
|
this.__attach();
|
|
}
|
|
__makeNative() {
|
|
this.__isNative = true;
|
|
this._parent.__makeNative();
|
|
super.__makeNative();
|
|
this._value.__makeNative();
|
|
}
|
|
__getValue() {
|
|
return this._parent.__getValue();
|
|
}
|
|
__attach() {
|
|
this._parent.__addChild(this);
|
|
if (this._useNativeDriver) {
|
|
this.__makeNative();
|
|
}
|
|
}
|
|
__detach() {
|
|
this._parent.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
update() {
|
|
this._value.animate(new this._animationClass((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._animationConfig), {}, {
|
|
toValue: this._animationConfig.toValue.__getValue()
|
|
})), this._callback);
|
|
}
|
|
__getNativeConfig() {
|
|
var animation = new this._animationClass((0, _objectSpread2.default)((0, _objectSpread2.default)({}, this._animationConfig), {}, {
|
|
// remove toValue from the config as it's a ref to Animated.Value
|
|
toValue: void 0
|
|
}));
|
|
var animationConfig = animation.__getNativeAnimationConfig();
|
|
return {
|
|
type: "tracking",
|
|
animationId: (0, _NativeAnimatedHelper.generateNewAnimationId)(),
|
|
animationConfig,
|
|
toValue: this._parent.__getNativeTag(),
|
|
value: this._value.__getNativeTag()
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedTracking, "AnimatedTracking");
|
|
var AnimatedTracking = _AnimatedTracking;
|
|
var _default = AnimatedTracking;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js
|
|
var require_AnimatedValueXY = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedValueXY.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _uniqueId = 1;
|
|
var _AnimatedValueXY = class _AnimatedValueXY extends _AnimatedWithChildren.default {
|
|
constructor(valueIn) {
|
|
super();
|
|
var value = valueIn || {
|
|
x: 0,
|
|
y: 0
|
|
};
|
|
if (typeof value.x === "number" && typeof value.y === "number") {
|
|
this.x = new _AnimatedValue.default(value.x);
|
|
this.y = new _AnimatedValue.default(value.y);
|
|
} else {
|
|
(0, _invariant.default)(value.x instanceof _AnimatedValue.default && value.y instanceof _AnimatedValue.default, "AnimatedValueXY must be initialized with an object of numbers or AnimatedValues.");
|
|
this.x = value.x;
|
|
this.y = value.y;
|
|
}
|
|
this._listeners = {};
|
|
}
|
|
/**
|
|
* Directly set the value. This will stop any animations running on the value
|
|
* and update all the bound properties.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#setvalue
|
|
*/
|
|
setValue(value) {
|
|
this.x.setValue(value.x);
|
|
this.y.setValue(value.y);
|
|
}
|
|
/**
|
|
* Sets an offset that is applied on top of whatever value is set, whether
|
|
* via `setValue`, an animation, or `Animated.event`. Useful for compensating
|
|
* things like the start of a pan gesture.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#setoffset
|
|
*/
|
|
setOffset(offset4) {
|
|
this.x.setOffset(offset4.x);
|
|
this.y.setOffset(offset4.y);
|
|
}
|
|
/**
|
|
* Merges the offset value into the base value and resets the offset to zero.
|
|
* The final output of the value is unchanged.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset
|
|
*/
|
|
flattenOffset() {
|
|
this.x.flattenOffset();
|
|
this.y.flattenOffset();
|
|
}
|
|
/**
|
|
* Sets the offset value to the base value, and resets the base value to
|
|
* zero. The final output of the value is unchanged.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset
|
|
*/
|
|
extractOffset() {
|
|
this.x.extractOffset();
|
|
this.y.extractOffset();
|
|
}
|
|
__getValue() {
|
|
return {
|
|
x: this.x.__getValue(),
|
|
y: this.y.__getValue()
|
|
};
|
|
}
|
|
/**
|
|
* Stops any animation and resets the value to its original.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation
|
|
*/
|
|
resetAnimation(callback) {
|
|
this.x.resetAnimation();
|
|
this.y.resetAnimation();
|
|
callback && callback(this.__getValue());
|
|
}
|
|
/**
|
|
* Stops any running animation or tracking. `callback` is invoked with the
|
|
* final value after stopping the animation, which is useful for updating
|
|
* state to match the animation position with layout.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation
|
|
*/
|
|
stopAnimation(callback) {
|
|
this.x.stopAnimation();
|
|
this.y.stopAnimation();
|
|
callback && callback(this.__getValue());
|
|
}
|
|
/**
|
|
* Adds an asynchronous listener to the value so you can observe updates from
|
|
* animations. This is useful because there is no way to synchronously read
|
|
* the value because it might be driven natively.
|
|
*
|
|
* Returns a string that serves as an identifier for the listener.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#addlistener
|
|
*/
|
|
addListener(callback) {
|
|
var id = String(_uniqueId++);
|
|
var jointCallback = /* @__PURE__ */ __name((_ref) => {
|
|
var number = _ref.value;
|
|
callback(this.__getValue());
|
|
}, "jointCallback");
|
|
this._listeners[id] = {
|
|
x: this.x.addListener(jointCallback),
|
|
y: this.y.addListener(jointCallback)
|
|
};
|
|
return id;
|
|
}
|
|
/**
|
|
* Unregister a listener. The `id` param shall match the identifier
|
|
* previously returned by `addListener()`.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#removelistener
|
|
*/
|
|
removeListener(id) {
|
|
this.x.removeListener(this._listeners[id].x);
|
|
this.y.removeListener(this._listeners[id].y);
|
|
delete this._listeners[id];
|
|
}
|
|
/**
|
|
* Remove all registered listeners.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners
|
|
*/
|
|
removeAllListeners() {
|
|
this.x.removeAllListeners();
|
|
this.y.removeAllListeners();
|
|
this._listeners = {};
|
|
}
|
|
/**
|
|
* Converts `{x, y}` into `{left, top}` for use in style.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#getlayout
|
|
*/
|
|
getLayout() {
|
|
return {
|
|
left: this.x,
|
|
top: this.y
|
|
};
|
|
}
|
|
/**
|
|
* Converts `{x, y}` into a useable translation transform.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform
|
|
*/
|
|
getTranslateTransform() {
|
|
return [{
|
|
translateX: this.x
|
|
}, {
|
|
translateY: this.y
|
|
}];
|
|
}
|
|
};
|
|
__name(_AnimatedValueXY, "AnimatedValueXY");
|
|
var AnimatedValueXY = _AnimatedValueXY;
|
|
var _default = AnimatedValueXY;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/Animation.js
|
|
var require_Animation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/Animation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var startNativeAnimationNextId = 1;
|
|
var _Animation = class _Animation {
|
|
start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {
|
|
}
|
|
stop() {
|
|
if (this.__nativeId) {
|
|
_NativeAnimatedHelper.default.API.stopAnimation(this.__nativeId);
|
|
}
|
|
}
|
|
__getNativeAnimationConfig() {
|
|
throw new Error("This animation type cannot be offloaded to native");
|
|
}
|
|
// Helper function for subclasses to make sure onEnd is only called once.
|
|
__debouncedOnEnd(result) {
|
|
var onEnd = this.__onEnd;
|
|
this.__onEnd = null;
|
|
onEnd && onEnd(result);
|
|
}
|
|
__startNativeAnimation(animatedValue) {
|
|
var startNativeAnimationWaitId = startNativeAnimationNextId + ":startAnimation";
|
|
startNativeAnimationNextId += 1;
|
|
_NativeAnimatedHelper.default.API.setWaitingForIdentifier(startNativeAnimationWaitId);
|
|
try {
|
|
var config2 = this.__getNativeAnimationConfig();
|
|
animatedValue.__makeNative(config2.platformConfig);
|
|
this.__nativeId = _NativeAnimatedHelper.default.generateNewAnimationId();
|
|
_NativeAnimatedHelper.default.API.startAnimatingNode(
|
|
this.__nativeId,
|
|
animatedValue.__getNativeTag(),
|
|
config2,
|
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
this.__debouncedOnEnd.bind(this)
|
|
);
|
|
} catch (e) {
|
|
throw e;
|
|
} finally {
|
|
_NativeAnimatedHelper.default.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);
|
|
}
|
|
}
|
|
};
|
|
__name(_Animation, "Animation");
|
|
var Animation = _Animation;
|
|
var _default = Animation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js
|
|
var require_DecayAnimation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/DecayAnimation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Animation = _interopRequireDefault(require_Animation());
|
|
var _NativeAnimatedHelper = require_NativeAnimatedHelper();
|
|
var _DecayAnimation = class _DecayAnimation extends _Animation.default {
|
|
constructor(config2) {
|
|
var _config$deceleration, _config$isInteraction, _config$iterations;
|
|
super();
|
|
this._deceleration = (_config$deceleration = config2.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;
|
|
this._velocity = config2.velocity;
|
|
this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config2);
|
|
this.__isInteraction = (_config$isInteraction = config2.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;
|
|
this.__iterations = (_config$iterations = config2.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;
|
|
}
|
|
__getNativeAnimationConfig() {
|
|
return {
|
|
type: "decay",
|
|
deceleration: this._deceleration,
|
|
velocity: this._velocity,
|
|
iterations: this.__iterations
|
|
};
|
|
}
|
|
start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {
|
|
this.__active = true;
|
|
this._lastValue = fromValue;
|
|
this._fromValue = fromValue;
|
|
this._onUpdate = onUpdate;
|
|
this.__onEnd = onEnd;
|
|
this._startTime = Date.now();
|
|
if (this._useNativeDriver) {
|
|
this.__startNativeAnimation(animatedValue);
|
|
} else {
|
|
this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));
|
|
}
|
|
}
|
|
onUpdate() {
|
|
var now = Date.now();
|
|
var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));
|
|
this._onUpdate(value);
|
|
if (Math.abs(this._lastValue - value) < 0.1) {
|
|
this.__debouncedOnEnd({
|
|
finished: true
|
|
});
|
|
return;
|
|
}
|
|
this._lastValue = value;
|
|
if (this.__active) {
|
|
this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));
|
|
}
|
|
}
|
|
stop() {
|
|
super.stop();
|
|
this.__active = false;
|
|
global.cancelAnimationFrame(this._animationFrame);
|
|
this.__debouncedOnEnd({
|
|
finished: false
|
|
});
|
|
}
|
|
};
|
|
__name(_DecayAnimation, "DecayAnimation");
|
|
var DecayAnimation = _DecayAnimation;
|
|
var _default = DecayAnimation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/SpringConfig.js
|
|
var require_SpringConfig = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/SpringConfig.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
function stiffnessFromOrigamiValue(oValue) {
|
|
return (oValue - 30) * 3.62 + 194;
|
|
}
|
|
__name(stiffnessFromOrigamiValue, "stiffnessFromOrigamiValue");
|
|
function dampingFromOrigamiValue(oValue) {
|
|
return (oValue - 8) * 3 + 25;
|
|
}
|
|
__name(dampingFromOrigamiValue, "dampingFromOrigamiValue");
|
|
function fromOrigamiTensionAndFriction(tension, friction) {
|
|
return {
|
|
stiffness: stiffnessFromOrigamiValue(tension),
|
|
damping: dampingFromOrigamiValue(friction)
|
|
};
|
|
}
|
|
__name(fromOrigamiTensionAndFriction, "fromOrigamiTensionAndFriction");
|
|
function fromBouncinessAndSpeed(bounciness, speed) {
|
|
function normalize(value, startValue, endValue) {
|
|
return (value - startValue) / (endValue - startValue);
|
|
}
|
|
__name(normalize, "normalize");
|
|
function projectNormal(n, start, end) {
|
|
return start + n * (end - start);
|
|
}
|
|
__name(projectNormal, "projectNormal");
|
|
function linearInterpolation(t, start, end) {
|
|
return t * end + (1 - t) * start;
|
|
}
|
|
__name(linearInterpolation, "linearInterpolation");
|
|
function quadraticOutInterpolation(t, start, end) {
|
|
return linearInterpolation(2 * t - t * t, start, end);
|
|
}
|
|
__name(quadraticOutInterpolation, "quadraticOutInterpolation");
|
|
function b3Friction1(x) {
|
|
return 7e-4 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;
|
|
}
|
|
__name(b3Friction1, "b3Friction1");
|
|
function b3Friction2(x) {
|
|
return 44e-6 * Math.pow(x, 3) - 6e-3 * Math.pow(x, 2) + 0.36 * x + 2;
|
|
}
|
|
__name(b3Friction2, "b3Friction2");
|
|
function b3Friction3(x) {
|
|
return 45e-8 * Math.pow(x, 3) - 332e-6 * Math.pow(x, 2) + 0.1078 * x + 5.84;
|
|
}
|
|
__name(b3Friction3, "b3Friction3");
|
|
function b3Nobounce(tension) {
|
|
if (tension <= 18) {
|
|
return b3Friction1(tension);
|
|
} else if (tension > 18 && tension <= 44) {
|
|
return b3Friction2(tension);
|
|
} else {
|
|
return b3Friction3(tension);
|
|
}
|
|
}
|
|
__name(b3Nobounce, "b3Nobounce");
|
|
var b = normalize(bounciness / 1.7, 0, 20);
|
|
b = projectNormal(b, 0, 0.8);
|
|
var s = normalize(speed / 1.7, 0, 20);
|
|
var bouncyTension = projectNormal(s, 0.5, 200);
|
|
var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);
|
|
return {
|
|
stiffness: stiffnessFromOrigamiValue(bouncyTension),
|
|
damping: dampingFromOrigamiValue(bouncyFriction)
|
|
};
|
|
}
|
|
__name(fromBouncinessAndSpeed, "fromBouncinessAndSpeed");
|
|
var _default = {
|
|
fromOrigamiTensionAndFriction,
|
|
fromBouncinessAndSpeed
|
|
};
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js
|
|
var require_AnimatedColor = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/nodes/AnimatedColor.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedWithChildren = _interopRequireDefault(require_AnimatedWithChildren());
|
|
var _normalizeColors = _interopRequireDefault(require_normalize_colors());
|
|
var _NativeAnimatedHelper = _interopRequireDefault(require_NativeAnimatedHelper());
|
|
var NativeAnimatedAPI = _NativeAnimatedHelper.default.API;
|
|
var defaultColor = {
|
|
r: 0,
|
|
g: 0,
|
|
b: 0,
|
|
a: 1
|
|
};
|
|
var _uniqueId = 1;
|
|
var processColorObject = /* @__PURE__ */ __name((color2) => {
|
|
return color2;
|
|
}, "processColorObject");
|
|
function processColor(color2) {
|
|
if (color2 === void 0 || color2 === null) {
|
|
return null;
|
|
}
|
|
if (isRgbaValue(color2)) {
|
|
return color2;
|
|
}
|
|
var normalizedColor = (0, _normalizeColors.default)(
|
|
// $FlowIgnore[incompatible-cast] - Type is verified above
|
|
color2
|
|
);
|
|
if (normalizedColor === void 0 || normalizedColor === null) {
|
|
return null;
|
|
}
|
|
if (typeof normalizedColor === "object") {
|
|
var processedColorObj = processColorObject(normalizedColor);
|
|
if (processedColorObj != null) {
|
|
return processedColorObj;
|
|
}
|
|
} else if (typeof normalizedColor === "number") {
|
|
var r = (normalizedColor & 4278190080) >>> 24;
|
|
var g = (normalizedColor & 16711680) >>> 16;
|
|
var b = (normalizedColor & 65280) >>> 8;
|
|
var a = (normalizedColor & 255) / 255;
|
|
return {
|
|
r,
|
|
g,
|
|
b,
|
|
a
|
|
};
|
|
}
|
|
return null;
|
|
}
|
|
__name(processColor, "processColor");
|
|
function isRgbaValue(value) {
|
|
return value && typeof value.r === "number" && typeof value.g === "number" && typeof value.b === "number" && typeof value.a === "number";
|
|
}
|
|
__name(isRgbaValue, "isRgbaValue");
|
|
function isRgbaAnimatedValue(value) {
|
|
return value && value.r instanceof _AnimatedValue.default && value.g instanceof _AnimatedValue.default && value.b instanceof _AnimatedValue.default && value.a instanceof _AnimatedValue.default;
|
|
}
|
|
__name(isRgbaAnimatedValue, "isRgbaAnimatedValue");
|
|
var _AnimatedColor = class _AnimatedColor extends _AnimatedWithChildren.default {
|
|
constructor(valueIn, config2) {
|
|
super();
|
|
this._listeners = {};
|
|
var value = valueIn !== null && valueIn !== void 0 ? valueIn : defaultColor;
|
|
if (isRgbaAnimatedValue(value)) {
|
|
var rgbaAnimatedValue = value;
|
|
this.r = rgbaAnimatedValue.r;
|
|
this.g = rgbaAnimatedValue.g;
|
|
this.b = rgbaAnimatedValue.b;
|
|
this.a = rgbaAnimatedValue.a;
|
|
} else {
|
|
var _processColor;
|
|
var processedColor = (
|
|
// $FlowIgnore[incompatible-cast] - Type is verified above
|
|
(_processColor = processColor(value)) !== null && _processColor !== void 0 ? _processColor : defaultColor
|
|
);
|
|
var initColor = defaultColor;
|
|
if (isRgbaValue(processedColor)) {
|
|
initColor = processedColor;
|
|
} else {
|
|
this.nativeColor = processedColor;
|
|
}
|
|
this.r = new _AnimatedValue.default(initColor.r);
|
|
this.g = new _AnimatedValue.default(initColor.g);
|
|
this.b = new _AnimatedValue.default(initColor.b);
|
|
this.a = new _AnimatedValue.default(initColor.a);
|
|
}
|
|
if (this.nativeColor || config2 && config2.useNativeDriver) {
|
|
this.__makeNative();
|
|
}
|
|
}
|
|
/**
|
|
* Directly set the value. This will stop any animations running on the value
|
|
* and update all the bound properties.
|
|
*/
|
|
setValue(value) {
|
|
var _processColor2;
|
|
var shouldUpdateNodeConfig = false;
|
|
if (this.__isNative) {
|
|
var nativeTag = this.__getNativeTag();
|
|
NativeAnimatedAPI.setWaitingForIdentifier(nativeTag.toString());
|
|
}
|
|
var processedColor = (_processColor2 = processColor(value)) !== null && _processColor2 !== void 0 ? _processColor2 : defaultColor;
|
|
if (isRgbaValue(processedColor)) {
|
|
var rgbaValue = processedColor;
|
|
this.r.setValue(rgbaValue.r);
|
|
this.g.setValue(rgbaValue.g);
|
|
this.b.setValue(rgbaValue.b);
|
|
this.a.setValue(rgbaValue.a);
|
|
if (this.nativeColor != null) {
|
|
this.nativeColor = null;
|
|
shouldUpdateNodeConfig = true;
|
|
}
|
|
} else {
|
|
var nativeColor = processedColor;
|
|
if (this.nativeColor !== nativeColor) {
|
|
this.nativeColor = nativeColor;
|
|
shouldUpdateNodeConfig = true;
|
|
}
|
|
}
|
|
if (this.__isNative) {
|
|
var _nativeTag = this.__getNativeTag();
|
|
if (shouldUpdateNodeConfig) {
|
|
NativeAnimatedAPI.updateAnimatedNodeConfig(_nativeTag, this.__getNativeConfig());
|
|
}
|
|
NativeAnimatedAPI.unsetWaitingForIdentifier(_nativeTag.toString());
|
|
}
|
|
}
|
|
/**
|
|
* Sets an offset that is applied on top of whatever value is set, whether
|
|
* via `setValue`, an animation, or `Animated.event`. Useful for compensating
|
|
* things like the start of a pan gesture.
|
|
*/
|
|
setOffset(offset4) {
|
|
this.r.setOffset(offset4.r);
|
|
this.g.setOffset(offset4.g);
|
|
this.b.setOffset(offset4.b);
|
|
this.a.setOffset(offset4.a);
|
|
}
|
|
/**
|
|
* Merges the offset value into the base value and resets the offset to zero.
|
|
* The final output of the value is unchanged.
|
|
*/
|
|
flattenOffset() {
|
|
this.r.flattenOffset();
|
|
this.g.flattenOffset();
|
|
this.b.flattenOffset();
|
|
this.a.flattenOffset();
|
|
}
|
|
/**
|
|
* Sets the offset value to the base value, and resets the base value to
|
|
* zero. The final output of the value is unchanged.
|
|
*/
|
|
extractOffset() {
|
|
this.r.extractOffset();
|
|
this.g.extractOffset();
|
|
this.b.extractOffset();
|
|
this.a.extractOffset();
|
|
}
|
|
/**
|
|
* Adds an asynchronous listener to the value so you can observe updates from
|
|
* animations. This is useful because there is no way to synchronously read
|
|
* the value because it might be driven natively.
|
|
*
|
|
* Returns a string that serves as an identifier for the listener.
|
|
*/
|
|
addListener(callback) {
|
|
var id = String(_uniqueId++);
|
|
var jointCallback = /* @__PURE__ */ __name((_ref) => {
|
|
var number = _ref.value;
|
|
callback(this.__getValue());
|
|
}, "jointCallback");
|
|
this._listeners[id] = {
|
|
r: this.r.addListener(jointCallback),
|
|
g: this.g.addListener(jointCallback),
|
|
b: this.b.addListener(jointCallback),
|
|
a: this.a.addListener(jointCallback)
|
|
};
|
|
return id;
|
|
}
|
|
/**
|
|
* Unregister a listener. The `id` param shall match the identifier
|
|
* previously returned by `addListener()`.
|
|
*/
|
|
removeListener(id) {
|
|
this.r.removeListener(this._listeners[id].r);
|
|
this.g.removeListener(this._listeners[id].g);
|
|
this.b.removeListener(this._listeners[id].b);
|
|
this.a.removeListener(this._listeners[id].a);
|
|
delete this._listeners[id];
|
|
}
|
|
/**
|
|
* Remove all registered listeners.
|
|
*/
|
|
removeAllListeners() {
|
|
this.r.removeAllListeners();
|
|
this.g.removeAllListeners();
|
|
this.b.removeAllListeners();
|
|
this.a.removeAllListeners();
|
|
this._listeners = {};
|
|
}
|
|
/**
|
|
* Stops any running animation or tracking. `callback` is invoked with the
|
|
* final value after stopping the animation, which is useful for updating
|
|
* state to match the animation position with layout.
|
|
*/
|
|
stopAnimation(callback) {
|
|
this.r.stopAnimation();
|
|
this.g.stopAnimation();
|
|
this.b.stopAnimation();
|
|
this.a.stopAnimation();
|
|
callback && callback(this.__getValue());
|
|
}
|
|
/**
|
|
* Stops any animation and resets the value to its original.
|
|
*/
|
|
resetAnimation(callback) {
|
|
this.r.resetAnimation();
|
|
this.g.resetAnimation();
|
|
this.b.resetAnimation();
|
|
this.a.resetAnimation();
|
|
callback && callback(this.__getValue());
|
|
}
|
|
__getValue() {
|
|
if (this.nativeColor != null) {
|
|
return this.nativeColor;
|
|
} else {
|
|
return "rgba(" + this.r.__getValue() + ", " + this.g.__getValue() + ", " + this.b.__getValue() + ", " + this.a.__getValue() + ")";
|
|
}
|
|
}
|
|
__attach() {
|
|
this.r.__addChild(this);
|
|
this.g.__addChild(this);
|
|
this.b.__addChild(this);
|
|
this.a.__addChild(this);
|
|
super.__attach();
|
|
}
|
|
__detach() {
|
|
this.r.__removeChild(this);
|
|
this.g.__removeChild(this);
|
|
this.b.__removeChild(this);
|
|
this.a.__removeChild(this);
|
|
super.__detach();
|
|
}
|
|
__makeNative(platformConfig) {
|
|
this.r.__makeNative(platformConfig);
|
|
this.g.__makeNative(platformConfig);
|
|
this.b.__makeNative(platformConfig);
|
|
this.a.__makeNative(platformConfig);
|
|
super.__makeNative(platformConfig);
|
|
}
|
|
__getNativeConfig() {
|
|
return {
|
|
type: "color",
|
|
r: this.r.__getNativeTag(),
|
|
g: this.g.__getNativeTag(),
|
|
b: this.b.__getNativeTag(),
|
|
a: this.a.__getNativeTag(),
|
|
nativeColor: this.nativeColor
|
|
};
|
|
}
|
|
};
|
|
__name(_AnimatedColor, "AnimatedColor");
|
|
var AnimatedColor = _AnimatedColor;
|
|
exports2.default = AnimatedColor;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js
|
|
var require_SpringAnimation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/SpringAnimation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Animation = _interopRequireDefault(require_Animation());
|
|
var _SpringConfig = _interopRequireDefault(require_SpringConfig());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _NativeAnimatedHelper = require_NativeAnimatedHelper();
|
|
var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());
|
|
var _SpringAnimation = class _SpringAnimation extends _Animation.default {
|
|
constructor(config2) {
|
|
var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;
|
|
super();
|
|
this._overshootClamping = (_config$overshootClam = config2.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;
|
|
this._restDisplacementThreshold = (_config$restDisplacem = config2.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 1e-3;
|
|
this._restSpeedThreshold = (_config$restSpeedThre = config2.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 1e-3;
|
|
this._initialVelocity = (_config$velocity = config2.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;
|
|
this._lastVelocity = (_config$velocity2 = config2.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;
|
|
this._toValue = config2.toValue;
|
|
this._delay = (_config$delay = config2.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;
|
|
this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config2);
|
|
this._platformConfig = config2.platformConfig;
|
|
this.__isInteraction = (_config$isInteraction = config2.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;
|
|
this.__iterations = (_config$iterations = config2.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;
|
|
if (config2.stiffness !== void 0 || config2.damping !== void 0 || config2.mass !== void 0) {
|
|
var _config$stiffness, _config$damping, _config$mass;
|
|
(0, _invariant.default)(config2.bounciness === void 0 && config2.speed === void 0 && config2.tension === void 0 && config2.friction === void 0, "You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one");
|
|
this._stiffness = (_config$stiffness = config2.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;
|
|
this._damping = (_config$damping = config2.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;
|
|
this._mass = (_config$mass = config2.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;
|
|
} else if (config2.bounciness !== void 0 || config2.speed !== void 0) {
|
|
var _config$bounciness, _config$speed;
|
|
(0, _invariant.default)(config2.tension === void 0 && config2.friction === void 0 && config2.stiffness === void 0 && config2.damping === void 0 && config2.mass === void 0, "You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one");
|
|
var springConfig = _SpringConfig.default.fromBouncinessAndSpeed((_config$bounciness = config2.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config2.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);
|
|
this._stiffness = springConfig.stiffness;
|
|
this._damping = springConfig.damping;
|
|
this._mass = 1;
|
|
} else {
|
|
var _config$tension, _config$friction;
|
|
var _springConfig = _SpringConfig.default.fromOrigamiTensionAndFriction((_config$tension = config2.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config2.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);
|
|
this._stiffness = _springConfig.stiffness;
|
|
this._damping = _springConfig.damping;
|
|
this._mass = 1;
|
|
}
|
|
(0, _invariant.default)(this._stiffness > 0, "Stiffness value must be greater than 0");
|
|
(0, _invariant.default)(this._damping > 0, "Damping value must be greater than 0");
|
|
(0, _invariant.default)(this._mass > 0, "Mass value must be greater than 0");
|
|
}
|
|
__getNativeAnimationConfig() {
|
|
var _this$_initialVelocit;
|
|
return {
|
|
type: "spring",
|
|
overshootClamping: this._overshootClamping,
|
|
restDisplacementThreshold: this._restDisplacementThreshold,
|
|
restSpeedThreshold: this._restSpeedThreshold,
|
|
stiffness: this._stiffness,
|
|
damping: this._damping,
|
|
mass: this._mass,
|
|
initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,
|
|
toValue: this._toValue,
|
|
iterations: this.__iterations,
|
|
platformConfig: this._platformConfig
|
|
};
|
|
}
|
|
start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {
|
|
this.__active = true;
|
|
this._startPosition = fromValue;
|
|
this._lastPosition = this._startPosition;
|
|
this._onUpdate = onUpdate;
|
|
this.__onEnd = onEnd;
|
|
this._lastTime = Date.now();
|
|
this._frameTime = 0;
|
|
if (previousAnimation instanceof _SpringAnimation) {
|
|
var internalState = previousAnimation.getInternalState();
|
|
this._lastPosition = internalState.lastPosition;
|
|
this._lastVelocity = internalState.lastVelocity;
|
|
this._initialVelocity = this._lastVelocity;
|
|
this._lastTime = internalState.lastTime;
|
|
}
|
|
var start = /* @__PURE__ */ __name(() => {
|
|
if (this._useNativeDriver) {
|
|
this.__startNativeAnimation(animatedValue);
|
|
} else {
|
|
this.onUpdate();
|
|
}
|
|
}, "start");
|
|
if (this._delay) {
|
|
this._timeout = setTimeout(start, this._delay);
|
|
} else {
|
|
start();
|
|
}
|
|
}
|
|
getInternalState() {
|
|
return {
|
|
lastPosition: this._lastPosition,
|
|
lastVelocity: this._lastVelocity,
|
|
lastTime: this._lastTime
|
|
};
|
|
}
|
|
/**
|
|
* This spring model is based off of a damped harmonic oscillator
|
|
* (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).
|
|
*
|
|
* We use the closed form of the second order differential equation:
|
|
*
|
|
* x'' + (2ζ⍵_0)x' + ⍵^2x = 0
|
|
*
|
|
* where
|
|
* ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),
|
|
* ζ = c / 2√mk (damping ratio),
|
|
* c = damping constant
|
|
* k = stiffness
|
|
* m = mass
|
|
*
|
|
* The derivation of the closed form is described in detail here:
|
|
* http://planetmath.org/sites/default/files/texpdf/39745.pdf
|
|
*
|
|
* This algorithm happens to match the algorithm used by CASpringAnimation,
|
|
* a QuartzCore (iOS) API that creates spring animations.
|
|
*/
|
|
onUpdate() {
|
|
var MAX_STEPS = 64;
|
|
var now = Date.now();
|
|
if (now > this._lastTime + MAX_STEPS) {
|
|
now = this._lastTime + MAX_STEPS;
|
|
}
|
|
var deltaTime = (now - this._lastTime) / 1e3;
|
|
this._frameTime += deltaTime;
|
|
var c = this._damping;
|
|
var m = this._mass;
|
|
var k = this._stiffness;
|
|
var v0 = -this._initialVelocity;
|
|
var zeta = c / (2 * Math.sqrt(k * m));
|
|
var omega0 = Math.sqrt(k / m);
|
|
var omega1 = omega0 * Math.sqrt(1 - zeta * zeta);
|
|
var x0 = this._toValue - this._startPosition;
|
|
var position = 0;
|
|
var velocity = 0;
|
|
var t = this._frameTime;
|
|
if (zeta < 1) {
|
|
var envelope = Math.exp(-zeta * omega0 * t);
|
|
position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t));
|
|
velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));
|
|
} else {
|
|
var _envelope = Math.exp(-omega0 * t);
|
|
position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);
|
|
velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));
|
|
}
|
|
this._lastTime = now;
|
|
this._lastPosition = position;
|
|
this._lastVelocity = velocity;
|
|
this._onUpdate(position);
|
|
if (!this.__active) {
|
|
return;
|
|
}
|
|
var isOvershooting = false;
|
|
if (this._overshootClamping && this._stiffness !== 0) {
|
|
if (this._startPosition < this._toValue) {
|
|
isOvershooting = position > this._toValue;
|
|
} else {
|
|
isOvershooting = position < this._toValue;
|
|
}
|
|
}
|
|
var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;
|
|
var isDisplacement = true;
|
|
if (this._stiffness !== 0) {
|
|
isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;
|
|
}
|
|
if (isOvershooting || isVelocity && isDisplacement) {
|
|
if (this._stiffness !== 0) {
|
|
this._lastPosition = this._toValue;
|
|
this._lastVelocity = 0;
|
|
this._onUpdate(this._toValue);
|
|
}
|
|
this.__debouncedOnEnd({
|
|
finished: true
|
|
});
|
|
return;
|
|
}
|
|
this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));
|
|
}
|
|
stop() {
|
|
super.stop();
|
|
this.__active = false;
|
|
clearTimeout(this._timeout);
|
|
global.cancelAnimationFrame(this._animationFrame);
|
|
this.__debouncedOnEnd({
|
|
finished: false
|
|
});
|
|
}
|
|
};
|
|
__name(_SpringAnimation, "SpringAnimation");
|
|
var SpringAnimation = _SpringAnimation;
|
|
var _default = SpringAnimation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/bezier.js
|
|
var require_bezier = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/bezier.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = bezier;
|
|
var NEWTON_ITERATIONS = 4;
|
|
var NEWTON_MIN_SLOPE = 1e-3;
|
|
var SUBDIVISION_PRECISION = 1e-7;
|
|
var SUBDIVISION_MAX_ITERATIONS = 10;
|
|
var kSplineTableSize = 11;
|
|
var kSampleStepSize = 1 / (kSplineTableSize - 1);
|
|
var float32ArraySupported = typeof Float32Array === "function";
|
|
function A(aA1, aA2) {
|
|
return 1 - 3 * aA2 + 3 * aA1;
|
|
}
|
|
__name(A, "A");
|
|
function B(aA1, aA2) {
|
|
return 3 * aA2 - 6 * aA1;
|
|
}
|
|
__name(B, "B");
|
|
function C(aA1) {
|
|
return 3 * aA1;
|
|
}
|
|
__name(C, "C");
|
|
function calcBezier(aT, aA1, aA2) {
|
|
return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
|
|
}
|
|
__name(calcBezier, "calcBezier");
|
|
function getSlope(aT, aA1, aA2) {
|
|
return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
|
|
}
|
|
__name(getSlope, "getSlope");
|
|
function binarySubdivide(aX, _aA, _aB, mX1, mX2) {
|
|
var currentX, currentT, i = 0, aA = _aA, aB = _aB;
|
|
do {
|
|
currentT = aA + (aB - aA) / 2;
|
|
currentX = calcBezier(currentT, mX1, mX2) - aX;
|
|
if (currentX > 0) {
|
|
aB = currentT;
|
|
} else {
|
|
aA = currentT;
|
|
}
|
|
} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
|
|
return currentT;
|
|
}
|
|
__name(binarySubdivide, "binarySubdivide");
|
|
function newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {
|
|
var aGuessT = _aGuessT;
|
|
for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
|
|
var currentSlope = getSlope(aGuessT, mX1, mX2);
|
|
if (currentSlope === 0) {
|
|
return aGuessT;
|
|
}
|
|
var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
|
|
aGuessT -= currentX / currentSlope;
|
|
}
|
|
return aGuessT;
|
|
}
|
|
__name(newtonRaphsonIterate, "newtonRaphsonIterate");
|
|
function bezier(mX1, mY1, mX2, mY2) {
|
|
if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {
|
|
throw new Error("bezier x values must be in [0, 1] range");
|
|
}
|
|
var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
|
|
if (mX1 !== mY1 || mX2 !== mY2) {
|
|
for (var i = 0; i < kSplineTableSize; ++i) {
|
|
sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
|
|
}
|
|
}
|
|
function getTForX(aX) {
|
|
var intervalStart = 0;
|
|
var currentSample = 1;
|
|
var lastSample = kSplineTableSize - 1;
|
|
for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
|
|
intervalStart += kSampleStepSize;
|
|
}
|
|
--currentSample;
|
|
var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);
|
|
var guessForT = intervalStart + dist * kSampleStepSize;
|
|
var initialSlope = getSlope(guessForT, mX1, mX2);
|
|
if (initialSlope >= NEWTON_MIN_SLOPE) {
|
|
return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
|
|
} else if (initialSlope === 0) {
|
|
return guessForT;
|
|
} else {
|
|
return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
|
|
}
|
|
}
|
|
__name(getTForX, "getTForX");
|
|
return /* @__PURE__ */ __name(function BezierEasing(x) {
|
|
if (mX1 === mY1 && mX2 === mY2) {
|
|
return x;
|
|
}
|
|
if (x === 0) {
|
|
return 0;
|
|
}
|
|
if (x === 1) {
|
|
return 1;
|
|
}
|
|
return calcBezier(getTForX(x), mY1, mY2);
|
|
}, "BezierEasing");
|
|
}
|
|
__name(bezier, "bezier");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Easing.js
|
|
var require_Easing = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Easing.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _bezier2 = _interopRequireDefault(require_bezier());
|
|
var ease;
|
|
var _Easing = class _Easing {
|
|
/**
|
|
* A stepping function, returns 1 for any positive value of `n`.
|
|
*/
|
|
static step0(n) {
|
|
return n > 0 ? 1 : 0;
|
|
}
|
|
/**
|
|
* A stepping function, returns 1 if `n` is greater than or equal to 1.
|
|
*/
|
|
static step1(n) {
|
|
return n >= 1 ? 1 : 0;
|
|
}
|
|
/**
|
|
* A linear function, `f(t) = t`. Position correlates to elapsed time one to
|
|
* one.
|
|
*
|
|
* http://cubic-bezier.com/#0,0,1,1
|
|
*/
|
|
static linear(t) {
|
|
return t;
|
|
}
|
|
/**
|
|
* A simple inertial interaction, similar to an object slowly accelerating to
|
|
* speed.
|
|
*
|
|
* http://cubic-bezier.com/#.42,0,1,1
|
|
*/
|
|
static ease(t) {
|
|
if (!ease) {
|
|
ease = _Easing.bezier(0.42, 0, 1, 1);
|
|
}
|
|
return ease(t);
|
|
}
|
|
/**
|
|
* A quadratic function, `f(t) = t * t`. Position equals the square of elapsed
|
|
* time.
|
|
*
|
|
* http://easings.net/#easeInQuad
|
|
*/
|
|
static quad(t) {
|
|
return t * t;
|
|
}
|
|
/**
|
|
* A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed
|
|
* time.
|
|
*
|
|
* http://easings.net/#easeInCubic
|
|
*/
|
|
static cubic(t) {
|
|
return t * t * t;
|
|
}
|
|
/**
|
|
* A power function. Position is equal to the Nth power of elapsed time.
|
|
*
|
|
* n = 4: http://easings.net/#easeInQuart
|
|
* n = 5: http://easings.net/#easeInQuint
|
|
*/
|
|
static poly(n) {
|
|
return (t) => Math.pow(t, n);
|
|
}
|
|
/**
|
|
* A sinusoidal function.
|
|
*
|
|
* http://easings.net/#easeInSine
|
|
*/
|
|
static sin(t) {
|
|
return 1 - Math.cos(t * Math.PI / 2);
|
|
}
|
|
/**
|
|
* A circular function.
|
|
*
|
|
* http://easings.net/#easeInCirc
|
|
*/
|
|
static circle(t) {
|
|
return 1 - Math.sqrt(1 - t * t);
|
|
}
|
|
/**
|
|
* An exponential function.
|
|
*
|
|
* http://easings.net/#easeInExpo
|
|
*/
|
|
static exp(t) {
|
|
return Math.pow(2, 10 * (t - 1));
|
|
}
|
|
/**
|
|
* A simple elastic interaction, similar to a spring oscillating back and
|
|
* forth.
|
|
*
|
|
* Default bounciness is 1, which overshoots a little bit once. 0 bounciness
|
|
* doesn't overshoot at all, and bounciness of N > 1 will overshoot about N
|
|
* times.
|
|
*
|
|
* http://easings.net/#easeInElastic
|
|
*/
|
|
static elastic(bounciness) {
|
|
if (bounciness === void 0) {
|
|
bounciness = 1;
|
|
}
|
|
var p = bounciness * Math.PI;
|
|
return (t) => 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);
|
|
}
|
|
/**
|
|
* Use with `Animated.parallel()` to create a simple effect where the object
|
|
* animates back slightly as the animation starts.
|
|
*
|
|
* Wolfram Plot:
|
|
*
|
|
* - http://tiny.cc/back_default (s = 1.70158, default)
|
|
*/
|
|
static back(s) {
|
|
if (s === void 0) {
|
|
s = 1.70158;
|
|
}
|
|
return (t) => t * t * ((s + 1) * t - s);
|
|
}
|
|
/**
|
|
* Provides a simple bouncing effect.
|
|
*
|
|
* http://easings.net/#easeInBounce
|
|
*/
|
|
static bounce(t) {
|
|
if (t < 1 / 2.75) {
|
|
return 7.5625 * t * t;
|
|
}
|
|
if (t < 2 / 2.75) {
|
|
var _t = t - 1.5 / 2.75;
|
|
return 7.5625 * _t * _t + 0.75;
|
|
}
|
|
if (t < 2.5 / 2.75) {
|
|
var _t2 = t - 2.25 / 2.75;
|
|
return 7.5625 * _t2 * _t2 + 0.9375;
|
|
}
|
|
var t2 = t - 2.625 / 2.75;
|
|
return 7.5625 * t2 * t2 + 0.984375;
|
|
}
|
|
/**
|
|
* Provides a cubic bezier curve, equivalent to CSS Transitions'
|
|
* `transition-timing-function`.
|
|
*
|
|
* A useful tool to visualize cubic bezier curves can be found at
|
|
* http://cubic-bezier.com/
|
|
*/
|
|
static bezier(x1, y1, x2, y2) {
|
|
return (0, _bezier2.default)(x1, y1, x2, y2);
|
|
}
|
|
/**
|
|
* Runs an easing function forwards.
|
|
*/
|
|
static in(easing) {
|
|
return easing;
|
|
}
|
|
/**
|
|
* Runs an easing function backwards.
|
|
*/
|
|
static out(easing) {
|
|
return (t) => 1 - easing(1 - t);
|
|
}
|
|
/**
|
|
* Makes any easing function symmetrical. The easing function will run
|
|
* forwards for half of the duration, then backwards for the rest of the
|
|
* duration.
|
|
*/
|
|
static inOut(easing) {
|
|
return (t) => {
|
|
if (t < 0.5) {
|
|
return easing(t * 2) / 2;
|
|
}
|
|
return 1 - easing((1 - t) * 2) / 2;
|
|
};
|
|
}
|
|
};
|
|
__name(_Easing, "Easing");
|
|
var Easing = _Easing;
|
|
var _default = Easing;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Easing/index.js
|
|
var require_Easing2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Easing/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Easing = _interopRequireDefault(require_Easing());
|
|
var _default = _Easing.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js
|
|
var require_TimingAnimation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/animations/TimingAnimation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _Easing = _interopRequireDefault(require_Easing2());
|
|
var _Animation = _interopRequireDefault(require_Animation());
|
|
var _NativeAnimatedHelper = require_NativeAnimatedHelper();
|
|
var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());
|
|
var _easeInOut;
|
|
function easeInOut() {
|
|
if (!_easeInOut) {
|
|
_easeInOut = _Easing.default.inOut(_Easing.default.ease);
|
|
}
|
|
return _easeInOut;
|
|
}
|
|
__name(easeInOut, "easeInOut");
|
|
var _TimingAnimation = class _TimingAnimation extends _Animation.default {
|
|
constructor(config2) {
|
|
var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;
|
|
super();
|
|
this._toValue = config2.toValue;
|
|
this._easing = (_config$easing = config2.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();
|
|
this._duration = (_config$duration = config2.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;
|
|
this._delay = (_config$delay = config2.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;
|
|
this.__iterations = (_config$iterations = config2.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;
|
|
this._useNativeDriver = (0, _NativeAnimatedHelper.shouldUseNativeDriver)(config2);
|
|
this._platformConfig = config2.platformConfig;
|
|
this.__isInteraction = (_config$isInteraction = config2.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !this._useNativeDriver;
|
|
}
|
|
__getNativeAnimationConfig() {
|
|
var frameDuration = 1e3 / 60;
|
|
var frames = [];
|
|
var numFrames = Math.round(this._duration / frameDuration);
|
|
for (var frame = 0; frame < numFrames; frame++) {
|
|
frames.push(this._easing(frame / numFrames));
|
|
}
|
|
frames.push(this._easing(1));
|
|
return {
|
|
type: "frames",
|
|
frames,
|
|
toValue: this._toValue,
|
|
iterations: this.__iterations,
|
|
platformConfig: this._platformConfig
|
|
};
|
|
}
|
|
start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {
|
|
this.__active = true;
|
|
this._fromValue = fromValue;
|
|
this._onUpdate = onUpdate;
|
|
this.__onEnd = onEnd;
|
|
var start = /* @__PURE__ */ __name(() => {
|
|
if (this._duration === 0 && !this._useNativeDriver) {
|
|
this._onUpdate(this._toValue);
|
|
this.__debouncedOnEnd({
|
|
finished: true
|
|
});
|
|
} else {
|
|
this._startTime = Date.now();
|
|
if (this._useNativeDriver) {
|
|
this.__startNativeAnimation(animatedValue);
|
|
} else {
|
|
this._animationFrame = requestAnimationFrame(
|
|
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
this.onUpdate.bind(this)
|
|
);
|
|
}
|
|
}
|
|
}, "start");
|
|
if (this._delay) {
|
|
this._timeout = setTimeout(start, this._delay);
|
|
} else {
|
|
start();
|
|
}
|
|
}
|
|
onUpdate() {
|
|
var now = Date.now();
|
|
if (now >= this._startTime + this._duration) {
|
|
if (this._duration === 0) {
|
|
this._onUpdate(this._toValue);
|
|
} else {
|
|
this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));
|
|
}
|
|
this.__debouncedOnEnd({
|
|
finished: true
|
|
});
|
|
return;
|
|
}
|
|
this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));
|
|
if (this.__active) {
|
|
this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));
|
|
}
|
|
}
|
|
stop() {
|
|
super.stop();
|
|
this.__active = false;
|
|
clearTimeout(this._timeout);
|
|
global.cancelAnimationFrame(this._animationFrame);
|
|
this.__debouncedOnEnd({
|
|
finished: false
|
|
});
|
|
}
|
|
};
|
|
__name(_TimingAnimation, "TimingAnimation");
|
|
var TimingAnimation = _TimingAnimation;
|
|
var _default = TimingAnimation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js
|
|
var require_AnimatedImplementation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedImplementation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedEvent = require_AnimatedEvent();
|
|
var _AnimatedAddition = _interopRequireDefault(require_AnimatedAddition());
|
|
var _AnimatedDiffClamp = _interopRequireDefault(require_AnimatedDiffClamp());
|
|
var _AnimatedDivision = _interopRequireDefault(require_AnimatedDivision());
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedModulo = _interopRequireDefault(require_AnimatedModulo());
|
|
var _AnimatedMultiplication = _interopRequireDefault(require_AnimatedMultiplication());
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedProps = _interopRequireDefault(require_AnimatedProps());
|
|
var _AnimatedSubtraction = _interopRequireDefault(require_AnimatedSubtraction());
|
|
var _AnimatedTracking = _interopRequireDefault(require_AnimatedTracking());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());
|
|
var _DecayAnimation = _interopRequireDefault(require_DecayAnimation());
|
|
var _SpringAnimation = _interopRequireDefault(require_SpringAnimation());
|
|
var _TimingAnimation = _interopRequireDefault(require_TimingAnimation());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());
|
|
var add = /* @__PURE__ */ __name(function add2(a, b) {
|
|
return new _AnimatedAddition.default(a, b);
|
|
}, "add");
|
|
var subtract = /* @__PURE__ */ __name(function subtract2(a, b) {
|
|
return new _AnimatedSubtraction.default(a, b);
|
|
}, "subtract");
|
|
var divide = /* @__PURE__ */ __name(function divide2(a, b) {
|
|
return new _AnimatedDivision.default(a, b);
|
|
}, "divide");
|
|
var multiply = /* @__PURE__ */ __name(function multiply2(a, b) {
|
|
return new _AnimatedMultiplication.default(a, b);
|
|
}, "multiply");
|
|
var modulo = /* @__PURE__ */ __name(function modulo2(a, modulus) {
|
|
return new _AnimatedModulo.default(a, modulus);
|
|
}, "modulo");
|
|
var diffClamp = /* @__PURE__ */ __name(function diffClamp2(a, min2, max2) {
|
|
return new _AnimatedDiffClamp.default(a, min2, max2);
|
|
}, "diffClamp");
|
|
var _combineCallbacks = /* @__PURE__ */ __name(function _combineCallbacks2(callback, config2) {
|
|
if (callback && config2.onComplete) {
|
|
return function() {
|
|
config2.onComplete && config2.onComplete(...arguments);
|
|
callback && callback(...arguments);
|
|
};
|
|
} else {
|
|
return callback || config2.onComplete;
|
|
}
|
|
}, "_combineCallbacks");
|
|
var maybeVectorAnim = /* @__PURE__ */ __name(function maybeVectorAnim2(value, config2, anim) {
|
|
if (value instanceof _AnimatedValueXY.default) {
|
|
var configX = (0, _objectSpread2.default)({}, config2);
|
|
var configY = (0, _objectSpread2.default)({}, config2);
|
|
for (var key in config2) {
|
|
var _config$key = config2[key], x = _config$key.x, y = _config$key.y;
|
|
if (x !== void 0 && y !== void 0) {
|
|
configX[key] = x;
|
|
configY[key] = y;
|
|
}
|
|
}
|
|
var aX = anim(value.x, configX);
|
|
var aY = anim(value.y, configY);
|
|
return parallel([aX, aY], {
|
|
stopTogether: false
|
|
});
|
|
} else if (value instanceof _AnimatedColor.default) {
|
|
var configR = (0, _objectSpread2.default)({}, config2);
|
|
var configG = (0, _objectSpread2.default)({}, config2);
|
|
var configB = (0, _objectSpread2.default)({}, config2);
|
|
var configA = (0, _objectSpread2.default)({}, config2);
|
|
for (var _key in config2) {
|
|
var _config$_key = config2[_key], r = _config$_key.r, g = _config$_key.g, b = _config$_key.b, a = _config$_key.a;
|
|
if (r !== void 0 && g !== void 0 && b !== void 0 && a !== void 0) {
|
|
configR[_key] = r;
|
|
configG[_key] = g;
|
|
configB[_key] = b;
|
|
configA[_key] = a;
|
|
}
|
|
}
|
|
var aR = anim(value.r, configR);
|
|
var aG = anim(value.g, configG);
|
|
var aB = anim(value.b, configB);
|
|
var aA = anim(value.a, configA);
|
|
return parallel([aR, aG, aB, aA], {
|
|
stopTogether: false
|
|
});
|
|
}
|
|
return null;
|
|
}, "maybeVectorAnim");
|
|
var spring = /* @__PURE__ */ __name(function spring2(value, config2) {
|
|
var _start = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {
|
|
callback = _combineCallbacks(callback, configuration);
|
|
var singleValue = animatedValue;
|
|
var singleConfig = configuration;
|
|
singleValue.stopTracking();
|
|
if (configuration.toValue instanceof _AnimatedNode.default) {
|
|
singleValue.track(new _AnimatedTracking.default(singleValue, configuration.toValue, _SpringAnimation.default, singleConfig, callback));
|
|
} else {
|
|
singleValue.animate(new _SpringAnimation.default(singleConfig), callback);
|
|
}
|
|
}, "start");
|
|
return maybeVectorAnim(value, config2, spring2) || {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
_start(value, config2, callback);
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
value.stopAnimation();
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
value.resetAnimation();
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {
|
|
var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config2), {}, {
|
|
iterations
|
|
});
|
|
_start(value, singleConfig);
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return config2.useNativeDriver || false;
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
}, "spring");
|
|
var timing = /* @__PURE__ */ __name(function timing2(value, config2) {
|
|
var _start2 = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {
|
|
callback = _combineCallbacks(callback, configuration);
|
|
var singleValue = animatedValue;
|
|
var singleConfig = configuration;
|
|
singleValue.stopTracking();
|
|
if (configuration.toValue instanceof _AnimatedNode.default) {
|
|
singleValue.track(new _AnimatedTracking.default(singleValue, configuration.toValue, _TimingAnimation.default, singleConfig, callback));
|
|
} else {
|
|
singleValue.animate(new _TimingAnimation.default(singleConfig), callback);
|
|
}
|
|
}, "start");
|
|
return maybeVectorAnim(value, config2, timing2) || {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
_start2(value, config2, callback);
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
value.stopAnimation();
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
value.resetAnimation();
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {
|
|
var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config2), {}, {
|
|
iterations
|
|
});
|
|
_start2(value, singleConfig);
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return config2.useNativeDriver || false;
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
}, "timing");
|
|
var decay = /* @__PURE__ */ __name(function decay2(value, config2) {
|
|
var _start3 = /* @__PURE__ */ __name(function start(animatedValue, configuration, callback) {
|
|
callback = _combineCallbacks(callback, configuration);
|
|
var singleValue = animatedValue;
|
|
var singleConfig = configuration;
|
|
singleValue.stopTracking();
|
|
singleValue.animate(new _DecayAnimation.default(singleConfig), callback);
|
|
}, "start");
|
|
return maybeVectorAnim(value, config2, decay2) || {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
_start3(value, config2, callback);
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
value.stopAnimation();
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
value.resetAnimation();
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop(iterations) {
|
|
var singleConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, config2), {}, {
|
|
iterations
|
|
});
|
|
_start3(value, singleConfig);
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return config2.useNativeDriver || false;
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
}, "decay");
|
|
var sequence = /* @__PURE__ */ __name(function sequence2(animations) {
|
|
var current = 0;
|
|
return {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
var onComplete = /* @__PURE__ */ __name(function onComplete2(result) {
|
|
if (!result.finished) {
|
|
callback && callback(result);
|
|
return;
|
|
}
|
|
current++;
|
|
if (current === animations.length) {
|
|
callback && callback(result);
|
|
return;
|
|
}
|
|
animations[current].start(onComplete2);
|
|
}, "onComplete");
|
|
if (animations.length === 0) {
|
|
callback && callback({
|
|
finished: true
|
|
});
|
|
} else {
|
|
animations[current].start(onComplete);
|
|
}
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
if (current < animations.length) {
|
|
animations[current].stop();
|
|
}
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
animations.forEach((animation, idx) => {
|
|
if (idx <= current) {
|
|
animation.reset();
|
|
}
|
|
});
|
|
current = 0;
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {
|
|
throw new Error("Loops run using the native driver cannot contain Animated.sequence animations");
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return false;
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
}, "sequence");
|
|
var parallel = /* @__PURE__ */ __name(function parallel2(animations, config2) {
|
|
var doneCount = 0;
|
|
var hasEnded = {};
|
|
var stopTogether = !(config2 && config2.stopTogether === false);
|
|
var result = {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
if (doneCount === animations.length) {
|
|
callback && callback({
|
|
finished: true
|
|
});
|
|
return;
|
|
}
|
|
animations.forEach((animation, idx) => {
|
|
var cb = /* @__PURE__ */ __name(function cb2(endResult) {
|
|
hasEnded[idx] = true;
|
|
doneCount++;
|
|
if (doneCount === animations.length) {
|
|
doneCount = 0;
|
|
callback && callback(endResult);
|
|
return;
|
|
}
|
|
if (!endResult.finished && stopTogether) {
|
|
result.stop();
|
|
}
|
|
}, "cb");
|
|
if (!animation) {
|
|
cb({
|
|
finished: true
|
|
});
|
|
} else {
|
|
animation.start(cb);
|
|
}
|
|
});
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
animations.forEach((animation, idx) => {
|
|
!hasEnded[idx] && animation.stop();
|
|
hasEnded[idx] = true;
|
|
});
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
animations.forEach((animation, idx) => {
|
|
animation.reset();
|
|
hasEnded[idx] = false;
|
|
doneCount = 0;
|
|
});
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {
|
|
throw new Error("Loops run using the native driver cannot contain Animated.parallel animations");
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return false;
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
return result;
|
|
}, "parallel");
|
|
var delay = /* @__PURE__ */ __name(function delay2(time) {
|
|
return timing(new _AnimatedValue.default(0), {
|
|
toValue: 0,
|
|
delay: time,
|
|
duration: 0,
|
|
useNativeDriver: false
|
|
});
|
|
}, "delay");
|
|
var stagger = /* @__PURE__ */ __name(function stagger2(time, animations) {
|
|
return parallel(animations.map((animation, i) => {
|
|
return sequence([delay(time * i), animation]);
|
|
}));
|
|
}, "stagger");
|
|
var loop = /* @__PURE__ */ __name(function loop2(animation, _temp) {
|
|
var _ref = _temp === void 0 ? {} : _temp, _ref$iterations = _ref.iterations, iterations = _ref$iterations === void 0 ? -1 : _ref$iterations, _ref$resetBeforeItera = _ref.resetBeforeIteration, resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;
|
|
var isFinished = false;
|
|
var iterationsSoFar = 0;
|
|
return {
|
|
start: /* @__PURE__ */ __name(function start(callback) {
|
|
var restart = /* @__PURE__ */ __name(function restart2(result) {
|
|
if (result === void 0) {
|
|
result = {
|
|
finished: true
|
|
};
|
|
}
|
|
if (isFinished || iterationsSoFar === iterations || result.finished === false) {
|
|
callback && callback(result);
|
|
} else {
|
|
iterationsSoFar++;
|
|
resetBeforeIteration && animation.reset();
|
|
animation.start(restart2);
|
|
}
|
|
}, "restart");
|
|
if (!animation || iterations === 0) {
|
|
callback && callback({
|
|
finished: true
|
|
});
|
|
} else {
|
|
if (animation._isUsingNativeDriver()) {
|
|
animation._startNativeLoop(iterations);
|
|
} else {
|
|
restart();
|
|
}
|
|
}
|
|
}, "start"),
|
|
stop: /* @__PURE__ */ __name(function stop() {
|
|
isFinished = true;
|
|
animation.stop();
|
|
}, "stop"),
|
|
reset: /* @__PURE__ */ __name(function reset() {
|
|
iterationsSoFar = 0;
|
|
isFinished = false;
|
|
animation.reset();
|
|
}, "reset"),
|
|
_startNativeLoop: /* @__PURE__ */ __name(function _startNativeLoop() {
|
|
throw new Error("Loops run using the native driver cannot contain Animated.loop animations");
|
|
}, "_startNativeLoop"),
|
|
_isUsingNativeDriver: /* @__PURE__ */ __name(function _isUsingNativeDriver() {
|
|
return animation._isUsingNativeDriver();
|
|
}, "_isUsingNativeDriver")
|
|
};
|
|
}, "loop");
|
|
function forkEvent(event2, listener) {
|
|
if (!event2) {
|
|
return listener;
|
|
} else if (event2 instanceof _AnimatedEvent.AnimatedEvent) {
|
|
event2.__addListener(listener);
|
|
return event2;
|
|
} else {
|
|
return function() {
|
|
typeof event2 === "function" && event2(...arguments);
|
|
listener(...arguments);
|
|
};
|
|
}
|
|
}
|
|
__name(forkEvent, "forkEvent");
|
|
function unforkEvent(event2, listener) {
|
|
if (event2 && event2 instanceof _AnimatedEvent.AnimatedEvent) {
|
|
event2.__removeListener(listener);
|
|
}
|
|
}
|
|
__name(unforkEvent, "unforkEvent");
|
|
var event = /* @__PURE__ */ __name(function event2(argMapping, config2) {
|
|
var animatedEvent = new _AnimatedEvent.AnimatedEvent(argMapping, config2);
|
|
if (animatedEvent.__isNative) {
|
|
return animatedEvent;
|
|
} else {
|
|
return animatedEvent.__getHandler();
|
|
}
|
|
}, "event");
|
|
var _default = {
|
|
/**
|
|
* Standard value class for driving animations. Typically initialized with
|
|
* `new Animated.Value(0);`
|
|
*
|
|
* See https://reactnative.dev/docs/animated#value
|
|
*/
|
|
Value: _AnimatedValue.default,
|
|
/**
|
|
* 2D value class for driving 2D animations, such as pan gestures.
|
|
*
|
|
* See https://reactnative.dev/docs/animatedvaluexy
|
|
*/
|
|
ValueXY: _AnimatedValueXY.default,
|
|
/**
|
|
* Value class for driving color animations.
|
|
*/
|
|
Color: _AnimatedColor.default,
|
|
/**
|
|
* Exported to use the Interpolation type in flow.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#interpolation
|
|
*/
|
|
Interpolation: _AnimatedInterpolation.default,
|
|
/**
|
|
* Exported for ease of type checking. All animated values derive from this
|
|
* class.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#node
|
|
*/
|
|
Node: _AnimatedNode.default,
|
|
/**
|
|
* Animates a value from an initial velocity to zero based on a decay
|
|
* coefficient.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#decay
|
|
*/
|
|
decay,
|
|
/**
|
|
* Animates a value along a timed easing curve. The Easing module has tons of
|
|
* predefined curves, or you can use your own function.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#timing
|
|
*/
|
|
timing,
|
|
/**
|
|
* Animates a value according to an analytical spring model based on
|
|
* damped harmonic oscillation.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#spring
|
|
*/
|
|
spring,
|
|
/**
|
|
* Creates a new Animated value composed from two Animated values added
|
|
* together.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#add
|
|
*/
|
|
add,
|
|
/**
|
|
* Creates a new Animated value composed by subtracting the second Animated
|
|
* value from the first Animated value.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#subtract
|
|
*/
|
|
subtract,
|
|
/**
|
|
* Creates a new Animated value composed by dividing the first Animated value
|
|
* by the second Animated value.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#divide
|
|
*/
|
|
divide,
|
|
/**
|
|
* Creates a new Animated value composed from two Animated values multiplied
|
|
* together.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#multiply
|
|
*/
|
|
multiply,
|
|
/**
|
|
* Creates a new Animated value that is the (non-negative) modulo of the
|
|
* provided Animated value.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#modulo
|
|
*/
|
|
modulo,
|
|
/**
|
|
* Create a new Animated value that is limited between 2 values. It uses the
|
|
* difference between the last value so even if the value is far from the
|
|
* bounds it will start changing when the value starts getting closer again.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#diffclamp
|
|
*/
|
|
diffClamp,
|
|
/**
|
|
* Starts an animation after the given delay.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#delay
|
|
*/
|
|
delay,
|
|
/**
|
|
* Starts an array of animations in order, waiting for each to complete
|
|
* before starting the next. If the current running animation is stopped, no
|
|
* following animations will be started.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#sequence
|
|
*/
|
|
sequence,
|
|
/**
|
|
* Starts an array of animations all at the same time. By default, if one
|
|
* of the animations is stopped, they will all be stopped. You can override
|
|
* this with the `stopTogether` flag.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#parallel
|
|
*/
|
|
parallel,
|
|
/**
|
|
* Array of animations may run in parallel (overlap), but are started in
|
|
* sequence with successive delays. Nice for doing trailing effects.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#stagger
|
|
*/
|
|
stagger,
|
|
/**
|
|
* Loops a given animation continuously, so that each time it reaches the
|
|
* end, it resets and begins again from the start.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#loop
|
|
*/
|
|
loop,
|
|
/**
|
|
* Takes an array of mappings and extracts values from each arg accordingly,
|
|
* then calls `setValue` on the mapped outputs.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#event
|
|
*/
|
|
event,
|
|
/**
|
|
* Make any React component Animatable. Used to create `Animated.View`, etc.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#createanimatedcomponent
|
|
*/
|
|
createAnimatedComponent: _createAnimatedComponent.default,
|
|
/**
|
|
* Imperative API to attach an animated value to an event on a view. Prefer
|
|
* using `Animated.event` with `useNativeDrive: true` if possible.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#attachnativeevent
|
|
*/
|
|
attachNativeEvent: _AnimatedEvent.attachNativeEvent,
|
|
/**
|
|
* Advanced imperative API for snooping on animated events that are passed in
|
|
* through props. Use values directly where possible.
|
|
*
|
|
* See https://reactnative.dev/docs/animated#forkevent
|
|
*/
|
|
forkEvent,
|
|
unforkEvent,
|
|
/**
|
|
* Expose Event class, so it can be used as a type for type checkers.
|
|
*/
|
|
Event: _AnimatedEvent.AnimatedEvent
|
|
};
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedMock.js
|
|
var require_AnimatedMock = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/AnimatedMock.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AnimatedEvent = require_AnimatedEvent();
|
|
var _AnimatedImplementation = _interopRequireDefault(require_AnimatedImplementation());
|
|
var _AnimatedInterpolation = _interopRequireDefault(require_AnimatedInterpolation());
|
|
var _AnimatedNode = _interopRequireDefault(require_AnimatedNode());
|
|
var _AnimatedValue = _interopRequireDefault(require_AnimatedValue());
|
|
var _AnimatedValueXY = _interopRequireDefault(require_AnimatedValueXY());
|
|
var _createAnimatedComponent = _interopRequireDefault(require_createAnimatedComponent());
|
|
var _AnimatedColor = _interopRequireDefault(require_AnimatedColor());
|
|
var inAnimationCallback = false;
|
|
function mockAnimationStart(start) {
|
|
return (callback) => {
|
|
var guardedCallback = callback == null ? callback : function() {
|
|
if (inAnimationCallback) {
|
|
console.warn("Ignoring recursive animation callback when running mock animations");
|
|
return;
|
|
}
|
|
inAnimationCallback = true;
|
|
try {
|
|
callback(...arguments);
|
|
} finally {
|
|
inAnimationCallback = false;
|
|
}
|
|
};
|
|
start(guardedCallback);
|
|
};
|
|
}
|
|
__name(mockAnimationStart, "mockAnimationStart");
|
|
var emptyAnimation = {
|
|
start: () => {
|
|
},
|
|
stop: () => {
|
|
},
|
|
reset: () => {
|
|
},
|
|
_startNativeLoop: () => {
|
|
},
|
|
_isUsingNativeDriver: () => {
|
|
return false;
|
|
}
|
|
};
|
|
var mockCompositeAnimation = /* @__PURE__ */ __name((animations) => (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {
|
|
start: mockAnimationStart((callback) => {
|
|
animations.forEach((animation) => animation.start());
|
|
callback == null ? void 0 : callback({
|
|
finished: true
|
|
});
|
|
})
|
|
}), "mockCompositeAnimation");
|
|
var spring = /* @__PURE__ */ __name(function spring2(value, config2) {
|
|
var anyValue = value;
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {
|
|
start: mockAnimationStart((callback) => {
|
|
anyValue.setValue(config2.toValue);
|
|
callback == null ? void 0 : callback({
|
|
finished: true
|
|
});
|
|
})
|
|
});
|
|
}, "spring");
|
|
var timing = /* @__PURE__ */ __name(function timing2(value, config2) {
|
|
var anyValue = value;
|
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, emptyAnimation), {}, {
|
|
start: mockAnimationStart((callback) => {
|
|
anyValue.setValue(config2.toValue);
|
|
callback == null ? void 0 : callback({
|
|
finished: true
|
|
});
|
|
})
|
|
});
|
|
}, "timing");
|
|
var decay = /* @__PURE__ */ __name(function decay2(value, config2) {
|
|
return emptyAnimation;
|
|
}, "decay");
|
|
var sequence = /* @__PURE__ */ __name(function sequence2(animations) {
|
|
return mockCompositeAnimation(animations);
|
|
}, "sequence");
|
|
var parallel = /* @__PURE__ */ __name(function parallel2(animations, config2) {
|
|
return mockCompositeAnimation(animations);
|
|
}, "parallel");
|
|
var delay = /* @__PURE__ */ __name(function delay2(time) {
|
|
return emptyAnimation;
|
|
}, "delay");
|
|
var stagger = /* @__PURE__ */ __name(function stagger2(time, animations) {
|
|
return mockCompositeAnimation(animations);
|
|
}, "stagger");
|
|
var loop = /* @__PURE__ */ __name(function loop2(animation, _temp) {
|
|
var _ref = _temp === void 0 ? {} : _temp, _ref$iterations = _ref.iterations, iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;
|
|
return emptyAnimation;
|
|
}, "loop");
|
|
var _default = {
|
|
Value: _AnimatedValue.default,
|
|
ValueXY: _AnimatedValueXY.default,
|
|
Color: _AnimatedColor.default,
|
|
Interpolation: _AnimatedInterpolation.default,
|
|
Node: _AnimatedNode.default,
|
|
decay,
|
|
timing,
|
|
spring,
|
|
add: _AnimatedImplementation.default.add,
|
|
subtract: _AnimatedImplementation.default.subtract,
|
|
divide: _AnimatedImplementation.default.divide,
|
|
multiply: _AnimatedImplementation.default.multiply,
|
|
modulo: _AnimatedImplementation.default.modulo,
|
|
diffClamp: _AnimatedImplementation.default.diffClamp,
|
|
delay,
|
|
sequence,
|
|
parallel,
|
|
stagger,
|
|
loop,
|
|
event: _AnimatedImplementation.default.event,
|
|
createAnimatedComponent: _createAnimatedComponent.default,
|
|
attachNativeEvent: _AnimatedEvent.attachNativeEvent,
|
|
forkEvent: _AnimatedImplementation.default.forkEvent,
|
|
unforkEvent: _AnimatedImplementation.default.unforkEvent,
|
|
Event: _AnimatedEvent.AnimatedEvent
|
|
};
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Animated.js
|
|
var require_Animated = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/Animated/Animated.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _AnimatedFlatList = _interopRequireDefault(require_AnimatedFlatList());
|
|
var _AnimatedImage = _interopRequireDefault(require_AnimatedImage());
|
|
var _AnimatedScrollView = _interopRequireDefault(require_AnimatedScrollView());
|
|
var _AnimatedSectionList = _interopRequireDefault(require_AnimatedSectionList());
|
|
var _AnimatedText = _interopRequireDefault(require_AnimatedText());
|
|
var _AnimatedView = _interopRequireDefault(require_AnimatedView());
|
|
var _AnimatedMock = _interopRequireDefault(require_AnimatedMock());
|
|
var _AnimatedImplementation = _interopRequireDefault(require_AnimatedImplementation());
|
|
var Animated = _Platform.default.isTesting ? _AnimatedMock.default : _AnimatedImplementation.default;
|
|
var _default = (0, _objectSpread2.default)({
|
|
FlatList: _AnimatedFlatList.default,
|
|
Image: _AnimatedImage.default,
|
|
ScrollView: _AnimatedScrollView.default,
|
|
SectionList: _AnimatedSectionList.default,
|
|
Text: _AnimatedText.default,
|
|
View: _AnimatedView.default
|
|
}, Animated);
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Animated/index.js
|
|
var require_Animated2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Animated/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Animated = _interopRequireDefault(require_Animated());
|
|
var _default = _Animated.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Appearance/index.js
|
|
var require_Appearance = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Appearance/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
function getQuery() {
|
|
return _canUseDom.default && window.matchMedia != null ? window.matchMedia("(prefers-color-scheme: dark)") : null;
|
|
}
|
|
__name(getQuery, "getQuery");
|
|
var query = getQuery();
|
|
var listenerMapping = /* @__PURE__ */ new WeakMap();
|
|
var Appearance = {
|
|
getColorScheme() {
|
|
return query && query.matches ? "dark" : "light";
|
|
},
|
|
addChangeListener(listener) {
|
|
var mappedListener = listenerMapping.get(listener);
|
|
if (!mappedListener) {
|
|
mappedListener = /* @__PURE__ */ __name((_ref) => {
|
|
var matches = _ref.matches;
|
|
listener({
|
|
colorScheme: matches ? "dark" : "light"
|
|
});
|
|
}, "mappedListener");
|
|
listenerMapping.set(listener, mappedListener);
|
|
}
|
|
if (query) {
|
|
query.addListener(mappedListener);
|
|
}
|
|
function remove() {
|
|
var mappedListener2 = listenerMapping.get(listener);
|
|
if (query && mappedListener2) {
|
|
query.removeListener(mappedListener2);
|
|
}
|
|
listenerMapping.delete(listener);
|
|
}
|
|
__name(remove, "remove");
|
|
return {
|
|
remove
|
|
};
|
|
}
|
|
};
|
|
var _default = Appearance;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js
|
|
var require_AppContainer = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var RootTagContext = /* @__PURE__ */ React44.createContext(null);
|
|
var AppContainer = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var children = props.children, WrapperComponent = props.WrapperComponent;
|
|
var innerView = /* @__PURE__ */ React44.createElement(_View.default, {
|
|
children,
|
|
key: 1,
|
|
style: styles.appContainer
|
|
});
|
|
if (WrapperComponent) {
|
|
innerView = /* @__PURE__ */ React44.createElement(WrapperComponent, null, innerView);
|
|
}
|
|
return /* @__PURE__ */ React44.createElement(RootTagContext.Provider, {
|
|
value: props.rootTag
|
|
}, /* @__PURE__ */ React44.createElement(_View.default, {
|
|
ref: forwardedRef,
|
|
style: styles.appContainer
|
|
}, innerView));
|
|
});
|
|
AppContainer.displayName = "AppContainer";
|
|
var _default = AppContainer;
|
|
exports2.default = _default;
|
|
var styles = _StyleSheet.default.create({
|
|
appContainer: {
|
|
flex: 1,
|
|
pointerEvents: "box-none"
|
|
}
|
|
});
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/AppRegistry/renderApplication.js
|
|
var require_renderApplication = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/AppRegistry/renderApplication.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = renderApplication;
|
|
exports2.getApplication = getApplication;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _AppContainer = _interopRequireDefault(require_AppContainer());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _render = _interopRequireWildcard(require_render());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
function renderApplication(RootComponent, WrapperComponent, callback, options) {
|
|
var shouldHydrate = options.hydrate, initialProps = options.initialProps, mode = options.mode, rootTag = options.rootTag;
|
|
var renderFn = shouldHydrate ? mode === "concurrent" ? _render.hydrate : _render.hydrateLegacy : mode === "concurrent" ? _render.render : _render.default;
|
|
(0, _invariant.default)(rootTag, "Expect to have a valid rootTag, instead got ", rootTag);
|
|
return renderFn(/* @__PURE__ */ _react.default.createElement(_AppContainer.default, {
|
|
WrapperComponent,
|
|
ref: callback,
|
|
rootTag
|
|
}, /* @__PURE__ */ _react.default.createElement(RootComponent, initialProps)), rootTag);
|
|
}
|
|
__name(renderApplication, "renderApplication");
|
|
function getApplication(RootComponent, initialProps, WrapperComponent) {
|
|
var element = /* @__PURE__ */ _react.default.createElement(_AppContainer.default, {
|
|
WrapperComponent,
|
|
rootTag: {}
|
|
}, /* @__PURE__ */ _react.default.createElement(RootComponent, initialProps));
|
|
var getStyleElement = /* @__PURE__ */ __name((props) => {
|
|
var sheet = _StyleSheet.default.getSheet();
|
|
return /* @__PURE__ */ _react.default.createElement("style", (0, _extends2.default)({}, props, {
|
|
dangerouslySetInnerHTML: {
|
|
__html: sheet.textContent
|
|
},
|
|
id: sheet.id
|
|
}));
|
|
}, "getStyleElement");
|
|
return {
|
|
element,
|
|
getStyleElement
|
|
};
|
|
}
|
|
__name(getApplication, "getApplication");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/AppRegistry/index.js
|
|
var require_AppRegistry = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/AppRegistry/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());
|
|
var _renderApplication = _interopRequireWildcard(require_renderApplication());
|
|
var emptyObject = {};
|
|
var runnables = {};
|
|
var componentProviderInstrumentationHook = /* @__PURE__ */ __name((component) => component(), "componentProviderInstrumentationHook");
|
|
var wrapperComponentProvider;
|
|
var _AppRegistry = class _AppRegistry {
|
|
static getAppKeys() {
|
|
return Object.keys(runnables);
|
|
}
|
|
static getApplication(appKey, appParameters) {
|
|
(0, _invariant.default)(runnables[appKey] && runnables[appKey].getApplication, "Application " + appKey + " has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.");
|
|
return runnables[appKey].getApplication(appParameters);
|
|
}
|
|
static registerComponent(appKey, componentProvider) {
|
|
runnables[appKey] = {
|
|
getApplication: (appParameters) => (0, _renderApplication.getApplication)(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters)),
|
|
run: (appParameters) => (0, _renderApplication.default)(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {
|
|
hydrate: appParameters.hydrate || false,
|
|
initialProps: appParameters.initialProps || emptyObject,
|
|
mode: appParameters.mode || "concurrent",
|
|
rootTag: appParameters.rootTag
|
|
})
|
|
};
|
|
return appKey;
|
|
}
|
|
static registerConfig(config2) {
|
|
config2.forEach((_ref) => {
|
|
var appKey = _ref.appKey, component = _ref.component, run = _ref.run;
|
|
if (run) {
|
|
_AppRegistry.registerRunnable(appKey, run);
|
|
} else {
|
|
(0, _invariant.default)(component, "No component provider passed in");
|
|
_AppRegistry.registerComponent(appKey, component);
|
|
}
|
|
});
|
|
}
|
|
// TODO: fix style sheet creation when using this method
|
|
static registerRunnable(appKey, run) {
|
|
runnables[appKey] = {
|
|
run
|
|
};
|
|
return appKey;
|
|
}
|
|
static runApplication(appKey, appParameters) {
|
|
var isDevelopment = process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test";
|
|
if (isDevelopment) {
|
|
var params = (0, _objectSpread2.default)({}, appParameters);
|
|
params.rootTag = "#" + params.rootTag.id;
|
|
console.log('Running application "' + appKey + '" with appParams:\n', params, "\nDevelopment-level warnings: " + (isDevelopment ? "ON" : "OFF") + "." + ("\nPerformance optimizations: " + (isDevelopment ? "OFF" : "ON") + "."));
|
|
}
|
|
(0, _invariant.default)(runnables[appKey] && runnables[appKey].run, 'Application "' + appKey + '" has not been registered. This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');
|
|
return runnables[appKey].run(appParameters);
|
|
}
|
|
static setComponentProviderInstrumentationHook(hook) {
|
|
componentProviderInstrumentationHook = hook;
|
|
}
|
|
static setWrapperComponentProvider(provider) {
|
|
wrapperComponentProvider = provider;
|
|
}
|
|
static unmountApplicationComponentAtRootTag(rootTag) {
|
|
(0, _unmountComponentAtNode.default)(rootTag);
|
|
}
|
|
};
|
|
__name(_AppRegistry, "AppRegistry");
|
|
var AppRegistry = _AppRegistry;
|
|
exports2.default = AppRegistry;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/AppState/index.js
|
|
var require_AppState = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/AppState/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _EventEmitter = _interopRequireDefault(require_EventEmitter());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var isPrefixed = _canUseDom.default && !document.hasOwnProperty("hidden") && document.hasOwnProperty("webkitHidden");
|
|
var EVENT_TYPES = ["change", "memoryWarning"];
|
|
var VISIBILITY_CHANGE_EVENT = isPrefixed ? "webkitvisibilitychange" : "visibilitychange";
|
|
var VISIBILITY_STATE_PROPERTY = isPrefixed ? "webkitVisibilityState" : "visibilityState";
|
|
var AppStates = {
|
|
BACKGROUND: "background",
|
|
ACTIVE: "active"
|
|
};
|
|
var changeEmitter = null;
|
|
var _AppState = class _AppState {
|
|
static get currentState() {
|
|
if (!_AppState.isAvailable) {
|
|
return AppStates.ACTIVE;
|
|
}
|
|
switch (document[VISIBILITY_STATE_PROPERTY]) {
|
|
case "hidden":
|
|
case "prerender":
|
|
case "unloaded":
|
|
return AppStates.BACKGROUND;
|
|
default:
|
|
return AppStates.ACTIVE;
|
|
}
|
|
}
|
|
static addEventListener(type, handler) {
|
|
if (_AppState.isAvailable) {
|
|
(0, _invariant.default)(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: "%s"', type);
|
|
if (type === "change") {
|
|
if (!changeEmitter) {
|
|
changeEmitter = new _EventEmitter.default();
|
|
document.addEventListener(VISIBILITY_CHANGE_EVENT, () => {
|
|
if (changeEmitter) {
|
|
changeEmitter.emit("change", _AppState.currentState);
|
|
}
|
|
}, false);
|
|
}
|
|
return changeEmitter.addListener(type, handler);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
__name(_AppState, "AppState");
|
|
var AppState = _AppState;
|
|
exports2.default = AppState;
|
|
AppState.isAvailable = _canUseDom.default && document[VISIBILITY_STATE_PROPERTY];
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/BackHandler/index.js
|
|
var require_BackHandler = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/BackHandler/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
function emptyFunction() {
|
|
}
|
|
__name(emptyFunction, "emptyFunction");
|
|
var BackHandler = {
|
|
exitApp: emptyFunction,
|
|
addEventListener() {
|
|
console.error("BackHandler is not supported on web and should not be used.");
|
|
return {
|
|
remove: emptyFunction
|
|
};
|
|
},
|
|
removeEventListener: emptyFunction
|
|
};
|
|
var _default = BackHandler;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Clipboard/index.js
|
|
var require_Clipboard = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Clipboard/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var clipboardAvailable;
|
|
var _Clipboard = class _Clipboard {
|
|
static isAvailable() {
|
|
if (clipboardAvailable === void 0) {
|
|
clipboardAvailable = typeof document.queryCommandSupported === "function" && document.queryCommandSupported("copy");
|
|
}
|
|
return clipboardAvailable;
|
|
}
|
|
static getString() {
|
|
return Promise.resolve("");
|
|
}
|
|
static setString(text) {
|
|
var success = false;
|
|
var body = document.body;
|
|
if (body) {
|
|
var node = document.createElement("span");
|
|
node.textContent = text;
|
|
node.style.opacity = "0";
|
|
node.style.position = "absolute";
|
|
node.style.whiteSpace = "pre-wrap";
|
|
node.style.userSelect = "auto";
|
|
body.appendChild(node);
|
|
var selection = window.getSelection();
|
|
selection.removeAllRanges();
|
|
var range = document.createRange();
|
|
range.selectNodeContents(node);
|
|
selection.addRange(range);
|
|
try {
|
|
document.execCommand("copy");
|
|
success = true;
|
|
} catch (e) {
|
|
}
|
|
selection.removeAllRanges();
|
|
body.removeChild(node);
|
|
}
|
|
return success;
|
|
}
|
|
};
|
|
__name(_Clipboard, "Clipboard");
|
|
var Clipboard = _Clipboard;
|
|
exports2.default = Clipboard;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/I18nManager/index.js
|
|
var require_I18nManager = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/I18nManager/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var I18nManager = {
|
|
allowRTL() {
|
|
return;
|
|
},
|
|
forceRTL() {
|
|
return;
|
|
},
|
|
getConstants() {
|
|
return {
|
|
isRTL: false
|
|
};
|
|
}
|
|
};
|
|
var _default = I18nManager;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Keyboard/index.js
|
|
var require_Keyboard = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Keyboard/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _dismissKeyboard = _interopRequireDefault(require_dismissKeyboard());
|
|
var Keyboard4 = {
|
|
isVisible() {
|
|
return false;
|
|
},
|
|
addListener() {
|
|
return {
|
|
remove: () => {
|
|
}
|
|
};
|
|
},
|
|
dismiss() {
|
|
(0, _dismissKeyboard.default)();
|
|
},
|
|
removeAllListeners() {
|
|
},
|
|
removeListener() {
|
|
}
|
|
};
|
|
var _default = Keyboard4;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/LayoutAnimation/index.js
|
|
var require_LayoutAnimation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/LayoutAnimation/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var __DEV__ = process.env.NODE_ENV !== "production";
|
|
function configureNext(config2, onAnimationDidEnd) {
|
|
if (!_Platform.default.isTesting) {
|
|
_UIManager.default.configureNextLayoutAnimation(
|
|
config2,
|
|
onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function() {
|
|
},
|
|
function() {
|
|
}
|
|
/* unused onError */
|
|
);
|
|
}
|
|
}
|
|
__name(configureNext, "configureNext");
|
|
function create2(duration, type, property) {
|
|
return {
|
|
duration,
|
|
create: {
|
|
type,
|
|
property
|
|
},
|
|
update: {
|
|
type
|
|
},
|
|
delete: {
|
|
type,
|
|
property
|
|
}
|
|
};
|
|
}
|
|
__name(create2, "create");
|
|
var Presets = {
|
|
easeInEaseOut: create2(300, "easeInEaseOut", "opacity"),
|
|
linear: create2(500, "linear", "opacity"),
|
|
spring: {
|
|
duration: 700,
|
|
create: {
|
|
type: "linear",
|
|
property: "opacity"
|
|
},
|
|
update: {
|
|
type: "spring",
|
|
springDamping: 0.4
|
|
},
|
|
delete: {
|
|
type: "linear",
|
|
property: "opacity"
|
|
}
|
|
}
|
|
};
|
|
var LayoutAnimation = {
|
|
/**
|
|
* Schedules an animation to happen on the next layout.
|
|
*
|
|
* @param config Specifies animation properties:
|
|
*
|
|
* - `duration` in milliseconds
|
|
* - `create`, `AnimationConfig` for animating in new views
|
|
* - `update`, `AnimationConfig` for animating views that have been updated
|
|
*
|
|
* @param onAnimationDidEnd Called when the animation finished.
|
|
* Only supported on iOS.
|
|
* @param onError Called on error. Only supported on iOS.
|
|
*/
|
|
configureNext,
|
|
/**
|
|
* Helper for creating a config for `configureNext`.
|
|
*/
|
|
create: create2,
|
|
Types: Object.freeze({
|
|
spring: "spring",
|
|
linear: "linear",
|
|
easeInEaseOut: "easeInEaseOut",
|
|
easeIn: "easeIn",
|
|
easeOut: "easeOut",
|
|
keyboard: "keyboard"
|
|
}),
|
|
Properties: Object.freeze({
|
|
opacity: "opacity",
|
|
scaleX: "scaleX",
|
|
scaleY: "scaleY",
|
|
scaleXY: "scaleXY"
|
|
}),
|
|
checkConfig() {
|
|
console.error("LayoutAnimation.checkConfig(...) has been disabled.");
|
|
},
|
|
Presets,
|
|
easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),
|
|
linear: configureNext.bind(null, Presets.linear),
|
|
spring: configureNext.bind(null, Presets.spring)
|
|
};
|
|
var _default = LayoutAnimation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/LayoutAnimation/index.js
|
|
var require_LayoutAnimation2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/LayoutAnimation/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _LayoutAnimation = _interopRequireDefault(require_LayoutAnimation());
|
|
var _default = _LayoutAnimation.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Linking/index.js
|
|
var require_Linking = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Linking/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var initialURL = _canUseDom.default ? window.location.href : "";
|
|
var _Linking = class _Linking {
|
|
constructor() {
|
|
this._eventCallbacks = {};
|
|
}
|
|
_dispatchEvent(event) {
|
|
for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
data[_key - 1] = arguments[_key];
|
|
}
|
|
var listeners = this._eventCallbacks[event];
|
|
if (listeners != null && Array.isArray(listeners)) {
|
|
listeners.map((listener) => {
|
|
listener(...data);
|
|
});
|
|
}
|
|
}
|
|
/**
|
|
* Adds a event listener for the specified event. The callback will be called when the
|
|
* said event is dispatched.
|
|
*/
|
|
addEventListener(eventType, callback) {
|
|
var _this = this;
|
|
if (!_this._eventCallbacks[eventType]) {
|
|
_this._eventCallbacks[eventType] = [callback];
|
|
}
|
|
_this._eventCallbacks[eventType].push(callback);
|
|
return {
|
|
remove() {
|
|
var callbacks = _this._eventCallbacks[eventType];
|
|
var filteredCallbacks = callbacks.filter((c) => c.toString() !== callback.toString());
|
|
_this._eventCallbacks[eventType] = filteredCallbacks;
|
|
}
|
|
};
|
|
}
|
|
/**
|
|
* Removes a previously added event listener for the specified event. The callback must
|
|
* be the same object as the one passed to `addEventListener`.
|
|
*/
|
|
removeEventListener(eventType, callback) {
|
|
console.error("Linking.removeEventListener('" + eventType + "', ...): Method has been deprecated. Please instead use `remove()` on the subscription returned by `Linking.addEventListener`.");
|
|
var callbacks = this._eventCallbacks[eventType];
|
|
var filteredCallbacks = callbacks.filter((c) => c.toString() !== callback.toString());
|
|
this._eventCallbacks[eventType] = filteredCallbacks;
|
|
}
|
|
canOpenURL() {
|
|
return Promise.resolve(true);
|
|
}
|
|
getInitialURL() {
|
|
return Promise.resolve(initialURL);
|
|
}
|
|
/**
|
|
* Try to open the given url in a secure fashion. The method returns a Promise object.
|
|
* If a target is passed (including undefined) that target will be used, otherwise '_blank'.
|
|
* If the url opens, the promise is resolved. If not, the promise is rejected.
|
|
* Dispatches the `onOpen` event if `url` is opened successfully.
|
|
*/
|
|
openURL(url, target) {
|
|
if (arguments.length === 1) {
|
|
target = "_blank";
|
|
}
|
|
try {
|
|
open(url, target);
|
|
this._dispatchEvent("onOpen", url);
|
|
return Promise.resolve();
|
|
} catch (e) {
|
|
return Promise.reject(e);
|
|
}
|
|
}
|
|
_validateURL(url) {
|
|
(0, _invariant.default)(typeof url === "string", "Invalid URL: should be a string. Was: " + url);
|
|
(0, _invariant.default)(url, "Invalid URL: cannot be empty");
|
|
}
|
|
};
|
|
__name(_Linking, "Linking");
|
|
var Linking2 = _Linking;
|
|
var open = /* @__PURE__ */ __name((url, target) => {
|
|
if (_canUseDom.default) {
|
|
var urlToOpen = new URL(url, window.location).toString();
|
|
if (urlToOpen.indexOf("tel:") === 0) {
|
|
window.location = urlToOpen;
|
|
} else {
|
|
window.open(urlToOpen, target, "noopener");
|
|
}
|
|
}
|
|
}, "open");
|
|
var _default = new Linking2();
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/NativeEventEmitter/index.js
|
|
var require_NativeEventEmitter2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/NativeEventEmitter/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter());
|
|
var _default = _NativeEventEmitter.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/TouchHistoryMath/index.js
|
|
var require_TouchHistoryMath = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/TouchHistoryMath/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var TouchHistoryMath = {
|
|
/**
|
|
* This code is optimized and not intended to look beautiful. This allows
|
|
* computing of touch centroids that have moved after `touchesChangedAfter`
|
|
* timeStamp. You can compute the current centroid involving all touches
|
|
* moves after `touchesChangedAfter`, or you can compute the previous
|
|
* centroid of all touches that were moved after `touchesChangedAfter`.
|
|
*
|
|
* @param {TouchHistoryMath} touchHistory Standard Responder touch track
|
|
* data.
|
|
* @param {number} touchesChangedAfter timeStamp after which moved touches
|
|
* are considered "actively moving" - not just "active".
|
|
* @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.
|
|
* @param {boolean} ofCurrent Compute current centroid for actively moving
|
|
* touches vs. previous centroid of now actively moving touches.
|
|
* @return {number} value of centroid in specified dimension.
|
|
*/
|
|
centroidDimension: /* @__PURE__ */ __name(function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {
|
|
var touchBank = touchHistory.touchBank;
|
|
var total = 0;
|
|
var count2 = 0;
|
|
var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;
|
|
if (oneTouchData !== null) {
|
|
if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {
|
|
total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;
|
|
count2 = 1;
|
|
}
|
|
} else {
|
|
for (var i = 0; i < touchBank.length; i++) {
|
|
var touchTrack = touchBank[i];
|
|
if (touchTrack !== null && touchTrack !== void 0 && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {
|
|
var toAdd = void 0;
|
|
if (ofCurrent && isXAxis) {
|
|
toAdd = touchTrack.currentPageX;
|
|
} else if (ofCurrent && !isXAxis) {
|
|
toAdd = touchTrack.currentPageY;
|
|
} else if (!ofCurrent && isXAxis) {
|
|
toAdd = touchTrack.previousPageX;
|
|
} else {
|
|
toAdd = touchTrack.previousPageY;
|
|
}
|
|
total += toAdd;
|
|
count2++;
|
|
}
|
|
}
|
|
}
|
|
return count2 > 0 ? total / count2 : TouchHistoryMath.noCentroid;
|
|
}, "centroidDimension"),
|
|
currentCentroidXOfTouchesChangedAfter: /* @__PURE__ */ __name(function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
touchesChangedAfter,
|
|
true,
|
|
// isXAxis
|
|
true
|
|
// ofCurrent
|
|
);
|
|
}, "currentCentroidXOfTouchesChangedAfter"),
|
|
currentCentroidYOfTouchesChangedAfter: /* @__PURE__ */ __name(function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
touchesChangedAfter,
|
|
false,
|
|
// isXAxis
|
|
true
|
|
// ofCurrent
|
|
);
|
|
}, "currentCentroidYOfTouchesChangedAfter"),
|
|
previousCentroidXOfTouchesChangedAfter: /* @__PURE__ */ __name(function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
touchesChangedAfter,
|
|
true,
|
|
// isXAxis
|
|
false
|
|
// ofCurrent
|
|
);
|
|
}, "previousCentroidXOfTouchesChangedAfter"),
|
|
previousCentroidYOfTouchesChangedAfter: /* @__PURE__ */ __name(function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
touchesChangedAfter,
|
|
false,
|
|
// isXAxis
|
|
false
|
|
// ofCurrent
|
|
);
|
|
}, "previousCentroidYOfTouchesChangedAfter"),
|
|
currentCentroidX: /* @__PURE__ */ __name(function currentCentroidX(touchHistory) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
0,
|
|
// touchesChangedAfter
|
|
true,
|
|
// isXAxis
|
|
true
|
|
// ofCurrent
|
|
);
|
|
}, "currentCentroidX"),
|
|
currentCentroidY: /* @__PURE__ */ __name(function currentCentroidY(touchHistory) {
|
|
return TouchHistoryMath.centroidDimension(
|
|
touchHistory,
|
|
0,
|
|
// touchesChangedAfter
|
|
false,
|
|
// isXAxis
|
|
true
|
|
// ofCurrent
|
|
);
|
|
}, "currentCentroidY"),
|
|
noCentroid: -1
|
|
};
|
|
var _default = TouchHistoryMath;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/PanResponder/index.js
|
|
var require_PanResponder = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/PanResponder/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _InteractionManager = _interopRequireDefault(require_InteractionManager());
|
|
var _TouchHistoryMath = _interopRequireDefault(require_TouchHistoryMath());
|
|
var currentCentroidXOfTouchesChangedAfter = _TouchHistoryMath.default.currentCentroidXOfTouchesChangedAfter;
|
|
var currentCentroidYOfTouchesChangedAfter = _TouchHistoryMath.default.currentCentroidYOfTouchesChangedAfter;
|
|
var previousCentroidXOfTouchesChangedAfter = _TouchHistoryMath.default.previousCentroidXOfTouchesChangedAfter;
|
|
var previousCentroidYOfTouchesChangedAfter = _TouchHistoryMath.default.previousCentroidYOfTouchesChangedAfter;
|
|
var currentCentroidX = _TouchHistoryMath.default.currentCentroidX;
|
|
var currentCentroidY = _TouchHistoryMath.default.currentCentroidY;
|
|
var PanResponder2 = {
|
|
/**
|
|
*
|
|
* A graphical explanation of the touch data flow:
|
|
*
|
|
* +----------------------------+ +--------------------------------+
|
|
* | ResponderTouchHistoryStore | |TouchHistoryMath |
|
|
* +----------------------------+ +----------+---------------------+
|
|
* |Global store of touchHistory| |Allocation-less math util |
|
|
* |including activeness, start | |on touch history (centroids |
|
|
* |position, prev/cur position.| |and multitouch movement etc) |
|
|
* | | | |
|
|
* +----^-----------------------+ +----^---------------------------+
|
|
* | |
|
|
* | (records relevant history |
|
|
* | of touches relevant for |
|
|
* | implementing higher level |
|
|
* | gestures) |
|
|
* | |
|
|
* +----+-----------------------+ +----|---------------------------+
|
|
* | ResponderEventPlugin | | | Your App/Component |
|
|
* +----------------------------+ +----|---------------------------+
|
|
* |Negotiates which view gets | Low level | | High level |
|
|
* |onResponderMove events. | events w/ | +-+-------+ events w/ |
|
|
* |Also records history into | touchHistory| | Pan | multitouch + |
|
|
* |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|
|
|
* +----------------------------+ attached to | | | distance and |
|
|
* each event | +---------+ velocity. |
|
|
* | |
|
|
* | |
|
|
* +--------------------------------+
|
|
*
|
|
*
|
|
*
|
|
* Gesture that calculates cumulative movement over time in a way that just
|
|
* "does the right thing" for multiple touches. The "right thing" is very
|
|
* nuanced. When moving two touches in opposite directions, the cumulative
|
|
* distance is zero in each dimension. When two touches move in parallel five
|
|
* pixels in the same direction, the cumulative distance is five, not ten. If
|
|
* two touches start, one moves five in a direction, then stops and the other
|
|
* touch moves fives in the same direction, the cumulative distance is ten.
|
|
*
|
|
* This logic requires a kind of processing of time "clusters" of touch events
|
|
* so that two touch moves that essentially occur in parallel but move every
|
|
* other frame respectively, are considered part of the same movement.
|
|
*
|
|
* Explanation of some of the non-obvious fields:
|
|
*
|
|
* - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is
|
|
* invalid. If a move event has been observed, `(moveX, moveY)` is the
|
|
* centroid of the most recently moved "cluster" of active touches.
|
|
* (Currently all move have the same timeStamp, but later we should add some
|
|
* threshold for what is considered to be "moving"). If a palm is
|
|
* accidentally counted as a touch, but a finger is moving greatly, the palm
|
|
* will move slightly, but we only want to count the single moving touch.
|
|
* - x0/y0: Centroid location (non-cumulative) at the time of becoming
|
|
* responder.
|
|
* - dx/dy: Cumulative touch distance - not the same thing as sum of each touch
|
|
* distance. Accounts for touch moves that are clustered together in time,
|
|
* moving the same direction. Only valid when currently responder (otherwise,
|
|
* it only represents the drag distance below the threshold).
|
|
* - vx/vy: Velocity.
|
|
*/
|
|
_initializeGestureState(gestureState) {
|
|
gestureState.moveX = 0;
|
|
gestureState.moveY = 0;
|
|
gestureState.x0 = 0;
|
|
gestureState.y0 = 0;
|
|
gestureState.dx = 0;
|
|
gestureState.dy = 0;
|
|
gestureState.vx = 0;
|
|
gestureState.vy = 0;
|
|
gestureState.numberActiveTouches = 0;
|
|
gestureState._accountsForMovesUpTo = 0;
|
|
},
|
|
/**
|
|
* This is nuanced and is necessary. It is incorrect to continuously take all
|
|
* active *and* recently moved touches, find the centroid, and track how that
|
|
* result changes over time. Instead, we must take all recently moved
|
|
* touches, and calculate how the centroid has changed just for those
|
|
* recently moved touches, and append that change to an accumulator. This is
|
|
* to (at least) handle the case where the user is moving three fingers, and
|
|
* then one of the fingers stops but the other two continue.
|
|
*
|
|
* This is very different than taking all of the recently moved touches and
|
|
* storing their centroid as `dx/dy`. For correctness, we must *accumulate
|
|
* changes* in the centroid of recently moved touches.
|
|
*
|
|
* There is also some nuance with how we handle multiple moved touches in a
|
|
* single event. With the way `ReactNativeEventEmitter` dispatches touches as
|
|
* individual events, multiple touches generate two 'move' events, each of
|
|
* them triggering `onResponderMove`. But with the way `PanResponder` works,
|
|
* all of the gesture inference is performed on the first dispatch, since it
|
|
* looks at all of the touches (even the ones for which there hasn't been a
|
|
* native dispatch yet). Therefore, `PanResponder` does not call
|
|
* `onResponderMove` passed the first dispatch. This diverges from the
|
|
* typical responder callback pattern (without using `PanResponder`), but
|
|
* avoids more dispatches than necessary.
|
|
*/
|
|
_updateGestureStateOnMove(gestureState, touchHistory) {
|
|
gestureState.numberActiveTouches = touchHistory.numberActiveTouches;
|
|
gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);
|
|
gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);
|
|
var movedAfter = gestureState._accountsForMovesUpTo;
|
|
var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);
|
|
var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);
|
|
var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);
|
|
var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);
|
|
var nextDX = gestureState.dx + (x - prevX);
|
|
var nextDY = gestureState.dy + (y - prevY);
|
|
var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;
|
|
gestureState.vx = (nextDX - gestureState.dx) / dt;
|
|
gestureState.vy = (nextDY - gestureState.dy) / dt;
|
|
gestureState.dx = nextDX;
|
|
gestureState.dy = nextDY;
|
|
gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;
|
|
},
|
|
/**
|
|
* @param {object} config Enhanced versions of all of the responder callbacks
|
|
* that provide not only the typical `ResponderSyntheticEvent`, but also the
|
|
* `PanResponder` gesture state. Simply replace the word `Responder` with
|
|
* `PanResponder` in each of the typical `onResponder*` callbacks. For
|
|
* example, the `config` object would look like:
|
|
*
|
|
* - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`
|
|
* - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`
|
|
* - `onStartShouldSetPanResponder: (e, gestureState) => {...}`
|
|
* - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`
|
|
* - `onPanResponderReject: (e, gestureState) => {...}`
|
|
* - `onPanResponderGrant: (e, gestureState) => {...}`
|
|
* - `onPanResponderStart: (e, gestureState) => {...}`
|
|
* - `onPanResponderEnd: (e, gestureState) => {...}`
|
|
* - `onPanResponderRelease: (e, gestureState) => {...}`
|
|
* - `onPanResponderMove: (e, gestureState) => {...}`
|
|
* - `onPanResponderTerminate: (e, gestureState) => {...}`
|
|
* - `onPanResponderTerminationRequest: (e, gestureState) => {...}`
|
|
* - `onShouldBlockNativeResponder: (e, gestureState) => {...}`
|
|
*
|
|
* In general, for events that have capture equivalents, we update the
|
|
* gestureState once in the capture phase and can use it in the bubble phase
|
|
* as well.
|
|
*
|
|
* Be careful with onStartShould* callbacks. They only reflect updated
|
|
* `gestureState` for start/end events that bubble/capture to the Node.
|
|
* Once the node is the responder, you can rely on every start/end event
|
|
* being processed by the gesture and `gestureState` being updated
|
|
* accordingly. (numberActiveTouches) may not be totally accurate unless you
|
|
* are the responder.
|
|
*/
|
|
create(config2) {
|
|
var interactionState = {
|
|
handle: null,
|
|
shouldCancelClick: false,
|
|
timeout: null
|
|
};
|
|
var gestureState = {
|
|
// Useful for debugging
|
|
stateID: Math.random(),
|
|
moveX: 0,
|
|
moveY: 0,
|
|
x0: 0,
|
|
y0: 0,
|
|
dx: 0,
|
|
dy: 0,
|
|
vx: 0,
|
|
vy: 0,
|
|
numberActiveTouches: 0,
|
|
_accountsForMovesUpTo: 0
|
|
};
|
|
var panHandlers = {
|
|
onStartShouldSetResponder(event) {
|
|
return config2.onStartShouldSetPanResponder == null ? false : config2.onStartShouldSetPanResponder(event, gestureState);
|
|
},
|
|
onMoveShouldSetResponder(event) {
|
|
return config2.onMoveShouldSetPanResponder == null ? false : config2.onMoveShouldSetPanResponder(event, gestureState);
|
|
},
|
|
onStartShouldSetResponderCapture(event) {
|
|
if (event.nativeEvent.touches.length === 1) {
|
|
PanResponder2._initializeGestureState(gestureState);
|
|
}
|
|
gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;
|
|
return config2.onStartShouldSetPanResponderCapture != null ? config2.onStartShouldSetPanResponderCapture(event, gestureState) : false;
|
|
},
|
|
onMoveShouldSetResponderCapture(event) {
|
|
var touchHistory = event.touchHistory;
|
|
if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {
|
|
return false;
|
|
}
|
|
PanResponder2._updateGestureStateOnMove(gestureState, touchHistory);
|
|
return config2.onMoveShouldSetPanResponderCapture ? config2.onMoveShouldSetPanResponderCapture(event, gestureState) : false;
|
|
},
|
|
onResponderGrant(event) {
|
|
if (!interactionState.handle) {
|
|
interactionState.handle = _InteractionManager.default.createInteractionHandle();
|
|
}
|
|
if (interactionState.timeout) {
|
|
clearInteractionTimeout(interactionState);
|
|
}
|
|
interactionState.shouldCancelClick = true;
|
|
gestureState.x0 = currentCentroidX(event.touchHistory);
|
|
gestureState.y0 = currentCentroidY(event.touchHistory);
|
|
gestureState.dx = 0;
|
|
gestureState.dy = 0;
|
|
if (config2.onPanResponderGrant) {
|
|
config2.onPanResponderGrant(event, gestureState);
|
|
}
|
|
return config2.onShouldBlockNativeResponder == null ? true : config2.onShouldBlockNativeResponder(event, gestureState);
|
|
},
|
|
onResponderReject(event) {
|
|
clearInteractionHandle(interactionState, config2.onPanResponderReject, event, gestureState);
|
|
},
|
|
onResponderRelease(event) {
|
|
clearInteractionHandle(interactionState, config2.onPanResponderRelease, event, gestureState);
|
|
setInteractionTimeout(interactionState);
|
|
PanResponder2._initializeGestureState(gestureState);
|
|
},
|
|
onResponderStart(event) {
|
|
var touchHistory = event.touchHistory;
|
|
gestureState.numberActiveTouches = touchHistory.numberActiveTouches;
|
|
if (config2.onPanResponderStart) {
|
|
config2.onPanResponderStart(event, gestureState);
|
|
}
|
|
},
|
|
onResponderMove(event) {
|
|
var touchHistory = event.touchHistory;
|
|
if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {
|
|
return;
|
|
}
|
|
PanResponder2._updateGestureStateOnMove(gestureState, touchHistory);
|
|
if (config2.onPanResponderMove) {
|
|
config2.onPanResponderMove(event, gestureState);
|
|
}
|
|
},
|
|
onResponderEnd(event) {
|
|
var touchHistory = event.touchHistory;
|
|
gestureState.numberActiveTouches = touchHistory.numberActiveTouches;
|
|
clearInteractionHandle(interactionState, config2.onPanResponderEnd, event, gestureState);
|
|
},
|
|
onResponderTerminate(event) {
|
|
clearInteractionHandle(interactionState, config2.onPanResponderTerminate, event, gestureState);
|
|
setInteractionTimeout(interactionState);
|
|
PanResponder2._initializeGestureState(gestureState);
|
|
},
|
|
onResponderTerminationRequest(event) {
|
|
return config2.onPanResponderTerminationRequest == null ? true : config2.onPanResponderTerminationRequest(event, gestureState);
|
|
},
|
|
// We do not want to trigger 'click' activated gestures or native behaviors
|
|
// on any pan target that is under a mouse cursor when it is released.
|
|
// Browsers will natively cancel 'click' events on a target if a non-mouse
|
|
// active pointer moves.
|
|
onClickCapture: (event) => {
|
|
if (interactionState.shouldCancelClick === true) {
|
|
event.stopPropagation();
|
|
event.preventDefault();
|
|
}
|
|
}
|
|
};
|
|
return {
|
|
panHandlers,
|
|
getInteractionHandle() {
|
|
return interactionState.handle;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
function clearInteractionHandle(interactionState, callback, event, gestureState) {
|
|
if (interactionState.handle) {
|
|
_InteractionManager.default.clearInteractionHandle(interactionState.handle);
|
|
interactionState.handle = null;
|
|
}
|
|
if (callback) {
|
|
callback(event, gestureState);
|
|
}
|
|
}
|
|
__name(clearInteractionHandle, "clearInteractionHandle");
|
|
function clearInteractionTimeout(interactionState) {
|
|
clearTimeout(interactionState.timeout);
|
|
}
|
|
__name(clearInteractionTimeout, "clearInteractionTimeout");
|
|
function setInteractionTimeout(interactionState) {
|
|
interactionState.timeout = setTimeout(() => {
|
|
interactionState.shouldCancelClick = false;
|
|
}, 250);
|
|
}
|
|
__name(setInteractionTimeout, "setInteractionTimeout");
|
|
var _default = PanResponder2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/PanResponder/index.js
|
|
var require_PanResponder2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/PanResponder/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _PanResponder = _interopRequireDefault(require_PanResponder());
|
|
var _default = _PanResponder.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Share/index.js
|
|
var require_Share = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Share/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var _Share = class _Share {
|
|
static share(content, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
(0, _invariant.default)(typeof content === "object" && content !== null, "Content to share must be a valid object");
|
|
(0, _invariant.default)(typeof content.url === "string" || typeof content.message === "string", "At least one of URL and message is required");
|
|
(0, _invariant.default)(typeof options === "object" && options !== null, "Options must be a valid object");
|
|
(0, _invariant.default)(!content.title || typeof content.title === "string", "Invalid title: title should be a string.");
|
|
if (window.navigator.share !== void 0) {
|
|
return window.navigator.share({
|
|
title: content.title,
|
|
text: content.message,
|
|
url: content.url
|
|
});
|
|
} else {
|
|
return Promise.reject(new Error("Share is not supported in this browser"));
|
|
}
|
|
}
|
|
/**
|
|
* The content was successfully shared.
|
|
*/
|
|
static get sharedAction() {
|
|
return "sharedAction";
|
|
}
|
|
/**
|
|
* The dialog has been dismissed.
|
|
* @platform ios
|
|
*/
|
|
static get dismissedAction() {
|
|
return "dismissedAction";
|
|
}
|
|
};
|
|
__name(_Share, "Share");
|
|
var Share = _Share;
|
|
var _default = Share;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Vibration/index.js
|
|
var require_Vibration = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Vibration/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var vibrate = /* @__PURE__ */ __name((pattern) => {
|
|
if ("vibrate" in window.navigator) {
|
|
window.navigator.vibrate(pattern);
|
|
}
|
|
}, "vibrate");
|
|
var Vibration = {
|
|
cancel() {
|
|
vibrate(0);
|
|
},
|
|
vibrate(pattern) {
|
|
if (pattern === void 0) {
|
|
pattern = 400;
|
|
}
|
|
vibrate(pattern);
|
|
}
|
|
};
|
|
var _default = Vibration;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/ActivityIndicator/index.js
|
|
var require_ActivityIndicator = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/ActivityIndicator/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["animating", "color", "hidesWhenStopped", "size", "style"];
|
|
var createSvgCircle = /* @__PURE__ */ __name((style) => /* @__PURE__ */ React44.createElement("circle", {
|
|
cx: "16",
|
|
cy: "16",
|
|
fill: "none",
|
|
r: "14",
|
|
strokeWidth: "4",
|
|
style
|
|
}), "createSvgCircle");
|
|
var ActivityIndicator2 = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var _props$animating = props.animating, animating = _props$animating === void 0 ? true : _props$animating, _props$color = props.color, color2 = _props$color === void 0 ? "#1976D2" : _props$color, _props$hidesWhenStopp = props.hidesWhenStopped, hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp, _props$size = props.size, size6 = _props$size === void 0 ? "small" : _props$size, style = props.style, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var svg = /* @__PURE__ */ React44.createElement("svg", {
|
|
height: "100%",
|
|
viewBox: "0 0 32 32",
|
|
width: "100%"
|
|
}, createSvgCircle({
|
|
stroke: color2,
|
|
opacity: 0.2
|
|
}), createSvgCircle({
|
|
stroke: color2,
|
|
strokeDasharray: 80,
|
|
strokeDashoffset: 60
|
|
}));
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, other, {
|
|
"aria-valuemax": 1,
|
|
"aria-valuemin": 0,
|
|
ref: forwardedRef,
|
|
role: "progressbar",
|
|
style: [styles.container, style]
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
children: svg,
|
|
style: [typeof size6 === "number" ? {
|
|
height: size6,
|
|
width: size6
|
|
} : indicatorSizes[size6], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]
|
|
}));
|
|
});
|
|
ActivityIndicator2.displayName = "ActivityIndicator";
|
|
var styles = _StyleSheet.default.create({
|
|
container: {
|
|
alignItems: "center",
|
|
justifyContent: "center"
|
|
},
|
|
hidesWhenStopped: {
|
|
visibility: "hidden"
|
|
},
|
|
animation: {
|
|
animationDuration: "0.75s",
|
|
animationKeyframes: [{
|
|
"0%": {
|
|
transform: "rotate(0deg)"
|
|
},
|
|
"100%": {
|
|
transform: "rotate(360deg)"
|
|
}
|
|
}],
|
|
animationTimingFunction: "linear",
|
|
animationIterationCount: "infinite"
|
|
},
|
|
animationPause: {
|
|
animationPlayState: "paused"
|
|
}
|
|
});
|
|
var indicatorSizes = _StyleSheet.default.create({
|
|
small: {
|
|
width: 20,
|
|
height: 20
|
|
},
|
|
large: {
|
|
width: 36,
|
|
height: 36
|
|
}
|
|
});
|
|
var _default = ActivityIndicator2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/usePressEvents/PressResponder.js
|
|
var require_PressResponder = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/usePressEvents/PressResponder.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var DELAY = "DELAY";
|
|
var ERROR = "ERROR";
|
|
var LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED";
|
|
var NOT_RESPONDER = "NOT_RESPONDER";
|
|
var RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START";
|
|
var RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START";
|
|
var RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START";
|
|
var RESPONDER_GRANT = "RESPONDER_GRANT";
|
|
var RESPONDER_RELEASE = "RESPONDER_RELEASE";
|
|
var RESPONDER_TERMINATED = "RESPONDER_TERMINATED";
|
|
var Transitions = Object.freeze({
|
|
NOT_RESPONDER: {
|
|
DELAY: ERROR,
|
|
RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
|
|
RESPONDER_RELEASE: ERROR,
|
|
RESPONDER_TERMINATED: ERROR,
|
|
LONG_PRESS_DETECTED: ERROR
|
|
},
|
|
RESPONDER_INACTIVE_PRESS_START: {
|
|
DELAY: RESPONDER_ACTIVE_PRESS_START,
|
|
RESPONDER_GRANT: ERROR,
|
|
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
LONG_PRESS_DETECTED: ERROR
|
|
},
|
|
RESPONDER_ACTIVE_PRESS_START: {
|
|
DELAY: ERROR,
|
|
RESPONDER_GRANT: ERROR,
|
|
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
|
|
},
|
|
RESPONDER_ACTIVE_LONG_PRESS_START: {
|
|
DELAY: ERROR,
|
|
RESPONDER_GRANT: ERROR,
|
|
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
|
|
},
|
|
ERROR: {
|
|
DELAY: NOT_RESPONDER,
|
|
RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
|
|
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
LONG_PRESS_DETECTED: NOT_RESPONDER
|
|
}
|
|
});
|
|
var getElementRole = /* @__PURE__ */ __name((element) => element.getAttribute("role"), "getElementRole");
|
|
var getElementType = /* @__PURE__ */ __name((element) => element.tagName.toLowerCase(), "getElementType");
|
|
var isActiveSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, "isActiveSignal");
|
|
var isButtonRole = /* @__PURE__ */ __name((element) => getElementRole(element) === "button", "isButtonRole");
|
|
var isPressStartSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START, "isPressStartSignal");
|
|
var isTerminalSignal = /* @__PURE__ */ __name((signal) => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE, "isTerminalSignal");
|
|
var isValidKeyPress = /* @__PURE__ */ __name((event) => {
|
|
var key = event.key, target = event.target;
|
|
var isSpacebar = key === " " || key === "Spacebar";
|
|
var isButtonish = getElementType(target) === "button" || isButtonRole(target);
|
|
return key === "Enter" || isSpacebar && isButtonish;
|
|
}, "isValidKeyPress");
|
|
var DEFAULT_LONG_PRESS_DELAY_MS = 450;
|
|
var DEFAULT_PRESS_DELAY_MS = 50;
|
|
var _PressResponder = class _PressResponder {
|
|
constructor(config2) {
|
|
this._eventHandlers = null;
|
|
this._isPointerTouch = false;
|
|
this._longPressDelayTimeout = null;
|
|
this._longPressDispatched = false;
|
|
this._pressDelayTimeout = null;
|
|
this._pressOutDelayTimeout = null;
|
|
this._touchState = NOT_RESPONDER;
|
|
this._responderElement = null;
|
|
this.configure(config2);
|
|
}
|
|
configure(config2) {
|
|
this._config = config2;
|
|
}
|
|
/**
|
|
* Resets any pending timers. This should be called on unmount.
|
|
*/
|
|
reset() {
|
|
this._cancelLongPressDelayTimeout();
|
|
this._cancelPressDelayTimeout();
|
|
this._cancelPressOutDelayTimeout();
|
|
}
|
|
/**
|
|
* Returns a set of props to spread into the interactive element.
|
|
*/
|
|
getEventHandlers() {
|
|
if (this._eventHandlers == null) {
|
|
this._eventHandlers = this._createEventHandlers();
|
|
}
|
|
return this._eventHandlers;
|
|
}
|
|
_createEventHandlers() {
|
|
var start = /* @__PURE__ */ __name((event, shouldDelay) => {
|
|
event.persist();
|
|
this._cancelPressOutDelayTimeout();
|
|
this._longPressDispatched = false;
|
|
this._selectionTerminated = false;
|
|
this._touchState = NOT_RESPONDER;
|
|
this._isPointerTouch = event.nativeEvent.type === "touchstart";
|
|
this._receiveSignal(RESPONDER_GRANT, event);
|
|
var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);
|
|
if (shouldDelay !== false && delayPressStart > 0) {
|
|
this._pressDelayTimeout = setTimeout(() => {
|
|
this._receiveSignal(DELAY, event);
|
|
}, delayPressStart);
|
|
} else {
|
|
this._receiveSignal(DELAY, event);
|
|
}
|
|
var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);
|
|
this._longPressDelayTimeout = setTimeout(() => {
|
|
this._handleLongPress(event);
|
|
}, delayLongPress + delayPressStart);
|
|
}, "start");
|
|
var end = /* @__PURE__ */ __name((event) => {
|
|
this._receiveSignal(RESPONDER_RELEASE, event);
|
|
}, "end");
|
|
var keyupHandler = /* @__PURE__ */ __name((event) => {
|
|
var onPress = this._config.onPress;
|
|
var target = event.target;
|
|
if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
|
|
end(event);
|
|
document.removeEventListener("keyup", keyupHandler);
|
|
var role = target.getAttribute("role");
|
|
var elementType = getElementType(target);
|
|
var isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
|
|
var isActiveElement = this._responderElement === target;
|
|
if (onPress != null && !isNativeInteractiveElement && isActiveElement) {
|
|
onPress(event);
|
|
}
|
|
this._responderElement = null;
|
|
}
|
|
}, "keyupHandler");
|
|
return {
|
|
onStartShouldSetResponder: (event) => {
|
|
var disabled = this._config.disabled;
|
|
if (disabled && isButtonRole(event.currentTarget)) {
|
|
event.stopPropagation();
|
|
}
|
|
if (disabled == null) {
|
|
return true;
|
|
}
|
|
return !disabled;
|
|
},
|
|
onKeyDown: (event) => {
|
|
var disabled = this._config.disabled;
|
|
var key = event.key, target = event.target;
|
|
if (!disabled && isValidKeyPress(event)) {
|
|
if (this._touchState === NOT_RESPONDER) {
|
|
start(event, false);
|
|
this._responderElement = target;
|
|
document.addEventListener("keyup", keyupHandler);
|
|
}
|
|
var isSpacebarKey = key === " " || key === "Spacebar";
|
|
var role = getElementRole(target);
|
|
var isButtonLikeRole = role === "button" || role === "menuitem";
|
|
if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== "button") {
|
|
event.preventDefault();
|
|
}
|
|
event.stopPropagation();
|
|
}
|
|
},
|
|
onResponderGrant: (event) => start(event),
|
|
onResponderMove: (event) => {
|
|
if (this._config.onPressMove != null) {
|
|
this._config.onPressMove(event);
|
|
}
|
|
var touch = getTouchFromResponderEvent(event);
|
|
if (this._touchActivatePosition != null) {
|
|
var deltaX = this._touchActivatePosition.pageX - touch.pageX;
|
|
var deltaY = this._touchActivatePosition.pageY - touch.pageY;
|
|
if (Math.hypot(deltaX, deltaY) > 10) {
|
|
this._cancelLongPressDelayTimeout();
|
|
}
|
|
}
|
|
},
|
|
onResponderRelease: (event) => end(event),
|
|
onResponderTerminate: (event) => {
|
|
if (event.nativeEvent.type === "selectionchange") {
|
|
this._selectionTerminated = true;
|
|
}
|
|
this._receiveSignal(RESPONDER_TERMINATED, event);
|
|
},
|
|
onResponderTerminationRequest: (event) => {
|
|
var _this$_config = this._config, cancelable = _this$_config.cancelable, disabled = _this$_config.disabled, onLongPress = _this$_config.onLongPress;
|
|
if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === "contextmenu") {
|
|
return false;
|
|
}
|
|
if (cancelable == null) {
|
|
return true;
|
|
}
|
|
return cancelable;
|
|
},
|
|
// NOTE: this diverges from react-native in 3 significant ways:
|
|
// * The `onPress` callback is not connected to the responder system (the native
|
|
// `click` event must be used but is dispatched in many scenarios where no pointers
|
|
// are on the screen.) Therefore, it's possible for `onPress` to be called without
|
|
// `onPress{Start,End}` being called first.
|
|
// * The `onPress` callback is only be called on the first ancestor of the native
|
|
// `click` target that is using the PressResponder.
|
|
// * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.
|
|
onClick: (event) => {
|
|
var _this$_config2 = this._config, disabled = _this$_config2.disabled, onPress = _this$_config2.onPress;
|
|
if (!disabled) {
|
|
event.stopPropagation();
|
|
if (this._longPressDispatched || this._selectionTerminated) {
|
|
event.preventDefault();
|
|
} else if (onPress != null && event.altKey === false) {
|
|
onPress(event);
|
|
}
|
|
} else {
|
|
if (isButtonRole(event.currentTarget)) {
|
|
event.stopPropagation();
|
|
}
|
|
}
|
|
},
|
|
// If `onLongPress` is provided and a touch pointer is being used, prevent the
|
|
// default context menu from opening.
|
|
onContextMenu: (event) => {
|
|
var _this$_config3 = this._config, disabled = _this$_config3.disabled, onLongPress = _this$_config3.onLongPress;
|
|
if (!disabled) {
|
|
if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
}
|
|
} else {
|
|
if (isButtonRole(event.currentTarget)) {
|
|
event.stopPropagation();
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
/**
|
|
* Receives a state machine signal, performs side effects of the transition
|
|
* and stores the new state. Validates the transition as well.
|
|
*/
|
|
_receiveSignal(signal, event) {
|
|
var prevState = this._touchState;
|
|
var nextState = null;
|
|
if (Transitions[prevState] != null) {
|
|
nextState = Transitions[prevState][signal];
|
|
}
|
|
if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {
|
|
return;
|
|
}
|
|
if (nextState == null || nextState === ERROR) {
|
|
console.error("PressResponder: Invalid signal " + signal + " for state " + prevState + " on responder");
|
|
} else if (prevState !== nextState) {
|
|
this._performTransitionSideEffects(prevState, nextState, signal, event);
|
|
this._touchState = nextState;
|
|
}
|
|
}
|
|
/**
|
|
* Performs a transition between touchable states and identify any activations
|
|
* or deactivations (and callback invocations).
|
|
*/
|
|
_performTransitionSideEffects(prevState, nextState, signal, event) {
|
|
if (isTerminalSignal(signal)) {
|
|
setTimeout(() => {
|
|
this._isPointerTouch = false;
|
|
}, 0);
|
|
this._touchActivatePosition = null;
|
|
this._cancelLongPressDelayTimeout();
|
|
}
|
|
if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
|
|
var onLongPress = this._config.onLongPress;
|
|
if (onLongPress != null && event.nativeEvent.key == null) {
|
|
onLongPress(event);
|
|
this._longPressDispatched = true;
|
|
}
|
|
}
|
|
var isPrevActive = isActiveSignal(prevState);
|
|
var isNextActive = isActiveSignal(nextState);
|
|
if (!isPrevActive && isNextActive) {
|
|
this._activate(event);
|
|
} else if (isPrevActive && !isNextActive) {
|
|
this._deactivate(event);
|
|
}
|
|
if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
|
|
var _this$_config4 = this._config, _onLongPress = _this$_config4.onLongPress, onPress = _this$_config4.onPress;
|
|
if (onPress != null) {
|
|
var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;
|
|
if (!isPressCanceledByLongPress) {
|
|
if (!isNextActive && !isPrevActive) {
|
|
this._activate(event);
|
|
this._deactivate(event);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this._cancelPressDelayTimeout();
|
|
}
|
|
_activate(event) {
|
|
var _this$_config5 = this._config, onPressChange = _this$_config5.onPressChange, onPressStart = _this$_config5.onPressStart;
|
|
var touch = getTouchFromResponderEvent(event);
|
|
this._touchActivatePosition = {
|
|
pageX: touch.pageX,
|
|
pageY: touch.pageY
|
|
};
|
|
if (onPressStart != null) {
|
|
onPressStart(event);
|
|
}
|
|
if (onPressChange != null) {
|
|
onPressChange(true);
|
|
}
|
|
}
|
|
_deactivate(event) {
|
|
var _this$_config6 = this._config, onPressChange = _this$_config6.onPressChange, onPressEnd = _this$_config6.onPressEnd;
|
|
function end() {
|
|
if (onPressEnd != null) {
|
|
onPressEnd(event);
|
|
}
|
|
if (onPressChange != null) {
|
|
onPressChange(false);
|
|
}
|
|
}
|
|
__name(end, "end");
|
|
var delayPressEnd = normalizeDelay(this._config.delayPressEnd);
|
|
if (delayPressEnd > 0) {
|
|
this._pressOutDelayTimeout = setTimeout(() => {
|
|
end();
|
|
}, delayPressEnd);
|
|
} else {
|
|
end();
|
|
}
|
|
}
|
|
_handleLongPress(event) {
|
|
if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {
|
|
this._receiveSignal(LONG_PRESS_DETECTED, event);
|
|
}
|
|
}
|
|
_cancelLongPressDelayTimeout() {
|
|
if (this._longPressDelayTimeout != null) {
|
|
clearTimeout(this._longPressDelayTimeout);
|
|
this._longPressDelayTimeout = null;
|
|
}
|
|
}
|
|
_cancelPressDelayTimeout() {
|
|
if (this._pressDelayTimeout != null) {
|
|
clearTimeout(this._pressDelayTimeout);
|
|
this._pressDelayTimeout = null;
|
|
}
|
|
}
|
|
_cancelPressOutDelayTimeout() {
|
|
if (this._pressOutDelayTimeout != null) {
|
|
clearTimeout(this._pressOutDelayTimeout);
|
|
this._pressOutDelayTimeout = null;
|
|
}
|
|
}
|
|
};
|
|
__name(_PressResponder, "PressResponder");
|
|
var PressResponder = _PressResponder;
|
|
exports2.default = PressResponder;
|
|
function normalizeDelay(delay, min2, fallback) {
|
|
if (min2 === void 0) {
|
|
min2 = 0;
|
|
}
|
|
if (fallback === void 0) {
|
|
fallback = 0;
|
|
}
|
|
return Math.max(min2, delay !== null && delay !== void 0 ? delay : fallback);
|
|
}
|
|
__name(normalizeDelay, "normalizeDelay");
|
|
function getTouchFromResponderEvent(event) {
|
|
var _event$nativeEvent = event.nativeEvent, changedTouches = _event$nativeEvent.changedTouches, touches = _event$nativeEvent.touches;
|
|
if (touches != null && touches.length > 0) {
|
|
return touches[0];
|
|
}
|
|
if (changedTouches != null && changedTouches.length > 0) {
|
|
return changedTouches[0];
|
|
}
|
|
return event.nativeEvent;
|
|
}
|
|
__name(getTouchFromResponderEvent, "getTouchFromResponderEvent");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/usePressEvents/index.js
|
|
var require_usePressEvents = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/usePressEvents/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = usePressEvents;
|
|
var _PressResponder = _interopRequireDefault(require_PressResponder());
|
|
var _react = require("react");
|
|
function usePressEvents(hostRef, config2) {
|
|
var pressResponderRef = (0, _react.useRef)(null);
|
|
if (pressResponderRef.current == null) {
|
|
pressResponderRef.current = new _PressResponder.default(config2);
|
|
}
|
|
var pressResponder = pressResponderRef.current;
|
|
(0, _react.useEffect)(() => {
|
|
pressResponder.configure(config2);
|
|
}, [config2, pressResponder]);
|
|
(0, _react.useEffect)(() => {
|
|
return () => {
|
|
pressResponder.reset();
|
|
};
|
|
}, [pressResponder]);
|
|
(0, _react.useDebugValue)(config2);
|
|
return pressResponder.getEventHandlers();
|
|
}
|
|
__name(usePressEvents, "usePressEvents");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/TouchableOpacity/index.js
|
|
var require_TouchableOpacity = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/TouchableOpacity/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePressEvents = _interopRequireDefault(require_usePressEvents());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _warnOnce = require_warnOnce();
|
|
var _excluded = ["activeOpacity", "delayPressIn", "delayPressOut", "delayLongPress", "disabled", "focusable", "onLongPress", "onPress", "onPressIn", "onPressOut", "rejectResponderTermination", "style"];
|
|
function TouchableOpacity(props, forwardedRef) {
|
|
(0, _warnOnce.warnOnce)("TouchableOpacity", "TouchableOpacity is deprecated. Please use Pressable.");
|
|
var activeOpacity = props.activeOpacity, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, rejectResponderTermination = props.rejectResponderTermination, style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var hostRef = (0, React44.useRef)(null);
|
|
var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);
|
|
var _useState = (0, React44.useState)("0s"), duration = _useState[0], setDuration = _useState[1];
|
|
var _useState2 = (0, React44.useState)(null), opacityOverride = _useState2[0], setOpacityOverride = _useState2[1];
|
|
var setOpacityTo = (0, React44.useCallback)((value, duration2) => {
|
|
setOpacityOverride(value);
|
|
setDuration(duration2 ? duration2 / 1e3 + "s" : "0s");
|
|
}, [setOpacityOverride, setDuration]);
|
|
var setOpacityActive = (0, React44.useCallback)((duration2) => {
|
|
setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration2);
|
|
}, [activeOpacity, setOpacityTo]);
|
|
var setOpacityInactive = (0, React44.useCallback)((duration2) => {
|
|
setOpacityTo(null, duration2);
|
|
}, [setOpacityTo]);
|
|
var pressConfig = (0, React44.useMemo)(() => ({
|
|
cancelable: !rejectResponderTermination,
|
|
disabled,
|
|
delayLongPress,
|
|
delayPressStart: delayPressIn,
|
|
delayPressEnd: delayPressOut,
|
|
onLongPress,
|
|
onPress,
|
|
onPressStart(event) {
|
|
var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === "onResponderGrant" : event.type === "keydown";
|
|
setOpacityActive(isGrant ? 0 : 150);
|
|
if (onPressIn != null) {
|
|
onPressIn(event);
|
|
}
|
|
},
|
|
onPressEnd(event) {
|
|
setOpacityInactive(250);
|
|
if (onPressOut != null) {
|
|
onPressOut(event);
|
|
}
|
|
}
|
|
}), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);
|
|
var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {
|
|
accessibilityDisabled: disabled,
|
|
focusable: !disabled && focusable !== false,
|
|
pointerEvents: disabled ? "box-none" : void 0,
|
|
ref: setRef2,
|
|
style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {
|
|
opacity: opacityOverride
|
|
}, {
|
|
transitionDuration: duration
|
|
}]
|
|
}));
|
|
}
|
|
__name(TouchableOpacity, "TouchableOpacity");
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
transitionProperty: "opacity",
|
|
transitionDuration: "0.15s",
|
|
userSelect: "none"
|
|
},
|
|
actionable: {
|
|
cursor: "pointer",
|
|
touchAction: "manipulation"
|
|
}
|
|
});
|
|
var MemoedTouchableOpacity = /* @__PURE__ */ React44.memo(/* @__PURE__ */ React44.forwardRef(TouchableOpacity));
|
|
MemoedTouchableOpacity.displayName = "TouchableOpacity";
|
|
var _default = MemoedTouchableOpacity;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Button/index.js
|
|
var require_Button = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Button/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TouchableOpacity = _interopRequireDefault(require_TouchableOpacity());
|
|
var _Text = _interopRequireDefault(require_Text());
|
|
var _warnOnce = require_warnOnce();
|
|
var Button = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
(0, _warnOnce.warnOnce)("Button", "Button is deprecated. Please use Pressable.");
|
|
var accessibilityLabel = props.accessibilityLabel, color2 = props.color, disabled = props.disabled, onPress = props.onPress, testID = props.testID, title = props.title;
|
|
return /* @__PURE__ */ React44.createElement(_TouchableOpacity.default, {
|
|
accessibilityLabel,
|
|
accessibilityRole: "button",
|
|
disabled,
|
|
focusable: !disabled,
|
|
onPress,
|
|
ref: forwardedRef,
|
|
style: [styles.button, color2 && {
|
|
backgroundColor: color2
|
|
}, disabled && styles.buttonDisabled],
|
|
testID
|
|
}, /* @__PURE__ */ React44.createElement(_Text.default, {
|
|
style: [styles.text, disabled && styles.textDisabled]
|
|
}, title));
|
|
});
|
|
Button.displayName = "Button";
|
|
var styles = _StyleSheet.default.create({
|
|
button: {
|
|
backgroundColor: "#2196F3",
|
|
borderRadius: 2
|
|
},
|
|
text: {
|
|
color: "#fff",
|
|
fontWeight: "500",
|
|
padding: 8,
|
|
textAlign: "center",
|
|
textTransform: "uppercase"
|
|
},
|
|
buttonDisabled: {
|
|
backgroundColor: "#dfdfdf"
|
|
},
|
|
textDisabled: {
|
|
color: "#a1a1a1"
|
|
}
|
|
});
|
|
var _default = Button;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/CheckBox/index.js
|
|
var require_CheckBox = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/CheckBox/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["aria-readonly", "color", "disabled", "onChange", "onValueChange", "readOnly", "style", "value"];
|
|
var CheckBox = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var ariaReadOnly = props["aria-readonly"], color2 = props.color, disabled = props.disabled, onChange = props.onChange, onValueChange = props.onValueChange, readOnly = props.readOnly, style = props.style, value = props.value, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
function handleChange(event) {
|
|
var value2 = event.nativeEvent.target.checked;
|
|
event.nativeEvent.value = value2;
|
|
onChange && onChange(event);
|
|
onValueChange && onValueChange(value2);
|
|
}
|
|
__name(handleChange, "handleChange");
|
|
var fakeControl = /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [
|
|
styles.fakeControl,
|
|
value && styles.fakeControlChecked,
|
|
// custom color
|
|
value && color2 && {
|
|
backgroundColor: color2,
|
|
borderColor: color2
|
|
},
|
|
disabled && styles.fakeControlDisabled,
|
|
value && disabled && styles.fakeControlCheckedAndDisabled
|
|
]
|
|
});
|
|
var nativeControl = (0, _createElement.default)("input", {
|
|
checked: value,
|
|
disabled,
|
|
onChange: handleChange,
|
|
readOnly: readOnly === true || ariaReadOnly === true || other.accessibilityReadOnly === true,
|
|
ref: forwardedRef,
|
|
style: [styles.nativeControl, styles.cursorInherit],
|
|
type: "checkbox"
|
|
});
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, other, {
|
|
"aria-disabled": disabled,
|
|
"aria-readonly": ariaReadOnly,
|
|
style: [styles.root, style, disabled && styles.cursorDefault]
|
|
}), fakeControl, nativeControl);
|
|
});
|
|
CheckBox.displayName = "CheckBox";
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
cursor: "pointer",
|
|
height: 16,
|
|
userSelect: "none",
|
|
width: 16
|
|
},
|
|
cursorDefault: {
|
|
cursor: "default"
|
|
},
|
|
cursorInherit: {
|
|
cursor: "inherit"
|
|
},
|
|
fakeControl: {
|
|
alignItems: "center",
|
|
backgroundColor: "#fff",
|
|
borderColor: "#657786",
|
|
borderRadius: 2,
|
|
borderStyle: "solid",
|
|
borderWidth: 2,
|
|
height: "100%",
|
|
justifyContent: "center",
|
|
width: "100%"
|
|
},
|
|
fakeControlChecked: {
|
|
backgroundColor: "#009688",
|
|
backgroundImage: 'url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K")',
|
|
backgroundRepeat: "no-repeat",
|
|
borderColor: "#009688"
|
|
},
|
|
fakeControlDisabled: {
|
|
borderColor: "#CCD6DD"
|
|
},
|
|
fakeControlCheckedAndDisabled: {
|
|
backgroundColor: "#AAB8C2",
|
|
borderColor: "#AAB8C2"
|
|
},
|
|
nativeControl: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {
|
|
height: "100%",
|
|
margin: 0,
|
|
appearance: "none",
|
|
padding: 0,
|
|
width: "100%"
|
|
})
|
|
});
|
|
var _default = CheckBox;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/ImageBackground/index.js
|
|
var require_ImageBackground = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/ImageBackground/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _Image = _interopRequireDefault(require_Image());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["children", "style", "imageStyle", "imageRef"];
|
|
var emptyObject = {};
|
|
var ImageBackground = /* @__PURE__ */ (0, React44.forwardRef)((props, forwardedRef) => {
|
|
var children = props.children, _props$style = props.style, style = _props$style === void 0 ? emptyObject : _props$style, imageStyle = props.imageStyle, imageRef = props.imageRef, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var _StyleSheet$flatten = _StyleSheet.default.flatten(style), height = _StyleSheet$flatten.height, width = _StyleSheet$flatten.width;
|
|
return /* @__PURE__ */ React44.createElement(_View.default, {
|
|
ref: forwardedRef,
|
|
style
|
|
}, /* @__PURE__ */ React44.createElement(_Image.default, (0, _extends2.default)({}, rest, {
|
|
ref: imageRef,
|
|
style: [{
|
|
// Temporary Workaround:
|
|
// Current (imperfect yet) implementation of <Image> overwrites width and height styles
|
|
// (which is not quite correct), and these styles conflict with explicitly set styles
|
|
// of <ImageBackground> and with our internal layout model here.
|
|
// So, we have to proxy/reapply these styles explicitly for actual <Image> component.
|
|
// This workaround should be removed after implementing proper support of
|
|
// intrinsic content size of the <Image>.
|
|
width,
|
|
height,
|
|
zIndex: -1
|
|
}, _StyleSheet.default.absoluteFill, imageStyle]
|
|
})), children);
|
|
});
|
|
ImageBackground.displayName = "ImageBackground";
|
|
var _default = ImageBackground;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/KeyboardAvoidingView/index.js
|
|
var require_KeyboardAvoidingView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/KeyboardAvoidingView/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["behavior", "contentContainerStyle", "keyboardVerticalOffset"];
|
|
var _KeyboardAvoidingView = class _KeyboardAvoidingView extends React44.Component {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.frame = null;
|
|
this.onLayout = (event) => {
|
|
this.frame = event.nativeEvent.layout;
|
|
};
|
|
}
|
|
relativeKeyboardHeight(keyboardFrame) {
|
|
var frame = this.frame;
|
|
if (!frame || !keyboardFrame) {
|
|
return 0;
|
|
}
|
|
var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);
|
|
return Math.max(frame.y + frame.height - keyboardY, 0);
|
|
}
|
|
onKeyboardChange(event) {
|
|
}
|
|
render() {
|
|
var _this$props = this.props, behavior = _this$props.behavior, contentContainerStyle = _this$props.contentContainerStyle, keyboardVerticalOffset = _this$props.keyboardVerticalOffset, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({
|
|
onLayout: this.onLayout
|
|
}, rest));
|
|
}
|
|
};
|
|
__name(_KeyboardAvoidingView, "KeyboardAvoidingView");
|
|
var KeyboardAvoidingView = _KeyboardAvoidingView;
|
|
var _default = KeyboardAvoidingView;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Modal/ModalPortal.js
|
|
var require_ModalPortal = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Modal/ModalPortal.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
function ModalPortal(props) {
|
|
var children = props.children;
|
|
var elementRef = React44.useRef(null);
|
|
if (_canUseDom.default && !elementRef.current) {
|
|
var element = document.createElement("div");
|
|
if (element && document.body) {
|
|
document.body.appendChild(element);
|
|
elementRef.current = element;
|
|
}
|
|
}
|
|
React44.useEffect(() => {
|
|
if (_canUseDom.default) {
|
|
return () => {
|
|
if (document.body && elementRef.current) {
|
|
document.body.removeChild(elementRef.current);
|
|
elementRef.current = null;
|
|
}
|
|
};
|
|
}
|
|
}, []);
|
|
return elementRef.current && _canUseDom.default ? /* @__PURE__ */ _reactDom.default.createPortal(children, elementRef.current) : null;
|
|
}
|
|
__name(ModalPortal, "ModalPortal");
|
|
var _default = ModalPortal;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Modal/ModalAnimation.js
|
|
var require_ModalAnimation = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Modal/ModalAnimation.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var ANIMATION_DURATION = 300;
|
|
function getAnimationStyle(animationType, visible) {
|
|
if (animationType === "slide") {
|
|
return visible ? animatedSlideInStyles : animatedSlideOutStyles;
|
|
}
|
|
if (animationType === "fade") {
|
|
return visible ? animatedFadeInStyles : animatedFadeOutStyles;
|
|
}
|
|
return visible ? styles.container : styles.hidden;
|
|
}
|
|
__name(getAnimationStyle, "getAnimationStyle");
|
|
function ModalAnimation(props) {
|
|
var animationType = props.animationType, children = props.children, onDismiss = props.onDismiss, onShow = props.onShow, visible = props.visible;
|
|
var _React$useState = React44.useState(false), isRendering = _React$useState[0], setIsRendering = _React$useState[1];
|
|
var wasVisible = React44.useRef(false);
|
|
var wasRendering = React44.useRef(false);
|
|
var isAnimated = animationType && animationType !== "none";
|
|
var animationEndCallback = React44.useCallback((e) => {
|
|
if (e && e.currentTarget !== e.target) {
|
|
return;
|
|
}
|
|
if (visible) {
|
|
if (onShow) {
|
|
onShow();
|
|
}
|
|
} else {
|
|
setIsRendering(false);
|
|
}
|
|
}, [onShow, visible]);
|
|
React44.useEffect(() => {
|
|
if (wasRendering.current && !isRendering && onDismiss) {
|
|
onDismiss();
|
|
}
|
|
wasRendering.current = isRendering;
|
|
}, [isRendering, onDismiss]);
|
|
React44.useEffect(() => {
|
|
if (visible) {
|
|
setIsRendering(true);
|
|
}
|
|
if (visible !== wasVisible.current && !isAnimated) {
|
|
animationEndCallback();
|
|
}
|
|
wasVisible.current = visible;
|
|
}, [isAnimated, visible, animationEndCallback]);
|
|
return isRendering || visible ? (0, _createElement.default)("div", {
|
|
style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,
|
|
onAnimationEnd: animationEndCallback,
|
|
children
|
|
}) : null;
|
|
}
|
|
__name(ModalAnimation, "ModalAnimation");
|
|
var styles = _StyleSheet.default.create({
|
|
container: {
|
|
position: "fixed",
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
zIndex: 9999
|
|
},
|
|
animatedIn: {
|
|
animationDuration: ANIMATION_DURATION + "ms",
|
|
animationTimingFunction: "ease-in"
|
|
},
|
|
animatedOut: {
|
|
pointerEvents: "none",
|
|
animationDuration: ANIMATION_DURATION + "ms",
|
|
animationTimingFunction: "ease-out"
|
|
},
|
|
fadeIn: {
|
|
opacity: 1,
|
|
animationKeyframes: {
|
|
"0%": {
|
|
opacity: 0
|
|
},
|
|
"100%": {
|
|
opacity: 1
|
|
}
|
|
}
|
|
},
|
|
fadeOut: {
|
|
opacity: 0,
|
|
animationKeyframes: {
|
|
"0%": {
|
|
opacity: 1
|
|
},
|
|
"100%": {
|
|
opacity: 0
|
|
}
|
|
}
|
|
},
|
|
slideIn: {
|
|
transform: "translateY(0%)",
|
|
animationKeyframes: {
|
|
"0%": {
|
|
transform: "translateY(100%)"
|
|
},
|
|
"100%": {
|
|
transform: "translateY(0%)"
|
|
}
|
|
}
|
|
},
|
|
slideOut: {
|
|
transform: "translateY(100%)",
|
|
animationKeyframes: {
|
|
"0%": {
|
|
transform: "translateY(0%)"
|
|
},
|
|
"100%": {
|
|
transform: "translateY(100%)"
|
|
}
|
|
}
|
|
},
|
|
hidden: {
|
|
opacity: 0
|
|
}
|
|
});
|
|
var animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];
|
|
var animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];
|
|
var animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];
|
|
var animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];
|
|
var _default = ModalAnimation;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Modal/ModalContent.js
|
|
var require_ModalContent = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Modal/ModalContent.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var _excluded = ["active", "children", "onRequestClose", "transparent"];
|
|
var ModalContent = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var active = props.active, children = props.children, onRequestClose = props.onRequestClose, transparent = props.transparent, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
React44.useEffect(() => {
|
|
if (_canUseDom.default) {
|
|
var closeOnEscape = /* @__PURE__ */ __name((e) => {
|
|
if (active && e.key === "Escape") {
|
|
e.stopPropagation();
|
|
if (onRequestClose) {
|
|
onRequestClose();
|
|
}
|
|
}
|
|
}, "closeOnEscape");
|
|
document.addEventListener("keyup", closeOnEscape, false);
|
|
return () => document.removeEventListener("keyup", closeOnEscape, false);
|
|
}
|
|
}, [active, onRequestClose]);
|
|
var style = React44.useMemo(() => {
|
|
return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];
|
|
}, [transparent]);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, {
|
|
"aria-modal": true,
|
|
ref: forwardedRef,
|
|
role: active ? "dialog" : null,
|
|
style
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: styles.container
|
|
}, children));
|
|
});
|
|
var styles = _StyleSheet.default.create({
|
|
modal: {
|
|
position: "fixed",
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0
|
|
},
|
|
modalTransparent: {
|
|
backgroundColor: "transparent"
|
|
},
|
|
modalOpaque: {
|
|
backgroundColor: "white"
|
|
},
|
|
container: {
|
|
top: 0,
|
|
flex: 1
|
|
}
|
|
});
|
|
var _default = ModalContent;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Modal/ModalFocusTrap.js
|
|
var require_ModalFocusTrap = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Modal/ModalFocusTrap.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var FocusBracket = /* @__PURE__ */ __name(() => {
|
|
return (0, _createElement.default)("div", {
|
|
role: "none",
|
|
tabIndex: 0,
|
|
style: styles.focusBracket
|
|
});
|
|
}, "FocusBracket");
|
|
function attemptFocus(element) {
|
|
if (!_canUseDom.default) {
|
|
return false;
|
|
}
|
|
try {
|
|
element.focus();
|
|
} catch (e) {
|
|
}
|
|
return document.activeElement === element;
|
|
}
|
|
__name(attemptFocus, "attemptFocus");
|
|
function focusFirstDescendant(element) {
|
|
for (var i = 0; i < element.childNodes.length; i++) {
|
|
var child = element.childNodes[i];
|
|
if (attemptFocus(child) || focusFirstDescendant(child)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
__name(focusFirstDescendant, "focusFirstDescendant");
|
|
function focusLastDescendant(element) {
|
|
for (var i = element.childNodes.length - 1; i >= 0; i--) {
|
|
var child = element.childNodes[i];
|
|
if (attemptFocus(child) || focusLastDescendant(child)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
__name(focusLastDescendant, "focusLastDescendant");
|
|
var ModalFocusTrap = /* @__PURE__ */ __name((_ref) => {
|
|
var active = _ref.active, children = _ref.children;
|
|
var trapElementRef = React44.useRef();
|
|
var focusRef = React44.useRef({
|
|
trapFocusInProgress: false,
|
|
lastFocusedElement: null
|
|
});
|
|
React44.useEffect(() => {
|
|
if (_canUseDom.default) {
|
|
var trapFocus = /* @__PURE__ */ __name(() => {
|
|
if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {
|
|
return;
|
|
}
|
|
try {
|
|
focusRef.current.trapFocusInProgress = true;
|
|
if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {
|
|
var hasFocused = focusFirstDescendant(trapElementRef.current);
|
|
if (focusRef.current.lastFocusedElement === document.activeElement) {
|
|
hasFocused = focusLastDescendant(trapElementRef.current);
|
|
}
|
|
if (!hasFocused && trapElementRef.current != null && document.activeElement) {
|
|
_UIManager.default.focus(trapElementRef.current);
|
|
}
|
|
}
|
|
} finally {
|
|
focusRef.current.trapFocusInProgress = false;
|
|
}
|
|
focusRef.current.lastFocusedElement = document.activeElement;
|
|
}, "trapFocus");
|
|
trapFocus();
|
|
document.addEventListener("focus", trapFocus, true);
|
|
return () => document.removeEventListener("focus", trapFocus, true);
|
|
}
|
|
}, [active]);
|
|
React44.useEffect(function() {
|
|
if (_canUseDom.default) {
|
|
var lastFocusedElementOutsideTrap = document.activeElement;
|
|
return function() {
|
|
if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {
|
|
_UIManager.default.focus(lastFocusedElementOutsideTrap);
|
|
}
|
|
};
|
|
}
|
|
}, []);
|
|
return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(FocusBracket, null), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
ref: trapElementRef
|
|
}, children), /* @__PURE__ */ React44.createElement(FocusBracket, null));
|
|
}, "ModalFocusTrap");
|
|
var _default = ModalFocusTrap;
|
|
exports2.default = _default;
|
|
var styles = _StyleSheet.default.create({
|
|
focusBracket: {
|
|
outlineStyle: "none"
|
|
}
|
|
});
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Modal/index.js
|
|
var require_Modal = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Modal/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _ModalPortal = _interopRequireDefault(require_ModalPortal());
|
|
var _ModalAnimation = _interopRequireDefault(require_ModalAnimation());
|
|
var _ModalContent = _interopRequireDefault(require_ModalContent());
|
|
var _ModalFocusTrap = _interopRequireDefault(require_ModalFocusTrap());
|
|
var _excluded = ["animationType", "children", "onDismiss", "onRequestClose", "onShow", "transparent", "visible"];
|
|
var uniqueModalIdentifier = 0;
|
|
var activeModalStack = [];
|
|
var activeModalListeners = {};
|
|
function notifyActiveModalListeners() {
|
|
if (activeModalStack.length === 0) {
|
|
return;
|
|
}
|
|
var activeModalId = activeModalStack[activeModalStack.length - 1];
|
|
activeModalStack.forEach((modalId) => {
|
|
if (modalId in activeModalListeners) {
|
|
activeModalListeners[modalId](modalId === activeModalId);
|
|
}
|
|
});
|
|
}
|
|
__name(notifyActiveModalListeners, "notifyActiveModalListeners");
|
|
function removeActiveModal(modalId) {
|
|
if (modalId in activeModalListeners) {
|
|
activeModalListeners[modalId](false);
|
|
delete activeModalListeners[modalId];
|
|
}
|
|
var index3 = activeModalStack.indexOf(modalId);
|
|
if (index3 !== -1) {
|
|
activeModalStack.splice(index3, 1);
|
|
notifyActiveModalListeners();
|
|
}
|
|
}
|
|
__name(removeActiveModal, "removeActiveModal");
|
|
function addActiveModal(modalId, listener) {
|
|
removeActiveModal(modalId);
|
|
activeModalStack.push(modalId);
|
|
activeModalListeners[modalId] = listener;
|
|
notifyActiveModalListeners();
|
|
}
|
|
__name(addActiveModal, "addActiveModal");
|
|
var Modal = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var animationType = props.animationType, children = props.children, onDismiss = props.onDismiss, onRequestClose = props.onRequestClose, onShow = props.onShow, transparent = props.transparent, _props$visible = props.visible, visible = _props$visible === void 0 ? true : _props$visible, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var modalId = React44.useMemo(() => uniqueModalIdentifier++, []);
|
|
var _React$useState = React44.useState(false), isActive = _React$useState[0], setIsActive = _React$useState[1];
|
|
var onDismissCallback = React44.useCallback(() => {
|
|
removeActiveModal(modalId);
|
|
if (onDismiss) {
|
|
onDismiss();
|
|
}
|
|
}, [modalId, onDismiss]);
|
|
var onShowCallback = React44.useCallback(() => {
|
|
addActiveModal(modalId, setIsActive);
|
|
if (onShow) {
|
|
onShow();
|
|
}
|
|
}, [modalId, onShow]);
|
|
React44.useEffect(() => {
|
|
return () => removeActiveModal(modalId);
|
|
}, [modalId]);
|
|
return /* @__PURE__ */ React44.createElement(_ModalPortal.default, null, /* @__PURE__ */ React44.createElement(_ModalAnimation.default, {
|
|
animationType,
|
|
onDismiss: onDismissCallback,
|
|
onShow: onShowCallback,
|
|
visible
|
|
}, /* @__PURE__ */ React44.createElement(_ModalFocusTrap.default, {
|
|
active: isActive
|
|
}, /* @__PURE__ */ React44.createElement(_ModalContent.default, (0, _extends2.default)({}, rest, {
|
|
active: isActive,
|
|
onRequestClose,
|
|
ref: forwardedRef,
|
|
transparent
|
|
}), children))));
|
|
});
|
|
var _default = Modal;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Picker/PickerItem.js
|
|
var require_PickerItem = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Picker/PickerItem.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = PickerItem;
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
function PickerItem(props) {
|
|
var color2 = props.color, label = props.label, testID = props.testID, value = props.value;
|
|
var style = {
|
|
color: color2
|
|
};
|
|
return (0, _createElement.default)("option", {
|
|
children: label,
|
|
style,
|
|
testID,
|
|
value
|
|
});
|
|
}
|
|
__name(PickerItem, "PickerItem");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Picker/index.js
|
|
var require_Picker = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Picker/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());
|
|
var _PickerItem = _interopRequireDefault(require_PickerItem());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _excluded = ["children", "enabled", "onValueChange", "selectedValue", "style", "testID", "itemStyle", "mode", "prompt"];
|
|
var Picker = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var children = props.children, enabled = props.enabled, onValueChange = props.onValueChange, selectedValue = props.selectedValue, style = props.style, testID = props.testID, itemStyle = props.itemStyle, mode = props.mode, prompt = props.prompt, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var hostRef = React44.useRef(null);
|
|
function handleChange(e) {
|
|
var _e$target = e.target, selectedIndex = _e$target.selectedIndex, value = _e$target.value;
|
|
if (onValueChange) {
|
|
onValueChange(value, selectedIndex);
|
|
}
|
|
}
|
|
__name(handleChange, "handleChange");
|
|
var supportedProps = (0, _objectSpread2.default)({
|
|
children,
|
|
disabled: enabled === false ? true : void 0,
|
|
onChange: handleChange,
|
|
style: [styles.initial, style],
|
|
testID,
|
|
value: selectedValue
|
|
}, other);
|
|
var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);
|
|
var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, forwardedRef);
|
|
supportedProps.ref = setRef2;
|
|
return (0, _createElement.default)("select", supportedProps);
|
|
});
|
|
Picker.Item = _PickerItem.default;
|
|
var styles = _StyleSheet.default.create({
|
|
initial: {
|
|
fontFamily: "System",
|
|
fontSize: "inherit",
|
|
margin: 0
|
|
}
|
|
});
|
|
var _default = Picker;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/addEventListener/index.js
|
|
var require_addEventListener = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/addEventListener/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.addEventListener = addEventListener;
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var emptyFunction = /* @__PURE__ */ __name(() => {
|
|
}, "emptyFunction");
|
|
function supportsPassiveEvents() {
|
|
var supported = false;
|
|
if (_canUseDom.default) {
|
|
try {
|
|
var options = {};
|
|
Object.defineProperty(options, "passive", {
|
|
get() {
|
|
supported = true;
|
|
return false;
|
|
}
|
|
});
|
|
window.addEventListener("test", null, options);
|
|
window.removeEventListener("test", null, options);
|
|
} catch (e) {
|
|
}
|
|
}
|
|
return supported;
|
|
}
|
|
__name(supportsPassiveEvents, "supportsPassiveEvents");
|
|
var canUsePassiveEvents = supportsPassiveEvents();
|
|
function getOptions(options) {
|
|
if (options == null) {
|
|
return false;
|
|
}
|
|
return canUsePassiveEvents ? options : Boolean(options.capture);
|
|
}
|
|
__name(getOptions, "getOptions");
|
|
function isPropagationStopped() {
|
|
return this.cancelBubble;
|
|
}
|
|
__name(isPropagationStopped, "isPropagationStopped");
|
|
function isDefaultPrevented() {
|
|
return this.defaultPrevented;
|
|
}
|
|
__name(isDefaultPrevented, "isDefaultPrevented");
|
|
function normalizeEvent(event) {
|
|
event.nativeEvent = event;
|
|
event.persist = emptyFunction;
|
|
event.isDefaultPrevented = isDefaultPrevented;
|
|
event.isPropagationStopped = isPropagationStopped;
|
|
return event;
|
|
}
|
|
__name(normalizeEvent, "normalizeEvent");
|
|
function addEventListener(target, type, listener, options) {
|
|
var opts = getOptions(options);
|
|
var compatListener = /* @__PURE__ */ __name((e) => listener(normalizeEvent(e)), "compatListener");
|
|
target.addEventListener(type, compatListener, opts);
|
|
return /* @__PURE__ */ __name(function removeEventListener() {
|
|
if (target != null) {
|
|
target.removeEventListener(type, compatListener, opts);
|
|
}
|
|
}, "removeEventListener");
|
|
}
|
|
__name(addEventListener, "addEventListener");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/modality/index.js
|
|
var require_modality = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/modality/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.addModalityListener = addModalityListener;
|
|
exports2.getActiveModality = getActiveModality;
|
|
exports2.getModality = getModality;
|
|
exports2.testOnly_resetActiveModality = testOnly_resetActiveModality;
|
|
var _addEventListener = require_addEventListener();
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var supportsPointerEvent = /* @__PURE__ */ __name(() => !!(typeof window !== "undefined" && window.PointerEvent != null), "supportsPointerEvent");
|
|
var activeModality = "keyboard";
|
|
var modality = "keyboard";
|
|
var previousModality;
|
|
var previousActiveModality;
|
|
var isEmulatingMouseEvents = false;
|
|
var listeners = /* @__PURE__ */ new Set();
|
|
var KEYBOARD = "keyboard";
|
|
var MOUSE = "mouse";
|
|
var TOUCH = "touch";
|
|
var BLUR = "blur";
|
|
var CONTEXTMENU = "contextmenu";
|
|
var FOCUS = "focus";
|
|
var KEYDOWN = "keydown";
|
|
var MOUSEDOWN = "mousedown";
|
|
var MOUSEMOVE = "mousemove";
|
|
var MOUSEUP = "mouseup";
|
|
var POINTERDOWN = "pointerdown";
|
|
var POINTERMOVE = "pointermove";
|
|
var SCROLL = "scroll";
|
|
var SELECTIONCHANGE = "selectionchange";
|
|
var TOUCHCANCEL = "touchcancel";
|
|
var TOUCHMOVE = "touchmove";
|
|
var TOUCHSTART = "touchstart";
|
|
var VISIBILITYCHANGE = "visibilitychange";
|
|
var bubbleOptions = {
|
|
passive: true
|
|
};
|
|
var captureOptions = {
|
|
capture: true,
|
|
passive: true
|
|
};
|
|
function restoreModality() {
|
|
if (previousModality != null || previousActiveModality != null) {
|
|
if (previousModality != null) {
|
|
modality = previousModality;
|
|
previousModality = null;
|
|
}
|
|
if (previousActiveModality != null) {
|
|
activeModality = previousActiveModality;
|
|
previousActiveModality = null;
|
|
}
|
|
callListeners();
|
|
}
|
|
}
|
|
__name(restoreModality, "restoreModality");
|
|
function onBlurWindow() {
|
|
previousModality = modality;
|
|
previousActiveModality = activeModality;
|
|
activeModality = KEYBOARD;
|
|
modality = KEYBOARD;
|
|
callListeners();
|
|
isEmulatingMouseEvents = false;
|
|
}
|
|
__name(onBlurWindow, "onBlurWindow");
|
|
function onFocusWindow() {
|
|
restoreModality();
|
|
}
|
|
__name(onFocusWindow, "onFocusWindow");
|
|
function onKeyDown(event) {
|
|
if (event.metaKey || event.altKey || event.ctrlKey) {
|
|
return;
|
|
}
|
|
if (modality !== KEYBOARD) {
|
|
modality = KEYBOARD;
|
|
activeModality = KEYBOARD;
|
|
callListeners();
|
|
}
|
|
}
|
|
__name(onKeyDown, "onKeyDown");
|
|
function onVisibilityChange() {
|
|
if (document.visibilityState !== "hidden") {
|
|
restoreModality();
|
|
}
|
|
}
|
|
__name(onVisibilityChange, "onVisibilityChange");
|
|
function onPointerish(event) {
|
|
var eventType = event.type;
|
|
if (supportsPointerEvent()) {
|
|
if (eventType === POINTERDOWN) {
|
|
if (activeModality !== event.pointerType) {
|
|
modality = event.pointerType;
|
|
activeModality = event.pointerType;
|
|
callListeners();
|
|
}
|
|
return;
|
|
}
|
|
if (eventType === POINTERMOVE) {
|
|
if (modality !== event.pointerType) {
|
|
modality = event.pointerType;
|
|
callListeners();
|
|
}
|
|
return;
|
|
}
|
|
} else {
|
|
if (!isEmulatingMouseEvents) {
|
|
if (eventType === MOUSEDOWN) {
|
|
if (activeModality !== MOUSE) {
|
|
modality = MOUSE;
|
|
activeModality = MOUSE;
|
|
callListeners();
|
|
}
|
|
}
|
|
if (eventType === MOUSEMOVE) {
|
|
if (modality !== MOUSE) {
|
|
modality = MOUSE;
|
|
callListeners();
|
|
}
|
|
}
|
|
}
|
|
if (eventType === TOUCHSTART) {
|
|
isEmulatingMouseEvents = true;
|
|
if (event.touches && event.touches.length > 1) {
|
|
isEmulatingMouseEvents = false;
|
|
}
|
|
if (activeModality !== TOUCH) {
|
|
modality = TOUCH;
|
|
activeModality = TOUCH;
|
|
callListeners();
|
|
}
|
|
return;
|
|
}
|
|
if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {
|
|
isEmulatingMouseEvents = false;
|
|
}
|
|
}
|
|
}
|
|
__name(onPointerish, "onPointerish");
|
|
if (_canUseDom.default) {
|
|
(0, _addEventListener.addEventListener)(window, BLUR, onBlurWindow, bubbleOptions);
|
|
(0, _addEventListener.addEventListener)(window, FOCUS, onFocusWindow, bubbleOptions);
|
|
(0, _addEventListener.addEventListener)(document, KEYDOWN, onKeyDown, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, VISIBILITYCHANGE, onVisibilityChange, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, POINTERDOWN, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, POINTERMOVE, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, CONTEXTMENU, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, MOUSEDOWN, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, MOUSEMOVE, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, MOUSEUP, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, TOUCHCANCEL, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, TOUCHMOVE, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, TOUCHSTART, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, SELECTIONCHANGE, onPointerish, captureOptions);
|
|
(0, _addEventListener.addEventListener)(document, SCROLL, onPointerish, captureOptions);
|
|
}
|
|
function callListeners() {
|
|
var value = {
|
|
activeModality,
|
|
modality
|
|
};
|
|
listeners.forEach((listener) => {
|
|
listener(value);
|
|
});
|
|
}
|
|
__name(callListeners, "callListeners");
|
|
function getActiveModality() {
|
|
return activeModality;
|
|
}
|
|
__name(getActiveModality, "getActiveModality");
|
|
function getModality() {
|
|
return modality;
|
|
}
|
|
__name(getModality, "getModality");
|
|
function addModalityListener(listener) {
|
|
listeners.add(listener);
|
|
return () => {
|
|
listeners.delete(listener);
|
|
};
|
|
}
|
|
__name(addModalityListener, "addModalityListener");
|
|
function testOnly_resetActiveModality() {
|
|
isEmulatingMouseEvents = false;
|
|
activeModality = KEYBOARD;
|
|
modality = KEYBOARD;
|
|
}
|
|
__name(testOnly_resetActiveModality, "testOnly_resetActiveModality");
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useEvent/index.js
|
|
var require_useEvent2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useEvent/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useEvent13;
|
|
var _addEventListener = require_addEventListener();
|
|
var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());
|
|
var _useStable = _interopRequireDefault(require_useStable());
|
|
function useEvent13(eventType, options) {
|
|
var targetListeners = (0, _useStable.default)(() => /* @__PURE__ */ new Map());
|
|
var addListener = (0, _useStable.default)(() => {
|
|
return (target, callback) => {
|
|
var removeTargetListener = targetListeners.get(target);
|
|
if (removeTargetListener != null) {
|
|
removeTargetListener();
|
|
}
|
|
if (callback == null) {
|
|
targetListeners.delete(target);
|
|
callback = /* @__PURE__ */ __name(() => {
|
|
}, "callback");
|
|
}
|
|
var removeEventListener = (0, _addEventListener.addEventListener)(target, eventType, callback, options);
|
|
targetListeners.set(target, removeEventListener);
|
|
return removeEventListener;
|
|
};
|
|
});
|
|
(0, _useLayoutEffect.default)(() => {
|
|
return () => {
|
|
targetListeners.forEach((removeListener) => {
|
|
removeListener();
|
|
});
|
|
targetListeners.clear();
|
|
};
|
|
}, [targetListeners]);
|
|
return addListener;
|
|
}
|
|
__name(useEvent13, "useEvent");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/useHover/index.js
|
|
var require_useHover = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/useHover/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useHover2;
|
|
var _modality = require_modality();
|
|
var _useEvent = _interopRequireDefault(require_useEvent2());
|
|
var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());
|
|
var emptyObject = {};
|
|
var opts = {
|
|
passive: true
|
|
};
|
|
var lockEventType = "react-gui:hover:lock";
|
|
var unlockEventType = "react-gui:hover:unlock";
|
|
var supportsPointerEvent = /* @__PURE__ */ __name(() => !!(typeof window !== "undefined" && window.PointerEvent != null), "supportsPointerEvent");
|
|
function dispatchCustomEvent(target, type, payload) {
|
|
var event = document.createEvent("CustomEvent");
|
|
var _ref = payload || emptyObject, _ref$bubbles = _ref.bubbles, bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles, _ref$cancelable = _ref.cancelable, cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable, detail = _ref.detail;
|
|
event.initCustomEvent(type, bubbles, cancelable, detail);
|
|
target.dispatchEvent(event);
|
|
}
|
|
__name(dispatchCustomEvent, "dispatchCustomEvent");
|
|
function getPointerType(event) {
|
|
var pointerType = event.pointerType;
|
|
return pointerType != null ? pointerType : (0, _modality.getModality)();
|
|
}
|
|
__name(getPointerType, "getPointerType");
|
|
function useHover2(targetRef, config2) {
|
|
var contain = config2.contain, disabled = config2.disabled, onHoverStart = config2.onHoverStart, onHoverChange = config2.onHoverChange, onHoverUpdate = config2.onHoverUpdate, onHoverEnd = config2.onHoverEnd;
|
|
var canUsePE = supportsPointerEvent();
|
|
var addMoveListener = (0, _useEvent.default)(canUsePE ? "pointermove" : "mousemove", opts);
|
|
var addEnterListener = (0, _useEvent.default)(canUsePE ? "pointerenter" : "mouseenter", opts);
|
|
var addLeaveListener = (0, _useEvent.default)(canUsePE ? "pointerleave" : "mouseleave", opts);
|
|
var addLockListener = (0, _useEvent.default)(lockEventType, opts);
|
|
var addUnlockListener = (0, _useEvent.default)(unlockEventType, opts);
|
|
(0, _useLayoutEffect.default)(() => {
|
|
var target = targetRef.current;
|
|
if (target !== null) {
|
|
var hoverEnd = /* @__PURE__ */ __name(function hoverEnd2(e) {
|
|
if (onHoverEnd != null) {
|
|
onHoverEnd(e);
|
|
}
|
|
if (onHoverChange != null) {
|
|
onHoverChange(false);
|
|
}
|
|
addMoveListener(target, null);
|
|
addLeaveListener(target, null);
|
|
}, "hoverEnd");
|
|
var leaveListener = /* @__PURE__ */ __name(function leaveListener2(e) {
|
|
var target2 = targetRef.current;
|
|
if (target2 != null && getPointerType(e) !== "touch") {
|
|
if (contain) {
|
|
dispatchCustomEvent(target2, unlockEventType);
|
|
}
|
|
hoverEnd(e);
|
|
}
|
|
}, "leaveListener");
|
|
var moveListener = /* @__PURE__ */ __name(function moveListener2(e) {
|
|
if (getPointerType(e) !== "touch") {
|
|
if (onHoverUpdate != null) {
|
|
if (e.x == null) {
|
|
e.x = e.clientX;
|
|
}
|
|
if (e.y == null) {
|
|
e.y = e.clientY;
|
|
}
|
|
onHoverUpdate(e);
|
|
}
|
|
}
|
|
}, "moveListener");
|
|
var hoverStart = /* @__PURE__ */ __name(function hoverStart2(e) {
|
|
if (onHoverStart != null) {
|
|
onHoverStart(e);
|
|
}
|
|
if (onHoverChange != null) {
|
|
onHoverChange(true);
|
|
}
|
|
if (onHoverUpdate != null) {
|
|
addMoveListener(target, !disabled ? moveListener : null);
|
|
}
|
|
addLeaveListener(target, !disabled ? leaveListener : null);
|
|
}, "hoverStart");
|
|
var enterListener = /* @__PURE__ */ __name(function enterListener2(e) {
|
|
var target2 = targetRef.current;
|
|
if (target2 != null && getPointerType(e) !== "touch") {
|
|
if (contain) {
|
|
dispatchCustomEvent(target2, lockEventType);
|
|
}
|
|
hoverStart(e);
|
|
var lockListener = /* @__PURE__ */ __name(function lockListener2(lockEvent) {
|
|
if (lockEvent.target !== target2) {
|
|
hoverEnd(e);
|
|
}
|
|
}, "lockListener");
|
|
var unlockListener = /* @__PURE__ */ __name(function unlockListener2(lockEvent) {
|
|
if (lockEvent.target !== target2) {
|
|
hoverStart(e);
|
|
}
|
|
}, "unlockListener");
|
|
addLockListener(target2, !disabled ? lockListener : null);
|
|
addUnlockListener(target2, !disabled ? unlockListener : null);
|
|
}
|
|
}, "enterListener");
|
|
addEnterListener(target, !disabled ? enterListener : null);
|
|
}
|
|
}, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);
|
|
}
|
|
__name(useHover2, "useHover");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Pressable/index.js
|
|
var require_Pressable = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Pressable/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _useHover = _interopRequireDefault(require_useHover());
|
|
var _usePressEvents = _interopRequireDefault(require_usePressEvents());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["children", "delayLongPress", "delayPressIn", "delayPressOut", "disabled", "onBlur", "onContextMenu", "onFocus", "onHoverIn", "onHoverOut", "onKeyDown", "onLongPress", "onPress", "onPressMove", "onPressIn", "onPressOut", "style", "tabIndex", "testOnly_hovered", "testOnly_pressed"];
|
|
function Pressable(props, forwardedRef) {
|
|
var children = props.children, delayLongPress = props.delayLongPress, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, disabled = props.disabled, onBlur = props.onBlur, onContextMenu = props.onContextMenu, onFocus = props.onFocus, onHoverIn = props.onHoverIn, onHoverOut = props.onHoverOut, onKeyDown = props.onKeyDown, onLongPress = props.onLongPress, onPress = props.onPress, onPressMove = props.onPressMove, onPressIn = props.onPressIn, onPressOut = props.onPressOut, style = props.style, tabIndex = props.tabIndex, testOnly_hovered = props.testOnly_hovered, testOnly_pressed = props.testOnly_pressed, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var _useForceableState = useForceableState(testOnly_hovered === true), hovered = _useForceableState[0], setHovered = _useForceableState[1];
|
|
var _useForceableState2 = useForceableState(false), focused = _useForceableState2[0], setFocused = _useForceableState2[1];
|
|
var _useForceableState3 = useForceableState(testOnly_pressed === true), pressed = _useForceableState3[0], setPressed = _useForceableState3[1];
|
|
var hostRef = (0, React44.useRef)(null);
|
|
var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);
|
|
var pressConfig = (0, React44.useMemo)(() => ({
|
|
delayLongPress,
|
|
delayPressStart: delayPressIn,
|
|
delayPressEnd: delayPressOut,
|
|
disabled,
|
|
onLongPress,
|
|
onPress,
|
|
onPressChange: setPressed,
|
|
onPressStart: onPressIn,
|
|
onPressMove,
|
|
onPressEnd: onPressOut
|
|
}), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);
|
|
var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);
|
|
var onContextMenuPress = pressEventHandlers.onContextMenu, onKeyDownPress = pressEventHandlers.onKeyDown;
|
|
(0, _useHover.default)(hostRef, {
|
|
contain: true,
|
|
disabled,
|
|
onHoverChange: setHovered,
|
|
onHoverStart: onHoverIn,
|
|
onHoverEnd: onHoverOut
|
|
});
|
|
var interactionState = {
|
|
hovered,
|
|
focused,
|
|
pressed
|
|
};
|
|
var blurHandler = React44.useCallback((e) => {
|
|
if (e.nativeEvent.target === hostRef.current) {
|
|
setFocused(false);
|
|
if (onBlur != null) {
|
|
onBlur(e);
|
|
}
|
|
}
|
|
}, [hostRef, setFocused, onBlur]);
|
|
var focusHandler = React44.useCallback((e) => {
|
|
if (e.nativeEvent.target === hostRef.current) {
|
|
setFocused(true);
|
|
if (onFocus != null) {
|
|
onFocus(e);
|
|
}
|
|
}
|
|
}, [hostRef, setFocused, onFocus]);
|
|
var contextMenuHandler = React44.useCallback((e) => {
|
|
if (onContextMenuPress != null) {
|
|
onContextMenuPress(e);
|
|
}
|
|
if (onContextMenu != null) {
|
|
onContextMenu(e);
|
|
}
|
|
}, [onContextMenu, onContextMenuPress]);
|
|
var keyDownHandler = React44.useCallback((e) => {
|
|
if (onKeyDownPress != null) {
|
|
onKeyDownPress(e);
|
|
}
|
|
if (onKeyDown != null) {
|
|
onKeyDown(e);
|
|
}
|
|
}, [onKeyDown, onKeyDownPress]);
|
|
var _tabIndex;
|
|
if (tabIndex !== void 0) {
|
|
_tabIndex = tabIndex;
|
|
} else {
|
|
_tabIndex = disabled ? -1 : 0;
|
|
}
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {
|
|
"aria-disabled": disabled,
|
|
onBlur: blurHandler,
|
|
onContextMenu: contextMenuHandler,
|
|
onFocus: focusHandler,
|
|
onKeyDown: keyDownHandler,
|
|
ref: setRef2,
|
|
style: [disabled ? styles.disabled : styles.active, typeof style === "function" ? style(interactionState) : style],
|
|
tabIndex: _tabIndex
|
|
}), typeof children === "function" ? children(interactionState) : children);
|
|
}
|
|
__name(Pressable, "Pressable");
|
|
function useForceableState(forced) {
|
|
var _useState = (0, React44.useState)(false), bool = _useState[0], setBool = _useState[1];
|
|
return [bool || forced, setBool];
|
|
}
|
|
__name(useForceableState, "useForceableState");
|
|
var styles = _StyleSheet.default.create({
|
|
active: {
|
|
cursor: "pointer",
|
|
touchAction: "manipulation"
|
|
},
|
|
disabled: {
|
|
pointerEvents: "box-none"
|
|
}
|
|
});
|
|
var MemoedPressable = /* @__PURE__ */ (0, React44.memo)(/* @__PURE__ */ (0, React44.forwardRef)(Pressable));
|
|
MemoedPressable.displayName = "Pressable";
|
|
var _default = MemoedPressable;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/ProgressBar/index.js
|
|
var require_ProgressBar = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/ProgressBar/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["color", "indeterminate", "progress", "trackColor", "style"];
|
|
var ProgressBar = /* @__PURE__ */ React44.forwardRef((props, ref) => {
|
|
var _props$color = props.color, color2 = _props$color === void 0 ? "#1976D2" : _props$color, _props$indeterminate = props.indeterminate, indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate, _props$progress = props.progress, progress = _props$progress === void 0 ? 0 : _props$progress, _props$trackColor = props.trackColor, trackColor = _props$trackColor === void 0 ? "transparent" : _props$trackColor, style = props.style, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var percentageProgress = progress * 100;
|
|
var width = indeterminate ? "25%" : percentageProgress + "%";
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, other, {
|
|
"aria-valuemax": 100,
|
|
"aria-valuemin": 0,
|
|
"aria-valuenow": indeterminate ? null : percentageProgress,
|
|
ref,
|
|
role: "progressbar",
|
|
style: [styles.track, style, {
|
|
backgroundColor: trackColor
|
|
}]
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: [{
|
|
backgroundColor: color2,
|
|
width
|
|
}, styles.progress, indeterminate && styles.animation]
|
|
}));
|
|
});
|
|
ProgressBar.displayName = "ProgressBar";
|
|
var styles = _StyleSheet.default.create({
|
|
track: {
|
|
forcedColorAdjust: "none",
|
|
height: 5,
|
|
overflow: "hidden",
|
|
userSelect: "none",
|
|
zIndex: 0
|
|
},
|
|
progress: {
|
|
forcedColorAdjust: "none",
|
|
height: "100%",
|
|
zIndex: -1
|
|
},
|
|
animation: {
|
|
animationDuration: "1s",
|
|
animationKeyframes: [{
|
|
"0%": {
|
|
transform: "translateX(-100%)"
|
|
},
|
|
"100%": {
|
|
transform: "translateX(400%)"
|
|
}
|
|
}],
|
|
animationTimingFunction: "linear",
|
|
animationIterationCount: "infinite"
|
|
}
|
|
});
|
|
var _default = ProgressBar;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/SafeAreaView/index.js
|
|
var require_SafeAreaView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/SafeAreaView/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _canUseDom = _interopRequireDefault(require_canUseDom());
|
|
var _excluded = ["style"];
|
|
var cssFunction = function() {
|
|
if (_canUseDom.default && window.CSS && window.CSS.supports && window.CSS.supports("top: constant(safe-area-inset-top)")) {
|
|
return "constant";
|
|
}
|
|
return "env";
|
|
}();
|
|
var SafeAreaView = /* @__PURE__ */ React44.forwardRef((props, ref) => {
|
|
var style = props.style, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, {
|
|
ref,
|
|
style: [styles.root, style]
|
|
}));
|
|
});
|
|
SafeAreaView.displayName = "SafeAreaView";
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
paddingTop: cssFunction + "(safe-area-inset-top)",
|
|
paddingRight: cssFunction + "(safe-area-inset-right)",
|
|
paddingBottom: cssFunction + "(safe-area-inset-bottom)",
|
|
paddingLeft: cssFunction + "(safe-area-inset-left)"
|
|
}
|
|
});
|
|
var _default = SafeAreaView;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/StatusBar/index.js
|
|
var require_StatusBar = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/StatusBar/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var emptyFunction = /* @__PURE__ */ __name(() => {
|
|
}, "emptyFunction");
|
|
function StatusBar() {
|
|
return null;
|
|
}
|
|
__name(StatusBar, "StatusBar");
|
|
StatusBar.setBackgroundColor = emptyFunction;
|
|
StatusBar.setBarStyle = emptyFunction;
|
|
StatusBar.setHidden = emptyFunction;
|
|
StatusBar.setNetworkActivityIndicatorVisible = emptyFunction;
|
|
StatusBar.setTranslucent = emptyFunction;
|
|
var _default = StatusBar;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/multiplyStyleLengthValue/index.js
|
|
var require_multiplyStyleLengthValue = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/multiplyStyleLengthValue/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var CSS_UNIT_RE = /^[+-]?\d*(?:\.\d+)?(?:[Ee][+-]?\d+)?(%|\w*)/;
|
|
var getUnit = /* @__PURE__ */ __name((str) => str.match(CSS_UNIT_RE)[1], "getUnit");
|
|
var isNumeric = /* @__PURE__ */ __name((n) => {
|
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
}, "isNumeric");
|
|
var multiplyStyleLengthValue = /* @__PURE__ */ __name((value, multiple) => {
|
|
if (typeof value === "string") {
|
|
var number = parseFloat(value) * multiple;
|
|
var unit = getUnit(value);
|
|
return "" + number + unit;
|
|
} else if (isNumeric(value)) {
|
|
return value * multiple;
|
|
}
|
|
}, "multiplyStyleLengthValue");
|
|
var _default = multiplyStyleLengthValue;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Switch/index.js
|
|
var require_Switch = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Switch/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var _multiplyStyleLengthValue = _interopRequireDefault(require_multiplyStyleLengthValue());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _excluded = ["aria-label", "accessibilityLabel", "activeThumbColor", "activeTrackColor", "disabled", "onValueChange", "style", "thumbColor", "trackColor", "value"];
|
|
var emptyObject = {};
|
|
var thumbDefaultBoxShadow = "0px 1px 3px rgba(0,0,0,0.5)";
|
|
var thumbFocusedBoxShadow = thumbDefaultBoxShadow + ", 0 0 0 10px rgba(0,0,0,0.1)";
|
|
var defaultActiveTrackColor = "#A3D3CF";
|
|
var defaultTrackColor = "#939393";
|
|
var defaultDisabledTrackColor = "#D5D5D5";
|
|
var defaultActiveThumbColor = "#009688";
|
|
var defaultThumbColor = "#FAFAFA";
|
|
var defaultDisabledThumbColor = "#BDBDBD";
|
|
var Switch2 = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var ariaLabel = props["aria-label"], accessibilityLabel = props.accessibilityLabel, activeThumbColor = props.activeThumbColor, activeTrackColor = props.activeTrackColor, _props$disabled = props.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, onValueChange = props.onValueChange, _props$style = props.style, style = _props$style === void 0 ? emptyObject : _props$style, thumbColor = props.thumbColor, trackColor = props.trackColor, _props$value = props.value, value = _props$value === void 0 ? false : _props$value, other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var thumbRef = React44.useRef(null);
|
|
function handleChange(event) {
|
|
if (onValueChange != null) {
|
|
onValueChange(event.nativeEvent.target.checked);
|
|
}
|
|
}
|
|
__name(handleChange, "handleChange");
|
|
function handleFocusState(event) {
|
|
var isFocused = event.nativeEvent.type === "focus";
|
|
var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;
|
|
if (thumbRef.current != null) {
|
|
thumbRef.current.style.boxShadow = boxShadow;
|
|
}
|
|
}
|
|
__name(handleFocusState, "handleFocusState");
|
|
var _StyleSheet$flatten = _StyleSheet.default.flatten(style), styleHeight = _StyleSheet$flatten.height, styleWidth = _StyleSheet$flatten.width;
|
|
var height = styleHeight || "20px";
|
|
var minWidth = (0, _multiplyStyleLengthValue.default)(height, 2);
|
|
var width = styleWidth > minWidth ? styleWidth : minWidth;
|
|
var trackBorderRadius = (0, _multiplyStyleLengthValue.default)(height, 0.5);
|
|
var trackCurrentColor = function() {
|
|
if (value === true) {
|
|
if (trackColor != null && typeof trackColor === "object") {
|
|
return trackColor.true;
|
|
} else {
|
|
return activeTrackColor !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;
|
|
}
|
|
} else {
|
|
if (trackColor != null && typeof trackColor === "object") {
|
|
return trackColor.false;
|
|
} else {
|
|
return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;
|
|
}
|
|
}
|
|
}();
|
|
var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;
|
|
var thumbHeight = height;
|
|
var thumbWidth = thumbHeight;
|
|
var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {
|
|
height,
|
|
width
|
|
}];
|
|
var disabledTrackColor = function() {
|
|
if (value === true) {
|
|
if (typeof activeTrackColor === "string" && activeTrackColor != null || typeof trackColor === "object" && trackColor != null && trackColor.true) {
|
|
return trackCurrentColor;
|
|
} else {
|
|
return defaultDisabledTrackColor;
|
|
}
|
|
} else {
|
|
if (typeof trackColor === "string" && trackColor != null || typeof trackColor === "object" && trackColor != null && trackColor.false) {
|
|
return trackCurrentColor;
|
|
} else {
|
|
return defaultDisabledTrackColor;
|
|
}
|
|
}
|
|
}();
|
|
var disabledThumbColor = function() {
|
|
if (value === true) {
|
|
if (activeThumbColor == null) {
|
|
return defaultDisabledThumbColor;
|
|
} else {
|
|
return thumbCurrentColor;
|
|
}
|
|
} else {
|
|
if (thumbColor == null) {
|
|
return defaultDisabledThumbColor;
|
|
} else {
|
|
return thumbCurrentColor;
|
|
}
|
|
}
|
|
}();
|
|
var trackStyle = [styles.track, {
|
|
backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,
|
|
borderRadius: trackBorderRadius
|
|
}];
|
|
var thumbStyle = [styles.thumb, value && styles.thumbActive, {
|
|
backgroundColor: disabled ? disabledThumbColor : thumbCurrentColor,
|
|
height: thumbHeight,
|
|
marginStart: value ? (0, _multiplyStyleLengthValue.default)(thumbWidth, -1) : 0,
|
|
width: thumbWidth
|
|
}];
|
|
var nativeControl = (0, _createElement.default)("input", {
|
|
"aria-label": ariaLabel || accessibilityLabel,
|
|
checked: value,
|
|
disabled,
|
|
onBlur: handleFocusState,
|
|
onChange: handleChange,
|
|
onFocus: handleFocusState,
|
|
ref: forwardedRef,
|
|
style: [styles.nativeControl, styles.cursorInherit],
|
|
type: "checkbox",
|
|
role: "switch"
|
|
});
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, other, {
|
|
style: rootStyle
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
style: trackStyle
|
|
}), /* @__PURE__ */ React44.createElement(_View.default, {
|
|
ref: thumbRef,
|
|
style: thumbStyle
|
|
}), nativeControl);
|
|
});
|
|
Switch2.displayName = "Switch";
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
cursor: "pointer",
|
|
userSelect: "none"
|
|
},
|
|
cursorDefault: {
|
|
cursor: "default"
|
|
},
|
|
cursorInherit: {
|
|
cursor: "inherit"
|
|
},
|
|
track: (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
forcedColorAdjust: "none"
|
|
}, _StyleSheet.default.absoluteFillObject), {}, {
|
|
height: "70%",
|
|
margin: "auto",
|
|
transitionDuration: "0.1s",
|
|
width: "100%"
|
|
}),
|
|
thumb: {
|
|
forcedColorAdjust: "none",
|
|
alignSelf: "flex-start",
|
|
borderRadius: "100%",
|
|
boxShadow: thumbDefaultBoxShadow,
|
|
start: "0%",
|
|
transform: "translateZ(0)",
|
|
transitionDuration: "0.1s"
|
|
},
|
|
thumbActive: {
|
|
insetInlineStart: "100%"
|
|
},
|
|
nativeControl: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _StyleSheet.default.absoluteFillObject), {}, {
|
|
height: "100%",
|
|
margin: 0,
|
|
appearance: "none",
|
|
padding: 0,
|
|
width: "100%"
|
|
})
|
|
});
|
|
var _default = Switch2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/TextInput/index.js
|
|
var require_TextInput = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/TextInput/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
var forwardedProps = _interopRequireWildcard(require_forwardedProps());
|
|
var _pick = _interopRequireDefault(require_pick());
|
|
var _useElementLayout = _interopRequireDefault(require_useElementLayout());
|
|
var _useLayoutEffect = _interopRequireDefault(require_useLayoutEffect());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePlatformMethods = _interopRequireDefault(require_usePlatformMethods());
|
|
var _useResponderEvents = _interopRequireDefault(require_useResponderEvents());
|
|
var _useLocale = require_useLocale();
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _TextInputState = _interopRequireDefault(require_TextInputState());
|
|
var _warnOnce = require_warnOnce();
|
|
var isSelectionStale = /* @__PURE__ */ __name((node, selection) => {
|
|
var selectionEnd = node.selectionEnd, selectionStart = node.selectionStart;
|
|
var start = selection.start, end = selection.end;
|
|
return start !== selectionStart || end !== selectionEnd;
|
|
}, "isSelectionStale");
|
|
var setSelection = /* @__PURE__ */ __name((node, selection) => {
|
|
if (isSelectionStale(node, selection)) {
|
|
var start = selection.start, end = selection.end;
|
|
try {
|
|
node.setSelectionRange(start, end || start);
|
|
} catch (e) {
|
|
}
|
|
}
|
|
}, "setSelection");
|
|
var forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {
|
|
autoCapitalize: true,
|
|
autoComplete: true,
|
|
autoCorrect: true,
|
|
autoFocus: true,
|
|
defaultValue: true,
|
|
disabled: true,
|
|
lang: true,
|
|
maxLength: true,
|
|
onChange: true,
|
|
onScroll: true,
|
|
placeholder: true,
|
|
pointerEvents: true,
|
|
readOnly: true,
|
|
rows: true,
|
|
spellCheck: true,
|
|
value: true,
|
|
type: true
|
|
});
|
|
var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), "pickProps");
|
|
function isEventComposing(nativeEvent) {
|
|
return nativeEvent.isComposing || nativeEvent.keyCode === 229;
|
|
}
|
|
__name(isEventComposing, "isEventComposing");
|
|
var focusTimeout = null;
|
|
var TextInput2 = /* @__PURE__ */ React44.forwardRef((props, forwardedRef) => {
|
|
var _props$autoCapitalize = props.autoCapitalize, autoCapitalize = _props$autoCapitalize === void 0 ? "sentences" : _props$autoCapitalize, autoComplete = props.autoComplete, autoCompleteType = props.autoCompleteType, _props$autoCorrect = props.autoCorrect, autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect, blurOnSubmit = props.blurOnSubmit, caretHidden = props.caretHidden, clearTextOnFocus = props.clearTextOnFocus, dir = props.dir, editable = props.editable, enterKeyHint = props.enterKeyHint, inputMode = props.inputMode, keyboardType = props.keyboardType, _props$multiline = props.multiline, multiline = _props$multiline === void 0 ? false : _props$multiline, numberOfLines = props.numberOfLines, onBlur = props.onBlur, onChange = props.onChange, onChangeText = props.onChangeText, onContentSizeChange = props.onContentSizeChange, onFocus = props.onFocus, onKeyPress = props.onKeyPress, onLayout = props.onLayout, onMoveShouldSetResponder = props.onMoveShouldSetResponder, onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture, onResponderEnd = props.onResponderEnd, onResponderGrant = props.onResponderGrant, onResponderMove = props.onResponderMove, onResponderReject = props.onResponderReject, onResponderRelease = props.onResponderRelease, onResponderStart = props.onResponderStart, onResponderTerminate = props.onResponderTerminate, onResponderTerminationRequest = props.onResponderTerminationRequest, onScrollShouldSetResponder = props.onScrollShouldSetResponder, onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture, onSelectionChange = props.onSelectionChange, onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder = props.onStartShouldSetResponder, onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture, onSubmitEditing = props.onSubmitEditing, placeholderTextColor = props.placeholderTextColor, _props$readOnly = props.readOnly, readOnly = _props$readOnly === void 0 ? false : _props$readOnly, returnKeyType = props.returnKeyType, rows = props.rows, _props$secureTextEntr = props.secureTextEntry, secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr, selection = props.selection, selectTextOnFocus = props.selectTextOnFocus, spellCheck = props.spellCheck;
|
|
var type;
|
|
var _inputMode;
|
|
if (inputMode != null) {
|
|
_inputMode = inputMode;
|
|
if (inputMode === "email") {
|
|
type = "email";
|
|
} else if (inputMode === "tel") {
|
|
type = "tel";
|
|
} else if (inputMode === "search") {
|
|
type = "search";
|
|
} else if (inputMode === "url") {
|
|
type = "url";
|
|
} else {
|
|
type = "text";
|
|
}
|
|
} else if (keyboardType != null) {
|
|
(0, _warnOnce.warnOnce)("keyboardType", "keyboardType is deprecated. Use inputMode.");
|
|
switch (keyboardType) {
|
|
case "email-address":
|
|
type = "email";
|
|
break;
|
|
case "number-pad":
|
|
case "numeric":
|
|
_inputMode = "numeric";
|
|
break;
|
|
case "decimal-pad":
|
|
_inputMode = "decimal";
|
|
break;
|
|
case "phone-pad":
|
|
type = "tel";
|
|
break;
|
|
case "search":
|
|
case "web-search":
|
|
type = "search";
|
|
break;
|
|
case "url":
|
|
type = "url";
|
|
break;
|
|
default:
|
|
type = "text";
|
|
}
|
|
}
|
|
if (secureTextEntry) {
|
|
type = "password";
|
|
}
|
|
var dimensions = React44.useRef({
|
|
height: null,
|
|
width: null
|
|
});
|
|
var hostRef = React44.useRef(null);
|
|
var prevSelection = React44.useRef(null);
|
|
var prevSecureTextEntry = React44.useRef(false);
|
|
React44.useEffect(() => {
|
|
if (hostRef.current && prevSelection.current) {
|
|
setSelection(hostRef.current, prevSelection.current);
|
|
}
|
|
prevSecureTextEntry.current = secureTextEntry;
|
|
}, [secureTextEntry]);
|
|
var handleContentSizeChange = React44.useCallback((hostNode) => {
|
|
if (multiline && onContentSizeChange && hostNode != null) {
|
|
var newHeight = hostNode.scrollHeight;
|
|
var newWidth = hostNode.scrollWidth;
|
|
if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {
|
|
dimensions.current.height = newHeight;
|
|
dimensions.current.width = newWidth;
|
|
onContentSizeChange({
|
|
nativeEvent: {
|
|
contentSize: {
|
|
height: dimensions.current.height,
|
|
width: dimensions.current.width
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}, [multiline, onContentSizeChange]);
|
|
var imperativeRef = React44.useMemo(() => (hostNode) => {
|
|
if (hostNode != null) {
|
|
hostNode.clear = function() {
|
|
if (hostNode != null) {
|
|
hostNode.value = "";
|
|
}
|
|
};
|
|
hostNode.isFocused = function() {
|
|
return hostNode != null && _TextInputState.default.currentlyFocusedField() === hostNode;
|
|
};
|
|
handleContentSizeChange(hostNode);
|
|
}
|
|
}, [handleContentSizeChange]);
|
|
function handleBlur(e) {
|
|
_TextInputState.default._currentlyFocusedNode = null;
|
|
if (onBlur) {
|
|
e.nativeEvent.text = e.target.value;
|
|
onBlur(e);
|
|
}
|
|
}
|
|
__name(handleBlur, "handleBlur");
|
|
function handleChange(e) {
|
|
var hostNode = e.target;
|
|
var text = hostNode.value;
|
|
e.nativeEvent.text = text;
|
|
handleContentSizeChange(hostNode);
|
|
if (onChange) {
|
|
onChange(e);
|
|
}
|
|
if (onChangeText) {
|
|
onChangeText(text);
|
|
}
|
|
}
|
|
__name(handleChange, "handleChange");
|
|
function handleFocus(e) {
|
|
var hostNode = e.target;
|
|
if (onFocus) {
|
|
e.nativeEvent.text = hostNode.value;
|
|
onFocus(e);
|
|
}
|
|
if (hostNode != null) {
|
|
_TextInputState.default._currentlyFocusedNode = hostNode;
|
|
if (clearTextOnFocus) {
|
|
hostNode.value = "";
|
|
}
|
|
if (selectTextOnFocus) {
|
|
if (focusTimeout != null) {
|
|
clearTimeout(focusTimeout);
|
|
}
|
|
focusTimeout = setTimeout(() => {
|
|
if (hostNode != null) {
|
|
hostNode.select();
|
|
}
|
|
}, 0);
|
|
}
|
|
}
|
|
}
|
|
__name(handleFocus, "handleFocus");
|
|
function handleKeyDown(e) {
|
|
var hostNode = e.target;
|
|
e.stopPropagation();
|
|
var blurOnSubmitDefault = !multiline;
|
|
var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;
|
|
var nativeEvent = e.nativeEvent;
|
|
var isComposing = isEventComposing(nativeEvent);
|
|
if (onKeyPress) {
|
|
onKeyPress(e);
|
|
}
|
|
if (e.key === "Enter" && !e.shiftKey && // Do not call submit if composition is occuring.
|
|
!isComposing && !e.isDefaultPrevented()) {
|
|
if ((blurOnSubmit || !multiline) && onSubmitEditing) {
|
|
e.preventDefault();
|
|
nativeEvent.text = e.target.value;
|
|
onSubmitEditing(e);
|
|
}
|
|
if (shouldBlurOnSubmit && hostNode != null) {
|
|
setTimeout(() => hostNode.blur(), 0);
|
|
}
|
|
}
|
|
}
|
|
__name(handleKeyDown, "handleKeyDown");
|
|
function handleSelectionChange(e) {
|
|
try {
|
|
var _e$target = e.target, selectionStart = _e$target.selectionStart, selectionEnd = _e$target.selectionEnd;
|
|
var _selection = {
|
|
start: selectionStart,
|
|
end: selectionEnd
|
|
};
|
|
if (onSelectionChange) {
|
|
e.nativeEvent.selection = _selection;
|
|
e.nativeEvent.text = e.target.value;
|
|
onSelectionChange(e);
|
|
}
|
|
if (prevSecureTextEntry.current === secureTextEntry) {
|
|
prevSelection.current = _selection;
|
|
}
|
|
} catch (e2) {
|
|
}
|
|
}
|
|
__name(handleSelectionChange, "handleSelectionChange");
|
|
(0, _useLayoutEffect.default)(() => {
|
|
var node = hostRef.current;
|
|
if (node != null && selection != null) {
|
|
setSelection(node, selection);
|
|
}
|
|
if (document.activeElement === node) {
|
|
_TextInputState.default._currentlyFocusedNode = node;
|
|
}
|
|
}, [hostRef, selection]);
|
|
var component = multiline ? "textarea" : "input";
|
|
(0, _useElementLayout.default)(hostRef, onLayout);
|
|
(0, _useResponderEvents.default)(hostRef, {
|
|
onMoveShouldSetResponder,
|
|
onMoveShouldSetResponderCapture,
|
|
onResponderEnd,
|
|
onResponderGrant,
|
|
onResponderMove,
|
|
onResponderReject,
|
|
onResponderRelease,
|
|
onResponderStart,
|
|
onResponderTerminate,
|
|
onResponderTerminationRequest,
|
|
onScrollShouldSetResponder,
|
|
onScrollShouldSetResponderCapture,
|
|
onSelectionChangeShouldSetResponder,
|
|
onSelectionChangeShouldSetResponderCapture,
|
|
onStartShouldSetResponder,
|
|
onStartShouldSetResponderCapture
|
|
});
|
|
var _useLocaleContext = (0, _useLocale.useLocaleContext)(), contextDirection = _useLocaleContext.direction;
|
|
var supportedProps = pickProps(props);
|
|
supportedProps.autoCapitalize = autoCapitalize;
|
|
supportedProps.autoComplete = autoComplete || autoCompleteType || "on";
|
|
supportedProps.autoCorrect = autoCorrect ? "on" : "off";
|
|
supportedProps.dir = dir !== void 0 ? dir : "auto";
|
|
if (returnKeyType != null) {
|
|
(0, _warnOnce.warnOnce)("returnKeyType", "returnKeyType is deprecated. Use enterKeyHint.");
|
|
}
|
|
supportedProps.enterKeyHint = enterKeyHint || returnKeyType;
|
|
supportedProps.inputMode = _inputMode;
|
|
supportedProps.onBlur = handleBlur;
|
|
supportedProps.onChange = handleChange;
|
|
supportedProps.onFocus = handleFocus;
|
|
supportedProps.onKeyDown = handleKeyDown;
|
|
supportedProps.onSelect = handleSelectionChange;
|
|
if (editable != null) {
|
|
(0, _warnOnce.warnOnce)("editable", "editable is deprecated. Use readOnly.");
|
|
}
|
|
supportedProps.readOnly = readOnly === true || editable === false;
|
|
if (numberOfLines != null) {
|
|
(0, _warnOnce.warnOnce)("numberOfLines", "TextInput numberOfLines is deprecated. Use rows.");
|
|
}
|
|
supportedProps.rows = multiline ? rows != null ? rows : numberOfLines : 1;
|
|
supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;
|
|
supportedProps.style = [{
|
|
"--placeholderTextColor": placeholderTextColor
|
|
}, styles.textinput$raw, styles.placeholder, props.style, caretHidden && styles.caretHidden];
|
|
supportedProps.type = multiline ? void 0 : type;
|
|
var platformMethodsRef = (0, _usePlatformMethods.default)(supportedProps);
|
|
var setRef2 = (0, _useMergeRefs.default)(hostRef, platformMethodsRef, imperativeRef, forwardedRef);
|
|
supportedProps.ref = setRef2;
|
|
var langDirection = props.lang != null ? (0, _useLocale.getLocaleDirection)(props.lang) : null;
|
|
var componentDirection = props.dir || langDirection;
|
|
var writingDirection = componentDirection || contextDirection;
|
|
var element = (0, _createElement.default)(component, supportedProps, {
|
|
writingDirection
|
|
});
|
|
return element;
|
|
});
|
|
TextInput2.displayName = "TextInput";
|
|
TextInput2.State = _TextInputState.default;
|
|
var styles = _StyleSheet.default.create({
|
|
textinput$raw: {
|
|
MozAppearance: "textfield",
|
|
WebkitAppearance: "none",
|
|
backgroundColor: "transparent",
|
|
border: "0 solid black",
|
|
borderRadius: 0,
|
|
boxSizing: "border-box",
|
|
font: "14px System",
|
|
margin: 0,
|
|
padding: 0,
|
|
resize: "none"
|
|
},
|
|
placeholder: {
|
|
placeholderTextColor: "var(--placeholderTextColor)"
|
|
},
|
|
caretHidden: {
|
|
caretColor: "transparent"
|
|
}
|
|
});
|
|
var _default = TextInput2;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/vendor/react-native/PooledClass/index.js
|
|
var require_PooledClass = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/vendor/react-native/PooledClass/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _invariant = _interopRequireDefault(require_invariant());
|
|
var twoArgumentPooler = /* @__PURE__ */ __name(function twoArgumentPooler2(a1, a2) {
|
|
var Klass = this;
|
|
if (Klass.instancePool.length) {
|
|
var instance = Klass.instancePool.pop();
|
|
Klass.call(instance, a1, a2);
|
|
return instance;
|
|
} else {
|
|
return new Klass(a1, a2);
|
|
}
|
|
}, "twoArgumentPooler");
|
|
var standardReleaser = /* @__PURE__ */ __name(function standardReleaser2(instance) {
|
|
var Klass = this;
|
|
instance.destructor();
|
|
if (Klass.instancePool.length < Klass.poolSize) {
|
|
Klass.instancePool.push(instance);
|
|
}
|
|
}, "standardReleaser");
|
|
var DEFAULT_POOL_SIZE = 10;
|
|
var DEFAULT_POOLER = twoArgumentPooler;
|
|
var addPoolingTo = /* @__PURE__ */ __name(function addPoolingTo2(CopyConstructor, pooler) {
|
|
var NewKlass = CopyConstructor;
|
|
NewKlass.instancePool = [];
|
|
NewKlass.getPooled = pooler || DEFAULT_POOLER;
|
|
if (!NewKlass.poolSize) {
|
|
NewKlass.poolSize = DEFAULT_POOL_SIZE;
|
|
}
|
|
NewKlass.release = standardReleaser;
|
|
return NewKlass;
|
|
}, "addPoolingTo");
|
|
var PooledClass = {
|
|
addPoolingTo,
|
|
twoArgumentPooler
|
|
};
|
|
var _default = PooledClass;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Touchable/BoundingDimensions.js
|
|
var require_BoundingDimensions = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Touchable/BoundingDimensions.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _PooledClass = _interopRequireDefault(require_PooledClass());
|
|
var twoArgumentPooler = _PooledClass.default.twoArgumentPooler;
|
|
function BoundingDimensions(width, height) {
|
|
this.width = width;
|
|
this.height = height;
|
|
}
|
|
__name(BoundingDimensions, "BoundingDimensions");
|
|
BoundingDimensions.prototype.destructor = function() {
|
|
this.width = null;
|
|
this.height = null;
|
|
};
|
|
BoundingDimensions.getPooledFromElement = function(element) {
|
|
return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);
|
|
};
|
|
_PooledClass.default.addPoolingTo(BoundingDimensions, twoArgumentPooler);
|
|
var _default = BoundingDimensions;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Touchable/Position.js
|
|
var require_Position = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Touchable/Position.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _PooledClass = _interopRequireDefault(require_PooledClass());
|
|
var twoArgumentPooler = _PooledClass.default.twoArgumentPooler;
|
|
function Position(left, top) {
|
|
this.left = left;
|
|
this.top = top;
|
|
}
|
|
__name(Position, "Position");
|
|
Position.prototype.destructor = function() {
|
|
this.left = null;
|
|
this.top = null;
|
|
};
|
|
_PooledClass.default.addPoolingTo(Position, twoArgumentPooler);
|
|
var _default = Position;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/Touchable/index.js
|
|
var require_Touchable = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/Touchable/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var _objectSpread2 = _interopRequireDefault(require_objectSpread2());
|
|
var _AccessibilityUtil = _interopRequireDefault(require_AccessibilityUtil());
|
|
var _BoundingDimensions = _interopRequireDefault(require_BoundingDimensions());
|
|
var _normalizeColors = _interopRequireDefault(require_normalize_colors());
|
|
var _Position = _interopRequireDefault(require_Position());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _warnOnce = require_warnOnce();
|
|
var extractSingleTouch = /* @__PURE__ */ __name((nativeEvent) => {
|
|
var touches = nativeEvent.touches;
|
|
var changedTouches = nativeEvent.changedTouches;
|
|
var hasTouches = touches && touches.length > 0;
|
|
var hasChangedTouches = changedTouches && changedTouches.length > 0;
|
|
return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;
|
|
}, "extractSingleTouch");
|
|
var States = {
|
|
NOT_RESPONDER: "NOT_RESPONDER",
|
|
// Not the responder
|
|
RESPONDER_INACTIVE_PRESS_IN: "RESPONDER_INACTIVE_PRESS_IN",
|
|
// Responder, inactive, in the `PressRect`
|
|
RESPONDER_INACTIVE_PRESS_OUT: "RESPONDER_INACTIVE_PRESS_OUT",
|
|
// Responder, inactive, out of `PressRect`
|
|
RESPONDER_ACTIVE_PRESS_IN: "RESPONDER_ACTIVE_PRESS_IN",
|
|
// Responder, active, in the `PressRect`
|
|
RESPONDER_ACTIVE_PRESS_OUT: "RESPONDER_ACTIVE_PRESS_OUT",
|
|
// Responder, active, out of `PressRect`
|
|
RESPONDER_ACTIVE_LONG_PRESS_IN: "RESPONDER_ACTIVE_LONG_PRESS_IN",
|
|
// Responder, active, in the `PressRect`, after long press threshold
|
|
RESPONDER_ACTIVE_LONG_PRESS_OUT: "RESPONDER_ACTIVE_LONG_PRESS_OUT",
|
|
// Responder, active, out of `PressRect`, after long press threshold
|
|
ERROR: "ERROR"
|
|
};
|
|
var baseStatesConditions = {
|
|
NOT_RESPONDER: false,
|
|
RESPONDER_INACTIVE_PRESS_IN: false,
|
|
RESPONDER_INACTIVE_PRESS_OUT: false,
|
|
RESPONDER_ACTIVE_PRESS_IN: false,
|
|
RESPONDER_ACTIVE_PRESS_OUT: false,
|
|
RESPONDER_ACTIVE_LONG_PRESS_IN: false,
|
|
RESPONDER_ACTIVE_LONG_PRESS_OUT: false,
|
|
ERROR: false
|
|
};
|
|
var IsActive = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {
|
|
RESPONDER_ACTIVE_PRESS_OUT: true,
|
|
RESPONDER_ACTIVE_PRESS_IN: true
|
|
});
|
|
var IsPressingIn = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {
|
|
RESPONDER_INACTIVE_PRESS_IN: true,
|
|
RESPONDER_ACTIVE_PRESS_IN: true,
|
|
RESPONDER_ACTIVE_LONG_PRESS_IN: true
|
|
});
|
|
var IsLongPressingIn = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseStatesConditions), {}, {
|
|
RESPONDER_ACTIVE_LONG_PRESS_IN: true
|
|
});
|
|
var Signals = {
|
|
DELAY: "DELAY",
|
|
RESPONDER_GRANT: "RESPONDER_GRANT",
|
|
RESPONDER_RELEASE: "RESPONDER_RELEASE",
|
|
RESPONDER_TERMINATED: "RESPONDER_TERMINATED",
|
|
ENTER_PRESS_RECT: "ENTER_PRESS_RECT",
|
|
LEAVE_PRESS_RECT: "LEAVE_PRESS_RECT",
|
|
LONG_PRESS_DETECTED: "LONG_PRESS_DETECTED"
|
|
};
|
|
var Transitions = {
|
|
NOT_RESPONDER: {
|
|
DELAY: States.ERROR,
|
|
RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,
|
|
RESPONDER_RELEASE: States.ERROR,
|
|
RESPONDER_TERMINATED: States.ERROR,
|
|
ENTER_PRESS_RECT: States.ERROR,
|
|
LEAVE_PRESS_RECT: States.ERROR,
|
|
LONG_PRESS_DETECTED: States.ERROR
|
|
},
|
|
RESPONDER_INACTIVE_PRESS_IN: {
|
|
DELAY: States.RESPONDER_ACTIVE_PRESS_IN,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.ERROR
|
|
},
|
|
RESPONDER_INACTIVE_PRESS_OUT: {
|
|
DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.ERROR
|
|
},
|
|
RESPONDER_ACTIVE_PRESS_IN: {
|
|
DELAY: States.ERROR,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN
|
|
},
|
|
RESPONDER_ACTIVE_PRESS_OUT: {
|
|
DELAY: States.ERROR,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.ERROR
|
|
},
|
|
RESPONDER_ACTIVE_LONG_PRESS_IN: {
|
|
DELAY: States.ERROR,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN
|
|
},
|
|
RESPONDER_ACTIVE_LONG_PRESS_OUT: {
|
|
DELAY: States.ERROR,
|
|
RESPONDER_GRANT: States.ERROR,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,
|
|
LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,
|
|
LONG_PRESS_DETECTED: States.ERROR
|
|
},
|
|
error: {
|
|
DELAY: States.NOT_RESPONDER,
|
|
RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,
|
|
RESPONDER_RELEASE: States.NOT_RESPONDER,
|
|
RESPONDER_TERMINATED: States.NOT_RESPONDER,
|
|
ENTER_PRESS_RECT: States.NOT_RESPONDER,
|
|
LEAVE_PRESS_RECT: States.NOT_RESPONDER,
|
|
LONG_PRESS_DETECTED: States.NOT_RESPONDER
|
|
}
|
|
};
|
|
var HIGHLIGHT_DELAY_MS = 130;
|
|
var PRESS_EXPAND_PX = 20;
|
|
var LONG_PRESS_THRESHOLD = 500;
|
|
var LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;
|
|
var LONG_PRESS_ALLOWED_MOVEMENT = 10;
|
|
var TouchableMixin = {
|
|
// HACK (part 1): basic support for touchable interactions using a keyboard
|
|
componentDidMount: /* @__PURE__ */ __name(function componentDidMount() {
|
|
(0, _warnOnce.warnOnce)("TouchableMixin", "TouchableMixin is deprecated. Please use Pressable.");
|
|
var touchableNode = this.getTouchableNode && this.getTouchableNode();
|
|
if (touchableNode && touchableNode.addEventListener) {
|
|
this._touchableBlurListener = (e) => {
|
|
if (this._isTouchableKeyboardActive) {
|
|
if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {
|
|
this.touchableHandleResponderTerminate({
|
|
nativeEvent: e
|
|
});
|
|
}
|
|
this._isTouchableKeyboardActive = false;
|
|
}
|
|
};
|
|
touchableNode.addEventListener("blur", this._touchableBlurListener);
|
|
}
|
|
}, "componentDidMount"),
|
|
/**
|
|
* Clear all timeouts on unmount
|
|
*/
|
|
componentWillUnmount: /* @__PURE__ */ __name(function componentWillUnmount() {
|
|
var touchableNode = this.getTouchableNode && this.getTouchableNode();
|
|
if (touchableNode && touchableNode.addEventListener) {
|
|
touchableNode.removeEventListener("blur", this._touchableBlurListener);
|
|
}
|
|
this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);
|
|
this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);
|
|
this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);
|
|
this.pressInLocation = null;
|
|
this.state.touchable.responderID = null;
|
|
}, "componentWillUnmount"),
|
|
/**
|
|
* It's prefer that mixins determine state in this way, having the class
|
|
* explicitly mix the state in the one and only `getInitialState` method.
|
|
*
|
|
* @return {object} State object to be placed inside of
|
|
* `this.state.touchable`.
|
|
*/
|
|
touchableGetInitialState: /* @__PURE__ */ __name(function touchableGetInitialState() {
|
|
return {
|
|
touchable: {
|
|
touchState: void 0,
|
|
responderID: null
|
|
}
|
|
};
|
|
}, "touchableGetInitialState"),
|
|
// ==== Hooks to Gesture Responder system ====
|
|
/**
|
|
* Must return true if embedded in a native platform scroll view.
|
|
*/
|
|
touchableHandleResponderTerminationRequest: /* @__PURE__ */ __name(function touchableHandleResponderTerminationRequest() {
|
|
return !this.props.rejectResponderTermination;
|
|
}, "touchableHandleResponderTerminationRequest"),
|
|
/**
|
|
* Must return true to start the process of `Touchable`.
|
|
*/
|
|
touchableHandleStartShouldSetResponder: /* @__PURE__ */ __name(function touchableHandleStartShouldSetResponder() {
|
|
return !this.props.disabled;
|
|
}, "touchableHandleStartShouldSetResponder"),
|
|
/**
|
|
* Return true to cancel press on long press.
|
|
*/
|
|
touchableLongPressCancelsPress: /* @__PURE__ */ __name(function touchableLongPressCancelsPress() {
|
|
return true;
|
|
}, "touchableLongPressCancelsPress"),
|
|
/**
|
|
* Place as callback for a DOM element's `onResponderGrant` event.
|
|
* @param {SyntheticEvent} e Synthetic event from event system.
|
|
*
|
|
*/
|
|
touchableHandleResponderGrant: /* @__PURE__ */ __name(function touchableHandleResponderGrant(e) {
|
|
var dispatchID = e.currentTarget;
|
|
e.persist();
|
|
this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);
|
|
this.pressOutDelayTimeout = null;
|
|
this.state.touchable.touchState = States.NOT_RESPONDER;
|
|
this.state.touchable.responderID = dispatchID;
|
|
this._receiveSignal(Signals.RESPONDER_GRANT, e);
|
|
var delayMS = this.touchableGetHighlightDelayMS !== void 0 ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;
|
|
delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;
|
|
if (delayMS !== 0) {
|
|
this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);
|
|
} else {
|
|
this._handleDelay(e);
|
|
}
|
|
var longDelayMS = this.touchableGetLongPressDelayMS !== void 0 ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;
|
|
longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;
|
|
this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);
|
|
}, "touchableHandleResponderGrant"),
|
|
/**
|
|
* Place as callback for a DOM element's `onResponderRelease` event.
|
|
*/
|
|
touchableHandleResponderRelease: /* @__PURE__ */ __name(function touchableHandleResponderRelease(e) {
|
|
this.pressInLocation = null;
|
|
this._receiveSignal(Signals.RESPONDER_RELEASE, e);
|
|
}, "touchableHandleResponderRelease"),
|
|
/**
|
|
* Place as callback for a DOM element's `onResponderTerminate` event.
|
|
*/
|
|
touchableHandleResponderTerminate: /* @__PURE__ */ __name(function touchableHandleResponderTerminate(e) {
|
|
this.pressInLocation = null;
|
|
this._receiveSignal(Signals.RESPONDER_TERMINATED, e);
|
|
}, "touchableHandleResponderTerminate"),
|
|
/**
|
|
* Place as callback for a DOM element's `onResponderMove` event.
|
|
*/
|
|
touchableHandleResponderMove: /* @__PURE__ */ __name(function touchableHandleResponderMove(e) {
|
|
if (!this.state.touchable.positionOnActivate) {
|
|
return;
|
|
}
|
|
var positionOnActivate = this.state.touchable.positionOnActivate;
|
|
var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;
|
|
var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {
|
|
left: PRESS_EXPAND_PX,
|
|
right: PRESS_EXPAND_PX,
|
|
top: PRESS_EXPAND_PX,
|
|
bottom: PRESS_EXPAND_PX
|
|
};
|
|
var pressExpandLeft = pressRectOffset.left;
|
|
var pressExpandTop = pressRectOffset.top;
|
|
var pressExpandRight = pressRectOffset.right;
|
|
var pressExpandBottom = pressRectOffset.bottom;
|
|
var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;
|
|
if (hitSlop) {
|
|
pressExpandLeft += hitSlop.left || 0;
|
|
pressExpandTop += hitSlop.top || 0;
|
|
pressExpandRight += hitSlop.right || 0;
|
|
pressExpandBottom += hitSlop.bottom || 0;
|
|
}
|
|
var touch = extractSingleTouch(e.nativeEvent);
|
|
var pageX = touch && touch.pageX;
|
|
var pageY = touch && touch.pageY;
|
|
if (this.pressInLocation) {
|
|
var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);
|
|
if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {
|
|
this._cancelLongPressDelayTimeout();
|
|
}
|
|
}
|
|
var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;
|
|
if (isTouchWithinActive) {
|
|
var prevState = this.state.touchable.touchState;
|
|
this._receiveSignal(Signals.ENTER_PRESS_RECT, e);
|
|
var curState = this.state.touchable.touchState;
|
|
if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {
|
|
this._cancelLongPressDelayTimeout();
|
|
}
|
|
} else {
|
|
this._cancelLongPressDelayTimeout();
|
|
this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);
|
|
}
|
|
}, "touchableHandleResponderMove"),
|
|
/**
|
|
* Invoked when the item receives focus. Mixers might override this to
|
|
* visually distinguish the `VisualRect` so that the user knows that it
|
|
* currently has the focus. Most platforms only support a single element being
|
|
* focused at a time, in which case there may have been a previously focused
|
|
* element that was blurred just prior to this. This can be overridden when
|
|
* using `Touchable.Mixin.withoutDefaultFocusAndBlur`.
|
|
*/
|
|
touchableHandleFocus: /* @__PURE__ */ __name(function touchableHandleFocus2(e) {
|
|
this.props.onFocus && this.props.onFocus(e);
|
|
}, "touchableHandleFocus"),
|
|
/**
|
|
* Invoked when the item loses focus. Mixers might override this to
|
|
* visually distinguish the `VisualRect` so that the user knows that it
|
|
* no longer has focus. Most platforms only support a single element being
|
|
* focused at a time, in which case the focus may have moved to another.
|
|
* This can be overridden when using
|
|
* `Touchable.Mixin.withoutDefaultFocusAndBlur`.
|
|
*/
|
|
touchableHandleBlur: /* @__PURE__ */ __name(function touchableHandleBlur2(e) {
|
|
this.props.onBlur && this.props.onBlur(e);
|
|
}, "touchableHandleBlur"),
|
|
// ==== Abstract Application Callbacks ====
|
|
/**
|
|
* Invoked when the item should be highlighted. Mixers should implement this
|
|
* to visually distinguish the `VisualRect` so that the user knows that
|
|
* releasing a touch will result in a "selection" (analog to click).
|
|
*
|
|
* @abstract
|
|
* touchableHandleActivePressIn: function,
|
|
*/
|
|
/**
|
|
* Invoked when the item is "active" (in that it is still eligible to become
|
|
* a "select") but the touch has left the `PressRect`. Usually the mixer will
|
|
* want to unhighlight the `VisualRect`. If the user (while pressing) moves
|
|
* back into the `PressRect` `touchableHandleActivePressIn` will be invoked
|
|
* again and the mixer should probably highlight the `VisualRect` again. This
|
|
* event will not fire on an `touchEnd/mouseUp` event, only move events while
|
|
* the user is depressing the mouse/touch.
|
|
*
|
|
* @abstract
|
|
* touchableHandleActivePressOut: function
|
|
*/
|
|
/**
|
|
* Invoked when the item is "selected" - meaning the interaction ended by
|
|
* letting up while the item was either in the state
|
|
* `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.
|
|
*
|
|
* @abstract
|
|
* touchableHandlePress: function
|
|
*/
|
|
/**
|
|
* Invoked when the item is long pressed - meaning the interaction ended by
|
|
* letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If
|
|
* `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will
|
|
* be called as it normally is. If `touchableHandleLongPress` is provided, by
|
|
* default any `touchableHandlePress` callback will not be invoked. To
|
|
* override this default behavior, override `touchableLongPressCancelsPress`
|
|
* to return false. As a result, `touchableHandlePress` will be called when
|
|
* lifting up, even if `touchableHandleLongPress` has also been called.
|
|
*
|
|
* @abstract
|
|
* touchableHandleLongPress: function
|
|
*/
|
|
/**
|
|
* Returns the number of millis to wait before triggering a highlight.
|
|
*
|
|
* @abstract
|
|
* touchableGetHighlightDelayMS: function
|
|
*/
|
|
/**
|
|
* Returns the amount to extend the `HitRect` into the `PressRect`. Positive
|
|
* numbers mean the size expands outwards.
|
|
*
|
|
* @abstract
|
|
* touchableGetPressRectOffset: function
|
|
*/
|
|
// ==== Internal Logic ====
|
|
/**
|
|
* Measures the `HitRect` node on activation. The Bounding rectangle is with
|
|
* respect to viewport - not page, so adding the `pageXOffset/pageYOffset`
|
|
* should result in points that are in the same coordinate system as an
|
|
* event's `globalX/globalY` data values.
|
|
*
|
|
* - Consider caching this for the lifetime of the component, or possibly
|
|
* being able to share this cache between any `ScrollMap` view.
|
|
*
|
|
* @sideeffects
|
|
* @private
|
|
*/
|
|
_remeasureMetricsOnActivation: /* @__PURE__ */ __name(function _remeasureMetricsOnActivation() {
|
|
var tag = this.state.touchable.responderID;
|
|
if (tag == null) {
|
|
return;
|
|
}
|
|
_UIManager.default.measure(tag, this._handleQueryLayout);
|
|
}, "_remeasureMetricsOnActivation"),
|
|
_handleQueryLayout: /* @__PURE__ */ __name(function _handleQueryLayout(l, t, w, h, globalX, globalY) {
|
|
if (!l && !t && !w && !h && !globalX && !globalY) {
|
|
return;
|
|
}
|
|
this.state.touchable.positionOnActivate && _Position.default.release(this.state.touchable.positionOnActivate);
|
|
this.state.touchable.dimensionsOnActivate && // $FlowFixMe
|
|
_BoundingDimensions.default.release(this.state.touchable.dimensionsOnActivate);
|
|
this.state.touchable.positionOnActivate = _Position.default.getPooled(globalX, globalY);
|
|
this.state.touchable.dimensionsOnActivate = _BoundingDimensions.default.getPooled(w, h);
|
|
}, "_handleQueryLayout"),
|
|
_handleDelay: /* @__PURE__ */ __name(function _handleDelay(e) {
|
|
this.touchableDelayTimeout = null;
|
|
this._receiveSignal(Signals.DELAY, e);
|
|
}, "_handleDelay"),
|
|
_handleLongDelay: /* @__PURE__ */ __name(function _handleLongDelay(e) {
|
|
this.longPressDelayTimeout = null;
|
|
var curState = this.state.touchable.touchState;
|
|
if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {
|
|
console.error("Attempted to transition from state `" + curState + "` to `" + States.RESPONDER_ACTIVE_LONG_PRESS_IN + "`, which is not supported. This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.");
|
|
} else {
|
|
this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);
|
|
}
|
|
}, "_handleLongDelay"),
|
|
/**
|
|
* Receives a state machine signal, performs side effects of the transition
|
|
* and stores the new state. Validates the transition as well.
|
|
*
|
|
* @param {Signals} signal State machine signal.
|
|
* @throws Error if invalid state transition or unrecognized signal.
|
|
* @sideeffects
|
|
*/
|
|
_receiveSignal: /* @__PURE__ */ __name(function _receiveSignal(signal, e) {
|
|
var responderID = this.state.touchable.responderID;
|
|
var curState = this.state.touchable.touchState;
|
|
var nextState = Transitions[curState] && Transitions[curState][signal];
|
|
if (!responderID && signal === Signals.RESPONDER_RELEASE) {
|
|
return;
|
|
}
|
|
if (!nextState) {
|
|
throw new Error("Unrecognized signal `" + signal + "` or state `" + curState + "` for Touchable responder `" + responderID + "`");
|
|
}
|
|
if (nextState === States.ERROR) {
|
|
throw new Error("Touchable cannot transition from `" + curState + "` to `" + signal + "` for responder `" + responderID + "`");
|
|
}
|
|
if (curState !== nextState) {
|
|
this._performSideEffectsForTransition(curState, nextState, signal, e);
|
|
this.state.touchable.touchState = nextState;
|
|
}
|
|
}, "_receiveSignal"),
|
|
_cancelLongPressDelayTimeout: /* @__PURE__ */ __name(function _cancelLongPressDelayTimeout() {
|
|
this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);
|
|
this.longPressDelayTimeout = null;
|
|
}, "_cancelLongPressDelayTimeout"),
|
|
_isHighlight: /* @__PURE__ */ __name(function _isHighlight(state) {
|
|
return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;
|
|
}, "_isHighlight"),
|
|
_savePressInLocation: /* @__PURE__ */ __name(function _savePressInLocation(e) {
|
|
var touch = extractSingleTouch(e.nativeEvent);
|
|
var pageX = touch && touch.pageX;
|
|
var pageY = touch && touch.pageY;
|
|
var locationX = touch && touch.locationX;
|
|
var locationY = touch && touch.locationY;
|
|
this.pressInLocation = {
|
|
pageX,
|
|
pageY,
|
|
locationX,
|
|
locationY
|
|
};
|
|
}, "_savePressInLocation"),
|
|
_getDistanceBetweenPoints: /* @__PURE__ */ __name(function _getDistanceBetweenPoints(aX, aY, bX, bY) {
|
|
var deltaX = aX - bX;
|
|
var deltaY = aY - bY;
|
|
return Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
}, "_getDistanceBetweenPoints"),
|
|
/**
|
|
* Will perform a transition between touchable states, and identify any
|
|
* highlighting or unhighlighting that must be performed for this particular
|
|
* transition.
|
|
*
|
|
* @param {States} curState Current Touchable state.
|
|
* @param {States} nextState Next Touchable state.
|
|
* @param {Signal} signal Signal that triggered the transition.
|
|
* @param {Event} e Native event.
|
|
* @sideeffects
|
|
*/
|
|
_performSideEffectsForTransition: /* @__PURE__ */ __name(function _performSideEffectsForTransition(curState, nextState, signal, e) {
|
|
var curIsHighlight = this._isHighlight(curState);
|
|
var newIsHighlight = this._isHighlight(nextState);
|
|
var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;
|
|
if (isFinalSignal) {
|
|
this._cancelLongPressDelayTimeout();
|
|
}
|
|
var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;
|
|
var isActiveTransition = !IsActive[curState] && IsActive[nextState];
|
|
if (isInitialTransition || isActiveTransition) {
|
|
this._remeasureMetricsOnActivation();
|
|
}
|
|
if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {
|
|
this.touchableHandleLongPress && this.touchableHandleLongPress(e);
|
|
}
|
|
if (newIsHighlight && !curIsHighlight) {
|
|
this._startHighlight(e);
|
|
} else if (!newIsHighlight && curIsHighlight) {
|
|
this._endHighlight(e);
|
|
}
|
|
if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {
|
|
var hasLongPressHandler = !!this.props.onLongPress;
|
|
var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && // We *are* long pressing.. // But either has no long handler
|
|
(!hasLongPressHandler || !this.touchableLongPressCancelsPress());
|
|
var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;
|
|
if (shouldInvokePress && this.touchableHandlePress) {
|
|
if (!newIsHighlight && !curIsHighlight) {
|
|
this._startHighlight(e);
|
|
this._endHighlight(e);
|
|
}
|
|
this.touchableHandlePress(e);
|
|
}
|
|
}
|
|
this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);
|
|
this.touchableDelayTimeout = null;
|
|
}, "_performSideEffectsForTransition"),
|
|
_playTouchSound: /* @__PURE__ */ __name(function _playTouchSound() {
|
|
_UIManager.default.playTouchSound();
|
|
}, "_playTouchSound"),
|
|
_startHighlight: /* @__PURE__ */ __name(function _startHighlight(e) {
|
|
this._savePressInLocation(e);
|
|
this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);
|
|
}, "_startHighlight"),
|
|
_endHighlight: /* @__PURE__ */ __name(function _endHighlight(e) {
|
|
if (this.touchableHandleActivePressOut) {
|
|
if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {
|
|
this.pressOutDelayTimeout = setTimeout(() => {
|
|
this.touchableHandleActivePressOut(e);
|
|
}, this.touchableGetPressOutDelayMS());
|
|
} else {
|
|
this.touchableHandleActivePressOut(e);
|
|
}
|
|
}
|
|
}, "_endHighlight"),
|
|
// HACK (part 2): basic support for touchable interactions using a keyboard (including
|
|
// delays and longPress)
|
|
touchableHandleKeyEvent: /* @__PURE__ */ __name(function touchableHandleKeyEvent(e) {
|
|
var type = e.type, key = e.key;
|
|
if (key === "Enter" || key === " ") {
|
|
if (type === "keydown") {
|
|
if (!this._isTouchableKeyboardActive) {
|
|
if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {
|
|
this.touchableHandleResponderGrant(e);
|
|
this._isTouchableKeyboardActive = true;
|
|
}
|
|
}
|
|
} else if (type === "keyup") {
|
|
if (this._isTouchableKeyboardActive) {
|
|
if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {
|
|
this.touchableHandleResponderRelease(e);
|
|
this._isTouchableKeyboardActive = false;
|
|
}
|
|
}
|
|
}
|
|
e.stopPropagation();
|
|
if (!(key === "Enter" && _AccessibilityUtil.default.propsToAriaRole(this.props) === "link")) {
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
}, "touchableHandleKeyEvent"),
|
|
withoutDefaultFocusAndBlur: {}
|
|
};
|
|
var touchableHandleFocus = TouchableMixin.touchableHandleFocus;
|
|
var touchableHandleBlur = TouchableMixin.touchableHandleBlur;
|
|
var TouchableMixinWithoutDefaultFocusAndBlur = (0, _objectWithoutPropertiesLoose2.default)(TouchableMixin, ["touchableHandleFocus", "touchableHandleBlur"]);
|
|
TouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;
|
|
var Touchable = {
|
|
Mixin: TouchableMixin,
|
|
TOUCH_TARGET_DEBUG: false,
|
|
// Highlights all touchable targets. Toggle with Inspector.
|
|
/**
|
|
* Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).
|
|
*/
|
|
renderDebugView: (_ref) => {
|
|
var color2 = _ref.color, hitSlop = _ref.hitSlop;
|
|
if (!Touchable.TOUCH_TARGET_DEBUG) {
|
|
return null;
|
|
}
|
|
if (process.env.NODE_ENV !== "production") {
|
|
throw Error("Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!");
|
|
}
|
|
var debugHitSlopStyle = {};
|
|
hitSlop = hitSlop || {
|
|
top: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
right: 0
|
|
};
|
|
for (var key in hitSlop) {
|
|
debugHitSlopStyle[key] = -hitSlop[key];
|
|
}
|
|
var normalizedColor = (0, _normalizeColors.default)(color2);
|
|
if (typeof normalizedColor !== "number") {
|
|
return null;
|
|
}
|
|
var hexColor = "#" + ("00000000" + normalizedColor.toString(16)).substr(-8);
|
|
return /* @__PURE__ */ _react.default.createElement(_View.default, {
|
|
pointerEvents: "none",
|
|
style: (0, _objectSpread2.default)({
|
|
position: "absolute",
|
|
borderColor: hexColor.slice(0, -2) + "55",
|
|
// More opaque
|
|
borderWidth: 1,
|
|
borderStyle: "dashed",
|
|
backgroundColor: hexColor.slice(0, -2) + "0F"
|
|
}, debugHitSlopStyle)
|
|
});
|
|
}
|
|
};
|
|
var _default = Touchable;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/TouchableHighlight/index.js
|
|
var require_TouchableHighlight = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/TouchableHighlight/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _extends2 = _interopRequireDefault(require_extends());
|
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require_objectWithoutPropertiesLoose());
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePressEvents = _interopRequireDefault(require_usePressEvents());
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _warnOnce = require_warnOnce();
|
|
var _excluded = ["activeOpacity", "children", "delayPressIn", "delayPressOut", "delayLongPress", "disabled", "focusable", "onHideUnderlay", "onLongPress", "onPress", "onPressIn", "onPressOut", "onShowUnderlay", "rejectResponderTermination", "style", "testOnly_pressed", "underlayColor"];
|
|
function createExtraStyles(activeOpacity, underlayColor) {
|
|
return {
|
|
child: {
|
|
opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85
|
|
},
|
|
underlay: {
|
|
backgroundColor: underlayColor === void 0 ? "black" : underlayColor
|
|
}
|
|
};
|
|
}
|
|
__name(createExtraStyles, "createExtraStyles");
|
|
function hasPressHandler(props) {
|
|
return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;
|
|
}
|
|
__name(hasPressHandler, "hasPressHandler");
|
|
function TouchableHighlight(props, forwardedRef) {
|
|
(0, _warnOnce.warnOnce)("TouchableHighlight", "TouchableHighlight is deprecated. Please use Pressable.");
|
|
var activeOpacity = props.activeOpacity, children = props.children, delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onHideUnderlay = props.onHideUnderlay, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, onShowUnderlay = props.onShowUnderlay, rejectResponderTermination = props.rejectResponderTermination, style = props.style, testOnly_pressed = props.testOnly_pressed, underlayColor = props.underlayColor, rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
var hostRef = (0, React44.useRef)(null);
|
|
var setRef2 = (0, _useMergeRefs.default)(forwardedRef, hostRef);
|
|
var _useState = (0, React44.useState)(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null), extraStyles = _useState[0], setExtraStyles = _useState[1];
|
|
var showUnderlay = (0, React44.useCallback)(() => {
|
|
if (!hasPressHandler(props)) {
|
|
return;
|
|
}
|
|
setExtraStyles(createExtraStyles(activeOpacity, underlayColor));
|
|
if (onShowUnderlay != null) {
|
|
onShowUnderlay();
|
|
}
|
|
}, [activeOpacity, onShowUnderlay, props, underlayColor]);
|
|
var hideUnderlay = (0, React44.useCallback)(() => {
|
|
if (testOnly_pressed === true) {
|
|
return;
|
|
}
|
|
if (hasPressHandler(props)) {
|
|
setExtraStyles(null);
|
|
if (onHideUnderlay != null) {
|
|
onHideUnderlay();
|
|
}
|
|
}
|
|
}, [onHideUnderlay, props, testOnly_pressed]);
|
|
var pressConfig = (0, React44.useMemo)(() => ({
|
|
cancelable: !rejectResponderTermination,
|
|
disabled,
|
|
delayLongPress,
|
|
delayPressStart: delayPressIn,
|
|
delayPressEnd: delayPressOut,
|
|
onLongPress,
|
|
onPress,
|
|
onPressStart(event) {
|
|
showUnderlay();
|
|
if (onPressIn != null) {
|
|
onPressIn(event);
|
|
}
|
|
},
|
|
onPressEnd(event) {
|
|
hideUnderlay();
|
|
if (onPressOut != null) {
|
|
onPressOut(event);
|
|
}
|
|
}
|
|
}), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);
|
|
var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);
|
|
var child = React44.Children.only(children);
|
|
return /* @__PURE__ */ React44.createElement(_View.default, (0, _extends2.default)({}, rest, pressEventHandlers, {
|
|
accessibilityDisabled: disabled,
|
|
focusable: !disabled && focusable !== false,
|
|
pointerEvents: disabled ? "box-none" : void 0,
|
|
ref: setRef2,
|
|
style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]
|
|
}), /* @__PURE__ */ React44.cloneElement(child, {
|
|
style: [child.props.style, extraStyles && extraStyles.child]
|
|
}));
|
|
}
|
|
__name(TouchableHighlight, "TouchableHighlight");
|
|
var styles = _StyleSheet.default.create({
|
|
root: {
|
|
userSelect: "none"
|
|
},
|
|
actionable: {
|
|
cursor: "pointer",
|
|
touchAction: "manipulation"
|
|
}
|
|
});
|
|
var MemoedTouchableHighlight = /* @__PURE__ */ React44.memo(/* @__PURE__ */ React44.forwardRef(TouchableHighlight));
|
|
MemoedTouchableHighlight.displayName = "TouchableHighlight";
|
|
var _default = MemoedTouchableHighlight;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/modules/UnimplementedView/index.js
|
|
var require_UnimplementedView = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/modules/UnimplementedView/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _View = _interopRequireDefault(require_View());
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _UnimplementedView = class _UnimplementedView extends _react.default.Component {
|
|
render() {
|
|
return /* @__PURE__ */ _react.default.createElement(_View.default, {
|
|
style: [unimplementedViewStyles, this.props.style]
|
|
}, this.props.children);
|
|
}
|
|
};
|
|
__name(_UnimplementedView, "UnimplementedView");
|
|
var UnimplementedView = _UnimplementedView;
|
|
var unimplementedViewStyles = process.env.NODE_ENV !== "production" ? {
|
|
alignSelf: "flex-start",
|
|
borderColor: "red",
|
|
borderWidth: 1
|
|
} : {};
|
|
var _default = UnimplementedView;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/TouchableNativeFeedback/index.js
|
|
var require_TouchableNativeFeedback = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/TouchableNativeFeedback/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _UnimplementedView = _interopRequireDefault(require_UnimplementedView());
|
|
var _default = _UnimplementedView.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/TouchableWithoutFeedback/index.js
|
|
var require_TouchableWithoutFeedback = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/TouchableWithoutFeedback/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _pick = _interopRequireDefault(require_pick());
|
|
var _useMergeRefs = _interopRequireDefault(require_useMergeRefs());
|
|
var _usePressEvents = _interopRequireDefault(require_usePressEvents());
|
|
var _warnOnce = require_warnOnce();
|
|
var forwardPropsList = {
|
|
accessibilityDisabled: true,
|
|
accessibilityLabel: true,
|
|
accessibilityLiveRegion: true,
|
|
accessibilityRole: true,
|
|
accessibilityState: true,
|
|
accessibilityValue: true,
|
|
children: true,
|
|
disabled: true,
|
|
focusable: true,
|
|
nativeID: true,
|
|
onBlur: true,
|
|
onFocus: true,
|
|
onLayout: true,
|
|
testID: true
|
|
};
|
|
var pickProps = /* @__PURE__ */ __name((props) => (0, _pick.default)(props, forwardPropsList), "pickProps");
|
|
function TouchableWithoutFeedback(props, forwardedRef) {
|
|
(0, _warnOnce.warnOnce)("TouchableWithoutFeedback", "TouchableWithoutFeedback is deprecated. Please use Pressable.");
|
|
var delayPressIn = props.delayPressIn, delayPressOut = props.delayPressOut, delayLongPress = props.delayLongPress, disabled = props.disabled, focusable = props.focusable, onLongPress = props.onLongPress, onPress = props.onPress, onPressIn = props.onPressIn, onPressOut = props.onPressOut, rejectResponderTermination = props.rejectResponderTermination;
|
|
var hostRef = (0, React44.useRef)(null);
|
|
var pressConfig = (0, React44.useMemo)(() => ({
|
|
cancelable: !rejectResponderTermination,
|
|
disabled,
|
|
delayLongPress,
|
|
delayPressStart: delayPressIn,
|
|
delayPressEnd: delayPressOut,
|
|
onLongPress,
|
|
onPress,
|
|
onPressStart: onPressIn,
|
|
onPressEnd: onPressOut
|
|
}), [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);
|
|
var pressEventHandlers = (0, _usePressEvents.default)(hostRef, pressConfig);
|
|
var element = React44.Children.only(props.children);
|
|
var children = [element.props.children];
|
|
var supportedProps = pickProps(props);
|
|
supportedProps.accessibilityDisabled = disabled;
|
|
supportedProps.focusable = !disabled && focusable !== false;
|
|
supportedProps.ref = (0, _useMergeRefs.default)(forwardedRef, hostRef, element.ref);
|
|
var elementProps = Object.assign(supportedProps, pressEventHandlers);
|
|
return /* @__PURE__ */ React44.cloneElement(element, elementProps, ...children);
|
|
}
|
|
__name(TouchableWithoutFeedback, "TouchableWithoutFeedback");
|
|
var MemoedTouchableWithoutFeedback = /* @__PURE__ */ React44.memo(/* @__PURE__ */ React44.forwardRef(TouchableWithoutFeedback));
|
|
MemoedTouchableWithoutFeedback.displayName = "TouchableWithoutFeedback";
|
|
var _default = MemoedTouchableWithoutFeedback;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/VirtualizedList/index.js
|
|
var require_VirtualizedList2 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/VirtualizedList/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _VirtualizedList = _interopRequireDefault(require_VirtualizedList());
|
|
var _default = _VirtualizedList.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/YellowBox/index.js
|
|
var require_YellowBox = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/YellowBox/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _react = _interopRequireDefault(require("react"));
|
|
var _UnimplementedView = _interopRequireDefault(require_UnimplementedView());
|
|
function YellowBox(props) {
|
|
return /* @__PURE__ */ _react.default.createElement(_UnimplementedView.default, props);
|
|
}
|
|
__name(YellowBox, "YellowBox");
|
|
YellowBox.ignoreWarnings = () => {
|
|
};
|
|
var _default = YellowBox;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/LogBox/index.js
|
|
var require_LogBox = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/LogBox/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var LogBox = {
|
|
ignoreLogs() {
|
|
},
|
|
ignoreAllLogs() {
|
|
},
|
|
uninstall() {
|
|
},
|
|
install() {
|
|
}
|
|
};
|
|
var _default = LogBox;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/DeviceEventEmitter/index.js
|
|
var require_DeviceEventEmitter = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/DeviceEventEmitter/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _RCTDeviceEventEmitter = _interopRequireDefault(require_RCTDeviceEventEmitter());
|
|
var _default = _RCTDeviceEventEmitter.default;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/useColorScheme/index.js
|
|
var require_useColorScheme = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/useColorScheme/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
var _interopRequireWildcard = require_interopRequireWildcard().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useColorScheme;
|
|
var React44 = _interopRequireWildcard(require("react"));
|
|
var _Appearance = _interopRequireDefault(require_Appearance());
|
|
function useColorScheme() {
|
|
var _React$useState = React44.useState(_Appearance.default.getColorScheme()), colorScheme = _React$useState[0], setColorScheme = _React$useState[1];
|
|
React44.useEffect(() => {
|
|
function listener(appearance) {
|
|
setColorScheme(appearance.colorScheme);
|
|
}
|
|
__name(listener, "listener");
|
|
var _Appearance$addChange = _Appearance.default.addChangeListener(listener), remove = _Appearance$addChange.remove;
|
|
return remove;
|
|
});
|
|
return colorScheme;
|
|
}
|
|
__name(useColorScheme, "useColorScheme");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/useLocaleContext/index.js
|
|
var require_useLocaleContext = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/useLocaleContext/index.js"(exports2, module2) {
|
|
"use strict";
|
|
exports2.__esModule = true;
|
|
exports2.default = void 0;
|
|
var _useLocale = require_useLocale();
|
|
var _default = _useLocale.useLocaleContext;
|
|
exports2.default = _default;
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/exports/useWindowDimensions/index.js
|
|
var require_useWindowDimensions = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/exports/useWindowDimensions/index.js"(exports2, module2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.default = useWindowDimensions3;
|
|
var _Dimensions = _interopRequireDefault(require_Dimensions());
|
|
var _react = require("react");
|
|
function useWindowDimensions3() {
|
|
var _useState = (0, _react.useState)(() => _Dimensions.default.get("window")), dims = _useState[0], setDims = _useState[1];
|
|
(0, _react.useEffect)(() => {
|
|
function handleChange(_ref) {
|
|
var window2 = _ref.window;
|
|
if (window2 != null) {
|
|
setDims(window2);
|
|
}
|
|
}
|
|
__name(handleChange, "handleChange");
|
|
_Dimensions.default.addEventListener("change", handleChange);
|
|
setDims(_Dimensions.default.get("window"));
|
|
return () => {
|
|
_Dimensions.default.removeEventListener("change", handleChange);
|
|
};
|
|
}, []);
|
|
return dims;
|
|
}
|
|
__name(useWindowDimensions3, "useWindowDimensions");
|
|
module2.exports = exports2.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/react-native-web/dist/cjs/index.js
|
|
var require_cjs20 = __commonJS({
|
|
"node_modules/react-native-web/dist/cjs/index.js"(exports2) {
|
|
"use strict";
|
|
var _interopRequireDefault = require_interopRequireDefault().default;
|
|
exports2.__esModule = true;
|
|
exports2.useWindowDimensions = exports2.useLocaleContext = exports2.useColorScheme = exports2.unstable_createElement = exports2.unmountComponentAtNode = exports2.render = exports2.processColor = exports2.findNodeHandle = exports2.YellowBox = exports2.VirtualizedList = exports2.View = exports2.Vibration = exports2.UIManager = exports2.TouchableWithoutFeedback = exports2.TouchableOpacity = exports2.TouchableNativeFeedback = exports2.TouchableHighlight = exports2.Touchable = exports2.TextInput = exports2.Text = exports2.Switch = exports2.StyleSheet = exports2.StatusBar = exports2.Share = exports2.SectionList = exports2.ScrollView = exports2.SafeAreaView = exports2.RefreshControl = exports2.ProgressBar = exports2.Pressable = exports2.Platform = exports2.PixelRatio = exports2.Picker = exports2.PanResponder = exports2.NativeModules = exports2.NativeEventEmitter = exports2.Modal = exports2.LogBox = exports2.Linking = exports2.LayoutAnimation = exports2.KeyboardAvoidingView = exports2.Keyboard = exports2.InteractionManager = exports2.ImageBackground = exports2.Image = exports2.I18nManager = exports2.FlatList = exports2.Easing = exports2.Dimensions = exports2.DeviceEventEmitter = exports2.Clipboard = exports2.CheckBox = exports2.Button = exports2.BackHandler = exports2.Appearance = exports2.AppState = exports2.AppRegistry = exports2.Animated = exports2.Alert = exports2.ActivityIndicator = exports2.AccessibilityInfo = void 0;
|
|
var _createElement = _interopRequireDefault(require_createElement());
|
|
exports2.unstable_createElement = _createElement.default;
|
|
var _findNodeHandle = _interopRequireDefault(require_findNodeHandle());
|
|
exports2.findNodeHandle = _findNodeHandle.default;
|
|
var _processColor = _interopRequireDefault(require_processColor());
|
|
exports2.processColor = _processColor.default;
|
|
var _render = _interopRequireDefault(require_render());
|
|
exports2.render = _render.default;
|
|
var _unmountComponentAtNode = _interopRequireDefault(require_unmountComponentAtNode());
|
|
exports2.unmountComponentAtNode = _unmountComponentAtNode.default;
|
|
var _NativeModules = _interopRequireDefault(require_NativeModules());
|
|
exports2.NativeModules = _NativeModules.default;
|
|
var _AccessibilityInfo = _interopRequireDefault(require_AccessibilityInfo());
|
|
exports2.AccessibilityInfo = _AccessibilityInfo.default;
|
|
var _Alert = _interopRequireDefault(require_Alert());
|
|
exports2.Alert = _Alert.default;
|
|
var _Animated = _interopRequireDefault(require_Animated2());
|
|
exports2.Animated = _Animated.default;
|
|
var _Appearance = _interopRequireDefault(require_Appearance());
|
|
exports2.Appearance = _Appearance.default;
|
|
var _AppRegistry = _interopRequireDefault(require_AppRegistry());
|
|
exports2.AppRegistry = _AppRegistry.default;
|
|
var _AppState = _interopRequireDefault(require_AppState());
|
|
exports2.AppState = _AppState.default;
|
|
var _BackHandler = _interopRequireDefault(require_BackHandler());
|
|
exports2.BackHandler = _BackHandler.default;
|
|
var _Clipboard = _interopRequireDefault(require_Clipboard());
|
|
exports2.Clipboard = _Clipboard.default;
|
|
var _Dimensions = _interopRequireDefault(require_Dimensions());
|
|
exports2.Dimensions = _Dimensions.default;
|
|
var _Easing = _interopRequireDefault(require_Easing2());
|
|
exports2.Easing = _Easing.default;
|
|
var _I18nManager = _interopRequireDefault(require_I18nManager());
|
|
exports2.I18nManager = _I18nManager.default;
|
|
var _Keyboard = _interopRequireDefault(require_Keyboard());
|
|
exports2.Keyboard = _Keyboard.default;
|
|
var _InteractionManager = _interopRequireDefault(require_InteractionManager());
|
|
exports2.InteractionManager = _InteractionManager.default;
|
|
var _LayoutAnimation = _interopRequireDefault(require_LayoutAnimation2());
|
|
exports2.LayoutAnimation = _LayoutAnimation.default;
|
|
var _Linking = _interopRequireDefault(require_Linking());
|
|
exports2.Linking = _Linking.default;
|
|
var _NativeEventEmitter = _interopRequireDefault(require_NativeEventEmitter2());
|
|
exports2.NativeEventEmitter = _NativeEventEmitter.default;
|
|
var _PanResponder = _interopRequireDefault(require_PanResponder2());
|
|
exports2.PanResponder = _PanResponder.default;
|
|
var _PixelRatio = _interopRequireDefault(require_PixelRatio());
|
|
exports2.PixelRatio = _PixelRatio.default;
|
|
var _Platform = _interopRequireDefault(require_Platform());
|
|
exports2.Platform = _Platform.default;
|
|
var _Share = _interopRequireDefault(require_Share());
|
|
exports2.Share = _Share.default;
|
|
var _StyleSheet = _interopRequireDefault(require_StyleSheet());
|
|
exports2.StyleSheet = _StyleSheet.default;
|
|
var _UIManager = _interopRequireDefault(require_UIManager());
|
|
exports2.UIManager = _UIManager.default;
|
|
var _Vibration = _interopRequireDefault(require_Vibration());
|
|
exports2.Vibration = _Vibration.default;
|
|
var _ActivityIndicator = _interopRequireDefault(require_ActivityIndicator());
|
|
exports2.ActivityIndicator = _ActivityIndicator.default;
|
|
var _Button = _interopRequireDefault(require_Button());
|
|
exports2.Button = _Button.default;
|
|
var _CheckBox = _interopRequireDefault(require_CheckBox());
|
|
exports2.CheckBox = _CheckBox.default;
|
|
var _FlatList = _interopRequireDefault(require_FlatList2());
|
|
exports2.FlatList = _FlatList.default;
|
|
var _Image = _interopRequireDefault(require_Image());
|
|
exports2.Image = _Image.default;
|
|
var _ImageBackground = _interopRequireDefault(require_ImageBackground());
|
|
exports2.ImageBackground = _ImageBackground.default;
|
|
var _KeyboardAvoidingView = _interopRequireDefault(require_KeyboardAvoidingView());
|
|
exports2.KeyboardAvoidingView = _KeyboardAvoidingView.default;
|
|
var _Modal = _interopRequireDefault(require_Modal());
|
|
exports2.Modal = _Modal.default;
|
|
var _Picker = _interopRequireDefault(require_Picker());
|
|
exports2.Picker = _Picker.default;
|
|
var _Pressable = _interopRequireDefault(require_Pressable());
|
|
exports2.Pressable = _Pressable.default;
|
|
var _ProgressBar = _interopRequireDefault(require_ProgressBar());
|
|
exports2.ProgressBar = _ProgressBar.default;
|
|
var _RefreshControl = _interopRequireDefault(require_RefreshControl());
|
|
exports2.RefreshControl = _RefreshControl.default;
|
|
var _SafeAreaView = _interopRequireDefault(require_SafeAreaView());
|
|
exports2.SafeAreaView = _SafeAreaView.default;
|
|
var _ScrollView = _interopRequireDefault(require_ScrollView());
|
|
exports2.ScrollView = _ScrollView.default;
|
|
var _SectionList = _interopRequireDefault(require_SectionList2());
|
|
exports2.SectionList = _SectionList.default;
|
|
var _StatusBar = _interopRequireDefault(require_StatusBar());
|
|
exports2.StatusBar = _StatusBar.default;
|
|
var _Switch = _interopRequireDefault(require_Switch());
|
|
exports2.Switch = _Switch.default;
|
|
var _Text = _interopRequireDefault(require_Text());
|
|
exports2.Text = _Text.default;
|
|
var _TextInput = _interopRequireDefault(require_TextInput());
|
|
exports2.TextInput = _TextInput.default;
|
|
var _Touchable = _interopRequireDefault(require_Touchable());
|
|
exports2.Touchable = _Touchable.default;
|
|
var _TouchableHighlight = _interopRequireDefault(require_TouchableHighlight());
|
|
exports2.TouchableHighlight = _TouchableHighlight.default;
|
|
var _TouchableNativeFeedback = _interopRequireDefault(require_TouchableNativeFeedback());
|
|
exports2.TouchableNativeFeedback = _TouchableNativeFeedback.default;
|
|
var _TouchableOpacity = _interopRequireDefault(require_TouchableOpacity());
|
|
exports2.TouchableOpacity = _TouchableOpacity.default;
|
|
var _TouchableWithoutFeedback = _interopRequireDefault(require_TouchableWithoutFeedback());
|
|
exports2.TouchableWithoutFeedback = _TouchableWithoutFeedback.default;
|
|
var _View = _interopRequireDefault(require_View());
|
|
exports2.View = _View.default;
|
|
var _VirtualizedList = _interopRequireDefault(require_VirtualizedList2());
|
|
exports2.VirtualizedList = _VirtualizedList.default;
|
|
var _YellowBox = _interopRequireDefault(require_YellowBox());
|
|
exports2.YellowBox = _YellowBox.default;
|
|
var _LogBox = _interopRequireDefault(require_LogBox());
|
|
exports2.LogBox = _LogBox.default;
|
|
var _DeviceEventEmitter = _interopRequireDefault(require_DeviceEventEmitter());
|
|
exports2.DeviceEventEmitter = _DeviceEventEmitter.default;
|
|
var _useColorScheme = _interopRequireDefault(require_useColorScheme());
|
|
exports2.useColorScheme = _useColorScheme.default;
|
|
var _useLocaleContext = _interopRequireDefault(require_useLocaleContext());
|
|
exports2.useLocaleContext = _useLocaleContext.default;
|
|
var _useWindowDimensions = _interopRequireDefault(require_useWindowDimensions());
|
|
exports2.useWindowDimensions = _useWindowDimensions.default;
|
|
}
|
|
});
|
|
|
|
// node_modules/performant-array-to-tree/build/arrayToTree.min.js
|
|
var require_arrayToTree_min = __commonJS({
|
|
"node_modules/performant-array-to-tree/build/arrayToTree.min.js"(exports2) {
|
|
"use strict";
|
|
var __assign2 = exports2 && exports2.__assign || function() {
|
|
return (__assign2 = Object.assign || function(e) {
|
|
for (var r, t = 1, n = arguments.length; t < n; t++)
|
|
for (var o in r = arguments[t])
|
|
Object.prototype.hasOwnProperty.call(r, o) && (e[o] = r[o]);
|
|
return e;
|
|
}).apply(this, arguments);
|
|
};
|
|
var defaultConfig = (Object.defineProperty(exports2, "__esModule", { value: true }), { id: "id", parentId: "parentId", dataField: "data", childrenField: "children", throwIfOrphans: false, rootParentIds: { "": !(exports2.countNodes = exports2.arrayToTree = void 0) }, nestedIds: true, assign: false });
|
|
function arrayToTree(c, e) {
|
|
void 0 === e && (e = {});
|
|
for (var r, t = __assign2(__assign2({}, defaultConfig), e), n = [], o = {}, a = t.throwIfOrphans ? /* @__PURE__ */ new Set() : null, s = 0, h = c; s < h.length; s++) {
|
|
var i = h[s], d = t.nestedIds ? getNestedProperty(i, t.id) : i[t.id], l = t.nestedIds ? getNestedProperty(i, t.parentId) : i[t.parentId];
|
|
if (t.rootParentIds[d])
|
|
throw new Error("The item array contains a node whose parentId both exists in another node and is in " + '`rootParentIds` (`itemId`: "'.concat(d, '", `rootParentIds`: ').concat(Object.keys(t.rootParentIds).map(function(e2) {
|
|
return '"'.concat(e2, '"');
|
|
}).join(", "), ")."));
|
|
Object.prototype.hasOwnProperty.call(o, d) || (o[d] = ((r = {})[t.childrenField] = [], r)), a && a.delete(d), t.dataField ? o[d][t.dataField] = i : t.assign ? o[d] = Object.assign(i, ((r = {})[t.childrenField] = o[d][t.childrenField], r)) : o[d] = __assign2(__assign2({}, i), ((i = {})[t.childrenField] = o[d][t.childrenField], i));
|
|
i = o[d];
|
|
null == l || t.rootParentIds[l] ? n.push(i) : (Object.prototype.hasOwnProperty.call(o, l) || (o[l] = ((d = {})[t.childrenField] = [], d), a && a.add(l)), o[l][t.childrenField].push(i));
|
|
}
|
|
if (null != a && a.size)
|
|
throw new Error("The items array contains orphans that point to the following parentIds: " + "[".concat(Array.from(a), "]. These parentIds do not exist in the items array. Hint: prevent orphans to result ") + "in an error by passing the following option: { throwIfOrphans: false }");
|
|
if (t.throwIfOrphans && countNodes(n, t.childrenField) < Object.keys(o).length)
|
|
throw new Error("The items array contains nodes with a circular parent/child relationship.");
|
|
return n;
|
|
}
|
|
__name(arrayToTree, "arrayToTree");
|
|
function countNodes(e, t) {
|
|
return e.reduce(function(e2, r) {
|
|
return e2 + 1 + (r[t] && countNodes(r[t], t));
|
|
}, 0);
|
|
}
|
|
__name(countNodes, "countNodes");
|
|
function getNestedProperty(e, r) {
|
|
return r.split(".").reduce(function(e2, r2) {
|
|
return e2 && e2[r2];
|
|
}, e);
|
|
}
|
|
__name(getNestedProperty, "getNestedProperty");
|
|
exports2.arrayToTree = arrayToTree, exports2.countNodes = countNodes;
|
|
}
|
|
});
|
|
|
|
// node_modules/zustand/esm/vanilla.mjs
|
|
var import_meta, createStoreImpl, createStore;
|
|
var init_vanilla = __esm({
|
|
"node_modules/zustand/esm/vanilla.mjs"() {
|
|
import_meta = {};
|
|
createStoreImpl = /* @__PURE__ */ __name((createState) => {
|
|
let state;
|
|
const listeners = /* @__PURE__ */ new Set();
|
|
const setState = /* @__PURE__ */ __name((partial, replace) => {
|
|
const nextState = typeof partial === "function" ? partial(state) : partial;
|
|
if (!Object.is(nextState, state)) {
|
|
const previousState = state;
|
|
state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
|
|
listeners.forEach((listener) => listener(state, previousState));
|
|
}
|
|
}, "setState");
|
|
const getState6 = /* @__PURE__ */ __name(() => state, "getState");
|
|
const getInitialState = /* @__PURE__ */ __name(() => initialState, "getInitialState");
|
|
const subscribe2 = /* @__PURE__ */ __name((listener) => {
|
|
listeners.add(listener);
|
|
return () => listeners.delete(listener);
|
|
}, "subscribe");
|
|
const destroy = /* @__PURE__ */ __name(() => {
|
|
if ((import_meta.env ? import_meta.env.MODE : void 0) !== "production") {
|
|
console.warn(
|
|
"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."
|
|
);
|
|
}
|
|
listeners.clear();
|
|
}, "destroy");
|
|
const api = { setState, getState: getState6, getInitialState, subscribe: subscribe2, destroy };
|
|
const initialState = state = createState(setState, getState6, api);
|
|
return api;
|
|
}, "createStoreImpl");
|
|
createStore = /* @__PURE__ */ __name((createState) => createState ? createStoreImpl(createState) : createStoreImpl, "createStore");
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js
|
|
var require_use_sync_external_store_shim_production_min = __commonJS({
|
|
"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js"(exports2) {
|
|
"use strict";
|
|
var e = require("react");
|
|
function h(a, b) {
|
|
return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
|
|
}
|
|
__name(h, "h");
|
|
var k = "function" === typeof Object.is ? Object.is : h;
|
|
var l = e.useState;
|
|
var m = e.useEffect;
|
|
var n = e.useLayoutEffect;
|
|
var p = e.useDebugValue;
|
|
function q(a, b) {
|
|
var d = b(), f = l({ inst: { value: d, getSnapshot: b } }), c = f[0].inst, g = f[1];
|
|
n(function() {
|
|
c.value = d;
|
|
c.getSnapshot = b;
|
|
r(c) && g({ inst: c });
|
|
}, [a, d, b]);
|
|
m(function() {
|
|
r(c) && g({ inst: c });
|
|
return a(function() {
|
|
r(c) && g({ inst: c });
|
|
});
|
|
}, [a]);
|
|
p(d);
|
|
return d;
|
|
}
|
|
__name(q, "q");
|
|
function r(a) {
|
|
var b = a.getSnapshot;
|
|
a = a.value;
|
|
try {
|
|
var d = b();
|
|
return !k(a, d);
|
|
} catch (f) {
|
|
return true;
|
|
}
|
|
}
|
|
__name(r, "r");
|
|
function t(a, b) {
|
|
return b();
|
|
}
|
|
__name(t, "t");
|
|
var u = "undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement ? t : q;
|
|
exports2.useSyncExternalStore = void 0 !== e.useSyncExternalStore ? e.useSyncExternalStore : u;
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js
|
|
var require_use_sync_external_store_shim_development = __commonJS({
|
|
"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js"(exports2) {
|
|
"use strict";
|
|
if (process.env.NODE_ENV !== "production") {
|
|
(function() {
|
|
"use strict";
|
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
}
|
|
var React44 = require("react");
|
|
var ReactSharedInternals = React44.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
function error2(format) {
|
|
{
|
|
{
|
|
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
args[_key2 - 1] = arguments[_key2];
|
|
}
|
|
printWarning("error", format, args);
|
|
}
|
|
}
|
|
}
|
|
__name(error2, "error");
|
|
function printWarning(level, format, args) {
|
|
{
|
|
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
|
|
var stack = ReactDebugCurrentFrame.getStackAddendum();
|
|
if (stack !== "") {
|
|
format += "%s";
|
|
args = args.concat([stack]);
|
|
}
|
|
var argsWithFormat = args.map(function(item) {
|
|
return String(item);
|
|
});
|
|
argsWithFormat.unshift("Warning: " + format);
|
|
Function.prototype.apply.call(console[level], console, argsWithFormat);
|
|
}
|
|
}
|
|
__name(printWarning, "printWarning");
|
|
function is(x, y) {
|
|
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
|
|
}
|
|
__name(is, "is");
|
|
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
var useState28 = React44.useState, useEffect37 = React44.useEffect, useLayoutEffect4 = React44.useLayoutEffect, useDebugValue2 = React44.useDebugValue;
|
|
var didWarnOld18Alpha = false;
|
|
var didWarnUncachedGetSnapshot = false;
|
|
function useSyncExternalStore3(subscribe2, getSnapshot, getServerSnapshot) {
|
|
{
|
|
if (!didWarnOld18Alpha) {
|
|
if (React44.startTransition !== void 0) {
|
|
didWarnOld18Alpha = true;
|
|
error2("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.");
|
|
}
|
|
}
|
|
}
|
|
var value = getSnapshot();
|
|
{
|
|
if (!didWarnUncachedGetSnapshot) {
|
|
var cachedValue = getSnapshot();
|
|
if (!objectIs(value, cachedValue)) {
|
|
error2("The result of getSnapshot should be cached to avoid an infinite loop");
|
|
didWarnUncachedGetSnapshot = true;
|
|
}
|
|
}
|
|
}
|
|
var _useState = useState28({
|
|
inst: {
|
|
value,
|
|
getSnapshot
|
|
}
|
|
}), inst = _useState[0].inst, forceUpdate = _useState[1];
|
|
useLayoutEffect4(function() {
|
|
inst.value = value;
|
|
inst.getSnapshot = getSnapshot;
|
|
if (checkIfSnapshotChanged(inst)) {
|
|
forceUpdate({
|
|
inst
|
|
});
|
|
}
|
|
}, [subscribe2, value, getSnapshot]);
|
|
useEffect37(function() {
|
|
if (checkIfSnapshotChanged(inst)) {
|
|
forceUpdate({
|
|
inst
|
|
});
|
|
}
|
|
var handleStoreChange = /* @__PURE__ */ __name(function() {
|
|
if (checkIfSnapshotChanged(inst)) {
|
|
forceUpdate({
|
|
inst
|
|
});
|
|
}
|
|
}, "handleStoreChange");
|
|
return subscribe2(handleStoreChange);
|
|
}, [subscribe2]);
|
|
useDebugValue2(value);
|
|
return value;
|
|
}
|
|
__name(useSyncExternalStore3, "useSyncExternalStore");
|
|
function checkIfSnapshotChanged(inst) {
|
|
var latestGetSnapshot = inst.getSnapshot;
|
|
var prevValue = inst.value;
|
|
try {
|
|
var nextValue = latestGetSnapshot();
|
|
return !objectIs(prevValue, nextValue);
|
|
} catch (error3) {
|
|
return true;
|
|
}
|
|
}
|
|
__name(checkIfSnapshotChanged, "checkIfSnapshotChanged");
|
|
function useSyncExternalStore$1(subscribe2, getSnapshot, getServerSnapshot) {
|
|
return getSnapshot();
|
|
}
|
|
__name(useSyncExternalStore$1, "useSyncExternalStore$1");
|
|
var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
|
|
var isServerEnvironment = !canUseDOM;
|
|
var shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore3;
|
|
var useSyncExternalStore$2 = React44.useSyncExternalStore !== void 0 ? React44.useSyncExternalStore : shim;
|
|
exports2.useSyncExternalStore = useSyncExternalStore$2;
|
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
}
|
|
})();
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/shim/index.js
|
|
var require_shim = __commonJS({
|
|
"node_modules/use-sync-external-store/shim/index.js"(exports2, module2) {
|
|
"use strict";
|
|
if (process.env.NODE_ENV === "production") {
|
|
module2.exports = require_use_sync_external_store_shim_production_min();
|
|
} else {
|
|
module2.exports = require_use_sync_external_store_shim_development();
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js
|
|
var require_with_selector_production_min = __commonJS({
|
|
"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js"(exports2) {
|
|
"use strict";
|
|
var h = require("react");
|
|
var n = require_shim();
|
|
function p(a, b) {
|
|
return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
|
|
}
|
|
__name(p, "p");
|
|
var q = "function" === typeof Object.is ? Object.is : p;
|
|
var r = n.useSyncExternalStore;
|
|
var t = h.useRef;
|
|
var u = h.useEffect;
|
|
var v = h.useMemo;
|
|
var w = h.useDebugValue;
|
|
exports2.useSyncExternalStoreWithSelector = function(a, b, e, l, g) {
|
|
var c = t(null);
|
|
if (null === c.current) {
|
|
var f = { hasValue: false, value: null };
|
|
c.current = f;
|
|
} else
|
|
f = c.current;
|
|
c = v(function() {
|
|
function a2(a3) {
|
|
if (!c2) {
|
|
c2 = true;
|
|
d2 = a3;
|
|
a3 = l(a3);
|
|
if (void 0 !== g && f.hasValue) {
|
|
var b2 = f.value;
|
|
if (g(b2, a3))
|
|
return k = b2;
|
|
}
|
|
return k = a3;
|
|
}
|
|
b2 = k;
|
|
if (q(d2, a3))
|
|
return b2;
|
|
var e2 = l(a3);
|
|
if (void 0 !== g && g(b2, e2))
|
|
return b2;
|
|
d2 = a3;
|
|
return k = e2;
|
|
}
|
|
__name(a2, "a");
|
|
var c2 = false, d2, k, m = void 0 === e ? null : e;
|
|
return [function() {
|
|
return a2(b());
|
|
}, null === m ? void 0 : function() {
|
|
return a2(m());
|
|
}];
|
|
}, [b, e, l, g]);
|
|
var d = r(a, c[0], c[1]);
|
|
u(function() {
|
|
f.hasValue = true;
|
|
f.value = d;
|
|
}, [d]);
|
|
w(d);
|
|
return d;
|
|
};
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js
|
|
var require_with_selector_development = __commonJS({
|
|
"node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js"(exports2) {
|
|
"use strict";
|
|
if (process.env.NODE_ENV !== "production") {
|
|
(function() {
|
|
"use strict";
|
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
|
|
}
|
|
var React44 = require("react");
|
|
var shim = require_shim();
|
|
function is(x, y) {
|
|
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y;
|
|
}
|
|
__name(is, "is");
|
|
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
var useSyncExternalStore3 = shim.useSyncExternalStore;
|
|
var useRef36 = React44.useRef, useEffect37 = React44.useEffect, useMemo22 = React44.useMemo, useDebugValue2 = React44.useDebugValue;
|
|
function useSyncExternalStoreWithSelector2(subscribe2, getSnapshot, getServerSnapshot, selector, isEqual) {
|
|
var instRef = useRef36(null);
|
|
var inst;
|
|
if (instRef.current === null) {
|
|
inst = {
|
|
hasValue: false,
|
|
value: null
|
|
};
|
|
instRef.current = inst;
|
|
} else {
|
|
inst = instRef.current;
|
|
}
|
|
var _useMemo = useMemo22(function() {
|
|
var hasMemo = false;
|
|
var memoizedSnapshot;
|
|
var memoizedSelection;
|
|
var memoizedSelector = /* @__PURE__ */ __name(function(nextSnapshot) {
|
|
if (!hasMemo) {
|
|
hasMemo = true;
|
|
memoizedSnapshot = nextSnapshot;
|
|
var _nextSelection = selector(nextSnapshot);
|
|
if (isEqual !== void 0) {
|
|
if (inst.hasValue) {
|
|
var currentSelection = inst.value;
|
|
if (isEqual(currentSelection, _nextSelection)) {
|
|
memoizedSelection = currentSelection;
|
|
return currentSelection;
|
|
}
|
|
}
|
|
}
|
|
memoizedSelection = _nextSelection;
|
|
return _nextSelection;
|
|
}
|
|
var prevSnapshot = memoizedSnapshot;
|
|
var prevSelection = memoizedSelection;
|
|
if (objectIs(prevSnapshot, nextSnapshot)) {
|
|
return prevSelection;
|
|
}
|
|
var nextSelection = selector(nextSnapshot);
|
|
if (isEqual !== void 0 && isEqual(prevSelection, nextSelection)) {
|
|
return prevSelection;
|
|
}
|
|
memoizedSnapshot = nextSnapshot;
|
|
memoizedSelection = nextSelection;
|
|
return nextSelection;
|
|
}, "memoizedSelector");
|
|
var maybeGetServerSnapshot = getServerSnapshot === void 0 ? null : getServerSnapshot;
|
|
var getSnapshotWithSelector = /* @__PURE__ */ __name(function() {
|
|
return memoizedSelector(getSnapshot());
|
|
}, "getSnapshotWithSelector");
|
|
var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? void 0 : function() {
|
|
return memoizedSelector(maybeGetServerSnapshot());
|
|
};
|
|
return [getSnapshotWithSelector, getServerSnapshotWithSelector];
|
|
}, [getSnapshot, getServerSnapshot, selector, isEqual]), getSelection = _useMemo[0], getServerSelection = _useMemo[1];
|
|
var value = useSyncExternalStore3(subscribe2, getSelection, getServerSelection);
|
|
useEffect37(function() {
|
|
inst.hasValue = true;
|
|
inst.value = value;
|
|
}, [value]);
|
|
useDebugValue2(value);
|
|
return value;
|
|
}
|
|
__name(useSyncExternalStoreWithSelector2, "useSyncExternalStoreWithSelector");
|
|
exports2.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector2;
|
|
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === "function") {
|
|
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());
|
|
}
|
|
})();
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/use-sync-external-store/shim/with-selector.js
|
|
var require_with_selector = __commonJS({
|
|
"node_modules/use-sync-external-store/shim/with-selector.js"(exports2, module2) {
|
|
"use strict";
|
|
if (process.env.NODE_ENV === "production") {
|
|
module2.exports = require_with_selector_production_min();
|
|
} else {
|
|
module2.exports = require_with_selector_development();
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/zustand/esm/index.js
|
|
var esm_exports = {};
|
|
__export(esm_exports, {
|
|
create: () => create,
|
|
createStore: () => createStore,
|
|
default: () => react,
|
|
useStore: () => useStore
|
|
});
|
|
function useStore(api, selector = identity, equalityFn) {
|
|
if (process.env.NODE_ENV !== "production" && equalityFn && !didWarnAboutEqualityFn) {
|
|
console.warn(
|
|
"[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"
|
|
);
|
|
didWarnAboutEqualityFn = true;
|
|
}
|
|
const slice = useSyncExternalStoreWithSelector(
|
|
api.subscribe,
|
|
api.getState,
|
|
api.getServerState || api.getInitialState,
|
|
selector,
|
|
equalityFn
|
|
);
|
|
useDebugValue(slice);
|
|
return slice;
|
|
}
|
|
var import_react35, import_with_selector, useDebugValue, useSyncExternalStoreWithSelector, didWarnAboutEqualityFn, identity, createImpl, create, react;
|
|
var init_esm = __esm({
|
|
"node_modules/zustand/esm/index.js"() {
|
|
init_vanilla();
|
|
init_vanilla();
|
|
import_react35 = __toESM(require("react"));
|
|
import_with_selector = __toESM(require_with_selector());
|
|
({ useDebugValue } = import_react35.default);
|
|
({ useSyncExternalStoreWithSelector } = import_with_selector.default);
|
|
didWarnAboutEqualityFn = false;
|
|
identity = /* @__PURE__ */ __name((arg) => arg, "identity");
|
|
__name(useStore, "useStore");
|
|
createImpl = /* @__PURE__ */ __name((createState) => {
|
|
if (process.env.NODE_ENV !== "production" && typeof createState !== "function") {
|
|
console.warn(
|
|
"[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`."
|
|
);
|
|
}
|
|
const api = typeof createState === "function" ? createStore(createState) : createState;
|
|
const useBoundStore = /* @__PURE__ */ __name((selector, equalityFn) => useStore(api, selector, equalityFn), "useBoundStore");
|
|
Object.assign(useBoundStore, api);
|
|
return useBoundStore;
|
|
}, "createImpl");
|
|
create = /* @__PURE__ */ __name((createState) => createState ? createImpl(createState) : createImpl, "create");
|
|
react = /* @__PURE__ */ __name((createState) => {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
console.warn(
|
|
"[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'`."
|
|
);
|
|
}
|
|
return create(createState);
|
|
}, "react");
|
|
}
|
|
});
|
|
|
|
// node_modules/reforest/dist/index.js
|
|
var require_dist = __commonJS({
|
|
"node_modules/reforest/dist/index.js"(exports2, module2) {
|
|
var __create2 = Object.create;
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
for (let key of __getOwnPropNames2(from))
|
|
if (!__hasOwnProp2.call(to, key) && key !== except)
|
|
__defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
}
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
// file that has been converted to a CommonJS file using a Babel-
|
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
|
|
mod
|
|
)), "__toESM");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
cleanAndSortTree: () => cleanAndSortTree,
|
|
compareIndexPaths: () => compareIndexPaths,
|
|
flattenChildren: () => flattenChildren,
|
|
mapToChildren: () => mapToChildren,
|
|
parseIndexPath: () => parseIndexPath,
|
|
sortMapByIndexPath: () => sortMapByIndexPath,
|
|
useIndex: () => useIndex2,
|
|
useIndexedChildren: () => useIndexedChildren2,
|
|
usePrerender: () => usePrerender,
|
|
useRovingIndex: () => useRovingIndex,
|
|
useTree: () => useTree,
|
|
useTreeId: () => useTreeId,
|
|
useTreeNode: () => useTreeNode,
|
|
useTreeState: () => useTreeState
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
var React310 = __toESM2(require("react"));
|
|
var React44 = __toESM2(require("react"));
|
|
var PrerenderContext = React44.createContext(false);
|
|
PrerenderContext.displayName = "PrerenderContext";
|
|
var MaxIndexContext = React44.createContext([]);
|
|
MaxIndexContext.displayName = "MaxIndexContext";
|
|
var IndexContext = React44.createContext(null);
|
|
IndexContext.displayName = "IndexContext";
|
|
var TreeStateContext = React44.createContext(null);
|
|
TreeStateContext.displayName = "TreeStateContext";
|
|
var React210 = __toESM2(require("react"));
|
|
var import_performant_array_to_tree = require_arrayToTree_min();
|
|
var isServer3 = typeof window === "undefined";
|
|
var useIsomorphicLayoutEffect3 = isServer3 ? React210.useEffect : React210.useLayoutEffect;
|
|
function parseIndexPath(indexPathString) {
|
|
return indexPathString.split(".").map((index3) => parseInt(index3, 10));
|
|
}
|
|
__name(parseIndexPath, "parseIndexPath");
|
|
function compareIndexPaths(a = "", b = "") {
|
|
var _a, _b;
|
|
let aArray = a.split(".").map(Number);
|
|
let bArray = b.split(".").map(Number);
|
|
if (aArray.includes(NaN) || bArray.includes(NaN)) {
|
|
throw new Error("Version contains parts that are not numbers");
|
|
}
|
|
const maxLength = Math.max(a.length, b.length);
|
|
for (let index3 = 0; index3 < maxLength; index3++) {
|
|
const difference = ((_a = aArray[index3]) != null ? _a : 0) - ((_b = bArray[index3]) != null ? _b : 0);
|
|
if (difference === 0) {
|
|
continue;
|
|
}
|
|
return difference > 0 ? 1 : -1;
|
|
}
|
|
return 0;
|
|
}
|
|
__name(compareIndexPaths, "compareIndexPaths");
|
|
function cleanAndSortTree(tree) {
|
|
var _a;
|
|
if (((_a = tree.children) == null ? void 0 : _a.length) > 0) {
|
|
tree.children.sort((a, b) => compareIndexPaths(a.indexPathString, b.indexPathString));
|
|
return {
|
|
...tree.data,
|
|
children: tree.children.map(cleanAndSortTree)
|
|
};
|
|
}
|
|
return tree.data;
|
|
}
|
|
__name(cleanAndSortTree, "cleanAndSortTree");
|
|
function mapToChildren(dataMap) {
|
|
const parsedValues = Array.from(dataMap.entries()).map(([indexPathString, data]) => {
|
|
const parentIndexPathString = parseIndexPath(indexPathString).slice(0, -1).join(".");
|
|
return {
|
|
data,
|
|
parentId: parentIndexPathString,
|
|
id: indexPathString
|
|
};
|
|
});
|
|
const tree = (0, import_performant_array_to_tree.arrayToTree)(parsedValues, { dataField: null });
|
|
const cleanedTree = cleanAndSortTree({ children: tree });
|
|
return cleanedTree ? cleanedTree.children : [];
|
|
}
|
|
__name(mapToChildren, "mapToChildren");
|
|
function sortMapByIndexPath(treeMap) {
|
|
const sortedEntries = Array.from(treeMap.entries()).sort((a, b) => compareIndexPaths(a[0], b[0]));
|
|
return new Map(sortedEntries);
|
|
}
|
|
__name(sortMapByIndexPath, "sortMapByIndexPath");
|
|
function flattenChildren(children) {
|
|
const flatChildren = children.flatMap(
|
|
(child) => child.children ? flattenChildren(child.children) : [child]
|
|
);
|
|
return flatChildren;
|
|
}
|
|
__name(flattenChildren, "flattenChildren");
|
|
function useIndex2() {
|
|
const maxIndexPath = React310.useContext(MaxIndexContext);
|
|
const indexPathString = React310.useContext(IndexContext);
|
|
return React310.useMemo(() => {
|
|
if (indexPathString === null) {
|
|
return null;
|
|
}
|
|
const indexPath = parseIndexPath(indexPathString);
|
|
const maxIndex = maxIndexPath[maxIndexPath.length - 1];
|
|
const index3 = indexPath[indexPath.length - 1];
|
|
return {
|
|
maxIndex,
|
|
maxIndexPath,
|
|
index: index3,
|
|
indexPath,
|
|
indexPathString,
|
|
isFirst: index3 === 0,
|
|
isLast: index3 === maxIndex,
|
|
isEven: index3 % 2 === 0,
|
|
isOdd: Math.abs(index3 % 2) === 1
|
|
};
|
|
}, [maxIndexPath, indexPathString]);
|
|
}
|
|
__name(useIndex2, "useIndex");
|
|
function useIndexedChildren2(children) {
|
|
const parentMaxIndexPath = React310.useContext(MaxIndexContext);
|
|
const indexPathString = React310.useContext(IndexContext);
|
|
const childrenCount = React310.Children.count(children);
|
|
const maxIndexPath = React310.useMemo(
|
|
() => parentMaxIndexPath.concat(childrenCount - 1),
|
|
[childrenCount]
|
|
);
|
|
return /* @__PURE__ */ React310.createElement(MaxIndexContext.Provider, { value: maxIndexPath }, React310.Children.map(
|
|
children,
|
|
(child, index3) => React310.isValidElement(child) ? /* @__PURE__ */ React310.createElement(
|
|
IndexContext.Provider,
|
|
{
|
|
key: child.key,
|
|
value: indexPathString ? `${indexPathString}.${index3.toString()}` : index3.toString()
|
|
},
|
|
child
|
|
) : child
|
|
));
|
|
}
|
|
__name(useIndexedChildren2, "useIndexedChildren");
|
|
var React45 = __toESM2(require("react"));
|
|
function useRovingIndex({
|
|
contain = true,
|
|
defaultIndex = 0,
|
|
maxIndex = Infinity,
|
|
wrap = false
|
|
}) {
|
|
const [activeIndex, setLocalActiveIndex] = React45.useState(defaultIndex);
|
|
const getNextIndex = React45.useCallback(
|
|
(nextIndex) => {
|
|
if (wrap) {
|
|
return (nextIndex % maxIndex + maxIndex) % maxIndex;
|
|
}
|
|
if (contain) {
|
|
return nextIndex > maxIndex ? maxIndex : nextIndex < 0 ? 0 : nextIndex;
|
|
}
|
|
return nextIndex;
|
|
},
|
|
[maxIndex, wrap]
|
|
);
|
|
const moveActiveIndex = React45.useCallback(
|
|
(amountToMove) => {
|
|
setLocalActiveIndex((currentIndex) => getNextIndex(currentIndex + amountToMove));
|
|
},
|
|
[getNextIndex]
|
|
);
|
|
const setActiveIndex = React45.useCallback(
|
|
(nextIndex) => {
|
|
setLocalActiveIndex(getNextIndex(nextIndex));
|
|
},
|
|
[getNextIndex]
|
|
);
|
|
const moveBackward = React45.useCallback(() => moveActiveIndex(-1), [moveActiveIndex]);
|
|
const moveForward = React45.useCallback(() => moveActiveIndex(1), [moveActiveIndex]);
|
|
return {
|
|
activeIndex,
|
|
moveActiveIndex,
|
|
setActiveIndex,
|
|
moveBackward,
|
|
moveForward,
|
|
moveBackwardDisabled: activeIndex <= 0,
|
|
moveForwardDisabled: activeIndex >= maxIndex
|
|
};
|
|
}
|
|
__name(useRovingIndex, "useRovingIndex");
|
|
var React52 = __toESM2(require("react"));
|
|
var import_zustand = (init_esm(), __toCommonJS(esm_exports));
|
|
function useTreeState(selector) {
|
|
const treeStateContext = React52.useContext(TreeStateContext);
|
|
const [treeState] = React52.useState(
|
|
() => treeStateContext || (0, import_zustand.create)((set, get) => ({
|
|
treeMap: /* @__PURE__ */ new Map(),
|
|
prerenderedTreeIds: /* @__PURE__ */ new Map(),
|
|
shouldPrerender: true,
|
|
setTreeData: (id, data) => {
|
|
const { treeMap } = get();
|
|
treeMap.set(id, data);
|
|
set({ treeMap: sortMapByIndexPath(treeMap) });
|
|
},
|
|
deleteTreeData: (id) => {
|
|
const { treeMap } = get();
|
|
treeMap.delete(id);
|
|
set({ treeMap: sortMapByIndexPath(treeMap) });
|
|
}
|
|
}))
|
|
);
|
|
return selector ? treeState(selector) : treeState;
|
|
}
|
|
__name(useTreeState, "useTreeState");
|
|
function PrerenderTree({ children }) {
|
|
const treeState = useTreeState();
|
|
const shouldPrerender = treeState((state) => state.shouldPrerender);
|
|
useIsomorphicLayoutEffect3(() => {
|
|
treeState.setState({
|
|
prerenderedTreeIds: /* @__PURE__ */ new Map(),
|
|
shouldPrerender: false
|
|
});
|
|
}, []);
|
|
return shouldPrerender ? /* @__PURE__ */ React52.createElement(PrerenderContext.Provider, { value: true }, children) : null;
|
|
}
|
|
__name(PrerenderTree, "PrerenderTree");
|
|
function usePrerender() {
|
|
const isPrerender = React52.useContext(PrerenderContext);
|
|
if (isPrerender === null) {
|
|
throw new Error("usePrerender must be used in a descendant component of useTree.");
|
|
}
|
|
return isPrerender;
|
|
}
|
|
__name(usePrerender, "usePrerender");
|
|
function useTree(children, treeState) {
|
|
const treeStateContext = React52.useContext(TreeStateContext);
|
|
const treeStateLocal = useTreeState();
|
|
const parsedTreeState = treeStateContext || treeState || treeStateLocal;
|
|
const isPrerender = React52.useContext(PrerenderContext);
|
|
const isRoot = treeStateContext === null;
|
|
const indexedChildren = useIndexedChildren2(children);
|
|
const childrenToRender = isRoot ? /* @__PURE__ */ React52.createElement(TreeStateContext.Provider, { value: parsedTreeState }, /* @__PURE__ */ React52.createElement(PrerenderTree, null, indexedChildren), indexedChildren) : indexedChildren;
|
|
return {
|
|
children: childrenToRender,
|
|
useStore: parsedTreeState,
|
|
isPrerender,
|
|
isRoot
|
|
};
|
|
}
|
|
__name(useTree, "useTree");
|
|
function useTreeId() {
|
|
const treeStateContext = React52.useContext(TreeStateContext);
|
|
if (treeStateContext === null) {
|
|
throw new Error("useTreeId must be used in a descendant component of useTree.");
|
|
}
|
|
const { prerenderedTreeIds } = treeStateContext.getState();
|
|
const { indexPathString } = useIndex2();
|
|
const generatedId = React52.useId().slice(1, -1);
|
|
const treeId = prerenderedTreeIds.get(indexPathString) || generatedId;
|
|
return treeId;
|
|
}
|
|
__name(useTreeId, "useTreeId");
|
|
function useTreeNode(treeId, getData, dependencies = []) {
|
|
const isPrerender = React52.useContext(PrerenderContext);
|
|
const treeStateContext = React52.useContext(TreeStateContext);
|
|
if (treeStateContext === null) {
|
|
throw new Error("useTreeNode must be used in a descendant component of useTree.");
|
|
}
|
|
const { deleteTreeData, prerenderedTreeIds, setTreeData, treeMap } = treeStateContext.getState();
|
|
const { indexPathString } = useIndex2();
|
|
const treeData = React52.useMemo(
|
|
() => Object.assign({ treeId }, getData()),
|
|
dependencies.concat(treeId)
|
|
);
|
|
if (isPrerender) {
|
|
treeMap.set(indexPathString, treeData);
|
|
prerenderedTreeIds.set(indexPathString, treeId);
|
|
} else {
|
|
React52.useEffect(() => {
|
|
setTreeData(indexPathString, treeData);
|
|
return () => {
|
|
deleteTreeData(indexPathString);
|
|
};
|
|
}, [indexPathString, treeData]);
|
|
}
|
|
return treeData;
|
|
}
|
|
__name(useTreeNode, "useTreeNode");
|
|
}
|
|
});
|
|
|
|
// node_modules/tabbable/dist/index.js
|
|
var require_dist2 = __commonJS({
|
|
"node_modules/tabbable/dist/index.js"(exports2) {
|
|
"use strict";
|
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
var candidateSelectors = ["input:not([inert])", "select:not([inert])", "textarea:not([inert])", "a[href]:not([inert])", "button:not([inert])", "[tabindex]:not(slot):not([inert])", "audio[controls]:not([inert])", "video[controls]:not([inert])", '[contenteditable]:not([contenteditable="false"]):not([inert])', "details>summary:first-of-type:not([inert])", "details:not([inert])"];
|
|
var candidateSelector = /* @__PURE__ */ candidateSelectors.join(",");
|
|
var NoElement = typeof Element === "undefined";
|
|
var matches = NoElement ? function() {
|
|
} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {
|
|
var _element$getRootNode;
|
|
return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);
|
|
} : function(element) {
|
|
return element === null || element === void 0 ? void 0 : element.ownerDocument;
|
|
};
|
|
var isInert = /* @__PURE__ */ __name(function isInert2(node, lookUp) {
|
|
var _node$getAttribute;
|
|
if (lookUp === void 0) {
|
|
lookUp = true;
|
|
}
|
|
var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert");
|
|
var inert = inertAtt === "" || inertAtt === "true";
|
|
var result = inert || lookUp && node && isInert2(node.parentNode);
|
|
return result;
|
|
}, "isInert");
|
|
var isContentEditable = /* @__PURE__ */ __name(function isContentEditable2(node) {
|
|
var _node$getAttribute2;
|
|
var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable");
|
|
return attValue === "" || attValue === "true";
|
|
}, "isContentEditable");
|
|
var getCandidates = /* @__PURE__ */ __name(function getCandidates2(el, includeContainer, filter) {
|
|
if (isInert(el)) {
|
|
return [];
|
|
}
|
|
var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
|
|
if (includeContainer && matches.call(el, candidateSelector)) {
|
|
candidates.unshift(el);
|
|
}
|
|
candidates = candidates.filter(filter);
|
|
return candidates;
|
|
}, "getCandidates");
|
|
var getCandidatesIteratively = /* @__PURE__ */ __name(function getCandidatesIteratively2(elements, includeContainer, options) {
|
|
var candidates = [];
|
|
var elementsToCheck = Array.from(elements);
|
|
while (elementsToCheck.length) {
|
|
var element = elementsToCheck.shift();
|
|
if (isInert(element, false)) {
|
|
continue;
|
|
}
|
|
if (element.tagName === "SLOT") {
|
|
var assigned = element.assignedElements();
|
|
var content = assigned.length ? assigned : element.children;
|
|
var nestedCandidates = getCandidatesIteratively2(content, true, options);
|
|
if (options.flatten) {
|
|
candidates.push.apply(candidates, nestedCandidates);
|
|
} else {
|
|
candidates.push({
|
|
scopeParent: element,
|
|
candidates: nestedCandidates
|
|
});
|
|
}
|
|
} else {
|
|
var validCandidate = matches.call(element, candidateSelector);
|
|
if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
|
|
candidates.push(element);
|
|
}
|
|
var shadowRoot = element.shadowRoot || // check for an undisclosed shadow
|
|
typeof options.getShadowRoot === "function" && options.getShadowRoot(element);
|
|
var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));
|
|
if (shadowRoot && validShadowRoot) {
|
|
var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options);
|
|
if (options.flatten) {
|
|
candidates.push.apply(candidates, _nestedCandidates);
|
|
} else {
|
|
candidates.push({
|
|
scopeParent: element,
|
|
candidates: _nestedCandidates
|
|
});
|
|
}
|
|
} else {
|
|
elementsToCheck.unshift.apply(elementsToCheck, element.children);
|
|
}
|
|
}
|
|
}
|
|
return candidates;
|
|
}, "getCandidatesIteratively");
|
|
var hasTabIndex = /* @__PURE__ */ __name(function hasTabIndex2(node) {
|
|
return !isNaN(parseInt(node.getAttribute("tabindex"), 10));
|
|
}, "hasTabIndex");
|
|
var getTabIndex = /* @__PURE__ */ __name(function getTabIndex2(node) {
|
|
if (!node) {
|
|
throw new Error("No node provided");
|
|
}
|
|
if (node.tabIndex < 0) {
|
|
if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {
|
|
return 0;
|
|
}
|
|
}
|
|
return node.tabIndex;
|
|
}, "getTabIndex");
|
|
var getSortOrderTabIndex = /* @__PURE__ */ __name(function getSortOrderTabIndex2(node, isScope) {
|
|
var tabIndex = getTabIndex(node);
|
|
if (tabIndex < 0 && isScope && !hasTabIndex(node)) {
|
|
return 0;
|
|
}
|
|
return tabIndex;
|
|
}, "getSortOrderTabIndex");
|
|
var sortOrderedTabbables = /* @__PURE__ */ __name(function sortOrderedTabbables2(a, b) {
|
|
return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
|
|
}, "sortOrderedTabbables");
|
|
var isInput = /* @__PURE__ */ __name(function isInput2(node) {
|
|
return node.tagName === "INPUT";
|
|
}, "isInput");
|
|
var isHiddenInput = /* @__PURE__ */ __name(function isHiddenInput2(node) {
|
|
return isInput(node) && node.type === "hidden";
|
|
}, "isHiddenInput");
|
|
var isDetailsWithSummary = /* @__PURE__ */ __name(function isDetailsWithSummary2(node) {
|
|
var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) {
|
|
return child.tagName === "SUMMARY";
|
|
});
|
|
return r;
|
|
}, "isDetailsWithSummary");
|
|
var getCheckedRadio = /* @__PURE__ */ __name(function getCheckedRadio2(nodes, form) {
|
|
for (var i = 0; i < nodes.length; i++) {
|
|
if (nodes[i].checked && nodes[i].form === form) {
|
|
return nodes[i];
|
|
}
|
|
}
|
|
}, "getCheckedRadio");
|
|
var isTabbableRadio = /* @__PURE__ */ __name(function isTabbableRadio2(node) {
|
|
if (!node.name) {
|
|
return true;
|
|
}
|
|
var radioScope = node.form || getRootNode(node);
|
|
var queryRadios = /* @__PURE__ */ __name(function queryRadios2(name) {
|
|
return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
|
|
}, "queryRadios");
|
|
var radioSet;
|
|
if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") {
|
|
radioSet = queryRadios(window.CSS.escape(node.name));
|
|
} else {
|
|
try {
|
|
radioSet = queryRadios(node.name);
|
|
} catch (err) {
|
|
console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message);
|
|
return false;
|
|
}
|
|
}
|
|
var checked = getCheckedRadio(radioSet, node.form);
|
|
return !checked || checked === node;
|
|
}, "isTabbableRadio");
|
|
var isRadio = /* @__PURE__ */ __name(function isRadio2(node) {
|
|
return isInput(node) && node.type === "radio";
|
|
}, "isRadio");
|
|
var isNonTabbableRadio = /* @__PURE__ */ __name(function isNonTabbableRadio2(node) {
|
|
return isRadio(node) && !isTabbableRadio(node);
|
|
}, "isNonTabbableRadio");
|
|
var isNodeAttached = /* @__PURE__ */ __name(function isNodeAttached2(node) {
|
|
var _nodeRoot;
|
|
var nodeRoot = node && getRootNode(node);
|
|
var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;
|
|
var attached = false;
|
|
if (nodeRoot && nodeRoot !== node) {
|
|
var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;
|
|
attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));
|
|
while (!attached && nodeRootHost) {
|
|
var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;
|
|
nodeRoot = getRootNode(nodeRootHost);
|
|
nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;
|
|
attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));
|
|
}
|
|
}
|
|
return attached;
|
|
}, "isNodeAttached");
|
|
var isZeroArea = /* @__PURE__ */ __name(function isZeroArea2(node) {
|
|
var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;
|
|
return width === 0 && height === 0;
|
|
}, "isZeroArea");
|
|
var isHidden2 = /* @__PURE__ */ __name(function isHidden3(node, _ref) {
|
|
var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;
|
|
if (getComputedStyle(node).visibility === "hidden") {
|
|
return true;
|
|
}
|
|
var isDirectSummary = matches.call(node, "details>summary:first-of-type");
|
|
var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
|
|
if (matches.call(nodeUnderDetails, "details:not([open]) *")) {
|
|
return true;
|
|
}
|
|
if (!displayCheck || displayCheck === "full" || displayCheck === "legacy-full") {
|
|
if (typeof getShadowRoot === "function") {
|
|
var originalNode = node;
|
|
while (node) {
|
|
var parentElement = node.parentElement;
|
|
var rootNode = getRootNode(node);
|
|
if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {
|
|
return isZeroArea(node);
|
|
} else if (node.assignedSlot) {
|
|
node = node.assignedSlot;
|
|
} else if (!parentElement && rootNode !== node.ownerDocument) {
|
|
node = rootNode.host;
|
|
} else {
|
|
node = parentElement;
|
|
}
|
|
}
|
|
node = originalNode;
|
|
}
|
|
if (isNodeAttached(node)) {
|
|
return !node.getClientRects().length;
|
|
}
|
|
if (displayCheck !== "legacy-full") {
|
|
return true;
|
|
}
|
|
} else if (displayCheck === "non-zero-area") {
|
|
return isZeroArea(node);
|
|
}
|
|
return false;
|
|
}, "isHidden");
|
|
var isDisabledFromFieldset = /* @__PURE__ */ __name(function isDisabledFromFieldset2(node) {
|
|
if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
|
|
var parentNode = node.parentElement;
|
|
while (parentNode) {
|
|
if (parentNode.tagName === "FIELDSET" && parentNode.disabled) {
|
|
for (var i = 0; i < parentNode.children.length; i++) {
|
|
var child = parentNode.children.item(i);
|
|
if (child.tagName === "LEGEND") {
|
|
return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
parentNode = parentNode.parentElement;
|
|
}
|
|
}
|
|
return false;
|
|
}, "isDisabledFromFieldset");
|
|
var isNodeMatchingSelectorFocusable = /* @__PURE__ */ __name(function isNodeMatchingSelectorFocusable2(options, node) {
|
|
if (node.disabled || // we must do an inert look up to filter out any elements inside an inert ancestor
|
|
// because we're limited in the type of selectors we can use in JSDom (see related
|
|
// note related to `candidateSelectors`)
|
|
isInert(node) || isHiddenInput(node) || isHidden2(node, options) || // For a details element with a summary, the summary element gets the focus
|
|
isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}, "isNodeMatchingSelectorFocusable");
|
|
var isNodeMatchingSelectorTabbable = /* @__PURE__ */ __name(function isNodeMatchingSelectorTabbable2(options, node) {
|
|
if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}, "isNodeMatchingSelectorTabbable");
|
|
var isValidShadowRootTabbable = /* @__PURE__ */ __name(function isValidShadowRootTabbable2(shadowHostNode) {
|
|
var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10);
|
|
if (isNaN(tabIndex) || tabIndex >= 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}, "isValidShadowRootTabbable");
|
|
var sortByOrder = /* @__PURE__ */ __name(function sortByOrder2(candidates) {
|
|
var regularTabbables = [];
|
|
var orderedTabbables = [];
|
|
candidates.forEach(function(item, i) {
|
|
var isScope = !!item.scopeParent;
|
|
var element = isScope ? item.scopeParent : item;
|
|
var candidateTabindex = getSortOrderTabIndex(element, isScope);
|
|
var elements = isScope ? sortByOrder2(item.candidates) : element;
|
|
if (candidateTabindex === 0) {
|
|
isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
|
|
} else {
|
|
orderedTabbables.push({
|
|
documentOrder: i,
|
|
tabIndex: candidateTabindex,
|
|
item,
|
|
isScope,
|
|
content: elements
|
|
});
|
|
}
|
|
});
|
|
return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {
|
|
sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
|
|
return acc;
|
|
}, []).concat(regularTabbables);
|
|
}, "sortByOrder");
|
|
var tabbable2 = /* @__PURE__ */ __name(function tabbable3(container, options) {
|
|
options = options || {};
|
|
var candidates;
|
|
if (options.getShadowRoot) {
|
|
candidates = getCandidatesIteratively([container], options.includeContainer, {
|
|
filter: isNodeMatchingSelectorTabbable.bind(null, options),
|
|
flatten: false,
|
|
getShadowRoot: options.getShadowRoot,
|
|
shadowRootFilter: isValidShadowRootTabbable
|
|
});
|
|
} else {
|
|
candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
|
|
}
|
|
return sortByOrder(candidates);
|
|
}, "tabbable");
|
|
var focusable = /* @__PURE__ */ __name(function focusable2(container, options) {
|
|
options = options || {};
|
|
var candidates;
|
|
if (options.getShadowRoot) {
|
|
candidates = getCandidatesIteratively([container], options.includeContainer, {
|
|
filter: isNodeMatchingSelectorFocusable.bind(null, options),
|
|
flatten: true,
|
|
getShadowRoot: options.getShadowRoot
|
|
});
|
|
} else {
|
|
candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
|
|
}
|
|
return candidates;
|
|
}, "focusable");
|
|
var isTabbable2 = /* @__PURE__ */ __name(function isTabbable3(node, options) {
|
|
options = options || {};
|
|
if (!node) {
|
|
throw new Error("No node provided");
|
|
}
|
|
if (matches.call(node, candidateSelector) === false) {
|
|
return false;
|
|
}
|
|
return isNodeMatchingSelectorTabbable(options, node);
|
|
}, "isTabbable");
|
|
var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(",");
|
|
var isFocusable = /* @__PURE__ */ __name(function isFocusable2(node, options) {
|
|
options = options || {};
|
|
if (!node) {
|
|
throw new Error("No node provided");
|
|
}
|
|
if (matches.call(node, focusableCandidateSelector) === false) {
|
|
return false;
|
|
}
|
|
return isNodeMatchingSelectorFocusable(options, node);
|
|
}, "isFocusable");
|
|
exports2.focusable = focusable;
|
|
exports2.getTabIndex = getTabIndex;
|
|
exports2.isFocusable = isFocusable;
|
|
exports2.isTabbable = isTabbable2;
|
|
exports2.tabbable = tabbable2;
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/theme/dist/cjs/_mutateTheme.js
|
|
var require_mutateTheme = __commonJS({
|
|
"node_modules/@tamagui/theme/dist/cjs/_mutateTheme.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var mutateTheme_exports = {};
|
|
__export2(mutateTheme_exports, {
|
|
_mutateTheme: () => _mutateTheme,
|
|
mutateThemes: () => mutateThemes
|
|
});
|
|
module2.exports = __toCommonJS2(mutateTheme_exports);
|
|
var import_constants46 = require_cjs6();
|
|
var import_web23 = require("@tamagui/core");
|
|
var import_react58 = require("react");
|
|
function mutateThemes({
|
|
themes: themes3,
|
|
batch,
|
|
insertCSS = true,
|
|
...props
|
|
}) {
|
|
const allThemesProxied = {}, allThemesRaw = {};
|
|
for (const { name, theme } of themes3) {
|
|
const res = _mutateTheme({
|
|
...props,
|
|
name,
|
|
theme,
|
|
// we'll do one update at the end
|
|
avoidUpdate: true,
|
|
// always add which also replaces but doesnt fail first time
|
|
mutationType: "add"
|
|
});
|
|
res && (allThemesProxied[name] = res.theme, allThemesRaw[name] = res.themeRaw);
|
|
}
|
|
const cssRules = insertCSS ? insertThemeCSS(allThemesRaw, batch) : [];
|
|
return (0, import_react58.startTransition)(() => {
|
|
for (const themeName in allThemesProxied) {
|
|
const theme = allThemesProxied[themeName];
|
|
updateThemeConfig(themeName, theme), notifyThemeManagersOfUpdate(themeName, theme);
|
|
}
|
|
}), {
|
|
themes: allThemesProxied,
|
|
themesRaw: allThemesRaw,
|
|
cssRules
|
|
};
|
|
}
|
|
__name(mutateThemes, "mutateThemes");
|
|
function _mutateTheme(props) {
|
|
if (import_constants46.isServer) {
|
|
process.env.NODE_ENV === "development" && console.warn("Theme mutation is not supported on server side");
|
|
return;
|
|
}
|
|
const config2 = (0, import_web23.getConfig)(), { name: themeName, theme: themeIn, insertCSS, mutationType } = props;
|
|
if (process.env.NODE_ENV === "development") {
|
|
if (!config2)
|
|
throw new Error("No config");
|
|
const theme2 = config2.themes[props.name];
|
|
if (mutationType !== "add" && !theme2)
|
|
throw new Error(
|
|
`${mutationType === "replace" ? "Replace" : "Update"} theme failed! Theme ${props.name} does not exist`
|
|
);
|
|
}
|
|
const theme = {
|
|
...mutationType === "update" ? config2.themes[themeName] ?? {} : {},
|
|
...themeIn
|
|
};
|
|
for (const key in theme)
|
|
(0, import_web23.ensureThemeVariable)(theme, key);
|
|
const themeProxied = (0, import_web23.proxyThemeToParents)(themeName, theme), response = {
|
|
themeRaw: theme,
|
|
theme: themeProxied,
|
|
cssRules: []
|
|
};
|
|
return props.avoidUpdate || (insertCSS && (response.cssRules = insertThemeCSS({
|
|
[themeName]: theme
|
|
})), updateThemeConfig(themeName, themeProxied), notifyThemeManagersOfUpdate(themeName, themeProxied)), response;
|
|
}
|
|
__name(_mutateTheme, "_mutateTheme");
|
|
function updateThemeConfig(themeName, theme) {
|
|
const config2 = (0, import_web23.getConfig)();
|
|
config2.themes[themeName] = theme, (0, import_web23.updateConfig)("themes", config2.themes);
|
|
}
|
|
__name(updateThemeConfig, "updateThemeConfig");
|
|
function notifyThemeManagersOfUpdate(themeName, theme) {
|
|
import_web23.activeThemeManagers.forEach((manager) => {
|
|
manager.state.name === themeName && manager.updateStateFromProps(
|
|
{
|
|
name: themeName,
|
|
forceTheme: theme
|
|
},
|
|
true
|
|
);
|
|
});
|
|
}
|
|
__name(notifyThemeManagersOfUpdate, "notifyThemeManagersOfUpdate");
|
|
function insertThemeCSS(themes3, batch = false) {
|
|
const config2 = (0, import_web23.getConfig)();
|
|
let cssRules = [];
|
|
for (const themeName in themes3) {
|
|
const theme = themes3[themeName], rules = (0, import_web23.getThemeCSSRules)({
|
|
config: config2,
|
|
themeName,
|
|
names: [themeName],
|
|
hasDarkLight: true,
|
|
theme
|
|
});
|
|
cssRules = [...cssRules, ...rules], batch || updateStyle(`t_theme_style_${themeName}`, rules);
|
|
}
|
|
if (batch) {
|
|
const id = (0, import_web23.simpleHash)(typeof batch == "string" ? batch : Object.keys(themes3).join(""));
|
|
updateStyle(`t_theme_style_${id}`, cssRules);
|
|
}
|
|
return cssRules;
|
|
}
|
|
__name(insertThemeCSS, "insertThemeCSS");
|
|
function updateStyle(id, rules) {
|
|
var _a;
|
|
const existing = document.querySelector(`#${id}`), style = document.createElement("style");
|
|
style.id = id, style.appendChild(document.createTextNode(rules.join(`
|
|
`))), document.head.appendChild(style), existing && ((_a = existing.parentElement) == null ? void 0 : _a.removeChild(existing));
|
|
}
|
|
__name(updateStyle, "updateStyle");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/theme/dist/cjs/addTheme.js
|
|
var require_addTheme = __commonJS({
|
|
"node_modules/@tamagui/theme/dist/cjs/addTheme.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var addTheme_exports = {};
|
|
__export2(addTheme_exports, {
|
|
addTheme: () => addTheme
|
|
});
|
|
module2.exports = __toCommonJS2(addTheme_exports);
|
|
var import_mutateTheme = require_mutateTheme();
|
|
function addTheme(props) {
|
|
return (0, import_mutateTheme._mutateTheme)({ ...props, insertCSS: true, mutationType: "add" });
|
|
}
|
|
__name(addTheme, "addTheme");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/theme/dist/cjs/updateTheme.js
|
|
var require_updateTheme = __commonJS({
|
|
"node_modules/@tamagui/theme/dist/cjs/updateTheme.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var updateTheme_exports = {};
|
|
__export2(updateTheme_exports, {
|
|
updateTheme: () => updateTheme
|
|
});
|
|
module2.exports = __toCommonJS2(updateTheme_exports);
|
|
var import_mutateTheme = require_mutateTheme();
|
|
function updateTheme({
|
|
name,
|
|
theme
|
|
}) {
|
|
return (0, import_mutateTheme._mutateTheme)({ name, theme, insertCSS: true, mutationType: "update" });
|
|
}
|
|
__name(updateTheme, "updateTheme");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/theme/dist/cjs/replaceTheme.js
|
|
var require_replaceTheme = __commonJS({
|
|
"node_modules/@tamagui/theme/dist/cjs/replaceTheme.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var replaceTheme_exports = {};
|
|
__export2(replaceTheme_exports, {
|
|
replaceTheme: () => replaceTheme
|
|
});
|
|
module2.exports = __toCommonJS2(replaceTheme_exports);
|
|
var import_mutateTheme = require_mutateTheme();
|
|
function replaceTheme({
|
|
name,
|
|
theme
|
|
}) {
|
|
return (0, import_mutateTheme._mutateTheme)({ name, theme, insertCSS: true, mutationType: "replace" });
|
|
}
|
|
__name(replaceTheme, "replaceTheme");
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/theme/dist/cjs/index.js
|
|
var require_cjs21 = __commonJS({
|
|
"node_modules/@tamagui/theme/dist/cjs/index.js"(exports2, module2) {
|
|
var __defProp2 = Object.defineProperty;
|
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
var __export2 = /* @__PURE__ */ __name((target, all) => {
|
|
for (var name in all)
|
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
}, "__export");
|
|
var __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => {
|
|
if (from && typeof from == "object" || typeof from == "function")
|
|
for (let key of __getOwnPropNames2(from))
|
|
!__hasOwnProp2.call(to, key) && key !== except && __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
|
|
return to;
|
|
}, "__copyProps");
|
|
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
var __toCommonJS2 = /* @__PURE__ */ __name((mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod), "__toCommonJS");
|
|
var src_exports = {};
|
|
__export2(src_exports, {
|
|
mutateThemes: () => import_mutateTheme.mutateThemes
|
|
});
|
|
module2.exports = __toCommonJS2(src_exports);
|
|
__reExport2(src_exports, require_addTheme(), module2.exports);
|
|
__reExport2(src_exports, require_updateTheme(), module2.exports);
|
|
__reExport2(src_exports, require_replaceTheme(), module2.exports);
|
|
var import_mutateTheme = require_mutateTheme();
|
|
}
|
|
});
|
|
|
|
// tamagui.config.ts
|
|
var tamagui_config_exports = {};
|
|
__export(tamagui_config_exports, {
|
|
default: () => tamagui_config_default
|
|
});
|
|
module.exports = __toCommonJS(tamagui_config_exports);
|
|
|
|
// node_modules/@tamagui/shorthands/dist/esm/v2.mjs
|
|
var shorthands = {
|
|
// web-only
|
|
ussel: "userSelect",
|
|
cur: "cursor",
|
|
// tamagui
|
|
pe: "pointerEvents",
|
|
// text
|
|
col: "color",
|
|
ff: "fontFamily",
|
|
fos: "fontSize",
|
|
fost: "fontStyle",
|
|
fow: "fontWeight",
|
|
ls: "letterSpacing",
|
|
lh: "lineHeight",
|
|
ta: "textAlign",
|
|
tt: "textTransform",
|
|
ww: "wordWrap",
|
|
// view
|
|
ac: "alignContent",
|
|
ai: "alignItems",
|
|
als: "alignSelf",
|
|
b: "bottom",
|
|
bg: "backgroundColor",
|
|
bbc: "borderBottomColor",
|
|
bblr: "borderBottomLeftRadius",
|
|
bbrr: "borderBottomRightRadius",
|
|
bbw: "borderBottomWidth",
|
|
blc: "borderLeftColor",
|
|
blw: "borderLeftWidth",
|
|
bc: "borderColor",
|
|
br: "borderRadius",
|
|
bs: "borderStyle",
|
|
brw: "borderRightWidth",
|
|
brc: "borderRightColor",
|
|
btc: "borderTopColor",
|
|
btlr: "borderTopLeftRadius",
|
|
btrr: "borderTopRightRadius",
|
|
btw: "borderTopWidth",
|
|
bw: "borderWidth",
|
|
dsp: "display",
|
|
f: "flex",
|
|
fb: "flexBasis",
|
|
fd: "flexDirection",
|
|
fg: "flexGrow",
|
|
fs: "flexShrink",
|
|
fw: "flexWrap",
|
|
h: "height",
|
|
jc: "justifyContent",
|
|
l: "left",
|
|
m: "margin",
|
|
mah: "maxHeight",
|
|
maw: "maxWidth",
|
|
mb: "marginBottom",
|
|
mih: "minHeight",
|
|
miw: "minWidth",
|
|
ml: "marginLeft",
|
|
mr: "marginRight",
|
|
mt: "marginTop",
|
|
mx: "marginHorizontal",
|
|
my: "marginVertical",
|
|
o: "opacity",
|
|
ov: "overflow",
|
|
p: "padding",
|
|
pb: "paddingBottom",
|
|
pl: "paddingLeft",
|
|
pos: "position",
|
|
pr: "paddingRight",
|
|
pt: "paddingTop",
|
|
px: "paddingHorizontal",
|
|
py: "paddingVertical",
|
|
r: "right",
|
|
shac: "shadowColor",
|
|
shar: "shadowRadius",
|
|
shof: "shadowOffset",
|
|
shop: "shadowOpacity",
|
|
t: "top",
|
|
w: "width",
|
|
zi: "zIndex"
|
|
};
|
|
shorthands.bls = "borderLeftStyle";
|
|
shorthands.brs = "borderRightStyle";
|
|
shorthands.bts = "borderTopStyle";
|
|
shorthands.bbs = "borderBottomStyle";
|
|
shorthands.bxs = "boxSizing";
|
|
shorthands.bxsh = "boxShadow";
|
|
shorthands.ox = "overflowX";
|
|
shorthands.oy = "overflowY";
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/blue.mjs
|
|
var blue = {
|
|
blue1: "hsl(212, 35.0%, 9.2%)",
|
|
blue2: "hsl(216, 50.0%, 11.8%)",
|
|
blue3: "hsl(214, 59.4%, 15.3%)",
|
|
blue4: "hsl(214, 65.8%, 17.9%)",
|
|
blue5: "hsl(213, 71.2%, 20.2%)",
|
|
blue6: "hsl(212, 77.4%, 23.1%)",
|
|
blue7: "hsl(211, 85.1%, 27.4%)",
|
|
blue8: "hsl(211, 89.7%, 34.1%)",
|
|
blue9: "hsl(206, 100%, 50.0%)",
|
|
blue10: "hsl(209, 100%, 60.6%)",
|
|
blue11: "hsl(210, 100%, 66.1%)",
|
|
blue12: "hsl(206, 98.0%, 95.8%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/gray.mjs
|
|
var gray = {
|
|
gray1: "hsl(0, 0%, 8.5%)",
|
|
gray2: "hsl(0, 0%, 11.0%)",
|
|
gray3: "hsl(0, 0%, 13.6%)",
|
|
gray4: "hsl(0, 0%, 15.8%)",
|
|
gray5: "hsl(0, 0%, 17.9%)",
|
|
gray6: "hsl(0, 0%, 20.5%)",
|
|
gray7: "hsl(0, 0%, 24.3%)",
|
|
gray8: "hsl(0, 0%, 31.2%)",
|
|
gray9: "hsl(0, 0%, 43.9%)",
|
|
gray10: "hsl(0, 0%, 49.4%)",
|
|
gray11: "hsl(0, 0%, 62.8%)",
|
|
gray12: "hsl(0, 0%, 93.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/green.mjs
|
|
var green = {
|
|
green1: "hsl(146, 30.0%, 7.4%)",
|
|
green2: "hsl(155, 44.2%, 8.4%)",
|
|
green3: "hsl(155, 46.7%, 10.9%)",
|
|
green4: "hsl(154, 48.4%, 12.9%)",
|
|
green5: "hsl(154, 49.7%, 14.9%)",
|
|
green6: "hsl(154, 50.9%, 17.6%)",
|
|
green7: "hsl(153, 51.8%, 21.8%)",
|
|
green8: "hsl(151, 51.7%, 28.4%)",
|
|
green9: "hsl(151, 55.0%, 41.5%)",
|
|
green10: "hsl(151, 49.3%, 46.5%)",
|
|
green11: "hsl(151, 50.0%, 53.2%)",
|
|
green12: "hsl(137, 72.0%, 94.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/orange.mjs
|
|
var orange = {
|
|
orange1: "hsl(30, 70.0%, 7.2%)",
|
|
orange2: "hsl(28, 100%, 8.4%)",
|
|
orange3: "hsl(26, 91.1%, 11.6%)",
|
|
orange4: "hsl(25, 88.3%, 14.1%)",
|
|
orange5: "hsl(24, 87.6%, 16.6%)",
|
|
orange6: "hsl(24, 88.6%, 19.8%)",
|
|
orange7: "hsl(24, 92.4%, 24.0%)",
|
|
orange8: "hsl(25, 100%, 29.0%)",
|
|
orange9: "hsl(24, 94.0%, 50.0%)",
|
|
orange10: "hsl(24, 100%, 58.5%)",
|
|
orange11: "hsl(24, 100%, 62.2%)",
|
|
orange12: "hsl(24, 97.0%, 93.2%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/pink.mjs
|
|
var pink = {
|
|
pink1: "hsl(318, 25.0%, 9.6%)",
|
|
pink2: "hsl(319, 32.2%, 11.6%)",
|
|
pink3: "hsl(319, 41.0%, 16.0%)",
|
|
pink4: "hsl(320, 45.4%, 18.7%)",
|
|
pink5: "hsl(320, 49.0%, 21.1%)",
|
|
pink6: "hsl(321, 53.6%, 24.4%)",
|
|
pink7: "hsl(321, 61.1%, 29.7%)",
|
|
pink8: "hsl(322, 74.9%, 37.5%)",
|
|
pink9: "hsl(322, 65.0%, 54.5%)",
|
|
pink10: "hsl(323, 72.8%, 59.2%)",
|
|
pink11: "hsl(325, 90.0%, 66.4%)",
|
|
pink12: "hsl(322, 90.0%, 95.8%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/purple.mjs
|
|
var purple = {
|
|
purple1: "hsl(284, 20.0%, 9.6%)",
|
|
purple2: "hsl(283, 30.0%, 11.8%)",
|
|
purple3: "hsl(281, 37.5%, 16.5%)",
|
|
purple4: "hsl(280, 41.2%, 20.0%)",
|
|
purple5: "hsl(279, 43.8%, 23.3%)",
|
|
purple6: "hsl(277, 46.4%, 27.5%)",
|
|
purple7: "hsl(275, 49.3%, 34.6%)",
|
|
purple8: "hsl(272, 52.1%, 45.9%)",
|
|
purple9: "hsl(272, 51.0%, 54.0%)",
|
|
purple10: "hsl(273, 57.3%, 59.1%)",
|
|
purple11: "hsl(275, 80.0%, 71.0%)",
|
|
purple12: "hsl(279, 75.0%, 95.7%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/red.mjs
|
|
var red = {
|
|
red1: "hsl(353, 23.0%, 9.8%)",
|
|
red2: "hsl(357, 34.4%, 12.0%)",
|
|
red3: "hsl(356, 43.4%, 16.4%)",
|
|
red4: "hsl(356, 47.6%, 19.2%)",
|
|
red5: "hsl(356, 51.1%, 21.9%)",
|
|
red6: "hsl(356, 55.2%, 25.9%)",
|
|
red7: "hsl(357, 60.2%, 31.8%)",
|
|
red8: "hsl(358, 65.0%, 40.4%)",
|
|
red9: "hsl(358, 75.0%, 59.0%)",
|
|
red10: "hsl(358, 85.3%, 64.0%)",
|
|
red11: "hsl(358, 100%, 69.5%)",
|
|
red12: "hsl(351, 89.0%, 96.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/dark/yellow.mjs
|
|
var yellow = {
|
|
yellow1: "hsl(45, 100%, 5.5%)",
|
|
yellow2: "hsl(46, 100%, 6.7%)",
|
|
yellow3: "hsl(45, 100%, 8.7%)",
|
|
yellow4: "hsl(45, 100%, 10.4%)",
|
|
yellow5: "hsl(47, 100%, 12.1%)",
|
|
yellow6: "hsl(49, 100%, 14.3%)",
|
|
yellow7: "hsl(49, 90.3%, 18.4%)",
|
|
yellow8: "hsl(50, 100%, 22.0%)",
|
|
yellow9: "hsl(53, 92.0%, 50.0%)",
|
|
yellow10: "hsl(54, 100%, 68.0%)",
|
|
yellow11: "hsl(48, 100%, 47.0%)",
|
|
yellow12: "hsl(53, 100%, 91.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/blue.mjs
|
|
var blue2 = {
|
|
blue1: "hsl(206, 100%, 99.2%)",
|
|
blue2: "hsl(210, 100%, 98.0%)",
|
|
blue3: "hsl(209, 100%, 96.5%)",
|
|
blue4: "hsl(210, 98.8%, 94.0%)",
|
|
blue5: "hsl(209, 95.0%, 90.1%)",
|
|
blue6: "hsl(209, 81.2%, 84.5%)",
|
|
blue7: "hsl(208, 77.5%, 76.9%)",
|
|
blue8: "hsl(206, 81.9%, 65.3%)",
|
|
blue9: "hsl(206, 100%, 50.0%)",
|
|
blue10: "hsl(208, 100%, 47.3%)",
|
|
blue11: "hsl(211, 100%, 43.2%)",
|
|
blue12: "hsl(211, 100%, 15.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/gray.mjs
|
|
var gray2 = {
|
|
gray1: "hsl(0, 0%, 99.0%)",
|
|
gray2: "hsl(0, 0%, 97.3%)",
|
|
gray3: "hsl(0, 0%, 95.1%)",
|
|
gray4: "hsl(0, 0%, 93.0%)",
|
|
gray5: "hsl(0, 0%, 90.9%)",
|
|
gray6: "hsl(0, 0%, 88.7%)",
|
|
gray7: "hsl(0, 0%, 85.8%)",
|
|
gray8: "hsl(0, 0%, 78.0%)",
|
|
gray9: "hsl(0, 0%, 56.1%)",
|
|
gray10: "hsl(0, 0%, 52.3%)",
|
|
gray11: "hsl(0, 0%, 43.5%)",
|
|
gray12: "hsl(0, 0%, 9.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/green.mjs
|
|
var green2 = {
|
|
green1: "hsl(136, 50.0%, 98.9%)",
|
|
green2: "hsl(138, 62.5%, 96.9%)",
|
|
green3: "hsl(139, 55.2%, 94.5%)",
|
|
green4: "hsl(140, 48.7%, 91.0%)",
|
|
green5: "hsl(141, 43.7%, 86.0%)",
|
|
green6: "hsl(143, 40.3%, 79.0%)",
|
|
green7: "hsl(146, 38.5%, 69.0%)",
|
|
green8: "hsl(151, 40.2%, 54.1%)",
|
|
green9: "hsl(151, 55.0%, 41.5%)",
|
|
green10: "hsl(152, 57.5%, 37.6%)",
|
|
green11: "hsl(153, 67.0%, 28.5%)",
|
|
green12: "hsl(155, 40.0%, 14.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/orange.mjs
|
|
var orange2 = {
|
|
orange1: "hsl(24, 70.0%, 99.0%)",
|
|
orange2: "hsl(24, 83.3%, 97.6%)",
|
|
orange3: "hsl(24, 100%, 95.3%)",
|
|
orange4: "hsl(25, 100%, 92.2%)",
|
|
orange5: "hsl(25, 100%, 88.2%)",
|
|
orange6: "hsl(25, 100%, 82.8%)",
|
|
orange7: "hsl(24, 100%, 75.3%)",
|
|
orange8: "hsl(24, 94.5%, 64.3%)",
|
|
orange9: "hsl(24, 94.0%, 50.0%)",
|
|
orange10: "hsl(24, 100%, 46.5%)",
|
|
orange11: "hsl(24, 100%, 37.0%)",
|
|
orange12: "hsl(15, 60.0%, 17.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/pink.mjs
|
|
var pink2 = {
|
|
pink1: "hsl(322, 100%, 99.4%)",
|
|
pink2: "hsl(323, 100%, 98.4%)",
|
|
pink3: "hsl(323, 86.3%, 96.5%)",
|
|
pink4: "hsl(323, 78.7%, 94.2%)",
|
|
pink5: "hsl(323, 72.2%, 91.1%)",
|
|
pink6: "hsl(323, 66.3%, 86.6%)",
|
|
pink7: "hsl(323, 62.0%, 80.1%)",
|
|
pink8: "hsl(323, 60.3%, 72.4%)",
|
|
pink9: "hsl(322, 65.0%, 54.5%)",
|
|
pink10: "hsl(322, 63.9%, 50.7%)",
|
|
pink11: "hsl(322, 75.0%, 46.0%)",
|
|
pink12: "hsl(320, 70.0%, 13.5%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/purple.mjs
|
|
var purple2 = {
|
|
purple1: "hsl(280, 65.0%, 99.4%)",
|
|
purple2: "hsl(276, 100%, 99.0%)",
|
|
purple3: "hsl(276, 83.1%, 97.0%)",
|
|
purple4: "hsl(275, 76.4%, 94.7%)",
|
|
purple5: "hsl(275, 70.8%, 91.8%)",
|
|
purple6: "hsl(274, 65.4%, 87.8%)",
|
|
purple7: "hsl(273, 61.0%, 81.7%)",
|
|
purple8: "hsl(272, 60.0%, 73.5%)",
|
|
purple9: "hsl(272, 51.0%, 54.0%)",
|
|
purple10: "hsl(272, 46.8%, 50.3%)",
|
|
purple11: "hsl(272, 50.0%, 45.8%)",
|
|
purple12: "hsl(272, 66.0%, 16.0%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/red.mjs
|
|
var red2 = {
|
|
red1: "hsl(359, 100%, 99.4%)",
|
|
red2: "hsl(359, 100%, 98.6%)",
|
|
red3: "hsl(360, 100%, 96.8%)",
|
|
red4: "hsl(360, 97.9%, 94.8%)",
|
|
red5: "hsl(360, 90.2%, 91.9%)",
|
|
red6: "hsl(360, 81.7%, 87.8%)",
|
|
red7: "hsl(359, 74.2%, 81.7%)",
|
|
red8: "hsl(359, 69.5%, 74.3%)",
|
|
red9: "hsl(358, 75.0%, 59.0%)",
|
|
red10: "hsl(358, 69.4%, 55.2%)",
|
|
red11: "hsl(358, 65.0%, 48.7%)",
|
|
red12: "hsl(354, 50.0%, 14.6%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/colors/dist/esm/light/yellow.mjs
|
|
var yellow2 = {
|
|
yellow1: "hsl(60, 54.0%, 98.5%)",
|
|
yellow2: "hsl(52, 100%, 95.5%)",
|
|
yellow3: "hsl(55, 100%, 90.9%)",
|
|
yellow4: "hsl(54, 100%, 86.6%)",
|
|
yellow5: "hsl(52, 97.9%, 82.0%)",
|
|
yellow6: "hsl(50, 89.4%, 76.1%)",
|
|
yellow7: "hsl(47, 80.4%, 68.0%)",
|
|
yellow8: "hsl(48, 100%, 46.1%)",
|
|
yellow9: "hsl(53, 92.0%, 50.0%)",
|
|
yellow10: "hsl(50, 100%, 48.5%)",
|
|
yellow11: "hsl(42, 100%, 29.0%)",
|
|
yellow12: "hsl(40, 55.0%, 13.5%)"
|
|
};
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/isMinusZero.mjs
|
|
function isMinusZero(value) {
|
|
return 1 / value === Number.NEGATIVE_INFINITY;
|
|
}
|
|
__name(isMinusZero, "isMinusZero");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/themeInfo.mjs
|
|
var THEME_INFO = /* @__PURE__ */ new Map();
|
|
var getThemeInfo = /* @__PURE__ */ __name((theme, name) => THEME_INFO.get(name || JSON.stringify(theme)), "getThemeInfo");
|
|
var setThemeInfo = /* @__PURE__ */ __name((theme, info) => {
|
|
const next = {
|
|
...info,
|
|
cache: /* @__PURE__ */ new Map()
|
|
};
|
|
THEME_INFO.set(info.name || JSON.stringify(theme), next), THEME_INFO.set(JSON.stringify(info.definition), next);
|
|
}, "setThemeInfo");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/createTheme.mjs
|
|
var identityCache = /* @__PURE__ */ new Map();
|
|
function createThemeWithPalettes(palettes2, defaultPalette, definition, options, name, skipCache = false) {
|
|
if (!palettes2[defaultPalette])
|
|
throw new Error(`No pallete: ${defaultPalette}`);
|
|
const newDef = {
|
|
...definition
|
|
};
|
|
for (const key in definition) {
|
|
let val = definition[key];
|
|
if (typeof val == "string" && val[0] === "$") {
|
|
const [altPaletteName$, altPaletteIndex] = val.split("."), altPaletteName = altPaletteName$.slice(1), parentName = defaultPalette.split("_")[0], altPalette = palettes2[altPaletteName] || palettes2[`${parentName}_${altPaletteName}`];
|
|
if (altPalette) {
|
|
const next = getValue(altPalette, +altPaletteIndex);
|
|
typeof next < "u" && (newDef[key] = next);
|
|
}
|
|
}
|
|
}
|
|
return createTheme(palettes2[defaultPalette], newDef, options, name, skipCache);
|
|
}
|
|
__name(createThemeWithPalettes, "createThemeWithPalettes");
|
|
function createTheme(palette, definition, options, name, skipCache = false) {
|
|
const cacheKey = skipCache ? "" : JSON.stringify([name, palette, definition, options]);
|
|
if (!skipCache && identityCache.has(cacheKey))
|
|
return identityCache.get(cacheKey);
|
|
const theme = {
|
|
...Object.fromEntries(Object.entries(definition).map(([key, offset4]) => [key, getValue(palette, offset4)])),
|
|
...options == null ? void 0 : options.nonInheritedValues
|
|
};
|
|
return setThemeInfo(theme, {
|
|
palette,
|
|
definition,
|
|
options,
|
|
name
|
|
}), cacheKey && identityCache.set(cacheKey, theme), theme;
|
|
}
|
|
__name(createTheme, "createTheme");
|
|
var getValue = /* @__PURE__ */ __name((palette, value) => {
|
|
if (!palette)
|
|
throw new Error("No palette!");
|
|
if (typeof value == "string")
|
|
return value;
|
|
const max2 = palette.length - 1, next = (value === 0 ? !isMinusZero(value) : value >= 0) ? value : max2 + value, index3 = Math.min(Math.max(0, next), max2);
|
|
return palette[index3];
|
|
}, "getValue");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/helpers.mjs
|
|
function objectEntries(obj) {
|
|
return Object.entries(obj);
|
|
}
|
|
__name(objectEntries, "objectEntries");
|
|
function objectFromEntries(arr) {
|
|
return Object.fromEntries(arr);
|
|
}
|
|
__name(objectFromEntries, "objectFromEntries");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/masks.mjs
|
|
var createMask = /* @__PURE__ */ __name((createMask2) => typeof createMask2 == "function" ? {
|
|
name: createMask2.name || "unnamed",
|
|
mask: createMask2
|
|
} : createMask2, "createMask");
|
|
var skipMask = {
|
|
name: "skip-mask",
|
|
mask: (template, opts) => {
|
|
const {
|
|
skip
|
|
} = opts;
|
|
return Object.fromEntries(Object.entries(template).filter(([k]) => !skip || !(k in skip)).map(([k, v]) => [k, applyOverrides(k, v, opts)]));
|
|
}
|
|
};
|
|
function applyOverrides(key, value, opts) {
|
|
var _a, _b, _c;
|
|
let override, strategy = opts.overrideStrategy;
|
|
const overrideSwap = (_a = opts.overrideSwap) == null ? void 0 : _a[key];
|
|
if (typeof overrideSwap < "u")
|
|
override = overrideSwap, strategy = "swap";
|
|
else {
|
|
const overrideShift = (_b = opts.overrideShift) == null ? void 0 : _b[key];
|
|
if (typeof overrideShift < "u")
|
|
override = overrideShift, strategy = "shift";
|
|
else {
|
|
const overrideDefault = (_c = opts.override) == null ? void 0 : _c[key];
|
|
typeof overrideDefault < "u" && (override = overrideDefault, strategy = opts.overrideStrategy);
|
|
}
|
|
}
|
|
return typeof override > "u" || typeof override == "string" ? value : strategy === "swap" ? override : value;
|
|
}
|
|
__name(applyOverrides, "applyOverrides");
|
|
var createIdentityMask = /* @__PURE__ */ __name(() => ({
|
|
name: "identity-mask",
|
|
mask: (template, opts) => skipMask.mask(template, opts)
|
|
}), "createIdentityMask");
|
|
var createInverseMask = /* @__PURE__ */ __name(() => ({
|
|
name: "inverse-mask",
|
|
mask: (template, opts) => {
|
|
const inversed = objectFromEntries(objectEntries(template).map(([k, v]) => [k, -v]));
|
|
return skipMask.mask(inversed, opts);
|
|
}
|
|
}), "createInverseMask");
|
|
var createShiftMask = /* @__PURE__ */ __name(({
|
|
inverse
|
|
} = {}, defaultOptions2) => ({
|
|
name: "shift-mask",
|
|
mask: (template, opts) => {
|
|
const {
|
|
override,
|
|
overrideStrategy = "shift",
|
|
max: maxIn,
|
|
palette,
|
|
min: min2 = 0,
|
|
strength = 1
|
|
} = {
|
|
...defaultOptions2,
|
|
...opts
|
|
}, values = Object.entries(template), max2 = maxIn ?? (palette ? Object.values(palette).length - 1 : Number.POSITIVE_INFINITY), out = {};
|
|
for (const [key, value] of values) {
|
|
if (typeof value == "string")
|
|
continue;
|
|
if (typeof (override == null ? void 0 : override[key]) == "number") {
|
|
const overrideVal = override[key];
|
|
out[key] = overrideStrategy === "shift" ? value + overrideVal : overrideVal;
|
|
continue;
|
|
}
|
|
if (typeof (override == null ? void 0 : override[key]) == "string") {
|
|
out[key] = override[key];
|
|
continue;
|
|
}
|
|
const isPositive = value === 0 ? !isMinusZero(value) : value >= 0, direction = isPositive ? 1 : -1, invert = inverse ? -1 : 1, next = value + strength * direction * invert, clamped = isPositive ? Math.max(min2, Math.min(max2, next)) : Math.min(-min2, Math.max(-max2, next));
|
|
out[key] = clamped;
|
|
}
|
|
return skipMask.mask(out, opts);
|
|
}
|
|
}), "createShiftMask");
|
|
var createWeakenMask = /* @__PURE__ */ __name((defaultOptions2) => ({
|
|
name: "soften-mask",
|
|
mask: createShiftMask({}, defaultOptions2).mask
|
|
}), "createWeakenMask");
|
|
var createSoftenMask = createWeakenMask;
|
|
var createStrengthenMask = /* @__PURE__ */ __name((defaultOptions2) => ({
|
|
name: "strengthen-mask",
|
|
mask: createShiftMask({
|
|
inverse: true
|
|
}, defaultOptions2).mask
|
|
}), "createStrengthenMask");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/applyMask.mjs
|
|
function applyMask(theme, mask, options = {}, parentName, nextName) {
|
|
const info = getThemeInfo(theme, parentName);
|
|
if (!info)
|
|
throw new Error(process.env.NODE_ENV !== "production" ? "No info found for theme, you must pass the theme created by createThemeFromPalette directly to extendTheme" : "\u274C Err2");
|
|
const next = applyMaskStateless(info, mask, options, parentName);
|
|
return setThemeInfo(next.theme, {
|
|
definition: next.definition,
|
|
palette: info.palette,
|
|
name: nextName
|
|
}), next.theme;
|
|
}
|
|
__name(applyMask, "applyMask");
|
|
function applyMaskStateless(info, mask, options = {}, parentName) {
|
|
var _a;
|
|
const skip = {
|
|
...options.skip
|
|
};
|
|
if ((_a = info.options) == null ? void 0 : _a.nonInheritedValues)
|
|
for (const key in info.options.nonInheritedValues)
|
|
skip[key] = 1;
|
|
const maskOptions = {
|
|
parentName,
|
|
palette: info.palette,
|
|
...options,
|
|
skip
|
|
}, template = mask.mask(info.definition, maskOptions), theme = createTheme(info.palette, template);
|
|
return {
|
|
...info,
|
|
cache: /* @__PURE__ */ new Map(),
|
|
definition: template,
|
|
theme
|
|
};
|
|
}
|
|
__name(applyMaskStateless, "applyMaskStateless");
|
|
|
|
// node_modules/@tamagui/create-theme/dist/esm/combineMasks.mjs
|
|
var combineMasks = /* @__PURE__ */ __name((...masks2) => ({
|
|
name: "combine-mask",
|
|
mask: (template, opts) => {
|
|
let current = getThemeInfo(template, opts.parentName), theme;
|
|
for (const mask2 of masks2) {
|
|
if (!current)
|
|
throw new Error(`Nothing returned from mask: ${current}, for template: ${template} and mask: ${mask2.toString()}, given opts ${JSON.stringify(opts, null, 2)}`);
|
|
const next = applyMaskStateless(current, mask2, opts);
|
|
current = next, theme = next.theme;
|
|
}
|
|
return theme;
|
|
}
|
|
}), "combineMasks");
|
|
|
|
// node_modules/@tamagui/theme-builder/dist/esm/ThemeBuilder.mjs
|
|
var _ThemeBuilder = class _ThemeBuilder {
|
|
constructor(state) {
|
|
this.state = state;
|
|
}
|
|
addPalettes(palettes2) {
|
|
return this.state.palettes = {
|
|
// as {} prevents generic string key merge messing up types
|
|
...this.state.palettes,
|
|
...palettes2
|
|
}, this;
|
|
}
|
|
addTemplates(templates2) {
|
|
return this.state.templates = {
|
|
// as {} prevents generic string key merge messing up types
|
|
...this.state.templates,
|
|
...templates2
|
|
}, this;
|
|
}
|
|
addMasks(masks2) {
|
|
return this.state.masks = {
|
|
// as {} prevents generic string key merge messing up types
|
|
...this.state.masks,
|
|
...objectFromEntries(objectEntries(masks2).map(([key, val]) => [key, createMask(val)]))
|
|
}, this;
|
|
}
|
|
// for dev mode only really
|
|
_addedThemes = [];
|
|
addThemes(themes3) {
|
|
return this._addedThemes.push({
|
|
type: "themes",
|
|
args: [themes3]
|
|
}), this.state.themes = {
|
|
// as {} prevents generic string key merge messing up types
|
|
...this.state.themes,
|
|
...themes3
|
|
}, this;
|
|
}
|
|
// these wont be typed to save some complexity and because they don't need to be typed!
|
|
addComponentThemes(childThemeDefinition, options) {
|
|
return this.addChildThemes(childThemeDefinition, options), this;
|
|
}
|
|
addChildThemes(childThemeDefinition, options) {
|
|
const currentThemes = this.state.themes;
|
|
if (!currentThemes)
|
|
throw new Error("No themes defined yet, use addThemes first to set your base themes");
|
|
this._addedThemes.push({
|
|
type: "childThemes",
|
|
args: [childThemeDefinition, options]
|
|
});
|
|
const currentThemeNames = Object.keys(currentThemes), incomingThemeNames = Object.keys(childThemeDefinition), namesWithDefinitions = currentThemeNames.flatMap((prefix) => {
|
|
const avoidNestingWithin = options == null ? void 0 : options.avoidNestingWithin;
|
|
return avoidNestingWithin && avoidNestingWithin.some((avoidName) => prefix.startsWith(avoidName) || prefix.endsWith(avoidName)) ? [] : incomingThemeNames.map((subName) => {
|
|
const fullName = `${prefix}_${subName}`, definition = childThemeDefinition[subName];
|
|
return "avoidNestingWithin" in definition && definition.avoidNestingWithin.some((name) => prefix.startsWith(name) || prefix.endsWith(name)) ? null : [fullName, definition];
|
|
}).filter(Boolean);
|
|
}), childThemes = Object.fromEntries(namesWithDefinitions), next = {
|
|
// as {} prevents generic string key merge messing up types
|
|
...this.state.themes,
|
|
...childThemes
|
|
};
|
|
return this.state.themes = next, this;
|
|
}
|
|
build() {
|
|
var _a, _b, _c, _d;
|
|
if (!this.state.themes)
|
|
return {};
|
|
const out = {}, maskedThemes = [];
|
|
for (const themeName in this.state.themes) {
|
|
const nameParts = themeName.split("_"), parentName = nameParts.slice(0, nameParts.length - 1).join("_"), definitions = this.state.themes[themeName], themeDefinition = Array.isArray(definitions) ? (() => {
|
|
const found = definitions.find(
|
|
// endWith match stronger than startsWith
|
|
(d) => d.parent ? parentName.endsWith(d.parent) || parentName.startsWith(d.parent) : true
|
|
);
|
|
return found || null;
|
|
})() : definitions;
|
|
if (themeDefinition)
|
|
if ("theme" in themeDefinition)
|
|
out[themeName] = themeDefinition.theme;
|
|
else if ("mask" in themeDefinition)
|
|
maskedThemes.push({
|
|
parentName,
|
|
themeName,
|
|
mask: themeDefinition
|
|
});
|
|
else {
|
|
let {
|
|
palette: paletteName = "",
|
|
template: templateName,
|
|
...options
|
|
} = themeDefinition;
|
|
const parentDefinition = this.state.themes[parentName];
|
|
if (!this.state.palettes)
|
|
throw new Error(`No palettes defined for theme with palette expected: ${themeName}`);
|
|
let palette = this.state.palettes[paletteName || ""], attemptParentName = `${parentName}_${paletteName}`;
|
|
for (; !palette && attemptParentName; )
|
|
attemptParentName in this.state.palettes ? (palette = this.state.palettes[attemptParentName], paletteName = attemptParentName) : attemptParentName = attemptParentName.split("_").slice(0, -1).join("_");
|
|
if (!palette) {
|
|
const msg = process.env.NODE_ENV !== "production" ? `: ${themeName}: ${paletteName}
|
|
Definition: ${JSON.stringify(themeDefinition)}
|
|
Parent: ${JSON.stringify(parentDefinition)}
|
|
Potential: (${Object.keys(this.state.palettes).join(", ")})` : "";
|
|
throw new Error(`No palette for theme${msg}`);
|
|
}
|
|
const template = ((_a = this.state.templates) == null ? void 0 : _a[templateName]) ?? // fall back to finding the scheme specific on if it exists
|
|
((_b = this.state.templates) == null ? void 0 : _b[`${nameParts[0]}_${templateName}`]);
|
|
if (!template)
|
|
throw new Error(`No template for theme ${themeName}: ${templateName}`);
|
|
out[themeName] = createThemeWithPalettes(this.state.palettes, paletteName, template, options, themeName, true);
|
|
}
|
|
}
|
|
for (const {
|
|
mask,
|
|
themeName,
|
|
parentName
|
|
} of maskedThemes) {
|
|
const parent = out[parentName];
|
|
if (!parent)
|
|
continue;
|
|
const {
|
|
mask: maskName,
|
|
...options
|
|
} = mask;
|
|
let maskFunction = (_c = this.state.masks) == null ? void 0 : _c[maskName];
|
|
if (!maskFunction)
|
|
throw new Error(`No mask ${maskName}`);
|
|
const parentTheme = this.state.themes[parentName];
|
|
if (parentTheme && "childOptions" in parentTheme) {
|
|
const {
|
|
mask: mask2,
|
|
...childOpts
|
|
} = parentTheme.childOptions;
|
|
mask2 && (maskFunction = (_d = this.state.masks) == null ? void 0 : _d[mask2]), Object.assign(options, childOpts);
|
|
}
|
|
out[themeName] = applyMask(parent, maskFunction, options, parentName, themeName);
|
|
}
|
|
return out;
|
|
}
|
|
};
|
|
__name(_ThemeBuilder, "ThemeBuilder");
|
|
var ThemeBuilder = _ThemeBuilder;
|
|
function createThemeBuilder() {
|
|
return new ThemeBuilder({});
|
|
}
|
|
__name(createThemeBuilder, "createThemeBuilder");
|
|
|
|
// node_modules/@tamagui/theme-builder/dist/esm/masks.mjs
|
|
var masks = {
|
|
identity: createIdentityMask(),
|
|
soften: createSoftenMask(),
|
|
soften2: createSoftenMask({
|
|
strength: 2
|
|
}),
|
|
soften3: createSoftenMask({
|
|
strength: 3
|
|
}),
|
|
strengthen: createStrengthenMask(),
|
|
inverse: createInverseMask(),
|
|
inverseSoften: combineMasks(createInverseMask(), createSoftenMask({
|
|
strength: 2
|
|
})),
|
|
inverseSoften2: combineMasks(createInverseMask(), createSoftenMask({
|
|
strength: 3
|
|
})),
|
|
inverseSoften3: combineMasks(createInverseMask(), createSoftenMask({
|
|
strength: 4
|
|
})),
|
|
inverseStrengthen2: combineMasks(createInverseMask(), createStrengthenMask({
|
|
strength: 2
|
|
})),
|
|
strengthenButSoftenBorder: createMask((template, options) => {
|
|
const stronger = createStrengthenMask().mask(template, options), softer = createSoftenMask().mask(template, options);
|
|
return {
|
|
...stronger,
|
|
borderColor: softer.borderColor,
|
|
borderColorHover: softer.borderColorHover,
|
|
borderColorPress: softer.borderColorPress,
|
|
borderColorFocus: softer.borderColorFocus
|
|
};
|
|
}),
|
|
soften2Border1: createMask((template, options) => {
|
|
const softer2 = createSoftenMask({
|
|
strength: 2
|
|
}).mask(template, options), softer1 = createSoftenMask({
|
|
strength: 1
|
|
}).mask(template, options);
|
|
return {
|
|
...softer2,
|
|
borderColor: softer1.borderColor,
|
|
borderColorHover: softer1.borderColorHover,
|
|
borderColorPress: softer1.borderColorPress,
|
|
borderColorFocus: softer1.borderColorFocus
|
|
};
|
|
}),
|
|
soften3FlatBorder: createMask((template, options) => {
|
|
const borderMask = createSoftenMask({
|
|
strength: 2
|
|
}).mask(template, options);
|
|
return {
|
|
...createSoftenMask({
|
|
strength: 3
|
|
}).mask(template, options),
|
|
borderColor: borderMask.borderColor,
|
|
borderColorHover: borderMask.borderColorHover,
|
|
borderColorPress: borderMask.borderColorPress,
|
|
borderColorFocus: borderMask.borderColorFocus
|
|
};
|
|
}),
|
|
softenBorder: createMask((template, options) => {
|
|
const plain = skipMask.mask(template, options), softer = createSoftenMask().mask(template, options);
|
|
return {
|
|
...plain,
|
|
borderColor: softer.borderColor,
|
|
borderColorHover: softer.borderColorHover,
|
|
borderColorPress: softer.borderColorPress,
|
|
borderColorFocus: softer.borderColorFocus
|
|
};
|
|
}),
|
|
softenBorder2: createMask((template, options) => {
|
|
const plain = skipMask.mask(template, options), softer = createSoftenMask({
|
|
strength: 2
|
|
}).mask(template, options);
|
|
return {
|
|
...plain,
|
|
borderColor: softer.borderColor,
|
|
borderColorHover: softer.borderColorHover,
|
|
borderColorPress: softer.borderColorPress,
|
|
borderColorFocus: softer.borderColorFocus
|
|
};
|
|
})
|
|
};
|
|
|
|
// node_modules/@tamagui/themes/dist/esm/v3-themes.mjs
|
|
var import_web = require("@tamagui/core");
|
|
var colorTokens = {
|
|
light: {
|
|
blue: blue2,
|
|
gray: gray2,
|
|
green: green2,
|
|
orange: orange2,
|
|
pink: pink2,
|
|
purple: purple2,
|
|
red: red2,
|
|
yellow: yellow2
|
|
},
|
|
dark: {
|
|
blue,
|
|
gray,
|
|
green,
|
|
orange,
|
|
pink,
|
|
purple,
|
|
red,
|
|
yellow
|
|
}
|
|
};
|
|
var lightShadowColor = "rgba(0,0,0,0.04)";
|
|
var lightShadowColorStrong = "rgba(0,0,0,0.085)";
|
|
var darkShadowColor = "rgba(0,0,0,0.2)";
|
|
var darkShadowColorStrong = "rgba(0,0,0,0.3)";
|
|
var darkColors = {
|
|
...colorTokens.dark.blue,
|
|
...colorTokens.dark.gray,
|
|
...colorTokens.dark.green,
|
|
...colorTokens.dark.orange,
|
|
...colorTokens.dark.pink,
|
|
...colorTokens.dark.purple,
|
|
...colorTokens.dark.red,
|
|
...colorTokens.dark.yellow
|
|
};
|
|
var lightColors = {
|
|
...colorTokens.light.blue,
|
|
...colorTokens.light.gray,
|
|
...colorTokens.light.green,
|
|
...colorTokens.light.orange,
|
|
...colorTokens.light.pink,
|
|
...colorTokens.light.purple,
|
|
...colorTokens.light.red,
|
|
...colorTokens.light.yellow
|
|
};
|
|
var color = {
|
|
white0: "rgba(255,255,255,0)",
|
|
white075: "rgba(255,255,255,0.75)",
|
|
white05: "rgba(255,255,255,0.5)",
|
|
white025: "rgba(255,255,255,0.25)",
|
|
black0: "rgba(10,10,10,0)",
|
|
black075: "rgba(10,10,10,0.75)",
|
|
black05: "rgba(10,10,10,0.5)",
|
|
black025: "rgba(10,10,10,0.25)",
|
|
white1: "#fff",
|
|
white2: "#f8f8f8",
|
|
white3: "hsl(0, 0%, 96.3%)",
|
|
white4: "hsl(0, 0%, 94.1%)",
|
|
white5: "hsl(0, 0%, 92.0%)",
|
|
white6: "hsl(0, 0%, 90.0%)",
|
|
white7: "hsl(0, 0%, 88.5%)",
|
|
white8: "hsl(0, 0%, 81.0%)",
|
|
white9: "hsl(0, 0%, 56.1%)",
|
|
white10: "hsl(0, 0%, 50.3%)",
|
|
white11: "hsl(0, 0%, 42.5%)",
|
|
white12: "hsl(0, 0%, 9.0%)",
|
|
black1: "#050505",
|
|
black2: "#151515",
|
|
black3: "#191919",
|
|
black4: "#232323",
|
|
black5: "#282828",
|
|
black6: "#323232",
|
|
black7: "#424242",
|
|
black8: "#494949",
|
|
black9: "#545454",
|
|
black10: "#626262",
|
|
black11: "#a5a5a5",
|
|
black12: "#fff",
|
|
...postfixObjKeys(lightColors, "Light"),
|
|
...postfixObjKeys(darkColors, "Dark")
|
|
};
|
|
var palettes = (() => {
|
|
const transparent = /* @__PURE__ */ __name((hsl, opacity = 0) => hsl.replace("%)", `%, ${opacity})`).replace("hsl(", "hsla("), "transparent"), getColorPalette = /* @__PURE__ */ __name((colors, accentColors) => {
|
|
const colorPalette = Object.values(colors), colorI = colorPalette.length - 4, accentPalette = Object.values(accentColors), accentBackground = accentPalette[0], accentColor = accentPalette[accentPalette.length - 1];
|
|
return [accentBackground, transparent(colorPalette[0], 0), transparent(colorPalette[0], 0.25), transparent(colorPalette[0], 0.5), transparent(colorPalette[0], 0.75), ...colorPalette, transparent(colorPalette[colorI], 0.75), transparent(colorPalette[colorI], 0.5), transparent(colorPalette[colorI], 0.25), transparent(colorPalette[colorI], 0), accentColor];
|
|
}, "getColorPalette"), brandColor = {
|
|
light: color.blue4Light,
|
|
dark: color.blue4Dark
|
|
}, lightPalette = [brandColor.light, color.white0, color.white025, color.white05, color.white075, color.white1, color.white2, color.white3, color.white4, color.white5, color.white6, color.white7, color.white8, color.white9, color.white10, color.white11, color.white12, color.black075, color.black05, color.black025, color.black0, brandColor.dark], darkPalette = [brandColor.dark, color.black0, color.black025, color.black05, color.black075, color.black1, color.black2, color.black3, color.black4, color.black5, color.black6, color.black7, color.black8, color.black9, color.black10, color.black11, color.black12, color.white075, color.white05, color.white025, color.white0, brandColor.light], lightColorNames = objectKeys(colorTokens.light), lightPalettes = objectFromEntries2(lightColorNames.map((key, index3) => [`light_${key}`, getColorPalette(colorTokens.light[key], colorTokens.light[lightColorNames[(index3 + 1) % lightColorNames.length]])])), darkColorNames = objectKeys(colorTokens.dark), darkPalettes = objectFromEntries2(darkColorNames.map((key, index3) => [`dark_${key}`, getColorPalette(colorTokens.dark[key], colorTokens.light[darkColorNames[(index3 + 1) % darkColorNames.length]])])), colorPalettes = {
|
|
...lightPalettes,
|
|
...darkPalettes
|
|
};
|
|
return {
|
|
light: lightPalette,
|
|
dark: darkPalette,
|
|
...colorPalettes
|
|
};
|
|
})();
|
|
var getTemplates = /* @__PURE__ */ __name((scheme) => {
|
|
const isLight = scheme === "light", bgIndex = 5, lighten = isLight ? -1 : 1, darken = -lighten, borderColor = bgIndex + 3, base = {
|
|
accentBackground: 0,
|
|
accentColor: -0,
|
|
background0: 1,
|
|
background025: 2,
|
|
background05: 3,
|
|
background075: 4,
|
|
color1: bgIndex,
|
|
color2: bgIndex + 1,
|
|
color3: bgIndex + 2,
|
|
color4: bgIndex + 3,
|
|
color5: bgIndex + 4,
|
|
color6: bgIndex + 5,
|
|
color7: bgIndex + 6,
|
|
color8: bgIndex + 7,
|
|
color9: bgIndex + 8,
|
|
color10: bgIndex + 9,
|
|
color11: bgIndex + 10,
|
|
color12: bgIndex + 11,
|
|
color0: -1,
|
|
color025: -2,
|
|
color05: -3,
|
|
color075: -4,
|
|
// the background, color, etc keys here work like generics - they make it so you
|
|
// can publish components for others to use without mandating a specific color scale
|
|
// the @tamagui/button Button component looks for `$background`, so you set the
|
|
// dark_red_Button theme to have a stronger background than the dark_red theme.
|
|
background: bgIndex,
|
|
backgroundHover: bgIndex + lighten,
|
|
// always lighten on hover no matter the scheme
|
|
backgroundPress: bgIndex + darken,
|
|
// always darken on press no matter the theme
|
|
backgroundFocus: bgIndex + darken,
|
|
borderColor,
|
|
borderColorHover: borderColor + lighten,
|
|
borderColorPress: borderColor + darken,
|
|
borderColorFocus: borderColor,
|
|
color: -bgIndex,
|
|
colorHover: -bgIndex - 1,
|
|
colorPress: -bgIndex,
|
|
colorFocus: -bgIndex - 1,
|
|
colorTransparent: -1,
|
|
placeholderColor: -bgIndex - 3,
|
|
outlineColor: -2
|
|
}, surface12 = {
|
|
background: base.background + 1,
|
|
backgroundHover: base.backgroundHover + 1,
|
|
backgroundPress: base.backgroundPress + 1,
|
|
backgroundFocus: base.backgroundFocus + 1,
|
|
borderColor: base.borderColor + 1,
|
|
borderColorHover: base.borderColorHover + 1,
|
|
borderColorFocus: base.borderColorFocus + 1,
|
|
borderColorPress: base.borderColorPress + 1
|
|
}, surface22 = {
|
|
background: base.background + 2,
|
|
backgroundHover: base.backgroundHover + 2,
|
|
backgroundPress: base.backgroundPress + 2,
|
|
backgroundFocus: base.backgroundFocus + 2,
|
|
borderColor: base.borderColor + 2,
|
|
borderColorHover: base.borderColorHover + 2,
|
|
borderColorFocus: base.borderColorFocus + 2,
|
|
borderColorPress: base.borderColorPress + 2
|
|
}, surface32 = {
|
|
background: base.background + 3,
|
|
backgroundHover: base.backgroundHover + 3,
|
|
backgroundPress: base.backgroundPress + 3,
|
|
backgroundFocus: base.backgroundFocus + 3,
|
|
borderColor: base.borderColor + 3,
|
|
borderColorHover: base.borderColorHover + 3,
|
|
borderColorFocus: base.borderColorFocus + 3,
|
|
borderColorPress: base.borderColorPress + 3
|
|
}, surfaceActiveBg = {
|
|
background: base.background + 5,
|
|
backgroundHover: base.background + 5,
|
|
backgroundPress: base.backgroundPress + 5,
|
|
backgroundFocus: base.backgroundFocus + 5
|
|
}, surfaceActive = {
|
|
...surfaceActiveBg,
|
|
// match border to background when active
|
|
borderColor: surfaceActiveBg.background,
|
|
borderColorHover: surfaceActiveBg.backgroundHover,
|
|
borderColorFocus: surfaceActiveBg.backgroundFocus,
|
|
borderColorPress: surfaceActiveBg.backgroundPress
|
|
}, inverseSurface12 = {
|
|
color: surface12.background,
|
|
colorHover: surface12.backgroundHover,
|
|
colorPress: surface12.backgroundPress,
|
|
colorFocus: surface12.backgroundFocus,
|
|
background: base.color,
|
|
backgroundHover: base.colorHover,
|
|
backgroundPress: base.colorPress,
|
|
backgroundFocus: base.colorFocus,
|
|
borderColor: base.color - 2,
|
|
borderColorHover: base.color - 3,
|
|
borderColorFocus: base.color - 4,
|
|
borderColorPress: base.color - 5
|
|
}, inverseActive = {
|
|
...inverseSurface12,
|
|
background: base.color - 2,
|
|
backgroundHover: base.colorHover - 2,
|
|
backgroundPress: base.colorPress - 2,
|
|
backgroundFocus: base.colorFocus - 2,
|
|
borderColor: base.color - 2 - 2,
|
|
borderColorHover: base.color - 3 - 2,
|
|
borderColorFocus: base.color - 4 - 2,
|
|
borderColorPress: base.color - 5 - 2
|
|
}, alt1 = {
|
|
color: base.color - 1,
|
|
colorHover: base.colorHover - 1,
|
|
colorPress: base.colorPress - 1,
|
|
colorFocus: base.colorFocus - 1
|
|
}, alt2 = {
|
|
color: base.color - 2,
|
|
colorHover: base.colorHover - 2,
|
|
colorPress: base.colorPress - 2,
|
|
colorFocus: base.colorFocus - 2
|
|
};
|
|
return {
|
|
base,
|
|
alt1,
|
|
alt2,
|
|
surface1: surface12,
|
|
surface2: surface22,
|
|
surface3: surface32,
|
|
inverseSurface1: inverseSurface12,
|
|
inverseActive,
|
|
surfaceActive
|
|
};
|
|
}, "getTemplates");
|
|
var lightTemplates = getTemplates("light");
|
|
var darkTemplates = getTemplates("dark");
|
|
var templates = {
|
|
...objectFromEntries2(objectKeys(lightTemplates).map((name) => [`light_${name}`, lightTemplates[name]])),
|
|
...objectFromEntries2(objectKeys(darkTemplates).map((name) => [`dark_${name}`, darkTemplates[name]]))
|
|
};
|
|
var shadows = {
|
|
light: {
|
|
shadowColor: lightShadowColorStrong,
|
|
shadowColorHover: lightShadowColorStrong,
|
|
shadowColorPress: lightShadowColor,
|
|
shadowColorFocus: lightShadowColor
|
|
},
|
|
dark: {
|
|
shadowColor: darkShadowColorStrong,
|
|
shadowColorHover: darkShadowColorStrong,
|
|
shadowColorPress: darkShadowColor,
|
|
shadowColorFocus: darkShadowColor
|
|
}
|
|
};
|
|
var nonInherited = {
|
|
light: {
|
|
...lightColors,
|
|
...shadows.light
|
|
},
|
|
dark: {
|
|
...darkColors,
|
|
...shadows.dark
|
|
}
|
|
};
|
|
var overlayThemeDefinitions = [{
|
|
parent: "light",
|
|
theme: {
|
|
background: "rgba(0,0,0,0.5)"
|
|
}
|
|
}, {
|
|
parent: "dark",
|
|
theme: {
|
|
background: "rgba(0,0,0,0.8)"
|
|
}
|
|
}];
|
|
var inverseSurface1 = [{
|
|
parent: "active",
|
|
template: "inverseActive"
|
|
}, {
|
|
parent: "",
|
|
template: "inverseSurface1"
|
|
}];
|
|
var surface1 = [{
|
|
parent: "active",
|
|
template: "surfaceActive"
|
|
}, {
|
|
parent: "",
|
|
template: "surface1"
|
|
}];
|
|
var surface2 = [{
|
|
parent: "active",
|
|
template: "surfaceActive"
|
|
}, {
|
|
parent: "",
|
|
template: "surface2"
|
|
}];
|
|
var surface3 = [{
|
|
parent: "active",
|
|
template: "surfaceActive"
|
|
}, {
|
|
parent: "",
|
|
template: "surface3"
|
|
}];
|
|
var themeBuilder = createThemeBuilder().addPalettes(palettes).addTemplates(templates).addThemes({
|
|
light: {
|
|
template: "base",
|
|
palette: "light",
|
|
nonInheritedValues: nonInherited.light
|
|
},
|
|
dark: {
|
|
template: "base",
|
|
palette: "dark",
|
|
nonInheritedValues: nonInherited.dark
|
|
}
|
|
}).addChildThemes({
|
|
orange: {
|
|
palette: "orange",
|
|
template: "base"
|
|
},
|
|
yellow: {
|
|
palette: "yellow",
|
|
template: "base"
|
|
},
|
|
green: {
|
|
palette: "green",
|
|
template: "base"
|
|
},
|
|
blue: {
|
|
palette: "blue",
|
|
template: "base"
|
|
},
|
|
purple: {
|
|
palette: "purple",
|
|
template: "base"
|
|
},
|
|
pink: {
|
|
palette: "pink",
|
|
template: "base"
|
|
},
|
|
red: {
|
|
palette: "red",
|
|
template: "base"
|
|
},
|
|
gray: {
|
|
palette: "gray",
|
|
template: "base"
|
|
}
|
|
}).addChildThemes({
|
|
alt1: {
|
|
template: "alt1"
|
|
},
|
|
alt2: {
|
|
template: "alt2"
|
|
},
|
|
active: {
|
|
template: "surface3"
|
|
},
|
|
surface1: {
|
|
template: "surface1"
|
|
},
|
|
surface2: {
|
|
template: "surface2"
|
|
},
|
|
surface3: {
|
|
template: "surface3"
|
|
},
|
|
surface4: {
|
|
template: "surfaceActive"
|
|
}
|
|
}).addComponentThemes({
|
|
ListItem: {
|
|
template: "surface1"
|
|
},
|
|
SelectTrigger: surface1,
|
|
Card: surface1,
|
|
Button: surface3,
|
|
Checkbox: surface2,
|
|
Switch: surface2,
|
|
SwitchThumb: inverseSurface1,
|
|
TooltipContent: surface2,
|
|
Progress: {
|
|
template: "surface1"
|
|
},
|
|
RadioGroupItem: surface2,
|
|
TooltipArrow: {
|
|
template: "surface1"
|
|
},
|
|
SliderTrackActive: {
|
|
template: "surface3"
|
|
},
|
|
SliderTrack: {
|
|
template: "surface1"
|
|
},
|
|
SliderThumb: inverseSurface1,
|
|
Tooltip: inverseSurface1,
|
|
ProgressIndicator: inverseSurface1,
|
|
SheetOverlay: overlayThemeDefinitions,
|
|
DialogOverlay: overlayThemeDefinitions,
|
|
ModalOverlay: overlayThemeDefinitions,
|
|
Input: surface1,
|
|
TextArea: surface1
|
|
}, {
|
|
avoidNestingWithin: ["alt1", "alt2", "surface1", "surface2", "surface3", "surface4"]
|
|
});
|
|
var themesIn = themeBuilder.build();
|
|
var themes = themesIn;
|
|
var size = {
|
|
$0: 0,
|
|
"$0.25": 2,
|
|
"$0.5": 4,
|
|
"$0.75": 8,
|
|
$1: 20,
|
|
"$1.5": 24,
|
|
$2: 28,
|
|
"$2.5": 32,
|
|
$3: 36,
|
|
"$3.5": 40,
|
|
$4: 44,
|
|
$true: 44,
|
|
"$4.5": 48,
|
|
$5: 52,
|
|
$6: 64,
|
|
$7: 74,
|
|
$8: 84,
|
|
$9: 94,
|
|
$10: 104,
|
|
$11: 124,
|
|
$12: 144,
|
|
$13: 164,
|
|
$14: 184,
|
|
$15: 204,
|
|
$16: 224,
|
|
$17: 224,
|
|
$18: 244,
|
|
$19: 264,
|
|
$20: 284
|
|
};
|
|
var spaces = Object.entries(size).map(([k, v]) => [k, sizeToSpace(v)]);
|
|
var spacesNegative = spaces.slice(1).map(([k, v]) => [`-${k.slice(1)}`, -v]);
|
|
var space = {
|
|
...Object.fromEntries(spaces),
|
|
...Object.fromEntries(spacesNegative)
|
|
};
|
|
var zIndex = {
|
|
0: 0,
|
|
1: 100,
|
|
2: 200,
|
|
3: 300,
|
|
4: 400,
|
|
5: 500
|
|
};
|
|
var radius = {
|
|
0: 0,
|
|
1: 3,
|
|
2: 5,
|
|
3: 7,
|
|
4: 9,
|
|
true: 9,
|
|
5: 10,
|
|
6: 16,
|
|
7: 19,
|
|
8: 22,
|
|
9: 26,
|
|
10: 34,
|
|
11: 42,
|
|
12: 50
|
|
};
|
|
var tokens = (0, import_web.createTokens)({
|
|
color,
|
|
radius,
|
|
zIndex,
|
|
space,
|
|
size
|
|
});
|
|
function postfixObjKeys(obj, postfix) {
|
|
return Object.fromEntries(Object.entries(obj).map(([k, v]) => [`${k}${postfix}`, v]));
|
|
}
|
|
__name(postfixObjKeys, "postfixObjKeys");
|
|
function sizeToSpace(v) {
|
|
return v === 0 ? 0 : v === 2 ? 0.5 : v === 4 ? 1 : v === 8 ? 1.5 : v <= 16 ? Math.round(v * 0.333) : Math.floor(v * 0.7 - 12);
|
|
}
|
|
__name(sizeToSpace, "sizeToSpace");
|
|
function objectFromEntries2(arr) {
|
|
return Object.fromEntries(arr);
|
|
}
|
|
__name(objectFromEntries2, "objectFromEntries");
|
|
function objectKeys(obj) {
|
|
return Object.keys(obj);
|
|
}
|
|
__name(objectKeys, "objectKeys");
|
|
|
|
// node_modules/@tamagui/constants/dist/esm/constants.mjs
|
|
var import_react = require("react");
|
|
var isWeb = true;
|
|
var isWindowDefined = typeof window < "u";
|
|
var isServer = isWeb && !isWindowDefined;
|
|
var isClient = isWeb && isWindowDefined;
|
|
var useIsomorphicLayoutEffect = isServer ? import_react.useEffect : import_react.useLayoutEffect;
|
|
var isChrome = typeof navigator < "u" && /Chrome/.test(navigator.userAgent || "");
|
|
var isWebTouchable = isClient && ("ontouchstart" in window || navigator.maxTouchPoints > 0);
|
|
var isTouchable = !isWeb || isWebTouchable;
|
|
var isAndroid = false;
|
|
var isIos = false;
|
|
var currentPlatform = "web";
|
|
|
|
// node_modules/@tamagui/animations-css/dist/esm/createAnimations.mjs
|
|
var import_web2 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/use-presence/dist/esm/PresenceContext.mjs
|
|
var import_react2 = require("react");
|
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
var PresenceContext = (0, import_react2.createContext)(null);
|
|
var ResetPresence = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PresenceContext.Provider, {
|
|
value: null,
|
|
children: props.children
|
|
}), "ResetPresence");
|
|
|
|
// node_modules/@tamagui/use-presence/dist/esm/usePresence.mjs
|
|
var import_react3 = require("react");
|
|
function usePresence() {
|
|
const context = (0, import_react3.useContext)(PresenceContext);
|
|
if (!context)
|
|
return [true, null, context];
|
|
const {
|
|
id,
|
|
isPresent: isPresent2,
|
|
onExitComplete,
|
|
register
|
|
} = context;
|
|
return (0, import_react3.useEffect)(() => register(id), []), !isPresent2 && onExitComplete ? [false, () => onExitComplete == null ? void 0 : onExitComplete(id), context] : [true, void 0, context];
|
|
}
|
|
__name(usePresence, "usePresence");
|
|
function useIsPresent() {
|
|
return isPresent((0, import_react3.useContext)(PresenceContext));
|
|
}
|
|
__name(useIsPresent, "useIsPresent");
|
|
function isPresent(context) {
|
|
return context === null ? true : context.isPresent;
|
|
}
|
|
__name(isPresent, "isPresent");
|
|
|
|
// node_modules/@tamagui/animations-css/dist/esm/createAnimations.mjs
|
|
var import_react4 = require("react");
|
|
function createAnimations(animations) {
|
|
const reactionListeners = /* @__PURE__ */ new WeakMap();
|
|
return {
|
|
animations,
|
|
usePresence,
|
|
ResetPresence,
|
|
supportsCSSVars: true,
|
|
useAnimatedNumber(initial) {
|
|
const [val, setVal] = (0, import_react4.useState)(initial);
|
|
return {
|
|
getInstance() {
|
|
return setVal;
|
|
},
|
|
getValue() {
|
|
return val;
|
|
},
|
|
setValue(next, config2, onFinish) {
|
|
setVal(next);
|
|
const listeners = reactionListeners.get(setVal);
|
|
listeners && listeners.forEach((cb) => cb(next)), onFinish == null ? void 0 : onFinish();
|
|
},
|
|
stop() {
|
|
}
|
|
};
|
|
},
|
|
useAnimatedNumberReaction({
|
|
value
|
|
}, onValue) {
|
|
(0, import_react4.useEffect)(() => {
|
|
const instance = value.getInstance();
|
|
let queue = reactionListeners.get(instance);
|
|
if (!queue) {
|
|
const next = /* @__PURE__ */ new Set();
|
|
reactionListeners.set(instance, next), queue = next;
|
|
}
|
|
return queue.add(onValue), () => {
|
|
queue == null ? void 0 : queue.delete(onValue);
|
|
};
|
|
}, []);
|
|
},
|
|
useAnimatedNumberStyle(val, getStyle) {
|
|
return getStyle(val.getValue());
|
|
},
|
|
useAnimations: ({
|
|
props,
|
|
presence,
|
|
style,
|
|
componentState,
|
|
stateRef
|
|
}) => {
|
|
const isEntering = !!componentState.unmounted, isExiting = (presence == null ? void 0 : presence[0]) === false, sendExitComplete = presence == null ? void 0 : presence[1], [animationKey, animationConfig] = [].concat(props.animation), animation = animations[animationKey], keys = props.animateOnly ?? ["all"];
|
|
return useIsomorphicLayoutEffect(() => {
|
|
const host = stateRef.current.host;
|
|
if (!sendExitComplete || !isExiting || !host)
|
|
return;
|
|
const node = host, onFinishAnimation = /* @__PURE__ */ __name(() => {
|
|
sendExitComplete == null ? void 0 : sendExitComplete();
|
|
}, "onFinishAnimation");
|
|
return node.addEventListener("transitionend", onFinishAnimation), node.addEventListener("transitioncancel", onFinishAnimation), () => {
|
|
node.removeEventListener("transitionend", onFinishAnimation), node.removeEventListener("transitioncancel", onFinishAnimation);
|
|
};
|
|
}, [sendExitComplete, isExiting]), animation ? (Array.isArray(style.transform) && (style.transform = (0, import_web2.transformsToString)(style.transform)), style.transition = keys.map((key) => {
|
|
const override = animations[animationConfig == null ? void 0 : animationConfig[key]] ?? animation;
|
|
return `${key} ${override}`;
|
|
}).join(", "), process.env.NODE_ENV === "development" && props.debug && console.info("CSS animation", style, style.transition, {
|
|
isEntering,
|
|
isExiting
|
|
}), {
|
|
style
|
|
}) : null;
|
|
}
|
|
};
|
|
}
|
|
__name(createAnimations, "createAnimations");
|
|
|
|
// node_modules/@tamagui/config/dist/esm/animationsCSS.mjs
|
|
var smoothBezier = "cubic-bezier(0.215, 0.610, 0.355, 1.000)";
|
|
var animationsCSS = createAnimations({
|
|
"75ms": "ease-in 75ms",
|
|
"100ms": "ease-in 100ms",
|
|
"200ms": "ease-in 200ms",
|
|
bouncy: "ease-in 200ms",
|
|
superBouncy: "ease-in 500ms",
|
|
lazy: "ease-in 1000ms",
|
|
medium: "ease-in 300ms",
|
|
slow: "ease-in 500ms",
|
|
quick: `${smoothBezier} 400ms`,
|
|
quicker: `${smoothBezier} 300ms`,
|
|
quickest: `${smoothBezier} 200ms`,
|
|
tooltip: "ease-in 400ms"
|
|
});
|
|
|
|
// node_modules/@tamagui/font-inter/dist/esm/index.mjs
|
|
var import_core = require("@tamagui/core");
|
|
var createInterFont = /* @__PURE__ */ __name((font = {}, {
|
|
sizeLineHeight = /* @__PURE__ */ __name((size6) => size6 + 10, "sizeLineHeight"),
|
|
sizeSize = /* @__PURE__ */ __name((size6) => size6 * 1, "sizeSize")
|
|
} = {}) => {
|
|
const size6 = Object.fromEntries(Object.entries({
|
|
...defaultSizes,
|
|
...font.size
|
|
}).map(([k, v]) => [k, sizeSize(+v)]));
|
|
return (0, import_core.createFont)({
|
|
family: import_core.isWeb ? 'Inter, -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif' : "Inter",
|
|
lineHeight: Object.fromEntries(Object.entries(size6).map(([k, v]) => [k, sizeLineHeight((0, import_core.getVariableValue)(v))])),
|
|
weight: {
|
|
4: "300"
|
|
},
|
|
letterSpacing: {
|
|
4: 0
|
|
},
|
|
...font,
|
|
size: size6
|
|
});
|
|
}, "createInterFont");
|
|
var defaultSizes = {
|
|
1: 11,
|
|
2: 12,
|
|
3: 13,
|
|
4: 14,
|
|
true: 14,
|
|
5: 16,
|
|
6: 18,
|
|
7: 20,
|
|
8: 23,
|
|
9: 30,
|
|
10: 46,
|
|
11: 55,
|
|
12: 62,
|
|
13: 72,
|
|
14: 92,
|
|
15: 114,
|
|
16: 134
|
|
};
|
|
|
|
// node_modules/@tamagui/font-silkscreen/dist/esm/index.mjs
|
|
var import_core2 = require("@tamagui/core");
|
|
var createSilkscreenFont = /* @__PURE__ */ __name((font = {}) => (0, import_core2.createFont)({
|
|
family: import_core2.isWeb ? "Silkscreen, Fira Code, Monaco, Consolas, Ubuntu Mono, monospace" : "Silkscreen",
|
|
size: size2,
|
|
lineHeight: Object.fromEntries(Object.entries(font.size || size2).map(([k, v]) => [k, typeof v == "number" ? Math.round(v * 1.2 + 6) : v])),
|
|
weight: {
|
|
4: "300"
|
|
},
|
|
letterSpacing: {
|
|
4: 1,
|
|
5: 3,
|
|
6: 3,
|
|
9: -2,
|
|
10: -3,
|
|
12: -4
|
|
},
|
|
...font
|
|
}), "createSilkscreenFont");
|
|
var size2 = {
|
|
1: 11,
|
|
2: 12,
|
|
3: 13,
|
|
4: 14,
|
|
5: 15,
|
|
6: 16,
|
|
7: 18,
|
|
8: 21,
|
|
9: 28,
|
|
10: 42,
|
|
11: 52,
|
|
12: 62,
|
|
13: 72,
|
|
14: 92,
|
|
15: 114,
|
|
16: 124
|
|
};
|
|
|
|
// node_modules/@tamagui/config/dist/esm/createGenericFont.mjs
|
|
var import_web3 = require("@tamagui/core");
|
|
var genericFontSizes = {
|
|
1: 10,
|
|
2: 11,
|
|
3: 12,
|
|
4: 14,
|
|
5: 15,
|
|
6: 16,
|
|
7: 20,
|
|
8: 22,
|
|
9: 30,
|
|
10: 42,
|
|
11: 52,
|
|
12: 62,
|
|
13: 72,
|
|
14: 92,
|
|
15: 114,
|
|
16: 124
|
|
};
|
|
function createGenericFont(family, font = {}, {
|
|
sizeLineHeight = /* @__PURE__ */ __name((val) => val * 1.35, "sizeLineHeight")
|
|
} = {}) {
|
|
const size6 = font.size || genericFontSizes;
|
|
return (0, import_web3.createFont)({
|
|
family,
|
|
size: size6,
|
|
lineHeight: Object.fromEntries(Object.entries(size6).map(([k, v]) => [k, sizeLineHeight(+v)])),
|
|
weight: {
|
|
0: "300"
|
|
},
|
|
letterSpacing: {
|
|
4: 0
|
|
},
|
|
...font
|
|
});
|
|
}
|
|
__name(createGenericFont, "createGenericFont");
|
|
|
|
// node_modules/@tamagui/config/dist/esm/fonts.mjs
|
|
var silkscreenFont = createSilkscreenFont();
|
|
var headingFont = createInterFont({
|
|
size: {
|
|
5: 13,
|
|
6: 15,
|
|
9: 32,
|
|
10: 44
|
|
},
|
|
transform: {
|
|
6: "uppercase",
|
|
7: "none"
|
|
},
|
|
weight: {
|
|
6: "400",
|
|
7: "700"
|
|
},
|
|
color: {
|
|
6: "$colorFocus",
|
|
7: "$color"
|
|
},
|
|
letterSpacing: {
|
|
5: 2,
|
|
6: 1,
|
|
7: 0,
|
|
8: 0,
|
|
9: -1,
|
|
10: -1.5,
|
|
12: -2,
|
|
14: -3,
|
|
15: -4
|
|
},
|
|
// for native
|
|
face: {
|
|
700: {
|
|
normal: "InterBold"
|
|
},
|
|
800: {
|
|
normal: "InterBold"
|
|
},
|
|
900: {
|
|
normal: "InterBold"
|
|
}
|
|
}
|
|
}, {
|
|
sizeLineHeight: (size6) => Math.round(size6 * 1.1 + (size6 < 30 ? 10 : 5))
|
|
});
|
|
var bodyFont = createInterFont({
|
|
weight: {
|
|
1: "400",
|
|
7: "600"
|
|
}
|
|
}, {
|
|
sizeSize: (size6) => Math.round(size6),
|
|
sizeLineHeight: (size6) => Math.round(size6 * 1.1 + (size6 >= 12 ? 8 : 4))
|
|
});
|
|
var monoFont = createGenericFont('"ui-monospace", "SFMono-Regular", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace', {
|
|
weight: {
|
|
1: "500"
|
|
},
|
|
size: {
|
|
1: 11,
|
|
2: 12,
|
|
3: 13,
|
|
4: 14,
|
|
5: 16,
|
|
6: 18,
|
|
7: 20,
|
|
8: 22,
|
|
9: 30,
|
|
10: 42,
|
|
11: 52,
|
|
12: 62,
|
|
13: 72,
|
|
14: 92,
|
|
15: 114,
|
|
16: 124
|
|
}
|
|
}, {
|
|
sizeLineHeight: (x) => x * 1.5
|
|
});
|
|
var fonts = {
|
|
// noto: notoFont as any,
|
|
heading: headingFont,
|
|
body: bodyFont,
|
|
mono: monoFont,
|
|
silkscreen: silkscreenFont
|
|
};
|
|
|
|
// node_modules/@tamagui/config/node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs
|
|
var import_web4 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/config/node_modules/@tamagui/react-native-media-driver/dist/esm/matchMedia.mjs
|
|
var matchMedia = globalThis.matchMedia;
|
|
|
|
// node_modules/@tamagui/config/node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs
|
|
function createMedia(media2) {
|
|
return (0, import_web4.setupMatchMedia)(matchMedia), media2;
|
|
}
|
|
__name(createMedia, "createMedia");
|
|
|
|
// node_modules/@tamagui/config/dist/esm/media.mjs
|
|
var media = createMedia({
|
|
// for site
|
|
xl: {
|
|
maxWidth: 1650
|
|
},
|
|
lg: {
|
|
maxWidth: 1280
|
|
},
|
|
md: {
|
|
maxWidth: 1020
|
|
},
|
|
sm: {
|
|
maxWidth: 800
|
|
},
|
|
xs: {
|
|
maxWidth: 660
|
|
},
|
|
xxs: {
|
|
maxWidth: 390
|
|
},
|
|
gtXs: {
|
|
minWidth: 661
|
|
},
|
|
gtSm: {
|
|
minWidth: 801
|
|
},
|
|
gtMd: {
|
|
minWidth: 1021
|
|
},
|
|
gtLg: {
|
|
minWidth: 1281
|
|
},
|
|
gtXl: {
|
|
minWidth: 1651
|
|
}
|
|
});
|
|
var mediaQueryDefaultActive = {
|
|
xl: true,
|
|
lg: true,
|
|
md: true,
|
|
sm: true,
|
|
xs: true,
|
|
// false
|
|
xxs: false
|
|
};
|
|
|
|
// node_modules/@tamagui/config/dist/esm/v3.mjs
|
|
globalThis.global ||= globalThis;
|
|
var selectionStyles = /* @__PURE__ */ __name((theme) => theme.color5 ? {
|
|
backgroundColor: theme.color5,
|
|
color: theme.color11
|
|
} : null, "selectionStyles");
|
|
var themes2 = process.env.TAMAGUI_OPTIMIZE_THEMES === "true" ? {} : themes;
|
|
var config = {
|
|
animations: animationsCSS,
|
|
defaultFont: "body",
|
|
shouldAddPrefersColorThemes: true,
|
|
themeClassNameOnRoot: true,
|
|
themes: themes2,
|
|
media,
|
|
shorthands,
|
|
tokens,
|
|
fonts,
|
|
mediaQueryDefaultActive,
|
|
selectionStyles
|
|
};
|
|
|
|
// node_modules/tamagui/dist/esm/index.mjs
|
|
var esm_exports2 = {};
|
|
__export(esm_exports2, {
|
|
ACTIONS: () => ACTIONS,
|
|
Adapt: () => Adapt,
|
|
AdaptContents: () => AdaptContents,
|
|
AdaptParentContext: () => AdaptParentContext,
|
|
AlertDialog: () => AlertDialog,
|
|
AlertDialogAction: () => AlertDialogAction,
|
|
AlertDialogCancel: () => AlertDialogCancel,
|
|
AlertDialogContent: () => AlertDialogContent,
|
|
AlertDialogDescription: () => AlertDialogDescription,
|
|
AlertDialogOverlay: () => AlertDialogOverlay,
|
|
AlertDialogPortal: () => AlertDialogPortal,
|
|
AlertDialogTitle: () => AlertDialogTitle,
|
|
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
Anchor: () => Anchor,
|
|
AnimatePresence: () => AnimatePresence,
|
|
Article: () => Article,
|
|
Aside: () => Aside,
|
|
Avatar: () => Avatar,
|
|
AvatarFallback: () => AvatarFallback,
|
|
AvatarFallbackFrame: () => AvatarFallbackFrame,
|
|
AvatarFrame: () => AvatarFrame,
|
|
AvatarImage: () => AvatarImage,
|
|
Button: () => Button2,
|
|
ButtonContext: () => ButtonContext,
|
|
ButtonFrame: () => ButtonFrame,
|
|
ButtonIcon: () => ButtonIcon,
|
|
ButtonNestingContext: () => ButtonNestingContext,
|
|
ButtonText: () => ButtonText,
|
|
Card: () => Card,
|
|
CardBackground: () => CardBackground,
|
|
CardFooter: () => CardFooter,
|
|
CardFrame: () => CardFrame,
|
|
CardHeader: () => CardHeader,
|
|
Checkbox: () => Checkbox,
|
|
CheckboxContext: () => CheckboxContext,
|
|
CheckboxFrame: () => CheckboxFrame,
|
|
CheckboxIndicatorFrame: () => CheckboxIndicatorFrame,
|
|
CheckboxStyledContext: () => CheckboxStyledContext,
|
|
Circle: () => Circle,
|
|
ComponentContext: () => import_core60.ComponentContext,
|
|
Configuration: () => import_core60.Configuration,
|
|
Dialog: () => Dialog,
|
|
DialogClose: () => DialogClose,
|
|
DialogContent: () => DialogContent,
|
|
DialogDescription: () => DialogDescription,
|
|
DialogOverlay: () => DialogOverlay,
|
|
DialogOverlayFrame: () => DialogOverlayFrame,
|
|
DialogPortal: () => DialogPortal,
|
|
DialogPortalFrame: () => DialogPortalFrame,
|
|
DialogSheetContents: () => DialogSheetContents,
|
|
DialogTitle: () => DialogTitle,
|
|
DialogTrigger: () => DialogTrigger,
|
|
DialogWarningProvider: () => DialogWarningProvider,
|
|
EnsureFlexed: () => EnsureFlexed,
|
|
Fieldset: () => Fieldset,
|
|
FontLanguage: () => import_core60.FontLanguage,
|
|
Footer: () => Footer,
|
|
Form: () => Form2,
|
|
FormFrame: () => FormFrame,
|
|
FormProvider: () => FormProvider,
|
|
FormTrigger: () => FormTrigger,
|
|
ForwardSelectContext: () => ForwardSelectContext,
|
|
Frame: () => Frame,
|
|
Group: () => Group,
|
|
GroupFrame: () => GroupFrame,
|
|
H1: () => H1,
|
|
H2: () => H2,
|
|
H3: () => H3,
|
|
H4: () => H4,
|
|
H5: () => H5,
|
|
H6: () => H6,
|
|
Handle: () => Handle,
|
|
Header: () => Header,
|
|
Heading: () => Heading,
|
|
INITIAL_STATE: () => INITIAL_STATE,
|
|
Image: () => Image,
|
|
Input: () => Input,
|
|
InputFrame: () => InputFrame,
|
|
Label: () => Label,
|
|
LabelFrame: () => LabelFrame,
|
|
ListItem: () => ListItem2,
|
|
ListItemFrame: () => ListItemFrame,
|
|
ListItemSubtitle: () => ListItemSubtitle,
|
|
ListItemText: () => ListItemText,
|
|
ListItemTitle: () => ListItemTitle,
|
|
Main: () => Main,
|
|
Nav: () => Nav,
|
|
Overlay: () => Overlay,
|
|
Paragraph: () => Paragraph,
|
|
Popover: () => Popover,
|
|
PopoverAnchor: () => PopoverAnchor,
|
|
PopoverArrow: () => PopoverArrow,
|
|
PopoverClose: () => PopoverClose,
|
|
PopoverContent: () => PopoverContent,
|
|
PopoverContext: () => PopoverContext,
|
|
PopoverTrigger: () => PopoverTrigger,
|
|
Popper: () => Popper,
|
|
PopperAnchor: () => PopperAnchor,
|
|
PopperArrow: () => PopperArrow,
|
|
PopperContent: () => PopperContent,
|
|
PopperContentFrame: () => PopperContentFrame,
|
|
PopperContext: () => PopperContext,
|
|
PopperProvider: () => PopperProvider,
|
|
Portal: () => Portal,
|
|
PortalHost: () => PortalHost,
|
|
PortalItem: () => PortalItem,
|
|
PortalProvider: () => PortalProvider,
|
|
PresenceChild: () => PresenceChild,
|
|
PresenceContext: () => PresenceContext,
|
|
Progress: () => Progress,
|
|
ProgressFrame: () => ProgressFrame,
|
|
ProgressIndicator: () => ProgressIndicator,
|
|
ProgressIndicatorFrame: () => ProgressIndicatorFrame,
|
|
RadioGroup: () => RadioGroup,
|
|
RadioGroupFrame: () => RadioGroupFrame,
|
|
RadioGroupIndicatorFrame: () => RadioGroupIndicatorFrame,
|
|
RadioGroupItemFrame: () => RadioGroupItemFrame,
|
|
RadioGroupStyledContext: () => RadioGroupStyledContext,
|
|
Range: () => Range,
|
|
ResetPresence: () => ResetPresence,
|
|
ScrollView: () => ScrollView,
|
|
Section: () => Section,
|
|
Select: () => Select,
|
|
SelectGroupFrame: () => SelectGroupFrame,
|
|
SelectIcon: () => SelectIcon,
|
|
SelectItemParentProvider: () => SelectItemParentProvider,
|
|
SelectProvider: () => SelectProvider,
|
|
SelectSeparator: () => SelectSeparator,
|
|
Separator: () => Separator,
|
|
Sheet: () => Sheet,
|
|
SheetController: () => SheetController,
|
|
SheetControllerContext: () => SheetControllerContext,
|
|
SheetHandleFrame: () => SheetHandleFrame,
|
|
SheetOverlayFrame: () => SheetOverlayFrame,
|
|
SizableStack: () => SizableStack,
|
|
SizableText: () => SizableText,
|
|
Slider: () => Slider,
|
|
SliderFrame: () => SliderFrame,
|
|
SliderThumb: () => SliderThumb,
|
|
SliderThumbFrame: () => SliderThumbFrame,
|
|
SliderTrack: () => SliderTrack,
|
|
SliderTrackActive: () => SliderTrackActive,
|
|
SliderTrackActiveFrame: () => SliderTrackActiveFrame,
|
|
SliderTrackFrame: () => SliderTrackFrame,
|
|
Spacer: () => import_core60.Spacer,
|
|
Spinner: () => Spinner,
|
|
Square: () => Square,
|
|
Stack: () => import_core60.Stack,
|
|
Switch: () => Switch,
|
|
SwitchContext: () => SwitchContext,
|
|
SwitchFrame: () => SwitchFrame,
|
|
SwitchStyledContext: () => SwitchStyledContext,
|
|
SwitchThumb: () => SwitchThumb,
|
|
Tabs: () => Tabs,
|
|
TamaguiProvider: () => TamaguiProvider,
|
|
Text: () => Text3,
|
|
TextArea: () => TextArea,
|
|
TextAreaFrame: () => TextAreaFrame,
|
|
Theme: () => import_core60.Theme,
|
|
ThemeableStack: () => ThemeableStack,
|
|
Thumb: () => Thumb,
|
|
ToggleGroup: () => ToggleGroup,
|
|
Tooltip: () => Tooltip2,
|
|
TooltipGroup: () => TooltipGroup,
|
|
TooltipSimple: () => TooltipSimple,
|
|
Track: () => Track,
|
|
Unspaced: () => import_core60.Unspaced,
|
|
View: () => import_core60.View,
|
|
VisuallyHidden: () => VisuallyHidden,
|
|
XGroup: () => XGroup,
|
|
XStack: () => XStack,
|
|
YGroup: () => YGroup,
|
|
YStack: () => YStack,
|
|
ZStack: () => ZStack,
|
|
buttonStaticConfig: () => buttonStaticConfig,
|
|
clamp: () => clamp,
|
|
composeEventHandlers: () => composeEventHandlers,
|
|
composeRefs: () => composeRefs,
|
|
concatClassName: () => concatClassName,
|
|
configureInitialWindowDimensions: () => configureInitialWindowDimensions,
|
|
createAlertDialogScope: () => createAlertDialogScope,
|
|
createAvatarScope: () => createAvatarScope,
|
|
createCheckbox: () => createCheckbox,
|
|
createComponent: () => import_core60.createComponent,
|
|
createContext: () => createContext4,
|
|
createContextScope: () => createContextScope,
|
|
createDialogScope: () => createDialogScope,
|
|
createFont: () => import_core60.createFont,
|
|
createMedia: () => createMedia2,
|
|
createProgressScope: () => createProgressScope,
|
|
createRadioGroup: () => createRadioGroup,
|
|
createSelectContext: () => createSelectContext,
|
|
createSelectItemParentContext: () => createSelectItemParentContext,
|
|
createSelectItemParentScope: () => createSelectItemParentScope,
|
|
createSelectScope: () => createSelectScope,
|
|
createSheet: () => createSheet,
|
|
createSheetScope: () => createSheetScope,
|
|
createShorthands: () => import_core60.createShorthands,
|
|
createStyledContext: () => import_core60.createStyledContext,
|
|
createSwitch: () => createSwitch,
|
|
createTamagui: () => createTamagui,
|
|
createTheme: () => import_core60.createTheme,
|
|
createTokens: () => import_core60.createTokens,
|
|
createVariable: () => import_core60.createVariable,
|
|
debounce: () => debounce,
|
|
defaultStyles: () => defaultStyles,
|
|
fullscreenStyle: () => fullscreenStyle,
|
|
getConfig: () => import_core60.getConfig,
|
|
getFontSize: () => getFontSize,
|
|
getFontSizeToken: () => getFontSizeToken,
|
|
getFontSizeVariable: () => getFontSizeVariable,
|
|
getMedia: () => import_core60.getMedia,
|
|
getShapeSize: () => getShapeSize,
|
|
getStylesAtomic: () => import_core60.getStylesAtomic,
|
|
getThemes: () => import_core60.getThemes,
|
|
getToken: () => import_core60.getToken,
|
|
getTokenValue: () => import_core60.getTokenValue,
|
|
getTokens: () => import_core60.getTokens,
|
|
getVariable: () => import_core60.getVariable,
|
|
getVariableName: () => import_core60.getVariableName,
|
|
getVariableValue: () => import_core60.getVariableValue,
|
|
insertFont: () => import_core60.insertFont,
|
|
isChrome: () => import_core60.isChrome,
|
|
isClient: () => import_core60.isClient,
|
|
isPresent: () => isPresent,
|
|
isServer: () => import_core60.isServer,
|
|
isServerSide: () => isServerSide,
|
|
isTamaguiComponent: () => import_core60.isTamaguiComponent,
|
|
isTamaguiElement: () => import_core60.isTamaguiElement,
|
|
isTouchable: () => import_core60.isTouchable,
|
|
isVariable: () => import_core60.isVariable,
|
|
isWeb: () => import_core60.isWeb,
|
|
isWebTouchable: () => import_core60.isWebTouchable,
|
|
matchMedia: () => import_core60.matchMedia,
|
|
mediaObjectToString: () => import_core60.mediaObjectToString,
|
|
mediaQueryConfig: () => import_core60.mediaQueryConfig,
|
|
mediaState: () => import_core60.mediaState,
|
|
prevent: () => prevent,
|
|
setRef: () => setRef,
|
|
setupDev: () => import_core60.setupDev,
|
|
setupNativeSheet: () => setupNativeSheet,
|
|
setupReactNative: () => import_core60.setupReactNative,
|
|
shouldRenderNativePlatform: () => shouldRenderNativePlatform,
|
|
simpleHash: () => simpleHash,
|
|
spacedChildren: () => import_core60.spacedChildren,
|
|
stylePropsAll: () => stylePropsAll,
|
|
stylePropsFont: () => stylePropsFont,
|
|
stylePropsText: () => stylePropsText,
|
|
stylePropsTextOnly: () => stylePropsTextOnly,
|
|
stylePropsTransform: () => stylePropsTransform,
|
|
stylePropsUnitless: () => stylePropsUnitless,
|
|
stylePropsView: () => stylePropsView,
|
|
styled: () => import_core60.styled,
|
|
themeable: () => import_core60.themeable,
|
|
themeableVariants: () => themeableVariants,
|
|
tokenCategories: () => tokenCategories,
|
|
useAdaptParent: () => useAdaptParent,
|
|
useButton: () => useButton,
|
|
useComposedRefs: () => useComposedRefs,
|
|
useConfiguration: () => import_core60.useConfiguration,
|
|
useControllableState: () => useControllableState,
|
|
useCurrentColor: () => useCurrentColor,
|
|
useDebounce: () => useDebounce,
|
|
useDebounceValue: () => useDebounceValue,
|
|
useDidFinishSSR: () => import_core60.useDidFinishSSR,
|
|
useEvent: () => import_core60.useEvent,
|
|
useFloatingContext: () => useFloatingContext,
|
|
useForceUpdate: () => useForceUpdate,
|
|
useFormContext: () => useFormContext,
|
|
useGet: () => import_core60.useGet,
|
|
useGetThemedIcon: () => useGetThemedIcon,
|
|
useGroupItem: () => useGroupItem,
|
|
useInputProps: () => useInputProps,
|
|
useIsPresent: () => useIsPresent,
|
|
useIsTouchDevice: () => import_core60.useIsTouchDevice,
|
|
useIsomorphicLayoutEffect: () => import_core60.useIsomorphicLayoutEffect,
|
|
useLabelContext: () => useLabelContext,
|
|
useListItem: () => useListItem,
|
|
useMedia: () => import_core60.useMedia,
|
|
usePopoverContext: () => usePopoverContext,
|
|
usePopperContext: () => usePopperContext,
|
|
usePortal: () => usePortal,
|
|
usePresence: () => usePresence,
|
|
useProps: () => import_core60.useProps,
|
|
usePropsAndStyle: () => import_core60.usePropsAndStyle,
|
|
useSelectContext: () => useSelectContext,
|
|
useSelectItemParentContext: () => useSelectItemParentContext,
|
|
useSheet: () => useSheet,
|
|
useSheetController: () => useSheetController,
|
|
useStyle: () => import_core60.useStyle,
|
|
useTabsContext: () => useTabsContext,
|
|
useTheme: () => import_core60.useTheme,
|
|
useThemeName: () => import_core60.useThemeName,
|
|
useWindowDimensions: () => useWindowDimensions2,
|
|
validPseudoKeys: () => validPseudoKeys,
|
|
validStyles: () => validStyles,
|
|
variableToString: () => import_core60.variableToString,
|
|
withStaticProperties: () => import_core60.withStaticProperties,
|
|
wrapChildrenInText: () => wrapChildrenInText
|
|
});
|
|
__reExport(esm_exports2, __toESM(require_cjs19(), 1));
|
|
|
|
// node_modules/@tamagui/adapt/dist/esm/Adapt.mjs
|
|
var import_core3 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/simple-hash/dist/esm/index.mjs
|
|
var cache = /* @__PURE__ */ new Map();
|
|
var simpleHash = /* @__PURE__ */ __name((str, hashMin = 10) => {
|
|
if (cache.has(str))
|
|
return cache.get(str);
|
|
let hash = 0, valids = "";
|
|
const len = str.length;
|
|
for (let i = 0; i < len; i++) {
|
|
const char = str.charCodeAt(i);
|
|
if (hashMin !== "strict" && (char === 46 && (valids += "d0t"), isValidCSSCharCode(char) && len <= hashMin)) {
|
|
valids += str[i];
|
|
continue;
|
|
}
|
|
hash = hashChar(hash, str[i]);
|
|
}
|
|
const res = valids + (hash ? Math.abs(hash) : "");
|
|
return cache.size > 1e4 && cache.clear(), cache.set(str, res), res;
|
|
}, "simpleHash");
|
|
var hashChar = /* @__PURE__ */ __name((hash, c) => Math.imul(31, hash) + c.charCodeAt(0) | 0, "hashChar");
|
|
function isValidCSSCharCode(code) {
|
|
return (
|
|
// A-Z
|
|
code >= 65 && code <= 90 || // a-z
|
|
code >= 97 && code <= 122 || // _
|
|
code === 95 || // -
|
|
code === 45 || // 0-9
|
|
code >= 48 && code <= 57
|
|
);
|
|
}
|
|
__name(isValidCSSCharCode, "isValidCSSCharCode");
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/clamp.mjs
|
|
function clamp(value, [min2, max2]) {
|
|
return Math.min(max2, Math.max(min2, value));
|
|
}
|
|
__name(clamp, "clamp");
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/composeEventHandlers.mjs
|
|
function composeEventHandlers(og, next, {
|
|
checkDefaultPrevented = true
|
|
} = {}) {
|
|
return !og || !next ? next || og || void 0 : (event) => {
|
|
if (og == null ? void 0 : og(event), !event || !(checkDefaultPrevented && "defaultPrevented" in event) || // @ts-ignore
|
|
"defaultPrevented" in event && !event.defaultPrevented)
|
|
return next == null ? void 0 : next(event);
|
|
};
|
|
}
|
|
__name(composeEventHandlers, "composeEventHandlers");
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/concatClassName.mjs
|
|
function concatClassName(_cn) {
|
|
const args = arguments, usedPrefixes = [];
|
|
let final = "";
|
|
const len = args.length;
|
|
let propObjects = null;
|
|
for (let x = len; x >= 0; x--) {
|
|
const cns = args[x];
|
|
if (!cns)
|
|
continue;
|
|
if (!Array.isArray(cns) && typeof cns != "string") {
|
|
propObjects = propObjects || [], propObjects.push(cns);
|
|
continue;
|
|
}
|
|
const names = Array.isArray(cns) ? cns : cns.split(" "), numNames = names.length;
|
|
for (let i = numNames - 1; i >= 0; i--) {
|
|
const name = names[i];
|
|
if (!name || name === " ")
|
|
continue;
|
|
if (name[0] !== "_") {
|
|
final = name + " " + final;
|
|
continue;
|
|
}
|
|
const splitIndex = name.indexOf("-");
|
|
if (splitIndex < 1) {
|
|
final = name + " " + final;
|
|
continue;
|
|
}
|
|
const isMediaQuery = name[splitIndex + 1] === "_", styleKey = name.slice(1, name.lastIndexOf("-")), mediaKey = isMediaQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null, uid = mediaKey ? styleKey + mediaKey : styleKey;
|
|
if (usedPrefixes.indexOf(uid) > -1)
|
|
continue;
|
|
usedPrefixes.push(uid);
|
|
const propName = styleKey;
|
|
propName && propObjects && propObjects.some((po) => {
|
|
if (mediaKey) {
|
|
const propKey = pseudoInvert[mediaKey];
|
|
return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
|
|
}
|
|
return po && propName in po && po[propName] !== null;
|
|
}) || (final = name + " " + final);
|
|
}
|
|
}
|
|
return final;
|
|
}
|
|
__name(concatClassName, "concatClassName");
|
|
var pseudoInvert = {
|
|
hover: "hoverStyle",
|
|
focus: "focusStyle",
|
|
press: "pressStyle",
|
|
focusVisible: "focusVisibleStyle",
|
|
disabled: "disabledStyle"
|
|
};
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/shouldRenderNativePlatform.mjs
|
|
var ALL_PLATFORMS = ["web", "android", "ios"];
|
|
function shouldRenderNativePlatform(nativeProp) {
|
|
if (!nativeProp)
|
|
return null;
|
|
const userRequestedPlatforms = resolvePlatformNames(nativeProp);
|
|
for (const platform2 of ALL_PLATFORMS)
|
|
if (platform2 === currentPlatform && userRequestedPlatforms.has(platform2))
|
|
return platform2;
|
|
return null;
|
|
}
|
|
__name(shouldRenderNativePlatform, "shouldRenderNativePlatform");
|
|
function resolvePlatformNames(nativeProp) {
|
|
const platforms = nativeProp === true ? ALL_PLATFORMS : nativeProp === false ? [] : Array.isArray(nativeProp) ? nativeProp : [nativeProp], set = new Set(platforms);
|
|
return set.has("mobile") && (set.add("android"), set.add("ios"), set.delete("mobile")), set;
|
|
}
|
|
__name(resolvePlatformNames, "resolvePlatformNames");
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/validStyleProps.mjs
|
|
var textColors = {
|
|
color: true,
|
|
textDecorationColor: true,
|
|
textShadowColor: true
|
|
};
|
|
var tokenCategories = {
|
|
radius: {
|
|
borderRadius: true,
|
|
borderTopLeftRadius: true,
|
|
borderTopRightRadius: true,
|
|
borderBottomLeftRadius: true,
|
|
borderBottomRightRadius: true,
|
|
// logical
|
|
borderStartStartRadius: true,
|
|
borderStartEndRadius: true,
|
|
borderEndStartRadius: true,
|
|
borderEndEndRadius: true
|
|
},
|
|
size: {
|
|
width: true,
|
|
height: true,
|
|
minWidth: true,
|
|
minHeight: true,
|
|
maxWidth: true,
|
|
maxHeight: true,
|
|
blockSize: true,
|
|
minBlockSize: true,
|
|
maxBlockSize: true,
|
|
inlineSize: true,
|
|
minInlineSize: true,
|
|
maxInlineSize: true
|
|
},
|
|
zIndex: {
|
|
zIndex: true
|
|
},
|
|
color: {
|
|
backgroundColor: true,
|
|
borderColor: true,
|
|
borderBlockStartColor: true,
|
|
borderBlockEndColor: true,
|
|
borderBlockColor: true,
|
|
borderBottomColor: true,
|
|
borderInlineColor: true,
|
|
borderInlineStartColor: true,
|
|
borderInlineEndColor: true,
|
|
borderTopColor: true,
|
|
borderLeftColor: true,
|
|
borderRightColor: true,
|
|
borderEndColor: true,
|
|
borderStartColor: true,
|
|
shadowColor: true,
|
|
...textColors,
|
|
outlineColor: true,
|
|
caretColor: true
|
|
}
|
|
};
|
|
var stylePropsUnitless = {
|
|
WebkitLineClamp: true,
|
|
animationIterationCount: true,
|
|
aspectRatio: true,
|
|
borderImageOutset: true,
|
|
borderImageSlice: true,
|
|
borderImageWidth: true,
|
|
columnCount: true,
|
|
flex: true,
|
|
flexGrow: true,
|
|
flexOrder: true,
|
|
flexPositive: true,
|
|
flexShrink: true,
|
|
flexNegative: true,
|
|
fontWeight: true,
|
|
gridRow: true,
|
|
gridRowEnd: true,
|
|
gridRowGap: true,
|
|
gridRowStart: true,
|
|
gridColumn: true,
|
|
gridColumnEnd: true,
|
|
gridColumnGap: true,
|
|
gridColumnStart: true,
|
|
lineClamp: true,
|
|
opacity: true,
|
|
order: true,
|
|
orphans: true,
|
|
tabSize: true,
|
|
widows: true,
|
|
zIndex: true,
|
|
zoom: true,
|
|
scale: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
scaleZ: true,
|
|
shadowOpacity: true
|
|
};
|
|
var stylePropsTransform = {
|
|
x: true,
|
|
y: true,
|
|
scale: true,
|
|
perspective: true,
|
|
scaleX: true,
|
|
scaleY: true,
|
|
skewX: true,
|
|
skewY: true,
|
|
matrix: true,
|
|
rotate: true,
|
|
rotateY: true,
|
|
rotateX: true,
|
|
rotateZ: true
|
|
};
|
|
var stylePropsView = {
|
|
backfaceVisibility: true,
|
|
borderBottomEndRadius: true,
|
|
borderBottomStartRadius: true,
|
|
borderBottomWidth: true,
|
|
borderLeftWidth: true,
|
|
borderRightWidth: true,
|
|
borderBlockWidth: true,
|
|
borderBlockEndWidth: true,
|
|
borderBlockStartWidth: true,
|
|
borderInlineWidth: true,
|
|
borderInlineEndWidth: true,
|
|
borderInlineStartWidth: true,
|
|
borderStyle: true,
|
|
borderBlockStyle: true,
|
|
borderBlockEndStyle: true,
|
|
borderBlockStartStyle: true,
|
|
borderInlineStyle: true,
|
|
borderInlineEndStyle: true,
|
|
borderInlineStartStyle: true,
|
|
borderTopEndRadius: true,
|
|
borderTopStartRadius: true,
|
|
borderTopWidth: true,
|
|
borderWidth: true,
|
|
transform: true,
|
|
transformOrigin: true,
|
|
alignContent: true,
|
|
alignItems: true,
|
|
alignSelf: true,
|
|
borderEndWidth: true,
|
|
borderStartWidth: true,
|
|
bottom: true,
|
|
display: true,
|
|
end: true,
|
|
flexBasis: true,
|
|
flexDirection: true,
|
|
flexWrap: true,
|
|
gap: true,
|
|
columnGap: true,
|
|
rowGap: true,
|
|
justifyContent: true,
|
|
left: true,
|
|
margin: true,
|
|
marginBlock: true,
|
|
marginBlockEnd: true,
|
|
marginBlockStart: true,
|
|
marginInline: true,
|
|
marginInlineStart: true,
|
|
marginInlineEnd: true,
|
|
marginBottom: true,
|
|
marginEnd: true,
|
|
marginHorizontal: true,
|
|
marginLeft: true,
|
|
marginRight: true,
|
|
marginStart: true,
|
|
marginTop: true,
|
|
marginVertical: true,
|
|
overflow: true,
|
|
padding: true,
|
|
paddingBottom: true,
|
|
paddingInline: true,
|
|
paddingBlock: true,
|
|
paddingBlockStart: true,
|
|
paddingInlineEnd: true,
|
|
paddingInlineStart: true,
|
|
paddingEnd: true,
|
|
paddingHorizontal: true,
|
|
paddingLeft: true,
|
|
paddingRight: true,
|
|
paddingStart: true,
|
|
paddingTop: true,
|
|
paddingVertical: true,
|
|
position: true,
|
|
right: true,
|
|
start: true,
|
|
top: true,
|
|
inset: true,
|
|
insetBlock: true,
|
|
insetBlockEnd: true,
|
|
insetBlockStart: true,
|
|
insetInline: true,
|
|
insetInlineEnd: true,
|
|
insetInlineStart: true,
|
|
direction: true,
|
|
shadowOffset: true,
|
|
shadowRadius: true,
|
|
...tokenCategories.color,
|
|
...tokenCategories.radius,
|
|
...tokenCategories.size,
|
|
...tokenCategories.radius,
|
|
...stylePropsTransform,
|
|
...stylePropsUnitless,
|
|
// RN doesn't support specific border styles per-edge
|
|
borderBottomStyle: true,
|
|
borderTopStyle: true,
|
|
borderLeftStyle: true,
|
|
borderRightStyle: true,
|
|
caretColor: true,
|
|
scrollbarWidth: true,
|
|
overflowX: true,
|
|
overflowY: true,
|
|
userSelect: true,
|
|
cursor: true,
|
|
contain: true,
|
|
pointerEvents: true,
|
|
boxSizing: true,
|
|
boxShadow: true,
|
|
outlineStyle: true,
|
|
outlineOffset: true,
|
|
outlineWidth: true,
|
|
touchAction: true,
|
|
filter: true,
|
|
backdropFilter: true,
|
|
mixBlendMode: true,
|
|
backgroundImage: true,
|
|
backgroundOrigin: true,
|
|
backgroundPosition: true,
|
|
backgroundRepeat: true,
|
|
backgroundSize: true,
|
|
backgroundColor: true,
|
|
backgroundClip: true,
|
|
backgroundBlendMode: true,
|
|
backgroundAttachment: true,
|
|
background: true,
|
|
clipPath: true,
|
|
transformStyle: true,
|
|
mask: true,
|
|
maskImage: true,
|
|
textEmphasis: true,
|
|
borderImage: true,
|
|
float: true,
|
|
content: true,
|
|
overflowBlock: true,
|
|
overflowInline: true,
|
|
maskBorder: true,
|
|
maskBorderMode: true,
|
|
maskBorderOutset: true,
|
|
maskBorderRepeat: true,
|
|
maskBorderSlice: true,
|
|
maskBorderSource: true,
|
|
maskBorderWidth: true,
|
|
maskClip: true,
|
|
maskComposite: true,
|
|
maskMode: true,
|
|
maskOrigin: true,
|
|
maskPosition: true,
|
|
maskRepeat: true,
|
|
maskSize: true,
|
|
maskType: true,
|
|
...isAndroid ? {
|
|
elevationAndroid: true
|
|
} : {}
|
|
};
|
|
var stylePropsFont = {
|
|
fontFamily: true,
|
|
fontSize: true,
|
|
fontStyle: true,
|
|
fontWeight: true,
|
|
letterSpacing: true,
|
|
lineHeight: true,
|
|
textTransform: true
|
|
};
|
|
var stylePropsTextOnly = {
|
|
...stylePropsFont,
|
|
textAlign: true,
|
|
textDecorationLine: true,
|
|
textDecorationStyle: true,
|
|
...textColors,
|
|
textShadowOffset: true,
|
|
textShadowRadius: true,
|
|
userSelect: true,
|
|
selectable: true,
|
|
verticalAlign: true,
|
|
whiteSpace: true,
|
|
wordWrap: true,
|
|
textOverflow: true,
|
|
textDecorationDistance: true,
|
|
cursor: true,
|
|
WebkitLineClamp: true,
|
|
WebkitBoxOrient: true
|
|
};
|
|
var stylePropsText = {
|
|
...stylePropsView,
|
|
...stylePropsTextOnly
|
|
};
|
|
var stylePropsAll = stylePropsText;
|
|
var validPseudoKeys = {
|
|
enterStyle: true,
|
|
exitStyle: true,
|
|
hoverStyle: true,
|
|
pressStyle: true,
|
|
focusStyle: true,
|
|
disabledStyle: true,
|
|
focusVisibleStyle: true
|
|
};
|
|
var validStyles = {
|
|
...validPseudoKeys,
|
|
...stylePropsView
|
|
};
|
|
|
|
// node_modules/@tamagui/helpers/dist/esm/withStaticProperties.mjs
|
|
var import_react5 = require("react");
|
|
var Decorated = Symbol();
|
|
var withStaticProperties = /* @__PURE__ */ __name((component, staticProps) => {
|
|
const next = (() => {
|
|
if (component[Decorated]) {
|
|
const _ = (0, import_react5.forwardRef)((props, ref) => (0, import_react5.createElement)(component, {
|
|
...props,
|
|
ref
|
|
}));
|
|
for (const key in component) {
|
|
const v = component[key];
|
|
_[key] = v && typeof v == "object" ? {
|
|
...v
|
|
} : v;
|
|
}
|
|
}
|
|
return component;
|
|
})();
|
|
return Object.assign(next, staticProps), next[Decorated] = true, next;
|
|
}, "withStaticProperties");
|
|
|
|
// node_modules/@tamagui/adapt/dist/esm/Adapt.mjs
|
|
var import_react6 = require("react");
|
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
var AdaptParentContext = (0, import_react6.createContext)(null);
|
|
var AdaptContents = /* @__PURE__ */ __name((props) => {
|
|
const context = (0, import_react6.useContext)(AdaptParentContext);
|
|
if (!(context == null ? void 0 : context.Contents))
|
|
throw new Error(process.env.NODE_ENV === "production" ? "tamagui.dev/docs/intro/errors#warning-002" : "You're rendering a Tamagui <Adapt /> component without nesting it inside a parent that is able to adapt.");
|
|
return (0, import_react6.createElement)(context.Contents, props);
|
|
}, "AdaptContents");
|
|
AdaptContents.shouldForwardSpace = true;
|
|
var useAdaptParent = /* @__PURE__ */ __name(({
|
|
Contents
|
|
}) => {
|
|
const [when, setWhen] = (0, import_react6.useState)(null);
|
|
return {
|
|
AdaptProvider: (0, import_react6.useMemo)(() => {
|
|
const context = {
|
|
Contents,
|
|
setWhen
|
|
};
|
|
function AdaptProviderView(props) {
|
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(AdaptParentContext.Provider, {
|
|
value: context,
|
|
children: props.children
|
|
});
|
|
}
|
|
__name(AdaptProviderView, "AdaptProviderView");
|
|
return AdaptProviderView;
|
|
}, [Contents]),
|
|
when
|
|
};
|
|
}, "useAdaptParent");
|
|
var Adapt = withStaticProperties(function({
|
|
platform: platform2,
|
|
when,
|
|
children
|
|
}) {
|
|
const context = (0, import_react6.useContext)(AdaptParentContext), media2 = (0, import_core3.useMedia)();
|
|
let enabled = !platform2;
|
|
return platform2 === "touch" && (enabled = isTouchable), platform2 === "native" && (enabled = !isWeb), platform2 === "web" && (enabled = isWeb), platform2 === "ios" && (enabled = isIos), platform2 === "android" && (enabled = isAndroid), when && !media2[when] && (enabled = false), useIsomorphicLayoutEffect(() => {
|
|
enabled && (context == null ? void 0 : context.setWhen(when || enabled));
|
|
}, [when, context, enabled]), enabled ? children : null;
|
|
}, {
|
|
Contents: AdaptContents
|
|
});
|
|
|
|
// node_modules/@tamagui/compose-refs/dist/esm/compose-refs.mjs
|
|
var React = __toESM(require("react"), 1);
|
|
function setRef(ref, value) {
|
|
typeof ref == "function" ? ref(value) : ref && (ref.current = value);
|
|
}
|
|
__name(setRef, "setRef");
|
|
function composeRefs(...refs) {
|
|
return (node) => refs.forEach((ref) => setRef(ref, node));
|
|
}
|
|
__name(composeRefs, "composeRefs");
|
|
function useComposedRefs(...refs) {
|
|
return React.useCallback(composeRefs(...refs), refs);
|
|
}
|
|
__name(useComposedRefs, "useComposedRefs");
|
|
|
|
// node_modules/@tamagui/alert-dialog/dist/esm/AlertDialog.mjs
|
|
var import_core17 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/create-context/dist/esm/create-context.mjs
|
|
var React2 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
function createContext4(rootComponentName, defaultContext) {
|
|
const Context = React2.createContext(defaultContext);
|
|
function Provider(props) {
|
|
const {
|
|
children,
|
|
...context
|
|
} = props, value = React2.useMemo(() => context, Object.values(context));
|
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Context.Provider, {
|
|
value,
|
|
children
|
|
});
|
|
}
|
|
__name(Provider, "Provider");
|
|
function useContext17(consumerName) {
|
|
const context = React2.useContext(Context);
|
|
if (context)
|
|
return context;
|
|
if (defaultContext !== void 0)
|
|
return defaultContext;
|
|
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
}
|
|
__name(useContext17, "useContext");
|
|
return Provider.displayName = `${rootComponentName}Provider`, [Provider, useContext17];
|
|
}
|
|
__name(createContext4, "createContext");
|
|
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
let defaultContexts = [];
|
|
function createContext22(rootComponentName, defaultContext) {
|
|
const BaseContext = React2.createContext(defaultContext), index3 = defaultContexts.length;
|
|
defaultContexts = [...defaultContexts, defaultContext];
|
|
function Provider(props) {
|
|
var _a;
|
|
const {
|
|
scope,
|
|
children,
|
|
...context
|
|
} = props, Context = ((_a = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a[index3]) || BaseContext, value = React2.useMemo(() => context, Object.values(context));
|
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Context.Provider, {
|
|
value,
|
|
children
|
|
});
|
|
}
|
|
__name(Provider, "Provider");
|
|
function useContext17(consumerName, scope, options) {
|
|
var _a;
|
|
const Context = ((_a = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a[index3]) || BaseContext, context = React2.useContext(Context);
|
|
if (context)
|
|
return context;
|
|
if (defaultContext !== void 0)
|
|
return defaultContext;
|
|
const missingContextMessage = `\`${consumerName}\` must be used within \`${rootComponentName}\``;
|
|
if (options == null ? void 0 : options.fallback)
|
|
return (options == null ? void 0 : options.warn) !== false && console.warn(missingContextMessage), options.fallback;
|
|
throw new Error(missingContextMessage);
|
|
}
|
|
__name(useContext17, "useContext");
|
|
return Provider.displayName = `${rootComponentName}Provider`, [Provider, useContext17];
|
|
}
|
|
__name(createContext22, "createContext2");
|
|
const createScope = /* @__PURE__ */ __name(() => {
|
|
const scopeContexts = defaultContexts.map((defaultContext) => React2.createContext(defaultContext));
|
|
return function(scope) {
|
|
const contexts = (scope == null ? void 0 : scope[scopeName]) || scopeContexts;
|
|
return React2.useMemo(() => ({
|
|
[`__scope${scopeName}`]: {
|
|
...scope,
|
|
[scopeName]: contexts
|
|
}
|
|
}), [scope, contexts]);
|
|
};
|
|
}, "createScope");
|
|
return createScope.scopeName = scopeName, [createContext22, composeContextScopes(createScope, ...createContextScopeDeps)];
|
|
}
|
|
__name(createContextScope, "createContextScope");
|
|
function composeContextScopes(...scopes) {
|
|
const baseScope = scopes[0];
|
|
if (scopes.length === 1)
|
|
return baseScope;
|
|
const createScope = /* @__PURE__ */ __name(() => {
|
|
const scopeHooks = scopes.map((createScope2) => ({
|
|
useScope: createScope2(),
|
|
scopeName: createScope2.scopeName
|
|
}));
|
|
return function(overrideScopes) {
|
|
const nextScopes = scopeHooks.reduce((nextScopes2, {
|
|
useScope,
|
|
scopeName
|
|
}) => {
|
|
const currentScope = useScope(overrideScopes)[`__scope${scopeName}`];
|
|
return {
|
|
...nextScopes2,
|
|
...currentScope
|
|
};
|
|
}, {});
|
|
return React2.useMemo(() => ({
|
|
[`__scope${baseScope.scopeName}`]: nextScopes
|
|
}), [nextScopes]);
|
|
};
|
|
}, "createScope");
|
|
return createScope.scopeName = baseScope.scopeName, createScope;
|
|
}
|
|
__name(composeContextScopes, "composeContextScopes");
|
|
|
|
// node_modules/@tamagui/use-force-update/dist/esm/index.mjs
|
|
var import_react7 = require("react");
|
|
var isServerSide = typeof window > "u";
|
|
var idFn = /* @__PURE__ */ __name(() => {
|
|
}, "idFn");
|
|
function useForceUpdate() {
|
|
return isServerSide ? idFn : (0, import_react7.useReducer)((x) => Math.random(), 0)[1];
|
|
}
|
|
__name(useForceUpdate, "useForceUpdate");
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/esm/AnimatePresence.mjs
|
|
var import_react11 = require("react");
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/esm/LayoutGroupContext.mjs
|
|
var import_react8 = require("react");
|
|
var LayoutGroupContext = (0, import_react8.createContext)({});
|
|
|
|
// node_modules/@tamagui/use-constant/dist/esm/index.mjs
|
|
var import_react9 = require("react");
|
|
function useConstant(fn) {
|
|
if (typeof document > "u")
|
|
return (0, import_react9.useMemo)(() => fn(), []);
|
|
const ref = (0, import_react9.useRef)();
|
|
return ref.current || (ref.current = {
|
|
v: fn()
|
|
}), ref.current.v;
|
|
}
|
|
__name(useConstant, "useConstant");
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/esm/PresenceChild.mjs
|
|
var React3 = __toESM(require("react"), 1);
|
|
var import_react10 = require("react");
|
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
var PresenceChild = React3.memo(({
|
|
children,
|
|
initial,
|
|
isPresent: isPresent2,
|
|
onExitComplete,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
presenceAffectsLayout,
|
|
custom
|
|
}) => {
|
|
const presenceChildren = useConstant(newChildrenMap), id = (0, import_react10.useId)() || "", context = React3.useMemo(
|
|
() => ({
|
|
id,
|
|
initial,
|
|
isPresent: isPresent2,
|
|
custom,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
onExitComplete: () => {
|
|
presenceChildren.set(id, true);
|
|
for (const isComplete of presenceChildren.values())
|
|
if (!isComplete)
|
|
return;
|
|
onExitComplete == null ? void 0 : onExitComplete();
|
|
},
|
|
register: () => (presenceChildren.set(id, false), () => presenceChildren.delete(id))
|
|
}),
|
|
/**
|
|
* If the presence of a child affects the layout of the components around it,
|
|
* we want to make a new context value to ensure they get re-rendered
|
|
* so they can detect that layout change.
|
|
*/
|
|
// @ts-expect-error its ok
|
|
presenceAffectsLayout ? void 0 : [isPresent2, exitVariant, enterVariant]
|
|
);
|
|
return React3.useMemo(() => {
|
|
presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
|
|
}, [isPresent2]), React3.useEffect(() => {
|
|
!isPresent2 && !presenceChildren.size && (onExitComplete == null ? void 0 : onExitComplete());
|
|
}, [isPresent2]), /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PresenceContext.Provider, {
|
|
value: context,
|
|
children
|
|
});
|
|
});
|
|
function newChildrenMap() {
|
|
return /* @__PURE__ */ new Map();
|
|
}
|
|
__name(newChildrenMap, "newChildrenMap");
|
|
|
|
// node_modules/@tamagui/animate-presence/dist/esm/AnimatePresence.mjs
|
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
var getChildKey = /* @__PURE__ */ __name((child) => child.key || "", "getChildKey");
|
|
function updateChildLookup(children, allChildren) {
|
|
children.forEach((child) => {
|
|
const key = getChildKey(child);
|
|
allChildren.set(key, child);
|
|
});
|
|
}
|
|
__name(updateChildLookup, "updateChildLookup");
|
|
function onlyElements(children) {
|
|
const filtered = [];
|
|
return import_react11.Children.forEach(children, (child) => {
|
|
(0, import_react11.isValidElement)(child) && filtered.push(child);
|
|
}), filtered;
|
|
}
|
|
__name(onlyElements, "onlyElements");
|
|
var AnimatePresence = /* @__PURE__ */ __name(({
|
|
children,
|
|
enterVariant,
|
|
exitVariant,
|
|
enterExitVariant,
|
|
initial = true,
|
|
onExitComplete,
|
|
exitBeforeEnter,
|
|
presenceAffectsLayout = true,
|
|
custom
|
|
}) => {
|
|
let forceRender = (0, import_react11.useContext)(LayoutGroupContext).forceRender ?? useForceUpdate();
|
|
const filteredChildren = onlyElements(children), presentChildren = (0, import_react11.useRef)(filteredChildren), allChildren = (0, import_react11.useRef)(/* @__PURE__ */ new Map()).current, exiting = (0, import_react11.useRef)(/* @__PURE__ */ new Set()).current;
|
|
updateChildLookup(filteredChildren, allChildren);
|
|
const isInitialRender = (0, import_react11.useRef)(true);
|
|
if (isInitialRender.current)
|
|
return isInitialRender.current = false, /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, {
|
|
children: filteredChildren.map((child) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PresenceChild, {
|
|
isPresent: true,
|
|
enterExitVariant,
|
|
exitVariant,
|
|
enterVariant,
|
|
initial: initial ? void 0 : false,
|
|
presenceAffectsLayout,
|
|
custom,
|
|
children: child
|
|
}, getChildKey(child)))
|
|
});
|
|
let childrenToRender = [...filteredChildren];
|
|
const presentKeys = presentChildren.current.map(getChildKey), targetKeys = filteredChildren.map(getChildKey), numPresent = presentKeys.length;
|
|
for (let i = 0; i < numPresent; i++) {
|
|
const key = presentKeys[i];
|
|
targetKeys.indexOf(key) === -1 ? exiting.add(key) : exiting.delete(key);
|
|
}
|
|
return exitBeforeEnter && exiting.size && (childrenToRender = []), exiting.forEach((key) => {
|
|
if (targetKeys.indexOf(key) !== -1)
|
|
return;
|
|
const child = allChildren.get(key);
|
|
if (!child)
|
|
return;
|
|
const insertionIndex = presentKeys.indexOf(key), exitingComponent = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PresenceChild, {
|
|
isPresent: false,
|
|
onExitComplete: () => {
|
|
allChildren.delete(key), exiting.delete(key);
|
|
const removeIndex = presentChildren.current.findIndex((presentChild) => presentChild.key === key);
|
|
presentChildren.current.splice(removeIndex, 1), exiting.size || (presentChildren.current = filteredChildren, forceRender(), onExitComplete == null ? void 0 : onExitComplete());
|
|
},
|
|
presenceAffectsLayout,
|
|
enterExitVariant,
|
|
enterVariant,
|
|
exitVariant,
|
|
custom,
|
|
children: child
|
|
}, getChildKey(child));
|
|
childrenToRender.splice(insertionIndex, 0, exitingComponent);
|
|
}), childrenToRender = childrenToRender.map((child) => {
|
|
const key = child.key;
|
|
return exiting.has(key) ? child : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(PresenceChild, {
|
|
isPresent: true,
|
|
exitVariant,
|
|
enterVariant,
|
|
enterExitVariant,
|
|
presenceAffectsLayout,
|
|
custom,
|
|
children: child
|
|
}, getChildKey(child));
|
|
}), presentChildren.current = childrenToRender, /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_jsx_runtime5.Fragment, {
|
|
children: exiting.size ? childrenToRender : (
|
|
// biome-ignore lint/correctness/useJsxKeyInIterable: <explanation>
|
|
childrenToRender.map((child) => (0, import_react11.cloneElement)(child))
|
|
)
|
|
});
|
|
}, "AnimatePresence");
|
|
AnimatePresence.displayName = "AnimatePresence";
|
|
|
|
// node_modules/@tamagui/aria-hidden/dist/esm/AriaHidden.mjs
|
|
var import_aria_hidden = __toESM(require_es5(), 1);
|
|
|
|
// node_modules/@tamagui/dialog/dist/esm/Dialog.mjs
|
|
var import_core16 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/use-callback-ref/dist/esm/index.mjs
|
|
var React4 = __toESM(require("react"), 1);
|
|
function useCallbackRef(callback) {
|
|
const callbackRef = React4.useRef(callback);
|
|
return React4.useEffect(() => {
|
|
callbackRef.current = callback;
|
|
}), React4.useMemo(() => (...args) => {
|
|
var _a;
|
|
return (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef, ...args);
|
|
}, []);
|
|
}
|
|
__name(useCallbackRef, "useCallbackRef");
|
|
|
|
// node_modules/@tamagui/use-escape-keydown/dist/esm/index.mjs
|
|
var import_react12 = require("react");
|
|
function useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis == null ? void 0 : globalThis.document) {
|
|
const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);
|
|
(0, import_react12.useEffect)(() => {
|
|
const handleKeyDown = /* @__PURE__ */ __name((event) => {
|
|
event.key === "Escape" && onEscapeKeyDown(event);
|
|
}, "handleKeyDown");
|
|
return ownerDocument.addEventListener("keydown", handleKeyDown), () => {
|
|
ownerDocument.removeEventListener("keydown", handleKeyDown);
|
|
};
|
|
}, [onEscapeKeyDown, ownerDocument]);
|
|
}
|
|
__name(useEscapeKeydown, "useEscapeKeydown");
|
|
|
|
// node_modules/@tamagui/use-event/dist/esm/useGet.mjs
|
|
var import_react13 = require("react");
|
|
function useGet(currentValue, initialValue2, forwardToFunction) {
|
|
const curRef = (0, import_react13.useRef)(initialValue2 ?? currentValue);
|
|
return useIsomorphicLayoutEffect(() => {
|
|
curRef.current = currentValue;
|
|
}), (0, import_react13.useCallback)(forwardToFunction ? (...args) => {
|
|
var _a;
|
|
return (_a = curRef.current) == null ? void 0 : _a.apply(null, args);
|
|
} : () => curRef.current, []);
|
|
}
|
|
__name(useGet, "useGet");
|
|
|
|
// node_modules/@tamagui/use-event/dist/esm/useEvent.mjs
|
|
function useEvent(callback) {
|
|
return useGet(callback, defaultValue, true);
|
|
}
|
|
__name(useEvent, "useEvent");
|
|
var defaultValue = /* @__PURE__ */ __name(() => {
|
|
throw new Error("Cannot call an event handler while rendering.");
|
|
}, "defaultValue");
|
|
|
|
// node_modules/@tamagui/dismissable/dist/esm/Dismissable.mjs
|
|
var React5 = __toESM(require("react"), 1);
|
|
var ReactDOM = __toESM(require("react-dom"), 1);
|
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
function dispatchDiscreteCustomEvent(target, event) {
|
|
target && ReactDOM.flushSync(() => target.dispatchEvent(event));
|
|
}
|
|
__name(dispatchDiscreteCustomEvent, "dispatchDiscreteCustomEvent");
|
|
var DISMISSABLE_LAYER_NAME = "Dismissable";
|
|
var CONTEXT_UPDATE = "dismissable.update";
|
|
var POINTER_DOWN_OUTSIDE = "dismissable.pointerDownOutside";
|
|
var FOCUS_OUTSIDE = "dismissable.focusOutside";
|
|
var originalBodyPointerEvents;
|
|
var DismissableContext = React5.createContext({
|
|
layers: /* @__PURE__ */ new Set(),
|
|
layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
|
|
branches: /* @__PURE__ */ new Set()
|
|
});
|
|
var Dismissable = React5.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
disableOutsidePointerEvents = false,
|
|
forceUnmount,
|
|
onEscapeKeyDown,
|
|
onPointerDownOutside,
|
|
onFocusOutside,
|
|
onInteractOutside,
|
|
onDismiss,
|
|
...layerProps
|
|
} = props, context = React5.useContext(DismissableContext), [node, setNode] = React5.useState(null), [, force] = React5.useState({}), composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2)), layers = Array.from(context.layers), [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1), highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled), index3 = node ? layers.indexOf(node) : -1, isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0, isPointerEventsEnabled = index3 >= highestLayerWithOutsidePointerEventsDisabledIndex, pointerDownOutside = usePointerDownOutside((event) => {
|
|
const target = event.target, isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
|
|
!isPointerEventsEnabled || isPointerDownOnBranch || (onPointerDownOutside == null ? void 0 : onPointerDownOutside(event), onInteractOutside == null ? void 0 : onInteractOutside(event), event.defaultPrevented || (onDismiss == null ? void 0 : onDismiss()));
|
|
}), focusOutside = useFocusOutside((event) => {
|
|
const target = event.target;
|
|
[...context.branches].some((branch) => branch.contains(target)) || (onFocusOutside == null ? void 0 : onFocusOutside(event), onInteractOutside == null ? void 0 : onInteractOutside(event), event.defaultPrevented || (onDismiss == null ? void 0 : onDismiss()));
|
|
});
|
|
return useEscapeKeydown((event) => {
|
|
index3 === context.layers.size - 1 && (onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(event), !event.defaultPrevented && onDismiss && (event.preventDefault(), onDismiss()));
|
|
}), React5.useEffect(() => {
|
|
if (node)
|
|
return disableOutsidePointerEvents && (context.layersWithOutsidePointerEventsDisabled.size === 0 && (originalBodyPointerEvents = document.body.style.pointerEvents, document.body.style.pointerEvents = "none"), context.layersWithOutsidePointerEventsDisabled.add(node)), context.layers.add(node), dispatchUpdate(), () => {
|
|
disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1 && (document.body.style.pointerEvents = originalBodyPointerEvents);
|
|
};
|
|
}, [node, disableOutsidePointerEvents, context]), React5.useEffect(() => {
|
|
if (!forceUnmount)
|
|
return () => {
|
|
node && (context.layers.delete(node), context.layersWithOutsidePointerEventsDisabled.delete(node), dispatchUpdate());
|
|
};
|
|
}, [node, context, forceUnmount]), React5.useEffect(() => {
|
|
const handleUpdate = /* @__PURE__ */ __name(() => {
|
|
force({});
|
|
}, "handleUpdate");
|
|
return document.addEventListener(CONTEXT_UPDATE, handleUpdate), () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
|
|
}, []), /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", {
|
|
...layerProps,
|
|
ref: composedRefs,
|
|
style: {
|
|
display: "contents",
|
|
pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
|
|
// @ts-ignore
|
|
...props.style
|
|
},
|
|
onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
|
|
onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
|
|
onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
|
|
});
|
|
});
|
|
Dismissable.displayName = DISMISSABLE_LAYER_NAME;
|
|
var BRANCH_NAME = "DismissableBranch";
|
|
var DismissableBranch = React5.forwardRef((props, forwardedRef) => {
|
|
const context = React5.useContext(DismissableContext), ref = React5.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref);
|
|
return React5.useEffect(() => {
|
|
const node = ref.current;
|
|
if (node)
|
|
return context.branches.add(node), () => {
|
|
context.branches.delete(node);
|
|
};
|
|
}, [context.branches]), /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", {
|
|
style: {
|
|
display: "contents"
|
|
},
|
|
...props,
|
|
ref: composedRefs
|
|
});
|
|
});
|
|
DismissableBranch.displayName = BRANCH_NAME;
|
|
function usePointerDownOutside(onPointerDownOutside) {
|
|
const handlePointerDownOutside = useEvent(onPointerDownOutside), isPointerInsideReactTreeRef = React5.useRef(false), handleClickRef = React5.useRef(() => {
|
|
});
|
|
return React5.useEffect(() => {
|
|
const handlePointerDown = /* @__PURE__ */ __name((event) => {
|
|
if (event.target && !isPointerInsideReactTreeRef.current) {
|
|
let handleAndDispatchPointerDownOutsideEvent = /* @__PURE__ */ __name(function() {
|
|
handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {
|
|
discrete: true
|
|
});
|
|
}, "handleAndDispatchPointerDownOutsideEvent");
|
|
const eventDetail = {
|
|
originalEvent: event
|
|
};
|
|
event.pointerType === "touch" ? (document.removeEventListener("click", handleClickRef.current), handleClickRef.current = handleAndDispatchPointerDownOutsideEvent, document.addEventListener("click", handleClickRef.current, {
|
|
once: true
|
|
})) : handleAndDispatchPointerDownOutsideEvent();
|
|
}
|
|
isPointerInsideReactTreeRef.current = false;
|
|
}, "handlePointerDown"), timerId = setTimeout(() => {
|
|
document.addEventListener("pointerdown", handlePointerDown);
|
|
}, 0);
|
|
return () => {
|
|
window.clearTimeout(timerId), document.removeEventListener("pointerdown", handlePointerDown), document.removeEventListener("click", handleClickRef.current);
|
|
};
|
|
}, [handlePointerDownOutside]), {
|
|
// ensures we check React component tree (not just DOM tree)
|
|
onPointerDownCapture: () => {
|
|
isPointerInsideReactTreeRef.current = true;
|
|
}
|
|
};
|
|
}
|
|
__name(usePointerDownOutside, "usePointerDownOutside");
|
|
function useFocusOutside(onFocusOutside) {
|
|
const handleFocusOutside = useEvent(onFocusOutside), isFocusInsideReactTreeRef = React5.useRef(false);
|
|
return React5.useEffect(() => {
|
|
const handleFocus = /* @__PURE__ */ __name((event) => {
|
|
event.target && !isFocusInsideReactTreeRef.current && handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, {
|
|
originalEvent: event
|
|
}, {
|
|
discrete: false
|
|
});
|
|
}, "handleFocus");
|
|
return document.addEventListener("focusin", handleFocus), () => document.removeEventListener("focusin", handleFocus);
|
|
}, [handleFocusOutside]), {
|
|
onFocusCapture: () => {
|
|
isFocusInsideReactTreeRef.current = true;
|
|
},
|
|
onBlurCapture: () => {
|
|
isFocusInsideReactTreeRef.current = false;
|
|
}
|
|
};
|
|
}
|
|
__name(useFocusOutside, "useFocusOutside");
|
|
function dispatchUpdate() {
|
|
const event = new CustomEvent(CONTEXT_UPDATE);
|
|
document.dispatchEvent(event);
|
|
}
|
|
__name(dispatchUpdate, "dispatchUpdate");
|
|
function handleAndDispatchCustomEvent(name, handler, detail, {
|
|
discrete
|
|
}) {
|
|
const target = detail.originalEvent.target, event = new CustomEvent(name, {
|
|
bubbles: false,
|
|
cancelable: true,
|
|
detail
|
|
});
|
|
handler && target.addEventListener(name, handler, {
|
|
once: true
|
|
}), discrete ? dispatchDiscreteCustomEvent(target, event) : target.dispatchEvent(event);
|
|
}
|
|
__name(handleAndDispatchCustomEvent, "handleAndDispatchCustomEvent");
|
|
|
|
// node_modules/@tamagui/focus-scope/dist/esm/FocusScope.mjs
|
|
var React6 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
var AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
var AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
var EVENT_OPTIONS = {
|
|
bubbles: false,
|
|
cancelable: true
|
|
};
|
|
var FocusScope = React6.forwardRef(function(props, forwardedRef) {
|
|
const childProps = useFocusScope(props, forwardedRef);
|
|
return typeof props.children == "function" ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, {
|
|
children: props.children(childProps)
|
|
}) : React6.cloneElement(React6.Children.only(props.children), childProps);
|
|
});
|
|
function useFocusScope(props, forwardedRef) {
|
|
const {
|
|
loop = false,
|
|
enabled = true,
|
|
trapped = false,
|
|
onMountAutoFocus: onMountAutoFocusProp,
|
|
onUnmountAutoFocus: onUnmountAutoFocusProp,
|
|
forceUnmount,
|
|
children,
|
|
...scopeProps
|
|
} = props, [container, setContainer] = React6.useState(null), onMountAutoFocus = useEvent(onMountAutoFocusProp), onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp), lastFocusedElementRef = React6.useRef(null), composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node)), focusScope = React6.useRef({
|
|
paused: false,
|
|
pause() {
|
|
this.paused = true;
|
|
},
|
|
resume() {
|
|
this.paused = false;
|
|
}
|
|
}).current;
|
|
React6.useEffect(() => {
|
|
if (!enabled || !trapped)
|
|
return;
|
|
const controller = new AbortController();
|
|
function handleFocusIn(event) {
|
|
if (focusScope.paused || !container)
|
|
return;
|
|
const target = event.target;
|
|
container.contains(target) ? (target == null ? void 0 : target.addEventListener("blur", handleBlur, {
|
|
signal: controller.signal
|
|
}), lastFocusedElementRef.current = target) : focus(lastFocusedElementRef.current, {
|
|
select: true
|
|
});
|
|
}
|
|
__name(handleFocusIn, "handleFocusIn");
|
|
function handleFocusOut(event) {
|
|
controller.abort(), !(focusScope.paused || !container) && (container.contains(event.relatedTarget) || focus(lastFocusedElementRef.current, {
|
|
select: true
|
|
}));
|
|
}
|
|
__name(handleFocusOut, "handleFocusOut");
|
|
function handleBlur() {
|
|
lastFocusedElementRef.current = container;
|
|
}
|
|
__name(handleBlur, "handleBlur");
|
|
return document.addEventListener("focusin", handleFocusIn), document.addEventListener("focusout", handleFocusOut), () => {
|
|
controller.abort(), document.removeEventListener("focusin", handleFocusIn), document.removeEventListener("focusout", handleFocusOut);
|
|
};
|
|
}, [trapped, forceUnmount, container, focusScope.paused]), React6.useEffect(() => {
|
|
if (!enabled || !container || forceUnmount)
|
|
return;
|
|
focusScopesStack.add(focusScope);
|
|
const previouslyFocusedElement = document.activeElement;
|
|
if (!container.contains(previouslyFocusedElement)) {
|
|
const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
|
|
if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
|
|
const candidates = removeLinks(getTabbableCandidates(container));
|
|
focusFirst(candidates, {
|
|
select: true
|
|
}), document.activeElement === previouslyFocusedElement && focus(container);
|
|
}
|
|
}
|
|
return () => {
|
|
container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
|
|
const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
|
|
container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, {
|
|
select: true
|
|
}), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
|
|
};
|
|
}, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
|
|
const handleKeyDown = React6.useCallback((event) => {
|
|
if (!trapped || !loop || focusScope.paused)
|
|
return;
|
|
const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey, focusedElement = document.activeElement;
|
|
if (isTabKey && focusedElement) {
|
|
const container2 = event.currentTarget, [first, last] = getTabbableEdges(container2);
|
|
first && last ? !event.shiftKey && focusedElement === last ? (event.preventDefault(), loop && focus(first, {
|
|
select: true
|
|
})) : event.shiftKey && focusedElement === first && (event.preventDefault(), loop && focus(last, {
|
|
select: true
|
|
})) : focusedElement === container2 && event.preventDefault();
|
|
}
|
|
}, [loop, trapped, focusScope.paused]);
|
|
return {
|
|
tabIndex: -1,
|
|
...scopeProps,
|
|
ref: composedRefs,
|
|
onKeyDown: handleKeyDown
|
|
};
|
|
}
|
|
__name(useFocusScope, "useFocusScope");
|
|
function focusFirst(candidates, {
|
|
select = false
|
|
} = {}) {
|
|
const previouslyFocusedElement = document.activeElement;
|
|
for (const candidate of candidates)
|
|
if (focus(candidate, {
|
|
select
|
|
}), document.activeElement !== previouslyFocusedElement)
|
|
return;
|
|
}
|
|
__name(focusFirst, "focusFirst");
|
|
function getTabbableEdges(container) {
|
|
const candidates = getTabbableCandidates(container), first = findVisible(candidates, container), last = findVisible(candidates.reverse(), container);
|
|
return [first, last];
|
|
}
|
|
__name(getTabbableEdges, "getTabbableEdges");
|
|
function getTabbableCandidates(container) {
|
|
const nodes = [], walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
|
|
acceptNode: (node) => {
|
|
const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
|
|
return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
|
|
}
|
|
});
|
|
for (; walker.nextNode(); )
|
|
nodes.push(walker.currentNode);
|
|
return nodes;
|
|
}
|
|
__name(getTabbableCandidates, "getTabbableCandidates");
|
|
function findVisible(elements, container) {
|
|
for (const element of elements)
|
|
if (!isHidden(element, {
|
|
upTo: container
|
|
}))
|
|
return element;
|
|
}
|
|
__name(findVisible, "findVisible");
|
|
function isHidden(node, {
|
|
upTo
|
|
}) {
|
|
if (getComputedStyle(node).visibility === "hidden")
|
|
return true;
|
|
for (; node; ) {
|
|
if (upTo !== void 0 && node === upTo)
|
|
return false;
|
|
if (getComputedStyle(node).display === "none")
|
|
return true;
|
|
node = node.parentElement;
|
|
}
|
|
return false;
|
|
}
|
|
__name(isHidden, "isHidden");
|
|
function isSelectableInput(element) {
|
|
return element instanceof HTMLInputElement && "select" in element;
|
|
}
|
|
__name(isSelectableInput, "isSelectableInput");
|
|
function focus(element, {
|
|
select = false
|
|
} = {}) {
|
|
if (element == null ? void 0 : element.focus) {
|
|
const previouslyFocusedElement = document.activeElement;
|
|
element.focus({
|
|
preventScroll: true
|
|
}), element !== previouslyFocusedElement && isSelectableInput(element) && select && element.select();
|
|
}
|
|
}
|
|
__name(focus, "focus");
|
|
var focusScopesStack = createFocusScopesStack();
|
|
function createFocusScopesStack() {
|
|
let stack = [];
|
|
return {
|
|
add(focusScope) {
|
|
const activeFocusScope = stack[0];
|
|
focusScope !== activeFocusScope && (activeFocusScope == null ? void 0 : activeFocusScope.pause()), stack = arrayRemove(stack, focusScope), stack.unshift(focusScope);
|
|
},
|
|
remove(focusScope) {
|
|
var _a;
|
|
stack = arrayRemove(stack, focusScope), (_a = stack[0]) == null ? void 0 : _a.resume();
|
|
}
|
|
};
|
|
}
|
|
__name(createFocusScopesStack, "createFocusScopesStack");
|
|
function arrayRemove(array, item) {
|
|
const updatedArray = [...array], index3 = updatedArray.indexOf(item);
|
|
return index3 !== -1 && updatedArray.splice(index3, 1), updatedArray;
|
|
}
|
|
__name(arrayRemove, "arrayRemove");
|
|
function removeLinks(items) {
|
|
return items.filter((item) => item.tagName !== "A");
|
|
}
|
|
__name(removeLinks, "removeLinks");
|
|
|
|
// node_modules/@tamagui/polyfill-dev/index.js
|
|
if (typeof globalThis["__DEV__"] === "undefined") {
|
|
globalThis["__DEV__"] = process.env.NODE_ENV === "development";
|
|
}
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/Stacks.mjs
|
|
var import_core5 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/getElevation.mjs
|
|
var import_core4 = require("@tamagui/core");
|
|
var getElevation = /* @__PURE__ */ __name((size6, extras) => {
|
|
if (!size6)
|
|
return;
|
|
const {
|
|
tokens: tokens2
|
|
} = extras, token = tokens2.size[size6], sizeNum = (0, import_core4.isVariable)(token) ? +token.val : size6;
|
|
return getSizedElevation(sizeNum, extras);
|
|
}, "getElevation");
|
|
var getSizedElevation = /* @__PURE__ */ __name((val, {
|
|
theme,
|
|
tokens: tokens2
|
|
}) => {
|
|
let num = 0;
|
|
if (val === true) {
|
|
const val2 = (0, import_core4.getVariableValue)(tokens2.size.true);
|
|
typeof val2 == "number" ? num = val2 : num = 10;
|
|
} else
|
|
num = +val;
|
|
if (num === 0)
|
|
return;
|
|
const [height, shadowRadius] = [Math.round(num / 4 + 1), Math.round(num / 2 + 2)];
|
|
return {
|
|
shadowColor: theme.shadowColor,
|
|
shadowRadius,
|
|
shadowOffset: {
|
|
height,
|
|
width: 0
|
|
},
|
|
...import_core4.isAndroid ? {
|
|
elevationAndroid: 2 * height
|
|
} : {}
|
|
};
|
|
}, "getSizedElevation");
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/Stacks.mjs
|
|
var fullscreenStyle = {
|
|
position: "absolute",
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 0
|
|
};
|
|
var getInset = /* @__PURE__ */ __name((val) => val && typeof val == "object" ? val : {
|
|
top: val,
|
|
left: val,
|
|
bottom: val,
|
|
right: val
|
|
}, "getInset");
|
|
var variants = {
|
|
fullscreen: {
|
|
true: fullscreenStyle
|
|
},
|
|
elevation: {
|
|
"...size": getElevation,
|
|
":number": getElevation
|
|
},
|
|
inset: getInset
|
|
};
|
|
var YStack = (0, import_core5.styled)(import_core5.View, {
|
|
flexDirection: "column",
|
|
variants
|
|
});
|
|
YStack.displayName = "YStack";
|
|
var XStack = (0, import_core5.styled)(import_core5.View, {
|
|
flexDirection: "row",
|
|
variants
|
|
});
|
|
XStack.displayName = "XStack";
|
|
var ZStack = (0, import_core5.styled)(YStack, {
|
|
position: "relative"
|
|
}, {
|
|
neverFlatten: true,
|
|
isZStack: true
|
|
});
|
|
ZStack.displayName = "ZStack";
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/SizableStack.mjs
|
|
var import_core6 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/get-token/dist/esm/index.mjs
|
|
var import_web5 = require("@tamagui/core");
|
|
var defaultOptions = {
|
|
shift: 0,
|
|
bounds: [0]
|
|
};
|
|
var getSize = /* @__PURE__ */ __name((size6, options) => getTokenRelative("size", size6, options), "getSize");
|
|
var getSpace = /* @__PURE__ */ __name((space2, options) => getTokenRelative("space", space2, options), "getSpace");
|
|
var cacheVariables = {};
|
|
var cacheWholeVariables = {};
|
|
var cacheKeys = {};
|
|
var cacheWholeKeys = {};
|
|
var stepTokenUpOrDown = /* @__PURE__ */ __name((type, current, options = defaultOptions) => {
|
|
var _a, _b;
|
|
const tokens2 = (0, import_web5.getTokens)({
|
|
prefixed: true
|
|
})[type];
|
|
if (!(type in cacheVariables)) {
|
|
cacheKeys[type] = [], cacheVariables[type] = [], cacheWholeKeys[type] = [], cacheWholeVariables[type] = [];
|
|
const sorted = Object.keys(tokens2).map((k) => tokens2[k]).sort((a, b) => a.val - b.val);
|
|
for (const token of sorted)
|
|
cacheKeys[type].push(token.key), cacheVariables[type].push(token);
|
|
const sortedExcludingHalfSteps = sorted.filter((x) => !x.key.endsWith(".5"));
|
|
for (const token of sortedExcludingHalfSteps)
|
|
cacheWholeKeys[type].push(token.key), cacheWholeVariables[type].push(token);
|
|
}
|
|
const isString = typeof current == "string", tokensOrdered = (options.excludeHalfSteps ? isString ? cacheWholeKeys : cacheWholeVariables : isString ? cacheKeys : cacheVariables)[type], min2 = ((_a = options.bounds) == null ? void 0 : _a[0]) ?? 0, max2 = ((_b = options.bounds) == null ? void 0 : _b[1]) ?? tokensOrdered.length - 1, currentIndex = tokensOrdered.indexOf(current);
|
|
let shift4 = options.shift || 0;
|
|
shift4 && (current === "$true" || (0, import_web5.isVariable)(current) && current.name === "true") && (shift4 += shift4 > 0 ? 1 : -1);
|
|
const index3 = Math.min(max2, Math.max(min2, currentIndex + shift4)), found = tokensOrdered[index3];
|
|
return (typeof found == "string" ? tokens2[found] : found) || tokens2.$true;
|
|
}, "stepTokenUpOrDown");
|
|
var getTokenRelative = stepTokenUpOrDown;
|
|
|
|
// node_modules/@tamagui/get-button-sized/dist/esm/index.mjs
|
|
var getButtonSized = /* @__PURE__ */ __name((val, {
|
|
tokens: tokens2,
|
|
props
|
|
}) => {
|
|
if (!val || props.circular)
|
|
return;
|
|
if (typeof val == "number")
|
|
return {
|
|
paddingHorizontal: val * 0.25,
|
|
height: val,
|
|
borderRadius: props.circular ? 1e5 : val * 0.2
|
|
};
|
|
const xSize = getSpace(val), radiusToken = tokens2.radius[val] ?? tokens2.radius.$true;
|
|
return {
|
|
paddingHorizontal: xSize,
|
|
height: val,
|
|
borderRadius: props.circular ? 1e5 : radiusToken
|
|
};
|
|
}, "getButtonSized");
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/variants.mjs
|
|
var elevate = {
|
|
true: (_, extras) => getElevation(extras.props.size, extras)
|
|
};
|
|
var bordered = /* @__PURE__ */ __name((val, {
|
|
props
|
|
}) => ({
|
|
// TODO size it with size in '...size'
|
|
borderWidth: typeof val == "number" ? val : 1,
|
|
borderColor: "$borderColor",
|
|
...props.hoverTheme && {
|
|
hoverStyle: {
|
|
borderColor: "$borderColorHover"
|
|
}
|
|
},
|
|
...props.pressTheme && {
|
|
pressStyle: {
|
|
borderColor: "$borderColorPress"
|
|
}
|
|
},
|
|
...props.focusTheme && {
|
|
focusStyle: {
|
|
borderColor: "$borderColorFocus"
|
|
}
|
|
}
|
|
}), "bordered");
|
|
var padded = {
|
|
true: (_, extras) => {
|
|
const {
|
|
tokens: tokens2,
|
|
props
|
|
} = extras;
|
|
return {
|
|
padding: tokens2.space[props.size] || tokens2.space.$true
|
|
};
|
|
}
|
|
};
|
|
var radiused = {
|
|
true: (_, extras) => {
|
|
const {
|
|
tokens: tokens2,
|
|
props
|
|
} = extras;
|
|
return {
|
|
borderRadius: tokens2.radius[props.size] || tokens2.radius.$true
|
|
};
|
|
}
|
|
};
|
|
var circularStyle = {
|
|
borderRadius: 1e5,
|
|
padding: 0
|
|
};
|
|
var circular = {
|
|
true: (_, {
|
|
props,
|
|
tokens: tokens2
|
|
}) => {
|
|
if (!("size" in props))
|
|
return circularStyle;
|
|
const size6 = typeof props.size == "number" ? props.size : tokens2.size[props.size];
|
|
return {
|
|
...circularStyle,
|
|
width: size6,
|
|
height: size6,
|
|
maxWidth: size6,
|
|
maxHeight: size6,
|
|
minWidth: size6,
|
|
minHeight: size6
|
|
};
|
|
}
|
|
};
|
|
var hoverTheme = {
|
|
true: {
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover",
|
|
borderColor: "$borderColorHover"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
var pressTheme = {
|
|
true: {
|
|
cursor: "pointer",
|
|
pressStyle: {
|
|
backgroundColor: "$backgroundPress",
|
|
borderColor: "$borderColorPress"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
var focusTheme = {
|
|
true: {
|
|
focusStyle: {
|
|
backgroundColor: "$backgroundFocus",
|
|
borderColor: "$borderColorFocus"
|
|
}
|
|
},
|
|
false: {}
|
|
};
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/SizableStack.mjs
|
|
var SizableStack = (0, import_core6.styled)(XStack, {
|
|
name: "SizableStack",
|
|
variants: {
|
|
unstyled: {
|
|
true: {
|
|
hoverTheme: false,
|
|
pressTheme: false,
|
|
focusTheme: false,
|
|
elevate: false,
|
|
bordered: false
|
|
}
|
|
},
|
|
hoverTheme,
|
|
pressTheme,
|
|
focusTheme,
|
|
circular,
|
|
elevate,
|
|
bordered,
|
|
size: {
|
|
"...size": (val, extras) => getButtonSized(val, extras)
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/ThemeableStack.mjs
|
|
var import_core7 = require("@tamagui/core");
|
|
var chromelessStyle = {
|
|
backgroundColor: "transparent",
|
|
borderColor: "transparent",
|
|
shadowColor: "transparent",
|
|
hoverStyle: {
|
|
borderColor: "transparent"
|
|
}
|
|
};
|
|
var themeableVariants = {
|
|
backgrounded: {
|
|
true: {
|
|
backgroundColor: "$background"
|
|
}
|
|
},
|
|
radiused,
|
|
hoverTheme,
|
|
pressTheme,
|
|
focusTheme,
|
|
circular,
|
|
padded,
|
|
elevate,
|
|
bordered,
|
|
transparent: {
|
|
true: {
|
|
backgroundColor: "transparent"
|
|
}
|
|
},
|
|
chromeless: {
|
|
true: chromelessStyle,
|
|
all: {
|
|
...chromelessStyle,
|
|
hoverStyle: chromelessStyle,
|
|
pressStyle: chromelessStyle,
|
|
focusStyle: chromelessStyle
|
|
}
|
|
}
|
|
};
|
|
var ThemeableStack = (0, import_core7.styled)(YStack, {
|
|
variants: themeableVariants
|
|
});
|
|
|
|
// node_modules/@tamagui/stacks/dist/esm/NestingContext.mjs
|
|
var import_react14 = require("react");
|
|
var ButtonNestingContext = (0, import_react14.createContext)(false);
|
|
|
|
// node_modules/@tamagui/portal/dist/esm/Portal.mjs
|
|
var React7 = __toESM(require("react"), 1);
|
|
var import_react_dom = require("react-dom");
|
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
var Portal = React7.memo(({
|
|
host = ((_a) => (_a = globalThis.document) == null ? void 0 : _a.body)(),
|
|
...props
|
|
}) => {
|
|
const contents = /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(YStack, {
|
|
contain: "strict",
|
|
fullscreen: true,
|
|
position: isWeb ? "fixed" : "absolute",
|
|
maxWidth: isWeb ? "100vw" : "100%",
|
|
maxHeight: isWeb ? "100vh" : "100%",
|
|
pointerEvents: "none",
|
|
...props
|
|
}), [hostElement, setHostElement] = React7.useState(null);
|
|
return useIsomorphicLayoutEffect(() => {
|
|
setHostElement(host);
|
|
}, [host]), hostElement && props.children ? (0, import_react_dom.createPortal)(contents, hostElement) : null;
|
|
});
|
|
|
|
// node_modules/@tamagui/portal/dist/esm/GorhomPortal.mjs
|
|
var import_core8 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/use-did-finish-ssr/dist/esm/index.mjs
|
|
var import_react15 = require("react");
|
|
var emptyFn = /* @__PURE__ */ __name(() => {
|
|
}, "emptyFn");
|
|
var emptyFnFn = /* @__PURE__ */ __name(() => emptyFn, "emptyFnFn");
|
|
function useDidFinishSSR(value) {
|
|
return (0, import_react15.useSyncExternalStore)(emptyFnFn, () => value ?? true, () => false);
|
|
}
|
|
__name(useDidFinishSSR, "useDidFinishSSR");
|
|
|
|
// node_modules/@tamagui/portal/dist/esm/GorhomPortal.mjs
|
|
var import_react16 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
var ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
|
|
var INITIAL_STATE = {};
|
|
var registerHost = /* @__PURE__ */ __name((state, hostName) => (hostName in state || (state[hostName] = []), state), "registerHost");
|
|
var deregisterHost = /* @__PURE__ */ __name((state, hostName) => (delete state[hostName], state), "deregisterHost");
|
|
var addUpdatePortal = /* @__PURE__ */ __name((state, hostName, portalName, node) => {
|
|
hostName in state || (state = registerHost(state, hostName));
|
|
const index3 = state[hostName].findIndex((item) => item.name === portalName);
|
|
return index3 !== -1 ? state[hostName][index3].node = node : state[hostName].push({
|
|
name: portalName,
|
|
node
|
|
}), state;
|
|
}, "addUpdatePortal");
|
|
var removePortal = /* @__PURE__ */ __name((state, hostName, portalName) => {
|
|
if (!(hostName in state))
|
|
return console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`), state;
|
|
const index3 = state[hostName].findIndex((item) => item.name === portalName);
|
|
return index3 !== -1 && state[hostName].splice(index3, 1), state;
|
|
}, "removePortal");
|
|
var reducer = /* @__PURE__ */ __name((state, action) => {
|
|
const {
|
|
type
|
|
} = action;
|
|
switch (type) {
|
|
case 0:
|
|
return registerHost({
|
|
...state
|
|
}, action.hostName);
|
|
case 1:
|
|
return deregisterHost({
|
|
...state
|
|
}, action.hostName);
|
|
case 2:
|
|
return addUpdatePortal({
|
|
...state
|
|
}, action.hostName, action.portalName, action.node);
|
|
case 3:
|
|
return removePortal({
|
|
...state
|
|
}, action.hostName, action.portalName);
|
|
default:
|
|
return state;
|
|
}
|
|
}, "reducer");
|
|
var PortalStateContext = (0, import_react16.createContext)(null);
|
|
var PortalDispatchContext = (0, import_react16.createContext)(null);
|
|
var usePortalState = /* @__PURE__ */ __name((hostName) => {
|
|
const state = (0, import_react16.useContext)(PortalStateContext);
|
|
if (state === null)
|
|
throw new Error("'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
return state[hostName] || [];
|
|
}, "usePortalState");
|
|
var usePortal = /* @__PURE__ */ __name((hostName = "root") => {
|
|
const dispatch = (0, import_react16.useContext)(PortalDispatchContext);
|
|
if (dispatch === null)
|
|
throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
const registerHost2 = (0, import_react16.useCallback)(() => {
|
|
dispatch({
|
|
type: 0,
|
|
hostName
|
|
});
|
|
}, []), deregisterHost2 = (0, import_react16.useCallback)(() => {
|
|
dispatch({
|
|
type: 1,
|
|
hostName
|
|
});
|
|
}, []), addUpdatePortal2 = (0, import_react16.useCallback)((name, node) => {
|
|
dispatch({
|
|
type: 2,
|
|
hostName,
|
|
portalName: name,
|
|
node
|
|
});
|
|
}, []), removePortal2 = (0, import_react16.useCallback)((name) => {
|
|
dispatch({
|
|
type: 3,
|
|
hostName,
|
|
portalName: name
|
|
});
|
|
}, []);
|
|
return {
|
|
registerHost: registerHost2,
|
|
deregisterHost: deregisterHost2,
|
|
addPortal: addUpdatePortal2,
|
|
updatePortal: addUpdatePortal2,
|
|
removePortal: removePortal2
|
|
};
|
|
}, "usePortal");
|
|
var PortalProviderComponent = /* @__PURE__ */ __name(({
|
|
rootHostName = "root",
|
|
shouldAddRootHost = true,
|
|
children
|
|
}) => {
|
|
const [state, dispatch] = (0, import_react16.useReducer)(reducer, INITIAL_STATE), transitionDispatch = (0, import_react16.useMemo)(() => (value) => {
|
|
dispatch(value);
|
|
}, [dispatch]);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PortalDispatchContext.Provider, {
|
|
value: transitionDispatch,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(PortalStateContext.Provider, {
|
|
value: state,
|
|
children: [children, shouldAddRootHost && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(PortalHost, {
|
|
name: rootHostName
|
|
})]
|
|
})
|
|
});
|
|
}, "PortalProviderComponent");
|
|
var PortalProvider = (0, import_react16.memo)(PortalProviderComponent);
|
|
PortalProvider.displayName = "PortalProvider";
|
|
var defaultRenderer = /* @__PURE__ */ __name((children) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, {
|
|
children
|
|
}), "defaultRenderer");
|
|
var PortalHostComponent = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
name,
|
|
forwardProps,
|
|
render = defaultRenderer
|
|
} = props, isServer3 = !useDidFinishSSR(), state = usePortalState(name), {
|
|
registerHost: registerHost2,
|
|
deregisterHost: deregisterHost2
|
|
} = usePortal(props.name);
|
|
return (0, import_react16.useEffect)(() => {
|
|
if (!isServer3)
|
|
return registerHost2(), () => {
|
|
deregisterHost2();
|
|
};
|
|
}, [isServer3]), render(forwardProps ? state.map((item) => {
|
|
let next = item.node;
|
|
return forwardProps ? import_react16.default.Children.map(next, (child) => import_react16.default.isValidElement(child) ? import_react16.default.cloneElement(child, {
|
|
key: child.key,
|
|
...forwardProps
|
|
}) : child) : next;
|
|
}) : state.map((item) => item.node));
|
|
}, "PortalHostComponent");
|
|
var PortalHost = (0, import_react16.memo)(PortalHostComponent);
|
|
PortalHost.displayName = "PortalHost";
|
|
var PortalComponent = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
name: _providedName,
|
|
hostName,
|
|
handleOnMount: _providedHandleOnMount,
|
|
handleOnUnmount: _providedHandleOnUnmount,
|
|
handleOnUpdate: _providedHandleOnUpdate,
|
|
children
|
|
} = props, {
|
|
addPortal: addUpdatePortal2,
|
|
removePortal: removePortal2
|
|
} = usePortal(hostName), id = (0, import_react16.useId)(), name = _providedName || id, handleOnMount = (0, import_core8.useEvent)(() => {
|
|
_providedHandleOnMount ? _providedHandleOnMount(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
}), handleOnUnmount = (0, import_core8.useEvent)(() => {
|
|
_providedHandleOnUnmount ? _providedHandleOnUnmount(() => removePortal2(name)) : removePortal2(name);
|
|
}), handleOnUpdate = (0, import_core8.useEvent)(() => {
|
|
_providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
});
|
|
return useIsomorphicLayoutEffect(() => (handleOnMount(), () => {
|
|
handleOnUnmount();
|
|
}), []), (0, import_react16.useEffect)(() => {
|
|
handleOnUpdate();
|
|
}, [children]), null;
|
|
}, "PortalComponent");
|
|
var PortalItem = (0, import_react16.memo)(PortalComponent);
|
|
PortalItem.displayName = "Portal";
|
|
|
|
// node_modules/@tamagui/remove-scroll/dist/esm/RemoveScroll.mjs
|
|
var import_react17 = require("react");
|
|
var import_react_remove_scroll = __toESM(require_es57(), 1);
|
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
var RemoveScroll = (0, import_react17.memo)((props) => props.children ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_remove_scroll.RemoveScroll, {
|
|
...props
|
|
}) : null);
|
|
var classNames = import_react_remove_scroll.RemoveScroll.classNames;
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/Sheet.mjs
|
|
var import_core13 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/constants.mjs
|
|
var import_core9 = require("@tamagui/core");
|
|
var SHEET_NAME = "Sheet";
|
|
var SHEET_HANDLE_NAME = "SheetHandle";
|
|
var SHEET_OVERLAY_NAME = "SheetOverlay";
|
|
var SHEET_HIDDEN_STYLESHEET = import_core9.isClient ? document.createElement("style") : null;
|
|
SHEET_HIDDEN_STYLESHEET && typeof document.head < "u" && document.head.appendChild(SHEET_HIDDEN_STYLESHEET);
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/createSheet.mjs
|
|
var import_core12 = require("@tamagui/core");
|
|
var import_react25 = require("react");
|
|
var import_react_native_web4 = __toESM(require_cjs20(), 1);
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetContext.mjs
|
|
var [createSheetContext, createSheetScope] = createContextScope(SHEET_NAME);
|
|
var [SheetProvider, useSheetContext] = createSheetContext(SHEET_NAME, {});
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetImplementationCustom.mjs
|
|
var import_core11 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/use-keyboard-visible/dist/esm/useKeyboardVisible.mjs
|
|
var import_react18 = require("react");
|
|
var import_react_native_web = __toESM(require_cjs20(), 1);
|
|
var useKeyboardVisible = /* @__PURE__ */ __name(() => {
|
|
const [isKeyboardVisible, setKeyboardVisible] = (0, import_react18.useState)(false);
|
|
return (0, import_react18.useEffect)(() => {
|
|
const keyboardDidShowListener = import_react_native_web.Keyboard.addListener("keyboardDidShow", () => {
|
|
setKeyboardVisible(true);
|
|
}), keyboardDidHideListener = import_react_native_web.Keyboard.addListener("keyboardDidHide", () => {
|
|
setKeyboardVisible(false);
|
|
});
|
|
return () => {
|
|
keyboardDidHideListener.remove(), keyboardDidShowListener.remove();
|
|
};
|
|
}, []), isKeyboardVisible;
|
|
}, "useKeyboardVisible");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetImplementationCustom.mjs
|
|
var import_react23 = require("react");
|
|
var import_react_native_web2 = __toESM(require_cjs20(), 1);
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/contexts.mjs
|
|
var import_react19 = require("react");
|
|
var ParentSheetContext = (0, import_react19.createContext)({
|
|
zIndex: 1e5
|
|
});
|
|
var SheetInsideSheetContext = (0, import_react19.createContext)(null);
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/helpers.mjs
|
|
function resisted(y, minY, maxOverflow = 25) {
|
|
if (y < minY) {
|
|
const past = minY - y, extra = -(1.1 - 0.15 ** (Math.min(maxOverflow, past) / maxOverflow)) * maxOverflow;
|
|
return minY + extra;
|
|
}
|
|
return y;
|
|
}
|
|
__name(resisted, "resisted");
|
|
|
|
// node_modules/@tamagui/use-controllable-state/dist/esm/useControllableState.mjs
|
|
var import_react20 = require("react");
|
|
var emptyCallbackFn = /* @__PURE__ */ __name((_) => _(), "emptyCallbackFn");
|
|
function useControllableState({
|
|
prop,
|
|
defaultProp,
|
|
onChange,
|
|
strategy = "prop-wins",
|
|
preventUpdate,
|
|
transition
|
|
}) {
|
|
const [state, setState] = (0, import_react20.useState)(prop ?? defaultProp), previous = (0, import_react20.useRef)(state), propWins = strategy === "prop-wins" && prop !== void 0, value = propWins ? prop : state, onChangeCb = useEvent(onChange || idFn2), transitionFn = transition ? import_react20.startTransition : emptyCallbackFn;
|
|
(0, import_react20.useEffect)(() => {
|
|
prop !== void 0 && (previous.current = prop, transitionFn(() => {
|
|
setState(prop);
|
|
}));
|
|
}, [prop]), (0, import_react20.useEffect)(() => {
|
|
propWins || state !== previous.current && (previous.current = state, onChangeCb(state));
|
|
}, [onChangeCb, state, propWins]);
|
|
const setter = useEvent((next) => {
|
|
if (!preventUpdate)
|
|
if (propWins) {
|
|
const nextValue = typeof next == "function" ? next(previous.current) : next;
|
|
onChangeCb(nextValue);
|
|
} else
|
|
transitionFn(() => {
|
|
setState(next);
|
|
});
|
|
});
|
|
return [value, setter];
|
|
}
|
|
__name(useControllableState, "useControllableState");
|
|
var idFn2 = /* @__PURE__ */ __name(() => {
|
|
}, "idFn");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/useSheetController.mjs
|
|
var import_react21 = require("react");
|
|
var useSheetController = /* @__PURE__ */ __name(() => {
|
|
const controller = (0, import_react21.useContext)(SheetControllerContext), isHidden2 = controller == null ? void 0 : controller.hidden, isShowingNonSheet = isHidden2 && (controller == null ? void 0 : controller.open);
|
|
return {
|
|
controller,
|
|
isHidden: isHidden2,
|
|
isShowingNonSheet,
|
|
disableDrag: controller == null ? void 0 : controller.disableDrag
|
|
};
|
|
}, "useSheetController");
|
|
var SheetControllerContext = (0, import_react21.createContext)(null);
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/useSheetOpenState.mjs
|
|
var useSheetOpenState = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
isHidden: isHidden2,
|
|
controller
|
|
} = useSheetController(), onOpenChangeInternal = /* @__PURE__ */ __name((val) => {
|
|
var _a, _b;
|
|
(_a = controller == null ? void 0 : controller.onOpenChange) == null ? void 0 : _a.call(controller, val), (_b = props.onOpenChange) == null ? void 0 : _b.call(props, val);
|
|
}, "onOpenChangeInternal"), [open, setOpen] = useControllableState({
|
|
prop: (controller == null ? void 0 : controller.open) ?? props.open,
|
|
defaultProp: props.defaultOpen ?? false,
|
|
onChange: onOpenChangeInternal,
|
|
strategy: "most-recent-wins",
|
|
transition: true
|
|
});
|
|
return {
|
|
open,
|
|
setOpen,
|
|
isHidden: isHidden2,
|
|
controller
|
|
};
|
|
}, "useSheetOpenState");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/useSheetProviderProps.mjs
|
|
var import_core10 = require("@tamagui/core");
|
|
var import_react22 = __toESM(require("react"), 1);
|
|
function useSheetProviderProps(props, state, options = {}) {
|
|
const handleRef = import_react22.default.useRef(null), contentRef = import_react22.default.useRef(null), [frameSize, setFrameSize] = (0, import_react22.useState)(0), [maxContentSize, setMaxContentSize] = (0, import_react22.useState)(0), snapPointsMode = props.snapPointsMode ?? "percent", snapPointsProp = props.snapPoints ?? (snapPointsMode === "percent" ? [80] : snapPointsMode === "constant" ? [256] : ["fit"]), hasFit = snapPointsProp[0] === "fit", snapPoints = (0, import_react22.useMemo)(() => props.dismissOnSnapToBottom ? [...snapPointsProp, 0] : snapPointsProp, [JSON.stringify(snapPointsProp), props.dismissOnSnapToBottom]), [position_, setPositionImmediate] = useControllableState({
|
|
prop: props.position,
|
|
defaultProp: props.defaultPosition || (state.open ? 0 : -1),
|
|
onChange: props.onPositionChange,
|
|
strategy: "most-recent-wins",
|
|
transition: true
|
|
}), position = state.open === false ? -1 : position_, {
|
|
open
|
|
} = state, setPosition = (0, import_react22.useCallback)((next) => {
|
|
props.dismissOnSnapToBottom && next === snapPoints.length - 1 ? state.setOpen(false) : setPositionImmediate(next);
|
|
}, [props.dismissOnSnapToBottom, snapPoints.length, setPositionImmediate, state.setOpen]);
|
|
process.env.NODE_ENV === "development" && (snapPointsMode === "mixed" && snapPoints.some((p) => {
|
|
if (typeof p == "string") {
|
|
if (p === "fit")
|
|
return false;
|
|
if (p.endsWith("%")) {
|
|
const n = Number(p.slice(0, -1));
|
|
return n < 0 || n > 100;
|
|
}
|
|
return true;
|
|
}
|
|
return typeof p != "number" || p < 0;
|
|
}) && console.warn('\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values, string percentages between 0-100%, or "fit" when snapPointsMode is mixed'), snapPointsMode === "mixed" && snapPoints.indexOf("fit") > 0 && console.warn('\u26A0\uFE0F Invalid snapPoint given, "fit" must be the first/largest snap point when snapPointsMode is mixed'), snapPointsMode === "fit" && (snapPoints.length !== (props.dismissOnSnapToBottom ? 2 : 1) || snapPoints[0] !== "fit") && console.warn("\u26A0\uFE0F Invalid snapPoint given, there are no snap points when snapPointsMode is fit"), snapPointsMode === "constant" && snapPoints.some((p) => typeof p != "number" || p < 0) && console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be positive numeric values when snapPointsMode is constant"), snapPointsMode === "percent" && snapPoints.some((p) => typeof p != "number" || p < 0 || p > 100) && console.warn("\u26A0\uFE0F Invalid snapPoint given, snapPoints must be numeric values between 0 and 100 when snapPointsMode is percent")), open && props.dismissOnSnapToBottom && position === snapPoints.length - 1 && setPositionImmediate(0);
|
|
const shouldSetPositionOpen = open && position < 0;
|
|
(0, import_react22.useEffect)(() => {
|
|
shouldSetPositionOpen && setPosition(0);
|
|
}, [setPosition, shouldSetPositionOpen]);
|
|
const {
|
|
animationDriver
|
|
} = (0, import_core10.useConfiguration)();
|
|
if (!animationDriver)
|
|
throw new Error("Must set animations in tamagui.config.ts");
|
|
const scrollBridge = useConstant(() => ({
|
|
enabled: false,
|
|
y: 0,
|
|
paneY: 0,
|
|
paneMinY: 0,
|
|
scrollStartY: -1,
|
|
drag: () => {
|
|
},
|
|
release: () => {
|
|
},
|
|
scrollLock: false
|
|
})), removeScrollEnabled = props.forceRemoveScrollEnabled ?? (open && props.modal), maxSnapPoint = snapPoints[0];
|
|
return {
|
|
screenSize: snapPointsMode === "percent" ? frameSize / ((typeof maxSnapPoint == "number" ? maxSnapPoint : 100) / 100) : maxContentSize,
|
|
maxSnapPoint,
|
|
removeScrollEnabled,
|
|
scrollBridge,
|
|
modal: !!props.modal,
|
|
open: state.open,
|
|
setOpen: state.setOpen,
|
|
hidden: !!state.isHidden,
|
|
contentRef,
|
|
handleRef,
|
|
frameSize,
|
|
setFrameSize,
|
|
dismissOnOverlayPress: props.dismissOnOverlayPress ?? true,
|
|
dismissOnSnapToBottom: props.dismissOnSnapToBottom ?? false,
|
|
onOverlayComponent: options.onOverlayComponent,
|
|
scope: props.__scopeSheet,
|
|
hasFit,
|
|
position,
|
|
snapPoints,
|
|
snapPointsMode,
|
|
setMaxContentSize,
|
|
setPosition,
|
|
setPositionImmediate,
|
|
onlyShowFrame: false
|
|
};
|
|
}
|
|
__name(useSheetProviderProps, "useSheetProviderProps");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetImplementationCustom.mjs
|
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
var hiddenSize = 10000.1;
|
|
var SheetImplementationCustom = (0, import_core11.themeable)((0, import_react23.forwardRef)(function(props, forwardedRef) {
|
|
const parentSheet = (0, import_react23.useContext)(ParentSheetContext), {
|
|
animation,
|
|
animationConfig: animationConfigProp,
|
|
modal = false,
|
|
zIndex: zIndex2 = parentSheet.zIndex + 1,
|
|
moveOnKeyboardChange = false,
|
|
unmountChildrenWhenHidden = false,
|
|
portalProps,
|
|
containerComponent: ContainerComponent = import_react23.Fragment
|
|
} = props, keyboardIsVisible = useKeyboardVisible(), state = useSheetOpenState(props), [overlayComponent, setOverlayComponent] = (0, import_react23.useState)(null), providerProps = useSheetProviderProps(props, state, {
|
|
onOverlayComponent: setOverlayComponent
|
|
}), {
|
|
frameSize,
|
|
setFrameSize,
|
|
snapPoints,
|
|
snapPointsMode,
|
|
hasFit,
|
|
position,
|
|
setPosition,
|
|
scrollBridge,
|
|
screenSize,
|
|
setMaxContentSize,
|
|
maxSnapPoint
|
|
} = providerProps, {
|
|
open,
|
|
controller,
|
|
isHidden: isHidden2
|
|
} = state, sheetRef = (0, import_react23.useRef)(null), ref = useComposedRefs(forwardedRef, sheetRef), animationConfig = (() => {
|
|
const [animationProp, animationPropConfig] = animation ? Array.isArray(animation) ? animation : [animation] : [];
|
|
return animationConfigProp ?? (animationProp ? {
|
|
...(0, import_core11.getConfig)().animations.animations[animationProp],
|
|
...animationPropConfig
|
|
} : null);
|
|
})(), [isShowingInnerSheet, setIsShowingInnerSheet] = (0, import_react23.useState)(false), shouldHideParentSheet = !isWeb && modal && isShowingInnerSheet, parentSheetContext = (0, import_react23.useContext)(SheetInsideSheetContext), onInnerSheet = (0, import_react23.useCallback)((hasChild) => {
|
|
setIsShowingInnerSheet(hasChild);
|
|
}, []), positions = (0, import_react23.useMemo)(() => snapPoints.map((point) => getYPositions(snapPointsMode, point, screenSize, frameSize)), [screenSize, frameSize, snapPoints, snapPointsMode]), {
|
|
animationDriver
|
|
} = (0, import_core11.useConfiguration)(), {
|
|
useAnimatedNumber,
|
|
useAnimatedNumberStyle,
|
|
useAnimatedNumberReaction
|
|
} = animationDriver, AnimatedView = animationDriver.View ?? import_core11.Stack;
|
|
useIsomorphicLayoutEffect(() => {
|
|
if (parentSheetContext && open)
|
|
return parentSheetContext(true), () => {
|
|
parentSheetContext(false);
|
|
};
|
|
}, [parentSheetContext, open]);
|
|
const nextParentContext = (0, import_react23.useMemo)(() => ({
|
|
zIndex: zIndex2
|
|
}), [zIndex2]), animatedNumber = useAnimatedNumber(hiddenSize), at = (0, import_react23.useRef)(hiddenSize);
|
|
useAnimatedNumberReaction({
|
|
value: animatedNumber,
|
|
hostRef: sheetRef
|
|
}, (0, import_react23.useCallback)((value) => {
|
|
at.current = value, scrollBridge.paneY = value;
|
|
}, [animationDriver]));
|
|
function stopSpring() {
|
|
animatedNumber.stop(), scrollBridge.onFinishAnimate && (scrollBridge.onFinishAnimate(), scrollBridge.onFinishAnimate = void 0);
|
|
}
|
|
__name(stopSpring, "stopSpring");
|
|
const hasntMeasured = at.current === hiddenSize, animateTo = (0, import_core11.useEvent)((position2) => {
|
|
if (frameSize === 0)
|
|
return;
|
|
let toValue = isHidden2 || position2 === -1 ? screenSize : positions[position2];
|
|
if (at.current !== toValue) {
|
|
if (at.current = toValue, stopSpring(), hasntMeasured || isHidden2) {
|
|
animatedNumber.setValue(screenSize, {
|
|
type: "timing",
|
|
duration: 0
|
|
}, () => {
|
|
isHidden2 || (toValue = positions[position2], at.current = toValue, animatedNumber.setValue(toValue, {
|
|
type: "spring",
|
|
...animationConfig
|
|
}));
|
|
});
|
|
return;
|
|
}
|
|
animatedNumber.setValue(toValue, {
|
|
type: "spring",
|
|
...animationConfig
|
|
});
|
|
}
|
|
});
|
|
useIsomorphicLayoutEffect(() => {
|
|
screenSize && hasntMeasured && animatedNumber.setValue(screenSize, {
|
|
type: "timing",
|
|
duration: 0
|
|
});
|
|
}, [hasntMeasured, screenSize]), useIsomorphicLayoutEffect(() => {
|
|
!frameSize || !screenSize || isHidden2 || hasntMeasured && !open || animateTo(position);
|
|
}, [isHidden2, frameSize, screenSize, open, position]);
|
|
const disableDrag = props.disableDrag ?? (controller == null ? void 0 : controller.disableDrag), themeName = (0, import_core11.useThemeName)(), [isDragging, setIsDragging] = (0, import_react23.useState)(false), panResponder = (0, import_react23.useMemo)(() => {
|
|
if (disableDrag || !frameSize || isShowingInnerSheet)
|
|
return;
|
|
const minY = positions[0];
|
|
scrollBridge.paneMinY = minY;
|
|
let startY = at.current;
|
|
function setPanning(val) {
|
|
setIsDragging(val), SHEET_HIDDEN_STYLESHEET && (val ? SHEET_HIDDEN_STYLESHEET.innerText = ":root * { user-select: none !important; -webkit-user-select: none !important; }" : SHEET_HIDDEN_STYLESHEET.innerText = "");
|
|
}
|
|
__name(setPanning, "setPanning");
|
|
const release = /* @__PURE__ */ __name(({
|
|
vy,
|
|
dragAt
|
|
}) => {
|
|
isExternalDrag = false, previouslyScrolling = false, setPanning(false);
|
|
const end = dragAt + startY + frameSize * vy * 0.2;
|
|
let closestPoint = 0, dist = Number.POSITIVE_INFINITY;
|
|
for (let i = 0; i < positions.length; i++) {
|
|
const position2 = positions[i], curDist = end > position2 ? end - position2 : position2 - end;
|
|
curDist < dist && (dist = curDist, closestPoint = i);
|
|
}
|
|
setPosition(closestPoint), animateTo(closestPoint);
|
|
}, "release"), finish = /* @__PURE__ */ __name((_e, state2) => {
|
|
release({
|
|
vy: state2.vy,
|
|
dragAt: state2.dy
|
|
});
|
|
}, "finish");
|
|
let previouslyScrolling = false;
|
|
const onMoveShouldSet = /* @__PURE__ */ __name((e, {
|
|
dy
|
|
}) => {
|
|
if (e.target === providerProps.handleRef.current)
|
|
return true;
|
|
const isScrolled = scrollBridge.y !== 0, isDraggingUp = dy < 0, isNearTop = scrollBridge.paneY - 5 <= scrollBridge.paneMinY;
|
|
return isScrolled ? (previouslyScrolling = true, false) : isNearTop && !isScrolled && isDraggingUp && !isWeb ? false : Math.abs(dy) > 5;
|
|
}, "onMoveShouldSet"), grant = /* @__PURE__ */ __name(() => {
|
|
setPanning(true), stopSpring(), startY = at.current;
|
|
}, "grant");
|
|
let isExternalDrag = false;
|
|
return scrollBridge.drag = (dy) => {
|
|
isExternalDrag || (isExternalDrag = true, grant());
|
|
const to = dy + startY;
|
|
animatedNumber.setValue(resisted(to, minY), {
|
|
type: "direct"
|
|
});
|
|
}, scrollBridge.release = release, import_react_native_web2.PanResponder.create({
|
|
onMoveShouldSetPanResponder: onMoveShouldSet,
|
|
onPanResponderGrant: grant,
|
|
onPanResponderMove: (_e, {
|
|
dy
|
|
}) => {
|
|
const toFull = dy + startY, to = resisted(toFull, minY);
|
|
animatedNumber.setValue(to, {
|
|
type: "direct"
|
|
});
|
|
},
|
|
onPanResponderEnd: finish,
|
|
onPanResponderTerminate: finish,
|
|
onPanResponderRelease: finish
|
|
});
|
|
}, [disableDrag, isShowingInnerSheet, animateTo, frameSize, positions, setPosition]), handleAnimationViewLayout = (0, import_react23.useCallback)((e) => {
|
|
var _a;
|
|
const next = Math.min((_a = e.nativeEvent) == null ? void 0 : _a.layout.height, import_react_native_web2.Dimensions.get("window").height);
|
|
next && setFrameSize(next);
|
|
}, [keyboardIsVisible]), handleMaxContentViewLayout = (0, import_react23.useCallback)((e) => {
|
|
var _a;
|
|
const next = Math.min((_a = e.nativeEvent) == null ? void 0 : _a.layout.height, import_react_native_web2.Dimensions.get("window").height);
|
|
next && setMaxContentSize(next);
|
|
}, [keyboardIsVisible]), animatedStyle = useAnimatedNumberStyle(animatedNumber, (val) => {
|
|
"worklet";
|
|
return {
|
|
transform: [{
|
|
translateY: frameSize === 0 ? hiddenSize : val
|
|
}]
|
|
};
|
|
}), sizeBeforeKeyboard = (0, import_react23.useRef)(null);
|
|
(0, import_react23.useEffect)(() => {
|
|
if (isWeb || !moveOnKeyboardChange)
|
|
return;
|
|
const keyboardDidShowListener = import_react_native_web2.Keyboard.addListener("keyboardDidShow", (e) => {
|
|
sizeBeforeKeyboard.current === null && (sizeBeforeKeyboard.current = animatedNumber.getValue(), animatedNumber.setValue(Math.max(animatedNumber.getValue() - e.endCoordinates.height, 0)));
|
|
}), keyboardDidHideListener = import_react_native_web2.Keyboard.addListener("keyboardDidHide", () => {
|
|
sizeBeforeKeyboard.current !== null && (animatedNumber.setValue(sizeBeforeKeyboard.current), sizeBeforeKeyboard.current = null);
|
|
});
|
|
return () => {
|
|
keyboardDidHideListener.remove(), keyboardDidShowListener.remove();
|
|
};
|
|
}, [moveOnKeyboardChange]);
|
|
const [opacity, setOpacity] = (0, import_react23.useState)(open ? 1 : 0);
|
|
open && opacity === 0 && setOpacity(1), (0, import_react23.useEffect)(() => {
|
|
if (!open) {
|
|
const tm = setTimeout(() => {
|
|
setOpacity(0);
|
|
}, 400);
|
|
return () => {
|
|
clearTimeout(tm);
|
|
};
|
|
}
|
|
}, [open]);
|
|
const forcedContentHeight = hasFit ? void 0 : snapPointsMode === "percent" ? `${maxSnapPoint}${isWeb ? "dvh" : "%"}` : maxSnapPoint, contents = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ParentSheetContext.Provider, {
|
|
value: nextParentContext,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(SheetProvider, {
|
|
...providerProps,
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AnimatePresence, {
|
|
custom: {
|
|
open
|
|
},
|
|
children: shouldHideParentSheet || !open ? null : overlayComponent
|
|
}), snapPointsMode !== "percent" && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native_web2.View, {
|
|
style: {
|
|
opacity: 0,
|
|
position: "absolute",
|
|
top: 0,
|
|
left: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
pointerEvents: "none"
|
|
},
|
|
onLayout: handleMaxContentViewLayout
|
|
}), /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AnimatedView, {
|
|
ref,
|
|
...panResponder == null ? void 0 : panResponder.panHandlers,
|
|
onLayout: handleAnimationViewLayout,
|
|
...!isDragging && {
|
|
// @ts-ignore for CSS driver this is necessary to attach the transition
|
|
animation
|
|
},
|
|
disableClassName: true,
|
|
style: [{
|
|
position: "absolute",
|
|
zIndex: zIndex2,
|
|
width: "100%",
|
|
height: forcedContentHeight,
|
|
minHeight: forcedContentHeight,
|
|
opacity,
|
|
...(shouldHideParentSheet || !open) && {
|
|
pointerEvents: "none"
|
|
}
|
|
}, animatedStyle],
|
|
children: props.children
|
|
})]
|
|
})
|
|
}), adaptContext = (0, import_react23.useContext)(AdaptParentContext), shouldMountChildren = !!(opacity || !unmountChildrenWhenHidden);
|
|
if (modal) {
|
|
const modalContents = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Portal, {
|
|
zIndex: zIndex2,
|
|
...portalProps,
|
|
children: shouldMountChildren && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ContainerComponent, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_core11.Theme, {
|
|
forceClassName: true,
|
|
name: themeName,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AdaptParentContext.Provider, {
|
|
value: adaptContext,
|
|
children: contents
|
|
})
|
|
})
|
|
})
|
|
});
|
|
return isWeb ? modalContents : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SheetInsideSheetContext.Provider, {
|
|
value: onInnerSheet,
|
|
children: modalContents
|
|
});
|
|
}
|
|
return contents;
|
|
}));
|
|
function getYPositions(mode, point, screenSize, frameSize) {
|
|
if (!screenSize || !frameSize)
|
|
return 0;
|
|
if (mode === "mixed") {
|
|
if (typeof point == "number")
|
|
return screenSize - Math.min(screenSize, Math.max(0, point));
|
|
if (point === "fit")
|
|
return screenSize - Math.min(screenSize, frameSize);
|
|
if (point.endsWith("%")) {
|
|
const pct2 = Math.min(100, Math.max(0, Number(point.slice(0, -1)))) / 100;
|
|
return Number.isNaN(pct2) ? (console.warn("Invalid snapPoint percentage string"), 0) : Math.round(screenSize - pct2 * screenSize);
|
|
}
|
|
return console.warn("Invalid snapPoint unknown value"), 0;
|
|
}
|
|
if (mode === "fit")
|
|
return point === 0 ? screenSize : screenSize - Math.min(screenSize, frameSize);
|
|
if (mode === "constant" && typeof point == "number")
|
|
return screenSize - Math.min(screenSize, Math.max(0, point));
|
|
const pct = Math.min(100, Math.max(0, Number(point))) / 100;
|
|
return Number.isNaN(pct) ? (console.warn("Invalid snapPoint percentage"), 0) : Math.round(screenSize - pct * screenSize);
|
|
}
|
|
__name(getYPositions, "getYPositions");
|
|
|
|
// node_modules/@tamagui/scroll-view/dist/esm/ScrollView.mjs
|
|
var import_web6 = require("@tamagui/core");
|
|
var import_react_native_web3 = __toESM(require_cjs20(), 1);
|
|
var ScrollView = (0, import_web6.styled)(import_react_native_web3.ScrollView, {
|
|
name: "ScrollView",
|
|
scrollEnabled: true,
|
|
variants: {
|
|
fullscreen: {
|
|
true: fullscreenStyle
|
|
}
|
|
}
|
|
}, {
|
|
accept: {
|
|
contentContainerStyle: "style"
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetScrollView.mjs
|
|
var import_react24 = require("react");
|
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
var SHEET_SCROLL_VIEW_NAME = "SheetScrollView";
|
|
var SheetScrollView = (0, import_react24.forwardRef)(({
|
|
__scopeSheet,
|
|
children,
|
|
onScroll,
|
|
...props
|
|
}, ref) => {
|
|
const context = useSheetContext(SHEET_SCROLL_VIEW_NAME, __scopeSheet), {
|
|
scrollBridge
|
|
} = context, scrollRef = (0, import_react24.useRef)(null), state = (0, import_react24.useRef)({
|
|
lastPageY: 0,
|
|
dragAt: 0,
|
|
dys: [],
|
|
// store a few recent dys to get velocity on release
|
|
isScrolling: false,
|
|
isDragging: false
|
|
}), release = /* @__PURE__ */ __name(() => {
|
|
if (!state.current.isDragging)
|
|
return;
|
|
state.current.isDragging = false, scrollBridge.scrollStartY = -1, state.current.isScrolling = false;
|
|
let vy = 0;
|
|
if (state.current.dys.length) {
|
|
const recentDys = state.current.dys.slice(-10);
|
|
vy = (recentDys.length ? recentDys.reduce((a, b) => a + b, 0) : 0) / recentDys.length * 0.04;
|
|
}
|
|
state.current.dys = [], scrollBridge.release({
|
|
dragAt: state.current.dragAt,
|
|
vy
|
|
});
|
|
}, "release");
|
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ScrollView, {
|
|
ref: composeRefs(scrollRef, ref),
|
|
flex: 1,
|
|
scrollEventThrottle: 8,
|
|
onScroll: (e) => {
|
|
const {
|
|
y
|
|
} = e.nativeEvent.contentOffset;
|
|
scrollBridge.y = y, y > 0 && (scrollBridge.scrollStartY = -1), onScroll == null ? void 0 : onScroll(e);
|
|
},
|
|
onStartShouldSetResponder: () => (scrollBridge.scrollStartY = -1, state.current.isDragging = true, true),
|
|
onMoveShouldSetResponder: () => false,
|
|
onResponderRelease: release,
|
|
className: "_ovs-contain",
|
|
...props,
|
|
children: (0, import_react24.useMemo)(() => children, [children])
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/useSheetOffscreenSize.mjs
|
|
var useSheetOffscreenSize = /* @__PURE__ */ __name(({
|
|
snapPoints,
|
|
position,
|
|
screenSize,
|
|
frameSize,
|
|
snapPointsMode
|
|
}) => {
|
|
if (snapPointsMode === "fit")
|
|
return 0;
|
|
if (snapPointsMode === "constant") {
|
|
const maxSize2 = Number(snapPoints[0]), currentSize2 = Number(snapPoints[position] ?? 0);
|
|
return maxSize2 - currentSize2;
|
|
}
|
|
if (snapPointsMode === "percent") {
|
|
const maxPercentOpened = Number(snapPoints[0]) / 100, percentOpened = Number(snapPoints[position] ?? 0) / 100;
|
|
return (maxPercentOpened - percentOpened) * screenSize;
|
|
}
|
|
const maxSnapPoint = snapPoints[0];
|
|
if (maxSnapPoint === "fit")
|
|
return 0;
|
|
const maxSize = typeof maxSnapPoint == "string" ? Number(maxSnapPoint.slice(0, -1)) / 100 * screenSize : maxSnapPoint, currentSnapPoint = snapPoints[position] ?? 0, currentSize = typeof currentSnapPoint == "string" ? Number(currentSnapPoint.slice(0, -1)) / 100 * screenSize : currentSnapPoint, offscreenSize = maxSize - currentSize;
|
|
return Number.isNaN(offscreenSize) ? 0 : offscreenSize;
|
|
}, "useSheetOffscreenSize");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/createSheet.mjs
|
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
function createSheet({
|
|
Handle: Handle2,
|
|
Frame: Frame2,
|
|
Overlay: Overlay2
|
|
}) {
|
|
const SheetHandle = Handle2.styleable(({
|
|
__scopeSheet,
|
|
...props
|
|
}, forwardedRef) => {
|
|
const context = useSheetContext(SHEET_HANDLE_NAME, __scopeSheet), composedRef = useComposedRefs(context.handleRef, forwardedRef);
|
|
return context.onlyShowFrame ? null : (
|
|
// @ts-ignore
|
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Handle2, {
|
|
ref: composedRef,
|
|
onPress: () => {
|
|
const max2 = context.snapPoints.length + (context.dismissOnSnapToBottom ? -1 : 0), nextPos = (context.position + 1) % max2;
|
|
context.setPosition(nextPos);
|
|
},
|
|
open: context.open,
|
|
...props
|
|
})
|
|
);
|
|
}), SheetOverlay = Overlay2.extractable((0, import_react25.memo)((propsIn) => {
|
|
const {
|
|
__scopeSheet,
|
|
...props
|
|
} = propsIn, context = useSheetContext(SHEET_OVERLAY_NAME, __scopeSheet), element = (0, import_react25.useMemo)(() => (
|
|
// @ts-ignore
|
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Overlay2, {
|
|
...props,
|
|
onPress: composeEventHandlers(props.onPress, context.dismissOnOverlayPress ? () => {
|
|
context.setOpen(false);
|
|
} : void 0)
|
|
})
|
|
), [props.onPress, context.dismissOnOverlayPress]);
|
|
return useIsomorphicLayoutEffect(() => {
|
|
var _a;
|
|
(_a = context.onOverlayComponent) == null ? void 0 : _a.call(context, element);
|
|
}, [element]), context.onlyShowFrame, null;
|
|
})), SheetFrame = Frame2.extractable((0, import_react25.forwardRef)(({
|
|
__scopeSheet,
|
|
adjustPaddingForOffscreenContent,
|
|
disableHideBottomOverflow,
|
|
children,
|
|
...props
|
|
}, forwardedRef) => {
|
|
const context = useSheetContext(SHEET_NAME, __scopeSheet), {
|
|
hasFit,
|
|
removeScrollEnabled,
|
|
frameSize,
|
|
contentRef,
|
|
open
|
|
} = context, composedContentRef = useComposedRefs(forwardedRef, contentRef), offscreenSize = useSheetOffscreenSize(context), sheetContents = (0, import_react25.useMemo)(() => (
|
|
// @ts-ignore
|
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Frame2, {
|
|
ref: composedContentRef,
|
|
flex: hasFit ? 0 : 1,
|
|
height: hasFit ? void 0 : frameSize,
|
|
pointerEvents: open ? "auto" : "none",
|
|
...props,
|
|
children: [children, adjustPaddingForOffscreenContent && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_core12.Stack, {
|
|
"data-sheet-offscreen-pad": true,
|
|
height: offscreenSize,
|
|
width: "100%"
|
|
})]
|
|
})
|
|
), [open, props, frameSize, offscreenSize, adjustPaddingForOffscreenContent, hasFit]);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, {
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RemoveScroll, {
|
|
forwardProps: true,
|
|
enabled: removeScrollEnabled,
|
|
allowPinchZoom: true,
|
|
shards: [contentRef],
|
|
removeScrollBar: false,
|
|
children: sheetContents
|
|
}), !disableHideBottomOverflow && // @ts-ignore
|
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Frame2, {
|
|
...props,
|
|
componentName: "SheetCover",
|
|
children: null,
|
|
position: "absolute",
|
|
bottom: "-100%",
|
|
zIndex: -1,
|
|
height: context.frameSize,
|
|
left: 0,
|
|
right: 0,
|
|
borderWidth: 0,
|
|
borderRadius: 0,
|
|
shadowOpacity: 0
|
|
})]
|
|
});
|
|
})), Sheet2 = (0, import_react25.forwardRef)(function(props, ref) {
|
|
const hydrated = useDidFinishSSR(), {
|
|
isShowingNonSheet
|
|
} = useSheetController();
|
|
let SheetImplementation = SheetImplementationCustom;
|
|
return props.native && import_react_native_web4.Platform.OS, isShowingNonSheet || !hydrated ? null : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SheetImplementation, {
|
|
ref,
|
|
...props
|
|
});
|
|
}), components = {
|
|
Frame: SheetFrame,
|
|
Overlay: SheetOverlay,
|
|
Handle: SheetHandle,
|
|
ScrollView: SheetScrollView
|
|
}, Controlled = withStaticProperties(Sheet2, components);
|
|
return withStaticProperties(Sheet2, {
|
|
...components,
|
|
Controlled
|
|
});
|
|
}
|
|
__name(createSheet, "createSheet");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/Sheet.mjs
|
|
var Handle = (0, import_core13.styled)(XStack, {
|
|
name: SHEET_HANDLE_NAME,
|
|
variants: {
|
|
open: {
|
|
true: {
|
|
pointerEvents: "auto"
|
|
},
|
|
false: {
|
|
opacity: 0,
|
|
pointerEvents: "none"
|
|
}
|
|
},
|
|
unstyled: {
|
|
false: {
|
|
height: 10,
|
|
borderRadius: 100,
|
|
backgroundColor: "$background",
|
|
zIndex: 10,
|
|
marginHorizontal: "35%",
|
|
marginBottom: "$2",
|
|
opacity: 0.5,
|
|
hoverStyle: {
|
|
opacity: 0.7
|
|
}
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Overlay = (0, import_core13.styled)(ThemeableStack, {
|
|
name: SHEET_OVERLAY_NAME,
|
|
variants: {
|
|
open: {
|
|
true: {
|
|
opacity: 1,
|
|
pointerEvents: "auto"
|
|
},
|
|
false: {
|
|
opacity: 0,
|
|
pointerEvents: "none"
|
|
}
|
|
},
|
|
unstyled: {
|
|
false: {
|
|
fullscreen: true,
|
|
position: "absolute",
|
|
backgrounded: true,
|
|
zIndex: 99999,
|
|
pointerEvents: "auto"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Frame = (0, import_core13.styled)(YStack, {
|
|
name: SHEET_NAME,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
flex: 1,
|
|
backgroundColor: "$background",
|
|
borderTopLeftRadius: "$true",
|
|
borderTopRightRadius: "$true",
|
|
width: "100%",
|
|
maxHeight: "100%",
|
|
overflow: "hidden"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Sheet = createSheet({
|
|
Frame,
|
|
Handle,
|
|
Overlay
|
|
});
|
|
var SheetOverlayFrame = Overlay;
|
|
var SheetHandleFrame = Handle;
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/useSheet.mjs
|
|
var useSheet = /* @__PURE__ */ __name(() => useSheetContext("", void 0), "useSheet");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/SheetController.mjs
|
|
var import_core14 = require("@tamagui/core");
|
|
var import_react26 = require("react");
|
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
var SheetController = /* @__PURE__ */ __name(({
|
|
children,
|
|
onOpenChange: onOpenChangeProp,
|
|
...value
|
|
}) => {
|
|
const onOpenChange = (0, import_core14.useEvent)(onOpenChangeProp), memoValue = (0, import_react26.useMemo)(() => ({
|
|
open: value.open,
|
|
hidden: value.hidden,
|
|
disableDrag: value.disableDrag,
|
|
onOpenChange
|
|
}), [onOpenChange, value.open, value.hidden, value.disableDrag]);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(SheetControllerContext.Provider, {
|
|
value: memoValue,
|
|
children
|
|
});
|
|
}, "SheetController");
|
|
|
|
// node_modules/@tamagui/sheet/dist/esm/nativeSheet.mjs
|
|
var import_react27 = require("react");
|
|
var import_react_native_web5 = __toESM(require_cjs20(), 1);
|
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
var nativeSheets = {
|
|
ios: null
|
|
};
|
|
function setupNativeSheet(platform2, Implementation) {
|
|
platform2 === "ios" && (nativeSheets[platform2] = (props) => {
|
|
const state = useSheetOpenState(props), providerProps = useSheetProviderProps(props, state), {
|
|
open,
|
|
setOpen
|
|
} = state, ref = (0, import_react27.useRef)();
|
|
return (0, import_react27.useEffect)(() => {
|
|
var _a;
|
|
(_a = ref.current) == null ? void 0 : _a.setVisibility(open);
|
|
}, [open]), /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(SheetProvider, {
|
|
...providerProps,
|
|
onlyShowFrame: true,
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Implementation, {
|
|
ref,
|
|
onModalDismiss: () => setOpen(false),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react_native_web5.View, {
|
|
style: {
|
|
flex: 1
|
|
},
|
|
children: props.children
|
|
})
|
|
}), /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(YStack, {
|
|
position: "absolute",
|
|
opacity: 0,
|
|
pointerEvents: "none",
|
|
width: 0,
|
|
height: 0,
|
|
children: props.children
|
|
})]
|
|
})
|
|
});
|
|
});
|
|
}
|
|
__name(setupNativeSheet, "setupNativeSheet");
|
|
|
|
// node_modules/@tamagui/get-font-sized/dist/esm/index.mjs
|
|
var import_core15 = require("@tamagui/core");
|
|
var getFontSized = /* @__PURE__ */ __name((sizeTokenIn = "$true", {
|
|
font,
|
|
fontFamily,
|
|
props
|
|
}) => {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
if (!font) {
|
|
process.env.NODE_ENV === "development" && console.warn("Warning: No font found in props", {
|
|
...props
|
|
}, 'For a sized text component, you either need to set fontFamily directly, or through the "defaultFont" setting in your createTamagui config.');
|
|
return;
|
|
}
|
|
const sizeToken = sizeTokenIn === "$true" ? getDefaultSizeToken(font) : sizeTokenIn, fontSize = font.size[sizeToken], lineHeight = (_a = font.lineHeight) == null ? void 0 : _a[sizeToken], fontWeight = (_b = font.weight) == null ? void 0 : _b[sizeToken], letterSpacing = (_c = font.letterSpacing) == null ? void 0 : _c[sizeToken], textTransform = (_d = font.transform) == null ? void 0 : _d[sizeToken], fontStyle = props.fontStyle ?? ((_e = font.style) == null ? void 0 : _e[sizeToken]), style = {
|
|
color: props.color ?? ((_f = font.color) == null ? void 0 : _f[sizeToken]),
|
|
fontStyle,
|
|
textTransform,
|
|
fontFamily,
|
|
fontWeight,
|
|
letterSpacing,
|
|
fontSize,
|
|
lineHeight
|
|
};
|
|
return process.env.NODE_ENV === "development" && props.debug && props.debug === "verbose" && (console.groupCollapsed(" \u{1F539} getFontSized", sizeTokenIn, sizeToken), console.info({
|
|
style,
|
|
props,
|
|
font
|
|
}), console.groupEnd()), style;
|
|
}, "getFontSized");
|
|
var cache2 = /* @__PURE__ */ new WeakMap();
|
|
function getDefaultSizeToken(font) {
|
|
if (typeof font == "object" && cache2.has(font))
|
|
return cache2.get(font);
|
|
const sizeTokens = "$true" in font.size ? font.size : (0, import_core15.getTokens)().size, sizeDefault = sizeTokens.$true, sizeDefaultSpecific = sizeDefault ? Object.keys(sizeTokens).find((x) => x !== "$true" && sizeTokens[x].val === sizeDefault.val) : null;
|
|
return !sizeDefault || !sizeDefaultSpecific ? (process.env.NODE_ENV === "development" && console.warn(`No default size is set in your tokens for the "true" key, fonts will be inconsistent.
|
|
|
|
Fix this by having consistent tokens across fonts and sizes and setting a true key for your size tokens, or
|
|
set true keys for all your font tokens: "size", "lineHeight", "fontStyle", etc.`), Object.keys(font.size)[3]) : (cache2.set(font, sizeDefaultSpecific), sizeDefaultSpecific);
|
|
}
|
|
__name(getDefaultSizeToken, "getDefaultSizeToken");
|
|
|
|
// node_modules/@tamagui/text/dist/esm/SizableText.mjs
|
|
var import_web7 = require("@tamagui/core");
|
|
var SizableText = (0, import_web7.styled)(import_web7.Text, {
|
|
name: "SizableText",
|
|
fontFamily: "$body",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
color: "$color"
|
|
}
|
|
},
|
|
size: getFontSized
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
SizableText.staticConfig.variants.fontFamily = {
|
|
"...": (_, extras) => {
|
|
const size6 = extras.props.size || "$true";
|
|
return getFontSized(size6, extras);
|
|
}
|
|
};
|
|
|
|
// node_modules/@tamagui/text/dist/esm/Paragraph.mjs
|
|
var import_web8 = require("@tamagui/core");
|
|
var Paragraph = (0, import_web8.styled)(SizableText, {
|
|
name: "Paragraph",
|
|
tag: "p",
|
|
userSelect: "auto",
|
|
color: "$color",
|
|
size: "$true",
|
|
whiteSpace: "normal"
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/esm/Headings.mjs
|
|
var import_web9 = require("@tamagui/core");
|
|
var Heading = (0, import_web9.styled)(Paragraph, {
|
|
tag: "span",
|
|
name: "Heading",
|
|
accessibilityRole: "header",
|
|
fontFamily: "$heading",
|
|
size: "$8",
|
|
margin: 0
|
|
});
|
|
var H1 = (0, import_web9.styled)(Heading, {
|
|
name: "H1",
|
|
tag: "h1",
|
|
size: "$10"
|
|
});
|
|
var H2 = (0, import_web9.styled)(Heading, {
|
|
name: "H2",
|
|
tag: "h2",
|
|
size: "$9"
|
|
});
|
|
var H3 = (0, import_web9.styled)(Heading, {
|
|
name: "H3",
|
|
tag: "h3",
|
|
size: "$8"
|
|
});
|
|
var H4 = (0, import_web9.styled)(Heading, {
|
|
name: "H4",
|
|
tag: "h4",
|
|
size: "$7"
|
|
});
|
|
var H5 = (0, import_web9.styled)(Heading, {
|
|
name: "H5",
|
|
tag: "h5",
|
|
size: "$6"
|
|
});
|
|
var H6 = (0, import_web9.styled)(Heading, {
|
|
name: "H6",
|
|
tag: "h6",
|
|
size: "$5"
|
|
});
|
|
|
|
// node_modules/@tamagui/text/dist/esm/wrapChildrenInText.mjs
|
|
var import_react28 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
function wrapChildrenInText(TextComponent, propsIn, extraProps) {
|
|
const {
|
|
children,
|
|
textProps,
|
|
size: size6,
|
|
noTextWrap,
|
|
color: color2,
|
|
fontFamily,
|
|
fontSize,
|
|
fontWeight,
|
|
letterSpacing,
|
|
textAlign,
|
|
fontStyle,
|
|
maxFontSizeMultiplier
|
|
} = propsIn;
|
|
if (noTextWrap || !children)
|
|
return [children];
|
|
const props = {
|
|
...extraProps
|
|
};
|
|
return color2 && (props.color = color2), fontFamily && (props.fontFamily = fontFamily), fontSize && (props.fontSize = fontSize), fontWeight && (props.fontWeight = fontWeight), letterSpacing && (props.letterSpacing = letterSpacing), textAlign && (props.textAlign = textAlign), size6 && (props.size = size6), fontStyle && (props.fontStyle = fontStyle), maxFontSizeMultiplier && (props.maxFontSizeMultiplier = maxFontSizeMultiplier), import_react28.default.Children.toArray(children).map((child, index3) => typeof child == "string" ? (
|
|
// so "data-disable-theme" is a hack to fix themeInverse, don't ask me why
|
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TextComponent, {
|
|
...props,
|
|
...textProps,
|
|
children: child
|
|
}, index3)
|
|
) : child);
|
|
}
|
|
__name(wrapChildrenInText, "wrapChildrenInText");
|
|
|
|
// node_modules/@tamagui/dialog/dist/esm/Dialog.mjs
|
|
var React11 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
var DIALOG_NAME = "Dialog";
|
|
var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
|
|
var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
|
|
var TRIGGER_NAME = "DialogTrigger";
|
|
var DialogTriggerFrame = (0, import_core16.styled)(import_core16.View, {
|
|
name: TRIGGER_NAME
|
|
});
|
|
var DialogTrigger = DialogTriggerFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeDialog,
|
|
...triggerProps
|
|
} = props, isInsideButton = React11.useContext(ButtonNestingContext), context = useDialogContext(TRIGGER_NAME, __scopeDialog), composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ButtonNestingContext.Provider, {
|
|
value: true,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogTriggerFrame, {
|
|
tag: isInsideButton ? "span" : "button",
|
|
"aria-haspopup": "dialog",
|
|
"aria-expanded": context.open,
|
|
"aria-controls": context.contentId,
|
|
"data-state": getState(context.open),
|
|
...triggerProps,
|
|
ref: composedTriggerRef,
|
|
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
|
|
})
|
|
});
|
|
});
|
|
DialogTrigger.displayName = TRIGGER_NAME;
|
|
var PORTAL_NAME = "DialogPortal";
|
|
var [PortalProvider2, usePortalContext] = createDialogContext(PORTAL_NAME, {
|
|
forceMount: void 0
|
|
});
|
|
var DialogPortalFrame = (0, import_core16.styled)(YStack, {
|
|
pointerEvents: "none",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
fullscreen: true,
|
|
zIndex: 1e5,
|
|
...isWeb && {
|
|
maxHeight: "100vh",
|
|
position: "fixed"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var DialogPortalItem = /* @__PURE__ */ __name((props) => {
|
|
const themeName = (0, import_core16.useThemeName)(), context = useDialogContext(PORTAL_NAME, props.__scopeDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PortalItem, {
|
|
hostName: props.hostName,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogPortalItemContent, {
|
|
...props,
|
|
themeName,
|
|
context
|
|
})
|
|
});
|
|
}, "DialogPortalItem");
|
|
function DialogPortalItemContent(props) {
|
|
const {
|
|
__scopeDialog,
|
|
children,
|
|
context,
|
|
themeName,
|
|
space: space2,
|
|
spaceDirection,
|
|
separator
|
|
} = props;
|
|
let childrenSpaced = children;
|
|
return (space2 || separator) && (childrenSpaced = (0, import_core16.spacedChildren)({
|
|
children,
|
|
separator,
|
|
space: space2,
|
|
direction: spaceDirection
|
|
})), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogProvider, {
|
|
scope: __scopeDialog,
|
|
...context,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Theme, {
|
|
name: themeName,
|
|
children: childrenSpaced
|
|
})
|
|
});
|
|
}
|
|
__name(DialogPortalItemContent, "DialogPortalItemContent");
|
|
var DialogPortal = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
__scopeDialog,
|
|
forceMount,
|
|
children,
|
|
...frameProps
|
|
} = props, context = useDialogContext(PORTAL_NAME, __scopeDialog), isShowing = forceMount || context.open, [isFullyHidden, setIsFullyHidden] = React11.useState(!isShowing);
|
|
isShowing && isFullyHidden && setIsFullyHidden(false);
|
|
const handleExitComplete = React11.useCallback(() => {
|
|
setIsFullyHidden(true);
|
|
}, []), contents = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AnimatePresence, {
|
|
onExitComplete: handleExitComplete,
|
|
children: isShowing ? children : null
|
|
});
|
|
if (useShowDialogSheet(context))
|
|
return children;
|
|
if (context.modal) {
|
|
if (isFullyHidden)
|
|
return null;
|
|
const framedContents = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PortalProvider2, {
|
|
scope: __scopeDialog,
|
|
forceMount,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogPortalFrame, {
|
|
pointerEvents: isShowing ? "auto" : "none",
|
|
...frameProps,
|
|
children: contents
|
|
})
|
|
});
|
|
return isWeb ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Portal, {
|
|
zIndex: props.zIndex ?? 1e5,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PassthroughTheme, {
|
|
children: framedContents
|
|
})
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogPortalItem, {
|
|
__scopeDialog,
|
|
children: framedContents
|
|
});
|
|
}
|
|
return contents;
|
|
}, "DialogPortal");
|
|
DialogPortal.displayName = PORTAL_NAME;
|
|
var PassthroughTheme = /* @__PURE__ */ __name(({
|
|
children
|
|
}) => {
|
|
const themeName = (0, import_core16.useThemeName)();
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_core16.Theme, {
|
|
name: themeName,
|
|
forceClassName: true,
|
|
children
|
|
});
|
|
}, "PassthroughTheme");
|
|
var OVERLAY_NAME = "DialogOverlay";
|
|
var DialogOverlayFrame = (0, import_core16.styled)(Overlay, {
|
|
name: OVERLAY_NAME
|
|
});
|
|
var DialogOverlay = DialogOverlayFrame.extractable(React11.forwardRef(({
|
|
__scopeDialog,
|
|
...props
|
|
}, forwardedRef) => {
|
|
const portalContext = usePortalContext(OVERLAY_NAME, __scopeDialog), {
|
|
forceMount = portalContext.forceMount,
|
|
...overlayProps
|
|
} = props, context = useDialogContext(OVERLAY_NAME, __scopeDialog), showSheet = useShowDialogSheet(context);
|
|
return !forceMount && (!context.modal || showSheet) ? null : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogOverlayImpl, {
|
|
context,
|
|
...overlayProps,
|
|
ref: forwardedRef
|
|
});
|
|
}));
|
|
DialogOverlay.displayName = OVERLAY_NAME;
|
|
var DialogOverlayImpl = React11.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
context,
|
|
...overlayProps
|
|
} = props;
|
|
return (
|
|
// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`
|
|
// ie. when `Overlay` and `Content` are siblings
|
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogOverlayFrame, {
|
|
"data-state": getState(context.open),
|
|
pointerEvents: context.open ? "auto" : "none",
|
|
...overlayProps,
|
|
ref: forwardedRef
|
|
})
|
|
);
|
|
});
|
|
var CONTENT_NAME = "DialogContent";
|
|
var DialogContentFrame = (0, import_core16.styled)(ThemeableStack, {
|
|
name: CONTENT_NAME,
|
|
tag: "dialog",
|
|
variants: {
|
|
size: {
|
|
"...size": (val, extras) => ({})
|
|
},
|
|
unstyled: {
|
|
false: {
|
|
position: "relative",
|
|
backgrounded: true,
|
|
padded: true,
|
|
radiused: true,
|
|
elevate: true,
|
|
zIndex: 1e5
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
size: "$true",
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var DialogContent = DialogContentFrame.extractable(React11.forwardRef(({
|
|
__scopeDialog,
|
|
...props
|
|
}, forwardedRef) => {
|
|
const portalContext = usePortalContext(CONTENT_NAME, __scopeDialog), {
|
|
forceMount = portalContext.forceMount,
|
|
...contentProps
|
|
} = props, context = useDialogContext(CONTENT_NAME, __scopeDialog), contents = context.modal ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogContentModal, {
|
|
context,
|
|
...contentProps,
|
|
ref: forwardedRef
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogContentNonModal, {
|
|
context,
|
|
...contentProps,
|
|
ref: forwardedRef
|
|
});
|
|
return !isWeb || context.disableRemoveScroll ? contents : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(RemoveScroll, {
|
|
forwardProps: true,
|
|
enabled: context.open,
|
|
allowPinchZoom: context.allowPinchZoom,
|
|
shards: [context.contentRef],
|
|
removeScrollBar: false,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", {
|
|
"data-remove-scroll-container": true,
|
|
className: "_dsp_contents",
|
|
children: contents
|
|
})
|
|
});
|
|
}));
|
|
DialogContent.displayName = CONTENT_NAME;
|
|
var DialogContentModal = React11.forwardRef(({
|
|
children,
|
|
context,
|
|
...props
|
|
}, forwardedRef) => {
|
|
const contentRef = React11.useRef(null), composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);
|
|
return isWeb && React11.useEffect(() => {
|
|
if (!context.open)
|
|
return;
|
|
const content = contentRef.current;
|
|
if (content)
|
|
return (0, import_aria_hidden.hideOthers)(content);
|
|
}, [context.open]), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogContentImpl, {
|
|
...props,
|
|
context,
|
|
ref: composedRefs,
|
|
trapFocus: context.open,
|
|
disableOutsidePointerEvents: true,
|
|
onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
|
|
var _a;
|
|
event.preventDefault(), (_a = context.triggerRef.current) == null ? void 0 : _a.focus();
|
|
}),
|
|
onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
|
|
const originalEvent = event.detail.originalEvent, ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
(originalEvent.button === 2 || ctrlLeftClick) && event.preventDefault();
|
|
}),
|
|
onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => event.preventDefault()),
|
|
...!props.unstyled && {
|
|
outlineStyle: "none"
|
|
},
|
|
children
|
|
});
|
|
});
|
|
var DialogContentNonModal = React11.forwardRef((props, forwardedRef) => {
|
|
const hasInteractedOutsideRef = React11.useRef(false);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogContentImpl, {
|
|
...props,
|
|
ref: forwardedRef,
|
|
trapFocus: false,
|
|
disableOutsidePointerEvents: false,
|
|
onCloseAutoFocus: (event) => {
|
|
var _a, _b;
|
|
(_a = props.onCloseAutoFocus) == null ? void 0 : _a.call(props, event), event.defaultPrevented || (hasInteractedOutsideRef.current || ((_b = props.context.triggerRef.current) == null ? void 0 : _b.focus()), event.preventDefault()), hasInteractedOutsideRef.current = false;
|
|
},
|
|
onInteractOutside: (event) => {
|
|
var _a;
|
|
(_a = props.onInteractOutside) == null ? void 0 : _a.call(props, event), event.defaultPrevented || (hasInteractedOutsideRef.current = true);
|
|
const target = event.target, trigger = props.context.triggerRef.current;
|
|
if (!(trigger instanceof HTMLElement))
|
|
return;
|
|
trigger.contains(target) && event.preventDefault();
|
|
}
|
|
});
|
|
});
|
|
var DialogContentImpl = React11.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeDialog,
|
|
trapFocus,
|
|
onOpenAutoFocus,
|
|
onCloseAutoFocus,
|
|
disableOutsidePointerEvents,
|
|
onEscapeKeyDown,
|
|
onPointerDownOutside,
|
|
onFocusOutside,
|
|
onInteractOutside,
|
|
context,
|
|
...contentProps
|
|
} = props, contentRef = React11.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), showSheet = useShowDialogSheet(context), contents = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogContentFrame, {
|
|
id: context.contentId,
|
|
"aria-describedby": context.descriptionId,
|
|
"aria-labelledby": context.titleId,
|
|
"data-state": getState(context.open),
|
|
...contentProps
|
|
});
|
|
return showSheet ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogPortalItem, {
|
|
hostName: getSheetContentsName(context),
|
|
children: contentProps.children
|
|
}) : isWeb ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, {
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dismissable, {
|
|
disableOutsidePointerEvents: context.open && disableOutsidePointerEvents,
|
|
forceUnmount: !context.open,
|
|
onEscapeKeyDown,
|
|
onPointerDownOutside,
|
|
onFocusOutside,
|
|
onInteractOutside,
|
|
ref: composedRefs,
|
|
onDismiss: () => context.onOpenChange(false),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FocusScope, {
|
|
loop: true,
|
|
enabled: context.open,
|
|
trapped: trapFocus,
|
|
onMountAutoFocus: onOpenAutoFocus,
|
|
forceUnmount: !context.open,
|
|
onUnmountAutoFocus: onCloseAutoFocus,
|
|
children: contents
|
|
})
|
|
}), process.env.NODE_ENV === "development" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, {
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TitleWarning, {
|
|
titleId: context.titleId
|
|
}), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DescriptionWarning, {
|
|
contentRef,
|
|
descriptionId: context.descriptionId
|
|
})]
|
|
})]
|
|
}) : contents;
|
|
});
|
|
var TITLE_NAME = "DialogTitle";
|
|
var DialogTitleFrame = (0, import_core16.styled)(H2, {
|
|
name: TITLE_NAME
|
|
});
|
|
var DialogTitle = DialogTitleFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeDialog,
|
|
...titleProps
|
|
} = props, context = useDialogContext(TITLE_NAME, __scopeDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogTitleFrame, {
|
|
id: context.titleId,
|
|
...titleProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
DialogTitle.displayName = TITLE_NAME;
|
|
var DialogDescriptionFrame = (0, import_core16.styled)(Paragraph, {
|
|
name: "DialogDescription"
|
|
});
|
|
var DESCRIPTION_NAME = "DialogDescription";
|
|
var DialogDescription = DialogDescriptionFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeDialog,
|
|
...descriptionProps
|
|
} = props, context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogDescriptionFrame, {
|
|
id: context.descriptionId,
|
|
...descriptionProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
DialogDescription.displayName = DESCRIPTION_NAME;
|
|
var CLOSE_NAME = "DialogClose";
|
|
var DialogCloseFrame = (0, import_core16.styled)(import_core16.View, {
|
|
name: CLOSE_NAME,
|
|
tag: "button"
|
|
});
|
|
var DialogClose = DialogCloseFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeDialog,
|
|
displayWhenAdapted,
|
|
...closeProps
|
|
} = props, context = useDialogContext(CLOSE_NAME, __scopeDialog, {
|
|
warn: false,
|
|
fallback: {}
|
|
}), isSheet = useShowDialogSheet(context), isInsideButton = React11.useContext(ButtonNestingContext);
|
|
return isSheet && !displayWhenAdapted ? null : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogCloseFrame, {
|
|
accessibilityLabel: "Dialog Close",
|
|
tag: isInsideButton ? "span" : "button",
|
|
...closeProps,
|
|
ref: forwardedRef,
|
|
onPress: composeEventHandlers(props.onPress, () => {
|
|
context.onOpenChange(false);
|
|
})
|
|
});
|
|
});
|
|
function getState(open) {
|
|
return open ? "open" : "closed";
|
|
}
|
|
__name(getState, "getState");
|
|
var TITLE_WARNING_NAME = "DialogTitleWarning";
|
|
var [DialogWarningProvider, useWarningContext] = createContext4(TITLE_WARNING_NAME, {
|
|
contentName: CONTENT_NAME,
|
|
titleName: TITLE_NAME,
|
|
docsSlug: "dialog"
|
|
});
|
|
var TitleWarning = /* @__PURE__ */ __name(({
|
|
titleId
|
|
}) => {
|
|
if (process.env.NODE_ENV === "development") {
|
|
const titleWarningContext = useWarningContext(TITLE_WARNING_NAME), MESSAGE = `\`${titleWarningContext.contentName}\` requires a \`${titleWarningContext.titleName}\` for the component to be accessible for screen reader users.
|
|
|
|
If you want to hide the \`${titleWarningContext.titleName}\`, you can wrap it with our VisuallyHidden component.`;
|
|
React11.useEffect(() => {
|
|
isWeb && titleId && (document.getElementById(titleId) || console.warn(MESSAGE));
|
|
}, [MESSAGE, titleId]);
|
|
}
|
|
return null;
|
|
}, "TitleWarning");
|
|
var DESCRIPTION_WARNING_NAME = "DialogDescriptionWarning";
|
|
var DescriptionWarning = /* @__PURE__ */ __name(({
|
|
contentRef,
|
|
descriptionId
|
|
}) => {
|
|
if (process.env.NODE_ENV === "development") {
|
|
const MESSAGE = `Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${useWarningContext(DESCRIPTION_WARNING_NAME).contentName}}.`;
|
|
React11.useEffect(() => {
|
|
if (!isWeb)
|
|
return;
|
|
const contentNode = contentRef.current;
|
|
if (!(contentNode instanceof HTMLElement))
|
|
return;
|
|
const describedById = contentNode.getAttribute("aria-describedby");
|
|
descriptionId && describedById && (document.getElementById(descriptionId) || console.warn(MESSAGE));
|
|
}, [MESSAGE, contentRef, descriptionId]);
|
|
}
|
|
return null;
|
|
}, "DescriptionWarning");
|
|
var Dialog = withStaticProperties(React11.forwardRef(function(props, ref) {
|
|
const {
|
|
__scopeDialog,
|
|
children,
|
|
open: openProp,
|
|
defaultOpen = false,
|
|
onOpenChange,
|
|
modal = true,
|
|
allowPinchZoom = false,
|
|
disableRemoveScroll = false
|
|
} = props, baseId = React11.useId(), scopeId = `scope-${baseId}`, contentId = `content-${baseId}`, titleId = `title-${baseId}`, descriptionId = `description-${baseId}`, scopeKey = __scopeDialog ? Object.keys(__scopeDialog)[0] : scopeId, sheetContentsName = getSheetContentsName({
|
|
scopeKey,
|
|
contentId
|
|
}), triggerRef = React11.useRef(null), contentRef = React11.useRef(null), [open, setOpen] = useControllableState({
|
|
prop: openProp,
|
|
defaultProp: defaultOpen,
|
|
onChange: onOpenChange
|
|
}), onOpenToggle = React11.useCallback(() => {
|
|
setOpen((prevOpen) => !prevOpen);
|
|
}, [setOpen]), context = {
|
|
scope: __scopeDialog,
|
|
scopeKey,
|
|
triggerRef,
|
|
contentRef,
|
|
contentId,
|
|
titleId,
|
|
descriptionId,
|
|
open,
|
|
onOpenChange: setOpen,
|
|
onOpenToggle,
|
|
modal,
|
|
allowPinchZoom
|
|
}, {
|
|
when,
|
|
AdaptProvider
|
|
} = useAdaptParent({
|
|
Contents: React11.useCallback((props2) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PortalHost, {
|
|
forwardProps: props2,
|
|
name: sheetContentsName
|
|
}), [sheetContentsName])
|
|
});
|
|
return React11.useImperativeHandle(ref, () => ({
|
|
open: setOpen
|
|
}), [setOpen]), /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(AdaptProvider, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogProvider, {
|
|
...context,
|
|
sheetBreakpoint: when,
|
|
disableRemoveScroll,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DialogSheetController, {
|
|
onOpenChange: setOpen,
|
|
__scopeDialog,
|
|
children
|
|
})
|
|
})
|
|
});
|
|
}), {
|
|
Trigger: DialogTrigger,
|
|
Portal: DialogPortal,
|
|
Overlay: DialogOverlay,
|
|
Content: DialogContent,
|
|
Title: DialogTitle,
|
|
Description: DialogDescription,
|
|
Close: DialogClose,
|
|
Sheet: Sheet.Controlled,
|
|
Adapt
|
|
});
|
|
var SHEET_CONTENTS_NAME = "DialogSheetContents";
|
|
var DialogSheetContents = /* @__PURE__ */ __name(({
|
|
name,
|
|
...props
|
|
}) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PortalHost, {
|
|
forwardProps: props,
|
|
name
|
|
}), "DialogSheetContents");
|
|
DialogSheetContents.displayName = SHEET_CONTENTS_NAME;
|
|
var getSheetContentsName = /* @__PURE__ */ __name(({
|
|
scopeKey,
|
|
contentId
|
|
}) => `${scopeKey || contentId}SheetContents`, "getSheetContentsName");
|
|
var DialogSheetController = /* @__PURE__ */ __name((props) => {
|
|
const context = useDialogContext("DialogSheetController", props.__scopeDialog), showSheet = useShowDialogSheet(context), breakpointActive = useSheetBreakpointActive(context), getShowSheet = (0, import_core16.useGet)(showSheet);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SheetController, {
|
|
onOpenChange: (val) => {
|
|
getShowSheet() && props.onOpenChange(val);
|
|
},
|
|
open: context.open,
|
|
hidden: breakpointActive === false,
|
|
children: props.children
|
|
});
|
|
}, "DialogSheetController");
|
|
var useSheetBreakpointActive = /* @__PURE__ */ __name((context) => {
|
|
const media2 = (0, import_core16.useMedia)();
|
|
return context.sheetBreakpoint ? context.sheetBreakpoint === true ? true : media2[context.sheetBreakpoint] : false;
|
|
}, "useSheetBreakpointActive");
|
|
var useShowDialogSheet = /* @__PURE__ */ __name((context) => {
|
|
const breakpointActive = useSheetBreakpointActive(context);
|
|
return context.open === false ? false : breakpointActive;
|
|
}, "useShowDialogSheet");
|
|
|
|
// node_modules/@tamagui/alert-dialog/dist/esm/AlertDialog.mjs
|
|
var React12 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
var ROOT_NAME = "AlertDialog";
|
|
var [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [createDialogScope]);
|
|
var useDialogScope = createDialogScope();
|
|
var TRIGGER_NAME2 = "AlertDialogTrigger";
|
|
var NativeAlertDialogTriggerFrame = (0, import_core17.styled)(import_core17.View, {
|
|
name: TRIGGER_NAME2
|
|
});
|
|
var AlertDialogTrigger = React12.forwardRef((props, forwardedRef) => {
|
|
if (props.__native) {
|
|
const {
|
|
__native,
|
|
onPress,
|
|
__onPress,
|
|
...rest
|
|
} = props;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(NativeAlertDialogTriggerFrame, {
|
|
...rest,
|
|
onPress: composeEventHandlers(onPress, __onPress)
|
|
});
|
|
}
|
|
const {
|
|
__scopeAlertDialog,
|
|
...triggerProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogTrigger, {
|
|
...dialogScope,
|
|
...triggerProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
AlertDialogTrigger.displayName = TRIGGER_NAME2;
|
|
var PORTAL_NAME2 = "AlertDialogPortal";
|
|
var AlertDialogPortal = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...portalProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogPortal, {
|
|
...dialogScope,
|
|
...portalProps
|
|
});
|
|
}, "AlertDialogPortal");
|
|
AlertDialogPortal.displayName = PORTAL_NAME2;
|
|
var OVERLAY_NAME2 = "AlertDialogOverlay";
|
|
var AlertDialogOverlayFrame = (0, import_core17.styled)(DialogOverlayFrame, {
|
|
name: OVERLAY_NAME2
|
|
});
|
|
var AlertDialogOverlay = AlertDialogOverlayFrame.extractable(React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...overlayProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogOverlay, {
|
|
...dialogScope,
|
|
...overlayProps,
|
|
ref: forwardedRef
|
|
});
|
|
}));
|
|
AlertDialogOverlay.displayName = OVERLAY_NAME2;
|
|
var CONTENT_NAME2 = "AlertDialogContent";
|
|
var [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME2);
|
|
var AlertDialogContent = React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
children,
|
|
...contentProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog), contentRef = React12.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), cancelRef = React12.useRef(null);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogWarningProvider, {
|
|
contentName: CONTENT_NAME2,
|
|
titleName: TITLE_NAME2,
|
|
docsSlug: "alert-dialog",
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AlertDialogContentProvider, {
|
|
scope: __scopeAlertDialog,
|
|
cancelRef,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(DialogContent, {
|
|
role: "alertdialog",
|
|
...dialogScope,
|
|
...contentProps,
|
|
ref: composedRefs,
|
|
onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {
|
|
var _a;
|
|
event.preventDefault(), isWeb && ((_a = cancelRef.current) == null ? void 0 : _a.focus({
|
|
preventScroll: true
|
|
}));
|
|
}),
|
|
onPointerDownOutside: (event) => event.preventDefault(),
|
|
onInteractOutside: (event) => event.preventDefault(),
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_core17.Slottable, {
|
|
children
|
|
}), process.env.NODE_ENV === "development" && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DescriptionWarning2, {
|
|
contentRef
|
|
})]
|
|
})
|
|
})
|
|
});
|
|
});
|
|
AlertDialogContent.displayName = CONTENT_NAME2;
|
|
var TITLE_NAME2 = "AlertDialogTitle";
|
|
var AlertDialogTitle = React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...titleProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogTitle, {
|
|
...dialogScope,
|
|
...titleProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
AlertDialogTitle.displayName = TITLE_NAME2;
|
|
var DESCRIPTION_NAME2 = "AlertDialogDescription";
|
|
var AlertDialogDescription = React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...descriptionProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogDescription, {
|
|
...dialogScope,
|
|
...descriptionProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
AlertDialogDescription.displayName = DESCRIPTION_NAME2;
|
|
var ACTION_NAME = "AlertDialogAction";
|
|
var AlertDialogAction = React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...actionProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogClose, {
|
|
...dialogScope,
|
|
...actionProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
AlertDialogAction.displayName = ACTION_NAME;
|
|
var CANCEL_NAME = "AlertDialogCancel";
|
|
var AlertDialogCancel = React12.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
...cancelProps
|
|
} = props, {
|
|
cancelRef
|
|
} = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog), dialogScope = useDialogScope(__scopeAlertDialog), ref = useComposedRefs(forwardedRef, cancelRef);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogClose, {
|
|
...dialogScope,
|
|
...cancelProps,
|
|
ref
|
|
});
|
|
});
|
|
AlertDialogCancel.displayName = CANCEL_NAME;
|
|
var DescriptionWarning2 = /* @__PURE__ */ __name(({
|
|
contentRef
|
|
}) => (process.env.NODE_ENV === "development" && React12.useEffect(() => {
|
|
var _a;
|
|
if (!isWeb)
|
|
return;
|
|
document.getElementById(
|
|
// @ts-ignore
|
|
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
(_a = contentRef.current) == null ? void 0 : _a.getAttribute("aria-describedby")
|
|
) || console.warn(`\`${CONTENT_NAME2}\` requires a description for the component to be accessible for screen reader users.
|
|
|
|
You can add a description to the \`${CONTENT_NAME2}\` by passing a \`${DESCRIPTION_NAME2}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
|
|
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${CONTENT_NAME2}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
|
|
For more information, see https://tamagui.dev/docs/components/alert-dialog`);
|
|
}, [contentRef]), null), "DescriptionWarning");
|
|
var AlertDialogInner = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
__scopeAlertDialog,
|
|
native,
|
|
...alertDialogProps
|
|
} = props, dialogScope = useDialogScope(__scopeAlertDialog);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Dialog, {
|
|
...dialogScope,
|
|
...alertDialogProps,
|
|
modal: true
|
|
});
|
|
}, "AlertDialogInner");
|
|
var AlertDialog = withStaticProperties(AlertDialogInner, {
|
|
Trigger: AlertDialogTrigger,
|
|
Portal: AlertDialogPortal,
|
|
Overlay: AlertDialogOverlay,
|
|
Content: AlertDialogContent,
|
|
Action: AlertDialogAction,
|
|
Cancel: AlertDialogCancel,
|
|
Title: AlertDialogTitle,
|
|
Description: AlertDialogDescription
|
|
});
|
|
AlertDialog.displayName = ROOT_NAME;
|
|
|
|
// node_modules/@tamagui/avatar/dist/esm/Avatar.mjs
|
|
var import_core19 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/image/dist/esm/Image.mjs
|
|
var import_core18 = require("@tamagui/core");
|
|
var import_react_native_web6 = __toESM(require_cjs20(), 1);
|
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
var StyledImage = (0, import_core18.styled)(import_react_native_web6.Image, {
|
|
name: "Image"
|
|
});
|
|
var hasWarned = false;
|
|
var Image = StyledImage.styleable((inProps, ref) => {
|
|
const [props, style] = (0, import_core18.usePropsAndStyle)(inProps), {
|
|
src,
|
|
source,
|
|
...rest
|
|
} = props;
|
|
process.env.NODE_ENV === "development" && typeof src == "string" && (typeof props.width == "string" && props.width[0] !== "$" || typeof props.height == "string" && props.height[0] !== "$") && (hasWarned || (hasWarned = true, console.warn('React Native expects a numerical width/height. If you want to use a percent you must define the "source" prop with width, height, and uri.')));
|
|
let finalSource = typeof src == "string" ? {
|
|
uri: src,
|
|
...isWeb && {
|
|
width: props.width,
|
|
height: props.height
|
|
}
|
|
} : source ?? src;
|
|
return finalSource && typeof finalSource == "object" && finalSource.default && (finalSource = finalSource.default), /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledImage, {
|
|
ref,
|
|
source: finalSource,
|
|
style,
|
|
...rest
|
|
});
|
|
});
|
|
Image.getSize = import_react_native_web6.Image.getSize;
|
|
Image.getSizeWithHeaders = import_react_native_web6.Image.getSizeWithHeaders;
|
|
Image.prefetch = import_react_native_web6.Image.prefetch;
|
|
Image.prefetchWithMetadata = import_react_native_web6.Image.prefetchWithMetadata;
|
|
Image.abortPrefetch = import_react_native_web6.Image.abortPrefetch;
|
|
Image.queryCache = import_react_native_web6.Image.queryCache;
|
|
|
|
// node_modules/@tamagui/shapes/dist/esm/Square.mjs
|
|
var import_web10 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/shapes/dist/esm/getShapeSize.mjs
|
|
var getShapeSize = /* @__PURE__ */ __name((size6, {
|
|
tokens: tokens2
|
|
}) => {
|
|
const width = tokens2.size[size6] ?? size6, height = tokens2.size[size6] ?? size6;
|
|
return {
|
|
width,
|
|
height,
|
|
minWidth: width,
|
|
maxWidth: width,
|
|
maxHeight: height,
|
|
minHeight: height
|
|
};
|
|
}, "getShapeSize");
|
|
|
|
// node_modules/@tamagui/shapes/dist/esm/Square.mjs
|
|
var Square = (0, import_web10.styled)(ThemeableStack, {
|
|
name: "Square",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
variants: {
|
|
size: {
|
|
"...size": getShapeSize,
|
|
":number": getShapeSize
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/shapes/dist/esm/Circle.mjs
|
|
var import_web11 = require("@tamagui/core");
|
|
var Circle = (0, import_web11.styled)(Square, {
|
|
name: "Circle",
|
|
circular: true
|
|
});
|
|
|
|
// node_modules/@tamagui/avatar/dist/esm/Avatar.mjs
|
|
var React13 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
var AVATAR_NAME = "Avatar";
|
|
var [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
|
|
var [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
|
|
var IMAGE_NAME = "AvatarImage";
|
|
var AvatarImage = React13.forwardRef((props, forwardedRef) => {
|
|
var _a;
|
|
const {
|
|
__scopeAvatar,
|
|
src,
|
|
onLoadingStatusChange = /* @__PURE__ */ __name(() => {
|
|
}, "onLoadingStatusChange"),
|
|
...imageProps
|
|
} = props, context = useAvatarContext(IMAGE_NAME, __scopeAvatar), [status, setStatus] = React13.useState("idle"), shapeSize = (0, import_core19.getVariableValue)((_a = getShapeSize(
|
|
context.size,
|
|
// @ts-expect-error
|
|
{
|
|
tokens: (0, import_core19.getTokens)()
|
|
}
|
|
)) == null ? void 0 : _a.width);
|
|
return React13.useEffect(() => {
|
|
setStatus("idle");
|
|
}, [JSON.stringify(src)]), React13.useEffect(() => {
|
|
onLoadingStatusChange(status), context.onImageLoadingStatusChange(status);
|
|
}, [status]), /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(YStack, {
|
|
fullscreen: true,
|
|
zIndex: 1,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Image, {
|
|
fullscreen: true,
|
|
...typeof shapeSize == "number" && !Number.isNaN(shapeSize) && {
|
|
width: shapeSize,
|
|
height: shapeSize
|
|
},
|
|
...imageProps,
|
|
ref: forwardedRef,
|
|
src,
|
|
onError: () => {
|
|
setStatus("error");
|
|
},
|
|
onLoad: () => {
|
|
setStatus("loaded");
|
|
}
|
|
})
|
|
});
|
|
});
|
|
AvatarImage.displayName = IMAGE_NAME;
|
|
var FALLBACK_NAME = "AvatarFallback";
|
|
var AvatarFallbackFrame = (0, import_core19.styled)(YStack, {
|
|
name: FALLBACK_NAME,
|
|
position: "absolute",
|
|
fullscreen: true,
|
|
zIndex: 0
|
|
});
|
|
var AvatarFallback = AvatarFallbackFrame.extractable(React13.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAvatar,
|
|
delayMs,
|
|
...fallbackProps
|
|
} = props, context = useAvatarContext(FALLBACK_NAME, __scopeAvatar), [canRender, setCanRender] = React13.useState(delayMs === void 0);
|
|
return React13.useEffect(() => {
|
|
if (delayMs !== void 0) {
|
|
const timerId = setTimeout(() => setCanRender(true), delayMs);
|
|
return () => clearTimeout(timerId);
|
|
}
|
|
}, [delayMs]), canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AvatarFallbackFrame, {
|
|
...fallbackProps,
|
|
ref: forwardedRef
|
|
}) : null;
|
|
}));
|
|
AvatarFallback.displayName = FALLBACK_NAME;
|
|
var AvatarFrame = (0, import_core19.styled)(Square, {
|
|
name: AVATAR_NAME,
|
|
position: "relative",
|
|
overflow: "hidden"
|
|
});
|
|
var Avatar = withStaticProperties(React13.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeAvatar,
|
|
size: size6 = "$true",
|
|
...avatarProps
|
|
} = props, [imageLoadingStatus, setImageLoadingStatus] = React13.useState("idle");
|
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AvatarProvider, {
|
|
size: size6,
|
|
scope: __scopeAvatar,
|
|
imageLoadingStatus,
|
|
onImageLoadingStatusChange: setImageLoadingStatus,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AvatarFrame, {
|
|
size: size6,
|
|
...avatarProps,
|
|
ref: forwardedRef
|
|
})
|
|
});
|
|
}), {
|
|
Image: AvatarImage,
|
|
Fallback: AvatarFallback
|
|
});
|
|
Avatar.displayName = AVATAR_NAME;
|
|
|
|
// node_modules/@tamagui/font-size/dist/esm/getFontSize.mjs
|
|
var import_core20 = require("@tamagui/core");
|
|
var getFontSize = /* @__PURE__ */ __name((inSize, opts) => {
|
|
const res = getFontSizeVariable(inSize, opts);
|
|
return (0, import_core20.isVariable)(res) ? +res.val : res ? +res : 16;
|
|
}, "getFontSize");
|
|
var getFontSizeVariable = /* @__PURE__ */ __name((inSize, opts) => {
|
|
const token = getFontSizeToken(inSize, opts);
|
|
return token ? (0, import_core20.getConfig)().fontsParsed[(opts == null ? void 0 : opts.font) || "$body"].size[token] : inSize;
|
|
}, "getFontSizeVariable");
|
|
var getFontSizeToken = /* @__PURE__ */ __name((inSize, opts) => {
|
|
if (typeof inSize == "number")
|
|
return null;
|
|
const relativeSize = (opts == null ? void 0 : opts.relativeSize) || 0, fontSize = (0, import_core20.getConfig)().fontsParsed[(opts == null ? void 0 : opts.font) || "$body"].size, size6 = (inSize === "$true" && !("$true" in fontSize) ? "$4" : inSize) ?? ("$true" in fontSize ? "$true" : "$4"), sizeTokens = Object.keys(fontSize);
|
|
let foundIndex = sizeTokens.indexOf(size6);
|
|
foundIndex === -1 && size6.endsWith(".5") && (foundIndex = sizeTokens.indexOf(size6.replace(".5", ""))), process.env.NODE_ENV === "development" && foundIndex === -1 && console.warn("No font size found", size6, opts, "in size tokens", sizeTokens);
|
|
const tokenIndex = Math.min(Math.max(0, foundIndex + relativeSize), sizeTokens.length - 1);
|
|
return sizeTokens[tokenIndex] ?? size6;
|
|
}, "getFontSizeToken");
|
|
|
|
// node_modules/@tamagui/helpers-tamagui/dist/esm/prevent.mjs
|
|
var prevent = /* @__PURE__ */ __name((e) => [e.preventDefault(), e.stopPropagation()], "prevent");
|
|
|
|
// node_modules/@tamagui/helpers-tamagui/dist/esm/useCurrentColor.mjs
|
|
var import_web12 = require("@tamagui/core");
|
|
var useCurrentColor = /* @__PURE__ */ __name((colorProp) => {
|
|
var _a, _b;
|
|
const theme = (0, import_web12.useTheme)();
|
|
return (0, import_web12.getVariable)(colorProp || ((_a = theme[colorProp]) == null ? void 0 : _a.get("web")) || ((_b = theme.color) == null ? void 0 : _b.get("web")));
|
|
}, "useCurrentColor");
|
|
|
|
// node_modules/@tamagui/helpers-tamagui/dist/esm/useGetThemedIcon.mjs
|
|
var import_react29 = require("react");
|
|
var useGetThemedIcon = /* @__PURE__ */ __name((props) => {
|
|
const color2 = useCurrentColor(props.color);
|
|
return (el) => el && ((0, import_react29.isValidElement)(el) ? (0, import_react29.cloneElement)(el, {
|
|
...props,
|
|
color: color2,
|
|
// @ts-expect-error
|
|
...el.props
|
|
}) : (0, import_react29.createElement)(el, props));
|
|
}, "useGetThemedIcon");
|
|
|
|
// node_modules/@tamagui/button/dist/esm/Button.mjs
|
|
var import_web13 = require("@tamagui/core");
|
|
var import_react30 = require("react");
|
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
var ButtonContext = (0, import_web13.createStyledContext)({
|
|
// keeping these here means they work with styled() passing down color to text
|
|
color: void 0,
|
|
ellipse: void 0,
|
|
fontFamily: void 0,
|
|
fontSize: void 0,
|
|
fontStyle: void 0,
|
|
fontWeight: void 0,
|
|
letterSpacing: void 0,
|
|
maxFontSizeMultiplier: void 0,
|
|
size: void 0,
|
|
textAlign: void 0,
|
|
variant: void 0
|
|
});
|
|
var BUTTON_NAME = "Button";
|
|
var ButtonFrame = (0, import_web13.styled)(ThemeableStack, {
|
|
name: BUTTON_NAME,
|
|
tag: "button",
|
|
context: ButtonContext,
|
|
role: "button",
|
|
focusable: true,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
flexWrap: "nowrap",
|
|
flexDirection: "row",
|
|
cursor: "pointer",
|
|
hoverTheme: true,
|
|
pressTheme: true,
|
|
backgrounded: true,
|
|
borderWidth: 1,
|
|
borderColor: "transparent",
|
|
focusVisibleStyle: {
|
|
outlineColor: "$outlineColor",
|
|
outlineStyle: "solid",
|
|
outlineWidth: 2
|
|
}
|
|
}
|
|
},
|
|
variant: {
|
|
outlined: {
|
|
backgroundColor: "transparent",
|
|
borderWidth: 2,
|
|
borderColor: "$borderColor",
|
|
hoverStyle: {
|
|
backgroundColor: "transparent",
|
|
borderColor: "$borderColorHover"
|
|
},
|
|
pressStyle: {
|
|
backgroundColor: "transparent",
|
|
borderColor: "$borderColorPress"
|
|
},
|
|
focusVisibleStyle: {
|
|
backgroundColor: "transparent",
|
|
borderColor: "$borderColorFocus"
|
|
}
|
|
}
|
|
},
|
|
size: {
|
|
"...size": getButtonSized,
|
|
":number": getButtonSized
|
|
},
|
|
disabled: {
|
|
true: {
|
|
pointerEvents: "none"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ButtonText = (0, import_web13.styled)(SizableText, {
|
|
name: "Button",
|
|
context: ButtonContext,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
userSelect: "none",
|
|
cursor: "pointer",
|
|
// flexGrow 1 leads to inconsistent native style where text pushes to start of view
|
|
flexGrow: 0,
|
|
flexShrink: 1,
|
|
ellipse: true,
|
|
color: "$color"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ButtonIcon = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
children,
|
|
scaleIcon = 1
|
|
} = props, {
|
|
size: size6,
|
|
color: color2
|
|
} = (0, import_react30.useContext)(ButtonContext), iconSize = (typeof size6 == "number" ? size6 * 0.5 : getFontSize(size6)) * scaleIcon;
|
|
return useGetThemedIcon({
|
|
size: iconSize,
|
|
color: color2
|
|
})(children);
|
|
}, "ButtonIcon");
|
|
var ButtonComponent = ButtonFrame.styleable(function(props, ref) {
|
|
const {
|
|
props: buttonProps
|
|
} = useButton(props);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ButtonFrame, {
|
|
...buttonProps,
|
|
ref
|
|
});
|
|
});
|
|
var buttonStaticConfig = {
|
|
inlineProps: /* @__PURE__ */ new Set([
|
|
// text props go here (can't really optimize them, but we never fully extract button anyway)
|
|
// may be able to remove this entirely, as the compiler / runtime have gotten better
|
|
"color",
|
|
"fontWeight",
|
|
"fontSize",
|
|
"fontFamily",
|
|
"fontStyle",
|
|
"letterSpacing",
|
|
"textAlign",
|
|
"unstyled"
|
|
])
|
|
};
|
|
var Button2 = withStaticProperties(ButtonComponent, {
|
|
Text: ButtonText,
|
|
Icon: ButtonIcon
|
|
});
|
|
function useButton({
|
|
textProps,
|
|
...propsIn
|
|
}, {
|
|
Text: Text4 = Button2.Text
|
|
} = {
|
|
Text: Button2.Text
|
|
}) {
|
|
const isNested = (0, import_react30.useContext)(ButtonNestingContext), propsActive = (0, import_web13.useProps)(propsIn, {
|
|
noNormalize: true,
|
|
noExpand: true
|
|
}), {
|
|
icon,
|
|
iconAfter,
|
|
space: space2,
|
|
spaceFlex,
|
|
scaleIcon = 1,
|
|
scaleSpace = 0.66,
|
|
separator,
|
|
noTextWrap,
|
|
fontFamily,
|
|
fontSize,
|
|
fontWeight,
|
|
fontStyle,
|
|
letterSpacing,
|
|
tag,
|
|
ellipse,
|
|
maxFontSizeMultiplier,
|
|
...restProps
|
|
} = propsActive, size6 = propsActive.size || (propsActive.unstyled ? void 0 : "$true"), color2 = propsActive.color, iconSize = (typeof size6 == "number" ? size6 * 0.5 : getFontSize(size6, {
|
|
font: (fontFamily == null ? void 0 : fontFamily[0]) === "$" ? fontFamily : void 0
|
|
})) * scaleIcon, getThemedIcon = useGetThemedIcon({
|
|
size: iconSize,
|
|
color: color2
|
|
}), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), spaceSize = space2 ?? (0, import_web13.getVariableValue)(iconSize) * scaleSpace, contents = noTextWrap ? [propsIn.children] : wrapChildrenInText(Text4, {
|
|
children: propsIn.children,
|
|
fontFamily,
|
|
fontSize,
|
|
textProps,
|
|
fontWeight,
|
|
fontStyle,
|
|
letterSpacing,
|
|
ellipse,
|
|
maxFontSizeMultiplier
|
|
}, Text4 === ButtonText && propsActive.unstyled !== true ? {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1",
|
|
size: size6
|
|
} : void 0), inner2 = (0, import_web13.spacedChildren)({
|
|
// a bit arbitrary but scaling to font size is necessary so long as button does
|
|
space: spaceSize,
|
|
spaceFlex,
|
|
separator,
|
|
direction: propsActive.flexDirection === "column" || propsActive.flexDirection === "column-reverse" ? "vertical" : "horizontal",
|
|
children: [themedIcon, ...contents, themedIconAfter]
|
|
}), props = {
|
|
size: size6,
|
|
...propsIn.disabled && {
|
|
// in rnw - false still has keyboard tabIndex, undefined = not actually focusable
|
|
focusable: void 0,
|
|
// even with tabIndex unset, it will keep focusVisibleStyle on web so disable it here
|
|
focusVisibleStyle: {
|
|
borderColor: "$background"
|
|
}
|
|
},
|
|
// fixes SSR issue + DOM nesting issue of not allowing button in button
|
|
tag: tag ?? (isNested ? "span" : (
|
|
// defaults to <a /> when accessibilityRole = link
|
|
// see https://github.com/tamagui/tamagui/issues/505
|
|
propsActive.accessibilityRole === "link" || propsActive.role === "link" ? "a" : "button"
|
|
)),
|
|
...restProps,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ButtonNestingContext.Provider, {
|
|
value: true,
|
|
children: inner2
|
|
}),
|
|
// forces it to be a runtime pressStyle so it passes through context text colors
|
|
disableClassName: true
|
|
};
|
|
return {
|
|
spaceSize,
|
|
isNested,
|
|
props
|
|
};
|
|
}
|
|
__name(useButton, "useButton");
|
|
|
|
// node_modules/@tamagui/card/dist/esm/Card.mjs
|
|
var import_web14 = require("@tamagui/core");
|
|
var CardContext = (0, import_web14.createStyledContext)({
|
|
size: "$true"
|
|
});
|
|
var CardFrame = (0, import_web14.styled)(ThemeableStack, {
|
|
name: "Card",
|
|
context: CardContext,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
backgroundColor: "$background",
|
|
position: "relative"
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
borderRadius: tokens2.radius[val] ?? val
|
|
})
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var CardHeader = (0, import_web14.styled)(ThemeableStack, {
|
|
name: "CardHeader",
|
|
context: CardContext,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
zIndex: 10,
|
|
backgroundColor: "transparent",
|
|
marginBottom: "auto"
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
padding: tokens2.space[val] ?? val
|
|
})
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var CardFooter = (0, import_web14.styled)(CardHeader, {
|
|
name: "CardFooter",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
zIndex: 5,
|
|
flexDirection: "row",
|
|
marginTop: "auto",
|
|
marginBottom: 0
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var CardBackground = (0, import_web14.styled)(ThemeableStack, {
|
|
name: "CardBackground",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
zIndex: 0,
|
|
fullscreen: true,
|
|
overflow: "hidden",
|
|
pointerEvents: "none",
|
|
padding: 0
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Card = (0, import_web14.withStaticProperties)(CardFrame, {
|
|
Header: CardHeader,
|
|
Footer: CardFooter,
|
|
Background: CardBackground
|
|
});
|
|
|
|
// node_modules/@tamagui/checkbox/dist/esm/Checkbox.mjs
|
|
var import_core22 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/checkbox/dist/esm/CheckboxStyledContext.mjs
|
|
var import_core21 = require("@tamagui/core");
|
|
var CheckboxStyledContext = (0, import_core21.createStyledContext)({
|
|
size: "$true",
|
|
scaleIcon: 1
|
|
});
|
|
|
|
// node_modules/@tamagui/checkbox/dist/esm/Checkbox.mjs
|
|
var INDICATOR_NAME = "CheckboxIndicator";
|
|
var CheckboxIndicatorFrame = (0, import_core22.styled)(ThemeableStack, {
|
|
// use Checkbox for easier themes
|
|
name: INDICATOR_NAME,
|
|
context: CheckboxStyledContext,
|
|
variants: {
|
|
unstyled: {
|
|
false: {}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var CHECKBOX_NAME = "Checkbox";
|
|
var CheckboxFrame = (0, import_core22.styled)(ThemeableStack, {
|
|
name: CHECKBOX_NAME,
|
|
tag: "button",
|
|
context: CheckboxStyledContext,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
backgroundColor: "$background",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
pressTheme: true,
|
|
focusable: true,
|
|
borderWidth: 1,
|
|
borderColor: "$borderColor",
|
|
hoverStyle: {
|
|
borderColor: "$borderColorHover"
|
|
},
|
|
focusStyle: {
|
|
borderColor: "$borderColorFocus"
|
|
},
|
|
focusVisibleStyle: {
|
|
outlineStyle: "solid",
|
|
outlineWidth: 2,
|
|
outlineColor: "$outlineColor"
|
|
}
|
|
}
|
|
},
|
|
disabled: {
|
|
true: {
|
|
pointerEvents: "none",
|
|
userSelect: "none",
|
|
cursor: "not-allowed",
|
|
hoverStyle: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$background"
|
|
},
|
|
pressStyle: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$backgroundColor"
|
|
},
|
|
focusStyle: {
|
|
outlineWidth: 0
|
|
}
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val) => ({
|
|
borderRadius: (0, import_core22.getVariableValue)(getSize(val)) / 8
|
|
})
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/focusable/dist/esm/registerFocusable.mjs
|
|
var registerFocusable = /* @__PURE__ */ __name((id, input) => () => {
|
|
}, "registerFocusable");
|
|
var focusFocusable = /* @__PURE__ */ __name((id) => {
|
|
}, "focusFocusable");
|
|
|
|
// node_modules/@tamagui/focusable/dist/esm/focusableInputHOC.mjs
|
|
var import_web15 = require("@tamagui/core");
|
|
var import_react31 = require("react");
|
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
function useFocusable({
|
|
isInput,
|
|
props,
|
|
ref
|
|
}) {
|
|
const {
|
|
id,
|
|
onChangeText,
|
|
value,
|
|
defaultValue: defaultValue2
|
|
} = props, inputValue = (0, import_react31.useRef)(value || defaultValue2 || ""), unregisterFocusable = (0, import_react31.useRef)(), inputRef = (0, import_react31.useCallback)((input) => {
|
|
var _a;
|
|
id && input && ((_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable), unregisterFocusable.current = registerFocusable(id, {
|
|
focus: input.focus,
|
|
...isInput && {
|
|
// react-native doesn't support programmatic .select()
|
|
focusAndSelect() {
|
|
input.focus(), input.setSelection && typeof inputValue.current == "string" && input.setSelection(0, inputValue.current.length);
|
|
}
|
|
}
|
|
}));
|
|
}, [isInput, id]), combinedRefs = composeRefs(ref, inputRef);
|
|
return (0, import_react31.useEffect)(() => () => {
|
|
var _a;
|
|
(_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
|
|
}, []), {
|
|
ref: combinedRefs,
|
|
onChangeText: (0, import_web15.useEvent)((value2) => {
|
|
inputValue.current = value2, onChangeText == null ? void 0 : onChangeText(value2);
|
|
})
|
|
};
|
|
}
|
|
__name(useFocusable, "useFocusable");
|
|
|
|
// node_modules/@tamagui/label/dist/esm/Label.mjs
|
|
var import_web16 = require("@tamagui/core");
|
|
var React14 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
var NAME = "Label";
|
|
var [LabelProvider, useLabelContextImpl] = createContext4(NAME, {
|
|
id: void 0,
|
|
controlRef: {
|
|
current: null
|
|
}
|
|
});
|
|
var LabelFrame = (0, import_web16.styled)(SizableText, {
|
|
name: "Label",
|
|
tag: "label",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
color: "$color",
|
|
backgroundColor: "transparent",
|
|
display: "flex",
|
|
alignItems: "center",
|
|
userSelect: "none",
|
|
cursor: "default",
|
|
pressStyle: {
|
|
color: "$colorPress"
|
|
}
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, extras) => {
|
|
var _a;
|
|
const buttonHeight = (_a = getButtonSized(val, extras)) == null ? void 0 : _a.height;
|
|
return {
|
|
...getFontSized(val, extras),
|
|
lineHeight: buttonHeight ? extras.tokens.size[buttonHeight] : void 0
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var LabelComponent = React14.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
htmlFor,
|
|
id: idProp,
|
|
...labelProps
|
|
} = props, controlRef = React14.useRef(null), ref = React14.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), backupId = React14.useId(), id = idProp ?? backupId;
|
|
return isWeb && React14.useEffect(() => {
|
|
if (htmlFor) {
|
|
const element = document.getElementById(htmlFor);
|
|
if (ref.current && element) {
|
|
const getAriaLabel = /* @__PURE__ */ __name(() => element.getAttribute("aria-labelledby"), "getAriaLabel"), ariaLabelledBy = [id, getAriaLabel()].filter(Boolean).join(" ");
|
|
return element.setAttribute("aria-labelledby", ariaLabelledBy), controlRef.current = element, () => {
|
|
var _a;
|
|
if (!id)
|
|
return;
|
|
const ariaLabelledBy2 = (_a = getAriaLabel()) == null ? void 0 : _a.replace(id, "");
|
|
ariaLabelledBy2 === "" ? element.removeAttribute("aria-labelledby") : ariaLabelledBy2 && element.setAttribute("aria-labelledby", ariaLabelledBy2);
|
|
};
|
|
}
|
|
}
|
|
}, [id, htmlFor]), /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(LabelProvider, {
|
|
id,
|
|
controlRef,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(LabelFrame, {
|
|
id,
|
|
htmlFor,
|
|
...labelProps,
|
|
ref: composedRefs,
|
|
onMouseDown: (event) => {
|
|
var _a;
|
|
(_a = props.onMouseDown) == null ? void 0 : _a.call(props, event), !event.defaultPrevented && event.detail > 1 && event.preventDefault();
|
|
},
|
|
onPress: (event) => {
|
|
var _a;
|
|
if ((_a = props.onPress) == null ? void 0 : _a.call(props, event), isWeb) {
|
|
if (htmlFor || !controlRef.current || event.defaultPrevented)
|
|
return;
|
|
const isClickingControl = controlRef.current.contains(event.target), isUserClick = event.isTrusted === true;
|
|
!isClickingControl && isUserClick && (controlRef.current.click(), controlRef.current.focus());
|
|
} else
|
|
props.htmlFor && focusFocusable(props.htmlFor);
|
|
}
|
|
})
|
|
});
|
|
});
|
|
LabelComponent.displayName = NAME;
|
|
var Label = LabelFrame.extractable((0, import_web16.themeable)(LabelComponent), {
|
|
neverFlatten: true
|
|
});
|
|
var useLabelContext = /* @__PURE__ */ __name((element) => {
|
|
const context = useLabelContextImpl("LabelConsumer"), {
|
|
controlRef
|
|
} = context;
|
|
return React14.useEffect(() => {
|
|
element && (controlRef.current = element);
|
|
}, [element, controlRef]), context.id;
|
|
}, "useLabelContext");
|
|
|
|
// node_modules/@tamagui/checkbox-headless/dist/esm/useCheckbox.mjs
|
|
var import_react33 = __toESM(require("react"), 1);
|
|
|
|
// node_modules/@tamagui/use-previous/dist/esm/index.mjs
|
|
var import_react32 = require("react");
|
|
function usePrevious(value) {
|
|
const ref = (0, import_react32.useRef)({
|
|
value,
|
|
previous: value
|
|
});
|
|
return (0, import_react32.useMemo)(() => (ref.current.value !== value && (ref.current.previous = ref.current.value, ref.current.value = value), ref.current.previous), [value]);
|
|
}
|
|
__name(usePrevious, "usePrevious");
|
|
|
|
// node_modules/@tamagui/checkbox-headless/dist/esm/BubbleInput.mjs
|
|
var React15 = __toESM(require("react"), 1);
|
|
|
|
// node_modules/@tamagui/checkbox-headless/dist/esm/utils.mjs
|
|
function isIndeterminate(checked) {
|
|
return checked === "indeterminate";
|
|
}
|
|
__name(isIndeterminate, "isIndeterminate");
|
|
function getState2(checked) {
|
|
return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
|
|
}
|
|
__name(getState2, "getState");
|
|
|
|
// node_modules/@tamagui/checkbox-headless/dist/esm/BubbleInput.mjs
|
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
var BubbleInput = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
checked,
|
|
bubbles = true,
|
|
control,
|
|
isHidden: isHidden2,
|
|
...inputProps
|
|
} = props, ref = React15.useRef(null), prevChecked = usePrevious(checked);
|
|
return React15.useEffect(() => {
|
|
const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, "checked").set;
|
|
if (prevChecked !== checked && setChecked) {
|
|
const event = new Event("click", {
|
|
bubbles
|
|
});
|
|
input.indeterminate = isIndeterminate(checked), setChecked.call(input, isIndeterminate(checked) ? false : checked), input.dispatchEvent(event);
|
|
}
|
|
}, [prevChecked, checked, bubbles]), /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", {
|
|
type: "checkbox",
|
|
defaultChecked: isIndeterminate(checked) ? false : checked,
|
|
...inputProps,
|
|
tabIndex: -1,
|
|
ref,
|
|
"aria-hidden": isHidden2,
|
|
style: {
|
|
...isHidden2 ? {
|
|
// ...controlSize,
|
|
position: "absolute",
|
|
pointerEvents: "none",
|
|
opacity: 0,
|
|
margin: 0
|
|
} : {
|
|
appearance: "auto",
|
|
accentColor: "var(--color6)"
|
|
},
|
|
...props.style
|
|
}
|
|
});
|
|
}, "BubbleInput");
|
|
|
|
// node_modules/@tamagui/checkbox-headless/dist/esm/useCheckbox.mjs
|
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
function useCheckbox(props, [checked, setChecked], ref) {
|
|
const {
|
|
labelledBy: ariaLabelledby,
|
|
name,
|
|
required,
|
|
disabled,
|
|
value = "on",
|
|
onCheckedChange,
|
|
...checkboxProps
|
|
} = props, [button, setButton] = import_react33.default.useState(null), composedRefs = useComposedRefs(ref, (node) => setButton(node)), hasConsumerStoppedPropagationRef = import_react33.default.useRef(false), isFormControl = isWeb ? button ? !!button.closest("form") : true : false, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
|
|
return {
|
|
bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(BubbleInput, {
|
|
isHidden: true,
|
|
control: button,
|
|
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
name,
|
|
value,
|
|
checked,
|
|
required,
|
|
disabled
|
|
}) : null,
|
|
checkboxRef: composedRefs,
|
|
checkboxProps: {
|
|
role: "checkbox",
|
|
"aria-labelledby": labelledBy,
|
|
"aria-checked": isIndeterminate(checked) ? "mixed" : checked,
|
|
...checkboxProps,
|
|
...isWeb && {
|
|
type: "button",
|
|
value,
|
|
"data-state": getState2(checked),
|
|
"data-disabled": disabled ? "" : void 0,
|
|
disabled,
|
|
onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
|
|
event.key === "Enter" && event.preventDefault();
|
|
})
|
|
},
|
|
onPress: composeEventHandlers(props.onPress, (event) => {
|
|
setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked), isFormControl && "isPropagationStopped" in event && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
|
|
})
|
|
}
|
|
};
|
|
}
|
|
__name(useCheckbox, "useCheckbox");
|
|
|
|
// node_modules/@tamagui/checkbox/dist/esm/createCheckbox.mjs
|
|
var import_core23 = require("@tamagui/core");
|
|
var import_react34 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
var CheckboxContext = import_react34.default.createContext({
|
|
checked: false,
|
|
disabled: false
|
|
});
|
|
var ensureContext = /* @__PURE__ */ __name((x) => {
|
|
x.context || (x.context = CheckboxContext);
|
|
}, "ensureContext");
|
|
function createCheckbox(createProps) {
|
|
const {
|
|
disableActiveTheme,
|
|
Frame: Frame2 = CheckboxFrame,
|
|
Indicator = CheckboxIndicatorFrame
|
|
} = createProps;
|
|
ensureContext(Frame2), ensureContext(Indicator);
|
|
const FrameComponent = Frame2.styleable(function(_props, forwardedRef) {
|
|
const {
|
|
scaleSize = 0.45,
|
|
sizeAdjust = 0,
|
|
scaleIcon,
|
|
checked: checkedProp,
|
|
defaultChecked,
|
|
onCheckedChange,
|
|
native,
|
|
unstyled = false,
|
|
...props
|
|
} = _props, propsActive = (0, import_core23.useProps)(props), styledContext = import_react34.default.useContext(CheckboxStyledContext);
|
|
let adjustedSize = 0, size6 = 0;
|
|
unstyled || (adjustedSize = (0, import_core23.getVariableValue)(getSize(propsActive.size ?? (styledContext == null ? void 0 : styledContext.size) ?? "$true", {
|
|
shift: sizeAdjust
|
|
})), size6 = scaleSize ? Math.round(adjustedSize * scaleSize) : adjustedSize);
|
|
const [checked = false, setChecked] = useControllableState({
|
|
prop: checkedProp,
|
|
defaultProp: defaultChecked,
|
|
onChange: onCheckedChange
|
|
}), {
|
|
checkboxProps,
|
|
checkboxRef,
|
|
bubbleInput
|
|
} = useCheckbox(
|
|
// @ts-ignore
|
|
propsActive,
|
|
[checked, setChecked],
|
|
forwardedRef
|
|
);
|
|
return (0, import_core23.shouldRenderNativePlatform)(native) === "web" ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("input", {
|
|
type: "checkbox",
|
|
defaultChecked: isIndeterminate(checked) ? false : checked,
|
|
tabIndex: -1,
|
|
ref: checkboxRef,
|
|
disabled: checkboxProps.disabled,
|
|
style: {
|
|
appearance: "auto",
|
|
accentColor: "var(--color6)",
|
|
...checkboxProps.style
|
|
// TODO: any
|
|
}
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(CheckboxContext.Provider, {
|
|
value: {
|
|
checked,
|
|
disabled: checkboxProps.disabled
|
|
},
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(CheckboxStyledContext.Provider, {
|
|
size: propsActive.size ?? (styledContext == null ? void 0 : styledContext.size) ?? "$true",
|
|
scaleIcon: scaleIcon ?? (styledContext == null ? void 0 : styledContext.scaleIcon) ?? 1,
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Frame2, {
|
|
...!unstyled && {
|
|
width: size6,
|
|
height: size6
|
|
},
|
|
tag: "button",
|
|
ref: checkboxRef,
|
|
unstyled,
|
|
...unstyled === false && {
|
|
size: size6,
|
|
theme: checked ? "active" : null
|
|
},
|
|
checked,
|
|
disabled: checkboxProps.disabled,
|
|
...checkboxProps,
|
|
children: propsActive.children
|
|
}), bubbleInput]
|
|
})
|
|
});
|
|
}), IndicatorComponent = Indicator.styleable((props, forwardedRef) => {
|
|
const {
|
|
// __scopeCheckbox,
|
|
children: childrenProp,
|
|
forceMount,
|
|
disablePassStyles,
|
|
unstyled = false,
|
|
...indicatorProps
|
|
} = props, styledContext = import_react34.default.useContext(CheckboxStyledContext);
|
|
let children = childrenProp;
|
|
if (!unstyled) {
|
|
const iconSize = (typeof styledContext.size == "number" ? styledContext.size * 0.65 : getFontSize(styledContext.size)) * styledContext.scaleIcon, theme = (0, import_core23.useTheme)(), getThemedIcon = useGetThemedIcon({
|
|
size: iconSize,
|
|
color: theme.color
|
|
});
|
|
children = import_react34.default.Children.toArray(childrenProp).map((child) => disablePassStyles || !import_react34.default.isValidElement(child) ? child : getThemedIcon(child));
|
|
}
|
|
const context = (0, import_react34.useContext)(CheckboxContext);
|
|
return forceMount || isIndeterminate(context.checked) || context.checked === true ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Indicator, {
|
|
pointerEvents: "none",
|
|
...indicatorProps,
|
|
ref: forwardedRef,
|
|
children
|
|
}) : null;
|
|
});
|
|
return (0, import_core23.withStaticProperties)(FrameComponent, {
|
|
Indicator: IndicatorComponent
|
|
});
|
|
}
|
|
__name(createCheckbox, "createCheckbox");
|
|
|
|
// node_modules/@tamagui/checkbox/dist/esm/index.mjs
|
|
var Checkbox = createCheckbox({
|
|
Frame: CheckboxFrame,
|
|
Indicator: CheckboxIndicatorFrame
|
|
});
|
|
|
|
// node_modules/@tamagui/form/dist/esm/Form.mjs
|
|
var import_core24 = require("@tamagui/core");
|
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
var FORM_NAME = "Form";
|
|
var FormFrame = (0, import_core24.styled)(import_core24.Stack, {
|
|
name: FORM_NAME,
|
|
tag: "form"
|
|
});
|
|
var [createFormContext] = createContextScope(FORM_NAME);
|
|
var [FormProvider, useFormContext] = createFormContext(FORM_NAME);
|
|
var TRIGGER_NAME3 = "FormTrigger";
|
|
var FormTriggerFrame = (0, import_core24.styled)(import_core24.View, {
|
|
name: TRIGGER_NAME3
|
|
});
|
|
var FormTrigger = FormTriggerFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeForm,
|
|
children,
|
|
onPress,
|
|
...triggerProps
|
|
} = props, context = useFormContext(TRIGGER_NAME3, __scopeForm);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormTriggerFrame, {
|
|
tag: "button",
|
|
...triggerProps,
|
|
ref: forwardedRef,
|
|
onPress: composeEventHandlers(onPress, context.onSubmit),
|
|
children
|
|
});
|
|
});
|
|
var FormComponent = FormFrame.extractable(function({
|
|
onSubmit,
|
|
...props
|
|
}) {
|
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormProvider, {
|
|
scope: props.__scopeForm,
|
|
onSubmit,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(FormFrame, {
|
|
...props,
|
|
onSubmit: (e) => e.preventDefault()
|
|
})
|
|
});
|
|
});
|
|
var Form2 = withStaticProperties(FormComponent, {
|
|
Trigger: FormTrigger
|
|
});
|
|
|
|
// node_modules/@tamagui/group/dist/esm/Group.mjs
|
|
var import_core25 = require("@tamagui/core");
|
|
var import_react36 = __toESM(require("react"), 1);
|
|
var import_react_native_web7 = __toESM(require_cjs20(), 1);
|
|
var import_reforest = __toESM(require_dist(), 1);
|
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
var GROUP_NAME = "Group";
|
|
var [createGroupContext, createGroupScope] = createContextScope(GROUP_NAME);
|
|
var [GroupProvider, useGroupContext] = createGroupContext(GROUP_NAME);
|
|
var GroupFrame = (0, import_core25.styled)(ThemeableStack, {
|
|
name: "GroupFrame",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true"
|
|
}
|
|
},
|
|
size: (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
borderRadius: tokens2.radius[val] ?? val ?? tokens2.radius.$true
|
|
})
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
function createGroup(verticalDefault) {
|
|
return withStaticProperties(GroupFrame.styleable((props, ref) => {
|
|
const activeProps = (0, import_core25.useProps)(props), {
|
|
__scopeGroup,
|
|
children: childrenProp,
|
|
space: space2,
|
|
size: size6 = "$true",
|
|
spaceDirection,
|
|
separator,
|
|
scrollable,
|
|
axis = verticalDefault ? "vertical" : "horizontal",
|
|
orientation = axis,
|
|
disabled: disabledProp,
|
|
disablePassBorderRadius: disablePassBorderRadiusProp,
|
|
borderRadius,
|
|
forceUseItem,
|
|
...restProps
|
|
} = activeProps, vertical = orientation === "vertical", [itemChildrenCount, setItemChildrenCount] = useControllableState({
|
|
defaultProp: forceUseItem ? 1 : 0
|
|
}), isUsingItems = itemChildrenCount > 0, radius2 = borderRadius ?? (size6 ? (0, import_core25.getVariableValue)((0, import_core25.getTokens)().radius[size6]) - 1 : void 0), disablePassBorderRadius = disablePassBorderRadiusProp ?? !(radius2 !== void 0), childrenArray = import_react36.Children.toArray(childrenProp), children = isUsingItems ? import_react36.Children.toArray(childrenProp).filter(import_react36.isValidElement) : childrenArray.map((child, i) => {
|
|
if (!(0, import_react36.isValidElement)(child))
|
|
return child;
|
|
const disabled = child.props.disabled ?? disabledProp, isFirst = i === 0, isLast = i === childrenArray.length - 1, radiusStyles = disablePassBorderRadius === true ? null : getBorderRadius({
|
|
isFirst,
|
|
isLast,
|
|
radius: radius2,
|
|
vertical,
|
|
disable: disablePassBorderRadius
|
|
}), props2 = {
|
|
disabled,
|
|
...(0, import_core25.isTamaguiElement)(child) ? radiusStyles : {
|
|
style: radiusStyles
|
|
}
|
|
};
|
|
return cloneElementWithPropOrder(child, props2);
|
|
}), indexedChildren = (0, import_reforest.useIndexedChildren)((0, import_core25.spacedChildren)({
|
|
direction: spaceDirection,
|
|
separator,
|
|
// @ts-ignore
|
|
space: space2,
|
|
children
|
|
})), onItemMount = import_react36.default.useCallback(() => setItemChildrenCount((prev) => prev + 1), []), onItemUnmount = import_react36.default.useCallback(() => setItemChildrenCount((prev) => prev - 1), []);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GroupProvider, {
|
|
disablePassBorderRadius,
|
|
vertical: orientation === "vertical",
|
|
radius: radius2,
|
|
disabled: disabledProp,
|
|
onItemMount,
|
|
onItemUnmount,
|
|
scope: __scopeGroup,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(GroupFrame, {
|
|
ref,
|
|
size: size6,
|
|
flexDirection: orientation === "horizontal" ? "row" : "column",
|
|
borderRadius,
|
|
...restProps,
|
|
children: wrapScroll({
|
|
...activeProps,
|
|
orientation
|
|
}, indexedChildren)
|
|
})
|
|
});
|
|
}), {
|
|
Item: GroupItem
|
|
});
|
|
}
|
|
__name(createGroup, "createGroup");
|
|
var GroupItem = /* @__PURE__ */ __name((props) => {
|
|
var _a;
|
|
const {
|
|
__scopeGroup,
|
|
children,
|
|
forcePlacement
|
|
} = props, groupItemProps = useGroupItem({
|
|
disabled: (0, import_react36.isValidElement)(children) ? children.props.disabled : void 0
|
|
}, forcePlacement, __scopeGroup);
|
|
return (0, import_react36.isValidElement)(children) ? (0, import_core25.isTamaguiElement)(children) ? import_react36.default.cloneElement(children, groupItemProps) : import_react36.default.cloneElement(children, {
|
|
style: {
|
|
// @ts-ignore
|
|
...(_a = children.props) == null ? void 0 : _a.style,
|
|
...groupItemProps
|
|
}
|
|
}) : children;
|
|
}, "GroupItem");
|
|
var useGroupItem = /* @__PURE__ */ __name((childrenProps, forcePlacement, __scopeGroup) => {
|
|
const treeIndex = (0, import_reforest.useIndex)(), context = useGroupContext("GroupItem", __scopeGroup);
|
|
if (import_react36.default.useEffect(() => (context.onItemMount(), () => {
|
|
context.onItemUnmount();
|
|
}), []), !treeIndex)
|
|
throw Error("<Group.Item/> should only be used within a <Group/>");
|
|
const isFirst = forcePlacement === "first" || forcePlacement !== "last" && treeIndex.index === 0, isLast = forcePlacement === "last" || forcePlacement !== "first" && treeIndex.index === treeIndex.maxIndex;
|
|
let propsToPass = {
|
|
disabled: childrenProps.disabled ?? context.disabled
|
|
};
|
|
if (context.disablePassBorderRadius !== true) {
|
|
const borderRadius = getBorderRadius({
|
|
radius: context.radius,
|
|
isFirst,
|
|
isLast,
|
|
vertical: context.vertical,
|
|
disable: context.disablePassBorderRadius
|
|
});
|
|
return {
|
|
...propsToPass,
|
|
...borderRadius
|
|
};
|
|
}
|
|
return propsToPass;
|
|
}, "useGroupItem");
|
|
var Group = createGroup(true);
|
|
var YGroup = Group;
|
|
var XGroup = createGroup(false);
|
|
var wrapScroll = /* @__PURE__ */ __name(({
|
|
scrollable,
|
|
orientation,
|
|
showScrollIndicator = false
|
|
}, children) => scrollable ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native_web7.ScrollView, {
|
|
...orientation === "vertical" && {
|
|
showsVerticalScrollIndicator: showScrollIndicator
|
|
},
|
|
...orientation === "horizontal" && {
|
|
horizontal: true,
|
|
showsHorizontalScrollIndicator: showScrollIndicator
|
|
},
|
|
children
|
|
}) : children, "wrapScroll");
|
|
var getBorderRadius = /* @__PURE__ */ __name(({
|
|
isFirst,
|
|
isLast,
|
|
radius: radius2,
|
|
vertical,
|
|
disable
|
|
}) => ({
|
|
borderTopLeftRadius: isFirst && disable !== "top" && disable !== "start" ? radius2 : 0,
|
|
borderTopRightRadius: disable !== "top" && disable !== "end" && (vertical && isFirst || !vertical && isLast) ? radius2 : 0,
|
|
borderBottomLeftRadius: disable !== "bottom" && disable !== "start" && (vertical && isLast || !vertical && isFirst) ? radius2 : 0,
|
|
borderBottomRightRadius: isLast && disable !== "bottom" && disable !== "end" ? radius2 : 0
|
|
}), "getBorderRadius");
|
|
var cloneElementWithPropOrder = /* @__PURE__ */ __name((child, props) => {
|
|
const next = (0, import_core25.mergeProps)(child.props, props, (0, import_core25.getConfig)().shorthands);
|
|
return import_react36.default.cloneElement({
|
|
...child,
|
|
props: null
|
|
}, next);
|
|
}, "cloneElementWithPropOrder");
|
|
|
|
// node_modules/tamagui/node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs
|
|
var import_web17 = require("@tamagui/core");
|
|
|
|
// node_modules/tamagui/node_modules/@tamagui/react-native-media-driver/dist/esm/matchMedia.mjs
|
|
var matchMedia2 = globalThis.matchMedia;
|
|
|
|
// node_modules/tamagui/node_modules/@tamagui/react-native-media-driver/dist/esm/createMedia.mjs
|
|
function createMedia2(media2) {
|
|
return (0, import_web17.setupMatchMedia)(matchMedia2), media2;
|
|
}
|
|
__name(createMedia2, "createMedia");
|
|
|
|
// node_modules/tamagui/node_modules/@tamagui/elements/dist/esm/index.mjs
|
|
var import_core26 = require("@tamagui/core");
|
|
var Section = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Section",
|
|
tag: "section",
|
|
flexDirection: "column",
|
|
accessibilityRole: "summary"
|
|
});
|
|
var Article = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Article",
|
|
tag: "article",
|
|
flexDirection: "column"
|
|
});
|
|
var Main = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Main",
|
|
tag: "main",
|
|
flexDirection: "column"
|
|
});
|
|
var Header = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Header",
|
|
tag: "header",
|
|
accessibilityRole: "header",
|
|
flexDirection: "column"
|
|
});
|
|
var Aside = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Aside",
|
|
tag: "aside",
|
|
flexDirection: "column"
|
|
// accessibilityRole: 'complementary',
|
|
});
|
|
var Footer = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Footer",
|
|
tag: "footer",
|
|
flexDirection: "column"
|
|
// accessibilityRole: 'contentinfo',
|
|
});
|
|
var Nav = (0, import_core26.styled)(import_core26.View, {
|
|
name: "Nav",
|
|
tag: "nav",
|
|
flexDirection: "column"
|
|
// accessibilityRole: 'navigation',
|
|
});
|
|
|
|
// node_modules/@tamagui/list-item/dist/esm/ListItem.mjs
|
|
var import_web18 = require("@tamagui/core");
|
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
var NAME2 = "ListItem";
|
|
var ListItemFrame = (0, import_web18.styled)(ThemeableStack, {
|
|
name: NAME2,
|
|
tag: "li",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
alignItems: "center",
|
|
justifyContent: "space-between",
|
|
flexWrap: "nowrap",
|
|
width: "100%",
|
|
borderColor: "$borderColor",
|
|
maxWidth: "100%",
|
|
overflow: "hidden",
|
|
flexDirection: "row",
|
|
backgroundColor: "$background"
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
minHeight: tokens2.size[val],
|
|
paddingHorizontal: tokens2.space[val],
|
|
paddingVertical: getSpace(tokens2.space[val], {
|
|
shift: -4
|
|
})
|
|
})
|
|
},
|
|
active: {
|
|
true: {
|
|
hoverStyle: {
|
|
backgroundColor: "$background"
|
|
}
|
|
}
|
|
},
|
|
disabled: {
|
|
true: {
|
|
opacity: 0.5,
|
|
// TODO breaking types
|
|
pointerEvents: "none"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ListItemText = (0, import_web18.styled)(SizableText, {
|
|
name: "ListItemText",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
color: "$color",
|
|
size: "$true",
|
|
flexGrow: 1,
|
|
flexShrink: 1,
|
|
ellipse: true,
|
|
cursor: "default"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ListItemSubtitle = (0, import_web18.styled)(ListItemText, {
|
|
name: "ListItemSubtitle",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
opacity: 0.6,
|
|
maxWidth: "100%",
|
|
color: "$color"
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, extras) => {
|
|
const oneSmaller = getSize(val, {
|
|
shift: -1,
|
|
excludeHalfSteps: true
|
|
});
|
|
return getFontSized(oneSmaller.key, extras);
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ListItemTitle = (0, import_web18.styled)(ListItemText, {
|
|
name: "ListItemTitle"
|
|
});
|
|
var useListItem = /* @__PURE__ */ __name((propsIn, {
|
|
Text: Text4 = ListItemText,
|
|
Subtitle = ListItemSubtitle,
|
|
Title = ListItemTitle
|
|
} = {
|
|
Text: ListItemText,
|
|
Subtitle: ListItemSubtitle,
|
|
Title: ListItemTitle
|
|
}) => {
|
|
const props = (0, import_web18.useProps)(propsIn), {
|
|
children,
|
|
icon,
|
|
iconAfter,
|
|
noTextWrap,
|
|
theme: themeName,
|
|
space: space2,
|
|
spaceFlex,
|
|
scaleIcon = 1,
|
|
scaleSpace = 1,
|
|
unstyled = false,
|
|
subTitle,
|
|
title,
|
|
// text props
|
|
color: color2,
|
|
fontWeight,
|
|
fontSize,
|
|
fontFamily,
|
|
letterSpacing,
|
|
textAlign,
|
|
ellipse,
|
|
...rest
|
|
} = props, textProps = {
|
|
color: color2,
|
|
fontWeight,
|
|
fontSize,
|
|
fontFamily,
|
|
letterSpacing,
|
|
textAlign,
|
|
ellipse,
|
|
children
|
|
}, size6 = props.size || "$true", iconSize = getFontSize(size6) * scaleIcon, getThemedIcon = useGetThemedIcon({
|
|
size: iconSize,
|
|
color: color2
|
|
}), [themedIcon, themedIconAfter] = [icon, iconAfter].map(getThemedIcon), spaceSize = (0, import_web18.getVariableValue)((0, import_web18.getTokens)().space[props.space] ?? iconSize) * scaleSpace, contents = wrapChildrenInText(Text4, textProps);
|
|
return {
|
|
props: {
|
|
...rest,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, {
|
|
children: [themedIcon ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, {
|
|
children: [themedIcon, /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_web18.Spacer, {
|
|
size: spaceSize
|
|
})]
|
|
}) : null, title || subTitle ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(YStack, {
|
|
flex: 1,
|
|
children: [noTextWrap === "all" ? title : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Title, {
|
|
size: size6,
|
|
children: title
|
|
}), subTitle ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_jsx_runtime29.Fragment, {
|
|
children: typeof subTitle == "string" && noTextWrap !== "all" ? (
|
|
// TODO can use theme but we need to standardize to alt themes
|
|
// or standardize on subtle colors in themes
|
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Subtitle, {
|
|
unstyled,
|
|
size: size6,
|
|
children: subTitle
|
|
})
|
|
) : subTitle
|
|
}) : null, contents]
|
|
}) : contents, themedIconAfter ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, {
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_web18.Spacer, {
|
|
size: spaceSize
|
|
}), themedIconAfter]
|
|
}) : null]
|
|
})
|
|
}
|
|
};
|
|
}, "useListItem");
|
|
var ListItemComponent = ListItemFrame.styleable(function(props, ref) {
|
|
const {
|
|
props: listItemProps
|
|
} = useListItem(props);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(ListItemFrame, {
|
|
ref,
|
|
...listItemProps
|
|
});
|
|
});
|
|
var ListItem2 = withStaticProperties(ListItemComponent, {
|
|
Text: ListItemText,
|
|
Subtitle: ListItemSubtitle
|
|
});
|
|
|
|
// node_modules/@tamagui/animate/dist/esm/Animate.mjs
|
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
function Animate({
|
|
children,
|
|
type,
|
|
...props
|
|
}) {
|
|
return type === "presence" ? props.keepChildrenMounted ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PresenceChild, {
|
|
initial: props.initial ? void 0 : false,
|
|
onExitComplete: props.onExitComplete,
|
|
enterVariant: props.enterVariant,
|
|
exitVariant: props.exitVariant,
|
|
enterExitVariant: props.enterExitVariant,
|
|
presenceAffectsLayout: false,
|
|
isPresent: props.present,
|
|
custom: props.custom,
|
|
children
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AnimatePresence, {
|
|
...props,
|
|
children: props.present ? children : null
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {
|
|
children
|
|
});
|
|
}
|
|
__name(Animate, "Animate");
|
|
|
|
// node_modules/@tamagui/popover/dist/esm/Popover.mjs
|
|
var import_core29 = require("@tamagui/core");
|
|
|
|
// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
|
|
var min = Math.min;
|
|
var max = Math.max;
|
|
var round = Math.round;
|
|
var floor = Math.floor;
|
|
var createCoords = /* @__PURE__ */ __name((v) => ({
|
|
x: v,
|
|
y: v
|
|
}), "createCoords");
|
|
var oppositeSideMap = {
|
|
left: "right",
|
|
right: "left",
|
|
bottom: "top",
|
|
top: "bottom"
|
|
};
|
|
var oppositeAlignmentMap = {
|
|
start: "end",
|
|
end: "start"
|
|
};
|
|
function clamp2(start, value, end) {
|
|
return max(start, min(value, end));
|
|
}
|
|
__name(clamp2, "clamp");
|
|
function evaluate(value, param) {
|
|
return typeof value === "function" ? value(param) : value;
|
|
}
|
|
__name(evaluate, "evaluate");
|
|
function getSide(placement) {
|
|
return placement.split("-")[0];
|
|
}
|
|
__name(getSide, "getSide");
|
|
function getAlignment(placement) {
|
|
return placement.split("-")[1];
|
|
}
|
|
__name(getAlignment, "getAlignment");
|
|
function getOppositeAxis(axis) {
|
|
return axis === "x" ? "y" : "x";
|
|
}
|
|
__name(getOppositeAxis, "getOppositeAxis");
|
|
function getAxisLength(axis) {
|
|
return axis === "y" ? "height" : "width";
|
|
}
|
|
__name(getAxisLength, "getAxisLength");
|
|
function getSideAxis(placement) {
|
|
return ["top", "bottom"].includes(getSide(placement)) ? "y" : "x";
|
|
}
|
|
__name(getSideAxis, "getSideAxis");
|
|
function getAlignmentAxis(placement) {
|
|
return getOppositeAxis(getSideAxis(placement));
|
|
}
|
|
__name(getAlignmentAxis, "getAlignmentAxis");
|
|
function getAlignmentSides(placement, rects, rtl) {
|
|
if (rtl === void 0) {
|
|
rtl = false;
|
|
}
|
|
const alignment = getAlignment(placement);
|
|
const alignmentAxis = getAlignmentAxis(placement);
|
|
const length = getAxisLength(alignmentAxis);
|
|
let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
|
|
if (rects.reference[length] > rects.floating[length]) {
|
|
mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
|
|
}
|
|
return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
|
|
}
|
|
__name(getAlignmentSides, "getAlignmentSides");
|
|
function getExpandedPlacements(placement) {
|
|
const oppositePlacement = getOppositePlacement(placement);
|
|
return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
|
|
}
|
|
__name(getExpandedPlacements, "getExpandedPlacements");
|
|
function getOppositeAlignmentPlacement(placement) {
|
|
return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
|
|
}
|
|
__name(getOppositeAlignmentPlacement, "getOppositeAlignmentPlacement");
|
|
function getSideList(side, isStart, rtl) {
|
|
const lr = ["left", "right"];
|
|
const rl = ["right", "left"];
|
|
const tb = ["top", "bottom"];
|
|
const bt = ["bottom", "top"];
|
|
switch (side) {
|
|
case "top":
|
|
case "bottom":
|
|
if (rtl)
|
|
return isStart ? rl : lr;
|
|
return isStart ? lr : rl;
|
|
case "left":
|
|
case "right":
|
|
return isStart ? tb : bt;
|
|
default:
|
|
return [];
|
|
}
|
|
}
|
|
__name(getSideList, "getSideList");
|
|
function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
|
|
const alignment = getAlignment(placement);
|
|
let list = getSideList(getSide(placement), direction === "start", rtl);
|
|
if (alignment) {
|
|
list = list.map((side) => side + "-" + alignment);
|
|
if (flipAlignment) {
|
|
list = list.concat(list.map(getOppositeAlignmentPlacement));
|
|
}
|
|
}
|
|
return list;
|
|
}
|
|
__name(getOppositeAxisPlacements, "getOppositeAxisPlacements");
|
|
function getOppositePlacement(placement) {
|
|
return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
|
|
}
|
|
__name(getOppositePlacement, "getOppositePlacement");
|
|
function expandPaddingObject(padding) {
|
|
return {
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
...padding
|
|
};
|
|
}
|
|
__name(expandPaddingObject, "expandPaddingObject");
|
|
function getPaddingObject(padding) {
|
|
return typeof padding !== "number" ? expandPaddingObject(padding) : {
|
|
top: padding,
|
|
right: padding,
|
|
bottom: padding,
|
|
left: padding
|
|
};
|
|
}
|
|
__name(getPaddingObject, "getPaddingObject");
|
|
function rectToClientRect(rect) {
|
|
const {
|
|
x,
|
|
y,
|
|
width,
|
|
height
|
|
} = rect;
|
|
return {
|
|
width,
|
|
height,
|
|
top: y,
|
|
left: x,
|
|
right: x + width,
|
|
bottom: y + height,
|
|
x,
|
|
y
|
|
};
|
|
}
|
|
__name(rectToClientRect, "rectToClientRect");
|
|
|
|
// node_modules/@floating-ui/core/dist/floating-ui.core.mjs
|
|
function computeCoordsFromPlacement(_ref, placement, rtl) {
|
|
let {
|
|
reference,
|
|
floating
|
|
} = _ref;
|
|
const sideAxis = getSideAxis(placement);
|
|
const alignmentAxis = getAlignmentAxis(placement);
|
|
const alignLength = getAxisLength(alignmentAxis);
|
|
const side = getSide(placement);
|
|
const isVertical = sideAxis === "y";
|
|
const commonX = reference.x + reference.width / 2 - floating.width / 2;
|
|
const commonY = reference.y + reference.height / 2 - floating.height / 2;
|
|
const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
|
|
let coords;
|
|
switch (side) {
|
|
case "top":
|
|
coords = {
|
|
x: commonX,
|
|
y: reference.y - floating.height
|
|
};
|
|
break;
|
|
case "bottom":
|
|
coords = {
|
|
x: commonX,
|
|
y: reference.y + reference.height
|
|
};
|
|
break;
|
|
case "right":
|
|
coords = {
|
|
x: reference.x + reference.width,
|
|
y: commonY
|
|
};
|
|
break;
|
|
case "left":
|
|
coords = {
|
|
x: reference.x - floating.width,
|
|
y: commonY
|
|
};
|
|
break;
|
|
default:
|
|
coords = {
|
|
x: reference.x,
|
|
y: reference.y
|
|
};
|
|
}
|
|
switch (getAlignment(placement)) {
|
|
case "start":
|
|
coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
|
|
break;
|
|
case "end":
|
|
coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
|
|
break;
|
|
}
|
|
return coords;
|
|
}
|
|
__name(computeCoordsFromPlacement, "computeCoordsFromPlacement");
|
|
var computePosition = /* @__PURE__ */ __name(async (reference, floating, config2) => {
|
|
const {
|
|
placement = "bottom",
|
|
strategy = "absolute",
|
|
middleware = [],
|
|
platform: platform2
|
|
} = config2;
|
|
const validMiddleware = middleware.filter(Boolean);
|
|
const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));
|
|
let rects = await platform2.getElementRects({
|
|
reference,
|
|
floating,
|
|
strategy
|
|
});
|
|
let {
|
|
x,
|
|
y
|
|
} = computeCoordsFromPlacement(rects, placement, rtl);
|
|
let statefulPlacement = placement;
|
|
let middlewareData = {};
|
|
let resetCount = 0;
|
|
for (let i = 0; i < validMiddleware.length; i++) {
|
|
const {
|
|
name,
|
|
fn
|
|
} = validMiddleware[i];
|
|
const {
|
|
x: nextX,
|
|
y: nextY,
|
|
data,
|
|
reset
|
|
} = await fn({
|
|
x,
|
|
y,
|
|
initialPlacement: placement,
|
|
placement: statefulPlacement,
|
|
strategy,
|
|
middlewareData,
|
|
rects,
|
|
platform: platform2,
|
|
elements: {
|
|
reference,
|
|
floating
|
|
}
|
|
});
|
|
x = nextX != null ? nextX : x;
|
|
y = nextY != null ? nextY : y;
|
|
middlewareData = {
|
|
...middlewareData,
|
|
[name]: {
|
|
...middlewareData[name],
|
|
...data
|
|
}
|
|
};
|
|
if (reset && resetCount <= 50) {
|
|
resetCount++;
|
|
if (typeof reset === "object") {
|
|
if (reset.placement) {
|
|
statefulPlacement = reset.placement;
|
|
}
|
|
if (reset.rects) {
|
|
rects = reset.rects === true ? await platform2.getElementRects({
|
|
reference,
|
|
floating,
|
|
strategy
|
|
}) : reset.rects;
|
|
}
|
|
({
|
|
x,
|
|
y
|
|
} = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
|
|
}
|
|
i = -1;
|
|
}
|
|
}
|
|
return {
|
|
x,
|
|
y,
|
|
placement: statefulPlacement,
|
|
strategy,
|
|
middlewareData
|
|
};
|
|
}, "computePosition");
|
|
async function detectOverflow(state, options) {
|
|
var _await$platform$isEle;
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
x,
|
|
y,
|
|
platform: platform2,
|
|
rects,
|
|
elements,
|
|
strategy
|
|
} = state;
|
|
const {
|
|
boundary = "clippingAncestors",
|
|
rootBoundary = "viewport",
|
|
elementContext = "floating",
|
|
altBoundary = false,
|
|
padding = 0
|
|
} = evaluate(options, state);
|
|
const paddingObject = getPaddingObject(padding);
|
|
const altContext = elementContext === "floating" ? "reference" : "floating";
|
|
const element = elements[altBoundary ? altContext : elementContext];
|
|
const clippingClientRect = rectToClientRect(await platform2.getClippingRect({
|
|
element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),
|
|
boundary,
|
|
rootBoundary,
|
|
strategy
|
|
}));
|
|
const rect = elementContext === "floating" ? {
|
|
x,
|
|
y,
|
|
width: rects.floating.width,
|
|
height: rects.floating.height
|
|
} : rects.reference;
|
|
const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));
|
|
const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
|
|
x: 1,
|
|
y: 1
|
|
} : {
|
|
x: 1,
|
|
y: 1
|
|
};
|
|
const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
elements,
|
|
rect,
|
|
offsetParent,
|
|
strategy
|
|
}) : rect);
|
|
return {
|
|
top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
|
|
bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
|
|
left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
|
|
right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
|
|
};
|
|
}
|
|
__name(detectOverflow, "detectOverflow");
|
|
var arrow = /* @__PURE__ */ __name((options) => ({
|
|
name: "arrow",
|
|
options,
|
|
async fn(state) {
|
|
const {
|
|
x,
|
|
y,
|
|
placement,
|
|
rects,
|
|
platform: platform2,
|
|
elements,
|
|
middlewareData
|
|
} = state;
|
|
const {
|
|
element,
|
|
padding = 0
|
|
} = evaluate(options, state) || {};
|
|
if (element == null) {
|
|
return {};
|
|
}
|
|
const paddingObject = getPaddingObject(padding);
|
|
const coords = {
|
|
x,
|
|
y
|
|
};
|
|
const axis = getAlignmentAxis(placement);
|
|
const length = getAxisLength(axis);
|
|
const arrowDimensions = await platform2.getDimensions(element);
|
|
const isYAxis = axis === "y";
|
|
const minProp = isYAxis ? "top" : "left";
|
|
const maxProp = isYAxis ? "bottom" : "right";
|
|
const clientProp = isYAxis ? "clientHeight" : "clientWidth";
|
|
const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
|
|
const startDiff = coords[axis] - rects.reference[axis];
|
|
const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element));
|
|
let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
|
|
if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) {
|
|
clientSize = elements.floating[clientProp] || rects.floating[length];
|
|
}
|
|
const centerToReference = endDiff / 2 - startDiff / 2;
|
|
const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
|
|
const minPadding = min(paddingObject[minProp], largestPossiblePadding);
|
|
const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
|
|
const min$1 = minPadding;
|
|
const max2 = clientSize - arrowDimensions[length] - maxPadding;
|
|
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
|
|
const offset4 = clamp2(min$1, center, max2);
|
|
const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset4 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
|
|
const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
|
|
return {
|
|
[axis]: coords[axis] + alignmentOffset,
|
|
data: {
|
|
[axis]: offset4,
|
|
centerOffset: center - offset4 - alignmentOffset,
|
|
...shouldAddOffset && {
|
|
alignmentOffset
|
|
}
|
|
},
|
|
reset: shouldAddOffset
|
|
};
|
|
}
|
|
}), "arrow");
|
|
var flip = /* @__PURE__ */ __name(function(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return {
|
|
name: "flip",
|
|
options,
|
|
async fn(state) {
|
|
var _middlewareData$arrow, _middlewareData$flip;
|
|
const {
|
|
placement,
|
|
middlewareData,
|
|
rects,
|
|
initialPlacement,
|
|
platform: platform2,
|
|
elements
|
|
} = state;
|
|
const {
|
|
mainAxis: checkMainAxis = true,
|
|
crossAxis: checkCrossAxis = true,
|
|
fallbackPlacements: specifiedFallbackPlacements,
|
|
fallbackStrategy = "bestFit",
|
|
fallbackAxisSideDirection = "none",
|
|
flipAlignment = true,
|
|
...detectOverflowOptions
|
|
} = evaluate(options, state);
|
|
if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
|
|
return {};
|
|
}
|
|
const side = getSide(placement);
|
|
const isBasePlacement = getSide(initialPlacement) === initialPlacement;
|
|
const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
|
|
const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
|
|
if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== "none") {
|
|
fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
|
|
}
|
|
const placements2 = [initialPlacement, ...fallbackPlacements];
|
|
const overflow = await detectOverflow(state, detectOverflowOptions);
|
|
const overflows = [];
|
|
let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
|
|
if (checkMainAxis) {
|
|
overflows.push(overflow[side]);
|
|
}
|
|
if (checkCrossAxis) {
|
|
const sides2 = getAlignmentSides(placement, rects, rtl);
|
|
overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
|
|
}
|
|
overflowsData = [...overflowsData, {
|
|
placement,
|
|
overflows
|
|
}];
|
|
if (!overflows.every((side2) => side2 <= 0)) {
|
|
var _middlewareData$flip2, _overflowsData$filter;
|
|
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
|
|
const nextPlacement = placements2[nextIndex];
|
|
if (nextPlacement) {
|
|
return {
|
|
data: {
|
|
index: nextIndex,
|
|
overflows: overflowsData
|
|
},
|
|
reset: {
|
|
placement: nextPlacement
|
|
}
|
|
};
|
|
}
|
|
let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
|
|
if (!resetPlacement) {
|
|
switch (fallbackStrategy) {
|
|
case "bestFit": {
|
|
var _overflowsData$map$so;
|
|
const placement2 = (_overflowsData$map$so = overflowsData.map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
|
|
if (placement2) {
|
|
resetPlacement = placement2;
|
|
}
|
|
break;
|
|
}
|
|
case "initialPlacement":
|
|
resetPlacement = initialPlacement;
|
|
break;
|
|
}
|
|
}
|
|
if (placement !== resetPlacement) {
|
|
return {
|
|
reset: {
|
|
placement: resetPlacement
|
|
}
|
|
};
|
|
}
|
|
}
|
|
return {};
|
|
}
|
|
};
|
|
}, "flip");
|
|
async function convertValueToCoords(state, options) {
|
|
const {
|
|
placement,
|
|
platform: platform2,
|
|
elements
|
|
} = state;
|
|
const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
|
|
const side = getSide(placement);
|
|
const alignment = getAlignment(placement);
|
|
const isVertical = getSideAxis(placement) === "y";
|
|
const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
|
|
const crossAxisMulti = rtl && isVertical ? -1 : 1;
|
|
const rawValue = evaluate(options, state);
|
|
let {
|
|
mainAxis,
|
|
crossAxis,
|
|
alignmentAxis
|
|
} = typeof rawValue === "number" ? {
|
|
mainAxis: rawValue,
|
|
crossAxis: 0,
|
|
alignmentAxis: null
|
|
} : {
|
|
mainAxis: 0,
|
|
crossAxis: 0,
|
|
alignmentAxis: null,
|
|
...rawValue
|
|
};
|
|
if (alignment && typeof alignmentAxis === "number") {
|
|
crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
|
|
}
|
|
return isVertical ? {
|
|
x: crossAxis * crossAxisMulti,
|
|
y: mainAxis * mainAxisMulti
|
|
} : {
|
|
x: mainAxis * mainAxisMulti,
|
|
y: crossAxis * crossAxisMulti
|
|
};
|
|
}
|
|
__name(convertValueToCoords, "convertValueToCoords");
|
|
var offset = /* @__PURE__ */ __name(function(options) {
|
|
if (options === void 0) {
|
|
options = 0;
|
|
}
|
|
return {
|
|
name: "offset",
|
|
options,
|
|
async fn(state) {
|
|
var _middlewareData$offse, _middlewareData$arrow;
|
|
const {
|
|
x,
|
|
y,
|
|
placement,
|
|
middlewareData
|
|
} = state;
|
|
const diffCoords = await convertValueToCoords(state, options);
|
|
if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
|
|
return {};
|
|
}
|
|
return {
|
|
x: x + diffCoords.x,
|
|
y: y + diffCoords.y,
|
|
data: {
|
|
...diffCoords,
|
|
placement
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}, "offset");
|
|
var shift = /* @__PURE__ */ __name(function(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return {
|
|
name: "shift",
|
|
options,
|
|
async fn(state) {
|
|
const {
|
|
x,
|
|
y,
|
|
placement
|
|
} = state;
|
|
const {
|
|
mainAxis: checkMainAxis = true,
|
|
crossAxis: checkCrossAxis = false,
|
|
limiter = {
|
|
fn: (_ref) => {
|
|
let {
|
|
x: x2,
|
|
y: y2
|
|
} = _ref;
|
|
return {
|
|
x: x2,
|
|
y: y2
|
|
};
|
|
}
|
|
},
|
|
...detectOverflowOptions
|
|
} = evaluate(options, state);
|
|
const coords = {
|
|
x,
|
|
y
|
|
};
|
|
const overflow = await detectOverflow(state, detectOverflowOptions);
|
|
const crossAxis = getSideAxis(getSide(placement));
|
|
const mainAxis = getOppositeAxis(crossAxis);
|
|
let mainAxisCoord = coords[mainAxis];
|
|
let crossAxisCoord = coords[crossAxis];
|
|
if (checkMainAxis) {
|
|
const minSide = mainAxis === "y" ? "top" : "left";
|
|
const maxSide = mainAxis === "y" ? "bottom" : "right";
|
|
const min2 = mainAxisCoord + overflow[minSide];
|
|
const max2 = mainAxisCoord - overflow[maxSide];
|
|
mainAxisCoord = clamp2(min2, mainAxisCoord, max2);
|
|
}
|
|
if (checkCrossAxis) {
|
|
const minSide = crossAxis === "y" ? "top" : "left";
|
|
const maxSide = crossAxis === "y" ? "bottom" : "right";
|
|
const min2 = crossAxisCoord + overflow[minSide];
|
|
const max2 = crossAxisCoord - overflow[maxSide];
|
|
crossAxisCoord = clamp2(min2, crossAxisCoord, max2);
|
|
}
|
|
const limitedCoords = limiter.fn({
|
|
...state,
|
|
[mainAxis]: mainAxisCoord,
|
|
[crossAxis]: crossAxisCoord
|
|
});
|
|
return {
|
|
...limitedCoords,
|
|
data: {
|
|
x: limitedCoords.x - x,
|
|
y: limitedCoords.y - y
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}, "shift");
|
|
var size3 = /* @__PURE__ */ __name(function(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
return {
|
|
name: "size",
|
|
options,
|
|
async fn(state) {
|
|
const {
|
|
placement,
|
|
rects,
|
|
platform: platform2,
|
|
elements
|
|
} = state;
|
|
const {
|
|
apply = /* @__PURE__ */ __name(() => {
|
|
}, "apply"),
|
|
...detectOverflowOptions
|
|
} = evaluate(options, state);
|
|
const overflow = await detectOverflow(state, detectOverflowOptions);
|
|
const side = getSide(placement);
|
|
const alignment = getAlignment(placement);
|
|
const isYAxis = getSideAxis(placement) === "y";
|
|
const {
|
|
width,
|
|
height
|
|
} = rects.floating;
|
|
let heightSide;
|
|
let widthSide;
|
|
if (side === "top" || side === "bottom") {
|
|
heightSide = side;
|
|
widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
|
|
} else {
|
|
widthSide = side;
|
|
heightSide = alignment === "end" ? "top" : "bottom";
|
|
}
|
|
const maximumClippingHeight = height - overflow.top - overflow.bottom;
|
|
const maximumClippingWidth = width - overflow.left - overflow.right;
|
|
const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
|
|
const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
|
|
const noShift = !state.middlewareData.shift;
|
|
let availableHeight = overflowAvailableHeight;
|
|
let availableWidth = overflowAvailableWidth;
|
|
if (isYAxis) {
|
|
availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
|
|
} else {
|
|
availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
|
|
}
|
|
if (noShift && !alignment) {
|
|
const xMin = max(overflow.left, 0);
|
|
const xMax = max(overflow.right, 0);
|
|
const yMin = max(overflow.top, 0);
|
|
const yMax = max(overflow.bottom, 0);
|
|
if (isYAxis) {
|
|
availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
|
|
} else {
|
|
availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
|
|
}
|
|
}
|
|
await apply({
|
|
...state,
|
|
availableWidth,
|
|
availableHeight
|
|
});
|
|
const nextDimensions = await platform2.getDimensions(elements.floating);
|
|
if (width !== nextDimensions.width || height !== nextDimensions.height) {
|
|
return {
|
|
reset: {
|
|
rects: true
|
|
}
|
|
};
|
|
}
|
|
return {};
|
|
}
|
|
};
|
|
}, "size");
|
|
|
|
// node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
|
|
function getNodeName(node) {
|
|
if (isNode(node)) {
|
|
return (node.nodeName || "").toLowerCase();
|
|
}
|
|
return "#document";
|
|
}
|
|
__name(getNodeName, "getNodeName");
|
|
function getWindow(node) {
|
|
var _node$ownerDocument;
|
|
return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
|
|
}
|
|
__name(getWindow, "getWindow");
|
|
function getDocumentElement(node) {
|
|
var _ref;
|
|
return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
|
|
}
|
|
__name(getDocumentElement, "getDocumentElement");
|
|
function isNode(value) {
|
|
return value instanceof Node || value instanceof getWindow(value).Node;
|
|
}
|
|
__name(isNode, "isNode");
|
|
function isElement(value) {
|
|
return value instanceof Element || value instanceof getWindow(value).Element;
|
|
}
|
|
__name(isElement, "isElement");
|
|
function isHTMLElement(value) {
|
|
return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
|
|
}
|
|
__name(isHTMLElement, "isHTMLElement");
|
|
function isShadowRoot(value) {
|
|
if (typeof ShadowRoot === "undefined") {
|
|
return false;
|
|
}
|
|
return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
|
|
}
|
|
__name(isShadowRoot, "isShadowRoot");
|
|
function isOverflowElement(element) {
|
|
const {
|
|
overflow,
|
|
overflowX,
|
|
overflowY,
|
|
display
|
|
} = getComputedStyle2(element);
|
|
return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !["inline", "contents"].includes(display);
|
|
}
|
|
__name(isOverflowElement, "isOverflowElement");
|
|
function isTableElement(element) {
|
|
return ["table", "td", "th"].includes(getNodeName(element));
|
|
}
|
|
__name(isTableElement, "isTableElement");
|
|
function isContainingBlock(element) {
|
|
const webkit = isWebKit();
|
|
const css = getComputedStyle2(element);
|
|
return css.transform !== "none" || css.perspective !== "none" || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value));
|
|
}
|
|
__name(isContainingBlock, "isContainingBlock");
|
|
function getContainingBlock(element) {
|
|
let currentNode = getParentNode(element);
|
|
while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
if (isContainingBlock(currentNode)) {
|
|
return currentNode;
|
|
}
|
|
currentNode = getParentNode(currentNode);
|
|
}
|
|
return null;
|
|
}
|
|
__name(getContainingBlock, "getContainingBlock");
|
|
function isWebKit() {
|
|
if (typeof CSS === "undefined" || !CSS.supports)
|
|
return false;
|
|
return CSS.supports("-webkit-backdrop-filter", "none");
|
|
}
|
|
__name(isWebKit, "isWebKit");
|
|
function isLastTraversableNode(node) {
|
|
return ["html", "body", "#document"].includes(getNodeName(node));
|
|
}
|
|
__name(isLastTraversableNode, "isLastTraversableNode");
|
|
function getComputedStyle2(element) {
|
|
return getWindow(element).getComputedStyle(element);
|
|
}
|
|
__name(getComputedStyle2, "getComputedStyle");
|
|
function getNodeScroll(element) {
|
|
if (isElement(element)) {
|
|
return {
|
|
scrollLeft: element.scrollLeft,
|
|
scrollTop: element.scrollTop
|
|
};
|
|
}
|
|
return {
|
|
scrollLeft: element.pageXOffset,
|
|
scrollTop: element.pageYOffset
|
|
};
|
|
}
|
|
__name(getNodeScroll, "getNodeScroll");
|
|
function getParentNode(node) {
|
|
if (getNodeName(node) === "html") {
|
|
return node;
|
|
}
|
|
const result = (
|
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
node.assignedSlot || // DOM Element detected.
|
|
node.parentNode || // ShadowRoot detected.
|
|
isShadowRoot(node) && node.host || // Fallback.
|
|
getDocumentElement(node)
|
|
);
|
|
return isShadowRoot(result) ? result.host : result;
|
|
}
|
|
__name(getParentNode, "getParentNode");
|
|
function getNearestOverflowAncestor(node) {
|
|
const parentNode = getParentNode(node);
|
|
if (isLastTraversableNode(parentNode)) {
|
|
return node.ownerDocument ? node.ownerDocument.body : node.body;
|
|
}
|
|
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
|
|
return parentNode;
|
|
}
|
|
return getNearestOverflowAncestor(parentNode);
|
|
}
|
|
__name(getNearestOverflowAncestor, "getNearestOverflowAncestor");
|
|
function getOverflowAncestors(node, list, traverseIframes) {
|
|
var _node$ownerDocument2;
|
|
if (list === void 0) {
|
|
list = [];
|
|
}
|
|
if (traverseIframes === void 0) {
|
|
traverseIframes = true;
|
|
}
|
|
const scrollableAncestor = getNearestOverflowAncestor(node);
|
|
const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
|
|
const win = getWindow(scrollableAncestor);
|
|
if (isBody) {
|
|
return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);
|
|
}
|
|
return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
|
|
}
|
|
__name(getOverflowAncestors, "getOverflowAncestors");
|
|
|
|
// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
|
|
function getCssDimensions(element) {
|
|
const css = getComputedStyle2(element);
|
|
let width = parseFloat(css.width) || 0;
|
|
let height = parseFloat(css.height) || 0;
|
|
const hasOffset = isHTMLElement(element);
|
|
const offsetWidth = hasOffset ? element.offsetWidth : width;
|
|
const offsetHeight = hasOffset ? element.offsetHeight : height;
|
|
const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
|
|
if (shouldFallback) {
|
|
width = offsetWidth;
|
|
height = offsetHeight;
|
|
}
|
|
return {
|
|
width,
|
|
height,
|
|
$: shouldFallback
|
|
};
|
|
}
|
|
__name(getCssDimensions, "getCssDimensions");
|
|
function unwrapElement(element) {
|
|
return !isElement(element) ? element.contextElement : element;
|
|
}
|
|
__name(unwrapElement, "unwrapElement");
|
|
function getScale(element) {
|
|
const domElement = unwrapElement(element);
|
|
if (!isHTMLElement(domElement)) {
|
|
return createCoords(1);
|
|
}
|
|
const rect = domElement.getBoundingClientRect();
|
|
const {
|
|
width,
|
|
height,
|
|
$
|
|
} = getCssDimensions(domElement);
|
|
let x = ($ ? round(rect.width) : rect.width) / width;
|
|
let y = ($ ? round(rect.height) : rect.height) / height;
|
|
if (!x || !Number.isFinite(x)) {
|
|
x = 1;
|
|
}
|
|
if (!y || !Number.isFinite(y)) {
|
|
y = 1;
|
|
}
|
|
return {
|
|
x,
|
|
y
|
|
};
|
|
}
|
|
__name(getScale, "getScale");
|
|
var noOffsets = /* @__PURE__ */ createCoords(0);
|
|
function getVisualOffsets(element) {
|
|
const win = getWindow(element);
|
|
if (!isWebKit() || !win.visualViewport) {
|
|
return noOffsets;
|
|
}
|
|
return {
|
|
x: win.visualViewport.offsetLeft,
|
|
y: win.visualViewport.offsetTop
|
|
};
|
|
}
|
|
__name(getVisualOffsets, "getVisualOffsets");
|
|
function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
|
|
if (isFixed === void 0) {
|
|
isFixed = false;
|
|
}
|
|
if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {
|
|
return false;
|
|
}
|
|
return isFixed;
|
|
}
|
|
__name(shouldAddVisualOffsets, "shouldAddVisualOffsets");
|
|
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
|
|
if (includeScale === void 0) {
|
|
includeScale = false;
|
|
}
|
|
if (isFixedStrategy === void 0) {
|
|
isFixedStrategy = false;
|
|
}
|
|
const clientRect = element.getBoundingClientRect();
|
|
const domElement = unwrapElement(element);
|
|
let scale = createCoords(1);
|
|
if (includeScale) {
|
|
if (offsetParent) {
|
|
if (isElement(offsetParent)) {
|
|
scale = getScale(offsetParent);
|
|
}
|
|
} else {
|
|
scale = getScale(element);
|
|
}
|
|
}
|
|
const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
|
|
let x = (clientRect.left + visualOffsets.x) / scale.x;
|
|
let y = (clientRect.top + visualOffsets.y) / scale.y;
|
|
let width = clientRect.width / scale.x;
|
|
let height = clientRect.height / scale.y;
|
|
if (domElement) {
|
|
const win = getWindow(domElement);
|
|
const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
|
|
let currentWin = win;
|
|
let currentIFrame = currentWin.frameElement;
|
|
while (currentIFrame && offsetParent && offsetWin !== currentWin) {
|
|
const iframeScale = getScale(currentIFrame);
|
|
const iframeRect = currentIFrame.getBoundingClientRect();
|
|
const css = getComputedStyle2(currentIFrame);
|
|
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
|
|
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
|
|
x *= iframeScale.x;
|
|
y *= iframeScale.y;
|
|
width *= iframeScale.x;
|
|
height *= iframeScale.y;
|
|
x += left;
|
|
y += top;
|
|
currentWin = getWindow(currentIFrame);
|
|
currentIFrame = currentWin.frameElement;
|
|
}
|
|
}
|
|
return rectToClientRect({
|
|
width,
|
|
height,
|
|
x,
|
|
y
|
|
});
|
|
}
|
|
__name(getBoundingClientRect, "getBoundingClientRect");
|
|
var topLayerSelectors = [":popover-open", ":modal"];
|
|
function isTopLayer(element) {
|
|
return topLayerSelectors.some((selector) => {
|
|
try {
|
|
return element.matches(selector);
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
});
|
|
}
|
|
__name(isTopLayer, "isTopLayer");
|
|
function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
|
|
let {
|
|
elements,
|
|
rect,
|
|
offsetParent,
|
|
strategy
|
|
} = _ref;
|
|
const isFixed = strategy === "fixed";
|
|
const documentElement = getDocumentElement(offsetParent);
|
|
const topLayer = elements ? isTopLayer(elements.floating) : false;
|
|
if (offsetParent === documentElement || topLayer && isFixed) {
|
|
return rect;
|
|
}
|
|
let scroll = {
|
|
scrollLeft: 0,
|
|
scrollTop: 0
|
|
};
|
|
let scale = createCoords(1);
|
|
const offsets = createCoords(0);
|
|
const isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
|
|
scroll = getNodeScroll(offsetParent);
|
|
}
|
|
if (isHTMLElement(offsetParent)) {
|
|
const offsetRect = getBoundingClientRect(offsetParent);
|
|
scale = getScale(offsetParent);
|
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
}
|
|
}
|
|
return {
|
|
width: rect.width * scale.x,
|
|
height: rect.height * scale.y,
|
|
x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
|
|
y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
|
|
};
|
|
}
|
|
__name(convertOffsetParentRelativeRectToViewportRelativeRect, "convertOffsetParentRelativeRectToViewportRelativeRect");
|
|
function getClientRects(element) {
|
|
return Array.from(element.getClientRects());
|
|
}
|
|
__name(getClientRects, "getClientRects");
|
|
function getWindowScrollBarX(element) {
|
|
return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;
|
|
}
|
|
__name(getWindowScrollBarX, "getWindowScrollBarX");
|
|
function getDocumentRect(element) {
|
|
const html = getDocumentElement(element);
|
|
const scroll = getNodeScroll(element);
|
|
const body = element.ownerDocument.body;
|
|
const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
|
|
const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
|
|
let x = -scroll.scrollLeft + getWindowScrollBarX(element);
|
|
const y = -scroll.scrollTop;
|
|
if (getComputedStyle2(body).direction === "rtl") {
|
|
x += max(html.clientWidth, body.clientWidth) - width;
|
|
}
|
|
return {
|
|
width,
|
|
height,
|
|
x,
|
|
y
|
|
};
|
|
}
|
|
__name(getDocumentRect, "getDocumentRect");
|
|
function getViewportRect(element, strategy) {
|
|
const win = getWindow(element);
|
|
const html = getDocumentElement(element);
|
|
const visualViewport = win.visualViewport;
|
|
let width = html.clientWidth;
|
|
let height = html.clientHeight;
|
|
let x = 0;
|
|
let y = 0;
|
|
if (visualViewport) {
|
|
width = visualViewport.width;
|
|
height = visualViewport.height;
|
|
const visualViewportBased = isWebKit();
|
|
if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
|
|
x = visualViewport.offsetLeft;
|
|
y = visualViewport.offsetTop;
|
|
}
|
|
}
|
|
return {
|
|
width,
|
|
height,
|
|
x,
|
|
y
|
|
};
|
|
}
|
|
__name(getViewportRect, "getViewportRect");
|
|
function getInnerBoundingClientRect(element, strategy) {
|
|
const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
|
|
const top = clientRect.top + element.clientTop;
|
|
const left = clientRect.left + element.clientLeft;
|
|
const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);
|
|
const width = element.clientWidth * scale.x;
|
|
const height = element.clientHeight * scale.y;
|
|
const x = left * scale.x;
|
|
const y = top * scale.y;
|
|
return {
|
|
width,
|
|
height,
|
|
x,
|
|
y
|
|
};
|
|
}
|
|
__name(getInnerBoundingClientRect, "getInnerBoundingClientRect");
|
|
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
|
|
let rect;
|
|
if (clippingAncestor === "viewport") {
|
|
rect = getViewportRect(element, strategy);
|
|
} else if (clippingAncestor === "document") {
|
|
rect = getDocumentRect(getDocumentElement(element));
|
|
} else if (isElement(clippingAncestor)) {
|
|
rect = getInnerBoundingClientRect(clippingAncestor, strategy);
|
|
} else {
|
|
const visualOffsets = getVisualOffsets(element);
|
|
rect = {
|
|
...clippingAncestor,
|
|
x: clippingAncestor.x - visualOffsets.x,
|
|
y: clippingAncestor.y - visualOffsets.y
|
|
};
|
|
}
|
|
return rectToClientRect(rect);
|
|
}
|
|
__name(getClientRectFromClippingAncestor, "getClientRectFromClippingAncestor");
|
|
function hasFixedPositionAncestor(element, stopNode) {
|
|
const parentNode = getParentNode(element);
|
|
if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
|
|
return false;
|
|
}
|
|
return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
|
|
}
|
|
__name(hasFixedPositionAncestor, "hasFixedPositionAncestor");
|
|
function getClippingElementAncestors(element, cache3) {
|
|
const cachedResult = cache3.get(element);
|
|
if (cachedResult) {
|
|
return cachedResult;
|
|
}
|
|
let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body");
|
|
let currentContainingBlockComputedStyle = null;
|
|
const elementIsFixed = getComputedStyle2(element).position === "fixed";
|
|
let currentNode = elementIsFixed ? getParentNode(element) : element;
|
|
while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
|
|
const computedStyle = getComputedStyle2(currentNode);
|
|
const currentNodeIsContaining = isContainingBlock(currentNode);
|
|
if (!currentNodeIsContaining && computedStyle.position === "fixed") {
|
|
currentContainingBlockComputedStyle = null;
|
|
}
|
|
const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
|
|
if (shouldDropCurrentNode) {
|
|
result = result.filter((ancestor) => ancestor !== currentNode);
|
|
} else {
|
|
currentContainingBlockComputedStyle = computedStyle;
|
|
}
|
|
currentNode = getParentNode(currentNode);
|
|
}
|
|
cache3.set(element, result);
|
|
return result;
|
|
}
|
|
__name(getClippingElementAncestors, "getClippingElementAncestors");
|
|
function getClippingRect(_ref) {
|
|
let {
|
|
element,
|
|
boundary,
|
|
rootBoundary,
|
|
strategy
|
|
} = _ref;
|
|
const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);
|
|
const clippingAncestors = [...elementClippingAncestors, rootBoundary];
|
|
const firstClippingAncestor = clippingAncestors[0];
|
|
const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
|
|
const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
|
|
accRect.top = max(rect.top, accRect.top);
|
|
accRect.right = min(rect.right, accRect.right);
|
|
accRect.bottom = min(rect.bottom, accRect.bottom);
|
|
accRect.left = max(rect.left, accRect.left);
|
|
return accRect;
|
|
}, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
|
|
return {
|
|
width: clippingRect.right - clippingRect.left,
|
|
height: clippingRect.bottom - clippingRect.top,
|
|
x: clippingRect.left,
|
|
y: clippingRect.top
|
|
};
|
|
}
|
|
__name(getClippingRect, "getClippingRect");
|
|
function getDimensions(element) {
|
|
const {
|
|
width,
|
|
height
|
|
} = getCssDimensions(element);
|
|
return {
|
|
width,
|
|
height
|
|
};
|
|
}
|
|
__name(getDimensions, "getDimensions");
|
|
function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
|
|
const isOffsetParentAnElement = isHTMLElement(offsetParent);
|
|
const documentElement = getDocumentElement(offsetParent);
|
|
const isFixed = strategy === "fixed";
|
|
const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
|
|
let scroll = {
|
|
scrollLeft: 0,
|
|
scrollTop: 0
|
|
};
|
|
const offsets = createCoords(0);
|
|
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
|
|
if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
|
|
scroll = getNodeScroll(offsetParent);
|
|
}
|
|
if (isOffsetParentAnElement) {
|
|
const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
|
|
offsets.x = offsetRect.x + offsetParent.clientLeft;
|
|
offsets.y = offsetRect.y + offsetParent.clientTop;
|
|
} else if (documentElement) {
|
|
offsets.x = getWindowScrollBarX(documentElement);
|
|
}
|
|
}
|
|
const x = rect.left + scroll.scrollLeft - offsets.x;
|
|
const y = rect.top + scroll.scrollTop - offsets.y;
|
|
return {
|
|
x,
|
|
y,
|
|
width: rect.width,
|
|
height: rect.height
|
|
};
|
|
}
|
|
__name(getRectRelativeToOffsetParent, "getRectRelativeToOffsetParent");
|
|
function isStaticPositioned(element) {
|
|
return getComputedStyle2(element).position === "static";
|
|
}
|
|
__name(isStaticPositioned, "isStaticPositioned");
|
|
function getTrueOffsetParent(element, polyfill) {
|
|
if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
|
|
return null;
|
|
}
|
|
if (polyfill) {
|
|
return polyfill(element);
|
|
}
|
|
return element.offsetParent;
|
|
}
|
|
__name(getTrueOffsetParent, "getTrueOffsetParent");
|
|
function getOffsetParent(element, polyfill) {
|
|
const win = getWindow(element);
|
|
if (isTopLayer(element)) {
|
|
return win;
|
|
}
|
|
if (!isHTMLElement(element)) {
|
|
let svgOffsetParent = getParentNode(element);
|
|
while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
|
|
if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
|
|
return svgOffsetParent;
|
|
}
|
|
svgOffsetParent = getParentNode(svgOffsetParent);
|
|
}
|
|
return win;
|
|
}
|
|
let offsetParent = getTrueOffsetParent(element, polyfill);
|
|
while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
|
|
offsetParent = getTrueOffsetParent(offsetParent, polyfill);
|
|
}
|
|
if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
|
|
return win;
|
|
}
|
|
return offsetParent || getContainingBlock(element) || win;
|
|
}
|
|
__name(getOffsetParent, "getOffsetParent");
|
|
var getElementRects = /* @__PURE__ */ __name(async function(data) {
|
|
const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
|
|
const getDimensionsFn = this.getDimensions;
|
|
const floatingDimensions = await getDimensionsFn(data.floating);
|
|
return {
|
|
reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
|
|
floating: {
|
|
x: 0,
|
|
y: 0,
|
|
width: floatingDimensions.width,
|
|
height: floatingDimensions.height
|
|
}
|
|
};
|
|
}, "getElementRects");
|
|
function isRTL(element) {
|
|
return getComputedStyle2(element).direction === "rtl";
|
|
}
|
|
__name(isRTL, "isRTL");
|
|
var platform = {
|
|
convertOffsetParentRelativeRectToViewportRelativeRect,
|
|
getDocumentElement,
|
|
getClippingRect,
|
|
getOffsetParent,
|
|
getElementRects,
|
|
getClientRects,
|
|
getDimensions,
|
|
getScale,
|
|
isElement,
|
|
isRTL
|
|
};
|
|
function observeMove(element, onMove) {
|
|
let io = null;
|
|
let timeoutId2;
|
|
const root = getDocumentElement(element);
|
|
function cleanup() {
|
|
var _io;
|
|
clearTimeout(timeoutId2);
|
|
(_io = io) == null || _io.disconnect();
|
|
io = null;
|
|
}
|
|
__name(cleanup, "cleanup");
|
|
function refresh(skip, threshold) {
|
|
if (skip === void 0) {
|
|
skip = false;
|
|
}
|
|
if (threshold === void 0) {
|
|
threshold = 1;
|
|
}
|
|
cleanup();
|
|
const {
|
|
left,
|
|
top,
|
|
width,
|
|
height
|
|
} = element.getBoundingClientRect();
|
|
if (!skip) {
|
|
onMove();
|
|
}
|
|
if (!width || !height) {
|
|
return;
|
|
}
|
|
const insetTop = floor(top);
|
|
const insetRight = floor(root.clientWidth - (left + width));
|
|
const insetBottom = floor(root.clientHeight - (top + height));
|
|
const insetLeft = floor(left);
|
|
const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
|
|
const options = {
|
|
rootMargin,
|
|
threshold: max(0, min(1, threshold)) || 1
|
|
};
|
|
let isFirstUpdate = true;
|
|
function handleObserve(entries) {
|
|
const ratio = entries[0].intersectionRatio;
|
|
if (ratio !== threshold) {
|
|
if (!isFirstUpdate) {
|
|
return refresh();
|
|
}
|
|
if (!ratio) {
|
|
timeoutId2 = setTimeout(() => {
|
|
refresh(false, 1e-7);
|
|
}, 1e3);
|
|
} else {
|
|
refresh(false, ratio);
|
|
}
|
|
}
|
|
isFirstUpdate = false;
|
|
}
|
|
__name(handleObserve, "handleObserve");
|
|
try {
|
|
io = new IntersectionObserver(handleObserve, {
|
|
...options,
|
|
// Handle <iframe>s
|
|
root: root.ownerDocument
|
|
});
|
|
} catch (e) {
|
|
io = new IntersectionObserver(handleObserve, options);
|
|
}
|
|
io.observe(element);
|
|
}
|
|
__name(refresh, "refresh");
|
|
refresh(true);
|
|
return cleanup;
|
|
}
|
|
__name(observeMove, "observeMove");
|
|
function autoUpdate(reference, floating, update, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
ancestorScroll = true,
|
|
ancestorResize = true,
|
|
elementResize = typeof ResizeObserver === "function",
|
|
layoutShift = typeof IntersectionObserver === "function",
|
|
animationFrame = false
|
|
} = options;
|
|
const referenceEl = unwrapElement(reference);
|
|
const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
|
|
ancestors.forEach((ancestor) => {
|
|
ancestorScroll && ancestor.addEventListener("scroll", update, {
|
|
passive: true
|
|
});
|
|
ancestorResize && ancestor.addEventListener("resize", update);
|
|
});
|
|
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
|
|
let reobserveFrame = -1;
|
|
let resizeObserver = null;
|
|
if (elementResize) {
|
|
resizeObserver = new ResizeObserver((_ref) => {
|
|
let [firstEntry] = _ref;
|
|
if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
|
|
resizeObserver.unobserve(floating);
|
|
cancelAnimationFrame(reobserveFrame);
|
|
reobserveFrame = requestAnimationFrame(() => {
|
|
var _resizeObserver;
|
|
(_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
|
|
});
|
|
}
|
|
update();
|
|
});
|
|
if (referenceEl && !animationFrame) {
|
|
resizeObserver.observe(referenceEl);
|
|
}
|
|
resizeObserver.observe(floating);
|
|
}
|
|
let frameId;
|
|
let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
|
|
if (animationFrame) {
|
|
frameLoop();
|
|
}
|
|
function frameLoop() {
|
|
const nextRefRect = getBoundingClientRect(reference);
|
|
if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
|
|
update();
|
|
}
|
|
prevRefRect = nextRefRect;
|
|
frameId = requestAnimationFrame(frameLoop);
|
|
}
|
|
__name(frameLoop, "frameLoop");
|
|
update();
|
|
return () => {
|
|
var _resizeObserver2;
|
|
ancestors.forEach((ancestor) => {
|
|
ancestorScroll && ancestor.removeEventListener("scroll", update);
|
|
ancestorResize && ancestor.removeEventListener("resize", update);
|
|
});
|
|
cleanupIo == null || cleanupIo();
|
|
(_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
|
|
resizeObserver = null;
|
|
if (animationFrame) {
|
|
cancelAnimationFrame(frameId);
|
|
}
|
|
};
|
|
}
|
|
__name(autoUpdate, "autoUpdate");
|
|
var detectOverflow2 = detectOverflow;
|
|
var offset2 = offset;
|
|
var shift2 = shift;
|
|
var flip2 = flip;
|
|
var size4 = size3;
|
|
var arrow2 = arrow;
|
|
var computePosition2 = /* @__PURE__ */ __name((reference, floating, options) => {
|
|
const cache3 = /* @__PURE__ */ new Map();
|
|
const mergedOptions = {
|
|
platform,
|
|
...options
|
|
};
|
|
const platformWithCache = {
|
|
...mergedOptions.platform,
|
|
_c: cache3
|
|
};
|
|
return computePosition(reference, floating, {
|
|
...mergedOptions,
|
|
platform: platformWithCache
|
|
});
|
|
}, "computePosition");
|
|
|
|
// node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs
|
|
var React19 = __toESM(require("react"), 1);
|
|
var import_react37 = require("react");
|
|
var ReactDOM2 = __toESM(require("react-dom"), 1);
|
|
var index = typeof document !== "undefined" ? import_react37.useLayoutEffect : import_react37.useEffect;
|
|
function deepEqual(a, b) {
|
|
if (a === b) {
|
|
return true;
|
|
}
|
|
if (typeof a !== typeof b) {
|
|
return false;
|
|
}
|
|
if (typeof a === "function" && a.toString() === b.toString()) {
|
|
return true;
|
|
}
|
|
let length;
|
|
let i;
|
|
let keys;
|
|
if (a && b && typeof a === "object") {
|
|
if (Array.isArray(a)) {
|
|
length = a.length;
|
|
if (length !== b.length)
|
|
return false;
|
|
for (i = length; i-- !== 0; ) {
|
|
if (!deepEqual(a[i], b[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
keys = Object.keys(a);
|
|
length = keys.length;
|
|
if (length !== Object.keys(b).length) {
|
|
return false;
|
|
}
|
|
for (i = length; i-- !== 0; ) {
|
|
if (!{}.hasOwnProperty.call(b, keys[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
for (i = length; i-- !== 0; ) {
|
|
const key = keys[i];
|
|
if (key === "_owner" && a.$$typeof) {
|
|
continue;
|
|
}
|
|
if (!deepEqual(a[key], b[key])) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
return a !== a && b !== b;
|
|
}
|
|
__name(deepEqual, "deepEqual");
|
|
function getDPR(element) {
|
|
if (typeof window === "undefined") {
|
|
return 1;
|
|
}
|
|
const win = element.ownerDocument.defaultView || window;
|
|
return win.devicePixelRatio || 1;
|
|
}
|
|
__name(getDPR, "getDPR");
|
|
function roundByDPR(element, value) {
|
|
const dpr = getDPR(element);
|
|
return Math.round(value * dpr) / dpr;
|
|
}
|
|
__name(roundByDPR, "roundByDPR");
|
|
function useLatestRef(value) {
|
|
const ref = React19.useRef(value);
|
|
index(() => {
|
|
ref.current = value;
|
|
});
|
|
return ref;
|
|
}
|
|
__name(useLatestRef, "useLatestRef");
|
|
function useFloating(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
placement = "bottom",
|
|
strategy = "absolute",
|
|
middleware = [],
|
|
platform: platform2,
|
|
elements: {
|
|
reference: externalReference,
|
|
floating: externalFloating
|
|
} = {},
|
|
transform = true,
|
|
whileElementsMounted,
|
|
open
|
|
} = options;
|
|
const [data, setData] = React19.useState({
|
|
x: 0,
|
|
y: 0,
|
|
strategy,
|
|
placement,
|
|
middlewareData: {},
|
|
isPositioned: false
|
|
});
|
|
const [latestMiddleware, setLatestMiddleware] = React19.useState(middleware);
|
|
if (!deepEqual(latestMiddleware, middleware)) {
|
|
setLatestMiddleware(middleware);
|
|
}
|
|
const [_reference, _setReference] = React19.useState(null);
|
|
const [_floating, _setFloating] = React19.useState(null);
|
|
const setReference = React19.useCallback((node) => {
|
|
if (node !== referenceRef.current) {
|
|
referenceRef.current = node;
|
|
_setReference(node);
|
|
}
|
|
}, []);
|
|
const setFloating = React19.useCallback((node) => {
|
|
if (node !== floatingRef.current) {
|
|
floatingRef.current = node;
|
|
_setFloating(node);
|
|
}
|
|
}, []);
|
|
const referenceEl = externalReference || _reference;
|
|
const floatingEl = externalFloating || _floating;
|
|
const referenceRef = React19.useRef(null);
|
|
const floatingRef = React19.useRef(null);
|
|
const dataRef = React19.useRef(data);
|
|
const hasWhileElementsMounted = whileElementsMounted != null;
|
|
const whileElementsMountedRef = useLatestRef(whileElementsMounted);
|
|
const platformRef = useLatestRef(platform2);
|
|
const update = React19.useCallback(() => {
|
|
if (!referenceRef.current || !floatingRef.current) {
|
|
return;
|
|
}
|
|
const config2 = {
|
|
placement,
|
|
strategy,
|
|
middleware: latestMiddleware
|
|
};
|
|
if (platformRef.current) {
|
|
config2.platform = platformRef.current;
|
|
}
|
|
computePosition2(referenceRef.current, floatingRef.current, config2).then((data2) => {
|
|
const fullData = {
|
|
...data2,
|
|
isPositioned: true
|
|
};
|
|
if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {
|
|
dataRef.current = fullData;
|
|
ReactDOM2.flushSync(() => {
|
|
setData(fullData);
|
|
});
|
|
}
|
|
});
|
|
}, [latestMiddleware, placement, strategy, platformRef]);
|
|
index(() => {
|
|
if (open === false && dataRef.current.isPositioned) {
|
|
dataRef.current.isPositioned = false;
|
|
setData((data2) => ({
|
|
...data2,
|
|
isPositioned: false
|
|
}));
|
|
}
|
|
}, [open]);
|
|
const isMountedRef = React19.useRef(false);
|
|
index(() => {
|
|
isMountedRef.current = true;
|
|
return () => {
|
|
isMountedRef.current = false;
|
|
};
|
|
}, []);
|
|
index(() => {
|
|
if (referenceEl)
|
|
referenceRef.current = referenceEl;
|
|
if (floatingEl)
|
|
floatingRef.current = floatingEl;
|
|
if (referenceEl && floatingEl) {
|
|
if (whileElementsMountedRef.current) {
|
|
return whileElementsMountedRef.current(referenceEl, floatingEl, update);
|
|
}
|
|
update();
|
|
}
|
|
}, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);
|
|
const refs = React19.useMemo(() => ({
|
|
reference: referenceRef,
|
|
floating: floatingRef,
|
|
setReference,
|
|
setFloating
|
|
}), [setReference, setFloating]);
|
|
const elements = React19.useMemo(() => ({
|
|
reference: referenceEl,
|
|
floating: floatingEl
|
|
}), [referenceEl, floatingEl]);
|
|
const floatingStyles = React19.useMemo(() => {
|
|
const initialStyles = {
|
|
position: strategy,
|
|
left: 0,
|
|
top: 0
|
|
};
|
|
if (!elements.floating) {
|
|
return initialStyles;
|
|
}
|
|
const x = roundByDPR(elements.floating, data.x);
|
|
const y = roundByDPR(elements.floating, data.y);
|
|
if (transform) {
|
|
return {
|
|
...initialStyles,
|
|
transform: "translate(" + x + "px, " + y + "px)",
|
|
...getDPR(elements.floating) >= 1.5 && {
|
|
willChange: "transform"
|
|
}
|
|
};
|
|
}
|
|
return {
|
|
position: strategy,
|
|
left: x,
|
|
top: y
|
|
};
|
|
}, [strategy, transform, elements.floating, data.x, data.y]);
|
|
return React19.useMemo(() => ({
|
|
...data,
|
|
update,
|
|
refs,
|
|
elements,
|
|
floatingStyles
|
|
}), [data, update, refs, elements, floatingStyles]);
|
|
}
|
|
__name(useFloating, "useFloating");
|
|
var arrow$1 = /* @__PURE__ */ __name((options) => {
|
|
function isRef(value) {
|
|
return {}.hasOwnProperty.call(value, "current");
|
|
}
|
|
__name(isRef, "isRef");
|
|
return {
|
|
name: "arrow",
|
|
options,
|
|
fn(state) {
|
|
const {
|
|
element,
|
|
padding
|
|
} = typeof options === "function" ? options(state) : options;
|
|
if (element && isRef(element)) {
|
|
if (element.current != null) {
|
|
return arrow2({
|
|
element: element.current,
|
|
padding
|
|
}).fn(state);
|
|
}
|
|
return {};
|
|
}
|
|
if (element) {
|
|
return arrow2({
|
|
element,
|
|
padding
|
|
}).fn(state);
|
|
}
|
|
return {};
|
|
}
|
|
};
|
|
}, "arrow$1");
|
|
var offset3 = /* @__PURE__ */ __name((options, deps) => ({
|
|
...offset2(options),
|
|
options: [options, deps]
|
|
}), "offset");
|
|
var shift3 = /* @__PURE__ */ __name((options, deps) => ({
|
|
...shift2(options),
|
|
options: [options, deps]
|
|
}), "shift");
|
|
var flip3 = /* @__PURE__ */ __name((options, deps) => ({
|
|
...flip2(options),
|
|
options: [options, deps]
|
|
}), "flip");
|
|
var size5 = /* @__PURE__ */ __name((options, deps) => ({
|
|
...size4(options),
|
|
options: [options, deps]
|
|
}), "size");
|
|
var arrow3 = /* @__PURE__ */ __name((options, deps) => ({
|
|
...arrow$1(options),
|
|
options: [options, deps]
|
|
}), "arrow");
|
|
|
|
// node_modules/@tamagui/floating/dist/esm/useFloating.mjs
|
|
var import_react38 = require("react");
|
|
var FloatingOverrideContext = (0, import_react38.createContext)(null);
|
|
var useFloating2 = /* @__PURE__ */ __name((props) => {
|
|
var _a;
|
|
return (_a = (0, import_react38.useContext)(FloatingOverrideContext) || useFloating) == null ? void 0 : _a(props);
|
|
}, "useFloating");
|
|
|
|
// node_modules/@tamagui/popper/dist/esm/Popper.mjs
|
|
var import_core28 = require("@tamagui/core");
|
|
var React20 = __toESM(require("react"), 1);
|
|
var import_react_native_web8 = __toESM(require_cjs20(), 1);
|
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
var PopperContext = (0, import_core28.createStyledContext)({});
|
|
var {
|
|
useStyledContext: usePopperContext,
|
|
Provider: PopperProvider
|
|
} = PopperContext;
|
|
var checkFloating = void 0;
|
|
function Popper(props) {
|
|
var _a;
|
|
const {
|
|
children,
|
|
size: size6,
|
|
strategy = "absolute",
|
|
placement = "bottom",
|
|
stayInFrame,
|
|
allowFlip,
|
|
offset: offset4,
|
|
__scopePopper
|
|
} = props, isMounted = (0, import_core28.useDidFinishSSR)(), [arrowEl, setArrow] = React20.useState(null), [arrowSize, setArrowSize] = React20.useState(0), offsetOptions = offset4 ?? arrowSize, floating = useFloating2({
|
|
strategy,
|
|
placement,
|
|
sameScrollView: false,
|
|
// this only takes effect on native
|
|
middleware: [stayInFrame ? shift3(typeof stayInFrame == "boolean" ? {} : stayInFrame) : null, allowFlip ? flip3(typeof allowFlip == "boolean" ? {} : allowFlip) : null, arrowEl ? arrow3({
|
|
element: arrowEl
|
|
}) : null, typeof offsetOptions < "u" ? offset3(offsetOptions) : null, checkFloating].filter(Boolean)
|
|
}), {
|
|
refs,
|
|
middlewareData,
|
|
// @ts-expect-error this comes from Tooltip for example
|
|
open,
|
|
floatingStyles
|
|
} = floating;
|
|
if (isWeb)
|
|
useIsomorphicLayoutEffect(() => {
|
|
if (open && refs.reference.current && refs.floating.current)
|
|
return autoUpdate(refs.reference.current, refs.floating.current, floating.update);
|
|
}, [open, floating.update, refs.floating, refs.reference]);
|
|
else {
|
|
const dimensions = (0, import_react_native_web8.useWindowDimensions)(), [keyboardOpen, setKeyboardOpen] = React20.useState(false);
|
|
React20.useEffect(() => {
|
|
const showSubscription = import_react_native_web8.Keyboard.addListener("keyboardDidShow", () => {
|
|
setKeyboardOpen(true);
|
|
}), hideSubscription = import_react_native_web8.Keyboard.addListener("keyboardDidHide", () => {
|
|
setKeyboardOpen(false);
|
|
});
|
|
return () => {
|
|
showSubscription.remove(), hideSubscription.remove();
|
|
};
|
|
}, []), useIsomorphicLayoutEffect(() => {
|
|
floating.update();
|
|
}, [dimensions, keyboardOpen]);
|
|
}
|
|
const popperContext = {
|
|
size: size6,
|
|
arrowRef: setArrow,
|
|
arrowStyle: middlewareData.arrow,
|
|
onArrowSize: setArrowSize,
|
|
isMounted,
|
|
scope: __scopePopper,
|
|
hasFloating: (_a = middlewareData.checkFloating) == null ? void 0 : _a.hasFloating,
|
|
...floating
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopperProvider, {
|
|
...popperContext,
|
|
children
|
|
});
|
|
}
|
|
__name(Popper, "Popper");
|
|
var PopperAnchor = YStack.extractable(React20.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
virtualRef,
|
|
__scopePopper,
|
|
...anchorProps
|
|
} = props, {
|
|
getReferenceProps,
|
|
refs
|
|
} = usePopperContext(__scopePopper), ref = React20.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref, refs.setReference);
|
|
if (React20.useEffect(() => {
|
|
virtualRef && refs.setReference(virtualRef.current);
|
|
}, [virtualRef]), virtualRef)
|
|
return null;
|
|
const stackProps = {
|
|
ref: composedRefs,
|
|
...anchorProps
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core28.View, {
|
|
...getReferenceProps ? getReferenceProps(stackProps) : stackProps
|
|
});
|
|
}));
|
|
var PopperContentFrame = (0, import_core28.styled)(ThemeableStack, {
|
|
name: "PopperContent",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
backgroundColor: "$background",
|
|
alignItems: "center",
|
|
radiused: true
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
padding: tokens2.space[val],
|
|
borderRadius: tokens2.radius[val]
|
|
})
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var PopperContent = React20.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
__scopePopper,
|
|
enableAnimationForPositionChange,
|
|
...rest
|
|
} = props, {
|
|
strategy,
|
|
placement,
|
|
refs,
|
|
x,
|
|
y,
|
|
getFloatingProps,
|
|
size: size6,
|
|
isMounted,
|
|
update,
|
|
floatingStyles,
|
|
hasFloating
|
|
} = usePopperContext(__scopePopper), contentRefs = useComposedRefs(refs.setFloating, forwardedRef);
|
|
let finalHasFloatingValue = false;
|
|
if (isAndroid) {
|
|
const initialRender = React20.useRef(true), finalHasFloating = React20.useRef(false);
|
|
hasFloating === false && (initialRender.current = false), initialRender.current || (finalHasFloating.current = hasFloating), finalHasFloatingValue = finalHasFloating.current;
|
|
}
|
|
const contents = React20.useMemo(() => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopperContentFrame, {
|
|
"data-placement": placement,
|
|
"data-strategy": strategy,
|
|
contain: "layout",
|
|
size: size6,
|
|
...rest
|
|
}, "popper-content-frame"), [placement, strategy, props]), [needsMeasure, setNeedsMeasure] = React20.useState(true);
|
|
React20.useEffect(() => {
|
|
(x || y) && setNeedsMeasure(false);
|
|
}, [x, y]), useIsomorphicLayoutEffect(() => {
|
|
isMounted && update();
|
|
}, [isMounted]);
|
|
let show = true;
|
|
if (isAndroid) {
|
|
const [show_, setShow] = React20.useState(false);
|
|
show = show_, React20.useEffect(() => {
|
|
finalHasFloatingValue && setShow(true);
|
|
}, [finalHasFloatingValue, x, y]);
|
|
}
|
|
if (!isMounted)
|
|
return null;
|
|
const frameProps = {
|
|
ref: contentRefs,
|
|
x: x || 0,
|
|
y: y || 0,
|
|
top: 0,
|
|
left: 0,
|
|
position: strategy,
|
|
opacity: show ? 1 : 0,
|
|
...enableAnimationForPositionChange && {
|
|
// apply animation but disable it on initial render to avoid animating from 0 to the first position
|
|
animation: rest.animation,
|
|
animateOnly: needsMeasure ? ["none"] : rest.animateOnly,
|
|
animatePresence: false
|
|
}
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_core28.Stack, {
|
|
...getFloatingProps ? getFloatingProps(frameProps) : frameProps,
|
|
children: contents
|
|
});
|
|
});
|
|
var PopperArrowFrame = (0, import_core28.styled)(YStack, {
|
|
name: "PopperArrow",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$background",
|
|
position: "relative"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var PopperArrowOuterFrame = (0, import_core28.styled)(YStack, {
|
|
name: "PopperArrowOuter",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
position: "absolute",
|
|
zIndex: 1e6,
|
|
pointerEvents: "none",
|
|
overflow: "hidden",
|
|
alignItems: "center",
|
|
justifyContent: "center"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var opposites = {
|
|
top: "bottom",
|
|
right: "left",
|
|
bottom: "top",
|
|
left: "right"
|
|
};
|
|
var PopperArrow = PopperArrowFrame.styleable(function(propsIn, forwardedRef) {
|
|
var _a, _b;
|
|
const {
|
|
__scopePopper,
|
|
...rest
|
|
} = propsIn, props = (0, import_core28.useProps)(rest), {
|
|
offset: offset4,
|
|
size: sizeProp,
|
|
borderWidth = 0,
|
|
...arrowProps
|
|
} = props, context = usePopperContext(__scopePopper), sizeVal = sizeProp ?? context.size, sizeValResolved = (0, import_core28.getVariableValue)(getSpace(sizeVal, {
|
|
shift: -2,
|
|
bounds: [2]
|
|
})), size6 = Math.max(0, +sizeValResolved), {
|
|
placement
|
|
} = context, refs = useComposedRefs(context.arrowRef, forwardedRef), x = ((_a = context.arrowStyle) == null ? void 0 : _a.x) || 0, y = ((_b = context.arrowStyle) == null ? void 0 : _b.y) || 0, primaryPlacement = placement ? placement.split("-")[0] : "top", arrowStyle = {
|
|
x,
|
|
y,
|
|
width: size6,
|
|
height: size6
|
|
}, innerArrowStyle = {}, isVertical = primaryPlacement === "bottom" || primaryPlacement === "top";
|
|
if (primaryPlacement) {
|
|
arrowStyle[isVertical ? "width" : "height"] = size6 * 2;
|
|
const oppSide = opposites[primaryPlacement];
|
|
oppSide && (arrowStyle[oppSide] = -size6, innerArrowStyle[oppSide] = size6 / 2), (oppSide === "top" || oppSide === "bottom") && (arrowStyle.left = 0), (oppSide === "left" || oppSide === "right") && (arrowStyle.top = 0), useIsomorphicLayoutEffect(() => {
|
|
var _a2;
|
|
(_a2 = context.onArrowSize) == null ? void 0 : _a2.call(context, size6);
|
|
}, [size6, context.onArrowSize]);
|
|
}
|
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopperArrowOuterFrame, {
|
|
ref: refs,
|
|
...arrowStyle,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopperArrowFrame, {
|
|
width: size6,
|
|
height: size6,
|
|
...arrowProps,
|
|
...innerArrowStyle,
|
|
rotate: "45deg",
|
|
...primaryPlacement === "bottom" && {
|
|
borderLeftWidth: borderWidth,
|
|
borderTopWidth: borderWidth
|
|
},
|
|
...primaryPlacement === "top" && {
|
|
borderBottomWidth: borderWidth,
|
|
borderRightWidth: borderWidth
|
|
},
|
|
...primaryPlacement === "right" && {
|
|
borderLeftWidth: borderWidth,
|
|
borderBottomWidth: borderWidth
|
|
},
|
|
...primaryPlacement === "left" && {
|
|
borderTopWidth: borderWidth,
|
|
borderRightWidth: borderWidth
|
|
}
|
|
})
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/popover/dist/esm/Popover.mjs
|
|
var React22 = __toESM(require("react"), 1);
|
|
var import_react_native_web9 = __toESM(require_cjs20(), 1);
|
|
|
|
// node_modules/@floating-ui/react/dist/floating-ui.react.mjs
|
|
var React21 = __toESM(require("react"), 1);
|
|
var import_react39 = require("react");
|
|
|
|
// node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs
|
|
function activeElement(doc) {
|
|
let activeElement2 = doc.activeElement;
|
|
while (((_activeElement = activeElement2) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {
|
|
var _activeElement;
|
|
activeElement2 = activeElement2.shadowRoot.activeElement;
|
|
}
|
|
return activeElement2;
|
|
}
|
|
__name(activeElement, "activeElement");
|
|
function contains(parent, child) {
|
|
if (!parent || !child) {
|
|
return false;
|
|
}
|
|
const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();
|
|
if (parent.contains(child)) {
|
|
return true;
|
|
}
|
|
if (rootNode && isShadowRoot(rootNode)) {
|
|
let next = child;
|
|
while (next) {
|
|
if (parent === next) {
|
|
return true;
|
|
}
|
|
next = next.parentNode || next.host;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
__name(contains, "contains");
|
|
function getPlatform() {
|
|
const uaData = navigator.userAgentData;
|
|
if (uaData != null && uaData.platform) {
|
|
return uaData.platform;
|
|
}
|
|
return navigator.platform;
|
|
}
|
|
__name(getPlatform, "getPlatform");
|
|
function getUserAgent() {
|
|
const uaData = navigator.userAgentData;
|
|
if (uaData && Array.isArray(uaData.brands)) {
|
|
return uaData.brands.map((_ref) => {
|
|
let {
|
|
brand,
|
|
version
|
|
} = _ref;
|
|
return brand + "/" + version;
|
|
}).join(" ");
|
|
}
|
|
return navigator.userAgent;
|
|
}
|
|
__name(getUserAgent, "getUserAgent");
|
|
function isVirtualClick(event) {
|
|
if (event.mozInputSource === 0 && event.isTrusted) {
|
|
return true;
|
|
}
|
|
if (isAndroid3() && event.pointerType) {
|
|
return event.type === "click" && event.buttons === 1;
|
|
}
|
|
return event.detail === 0 && !event.pointerType;
|
|
}
|
|
__name(isVirtualClick, "isVirtualClick");
|
|
function isVirtualPointerEvent(event) {
|
|
if (isJSDOM())
|
|
return false;
|
|
return !isAndroid3() && event.width === 0 && event.height === 0 || isAndroid3() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || // iOS VoiceOver returns 0.333• for width/height.
|
|
event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
|
|
}
|
|
__name(isVirtualPointerEvent, "isVirtualPointerEvent");
|
|
function isSafari() {
|
|
return /apple/i.test(navigator.vendor);
|
|
}
|
|
__name(isSafari, "isSafari");
|
|
function isAndroid3() {
|
|
const re = /android/i;
|
|
return re.test(getPlatform()) || re.test(getUserAgent());
|
|
}
|
|
__name(isAndroid3, "isAndroid");
|
|
function isMac() {
|
|
return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
|
|
}
|
|
__name(isMac, "isMac");
|
|
function isJSDOM() {
|
|
return getUserAgent().includes("jsdom/");
|
|
}
|
|
__name(isJSDOM, "isJSDOM");
|
|
function isMouseLikePointerType(pointerType, strict) {
|
|
const values = ["mouse", "pen"];
|
|
if (!strict) {
|
|
values.push("", void 0);
|
|
}
|
|
return values.includes(pointerType);
|
|
}
|
|
__name(isMouseLikePointerType, "isMouseLikePointerType");
|
|
function isReactEvent(event) {
|
|
return "nativeEvent" in event;
|
|
}
|
|
__name(isReactEvent, "isReactEvent");
|
|
function isRootElement(element) {
|
|
return element.matches("html,body");
|
|
}
|
|
__name(isRootElement, "isRootElement");
|
|
function getDocument(node) {
|
|
return (node == null ? void 0 : node.ownerDocument) || document;
|
|
}
|
|
__name(getDocument, "getDocument");
|
|
function isEventTargetWithin(event, node) {
|
|
if (node == null) {
|
|
return false;
|
|
}
|
|
if ("composedPath" in event) {
|
|
return event.composedPath().includes(node);
|
|
}
|
|
const e = event;
|
|
return e.target != null && node.contains(e.target);
|
|
}
|
|
__name(isEventTargetWithin, "isEventTargetWithin");
|
|
function getTarget(event) {
|
|
if ("composedPath" in event) {
|
|
return event.composedPath()[0];
|
|
}
|
|
return event.target;
|
|
}
|
|
__name(getTarget, "getTarget");
|
|
var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
|
|
function isTypeableElement(element) {
|
|
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
}
|
|
__name(isTypeableElement, "isTypeableElement");
|
|
function stopEvent(event) {
|
|
event.preventDefault();
|
|
event.stopPropagation();
|
|
}
|
|
__name(stopEvent, "stopEvent");
|
|
function isTypeableCombobox(element) {
|
|
if (!element)
|
|
return false;
|
|
return element.getAttribute("role") === "combobox" && isTypeableElement(element);
|
|
}
|
|
__name(isTypeableCombobox, "isTypeableCombobox");
|
|
|
|
// node_modules/@floating-ui/react/dist/floating-ui.react.mjs
|
|
var import_tabbable = __toESM(require_dist2(), 1);
|
|
var import_react_dom4 = require("react-dom");
|
|
var SafeReact = {
|
|
...React21
|
|
};
|
|
var useInsertionEffect = SafeReact.useInsertionEffect;
|
|
var useSafeInsertionEffect = useInsertionEffect || ((fn) => fn());
|
|
function useEffectEvent(callback) {
|
|
const ref = React21.useRef(() => {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
throw new Error("Cannot call an event handler while rendering.");
|
|
}
|
|
});
|
|
useSafeInsertionEffect(() => {
|
|
ref.current = callback;
|
|
});
|
|
return React21.useCallback(function() {
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return ref.current == null ? void 0 : ref.current(...args);
|
|
}, []);
|
|
}
|
|
__name(useEffectEvent, "useEffectEvent");
|
|
var ARROW_UP = "ArrowUp";
|
|
var ARROW_DOWN = "ArrowDown";
|
|
var ARROW_LEFT = "ArrowLeft";
|
|
var ARROW_RIGHT = "ArrowRight";
|
|
function isDifferentRow(index3, cols, prevRow) {
|
|
return Math.floor(index3 / cols) !== prevRow;
|
|
}
|
|
__name(isDifferentRow, "isDifferentRow");
|
|
function isIndexOutOfBounds(listRef, index3) {
|
|
return index3 < 0 || index3 >= listRef.current.length;
|
|
}
|
|
__name(isIndexOutOfBounds, "isIndexOutOfBounds");
|
|
function getMinIndex(listRef, disabledIndices) {
|
|
return findNonDisabledIndex(listRef, {
|
|
disabledIndices
|
|
});
|
|
}
|
|
__name(getMinIndex, "getMinIndex");
|
|
function getMaxIndex(listRef, disabledIndices) {
|
|
return findNonDisabledIndex(listRef, {
|
|
decrement: true,
|
|
startingIndex: listRef.current.length,
|
|
disabledIndices
|
|
});
|
|
}
|
|
__name(getMaxIndex, "getMaxIndex");
|
|
function findNonDisabledIndex(listRef, _temp) {
|
|
let {
|
|
startingIndex = -1,
|
|
decrement = false,
|
|
disabledIndices,
|
|
amount = 1
|
|
} = _temp === void 0 ? {} : _temp;
|
|
const list = listRef.current;
|
|
let index3 = startingIndex;
|
|
do {
|
|
index3 += decrement ? -amount : amount;
|
|
} while (index3 >= 0 && index3 <= list.length - 1 && isDisabled(list, index3, disabledIndices));
|
|
return index3;
|
|
}
|
|
__name(findNonDisabledIndex, "findNonDisabledIndex");
|
|
function getGridNavigatedIndex(elementsRef, _ref) {
|
|
let {
|
|
event,
|
|
orientation,
|
|
loop,
|
|
cols,
|
|
disabledIndices,
|
|
minIndex,
|
|
maxIndex,
|
|
prevIndex,
|
|
stopEvent: stop = false
|
|
} = _ref;
|
|
let nextIndex = prevIndex;
|
|
if (event.key === ARROW_UP) {
|
|
stop && stopEvent(event);
|
|
if (prevIndex === -1) {
|
|
nextIndex = maxIndex;
|
|
} else {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: nextIndex,
|
|
amount: cols,
|
|
decrement: true,
|
|
disabledIndices
|
|
});
|
|
if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {
|
|
const col = prevIndex % cols;
|
|
const maxCol = maxIndex % cols;
|
|
const offset4 = maxIndex - (maxCol - col);
|
|
if (maxCol === col) {
|
|
nextIndex = maxIndex;
|
|
} else {
|
|
nextIndex = maxCol > col ? offset4 : offset4 - cols;
|
|
}
|
|
}
|
|
}
|
|
if (isIndexOutOfBounds(elementsRef, nextIndex)) {
|
|
nextIndex = prevIndex;
|
|
}
|
|
}
|
|
if (event.key === ARROW_DOWN) {
|
|
stop && stopEvent(event);
|
|
if (prevIndex === -1) {
|
|
nextIndex = minIndex;
|
|
} else {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex,
|
|
amount: cols,
|
|
disabledIndices
|
|
});
|
|
if (loop && prevIndex + cols > maxIndex) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex % cols - cols,
|
|
amount: cols,
|
|
disabledIndices
|
|
});
|
|
}
|
|
}
|
|
if (isIndexOutOfBounds(elementsRef, nextIndex)) {
|
|
nextIndex = prevIndex;
|
|
}
|
|
}
|
|
if (orientation === "both") {
|
|
const prevRow = floor(prevIndex / cols);
|
|
if (event.key === ARROW_RIGHT) {
|
|
stop && stopEvent(event);
|
|
if (prevIndex % cols !== cols - 1) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex,
|
|
disabledIndices
|
|
});
|
|
if (loop && isDifferentRow(nextIndex, cols, prevRow)) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex - prevIndex % cols - 1,
|
|
disabledIndices
|
|
});
|
|
}
|
|
} else if (loop) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex - prevIndex % cols - 1,
|
|
disabledIndices
|
|
});
|
|
}
|
|
if (isDifferentRow(nextIndex, cols, prevRow)) {
|
|
nextIndex = prevIndex;
|
|
}
|
|
}
|
|
if (event.key === ARROW_LEFT) {
|
|
stop && stopEvent(event);
|
|
if (prevIndex % cols !== 0) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex,
|
|
decrement: true,
|
|
disabledIndices
|
|
});
|
|
if (loop && isDifferentRow(nextIndex, cols, prevRow)) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex + (cols - prevIndex % cols),
|
|
decrement: true,
|
|
disabledIndices
|
|
});
|
|
}
|
|
} else if (loop) {
|
|
nextIndex = findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex + (cols - prevIndex % cols),
|
|
decrement: true,
|
|
disabledIndices
|
|
});
|
|
}
|
|
if (isDifferentRow(nextIndex, cols, prevRow)) {
|
|
nextIndex = prevIndex;
|
|
}
|
|
}
|
|
const lastRow = floor(maxIndex / cols) === prevRow;
|
|
if (isIndexOutOfBounds(elementsRef, nextIndex)) {
|
|
if (loop && lastRow) {
|
|
nextIndex = event.key === ARROW_LEFT ? maxIndex : findNonDisabledIndex(elementsRef, {
|
|
startingIndex: prevIndex - prevIndex % cols - 1,
|
|
disabledIndices
|
|
});
|
|
} else {
|
|
nextIndex = prevIndex;
|
|
}
|
|
}
|
|
}
|
|
return nextIndex;
|
|
}
|
|
__name(getGridNavigatedIndex, "getGridNavigatedIndex");
|
|
function buildCellMap(sizes, cols, dense) {
|
|
const cellMap = [];
|
|
let startIndex = 0;
|
|
sizes.forEach((_ref2, index3) => {
|
|
let {
|
|
width,
|
|
height
|
|
} = _ref2;
|
|
if (width > cols) {
|
|
if (process.env.NODE_ENV !== "production") {
|
|
throw new Error("[Floating UI]: Invalid grid - item width at index " + index3 + " is greater than grid columns");
|
|
}
|
|
}
|
|
let itemPlaced = false;
|
|
if (dense) {
|
|
startIndex = 0;
|
|
}
|
|
while (!itemPlaced) {
|
|
const targetCells = [];
|
|
for (let i = 0; i < width; i++) {
|
|
for (let j = 0; j < height; j++) {
|
|
targetCells.push(startIndex + i + j * cols);
|
|
}
|
|
}
|
|
if (startIndex % cols + width <= cols && targetCells.every((cell) => cellMap[cell] == null)) {
|
|
targetCells.forEach((cell) => {
|
|
cellMap[cell] = index3;
|
|
});
|
|
itemPlaced = true;
|
|
} else {
|
|
startIndex++;
|
|
}
|
|
}
|
|
});
|
|
return [...cellMap];
|
|
}
|
|
__name(buildCellMap, "buildCellMap");
|
|
function getCellIndexOfCorner(index3, sizes, cellMap, cols, corner) {
|
|
if (index3 === -1)
|
|
return -1;
|
|
const firstCellIndex = cellMap.indexOf(index3);
|
|
const sizeItem = sizes[index3];
|
|
switch (corner) {
|
|
case "tl":
|
|
return firstCellIndex;
|
|
case "tr":
|
|
if (!sizeItem) {
|
|
return firstCellIndex;
|
|
}
|
|
return firstCellIndex + sizeItem.width - 1;
|
|
case "bl":
|
|
if (!sizeItem) {
|
|
return firstCellIndex;
|
|
}
|
|
return firstCellIndex + (sizeItem.height - 1) * cols;
|
|
case "br":
|
|
return cellMap.lastIndexOf(index3);
|
|
}
|
|
}
|
|
__name(getCellIndexOfCorner, "getCellIndexOfCorner");
|
|
function getCellIndices(indices, cellMap) {
|
|
return cellMap.flatMap((index3, cellIndex) => indices.includes(index3) ? [cellIndex] : []);
|
|
}
|
|
__name(getCellIndices, "getCellIndices");
|
|
function isDisabled(list, index3, disabledIndices) {
|
|
if (disabledIndices) {
|
|
return disabledIndices.includes(index3);
|
|
}
|
|
const element = list[index3];
|
|
return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
|
|
}
|
|
__name(isDisabled, "isDisabled");
|
|
var rafId = 0;
|
|
function enqueueFocus(el, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
preventScroll = false,
|
|
cancelPrevious = true,
|
|
sync = false
|
|
} = options;
|
|
cancelPrevious && cancelAnimationFrame(rafId);
|
|
const exec = /* @__PURE__ */ __name(() => el == null ? void 0 : el.focus({
|
|
preventScroll
|
|
}), "exec");
|
|
if (sync) {
|
|
exec();
|
|
} else {
|
|
rafId = requestAnimationFrame(exec);
|
|
}
|
|
}
|
|
__name(enqueueFocus, "enqueueFocus");
|
|
var index2 = typeof document !== "undefined" ? import_react39.useLayoutEffect : import_react39.useEffect;
|
|
var horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];
|
|
var verticalKeys = [ARROW_UP, ARROW_DOWN];
|
|
var allKeys = [...horizontalKeys, ...verticalKeys];
|
|
function _extends() {
|
|
_extends = Object.assign ? Object.assign.bind() : function(target) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
var source = arguments[i];
|
|
for (var key in source) {
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
}
|
|
return target;
|
|
};
|
|
return _extends.apply(this, arguments);
|
|
}
|
|
__name(_extends, "_extends");
|
|
var serverHandoffComplete = false;
|
|
var count = 0;
|
|
var genId = /* @__PURE__ */ __name(() => (
|
|
// Ensure the id is unique with multiple independent versions of Floating UI
|
|
// on <React 18
|
|
"floating-ui-" + Math.random().toString(36).slice(2, 6) + count++
|
|
), "genId");
|
|
function useFloatingId() {
|
|
const [id, setId] = React21.useState(() => serverHandoffComplete ? genId() : void 0);
|
|
index2(() => {
|
|
if (id == null) {
|
|
setId(genId());
|
|
}
|
|
}, []);
|
|
React21.useEffect(() => {
|
|
serverHandoffComplete = true;
|
|
}, []);
|
|
return id;
|
|
}
|
|
__name(useFloatingId, "useFloatingId");
|
|
var useReactId = SafeReact.useId;
|
|
var useId5 = useReactId || useFloatingId;
|
|
var devMessageSet;
|
|
if (process.env.NODE_ENV !== "production") {
|
|
devMessageSet = /* @__PURE__ */ new Set();
|
|
}
|
|
function warn() {
|
|
var _devMessageSet;
|
|
for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
messages[_key] = arguments[_key];
|
|
}
|
|
const message = "Floating UI: " + messages.join(" ");
|
|
if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {
|
|
var _devMessageSet2;
|
|
(_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);
|
|
console.warn(message);
|
|
}
|
|
}
|
|
__name(warn, "warn");
|
|
function error() {
|
|
var _devMessageSet3;
|
|
for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
messages[_key2] = arguments[_key2];
|
|
}
|
|
const message = "Floating UI: " + messages.join(" ");
|
|
if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {
|
|
var _devMessageSet4;
|
|
(_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);
|
|
console.error(message);
|
|
}
|
|
}
|
|
__name(error, "error");
|
|
function createPubSub() {
|
|
const map = /* @__PURE__ */ new Map();
|
|
return {
|
|
emit(event, data) {
|
|
var _map$get;
|
|
(_map$get = map.get(event)) == null || _map$get.forEach((handler) => handler(data));
|
|
},
|
|
on(event, listener) {
|
|
map.set(event, [...map.get(event) || [], listener]);
|
|
},
|
|
off(event, listener) {
|
|
var _map$get2;
|
|
map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter((l) => l !== listener)) || []);
|
|
}
|
|
};
|
|
}
|
|
__name(createPubSub, "createPubSub");
|
|
var FloatingNodeContext = /* @__PURE__ */ React21.createContext(null);
|
|
var FloatingTreeContext = /* @__PURE__ */ React21.createContext(null);
|
|
var useFloatingParentNodeId = /* @__PURE__ */ __name(() => {
|
|
var _React$useContext;
|
|
return ((_React$useContext = React21.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;
|
|
}, "useFloatingParentNodeId");
|
|
var useFloatingTree = /* @__PURE__ */ __name(() => React21.useContext(FloatingTreeContext), "useFloatingTree");
|
|
function createAttribute(name) {
|
|
return "data-floating-ui-" + name;
|
|
}
|
|
__name(createAttribute, "createAttribute");
|
|
function useLatestRef2(value) {
|
|
const ref = (0, import_react39.useRef)(value);
|
|
index2(() => {
|
|
ref.current = value;
|
|
});
|
|
return ref;
|
|
}
|
|
__name(useLatestRef2, "useLatestRef");
|
|
var safePolygonIdentifier = /* @__PURE__ */ createAttribute("safe-polygon");
|
|
function getDelay(value, prop, pointerType) {
|
|
if (pointerType && !isMouseLikePointerType(pointerType)) {
|
|
return 0;
|
|
}
|
|
if (typeof value === "number") {
|
|
return value;
|
|
}
|
|
return value == null ? void 0 : value[prop];
|
|
}
|
|
__name(getDelay, "getDelay");
|
|
function useHover(context, props) {
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
dataRef,
|
|
events,
|
|
elements: {
|
|
domReference,
|
|
floating
|
|
}
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
delay = 0,
|
|
handleClose = null,
|
|
mouseOnly = false,
|
|
restMs = 0,
|
|
move = true
|
|
} = props;
|
|
const tree = useFloatingTree();
|
|
const parentId = useFloatingParentNodeId();
|
|
const handleCloseRef = useLatestRef2(handleClose);
|
|
const delayRef = useLatestRef2(delay);
|
|
const pointerTypeRef = React21.useRef();
|
|
const timeoutRef = React21.useRef(-1);
|
|
const handlerRef = React21.useRef();
|
|
const restTimeoutRef = React21.useRef(-1);
|
|
const blockMouseMoveRef = React21.useRef(true);
|
|
const performedPointerEventsMutationRef = React21.useRef(false);
|
|
const unbindMouseMoveRef = React21.useRef(() => {
|
|
});
|
|
const isHoverOpen = React21.useCallback(() => {
|
|
var _dataRef$current$open;
|
|
const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;
|
|
return (type == null ? void 0 : type.includes("mouse")) && type !== "mousedown";
|
|
}, [dataRef]);
|
|
React21.useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
function onOpenChange2(_ref) {
|
|
let {
|
|
open: open2
|
|
} = _ref;
|
|
if (!open2) {
|
|
clearTimeout(timeoutRef.current);
|
|
clearTimeout(restTimeoutRef.current);
|
|
blockMouseMoveRef.current = true;
|
|
}
|
|
}
|
|
__name(onOpenChange2, "onOpenChange");
|
|
events.on("openchange", onOpenChange2);
|
|
return () => {
|
|
events.off("openchange", onOpenChange2);
|
|
};
|
|
}, [enabled, events]);
|
|
React21.useEffect(() => {
|
|
if (!enabled || !handleCloseRef.current || !open) {
|
|
return;
|
|
}
|
|
function onLeave(event) {
|
|
if (isHoverOpen()) {
|
|
onOpenChange(false, event, "hover");
|
|
}
|
|
}
|
|
__name(onLeave, "onLeave");
|
|
const html = getDocument(floating).documentElement;
|
|
html.addEventListener("mouseleave", onLeave);
|
|
return () => {
|
|
html.removeEventListener("mouseleave", onLeave);
|
|
};
|
|
}, [floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);
|
|
const closeWithDelay = React21.useCallback(function(event, runElseBranch, reason) {
|
|
if (runElseBranch === void 0) {
|
|
runElseBranch = true;
|
|
}
|
|
if (reason === void 0) {
|
|
reason = "hover";
|
|
}
|
|
const closeDelay = getDelay(delayRef.current, "close", pointerTypeRef.current);
|
|
if (closeDelay && !handlerRef.current) {
|
|
clearTimeout(timeoutRef.current);
|
|
timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);
|
|
} else if (runElseBranch) {
|
|
clearTimeout(timeoutRef.current);
|
|
onOpenChange(false, event, reason);
|
|
}
|
|
}, [delayRef, onOpenChange]);
|
|
const cleanupMouseMoveHandler = useEffectEvent(() => {
|
|
unbindMouseMoveRef.current();
|
|
handlerRef.current = void 0;
|
|
});
|
|
const clearPointerEvents = useEffectEvent(() => {
|
|
if (performedPointerEventsMutationRef.current) {
|
|
const body = getDocument(floating).body;
|
|
body.style.pointerEvents = "";
|
|
body.removeAttribute(safePolygonIdentifier);
|
|
performedPointerEventsMutationRef.current = false;
|
|
}
|
|
});
|
|
React21.useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
function isClickLikeOpenEvent() {
|
|
return dataRef.current.openEvent ? ["click", "mousedown"].includes(dataRef.current.openEvent.type) : false;
|
|
}
|
|
__name(isClickLikeOpenEvent, "isClickLikeOpenEvent");
|
|
function onMouseEnter(event) {
|
|
clearTimeout(timeoutRef.current);
|
|
blockMouseMoveRef.current = false;
|
|
if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, "open")) {
|
|
return;
|
|
}
|
|
const openDelay = getDelay(delayRef.current, "open", pointerTypeRef.current);
|
|
if (openDelay) {
|
|
timeoutRef.current = window.setTimeout(() => {
|
|
onOpenChange(true, event, "hover");
|
|
}, openDelay);
|
|
} else {
|
|
onOpenChange(true, event, "hover");
|
|
}
|
|
}
|
|
__name(onMouseEnter, "onMouseEnter");
|
|
function onMouseLeave(event) {
|
|
if (isClickLikeOpenEvent())
|
|
return;
|
|
unbindMouseMoveRef.current();
|
|
const doc = getDocument(floating);
|
|
clearTimeout(restTimeoutRef.current);
|
|
if (handleCloseRef.current && dataRef.current.floatingContext) {
|
|
if (!open) {
|
|
clearTimeout(timeoutRef.current);
|
|
}
|
|
handlerRef.current = handleCloseRef.current({
|
|
...dataRef.current.floatingContext,
|
|
tree,
|
|
x: event.clientX,
|
|
y: event.clientY,
|
|
onClose() {
|
|
clearPointerEvents();
|
|
cleanupMouseMoveHandler();
|
|
closeWithDelay(event, true, "safe-polygon");
|
|
}
|
|
});
|
|
const handler = handlerRef.current;
|
|
doc.addEventListener("mousemove", handler);
|
|
unbindMouseMoveRef.current = () => {
|
|
doc.removeEventListener("mousemove", handler);
|
|
};
|
|
return;
|
|
}
|
|
const shouldClose = pointerTypeRef.current === "touch" ? !contains(floating, event.relatedTarget) : true;
|
|
if (shouldClose) {
|
|
closeWithDelay(event);
|
|
}
|
|
}
|
|
__name(onMouseLeave, "onMouseLeave");
|
|
function onScrollMouseLeave(event) {
|
|
if (isClickLikeOpenEvent())
|
|
return;
|
|
if (!dataRef.current.floatingContext)
|
|
return;
|
|
handleCloseRef.current == null || handleCloseRef.current({
|
|
...dataRef.current.floatingContext,
|
|
tree,
|
|
x: event.clientX,
|
|
y: event.clientY,
|
|
onClose() {
|
|
clearPointerEvents();
|
|
cleanupMouseMoveHandler();
|
|
closeWithDelay(event);
|
|
}
|
|
})(event);
|
|
}
|
|
__name(onScrollMouseLeave, "onScrollMouseLeave");
|
|
if (isElement(domReference)) {
|
|
const ref = domReference;
|
|
open && ref.addEventListener("mouseleave", onScrollMouseLeave);
|
|
floating == null || floating.addEventListener("mouseleave", onScrollMouseLeave);
|
|
move && ref.addEventListener("mousemove", onMouseEnter, {
|
|
once: true
|
|
});
|
|
ref.addEventListener("mouseenter", onMouseEnter);
|
|
ref.addEventListener("mouseleave", onMouseLeave);
|
|
return () => {
|
|
open && ref.removeEventListener("mouseleave", onScrollMouseLeave);
|
|
floating == null || floating.removeEventListener("mouseleave", onScrollMouseLeave);
|
|
move && ref.removeEventListener("mousemove", onMouseEnter);
|
|
ref.removeEventListener("mouseenter", onMouseEnter);
|
|
ref.removeEventListener("mouseleave", onMouseLeave);
|
|
};
|
|
}
|
|
}, [domReference, floating, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, tree, delayRef, handleCloseRef, dataRef]);
|
|
index2(() => {
|
|
var _handleCloseRef$curre;
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {
|
|
const body = getDocument(floating).body;
|
|
body.setAttribute(safePolygonIdentifier, "");
|
|
body.style.pointerEvents = "none";
|
|
performedPointerEventsMutationRef.current = true;
|
|
if (isElement(domReference) && floating) {
|
|
var _tree$nodesRef$curren;
|
|
const ref = domReference;
|
|
const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find((node) => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;
|
|
if (parentFloating) {
|
|
parentFloating.style.pointerEvents = "";
|
|
}
|
|
ref.style.pointerEvents = "auto";
|
|
floating.style.pointerEvents = "auto";
|
|
return () => {
|
|
ref.style.pointerEvents = "";
|
|
floating.style.pointerEvents = "";
|
|
};
|
|
}
|
|
}
|
|
}, [enabled, open, parentId, floating, domReference, tree, handleCloseRef, isHoverOpen]);
|
|
index2(() => {
|
|
if (!open) {
|
|
pointerTypeRef.current = void 0;
|
|
cleanupMouseMoveHandler();
|
|
clearPointerEvents();
|
|
}
|
|
}, [open, cleanupMouseMoveHandler, clearPointerEvents]);
|
|
React21.useEffect(() => {
|
|
return () => {
|
|
cleanupMouseMoveHandler();
|
|
clearTimeout(timeoutRef.current);
|
|
clearTimeout(restTimeoutRef.current);
|
|
clearPointerEvents();
|
|
};
|
|
}, [enabled, domReference, cleanupMouseMoveHandler, clearPointerEvents]);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
function setPointerRef(event) {
|
|
pointerTypeRef.current = event.pointerType;
|
|
}
|
|
__name(setPointerRef, "setPointerRef");
|
|
return {
|
|
reference: {
|
|
onPointerDown: setPointerRef,
|
|
onPointerEnter: setPointerRef,
|
|
onMouseMove(event) {
|
|
function handleMouseMove() {
|
|
if (!blockMouseMoveRef.current) {
|
|
onOpenChange(true, event.nativeEvent, "hover");
|
|
}
|
|
}
|
|
__name(handleMouseMove, "handleMouseMove");
|
|
if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {
|
|
return;
|
|
}
|
|
if (open || restMs === 0) {
|
|
return;
|
|
}
|
|
clearTimeout(restTimeoutRef.current);
|
|
if (pointerTypeRef.current === "touch") {
|
|
handleMouseMove();
|
|
} else {
|
|
restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);
|
|
}
|
|
}
|
|
},
|
|
floating: {
|
|
onMouseEnter() {
|
|
clearTimeout(timeoutRef.current);
|
|
},
|
|
onMouseLeave(event) {
|
|
closeWithDelay(event.nativeEvent, false);
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, mouseOnly, open, restMs, onOpenChange, closeWithDelay]);
|
|
}
|
|
__name(useHover, "useHover");
|
|
var NOOP = /* @__PURE__ */ __name(() => {
|
|
}, "NOOP");
|
|
var FloatingDelayGroupContext = /* @__PURE__ */ React21.createContext({
|
|
delay: 0,
|
|
initialDelay: 0,
|
|
timeoutMs: 0,
|
|
currentId: null,
|
|
setCurrentId: NOOP,
|
|
setState: NOOP,
|
|
isInstantPhase: false
|
|
});
|
|
var useDelayGroupContext = /* @__PURE__ */ __name(() => React21.useContext(FloatingDelayGroupContext), "useDelayGroupContext");
|
|
function FloatingDelayGroup(props) {
|
|
const {
|
|
children,
|
|
delay,
|
|
timeoutMs = 0
|
|
} = props;
|
|
const [state, setState] = React21.useReducer((prev, next) => ({
|
|
...prev,
|
|
...next
|
|
}), {
|
|
delay,
|
|
timeoutMs,
|
|
initialDelay: delay,
|
|
currentId: null,
|
|
isInstantPhase: false
|
|
});
|
|
const initialCurrentIdRef = React21.useRef(null);
|
|
const setCurrentId = React21.useCallback((currentId) => {
|
|
setState({
|
|
currentId
|
|
});
|
|
}, []);
|
|
index2(() => {
|
|
if (state.currentId) {
|
|
if (initialCurrentIdRef.current === null) {
|
|
initialCurrentIdRef.current = state.currentId;
|
|
} else if (!state.isInstantPhase) {
|
|
setState({
|
|
isInstantPhase: true
|
|
});
|
|
}
|
|
} else {
|
|
if (state.isInstantPhase) {
|
|
setState({
|
|
isInstantPhase: false
|
|
});
|
|
}
|
|
initialCurrentIdRef.current = null;
|
|
}
|
|
}, [state.currentId, state.isInstantPhase]);
|
|
return /* @__PURE__ */ React21.createElement(FloatingDelayGroupContext.Provider, {
|
|
value: React21.useMemo(() => ({
|
|
...state,
|
|
setState,
|
|
setCurrentId
|
|
}), [state, setCurrentId])
|
|
}, children);
|
|
}
|
|
__name(FloatingDelayGroup, "FloatingDelayGroup");
|
|
function useDelayGroup(context, options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
floatingId
|
|
} = context;
|
|
const {
|
|
id: optionId
|
|
} = options;
|
|
const id = optionId != null ? optionId : floatingId;
|
|
const groupContext = useDelayGroupContext();
|
|
const {
|
|
currentId,
|
|
setCurrentId,
|
|
initialDelay,
|
|
setState,
|
|
timeoutMs
|
|
} = groupContext;
|
|
index2(() => {
|
|
if (!currentId)
|
|
return;
|
|
setState({
|
|
delay: {
|
|
open: 1,
|
|
close: getDelay(initialDelay, "close")
|
|
}
|
|
});
|
|
if (currentId !== id) {
|
|
onOpenChange(false);
|
|
}
|
|
}, [id, onOpenChange, setState, currentId, initialDelay]);
|
|
index2(() => {
|
|
function unset() {
|
|
onOpenChange(false);
|
|
setState({
|
|
delay: initialDelay,
|
|
currentId: null
|
|
});
|
|
}
|
|
__name(unset, "unset");
|
|
if (!currentId)
|
|
return;
|
|
if (!open && currentId === id) {
|
|
if (timeoutMs) {
|
|
const timeout = window.setTimeout(unset, timeoutMs);
|
|
return () => {
|
|
clearTimeout(timeout);
|
|
};
|
|
}
|
|
unset();
|
|
}
|
|
}, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);
|
|
index2(() => {
|
|
if (setCurrentId === NOOP || !open)
|
|
return;
|
|
setCurrentId(id);
|
|
}, [open, setCurrentId, id]);
|
|
return groupContext;
|
|
}
|
|
__name(useDelayGroup, "useDelayGroup");
|
|
function getAncestors(nodes, id) {
|
|
var _nodes$find;
|
|
let allAncestors = [];
|
|
let currentParentId = (_nodes$find = nodes.find((node) => node.id === id)) == null ? void 0 : _nodes$find.parentId;
|
|
while (currentParentId) {
|
|
const currentNode = nodes.find((node) => node.id === currentParentId);
|
|
currentParentId = currentNode == null ? void 0 : currentNode.parentId;
|
|
if (currentNode) {
|
|
allAncestors = allAncestors.concat(currentNode);
|
|
}
|
|
}
|
|
return allAncestors;
|
|
}
|
|
__name(getAncestors, "getAncestors");
|
|
function getChildren(nodes, id) {
|
|
let allChildren = nodes.filter((node) => {
|
|
var _node$context;
|
|
return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);
|
|
});
|
|
let currentChildren = allChildren;
|
|
while (currentChildren.length) {
|
|
currentChildren = nodes.filter((node) => {
|
|
var _currentChildren;
|
|
return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some((n) => {
|
|
var _node$context2;
|
|
return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);
|
|
});
|
|
});
|
|
allChildren = allChildren.concat(currentChildren);
|
|
}
|
|
return allChildren;
|
|
}
|
|
__name(getChildren, "getChildren");
|
|
function getDeepestNode(nodes, id) {
|
|
let deepestNodeId;
|
|
let maxDepth = -1;
|
|
function findDeepest(nodeId, depth) {
|
|
if (depth > maxDepth) {
|
|
deepestNodeId = nodeId;
|
|
maxDepth = depth;
|
|
}
|
|
const children = getChildren(nodes, nodeId);
|
|
children.forEach((child) => {
|
|
findDeepest(child.id, depth + 1);
|
|
});
|
|
}
|
|
__name(findDeepest, "findDeepest");
|
|
findDeepest(id, 0);
|
|
return nodes.find((node) => node.id === deepestNodeId);
|
|
}
|
|
__name(getDeepestNode, "getDeepestNode");
|
|
var counterMap = /* @__PURE__ */ new WeakMap();
|
|
var uncontrolledElementsSet = /* @__PURE__ */ new WeakSet();
|
|
var markerMap = {};
|
|
var lockCount = 0;
|
|
var supportsInert = /* @__PURE__ */ __name(() => typeof HTMLElement !== "undefined" && "inert" in HTMLElement.prototype, "supportsInert");
|
|
var unwrapHost = /* @__PURE__ */ __name((node) => node && (node.host || unwrapHost(node.parentNode)), "unwrapHost");
|
|
var correctElements = /* @__PURE__ */ __name((parent, targets) => targets.map((target) => {
|
|
if (parent.contains(target)) {
|
|
return target;
|
|
}
|
|
const correctedTarget = unwrapHost(target);
|
|
if (parent.contains(correctedTarget)) {
|
|
return correctedTarget;
|
|
}
|
|
return null;
|
|
}).filter((x) => x != null), "correctElements");
|
|
function applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {
|
|
const markerName = "data-floating-ui-inert";
|
|
const controlAttribute = inert ? "inert" : ariaHidden ? "aria-hidden" : null;
|
|
const avoidElements = correctElements(body, uncorrectedAvoidElements);
|
|
const elementsToKeep = /* @__PURE__ */ new Set();
|
|
const elementsToStop = new Set(avoidElements);
|
|
const hiddenElements = [];
|
|
if (!markerMap[markerName]) {
|
|
markerMap[markerName] = /* @__PURE__ */ new WeakMap();
|
|
}
|
|
const markerCounter = markerMap[markerName];
|
|
avoidElements.forEach(keep);
|
|
deep(body);
|
|
elementsToKeep.clear();
|
|
function keep(el) {
|
|
if (!el || elementsToKeep.has(el)) {
|
|
return;
|
|
}
|
|
elementsToKeep.add(el);
|
|
el.parentNode && keep(el.parentNode);
|
|
}
|
|
__name(keep, "keep");
|
|
function deep(parent) {
|
|
if (!parent || elementsToStop.has(parent)) {
|
|
return;
|
|
}
|
|
[].forEach.call(parent.children, (node) => {
|
|
if (getNodeName(node) === "script")
|
|
return;
|
|
if (elementsToKeep.has(node)) {
|
|
deep(node);
|
|
} else {
|
|
const attr2 = controlAttribute ? node.getAttribute(controlAttribute) : null;
|
|
const alreadyHidden = attr2 !== null && attr2 !== "false";
|
|
const counterValue = (counterMap.get(node) || 0) + 1;
|
|
const markerValue = (markerCounter.get(node) || 0) + 1;
|
|
counterMap.set(node, counterValue);
|
|
markerCounter.set(node, markerValue);
|
|
hiddenElements.push(node);
|
|
if (counterValue === 1 && alreadyHidden) {
|
|
uncontrolledElementsSet.add(node);
|
|
}
|
|
if (markerValue === 1) {
|
|
node.setAttribute(markerName, "");
|
|
}
|
|
if (!alreadyHidden && controlAttribute) {
|
|
node.setAttribute(controlAttribute, "true");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
__name(deep, "deep");
|
|
lockCount++;
|
|
return () => {
|
|
hiddenElements.forEach((element) => {
|
|
const counterValue = (counterMap.get(element) || 0) - 1;
|
|
const markerValue = (markerCounter.get(element) || 0) - 1;
|
|
counterMap.set(element, counterValue);
|
|
markerCounter.set(element, markerValue);
|
|
if (!counterValue) {
|
|
if (!uncontrolledElementsSet.has(element) && controlAttribute) {
|
|
element.removeAttribute(controlAttribute);
|
|
}
|
|
uncontrolledElementsSet.delete(element);
|
|
}
|
|
if (!markerValue) {
|
|
element.removeAttribute(markerName);
|
|
}
|
|
});
|
|
lockCount--;
|
|
if (!lockCount) {
|
|
counterMap = /* @__PURE__ */ new WeakMap();
|
|
counterMap = /* @__PURE__ */ new WeakMap();
|
|
uncontrolledElementsSet = /* @__PURE__ */ new WeakSet();
|
|
markerMap = {};
|
|
}
|
|
};
|
|
}
|
|
__name(applyAttributeToOthers, "applyAttributeToOthers");
|
|
function markOthers(avoidElements, ariaHidden, inert) {
|
|
if (ariaHidden === void 0) {
|
|
ariaHidden = false;
|
|
}
|
|
if (inert === void 0) {
|
|
inert = false;
|
|
}
|
|
const body = getDocument(avoidElements[0]).body;
|
|
return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll("[aria-live]"))), body, ariaHidden, inert);
|
|
}
|
|
__name(markOthers, "markOthers");
|
|
var getTabbableOptions = /* @__PURE__ */ __name(() => ({
|
|
getShadowRoot: true,
|
|
displayCheck: (
|
|
// JSDOM does not support the `tabbable` library. To solve this we can
|
|
// check if `ResizeObserver` is a real function (not polyfilled), which
|
|
// determines if the current environment is JSDOM-like.
|
|
typeof ResizeObserver === "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
|
|
)
|
|
}), "getTabbableOptions");
|
|
function getTabbableIn(container, direction) {
|
|
const allTabbable = (0, import_tabbable.tabbable)(container, getTabbableOptions());
|
|
if (direction === "prev") {
|
|
allTabbable.reverse();
|
|
}
|
|
const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));
|
|
const nextTabbableElements = allTabbable.slice(activeIndex + 1);
|
|
return nextTabbableElements[0];
|
|
}
|
|
__name(getTabbableIn, "getTabbableIn");
|
|
function getNextTabbable() {
|
|
return getTabbableIn(document.body, "next");
|
|
}
|
|
__name(getNextTabbable, "getNextTabbable");
|
|
function getPreviousTabbable() {
|
|
return getTabbableIn(document.body, "prev");
|
|
}
|
|
__name(getPreviousTabbable, "getPreviousTabbable");
|
|
function isOutsideEvent(event, container) {
|
|
const containerElement = container || event.currentTarget;
|
|
const relatedTarget = event.relatedTarget;
|
|
return !relatedTarget || !contains(containerElement, relatedTarget);
|
|
}
|
|
__name(isOutsideEvent, "isOutsideEvent");
|
|
function disableFocusInside(container) {
|
|
const tabbableElements = (0, import_tabbable.tabbable)(container, getTabbableOptions());
|
|
tabbableElements.forEach((element) => {
|
|
element.dataset.tabindex = element.getAttribute("tabindex") || "";
|
|
element.setAttribute("tabindex", "-1");
|
|
});
|
|
}
|
|
__name(disableFocusInside, "disableFocusInside");
|
|
function enableFocusInside(container) {
|
|
const elements = container.querySelectorAll("[data-tabindex]");
|
|
elements.forEach((element) => {
|
|
const tabindex = element.dataset.tabindex;
|
|
delete element.dataset.tabindex;
|
|
if (tabindex) {
|
|
element.setAttribute("tabindex", tabindex);
|
|
} else {
|
|
element.removeAttribute("tabindex");
|
|
}
|
|
});
|
|
}
|
|
__name(enableFocusInside, "enableFocusInside");
|
|
var HIDDEN_STYLES = {
|
|
border: 0,
|
|
clip: "rect(0 0 0 0)",
|
|
height: "1px",
|
|
margin: "-1px",
|
|
overflow: "hidden",
|
|
padding: 0,
|
|
position: "fixed",
|
|
whiteSpace: "nowrap",
|
|
width: "1px",
|
|
top: 0,
|
|
left: 0
|
|
};
|
|
var timeoutId;
|
|
function setActiveElementOnTab(event) {
|
|
if (event.key === "Tab") {
|
|
event.target;
|
|
clearTimeout(timeoutId);
|
|
}
|
|
}
|
|
__name(setActiveElementOnTab, "setActiveElementOnTab");
|
|
var FocusGuard = /* @__PURE__ */ React21.forwardRef(/* @__PURE__ */ __name(function FocusGuard2(props, ref) {
|
|
const [role, setRole] = React21.useState();
|
|
index2(() => {
|
|
if (isSafari()) {
|
|
setRole("button");
|
|
}
|
|
document.addEventListener("keydown", setActiveElementOnTab);
|
|
return () => {
|
|
document.removeEventListener("keydown", setActiveElementOnTab);
|
|
};
|
|
}, []);
|
|
const restProps = {
|
|
ref,
|
|
tabIndex: 0,
|
|
// Role is only for VoiceOver
|
|
role,
|
|
"aria-hidden": role ? void 0 : true,
|
|
[createAttribute("focus-guard")]: "",
|
|
style: HIDDEN_STYLES
|
|
};
|
|
return /* @__PURE__ */ React21.createElement("span", _extends({}, props, restProps));
|
|
}, "FocusGuard"));
|
|
var PortalContext = /* @__PURE__ */ React21.createContext(null);
|
|
var attr = /* @__PURE__ */ createAttribute("portal");
|
|
function useFloatingPortalNode(props) {
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
id,
|
|
root
|
|
} = props;
|
|
const uniqueId = useId5();
|
|
const portalContext = usePortalContext2();
|
|
const [portalNode, setPortalNode] = React21.useState(null);
|
|
const portalNodeRef = React21.useRef(null);
|
|
index2(() => {
|
|
return () => {
|
|
portalNode == null || portalNode.remove();
|
|
queueMicrotask(() => {
|
|
portalNodeRef.current = null;
|
|
});
|
|
};
|
|
}, [portalNode]);
|
|
index2(() => {
|
|
if (!uniqueId)
|
|
return;
|
|
if (portalNodeRef.current)
|
|
return;
|
|
const existingIdRoot = id ? document.getElementById(id) : null;
|
|
if (!existingIdRoot)
|
|
return;
|
|
const subRoot = document.createElement("div");
|
|
subRoot.id = uniqueId;
|
|
subRoot.setAttribute(attr, "");
|
|
existingIdRoot.appendChild(subRoot);
|
|
portalNodeRef.current = subRoot;
|
|
setPortalNode(subRoot);
|
|
}, [id, uniqueId]);
|
|
index2(() => {
|
|
if (!uniqueId)
|
|
return;
|
|
if (portalNodeRef.current)
|
|
return;
|
|
let container = root || (portalContext == null ? void 0 : portalContext.portalNode);
|
|
if (container && !isElement(container))
|
|
container = container.current;
|
|
container = container || document.body;
|
|
let idWrapper = null;
|
|
if (id) {
|
|
idWrapper = document.createElement("div");
|
|
idWrapper.id = id;
|
|
container.appendChild(idWrapper);
|
|
}
|
|
const subRoot = document.createElement("div");
|
|
subRoot.id = uniqueId;
|
|
subRoot.setAttribute(attr, "");
|
|
container = idWrapper || container;
|
|
container.appendChild(subRoot);
|
|
portalNodeRef.current = subRoot;
|
|
setPortalNode(subRoot);
|
|
}, [id, root, uniqueId, portalContext]);
|
|
return portalNode;
|
|
}
|
|
__name(useFloatingPortalNode, "useFloatingPortalNode");
|
|
function FloatingPortal(props) {
|
|
const {
|
|
children,
|
|
id,
|
|
root = null,
|
|
preserveTabOrder = true
|
|
} = props;
|
|
const portalNode = useFloatingPortalNode({
|
|
id,
|
|
root
|
|
});
|
|
const [focusManagerState, setFocusManagerState] = React21.useState(null);
|
|
const beforeOutsideRef = React21.useRef(null);
|
|
const afterOutsideRef = React21.useRef(null);
|
|
const beforeInsideRef = React21.useRef(null);
|
|
const afterInsideRef = React21.useRef(null);
|
|
const shouldRenderGuards = (
|
|
// The FocusManager and therefore floating element are currently open/
|
|
// rendered.
|
|
!!focusManagerState && // Guards are only for non-modal focus management.
|
|
!focusManagerState.modal && // Don't render if unmount is transitioning.
|
|
focusManagerState.open && preserveTabOrder && !!(root || portalNode)
|
|
);
|
|
React21.useEffect(() => {
|
|
if (!portalNode || !preserveTabOrder || focusManagerState != null && focusManagerState.modal) {
|
|
return;
|
|
}
|
|
function onFocus(event) {
|
|
if (portalNode && isOutsideEvent(event)) {
|
|
const focusing = event.type === "focusin";
|
|
const manageFocus = focusing ? enableFocusInside : disableFocusInside;
|
|
manageFocus(portalNode);
|
|
}
|
|
}
|
|
__name(onFocus, "onFocus");
|
|
portalNode.addEventListener("focusin", onFocus, true);
|
|
portalNode.addEventListener("focusout", onFocus, true);
|
|
return () => {
|
|
portalNode.removeEventListener("focusin", onFocus, true);
|
|
portalNode.removeEventListener("focusout", onFocus, true);
|
|
};
|
|
}, [portalNode, preserveTabOrder, focusManagerState == null ? void 0 : focusManagerState.modal]);
|
|
return /* @__PURE__ */ React21.createElement(PortalContext.Provider, {
|
|
value: React21.useMemo(() => ({
|
|
preserveTabOrder,
|
|
beforeOutsideRef,
|
|
afterOutsideRef,
|
|
beforeInsideRef,
|
|
afterInsideRef,
|
|
portalNode,
|
|
setFocusManagerState
|
|
}), [preserveTabOrder, portalNode])
|
|
}, shouldRenderGuards && portalNode && /* @__PURE__ */ React21.createElement(FocusGuard, {
|
|
"data-type": "outside",
|
|
ref: beforeOutsideRef,
|
|
onFocus: (event) => {
|
|
if (isOutsideEvent(event, portalNode)) {
|
|
var _beforeInsideRef$curr;
|
|
(_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();
|
|
} else {
|
|
const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);
|
|
prevTabbable == null || prevTabbable.focus();
|
|
}
|
|
}
|
|
}), shouldRenderGuards && portalNode && /* @__PURE__ */ React21.createElement("span", {
|
|
"aria-owns": portalNode.id,
|
|
style: HIDDEN_STYLES
|
|
}), portalNode && /* @__PURE__ */ (0, import_react_dom4.createPortal)(children, portalNode), shouldRenderGuards && portalNode && /* @__PURE__ */ React21.createElement(FocusGuard, {
|
|
"data-type": "outside",
|
|
ref: afterOutsideRef,
|
|
onFocus: (event) => {
|
|
if (isOutsideEvent(event, portalNode)) {
|
|
var _afterInsideRef$curre;
|
|
(_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();
|
|
} else {
|
|
const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);
|
|
nextTabbable == null || nextTabbable.focus();
|
|
(focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent));
|
|
}
|
|
}
|
|
}));
|
|
}
|
|
__name(FloatingPortal, "FloatingPortal");
|
|
var usePortalContext2 = /* @__PURE__ */ __name(() => React21.useContext(PortalContext), "usePortalContext");
|
|
var LIST_LIMIT = 20;
|
|
var previouslyFocusedElements = [];
|
|
function addPreviouslyFocusedElement(element) {
|
|
previouslyFocusedElements = previouslyFocusedElements.filter((el) => el.isConnected);
|
|
let tabbableEl = element;
|
|
if (!tabbableEl || getNodeName(tabbableEl) === "body")
|
|
return;
|
|
if (!(0, import_tabbable.isTabbable)(tabbableEl, getTabbableOptions())) {
|
|
const tabbableChild = (0, import_tabbable.tabbable)(tabbableEl, getTabbableOptions())[0];
|
|
if (tabbableChild) {
|
|
tabbableEl = tabbableChild;
|
|
}
|
|
}
|
|
previouslyFocusedElements.push(tabbableEl);
|
|
if (previouslyFocusedElements.length > LIST_LIMIT) {
|
|
previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);
|
|
}
|
|
}
|
|
__name(addPreviouslyFocusedElement, "addPreviouslyFocusedElement");
|
|
function getPreviouslyFocusedElement() {
|
|
return previouslyFocusedElements.slice().reverse().find((el) => el.isConnected);
|
|
}
|
|
__name(getPreviouslyFocusedElement, "getPreviouslyFocusedElement");
|
|
var VisuallyHiddenDismiss = /* @__PURE__ */ React21.forwardRef(/* @__PURE__ */ __name(function VisuallyHiddenDismiss2(props, ref) {
|
|
return /* @__PURE__ */ React21.createElement("button", _extends({}, props, {
|
|
type: "button",
|
|
ref,
|
|
tabIndex: -1,
|
|
style: HIDDEN_STYLES
|
|
}));
|
|
}, "VisuallyHiddenDismiss"));
|
|
function FloatingFocusManager(props) {
|
|
const {
|
|
context,
|
|
children,
|
|
disabled = false,
|
|
order = ["content"],
|
|
guards: _guards = true,
|
|
initialFocus = 0,
|
|
returnFocus = true,
|
|
modal = true,
|
|
visuallyHiddenDismiss = false,
|
|
closeOnFocusOut = true
|
|
} = props;
|
|
const {
|
|
open,
|
|
refs,
|
|
nodeId,
|
|
onOpenChange,
|
|
events,
|
|
dataRef,
|
|
elements: {
|
|
domReference,
|
|
floating
|
|
}
|
|
} = context;
|
|
const ignoreInitialFocus = typeof initialFocus === "number" && initialFocus < 0;
|
|
const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;
|
|
const guards = supportsInert() ? _guards : true;
|
|
const orderRef = useLatestRef2(order);
|
|
const initialFocusRef = useLatestRef2(initialFocus);
|
|
const returnFocusRef = useLatestRef2(returnFocus);
|
|
const tree = useFloatingTree();
|
|
const portalContext = usePortalContext2();
|
|
const startDismissButtonRef = React21.useRef(null);
|
|
const endDismissButtonRef = React21.useRef(null);
|
|
const preventReturnFocusRef = React21.useRef(false);
|
|
const isPointerDownRef = React21.useRef(false);
|
|
const isInsidePortal = portalContext != null;
|
|
const getTabbableContent = React21.useCallback(function(container) {
|
|
if (container === void 0) {
|
|
container = floating;
|
|
}
|
|
return container ? (0, import_tabbable.tabbable)(container, getTabbableOptions()) : [];
|
|
}, [floating]);
|
|
const getTabbableElements = React21.useCallback((container) => {
|
|
const content = getTabbableContent(container);
|
|
return orderRef.current.map((type) => {
|
|
if (domReference && type === "reference") {
|
|
return domReference;
|
|
}
|
|
if (floating && type === "floating") {
|
|
return floating;
|
|
}
|
|
return content;
|
|
}).filter(Boolean).flat();
|
|
}, [domReference, floating, orderRef, getTabbableContent]);
|
|
React21.useEffect(() => {
|
|
if (disabled || !modal)
|
|
return;
|
|
function onKeyDown(event) {
|
|
if (event.key === "Tab") {
|
|
if (contains(floating, activeElement(getDocument(floating))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {
|
|
stopEvent(event);
|
|
}
|
|
const els = getTabbableElements();
|
|
const target = getTarget(event);
|
|
if (orderRef.current[0] === "reference" && target === domReference) {
|
|
stopEvent(event);
|
|
if (event.shiftKey) {
|
|
enqueueFocus(els[els.length - 1]);
|
|
} else {
|
|
enqueueFocus(els[1]);
|
|
}
|
|
}
|
|
if (orderRef.current[1] === "floating" && target === floating && event.shiftKey) {
|
|
stopEvent(event);
|
|
enqueueFocus(els[0]);
|
|
}
|
|
}
|
|
}
|
|
__name(onKeyDown, "onKeyDown");
|
|
const doc = getDocument(floating);
|
|
doc.addEventListener("keydown", onKeyDown);
|
|
return () => {
|
|
doc.removeEventListener("keydown", onKeyDown);
|
|
};
|
|
}, [disabled, domReference, floating, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);
|
|
React21.useEffect(() => {
|
|
if (disabled || !closeOnFocusOut)
|
|
return;
|
|
function handlePointerDown() {
|
|
isPointerDownRef.current = true;
|
|
setTimeout(() => {
|
|
isPointerDownRef.current = false;
|
|
});
|
|
}
|
|
__name(handlePointerDown, "handlePointerDown");
|
|
function handleFocusOutside(event) {
|
|
const relatedTarget = event.relatedTarget;
|
|
queueMicrotask(() => {
|
|
const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute("focus-guard")) || tree && (getChildren(tree.nodesRef.current, nodeId).find((node) => {
|
|
var _node$context, _node$context2;
|
|
return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);
|
|
}) || getAncestors(tree.nodesRef.current, nodeId).find((node) => {
|
|
var _node$context3, _node$context4;
|
|
return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;
|
|
})));
|
|
if (relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current && // Fix React 18 Strict Mode returnFocus due to double rendering.
|
|
relatedTarget !== getPreviouslyFocusedElement()) {
|
|
preventReturnFocusRef.current = true;
|
|
onOpenChange(false, event);
|
|
}
|
|
});
|
|
}
|
|
__name(handleFocusOutside, "handleFocusOutside");
|
|
if (floating && isHTMLElement(domReference)) {
|
|
domReference.addEventListener("focusout", handleFocusOutside);
|
|
domReference.addEventListener("pointerdown", handlePointerDown);
|
|
!modal && floating.addEventListener("focusout", handleFocusOutside);
|
|
return () => {
|
|
domReference.removeEventListener("focusout", handleFocusOutside);
|
|
domReference.removeEventListener("pointerdown", handlePointerDown);
|
|
!modal && floating.removeEventListener("focusout", handleFocusOutside);
|
|
};
|
|
}
|
|
}, [disabled, domReference, floating, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut]);
|
|
React21.useEffect(() => {
|
|
var _portalContext$portal;
|
|
if (disabled)
|
|
return;
|
|
const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll("[" + createAttribute("portal") + "]")) || []);
|
|
if (floating) {
|
|
const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes("reference") || isUntrappedTypeableCombobox ? domReference : null].filter((x) => x != null);
|
|
const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);
|
|
return () => {
|
|
cleanup();
|
|
};
|
|
}
|
|
}, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);
|
|
index2(() => {
|
|
if (disabled || !floating)
|
|
return;
|
|
const doc = getDocument(floating);
|
|
const previouslyFocusedElement = activeElement(doc);
|
|
queueMicrotask(() => {
|
|
const focusableElements = getTabbableElements(floating);
|
|
const initialFocusValue = initialFocusRef.current;
|
|
const elToFocus = (typeof initialFocusValue === "number" ? focusableElements[initialFocusValue] : initialFocusValue.current) || floating;
|
|
const focusAlreadyInsideFloatingEl = contains(floating, previouslyFocusedElement);
|
|
if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {
|
|
enqueueFocus(elToFocus, {
|
|
preventScroll: elToFocus === floating
|
|
});
|
|
}
|
|
});
|
|
}, [disabled, open, floating, ignoreInitialFocus, getTabbableElements, initialFocusRef]);
|
|
index2(() => {
|
|
if (disabled || !floating)
|
|
return;
|
|
let preventReturnFocusScroll = false;
|
|
const doc = getDocument(floating);
|
|
const previouslyFocusedElement = activeElement(doc);
|
|
const contextData = dataRef.current;
|
|
let openEvent = contextData.openEvent;
|
|
addPreviouslyFocusedElement(previouslyFocusedElement);
|
|
function onOpenChange2(_ref) {
|
|
let {
|
|
open: open2,
|
|
reason,
|
|
event,
|
|
nested
|
|
} = _ref;
|
|
if (open2) {
|
|
openEvent = event;
|
|
}
|
|
if (reason === "escape-key" && refs.domReference.current) {
|
|
addPreviouslyFocusedElement(refs.domReference.current);
|
|
}
|
|
if (reason === "hover" && event.type === "mouseleave") {
|
|
preventReturnFocusRef.current = true;
|
|
}
|
|
if (reason !== "outside-press")
|
|
return;
|
|
if (nested) {
|
|
preventReturnFocusRef.current = false;
|
|
preventReturnFocusScroll = true;
|
|
} else {
|
|
preventReturnFocusRef.current = !(isVirtualClick(event) || isVirtualPointerEvent(event));
|
|
}
|
|
}
|
|
__name(onOpenChange2, "onOpenChange");
|
|
events.on("openchange", onOpenChange2);
|
|
return () => {
|
|
events.off("openchange", onOpenChange2);
|
|
const activeEl = activeElement(doc);
|
|
const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some((node) => {
|
|
var _node$context5;
|
|
return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);
|
|
});
|
|
const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ["click", "mousedown"].includes(openEvent.type);
|
|
if (shouldFocusReference && refs.domReference.current) {
|
|
addPreviouslyFocusedElement(refs.domReference.current);
|
|
}
|
|
const returnElement = getPreviouslyFocusedElement();
|
|
if (
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(returnElement) && // If the focus moved somewhere else after mount, avoid returning focus
|
|
// since it likely entered a different element which should be
|
|
// respected: https://github.com/floating-ui/floating-ui/issues/2607
|
|
(returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)
|
|
) {
|
|
enqueueFocus(returnElement, {
|
|
// When dismissing nested floating elements, by the time the rAF has
|
|
// executed, the menus will all have been unmounted. When they try
|
|
// to get focused, the calls get ignored — leaving the root
|
|
// reference focused as desired.
|
|
cancelPrevious: false,
|
|
preventScroll: preventReturnFocusScroll
|
|
});
|
|
}
|
|
};
|
|
}, [disabled, floating, returnFocusRef, dataRef, refs, events, tree, nodeId]);
|
|
index2(() => {
|
|
if (disabled || !portalContext)
|
|
return;
|
|
portalContext.setFocusManagerState({
|
|
modal,
|
|
closeOnFocusOut,
|
|
open,
|
|
onOpenChange,
|
|
refs
|
|
});
|
|
return () => {
|
|
portalContext.setFocusManagerState(null);
|
|
};
|
|
}, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);
|
|
index2(() => {
|
|
if (disabled || !floating || typeof MutationObserver !== "function" || ignoreInitialFocus) {
|
|
return;
|
|
}
|
|
const handleMutation = /* @__PURE__ */ __name(() => {
|
|
const tabIndex = floating.getAttribute("tabindex");
|
|
if (orderRef.current.includes("floating") || activeElement(getDocument(floating)) !== refs.domReference.current && getTabbableContent().length === 0) {
|
|
if (tabIndex !== "0") {
|
|
floating.setAttribute("tabindex", "0");
|
|
}
|
|
} else if (tabIndex !== "-1") {
|
|
floating.setAttribute("tabindex", "-1");
|
|
}
|
|
}, "handleMutation");
|
|
handleMutation();
|
|
const observer = new MutationObserver(handleMutation);
|
|
observer.observe(floating, {
|
|
childList: true,
|
|
subtree: true,
|
|
attributes: true
|
|
});
|
|
return () => {
|
|
observer.disconnect();
|
|
};
|
|
}, [disabled, floating, refs, orderRef, getTabbableContent, ignoreInitialFocus]);
|
|
function renderDismissButton(location) {
|
|
if (disabled || !visuallyHiddenDismiss || !modal) {
|
|
return null;
|
|
}
|
|
return /* @__PURE__ */ React21.createElement(VisuallyHiddenDismiss, {
|
|
ref: location === "start" ? startDismissButtonRef : endDismissButtonRef,
|
|
onClick: (event) => onOpenChange(false, event.nativeEvent)
|
|
}, typeof visuallyHiddenDismiss === "string" ? visuallyHiddenDismiss : "Dismiss");
|
|
}
|
|
__name(renderDismissButton, "renderDismissButton");
|
|
const shouldRenderGuards = !disabled && guards && (isInsidePortal || modal);
|
|
return /* @__PURE__ */ React21.createElement(React21.Fragment, null, shouldRenderGuards && /* @__PURE__ */ React21.createElement(FocusGuard, {
|
|
"data-type": "inside",
|
|
ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,
|
|
onFocus: (event) => {
|
|
if (modal) {
|
|
const els = getTabbableElements();
|
|
enqueueFocus(order[0] === "reference" ? els[0] : els[els.length - 1]);
|
|
} else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {
|
|
preventReturnFocusRef.current = false;
|
|
if (isOutsideEvent(event, portalContext.portalNode)) {
|
|
const nextTabbable = getNextTabbable() || domReference;
|
|
nextTabbable == null || nextTabbable.focus();
|
|
} else {
|
|
var _portalContext$before;
|
|
(_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();
|
|
}
|
|
}
|
|
}
|
|
}), !isUntrappedTypeableCombobox && renderDismissButton("start"), children, renderDismissButton("end"), shouldRenderGuards && /* @__PURE__ */ React21.createElement(FocusGuard, {
|
|
"data-type": "inside",
|
|
ref: portalContext == null ? void 0 : portalContext.afterInsideRef,
|
|
onFocus: (event) => {
|
|
if (modal) {
|
|
enqueueFocus(getTabbableElements()[0]);
|
|
} else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {
|
|
if (closeOnFocusOut) {
|
|
preventReturnFocusRef.current = true;
|
|
}
|
|
if (isOutsideEvent(event, portalContext.portalNode)) {
|
|
const prevTabbable = getPreviousTabbable() || domReference;
|
|
prevTabbable == null || prevTabbable.focus();
|
|
} else {
|
|
var _portalContext$afterO;
|
|
(_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();
|
|
}
|
|
}
|
|
}
|
|
}));
|
|
}
|
|
__name(FloatingFocusManager, "FloatingFocusManager");
|
|
var activeLocks = /* @__PURE__ */ new Set();
|
|
var FloatingOverlay = /* @__PURE__ */ React21.forwardRef(/* @__PURE__ */ __name(function FloatingOverlay2(props, ref) {
|
|
const {
|
|
lockScroll = false,
|
|
...rest
|
|
} = props;
|
|
const lockId = useId5();
|
|
index2(() => {
|
|
if (!lockScroll)
|
|
return;
|
|
activeLocks.add(lockId);
|
|
const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());
|
|
const bodyStyle = document.body.style;
|
|
const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;
|
|
const paddingProp = scrollbarX ? "paddingLeft" : "paddingRight";
|
|
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.pageXOffset;
|
|
const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.pageYOffset;
|
|
bodyStyle.overflow = "hidden";
|
|
if (scrollbarWidth) {
|
|
bodyStyle[paddingProp] = scrollbarWidth + "px";
|
|
}
|
|
if (isIOS) {
|
|
var _window$visualViewpor, _window$visualViewpor2;
|
|
const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;
|
|
const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;
|
|
Object.assign(bodyStyle, {
|
|
position: "fixed",
|
|
top: -(scrollY - Math.floor(offsetTop)) + "px",
|
|
left: -(scrollX - Math.floor(offsetLeft)) + "px",
|
|
right: "0"
|
|
});
|
|
}
|
|
return () => {
|
|
activeLocks.delete(lockId);
|
|
if (activeLocks.size === 0) {
|
|
Object.assign(bodyStyle, {
|
|
overflow: "",
|
|
[paddingProp]: ""
|
|
});
|
|
if (isIOS) {
|
|
Object.assign(bodyStyle, {
|
|
position: "",
|
|
top: "",
|
|
left: "",
|
|
right: ""
|
|
});
|
|
window.scrollTo(scrollX, scrollY);
|
|
}
|
|
}
|
|
};
|
|
}, [lockId, lockScroll]);
|
|
return /* @__PURE__ */ React21.createElement("div", _extends({
|
|
ref
|
|
}, rest, {
|
|
style: {
|
|
position: "fixed",
|
|
overflow: "auto",
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
...rest.style
|
|
}
|
|
}));
|
|
}, "FloatingOverlay"));
|
|
function isButtonTarget(event) {
|
|
return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
|
|
}
|
|
__name(isButtonTarget, "isButtonTarget");
|
|
function isSpaceIgnored(element) {
|
|
return isTypeableElement(element);
|
|
}
|
|
__name(isSpaceIgnored, "isSpaceIgnored");
|
|
function useClick(context, props) {
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
dataRef,
|
|
elements: {
|
|
domReference
|
|
}
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
event: eventOption = "click",
|
|
toggle = true,
|
|
ignoreMouse = false,
|
|
keyboardHandlers = true
|
|
} = props;
|
|
const pointerTypeRef = React21.useRef();
|
|
const didKeyDownRef = React21.useRef(false);
|
|
return React21.useMemo(() => {
|
|
if (!enabled)
|
|
return {};
|
|
return {
|
|
reference: {
|
|
onPointerDown(event) {
|
|
pointerTypeRef.current = event.pointerType;
|
|
},
|
|
onMouseDown(event) {
|
|
if (event.button !== 0) {
|
|
return;
|
|
}
|
|
if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {
|
|
return;
|
|
}
|
|
if (eventOption === "click") {
|
|
return;
|
|
}
|
|
if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === "mousedown" : true)) {
|
|
onOpenChange(false, event.nativeEvent, "click");
|
|
} else {
|
|
event.preventDefault();
|
|
onOpenChange(true, event.nativeEvent, "click");
|
|
}
|
|
},
|
|
onClick(event) {
|
|
if (eventOption === "mousedown" && pointerTypeRef.current) {
|
|
pointerTypeRef.current = void 0;
|
|
return;
|
|
}
|
|
if (isMouseLikePointerType(pointerTypeRef.current, true) && ignoreMouse) {
|
|
return;
|
|
}
|
|
if (open && toggle && (dataRef.current.openEvent ? dataRef.current.openEvent.type === "click" : true)) {
|
|
onOpenChange(false, event.nativeEvent, "click");
|
|
} else {
|
|
onOpenChange(true, event.nativeEvent, "click");
|
|
}
|
|
},
|
|
onKeyDown(event) {
|
|
pointerTypeRef.current = void 0;
|
|
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
|
|
return;
|
|
}
|
|
if (event.key === " " && !isSpaceIgnored(domReference)) {
|
|
event.preventDefault();
|
|
didKeyDownRef.current = true;
|
|
}
|
|
if (event.key === "Enter") {
|
|
if (open && toggle) {
|
|
onOpenChange(false, event.nativeEvent, "click");
|
|
} else {
|
|
onOpenChange(true, event.nativeEvent, "click");
|
|
}
|
|
}
|
|
},
|
|
onKeyUp(event) {
|
|
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
|
|
return;
|
|
}
|
|
if (event.key === " " && didKeyDownRef.current) {
|
|
didKeyDownRef.current = false;
|
|
if (open && toggle) {
|
|
onOpenChange(false, event.nativeEvent, "click");
|
|
} else {
|
|
onOpenChange(true, event.nativeEvent, "click");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, dataRef, eventOption, ignoreMouse, keyboardHandlers, domReference, toggle, open, onOpenChange]);
|
|
}
|
|
__name(useClick, "useClick");
|
|
var bubbleHandlerKeys = {
|
|
pointerdown: "onPointerDown",
|
|
mousedown: "onMouseDown",
|
|
click: "onClick"
|
|
};
|
|
var captureHandlerKeys = {
|
|
pointerdown: "onPointerDownCapture",
|
|
mousedown: "onMouseDownCapture",
|
|
click: "onClickCapture"
|
|
};
|
|
var normalizeProp = /* @__PURE__ */ __name((normalizable) => {
|
|
var _normalizable$escapeK, _normalizable$outside;
|
|
return {
|
|
escapeKey: typeof normalizable === "boolean" ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,
|
|
outsidePress: typeof normalizable === "boolean" ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true
|
|
};
|
|
}, "normalizeProp");
|
|
function useDismiss(context, props) {
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
elements: {
|
|
reference,
|
|
domReference,
|
|
floating
|
|
},
|
|
dataRef
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
escapeKey = true,
|
|
outsidePress: unstable_outsidePress = true,
|
|
outsidePressEvent = "pointerdown",
|
|
referencePress = false,
|
|
referencePressEvent = "pointerdown",
|
|
ancestorScroll = false,
|
|
bubbles,
|
|
capture
|
|
} = props;
|
|
const tree = useFloatingTree();
|
|
const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === "function" ? unstable_outsidePress : () => false);
|
|
const outsidePress = typeof unstable_outsidePress === "function" ? outsidePressFn : unstable_outsidePress;
|
|
const insideReactTreeRef = React21.useRef(false);
|
|
const endedOrStartedInsideRef = React21.useRef(false);
|
|
const {
|
|
escapeKey: escapeKeyBubbles,
|
|
outsidePress: outsidePressBubbles
|
|
} = normalizeProp(bubbles);
|
|
const {
|
|
escapeKey: escapeKeyCapture,
|
|
outsidePress: outsidePressCapture
|
|
} = normalizeProp(capture);
|
|
const closeOnEscapeKeyDown = useEffectEvent((event) => {
|
|
var _dataRef$current$floa;
|
|
if (!open || !enabled || !escapeKey || event.key !== "Escape") {
|
|
return;
|
|
}
|
|
const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;
|
|
const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];
|
|
if (!escapeKeyBubbles) {
|
|
event.stopPropagation();
|
|
if (children.length > 0) {
|
|
let shouldDismiss = true;
|
|
children.forEach((child) => {
|
|
var _child$context;
|
|
if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {
|
|
shouldDismiss = false;
|
|
return;
|
|
}
|
|
});
|
|
if (!shouldDismiss) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, "escape-key");
|
|
});
|
|
const closeOnEscapeKeyDownCapture = useEffectEvent((event) => {
|
|
var _getTarget2;
|
|
const callback = /* @__PURE__ */ __name(() => {
|
|
var _getTarget;
|
|
closeOnEscapeKeyDown(event);
|
|
(_getTarget = getTarget(event)) == null || _getTarget.removeEventListener("keydown", callback);
|
|
}, "callback");
|
|
(_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener("keydown", callback);
|
|
});
|
|
const closeOnPressOutside = useEffectEvent((event) => {
|
|
var _dataRef$current$floa2;
|
|
const insideReactTree = insideReactTreeRef.current;
|
|
insideReactTreeRef.current = false;
|
|
const endedOrStartedInside = endedOrStartedInsideRef.current;
|
|
endedOrStartedInsideRef.current = false;
|
|
if (outsidePressEvent === "click" && endedOrStartedInside) {
|
|
return;
|
|
}
|
|
if (insideReactTree) {
|
|
return;
|
|
}
|
|
if (typeof outsidePress === "function" && !outsidePress(event)) {
|
|
return;
|
|
}
|
|
const target = getTarget(event);
|
|
const inertSelector = "[" + createAttribute("inert") + "]";
|
|
const markers = getDocument(floating).querySelectorAll(inertSelector);
|
|
let targetRootAncestor = isElement(target) ? target : null;
|
|
while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {
|
|
const nextParent = getParentNode(targetRootAncestor);
|
|
if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {
|
|
break;
|
|
}
|
|
targetRootAncestor = nextParent;
|
|
}
|
|
if (markers.length && isElement(target) && !isRootElement(target) && // Clicked on a direct ancestor (e.g. FloatingOverlay).
|
|
!contains(target, floating) && // If the target root element contains none of the markers, then the
|
|
// element was injected after the floating element rendered.
|
|
Array.from(markers).every((marker) => !contains(targetRootAncestor, marker))) {
|
|
return;
|
|
}
|
|
if (isHTMLElement(target) && floating) {
|
|
const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;
|
|
const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;
|
|
let xCond = canScrollY && event.offsetX > target.clientWidth;
|
|
if (canScrollY) {
|
|
const isRTL2 = getComputedStyle2(target).direction === "rtl";
|
|
if (isRTL2) {
|
|
xCond = event.offsetX <= target.offsetWidth - target.clientWidth;
|
|
}
|
|
}
|
|
if (xCond || canScrollX && event.offsetY > target.clientHeight) {
|
|
return;
|
|
}
|
|
}
|
|
const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;
|
|
const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some((node) => {
|
|
var _node$context;
|
|
return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);
|
|
});
|
|
if (isEventTargetWithin(event, floating) || isEventTargetWithin(event, domReference) || targetIsInsideChildren) {
|
|
return;
|
|
}
|
|
const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];
|
|
if (children.length > 0) {
|
|
let shouldDismiss = true;
|
|
children.forEach((child) => {
|
|
var _child$context2;
|
|
if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {
|
|
shouldDismiss = false;
|
|
return;
|
|
}
|
|
});
|
|
if (!shouldDismiss) {
|
|
return;
|
|
}
|
|
}
|
|
onOpenChange(false, event, "outside-press");
|
|
});
|
|
const closeOnPressOutsideCapture = useEffectEvent((event) => {
|
|
var _getTarget4;
|
|
const callback = /* @__PURE__ */ __name(() => {
|
|
var _getTarget3;
|
|
closeOnPressOutside(event);
|
|
(_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);
|
|
}, "callback");
|
|
(_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);
|
|
});
|
|
React21.useEffect(() => {
|
|
if (!open || !enabled) {
|
|
return;
|
|
}
|
|
dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;
|
|
dataRef.current.__outsidePressBubbles = outsidePressBubbles;
|
|
function onScroll(event) {
|
|
onOpenChange(false, event, "ancestor-scroll");
|
|
}
|
|
__name(onScroll, "onScroll");
|
|
const doc = getDocument(floating);
|
|
escapeKey && doc.addEventListener("keydown", escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);
|
|
outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);
|
|
let ancestors = [];
|
|
if (ancestorScroll) {
|
|
if (isElement(domReference)) {
|
|
ancestors = getOverflowAncestors(domReference);
|
|
}
|
|
if (isElement(floating)) {
|
|
ancestors = ancestors.concat(getOverflowAncestors(floating));
|
|
}
|
|
if (!isElement(reference) && reference && reference.contextElement) {
|
|
ancestors = ancestors.concat(getOverflowAncestors(reference.contextElement));
|
|
}
|
|
}
|
|
ancestors = ancestors.filter((ancestor) => {
|
|
var _doc$defaultView;
|
|
return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);
|
|
});
|
|
ancestors.forEach((ancestor) => {
|
|
ancestor.addEventListener("scroll", onScroll, {
|
|
passive: true
|
|
});
|
|
});
|
|
return () => {
|
|
escapeKey && doc.removeEventListener("keydown", escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);
|
|
outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);
|
|
ancestors.forEach((ancestor) => {
|
|
ancestor.removeEventListener("scroll", onScroll);
|
|
});
|
|
};
|
|
}, [dataRef, floating, domReference, reference, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);
|
|
React21.useEffect(() => {
|
|
insideReactTreeRef.current = false;
|
|
}, [outsidePress, outsidePressEvent]);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
return {
|
|
reference: {
|
|
onKeyDown: closeOnEscapeKeyDown,
|
|
[bubbleHandlerKeys[referencePressEvent]]: (event) => {
|
|
if (referencePress) {
|
|
onOpenChange(false, event.nativeEvent, "reference-press");
|
|
}
|
|
}
|
|
},
|
|
floating: {
|
|
onKeyDown: closeOnEscapeKeyDown,
|
|
onMouseDown() {
|
|
endedOrStartedInsideRef.current = true;
|
|
},
|
|
onMouseUp() {
|
|
endedOrStartedInsideRef.current = true;
|
|
},
|
|
[captureHandlerKeys[outsidePressEvent]]: () => {
|
|
insideReactTreeRef.current = true;
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, referencePress, outsidePressEvent, referencePressEvent, onOpenChange, closeOnEscapeKeyDown]);
|
|
}
|
|
__name(useDismiss, "useDismiss");
|
|
function useFloatingRootContext(options) {
|
|
const {
|
|
open = false,
|
|
onOpenChange: onOpenChangeProp,
|
|
elements: elementsProp
|
|
} = options;
|
|
const floatingId = useId5();
|
|
const dataRef = React21.useRef({});
|
|
const [events] = React21.useState(() => createPubSub());
|
|
const nested = useFloatingParentNodeId() != null;
|
|
if (process.env.NODE_ENV !== "production") {
|
|
const optionDomReference = elementsProp.reference;
|
|
if (optionDomReference && !isElement(optionDomReference)) {
|
|
error("Cannot pass a virtual element to the `elements.reference` option,", "as it must be a real DOM element. Use `refs.setPositionReference()`", "instead.");
|
|
}
|
|
}
|
|
const [positionReference, setPositionReference] = React21.useState(elementsProp.reference);
|
|
const onOpenChange = useEffectEvent((open2, event, reason) => {
|
|
dataRef.current.openEvent = open2 ? event : void 0;
|
|
events.emit("openchange", {
|
|
open: open2,
|
|
event,
|
|
reason,
|
|
nested
|
|
});
|
|
onOpenChangeProp == null || onOpenChangeProp(open2, event, reason);
|
|
});
|
|
const refs = React21.useMemo(() => ({
|
|
setPositionReference
|
|
}), []);
|
|
const elements = React21.useMemo(() => ({
|
|
reference: positionReference || elementsProp.reference || null,
|
|
floating: elementsProp.floating || null,
|
|
domReference: elementsProp.reference
|
|
}), [positionReference, elementsProp.reference, elementsProp.floating]);
|
|
return React21.useMemo(() => ({
|
|
dataRef,
|
|
open,
|
|
onOpenChange,
|
|
elements,
|
|
events,
|
|
floatingId,
|
|
refs
|
|
}), [open, onOpenChange, elements, events, floatingId, refs]);
|
|
}
|
|
__name(useFloatingRootContext, "useFloatingRootContext");
|
|
function useFloating3(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
nodeId
|
|
} = options;
|
|
const internalRootContext = useFloatingRootContext({
|
|
...options,
|
|
elements: {
|
|
reference: null,
|
|
floating: null,
|
|
...options.elements
|
|
}
|
|
});
|
|
const rootContext = options.rootContext || internalRootContext;
|
|
const computedElements = rootContext.elements;
|
|
const [_domReference, setDomReference] = React21.useState(null);
|
|
const [positionReference, _setPositionReference] = React21.useState(null);
|
|
const optionDomReference = computedElements == null ? void 0 : computedElements.reference;
|
|
const domReference = optionDomReference || _domReference;
|
|
const domReferenceRef = React21.useRef(null);
|
|
const tree = useFloatingTree();
|
|
index2(() => {
|
|
if (domReference) {
|
|
domReferenceRef.current = domReference;
|
|
}
|
|
}, [domReference]);
|
|
const position = useFloating({
|
|
...options,
|
|
elements: {
|
|
...computedElements,
|
|
...positionReference && {
|
|
reference: positionReference
|
|
}
|
|
}
|
|
});
|
|
const setPositionReference = React21.useCallback((node) => {
|
|
const computedPositionReference = isElement(node) ? {
|
|
getBoundingClientRect: () => node.getBoundingClientRect(),
|
|
contextElement: node
|
|
} : node;
|
|
_setPositionReference(computedPositionReference);
|
|
position.refs.setReference(computedPositionReference);
|
|
}, [position.refs]);
|
|
const setReference = React21.useCallback((node) => {
|
|
if (isElement(node) || node === null) {
|
|
domReferenceRef.current = node;
|
|
setDomReference(node);
|
|
}
|
|
if (isElement(position.refs.reference.current) || position.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to
|
|
// `null` to support `positionReference` + an unstable `reference`
|
|
// callback ref.
|
|
node !== null && !isElement(node)) {
|
|
position.refs.setReference(node);
|
|
}
|
|
}, [position.refs]);
|
|
const refs = React21.useMemo(() => ({
|
|
...position.refs,
|
|
setReference,
|
|
setPositionReference,
|
|
domReference: domReferenceRef
|
|
}), [position.refs, setReference, setPositionReference]);
|
|
const elements = React21.useMemo(() => ({
|
|
...position.elements,
|
|
domReference
|
|
}), [position.elements, domReference]);
|
|
const context = React21.useMemo(() => ({
|
|
...position,
|
|
...rootContext,
|
|
refs,
|
|
elements,
|
|
nodeId
|
|
}), [position, refs, elements, nodeId, rootContext]);
|
|
index2(() => {
|
|
rootContext.dataRef.current.floatingContext = context;
|
|
const node = tree == null ? void 0 : tree.nodesRef.current.find((node2) => node2.id === nodeId);
|
|
if (node) {
|
|
node.context = context;
|
|
}
|
|
});
|
|
return React21.useMemo(() => ({
|
|
...position,
|
|
context,
|
|
refs,
|
|
elements
|
|
}), [position, refs, elements, context]);
|
|
}
|
|
__name(useFloating3, "useFloating");
|
|
function useFocus(context, props) {
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
events,
|
|
dataRef,
|
|
elements: {
|
|
domReference
|
|
}
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
visibleOnly = true
|
|
} = props;
|
|
const blockFocusRef = React21.useRef(false);
|
|
const timeoutRef = React21.useRef();
|
|
const keyboardModalityRef = React21.useRef(true);
|
|
React21.useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
const win = getWindow(domReference);
|
|
function onBlur() {
|
|
if (!open && isHTMLElement(domReference) && domReference === activeElement(getDocument(domReference))) {
|
|
blockFocusRef.current = true;
|
|
}
|
|
}
|
|
__name(onBlur, "onBlur");
|
|
function onKeyDown() {
|
|
keyboardModalityRef.current = true;
|
|
}
|
|
__name(onKeyDown, "onKeyDown");
|
|
win.addEventListener("blur", onBlur);
|
|
win.addEventListener("keydown", onKeyDown, true);
|
|
return () => {
|
|
win.removeEventListener("blur", onBlur);
|
|
win.removeEventListener("keydown", onKeyDown, true);
|
|
};
|
|
}, [domReference, open, enabled]);
|
|
React21.useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
function onOpenChange2(_ref) {
|
|
let {
|
|
reason
|
|
} = _ref;
|
|
if (reason === "reference-press" || reason === "escape-key") {
|
|
blockFocusRef.current = true;
|
|
}
|
|
}
|
|
__name(onOpenChange2, "onOpenChange");
|
|
events.on("openchange", onOpenChange2);
|
|
return () => {
|
|
events.off("openchange", onOpenChange2);
|
|
};
|
|
}, [events, enabled]);
|
|
React21.useEffect(() => {
|
|
return () => {
|
|
clearTimeout(timeoutRef.current);
|
|
};
|
|
}, []);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
return {
|
|
reference: {
|
|
onPointerDown(event) {
|
|
if (isVirtualPointerEvent(event.nativeEvent))
|
|
return;
|
|
keyboardModalityRef.current = false;
|
|
},
|
|
onMouseLeave() {
|
|
blockFocusRef.current = false;
|
|
},
|
|
onFocus(event) {
|
|
if (blockFocusRef.current)
|
|
return;
|
|
const target = getTarget(event.nativeEvent);
|
|
if (visibleOnly && isElement(target)) {
|
|
try {
|
|
if (isSafari() && isMac())
|
|
throw Error();
|
|
if (!target.matches(":focus-visible"))
|
|
return;
|
|
} catch (e) {
|
|
if (!keyboardModalityRef.current && !isTypeableElement(target)) {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
onOpenChange(true, event.nativeEvent, "focus");
|
|
},
|
|
onBlur(event) {
|
|
blockFocusRef.current = false;
|
|
const relatedTarget = event.relatedTarget;
|
|
const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute("focus-guard")) && relatedTarget.getAttribute("data-type") === "outside";
|
|
timeoutRef.current = window.setTimeout(() => {
|
|
var _dataRef$current$floa;
|
|
const activeEl = activeElement(domReference ? domReference.ownerDocument : document);
|
|
if (!relatedTarget && activeEl === domReference)
|
|
return;
|
|
if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(domReference, activeEl) || movedToFocusGuard) {
|
|
return;
|
|
}
|
|
onOpenChange(false, event.nativeEvent, "focus");
|
|
});
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, visibleOnly, dataRef, domReference, onOpenChange]);
|
|
}
|
|
__name(useFocus, "useFocus");
|
|
var ACTIVE_KEY = "active";
|
|
var SELECTED_KEY = "selected";
|
|
function mergeProps2(userProps, propsList, elementKey) {
|
|
const map = /* @__PURE__ */ new Map();
|
|
const isItem = elementKey === "item";
|
|
let domUserProps = userProps;
|
|
if (isItem && userProps) {
|
|
const {
|
|
[ACTIVE_KEY]: _,
|
|
[SELECTED_KEY]: __,
|
|
...validProps
|
|
} = userProps;
|
|
domUserProps = validProps;
|
|
}
|
|
return {
|
|
...elementKey === "floating" && {
|
|
tabIndex: -1
|
|
},
|
|
...domUserProps,
|
|
...propsList.map((value) => {
|
|
const propsOrGetProps = value ? value[elementKey] : null;
|
|
if (typeof propsOrGetProps === "function") {
|
|
return userProps ? propsOrGetProps(userProps) : null;
|
|
}
|
|
return propsOrGetProps;
|
|
}).concat(userProps).reduce((acc, props) => {
|
|
if (!props) {
|
|
return acc;
|
|
}
|
|
Object.entries(props).forEach((_ref) => {
|
|
let [key, value] = _ref;
|
|
if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {
|
|
return;
|
|
}
|
|
if (key.indexOf("on") === 0) {
|
|
if (!map.has(key)) {
|
|
map.set(key, []);
|
|
}
|
|
if (typeof value === "function") {
|
|
var _map$get;
|
|
(_map$get = map.get(key)) == null || _map$get.push(value);
|
|
acc[key] = function() {
|
|
var _map$get2;
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map((fn) => fn(...args)).find((val) => val !== void 0);
|
|
};
|
|
}
|
|
} else {
|
|
acc[key] = value;
|
|
}
|
|
});
|
|
return acc;
|
|
}, {})
|
|
};
|
|
}
|
|
__name(mergeProps2, "mergeProps");
|
|
function useInteractions(propsList) {
|
|
if (propsList === void 0) {
|
|
propsList = [];
|
|
}
|
|
const deps = propsList;
|
|
const getReferenceProps = React21.useCallback(
|
|
(userProps) => mergeProps2(userProps, propsList, "reference"),
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
deps
|
|
);
|
|
const getFloatingProps = React21.useCallback(
|
|
(userProps) => mergeProps2(userProps, propsList, "floating"),
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
deps
|
|
);
|
|
const getItemProps = React21.useCallback(
|
|
(userProps) => mergeProps2(userProps, propsList, "item"),
|
|
// Granularly check for `item` changes, because the `getItemProps` getter
|
|
// should be as referentially stable as possible since it may be passed as
|
|
// a prop to many components. All `item` key values must therefore be
|
|
// memoized.
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
propsList.map((key) => key == null ? void 0 : key.item)
|
|
);
|
|
return React21.useMemo(() => ({
|
|
getReferenceProps,
|
|
getFloatingProps,
|
|
getItemProps
|
|
}), [getReferenceProps, getFloatingProps, getItemProps]);
|
|
}
|
|
__name(useInteractions, "useInteractions");
|
|
var isPreventScrollSupported = false;
|
|
function doSwitch(orientation, vertical, horizontal) {
|
|
switch (orientation) {
|
|
case "vertical":
|
|
return vertical;
|
|
case "horizontal":
|
|
return horizontal;
|
|
default:
|
|
return vertical || horizontal;
|
|
}
|
|
}
|
|
__name(doSwitch, "doSwitch");
|
|
function isMainOrientationKey(key, orientation) {
|
|
const vertical = key === ARROW_UP || key === ARROW_DOWN;
|
|
const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;
|
|
return doSwitch(orientation, vertical, horizontal);
|
|
}
|
|
__name(isMainOrientationKey, "isMainOrientationKey");
|
|
function isMainOrientationToEndKey(key, orientation, rtl) {
|
|
const vertical = key === ARROW_DOWN;
|
|
const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;
|
|
return doSwitch(orientation, vertical, horizontal) || key === "Enter" || key === " " || key === "";
|
|
}
|
|
__name(isMainOrientationToEndKey, "isMainOrientationToEndKey");
|
|
function isCrossOrientationOpenKey(key, orientation, rtl) {
|
|
const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;
|
|
const horizontal = key === ARROW_DOWN;
|
|
return doSwitch(orientation, vertical, horizontal);
|
|
}
|
|
__name(isCrossOrientationOpenKey, "isCrossOrientationOpenKey");
|
|
function isCrossOrientationCloseKey(key, orientation, rtl) {
|
|
const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;
|
|
const horizontal = key === ARROW_UP;
|
|
return doSwitch(orientation, vertical, horizontal);
|
|
}
|
|
__name(isCrossOrientationCloseKey, "isCrossOrientationCloseKey");
|
|
function useListNavigation(context, props) {
|
|
const {
|
|
open,
|
|
onOpenChange,
|
|
elements: {
|
|
domReference,
|
|
floating
|
|
}
|
|
} = context;
|
|
const {
|
|
listRef,
|
|
activeIndex,
|
|
onNavigate: unstable_onNavigate = /* @__PURE__ */ __name(() => {
|
|
}, "unstable_onNavigate"),
|
|
enabled = true,
|
|
selectedIndex = null,
|
|
allowEscape = false,
|
|
loop = false,
|
|
nested = false,
|
|
rtl = false,
|
|
virtual = false,
|
|
focusItemOnOpen = "auto",
|
|
focusItemOnHover = true,
|
|
openOnArrowKeyDown = true,
|
|
disabledIndices = void 0,
|
|
orientation = "vertical",
|
|
cols = 1,
|
|
scrollItemIntoView = true,
|
|
virtualItemRef,
|
|
itemSizes,
|
|
dense = false
|
|
} = props;
|
|
if (process.env.NODE_ENV !== "production") {
|
|
if (allowEscape) {
|
|
if (!loop) {
|
|
warn("`useListNavigation` looping must be enabled to allow escaping.");
|
|
}
|
|
if (!virtual) {
|
|
warn("`useListNavigation` must be virtual to allow escaping.");
|
|
}
|
|
}
|
|
if (orientation === "vertical" && cols > 1) {
|
|
warn("In grid list navigation mode (`cols` > 1), the `orientation` should", 'be either "horizontal" or "both".');
|
|
}
|
|
}
|
|
const parentId = useFloatingParentNodeId();
|
|
const tree = useFloatingTree();
|
|
const onNavigate = useEffectEvent(unstable_onNavigate);
|
|
const focusItemOnOpenRef = React21.useRef(focusItemOnOpen);
|
|
const indexRef = React21.useRef(selectedIndex != null ? selectedIndex : -1);
|
|
const keyRef = React21.useRef(null);
|
|
const isPointerModalityRef = React21.useRef(true);
|
|
const previousOnNavigateRef = React21.useRef(onNavigate);
|
|
const previousMountedRef = React21.useRef(!!floating);
|
|
const forceSyncFocus = React21.useRef(false);
|
|
const forceScrollIntoViewRef = React21.useRef(false);
|
|
const disabledIndicesRef = useLatestRef2(disabledIndices);
|
|
const latestOpenRef = useLatestRef2(open);
|
|
const scrollItemIntoViewRef = useLatestRef2(scrollItemIntoView);
|
|
const floatingRef = useLatestRef2(floating);
|
|
const selectedIndexRef = useLatestRef2(selectedIndex);
|
|
const [activeId, setActiveId] = React21.useState();
|
|
const [virtualId, setVirtualId] = React21.useState();
|
|
const focusItem = useEffectEvent(function(listRef2, indexRef2, forceScrollIntoView) {
|
|
if (forceScrollIntoView === void 0) {
|
|
forceScrollIntoView = false;
|
|
}
|
|
function runFocus(item2) {
|
|
if (virtual) {
|
|
setActiveId(item2.id);
|
|
tree == null || tree.events.emit("virtualfocus", item2);
|
|
if (virtualItemRef) {
|
|
virtualItemRef.current = item2;
|
|
}
|
|
} else {
|
|
enqueueFocus(item2, {
|
|
preventScroll: true,
|
|
// Mac Safari does not move the virtual cursor unless the focus call
|
|
// is sync. However, for the very first focus call, we need to wait
|
|
// for the position to be ready in order to prevent unwanted
|
|
// scrolling. This means the virtual cursor will not move to the first
|
|
// item when first opening the floating element, but will on
|
|
// subsequent calls. `preventScroll` is supported in modern Safari,
|
|
// so we can use that instead.
|
|
// iOS Safari must be async or the first item will not be focused.
|
|
sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false
|
|
});
|
|
}
|
|
}
|
|
__name(runFocus, "runFocus");
|
|
const initialItem = listRef2.current[indexRef2.current];
|
|
if (initialItem) {
|
|
runFocus(initialItem);
|
|
}
|
|
requestAnimationFrame(() => {
|
|
const waitedItem = listRef2.current[indexRef2.current] || initialItem;
|
|
if (!waitedItem)
|
|
return;
|
|
if (!initialItem) {
|
|
runFocus(waitedItem);
|
|
}
|
|
const scrollIntoViewOptions = scrollItemIntoViewRef.current;
|
|
const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);
|
|
if (shouldScrollIntoView) {
|
|
waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === "boolean" ? {
|
|
block: "nearest",
|
|
inline: "nearest"
|
|
} : scrollIntoViewOptions);
|
|
}
|
|
});
|
|
});
|
|
index2(() => {
|
|
document.createElement("div").focus({
|
|
get preventScroll() {
|
|
isPreventScrollSupported = true;
|
|
return false;
|
|
}
|
|
});
|
|
}, []);
|
|
index2(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
if (open && floating) {
|
|
if (focusItemOnOpenRef.current && selectedIndex != null) {
|
|
forceScrollIntoViewRef.current = true;
|
|
indexRef.current = selectedIndex;
|
|
onNavigate(selectedIndex);
|
|
}
|
|
} else if (previousMountedRef.current) {
|
|
indexRef.current = -1;
|
|
previousOnNavigateRef.current(null);
|
|
}
|
|
}, [enabled, open, floating, selectedIndex, onNavigate]);
|
|
index2(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
if (open && floating) {
|
|
if (activeIndex == null) {
|
|
forceSyncFocus.current = false;
|
|
if (selectedIndexRef.current != null) {
|
|
return;
|
|
}
|
|
if (previousMountedRef.current) {
|
|
indexRef.current = -1;
|
|
focusItem(listRef, indexRef);
|
|
}
|
|
if (!previousMountedRef.current && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {
|
|
let runs = 0;
|
|
const waitForListPopulated = /* @__PURE__ */ __name(() => {
|
|
if (listRef.current[0] == null) {
|
|
if (runs < 2) {
|
|
const scheduler = runs ? requestAnimationFrame : queueMicrotask;
|
|
scheduler(waitForListPopulated);
|
|
}
|
|
runs++;
|
|
} else {
|
|
indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);
|
|
keyRef.current = null;
|
|
onNavigate(indexRef.current);
|
|
}
|
|
}, "waitForListPopulated");
|
|
waitForListPopulated();
|
|
}
|
|
} else if (!isIndexOutOfBounds(listRef, activeIndex)) {
|
|
indexRef.current = activeIndex;
|
|
focusItem(listRef, indexRef, forceScrollIntoViewRef.current);
|
|
forceScrollIntoViewRef.current = false;
|
|
}
|
|
}
|
|
}, [enabled, open, floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);
|
|
index2(() => {
|
|
var _nodes$find;
|
|
if (!enabled || floating || !tree || virtual || !previousMountedRef.current) {
|
|
return;
|
|
}
|
|
const nodes = tree.nodesRef.current;
|
|
const parent = (_nodes$find = nodes.find((node) => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;
|
|
const activeEl = activeElement(getDocument(floating));
|
|
const treeContainsActiveEl = nodes.some((node) => node.context && contains(node.context.elements.floating, activeEl));
|
|
if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {
|
|
parent.focus({
|
|
preventScroll: true
|
|
});
|
|
}
|
|
}, [enabled, floating, tree, parentId, virtual]);
|
|
index2(() => {
|
|
if (!enabled || !tree || !virtual || parentId)
|
|
return;
|
|
function handleVirtualFocus(item2) {
|
|
setVirtualId(item2.id);
|
|
if (virtualItemRef) {
|
|
virtualItemRef.current = item2;
|
|
}
|
|
}
|
|
__name(handleVirtualFocus, "handleVirtualFocus");
|
|
tree.events.on("virtualfocus", handleVirtualFocus);
|
|
return () => {
|
|
tree.events.off("virtualfocus", handleVirtualFocus);
|
|
};
|
|
}, [enabled, tree, virtual, parentId, virtualItemRef]);
|
|
index2(() => {
|
|
previousOnNavigateRef.current = onNavigate;
|
|
previousMountedRef.current = !!floating;
|
|
});
|
|
index2(() => {
|
|
if (!open) {
|
|
keyRef.current = null;
|
|
}
|
|
}, [open]);
|
|
const hasActiveIndex = activeIndex != null;
|
|
const item = React21.useMemo(() => {
|
|
function syncCurrentTarget(currentTarget) {
|
|
if (!open)
|
|
return;
|
|
const index3 = listRef.current.indexOf(currentTarget);
|
|
if (index3 !== -1) {
|
|
onNavigate(index3);
|
|
}
|
|
}
|
|
__name(syncCurrentTarget, "syncCurrentTarget");
|
|
const props2 = {
|
|
onFocus(_ref) {
|
|
let {
|
|
currentTarget
|
|
} = _ref;
|
|
syncCurrentTarget(currentTarget);
|
|
},
|
|
onClick: (_ref2) => {
|
|
let {
|
|
currentTarget
|
|
} = _ref2;
|
|
return currentTarget.focus({
|
|
preventScroll: true
|
|
});
|
|
},
|
|
// Safari
|
|
...focusItemOnHover && {
|
|
onMouseMove(_ref3) {
|
|
let {
|
|
currentTarget
|
|
} = _ref3;
|
|
syncCurrentTarget(currentTarget);
|
|
},
|
|
onPointerLeave(_ref4) {
|
|
let {
|
|
pointerType
|
|
} = _ref4;
|
|
if (!isPointerModalityRef.current || pointerType === "touch") {
|
|
return;
|
|
}
|
|
indexRef.current = -1;
|
|
focusItem(listRef, indexRef);
|
|
onNavigate(null);
|
|
if (!virtual) {
|
|
enqueueFocus(floatingRef.current, {
|
|
preventScroll: true
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
return props2;
|
|
}, [open, floatingRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
const disabledIndices2 = disabledIndicesRef.current;
|
|
function onKeyDown(event) {
|
|
isPointerModalityRef.current = false;
|
|
forceSyncFocus.current = true;
|
|
if (!latestOpenRef.current && event.currentTarget === floatingRef.current) {
|
|
return;
|
|
}
|
|
if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {
|
|
stopEvent(event);
|
|
onOpenChange(false, event.nativeEvent, "list-navigation");
|
|
if (isHTMLElement(domReference) && !virtual) {
|
|
domReference.focus();
|
|
}
|
|
return;
|
|
}
|
|
const currentIndex = indexRef.current;
|
|
const minIndex = getMinIndex(listRef, disabledIndices2);
|
|
const maxIndex = getMaxIndex(listRef, disabledIndices2);
|
|
if (event.key === "Home") {
|
|
stopEvent(event);
|
|
indexRef.current = minIndex;
|
|
onNavigate(indexRef.current);
|
|
}
|
|
if (event.key === "End") {
|
|
stopEvent(event);
|
|
indexRef.current = maxIndex;
|
|
onNavigate(indexRef.current);
|
|
}
|
|
if (cols > 1) {
|
|
const sizes = itemSizes || Array.from({
|
|
length: listRef.current.length
|
|
}, () => ({
|
|
width: 1,
|
|
height: 1
|
|
}));
|
|
const cellMap = buildCellMap(sizes, cols, dense);
|
|
const minGridIndex = cellMap.findIndex((index3) => index3 != null && !isDisabled(listRef.current, index3, disabledIndices2));
|
|
const maxGridIndex = cellMap.reduce((foundIndex, index3, cellIndex) => index3 != null && !isDisabled(listRef.current, index3, disabledIndices2) ? cellIndex : foundIndex, -1);
|
|
indexRef.current = cellMap[getGridNavigatedIndex({
|
|
current: cellMap.map((itemIndex) => itemIndex != null ? listRef.current[itemIndex] : null)
|
|
}, {
|
|
event,
|
|
orientation,
|
|
loop,
|
|
cols,
|
|
// treat undefined (empty grid spaces) as disabled indices so we
|
|
// don't end up in them
|
|
disabledIndices: getCellIndices([...disabledIndices2 || listRef.current.map((_, index3) => isDisabled(listRef.current, index3) ? index3 : void 0), void 0], cellMap),
|
|
minIndex: minGridIndex,
|
|
maxIndex: maxGridIndex,
|
|
prevIndex: getCellIndexOfCorner(
|
|
indexRef.current > maxIndex ? minIndex : indexRef.current,
|
|
sizes,
|
|
cellMap,
|
|
cols,
|
|
// use a corner matching the edge closest to the direction
|
|
// we're moving in so we don't end up in the same item. Prefer
|
|
// top/left over bottom/right.
|
|
event.key === ARROW_DOWN ? "bl" : event.key === ARROW_RIGHT ? "tr" : "tl"
|
|
),
|
|
stopEvent: true
|
|
})];
|
|
onNavigate(indexRef.current);
|
|
if (orientation === "both") {
|
|
return;
|
|
}
|
|
}
|
|
if (isMainOrientationKey(event.key, orientation)) {
|
|
stopEvent(event);
|
|
if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {
|
|
indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;
|
|
onNavigate(indexRef.current);
|
|
return;
|
|
}
|
|
if (isMainOrientationToEndKey(event.key, orientation, rtl)) {
|
|
if (loop) {
|
|
indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {
|
|
startingIndex: currentIndex,
|
|
disabledIndices: disabledIndices2
|
|
});
|
|
} else {
|
|
indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {
|
|
startingIndex: currentIndex,
|
|
disabledIndices: disabledIndices2
|
|
}));
|
|
}
|
|
} else {
|
|
if (loop) {
|
|
indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {
|
|
startingIndex: currentIndex,
|
|
decrement: true,
|
|
disabledIndices: disabledIndices2
|
|
});
|
|
} else {
|
|
indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {
|
|
startingIndex: currentIndex,
|
|
decrement: true,
|
|
disabledIndices: disabledIndices2
|
|
}));
|
|
}
|
|
}
|
|
if (isIndexOutOfBounds(listRef, indexRef.current)) {
|
|
onNavigate(null);
|
|
} else {
|
|
onNavigate(indexRef.current);
|
|
}
|
|
}
|
|
}
|
|
__name(onKeyDown, "onKeyDown");
|
|
function checkVirtualMouse(event) {
|
|
if (focusItemOnOpen === "auto" && isVirtualClick(event.nativeEvent)) {
|
|
focusItemOnOpenRef.current = true;
|
|
}
|
|
}
|
|
__name(checkVirtualMouse, "checkVirtualMouse");
|
|
function checkVirtualPointer(event) {
|
|
focusItemOnOpenRef.current = focusItemOnOpen;
|
|
if (focusItemOnOpen === "auto" && isVirtualPointerEvent(event.nativeEvent)) {
|
|
focusItemOnOpenRef.current = true;
|
|
}
|
|
}
|
|
__name(checkVirtualPointer, "checkVirtualPointer");
|
|
const ariaActiveDescendantProp = virtual && open && hasActiveIndex && {
|
|
"aria-activedescendant": virtualId || activeId
|
|
};
|
|
const activeItem = listRef.current.find((item2) => (item2 == null ? void 0 : item2.id) === activeId);
|
|
return {
|
|
reference: {
|
|
...ariaActiveDescendantProp,
|
|
onKeyDown(event) {
|
|
isPointerModalityRef.current = false;
|
|
const isArrowKey = event.key.indexOf("Arrow") === 0;
|
|
const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);
|
|
const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);
|
|
const isMainKey = isMainOrientationKey(event.key, orientation);
|
|
const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === "Enter" || event.key.trim() === "";
|
|
if (virtual && open) {
|
|
const rootNode = tree == null ? void 0 : tree.nodesRef.current.find((node) => node.parentId == null);
|
|
const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;
|
|
if (isArrowKey && deepestNode && virtualItemRef) {
|
|
const eventObject = new KeyboardEvent("keydown", {
|
|
key: event.key,
|
|
bubbles: true
|
|
});
|
|
if (isCrossOpenKey || isCrossCloseKey) {
|
|
var _deepestNode$context, _deepestNode$context2;
|
|
const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;
|
|
const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? activeItem : null;
|
|
if (dispatchItem) {
|
|
stopEvent(event);
|
|
dispatchItem.dispatchEvent(eventObject);
|
|
setVirtualId(void 0);
|
|
}
|
|
}
|
|
if (isMainKey && deepestNode.context) {
|
|
if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {
|
|
var _deepestNode$context$;
|
|
stopEvent(event);
|
|
(_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
return onKeyDown(event);
|
|
}
|
|
if (!open && !openOnArrowKeyDown && isArrowKey) {
|
|
return;
|
|
}
|
|
if (isNavigationKey) {
|
|
keyRef.current = nested && isMainKey ? null : event.key;
|
|
}
|
|
if (nested) {
|
|
if (isCrossOpenKey) {
|
|
stopEvent(event);
|
|
if (open) {
|
|
indexRef.current = getMinIndex(listRef, disabledIndices2);
|
|
onNavigate(indexRef.current);
|
|
} else {
|
|
onOpenChange(true, event.nativeEvent, "list-navigation");
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (isMainKey) {
|
|
if (selectedIndex != null) {
|
|
indexRef.current = selectedIndex;
|
|
}
|
|
stopEvent(event);
|
|
if (!open && openOnArrowKeyDown) {
|
|
onOpenChange(true, event.nativeEvent, "list-navigation");
|
|
} else {
|
|
onKeyDown(event);
|
|
}
|
|
if (open) {
|
|
onNavigate(indexRef.current);
|
|
}
|
|
}
|
|
},
|
|
onFocus() {
|
|
if (open && !virtual) {
|
|
onNavigate(null);
|
|
}
|
|
},
|
|
onPointerDown: checkVirtualPointer,
|
|
onMouseDown: checkVirtualMouse,
|
|
onClick: checkVirtualMouse
|
|
},
|
|
floating: {
|
|
"aria-orientation": orientation === "both" ? void 0 : orientation,
|
|
...!isTypeableCombobox(domReference) && ariaActiveDescendantProp,
|
|
onKeyDown,
|
|
onPointerMove() {
|
|
isPointerModalityRef.current = true;
|
|
}
|
|
},
|
|
item
|
|
};
|
|
}, [domReference, floatingRef, activeId, virtualId, disabledIndicesRef, latestOpenRef, listRef, enabled, orientation, rtl, virtual, open, hasActiveIndex, nested, selectedIndex, openOnArrowKeyDown, allowEscape, cols, loop, focusItemOnOpen, onNavigate, onOpenChange, item, tree, virtualItemRef, itemSizes, dense]);
|
|
}
|
|
__name(useListNavigation, "useListNavigation");
|
|
var componentRoleToAriaRoleMap = /* @__PURE__ */ new Map([["select", "listbox"], ["combobox", "listbox"], ["label", false]]);
|
|
function useRole(context, props) {
|
|
var _componentRoleToAriaR;
|
|
if (props === void 0) {
|
|
props = {};
|
|
}
|
|
const {
|
|
open,
|
|
floatingId
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
role = "dialog"
|
|
} = props;
|
|
const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;
|
|
const referenceId = useId5();
|
|
const parentId = useFloatingParentNodeId();
|
|
const isNested = parentId != null;
|
|
return React21.useMemo(() => {
|
|
if (!enabled)
|
|
return {};
|
|
const floatingProps = {
|
|
id: floatingId,
|
|
...ariaRole && {
|
|
role: ariaRole
|
|
}
|
|
};
|
|
if (ariaRole === "tooltip" || role === "label") {
|
|
return {
|
|
reference: {
|
|
["aria-" + (role === "label" ? "labelledby" : "describedby")]: open ? floatingId : void 0
|
|
},
|
|
floating: floatingProps
|
|
};
|
|
}
|
|
return {
|
|
reference: {
|
|
"aria-expanded": open ? "true" : "false",
|
|
"aria-haspopup": ariaRole === "alertdialog" ? "dialog" : ariaRole,
|
|
"aria-controls": open ? floatingId : void 0,
|
|
...ariaRole === "listbox" && {
|
|
role: "combobox"
|
|
},
|
|
...ariaRole === "menu" && {
|
|
id: referenceId
|
|
},
|
|
...ariaRole === "menu" && isNested && {
|
|
role: "menuitem"
|
|
},
|
|
...role === "select" && {
|
|
"aria-autocomplete": "none"
|
|
},
|
|
...role === "combobox" && {
|
|
"aria-autocomplete": "list"
|
|
}
|
|
},
|
|
floating: {
|
|
...floatingProps,
|
|
...ariaRole === "menu" && {
|
|
"aria-labelledby": referenceId
|
|
}
|
|
},
|
|
item(_ref) {
|
|
let {
|
|
active,
|
|
selected
|
|
} = _ref;
|
|
const commonProps = {
|
|
role: "option",
|
|
...active && {
|
|
id: floatingId + "-option"
|
|
}
|
|
};
|
|
switch (role) {
|
|
case "select":
|
|
return {
|
|
...commonProps,
|
|
"aria-selected": active && selected
|
|
};
|
|
case "combobox": {
|
|
return {
|
|
...commonProps,
|
|
...active && {
|
|
"aria-selected": true
|
|
}
|
|
};
|
|
}
|
|
}
|
|
return {};
|
|
}
|
|
};
|
|
}, [enabled, role, ariaRole, open, floatingId, referenceId, isNested]);
|
|
}
|
|
__name(useRole, "useRole");
|
|
function useTypeahead(context, props) {
|
|
var _ref;
|
|
const {
|
|
open,
|
|
dataRef
|
|
} = context;
|
|
const {
|
|
listRef,
|
|
activeIndex,
|
|
onMatch: unstable_onMatch,
|
|
onTypingChange: unstable_onTypingChange,
|
|
enabled = true,
|
|
findMatch = null,
|
|
resetMs = 750,
|
|
ignoreKeys = [],
|
|
selectedIndex = null
|
|
} = props;
|
|
const timeoutIdRef = React21.useRef();
|
|
const stringRef = React21.useRef("");
|
|
const prevIndexRef = React21.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);
|
|
const matchIndexRef = React21.useRef(null);
|
|
const onMatch = useEffectEvent(unstable_onMatch);
|
|
const onTypingChange = useEffectEvent(unstable_onTypingChange);
|
|
const findMatchRef = useLatestRef2(findMatch);
|
|
const ignoreKeysRef = useLatestRef2(ignoreKeys);
|
|
index2(() => {
|
|
if (open) {
|
|
clearTimeout(timeoutIdRef.current);
|
|
matchIndexRef.current = null;
|
|
stringRef.current = "";
|
|
}
|
|
}, [open]);
|
|
index2(() => {
|
|
if (open && stringRef.current === "") {
|
|
var _ref2;
|
|
prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;
|
|
}
|
|
}, [open, selectedIndex, activeIndex]);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
function setTypingChange(value) {
|
|
if (value) {
|
|
if (!dataRef.current.typing) {
|
|
dataRef.current.typing = value;
|
|
onTypingChange(value);
|
|
}
|
|
} else {
|
|
if (dataRef.current.typing) {
|
|
dataRef.current.typing = value;
|
|
onTypingChange(value);
|
|
}
|
|
}
|
|
}
|
|
__name(setTypingChange, "setTypingChange");
|
|
function getMatchingIndex(list, orderedList, string) {
|
|
const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find((text) => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);
|
|
return str ? list.indexOf(str) : -1;
|
|
}
|
|
__name(getMatchingIndex, "getMatchingIndex");
|
|
function onKeyDown(event) {
|
|
const listContent = listRef.current;
|
|
if (stringRef.current.length > 0 && stringRef.current[0] !== " ") {
|
|
if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {
|
|
setTypingChange(false);
|
|
} else if (event.key === " ") {
|
|
stopEvent(event);
|
|
}
|
|
}
|
|
if (listContent == null || ignoreKeysRef.current.includes(event.key) || // Character key.
|
|
event.key.length !== 1 || // Modifier key.
|
|
event.ctrlKey || event.metaKey || event.altKey) {
|
|
return;
|
|
}
|
|
if (open && event.key !== " ") {
|
|
stopEvent(event);
|
|
setTypingChange(true);
|
|
}
|
|
const allowRapidSuccessionOfFirstLetter = listContent.every((text) => {
|
|
var _text$, _text$2;
|
|
return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;
|
|
});
|
|
if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {
|
|
stringRef.current = "";
|
|
prevIndexRef.current = matchIndexRef.current;
|
|
}
|
|
stringRef.current += event.key;
|
|
clearTimeout(timeoutIdRef.current);
|
|
timeoutIdRef.current = setTimeout(() => {
|
|
stringRef.current = "";
|
|
prevIndexRef.current = matchIndexRef.current;
|
|
setTypingChange(false);
|
|
}, resetMs);
|
|
const prevIndex = prevIndexRef.current;
|
|
const index3 = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
|
|
if (index3 !== -1) {
|
|
onMatch(index3);
|
|
matchIndexRef.current = index3;
|
|
} else if (event.key !== " ") {
|
|
stringRef.current = "";
|
|
setTypingChange(false);
|
|
}
|
|
}
|
|
__name(onKeyDown, "onKeyDown");
|
|
return {
|
|
reference: {
|
|
onKeyDown
|
|
},
|
|
floating: {
|
|
onKeyDown,
|
|
onKeyUp(event) {
|
|
if (event.key === " ") {
|
|
setTypingChange(false);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, open, dataRef, listRef, resetMs, ignoreKeysRef, findMatchRef, onMatch, onTypingChange]);
|
|
}
|
|
__name(useTypeahead, "useTypeahead");
|
|
function getArgsWithCustomFloatingHeight(state, height) {
|
|
return {
|
|
...state,
|
|
rects: {
|
|
...state.rects,
|
|
floating: {
|
|
...state.rects.floating,
|
|
height
|
|
}
|
|
}
|
|
};
|
|
}
|
|
__name(getArgsWithCustomFloatingHeight, "getArgsWithCustomFloatingHeight");
|
|
var inner = /* @__PURE__ */ __name((props) => ({
|
|
name: "inner",
|
|
options: props,
|
|
async fn(state) {
|
|
const {
|
|
listRef,
|
|
overflowRef,
|
|
onFallbackChange,
|
|
offset: innerOffset = 0,
|
|
index: index3 = 0,
|
|
minItemsVisible = 4,
|
|
referenceOverflowThreshold = 0,
|
|
scrollRef,
|
|
...detectOverflowOptions
|
|
} = props;
|
|
const {
|
|
rects,
|
|
elements: {
|
|
floating
|
|
}
|
|
} = state;
|
|
const item = listRef.current[index3];
|
|
if (process.env.NODE_ENV !== "production") {
|
|
if (!state.placement.startsWith("bottom")) {
|
|
warn('`placement` side must be "bottom" when using the `inner`', "middleware.");
|
|
}
|
|
}
|
|
if (!item) {
|
|
return {};
|
|
}
|
|
const nextArgs = {
|
|
...state,
|
|
...await offset3(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)
|
|
};
|
|
const el = (scrollRef == null ? void 0 : scrollRef.current) || floating;
|
|
const overflow = await detectOverflow2(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);
|
|
const refOverflow = await detectOverflow2(nextArgs, {
|
|
...detectOverflowOptions,
|
|
elementContext: "reference"
|
|
});
|
|
const diffY = Math.max(0, overflow.top);
|
|
const nextY = nextArgs.y + diffY;
|
|
const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));
|
|
el.style.maxHeight = maxHeight + "px";
|
|
el.scrollTop = diffY;
|
|
if (onFallbackChange) {
|
|
if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {
|
|
(0, import_react_dom4.flushSync)(() => onFallbackChange(true));
|
|
} else {
|
|
(0, import_react_dom4.flushSync)(() => onFallbackChange(false));
|
|
}
|
|
}
|
|
if (overflowRef) {
|
|
overflowRef.current = await detectOverflow2(getArgsWithCustomFloatingHeight({
|
|
...nextArgs,
|
|
y: nextY
|
|
}, el.offsetHeight), detectOverflowOptions);
|
|
}
|
|
return {
|
|
y: nextY
|
|
};
|
|
}
|
|
}), "inner");
|
|
function useInnerOffset(context, props) {
|
|
const {
|
|
open,
|
|
elements
|
|
} = context;
|
|
const {
|
|
enabled = true,
|
|
overflowRef,
|
|
scrollRef,
|
|
onChange: unstable_onChange
|
|
} = props;
|
|
const onChange = useEffectEvent(unstable_onChange);
|
|
const controlledScrollingRef = React21.useRef(false);
|
|
const prevScrollTopRef = React21.useRef(null);
|
|
const initialOverflowRef = React21.useRef(null);
|
|
React21.useEffect(() => {
|
|
if (!enabled) {
|
|
return;
|
|
}
|
|
function onWheel(e) {
|
|
if (e.ctrlKey || !el || overflowRef.current == null) {
|
|
return;
|
|
}
|
|
const dY = e.deltaY;
|
|
const isAtTop = overflowRef.current.top >= -0.5;
|
|
const isAtBottom = overflowRef.current.bottom >= -0.5;
|
|
const remainingScroll = el.scrollHeight - el.clientHeight;
|
|
const sign = dY < 0 ? -1 : 1;
|
|
const method = dY < 0 ? "max" : "min";
|
|
if (el.scrollHeight <= el.clientHeight) {
|
|
return;
|
|
}
|
|
if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
|
|
e.preventDefault();
|
|
(0, import_react_dom4.flushSync)(() => {
|
|
onChange((d) => d + Math[method](dY, remainingScroll * sign));
|
|
});
|
|
} else if (/firefox/i.test(getUserAgent())) {
|
|
el.scrollTop += dY;
|
|
}
|
|
}
|
|
__name(onWheel, "onWheel");
|
|
const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;
|
|
if (open && el) {
|
|
el.addEventListener("wheel", onWheel);
|
|
requestAnimationFrame(() => {
|
|
prevScrollTopRef.current = el.scrollTop;
|
|
if (overflowRef.current != null) {
|
|
initialOverflowRef.current = {
|
|
...overflowRef.current
|
|
};
|
|
}
|
|
});
|
|
return () => {
|
|
prevScrollTopRef.current = null;
|
|
initialOverflowRef.current = null;
|
|
el.removeEventListener("wheel", onWheel);
|
|
};
|
|
}
|
|
}, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);
|
|
return React21.useMemo(() => {
|
|
if (!enabled) {
|
|
return {};
|
|
}
|
|
return {
|
|
floating: {
|
|
onKeyDown() {
|
|
controlledScrollingRef.current = true;
|
|
},
|
|
onWheel() {
|
|
controlledScrollingRef.current = false;
|
|
},
|
|
onPointerMove() {
|
|
controlledScrollingRef.current = false;
|
|
},
|
|
onScroll() {
|
|
const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;
|
|
if (!overflowRef.current || !el || !controlledScrollingRef.current) {
|
|
return;
|
|
}
|
|
if (prevScrollTopRef.current !== null) {
|
|
const scrollDiff = el.scrollTop - prevScrollTopRef.current;
|
|
if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {
|
|
(0, import_react_dom4.flushSync)(() => onChange((d) => d + scrollDiff));
|
|
}
|
|
}
|
|
requestAnimationFrame(() => {
|
|
prevScrollTopRef.current = el.scrollTop;
|
|
});
|
|
}
|
|
}
|
|
};
|
|
}, [enabled, overflowRef, elements.floating, scrollRef, onChange]);
|
|
}
|
|
__name(useInnerOffset, "useInnerOffset");
|
|
function isPointInPolygon(point, polygon) {
|
|
const [x, y] = point;
|
|
let isInside2 = false;
|
|
const length = polygon.length;
|
|
for (let i = 0, j = length - 1; i < length; j = i++) {
|
|
const [xi, yi] = polygon[i] || [0, 0];
|
|
const [xj, yj] = polygon[j] || [0, 0];
|
|
const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;
|
|
if (intersect) {
|
|
isInside2 = !isInside2;
|
|
}
|
|
}
|
|
return isInside2;
|
|
}
|
|
__name(isPointInPolygon, "isPointInPolygon");
|
|
function isInside(point, rect) {
|
|
return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;
|
|
}
|
|
__name(isInside, "isInside");
|
|
function safePolygon(options) {
|
|
if (options === void 0) {
|
|
options = {};
|
|
}
|
|
const {
|
|
buffer = 0.5,
|
|
blockPointerEvents = false,
|
|
requireIntent = true
|
|
} = options;
|
|
let timeoutId2;
|
|
let hasLanded = false;
|
|
let lastX = null;
|
|
let lastY = null;
|
|
let lastCursorTime = performance.now();
|
|
function getCursorSpeed(x, y) {
|
|
const currentTime = performance.now();
|
|
const elapsedTime = currentTime - lastCursorTime;
|
|
if (lastX === null || lastY === null || elapsedTime === 0) {
|
|
lastX = x;
|
|
lastY = y;
|
|
lastCursorTime = currentTime;
|
|
return null;
|
|
}
|
|
const deltaX = x - lastX;
|
|
const deltaY = y - lastY;
|
|
const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
|
|
const speed = distance / elapsedTime;
|
|
lastX = x;
|
|
lastY = y;
|
|
lastCursorTime = currentTime;
|
|
return speed;
|
|
}
|
|
__name(getCursorSpeed, "getCursorSpeed");
|
|
const fn = /* @__PURE__ */ __name((_ref) => {
|
|
let {
|
|
x,
|
|
y,
|
|
placement,
|
|
elements,
|
|
onClose,
|
|
nodeId,
|
|
tree
|
|
} = _ref;
|
|
return /* @__PURE__ */ __name(function onMouseMove(event) {
|
|
function close() {
|
|
clearTimeout(timeoutId2);
|
|
onClose();
|
|
}
|
|
__name(close, "close");
|
|
clearTimeout(timeoutId2);
|
|
if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {
|
|
return;
|
|
}
|
|
const {
|
|
clientX,
|
|
clientY
|
|
} = event;
|
|
const clientPoint = [clientX, clientY];
|
|
const target = getTarget(event);
|
|
const isLeave = event.type === "mouseleave";
|
|
const isOverFloatingEl = contains(elements.floating, target);
|
|
const isOverReferenceEl = contains(elements.domReference, target);
|
|
const refRect = elements.domReference.getBoundingClientRect();
|
|
const rect = elements.floating.getBoundingClientRect();
|
|
const side = placement.split("-")[0];
|
|
const cursorLeaveFromRight = x > rect.right - rect.width / 2;
|
|
const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
|
|
const isOverReferenceRect = isInside(clientPoint, refRect);
|
|
const isFloatingWider = rect.width > refRect.width;
|
|
const isFloatingTaller = rect.height > refRect.height;
|
|
const left = (isFloatingWider ? refRect : rect).left;
|
|
const right = (isFloatingWider ? refRect : rect).right;
|
|
const top = (isFloatingTaller ? refRect : rect).top;
|
|
const bottom = (isFloatingTaller ? refRect : rect).bottom;
|
|
if (isOverFloatingEl) {
|
|
hasLanded = true;
|
|
if (!isLeave) {
|
|
return;
|
|
}
|
|
}
|
|
if (isOverReferenceEl) {
|
|
hasLanded = false;
|
|
}
|
|
if (isOverReferenceEl && !isLeave) {
|
|
hasLanded = true;
|
|
return;
|
|
}
|
|
if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {
|
|
return;
|
|
}
|
|
if (tree && getChildren(tree.nodesRef.current, nodeId).some((_ref2) => {
|
|
let {
|
|
context
|
|
} = _ref2;
|
|
return context == null ? void 0 : context.open;
|
|
})) {
|
|
return;
|
|
}
|
|
if (side === "top" && y >= refRect.bottom - 1 || side === "bottom" && y <= refRect.top + 1 || side === "left" && x >= refRect.right - 1 || side === "right" && x <= refRect.left + 1) {
|
|
return close();
|
|
}
|
|
let rectPoly = [];
|
|
switch (side) {
|
|
case "top":
|
|
rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];
|
|
break;
|
|
case "bottom":
|
|
rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];
|
|
break;
|
|
case "left":
|
|
rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];
|
|
break;
|
|
case "right":
|
|
rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];
|
|
break;
|
|
}
|
|
function getPolygon(_ref3) {
|
|
let [x2, y2] = _ref3;
|
|
switch (side) {
|
|
case "top": {
|
|
const cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
|
|
const cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
|
|
const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];
|
|
return [cursorPointOne, cursorPointTwo, ...commonPoints];
|
|
}
|
|
case "bottom": {
|
|
const cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
|
|
const cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
|
|
const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];
|
|
return [cursorPointOne, cursorPointTwo, ...commonPoints];
|
|
}
|
|
case "left": {
|
|
const cursorPointOne = [x2 + buffer + 1, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
const cursorPointTwo = [x2 + buffer + 1, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];
|
|
return [...commonPoints, cursorPointOne, cursorPointTwo];
|
|
}
|
|
case "right": {
|
|
const cursorPointOne = [x2 - buffer, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
const cursorPointTwo = [x2 - buffer, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
|
|
const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];
|
|
return [cursorPointOne, cursorPointTwo, ...commonPoints];
|
|
}
|
|
}
|
|
}
|
|
__name(getPolygon, "getPolygon");
|
|
if (isPointInPolygon([clientX, clientY], rectPoly)) {
|
|
return;
|
|
}
|
|
if (hasLanded && !isOverReferenceRect) {
|
|
return close();
|
|
}
|
|
if (!isLeave && requireIntent) {
|
|
const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);
|
|
const cursorSpeedThreshold = 0.1;
|
|
if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {
|
|
return close();
|
|
}
|
|
}
|
|
if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {
|
|
close();
|
|
} else if (!hasLanded && requireIntent) {
|
|
timeoutId2 = window.setTimeout(close, 40);
|
|
}
|
|
}, "onMouseMove");
|
|
}, "fn");
|
|
fn.__options = {
|
|
blockPointerEvents
|
|
};
|
|
return fn;
|
|
}
|
|
__name(safePolygon, "safePolygon");
|
|
|
|
// node_modules/@tamagui/popover/dist/esm/useFloatingContext.mjs
|
|
var import_react41 = require("react");
|
|
var useFloatingContext = /* @__PURE__ */ __name(({
|
|
open,
|
|
setOpen,
|
|
disable,
|
|
disableFocus,
|
|
hoverable
|
|
}) => (0, import_react41.useCallback)((props) => {
|
|
const floating = useFloating3({
|
|
...props,
|
|
open,
|
|
onOpenChange: (val, event) => {
|
|
const type = (event == null ? void 0 : event.type) === "mousemove" || (event == null ? void 0 : event.type) === "mouseenter" || (event == null ? void 0 : event.type) === "mouseleave" ? "hover" : "press";
|
|
setOpen(val, type);
|
|
}
|
|
}), {
|
|
getReferenceProps,
|
|
getFloatingProps
|
|
} = useInteractions([hoverable ? useHover(floating.context, {
|
|
enabled: !disable && hoverable,
|
|
handleClose: safePolygon({
|
|
requireIntent: true,
|
|
blockPointerEvents: true,
|
|
buffer: 1
|
|
}),
|
|
...hoverable && typeof hoverable == "object" && hoverable
|
|
}) : useHover(floating.context, {
|
|
enabled: false
|
|
}), useFocus(floating.context, {
|
|
enabled: !disable && !disableFocus,
|
|
visibleOnly: true
|
|
}), useRole(floating.context, {
|
|
role: "dialog"
|
|
}), useDismiss(floating.context, {
|
|
enabled: !disable
|
|
})]);
|
|
return {
|
|
...floating,
|
|
open,
|
|
getReferenceProps,
|
|
getFloatingProps
|
|
};
|
|
}, [open, setOpen, disable, disableFocus, hoverable]), "useFloatingContext");
|
|
|
|
// node_modules/@tamagui/popover/dist/esm/Popover.mjs
|
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
var POPOVER_SCOPE = "PopoverScope";
|
|
var PopoverContext = (0, import_core29.createStyledContext)({});
|
|
var usePopoverContext = PopoverContext.useStyledContext;
|
|
var PopoverAnchor = React22.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
__scopePopover,
|
|
...rest
|
|
} = props, context = usePopoverContext(__scopePopover), {
|
|
onCustomAnchorAdd,
|
|
onCustomAnchorRemove
|
|
} = context || {};
|
|
return React22.useEffect(() => (onCustomAnchorAdd(), () => onCustomAnchorRemove()), [onCustomAnchorAdd, onCustomAnchorRemove]), /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperAnchor, {
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE,
|
|
...rest,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
var PopoverTrigger = React22.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
__scopePopover,
|
|
...rest
|
|
} = props, context = usePopoverContext(__scopePopover), anchorTo = context.anchorTo, composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
if (anchorTo) {
|
|
let virtualRef = {
|
|
current: {
|
|
getBoundingClientRect: () => isWeb ? DOMRect.fromRect(anchorTo) : anchorTo,
|
|
...!isWeb && {
|
|
measure: (c) => c(anchorTo == null ? void 0 : anchorTo.x, anchorTo == null ? void 0 : anchorTo.y, anchorTo == null ? void 0 : anchorTo.width, anchorTo == null ? void 0 : anchorTo.height),
|
|
measureInWindow: (c) => c(anchorTo == null ? void 0 : anchorTo.x, anchorTo == null ? void 0 : anchorTo.y, anchorTo == null ? void 0 : anchorTo.width, anchorTo == null ? void 0 : anchorTo.height)
|
|
}
|
|
}
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperAnchor, {
|
|
virtualRef,
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE
|
|
});
|
|
}
|
|
if (!props.children)
|
|
return null;
|
|
const trigger = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.View, {
|
|
"aria-haspopup": "dialog",
|
|
"aria-expanded": context.open,
|
|
"data-state": getState3(context.open),
|
|
...rest,
|
|
ref: composedTriggerRef,
|
|
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
|
|
});
|
|
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperAnchor, {
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE,
|
|
asChild: true,
|
|
children: trigger
|
|
});
|
|
});
|
|
var PopoverContent = PopperContentFrame.extractable(React22.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
allowPinchZoom,
|
|
trapFocus,
|
|
disableRemoveScroll = true,
|
|
zIndex: zIndex2,
|
|
__scopePopover,
|
|
...contentImplProps
|
|
} = props, context = usePopoverContext(__scopePopover), contentRef = React22.useRef(null), composedRefs = useComposedRefs(forwardedRef, contentRef), isRightClickOutsideRef = React22.useRef(false), [isFullyHidden, setIsFullyHidden] = React22.useState(!context.open);
|
|
return context.open && isFullyHidden && setIsFullyHidden(false), React22.useEffect(() => {
|
|
if (!context.open)
|
|
return;
|
|
const content = contentRef.current;
|
|
if (content)
|
|
return (0, import_aria_hidden.hideOthers)(content);
|
|
}, [context.open]), !context.keepChildrenMounted && isFullyHidden ? null : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverContentPortal, {
|
|
__scopePopover,
|
|
zIndex: props.zIndex,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_core29.Stack, {
|
|
pointerEvents: context.open ? "auto" : "none",
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverContentImpl, {
|
|
...contentImplProps,
|
|
disableRemoveScroll,
|
|
ref: composedRefs,
|
|
setIsFullyHidden,
|
|
__scopePopover,
|
|
trapFocus: trapFocus ?? context.open,
|
|
disableOutsidePointerEvents: true,
|
|
onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {
|
|
var _a;
|
|
event.preventDefault(), isRightClickOutsideRef.current || ((_a = context.triggerRef.current) == null ? void 0 : _a.focus());
|
|
}),
|
|
onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {
|
|
const originalEvent = event.detail.originalEvent, ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true, isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
isRightClickOutsideRef.current = isRightClick;
|
|
}, {
|
|
checkDefaultPrevented: false
|
|
}),
|
|
onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => event.preventDefault(), {
|
|
checkDefaultPrevented: false
|
|
})
|
|
})
|
|
})
|
|
});
|
|
}));
|
|
function PopoverRepropagateContext(props) {
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperContext.Provider, {
|
|
scope: props.scope,
|
|
...props.popperContext,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverContext.Provider, {
|
|
...props.context,
|
|
children: props.children
|
|
})
|
|
});
|
|
}
|
|
__name(PopoverRepropagateContext, "PopoverRepropagateContext");
|
|
function PopoverContentPortal(props) {
|
|
const {
|
|
__scopePopover
|
|
} = props, zIndex2 = props.zIndex ?? 15e4, context = usePopoverContext(__scopePopover), popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE), themeName = (0, import_core29.useThemeName)();
|
|
let contents = props.children;
|
|
return (import_react_native_web9.Platform.OS === "android" || import_react_native_web9.Platform.OS === "ios") && (contents = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverRepropagateContext, {
|
|
scope: __scopePopover || POPOVER_SCOPE,
|
|
popperContext,
|
|
context,
|
|
children: props.children
|
|
})), /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Portal, {
|
|
zIndex: zIndex2,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_core29.Theme, {
|
|
forceClassName: true,
|
|
name: themeName,
|
|
children: [!!context.open && !context.breakpointActive && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(YStack, {
|
|
fullscreen: true,
|
|
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
|
|
}), contents]
|
|
})
|
|
});
|
|
}
|
|
__name(PopoverContentPortal, "PopoverContentPortal");
|
|
var PopoverContentImpl = React22.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
trapFocus,
|
|
__scopePopover,
|
|
onOpenAutoFocus,
|
|
onCloseAutoFocus,
|
|
disableOutsidePointerEvents,
|
|
disableFocusScope,
|
|
onEscapeKeyDown,
|
|
onPointerDownOutside,
|
|
onFocusOutside,
|
|
onInteractOutside,
|
|
children,
|
|
disableRemoveScroll,
|
|
freezeContentsWhenHidden,
|
|
setIsFullyHidden,
|
|
...contentProps
|
|
} = props, context = usePopoverContext(__scopePopover), {
|
|
open,
|
|
keepChildrenMounted
|
|
} = context, popperContext = usePopperContext(__scopePopover || POPOVER_SCOPE), handleExitComplete = React22.useCallback(() => {
|
|
setIsFullyHidden == null ? void 0 : setIsFullyHidden(true);
|
|
}, [setIsFullyHidden]);
|
|
if (context.breakpointActive) {
|
|
const childrenWithoutScrollView = React22.Children.toArray(children).map((child) => React22.isValidElement(child) && child.type === import_react_native_web9.ScrollView ? child.props.children : child);
|
|
let content = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ResetPresence, {
|
|
children: childrenWithoutScrollView
|
|
});
|
|
return (import_react_native_web9.Platform.OS === "android" || import_react_native_web9.Platform.OS === "ios") && (content = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperContext.Provider, {
|
|
scope: __scopePopover || POPOVER_SCOPE,
|
|
...popperContext,
|
|
children: childrenWithoutScrollView
|
|
})), /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PortalItem, {
|
|
hostName: `${context.id}PopoverContents`,
|
|
children: content
|
|
});
|
|
}
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Animate, {
|
|
type: "presence",
|
|
present: !!open,
|
|
keepChildrenMounted,
|
|
onExitComplete: handleExitComplete,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperContent, {
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE,
|
|
"data-state": getState3(open),
|
|
id: context.contentId,
|
|
ref: forwardedRef,
|
|
...contentProps,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(RemoveScroll, {
|
|
enabled: disableRemoveScroll ? false : open,
|
|
allowPinchZoom: true,
|
|
removeScrollBar: false,
|
|
style: dspContentsStyle,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ResetPresence, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(FocusScope, {
|
|
loop: true,
|
|
enabled: disableFocusScope ? false : open,
|
|
trapped: trapFocus,
|
|
onMountAutoFocus: onOpenAutoFocus,
|
|
onUnmountAutoFocus: onCloseAutoFocus,
|
|
children: isWeb ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", {
|
|
style: dspContentsStyle,
|
|
children
|
|
}) : children
|
|
})
|
|
})
|
|
})
|
|
}, context.contentId)
|
|
});
|
|
});
|
|
var dspContentsStyle = {
|
|
display: "contents"
|
|
};
|
|
var PopoverClose = React22.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
__scopePopover,
|
|
...rest
|
|
} = props, context = usePopoverContext(__scopePopover);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(YStack, {
|
|
...rest,
|
|
ref: forwardedRef,
|
|
componentName: "PopoverClose",
|
|
onPress: composeEventHandlers(props.onPress, () => context.onOpenChange(false, "press"))
|
|
});
|
|
});
|
|
var PopoverArrow = PopperArrow.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopePopover,
|
|
...rest
|
|
} = props, context = usePopoverContext(__scopePopover);
|
|
return useSheetBreakpointActive2(context.sheetBreakpoint) ? null : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopperArrow, {
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE,
|
|
componentName: "PopoverArrow",
|
|
...rest,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
var Popover = withStaticProperties(React22.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
children,
|
|
open: openProp,
|
|
defaultOpen,
|
|
onOpenChange,
|
|
__scopePopover,
|
|
keepChildrenMounted,
|
|
hoverable,
|
|
disableFocus,
|
|
...restProps
|
|
} = props, id = React22.useId(), {
|
|
when,
|
|
AdaptProvider
|
|
} = useAdaptParent({
|
|
Contents: React22.useCallback(() => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PortalHost, {
|
|
name: `${id}PopoverContents`
|
|
}), [])
|
|
}), sheetBreakpoint = when, triggerRef = React22.useRef(null), [hasCustomAnchor, setHasCustomAnchor] = React22.useState(false), viaRef = React22.useRef(), [open, setOpen] = useControllableState({
|
|
prop: openProp,
|
|
defaultProp: defaultOpen || false,
|
|
onChange: (val) => {
|
|
onOpenChange == null ? void 0 : onOpenChange(val, viaRef.current);
|
|
}
|
|
}), handleOpenChange = (0, import_core29.useEvent)((val, via) => {
|
|
viaRef.current = via, setOpen(val);
|
|
}), sheetActive = useSheetBreakpointActive2(sheetBreakpoint), floatingContext = useFloatingContext({
|
|
open,
|
|
setOpen: handleOpenChange,
|
|
disable: sheetActive,
|
|
hoverable,
|
|
disableFocus
|
|
}), [anchorTo, setAnchorToRaw] = React22.useState(), setAnchorTo = (0, import_core29.createShallowSetState)(setAnchorToRaw);
|
|
React22.useImperativeHandle(forwardedRef, () => ({
|
|
anchorTo: setAnchorTo,
|
|
toggle: () => setOpen((prev) => !prev),
|
|
open: () => setOpen(true),
|
|
close: () => setOpen(false),
|
|
setOpen
|
|
}));
|
|
const popoverContext = {
|
|
id,
|
|
sheetBreakpoint,
|
|
contentId: React22.useId(),
|
|
triggerRef,
|
|
open,
|
|
breakpointActive: sheetActive,
|
|
onOpenChange: handleOpenChange,
|
|
onOpenToggle: (0, import_core29.useEvent)(() => {
|
|
open && sheetActive || setOpen(!open);
|
|
}),
|
|
hasCustomAnchor,
|
|
anchorTo,
|
|
onCustomAnchorAdd: React22.useCallback(() => setHasCustomAnchor(true), []),
|
|
onCustomAnchorRemove: React22.useCallback(() => setHasCustomAnchor(false), []),
|
|
keepChildrenMounted
|
|
}, contents = /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Popper, {
|
|
__scopePopper: __scopePopover || POPOVER_SCOPE,
|
|
stayInFrame: true,
|
|
...restProps,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverContext.Provider, {
|
|
scope: __scopePopover,
|
|
...popoverContext,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(PopoverSheetController, {
|
|
onOpenChange: setOpen,
|
|
children
|
|
})
|
|
})
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AdaptProvider, {
|
|
children: isWeb ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(FloatingOverrideContext.Provider, {
|
|
value: floatingContext,
|
|
children: contents
|
|
}) : contents
|
|
});
|
|
}), {
|
|
Anchor: PopoverAnchor,
|
|
Arrow: PopoverArrow,
|
|
Trigger: PopoverTrigger,
|
|
Content: PopoverContent,
|
|
Close: PopoverClose,
|
|
Adapt,
|
|
ScrollView: import_react_native_web9.ScrollView,
|
|
Sheet: Sheet.Controlled
|
|
});
|
|
function getState3(open) {
|
|
return open ? "open" : "closed";
|
|
}
|
|
__name(getState3, "getState");
|
|
var PopoverSheetController = /* @__PURE__ */ __name(({
|
|
__scopePopover,
|
|
...props
|
|
}) => {
|
|
const context = usePopoverContext(__scopePopover), showSheet = useShowPopoverSheet(context), breakpointActive = context.breakpointActive, getShowSheet = (0, import_core29.useGet)(showSheet);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SheetController, {
|
|
onOpenChange: (val) => {
|
|
getShowSheet() && props.onOpenChange(val);
|
|
},
|
|
open: context.open,
|
|
hidden: breakpointActive === false,
|
|
children: props.children
|
|
});
|
|
}, "PopoverSheetController");
|
|
var useSheetBreakpointActive2 = /* @__PURE__ */ __name((breakpoint) => {
|
|
const media2 = (0, import_core29.useMedia)();
|
|
return typeof breakpoint == "boolean" || !breakpoint ? !!breakpoint : media2[breakpoint];
|
|
}, "useSheetBreakpointActive");
|
|
var useShowPopoverSheet = /* @__PURE__ */ __name((context) => {
|
|
const breakpointActive = useSheetBreakpointActive2(context.sheetBreakpoint);
|
|
return context.open === false ? false : breakpointActive;
|
|
}, "useShowPopoverSheet");
|
|
|
|
// node_modules/tamagui/node_modules/@tamagui/progress/dist/esm/Progress.mjs
|
|
var import_core30 = require("@tamagui/core");
|
|
var React23 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
var PROGRESS_NAME = "Progress";
|
|
var [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);
|
|
var [ProgressProvider, useProgressContext] = createProgressContext(PROGRESS_NAME);
|
|
var INDICATOR_NAME2 = "ProgressIndicator";
|
|
var ProgressIndicatorFrame = (0, import_core30.styled)(ThemeableStack, {
|
|
name: INDICATOR_NAME2,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
height: "100%",
|
|
width: "100%",
|
|
backgrounded: true
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ProgressIndicator = ProgressIndicatorFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopeProgress,
|
|
...indicatorProps
|
|
} = props, context = useProgressContext(INDICATOR_NAME2, __scopeProgress), pct = context.max - (context.value ?? 0), x = -(context.width === 0 ? 300 : context.width) * (pct / 100);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProgressIndicatorFrame, {
|
|
"data-state": getProgressState(context.value, context.max),
|
|
"data-value": context.value ?? void 0,
|
|
"data-max": context.max,
|
|
x,
|
|
width: context.width,
|
|
...!props.unstyled && {
|
|
animateOnly: ["transform"],
|
|
opacity: context.width === 0 ? 0 : 1
|
|
},
|
|
...indicatorProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
function defaultGetValueLabel(value, max2) {
|
|
return `${Math.round(value / max2 * 100)}%`;
|
|
}
|
|
__name(defaultGetValueLabel, "defaultGetValueLabel");
|
|
function getProgressState(value, maxValue) {
|
|
return value == null ? "indeterminate" : value === maxValue ? "complete" : "loading";
|
|
}
|
|
__name(getProgressState, "getProgressState");
|
|
function isNumber(value) {
|
|
return typeof value == "number";
|
|
}
|
|
__name(isNumber, "isNumber");
|
|
function isValidMaxNumber(max2) {
|
|
return isNumber(max2) && !Number.isNaN(max2) && max2 > 0;
|
|
}
|
|
__name(isValidMaxNumber, "isValidMaxNumber");
|
|
function isValidValueNumber(value, max2) {
|
|
return isNumber(value) && !Number.isNaN(value) && value <= max2 && value >= 0;
|
|
}
|
|
__name(isValidValueNumber, "isValidValueNumber");
|
|
var DEFAULT_MAX = 100;
|
|
var ProgressFrame = (0, import_core30.styled)(ThemeableStack, {
|
|
name: "Progress",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
borderRadius: 1e5,
|
|
overflow: "hidden",
|
|
backgrounded: true
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val) => {
|
|
const size6 = Math.round((0, import_core30.getVariableValue)(getSize(val)) * 0.25);
|
|
return {
|
|
height: size6,
|
|
minWidth: (0, import_core30.getVariableValue)(size6) * 20,
|
|
width: "100%"
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Progress = withStaticProperties(ProgressFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
// @ts-expect-error
|
|
__scopeProgress,
|
|
value: valueProp,
|
|
max: maxProp,
|
|
getValueLabel = defaultGetValueLabel,
|
|
size: size6 = "$true",
|
|
...progressProps
|
|
} = props, max2 = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX, value = isValidValueNumber(valueProp, max2) ? valueProp : null, valueLabel = isNumber(value) ? getValueLabel(value, max2) : void 0, [width, setWidth] = React23.useState(0);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProgressProvider, {
|
|
scope: __scopeProgress,
|
|
value,
|
|
max: max2,
|
|
width,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(ProgressFrame, {
|
|
"aria-valuemax": max2,
|
|
"aria-valuemin": 0,
|
|
"aria-valuenow": isNumber(value) ? value : void 0,
|
|
"aria-valuetext": valueLabel,
|
|
role: "progressbar",
|
|
"data-state": getProgressState(value, max2),
|
|
"data-value": value ?? void 0,
|
|
"data-max": max2,
|
|
...progressProps.unstyled !== true && {
|
|
size: size6
|
|
},
|
|
...progressProps,
|
|
onLayout: (e) => {
|
|
var _a;
|
|
setWidth(e.nativeEvent.layout.width), (_a = progressProps.onLayout) == null ? void 0 : _a.call(progressProps, e);
|
|
},
|
|
ref: forwardedRef
|
|
})
|
|
});
|
|
}), {
|
|
Indicator: ProgressIndicator
|
|
});
|
|
|
|
// node_modules/@tamagui/radio-group/dist/esm/RadioGroup.mjs
|
|
var import_core31 = require("@tamagui/core");
|
|
var RADIO_GROUP_ITEM_NAME = "RadioGroupItem";
|
|
var RadioGroupItemFrame = (0, import_core31.styled)(ThemeableStack, {
|
|
name: RADIO_GROUP_ITEM_NAME,
|
|
tag: "button",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
borderRadius: 1e3,
|
|
backgroundColor: "$background",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
borderWidth: 1,
|
|
borderColor: "$borderColor",
|
|
padding: 0,
|
|
hoverStyle: {
|
|
borderColor: "$borderColorHover",
|
|
backgroundColor: "$backgroundHover"
|
|
},
|
|
focusStyle: {
|
|
borderColor: "$borderColorHover",
|
|
backgroundColor: "$backgroundHover"
|
|
},
|
|
focusVisibleStyle: {
|
|
outlineStyle: "solid",
|
|
outlineWidth: 2,
|
|
outlineColor: "$outlineColor"
|
|
},
|
|
pressStyle: {
|
|
borderColor: "$borderColorFocus",
|
|
backgroundColor: "$backgroundFocus"
|
|
}
|
|
}
|
|
},
|
|
disabled: {
|
|
true: {
|
|
pointerEvents: "none",
|
|
userSelect: "none",
|
|
cursor: "not-allowed",
|
|
hoverStyle: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$background"
|
|
},
|
|
pressStyle: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$backgroundColor"
|
|
},
|
|
focusVisibleStyle: {
|
|
outlineWidth: 0
|
|
}
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (value, {
|
|
props
|
|
}) => {
|
|
const size6 = Math.floor((0, import_core31.getVariableValue)(getSize(value)) * (props.scaleSize ?? 0.5));
|
|
return {
|
|
width: size6,
|
|
height: size6
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var RADIO_GROUP_INDICATOR_NAME = "RadioGroupIndicator";
|
|
var RadioGroupIndicatorFrame = (0, import_core31.styled)(ThemeableStack, {
|
|
name: RADIO_GROUP_INDICATOR_NAME,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
width: "33%",
|
|
height: "33%",
|
|
borderRadius: 1e3,
|
|
backgroundColor: "$color",
|
|
pressTheme: true
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var RADIO_GROUP_NAME = "RadioGroup";
|
|
var RadioGroupFrame = (0, import_core31.styled)(ThemeableStack, {
|
|
name: RADIO_GROUP_NAME,
|
|
variants: {
|
|
orientation: {
|
|
horizontal: {
|
|
flexDirection: "row",
|
|
spaceDirection: "horizontal"
|
|
},
|
|
vertical: {
|
|
flexDirection: "column",
|
|
spaceDirection: "vertical"
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/radio-group/dist/esm/createRadioGroup.mjs
|
|
var import_core34 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/radio-headless/dist/esm/useRadioGroup.mjs
|
|
var import_react43 = require("react");
|
|
|
|
// node_modules/@tamagui/radio-headless/dist/esm/BubbleInput.mjs
|
|
var import_react42 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
var BubbleInput2 = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
checked,
|
|
bubbles = true,
|
|
control,
|
|
isHidden: isHidden2,
|
|
accentColor,
|
|
...inputProps
|
|
} = props, ref = import_react42.default.useRef(null), prevChecked = usePrevious(checked);
|
|
return import_react42.default.useEffect(() => {
|
|
const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, "checked").set;
|
|
if (prevChecked !== checked && setChecked) {
|
|
const event = new Event("click", {
|
|
bubbles
|
|
});
|
|
setChecked.call(input, checked), input.dispatchEvent(event);
|
|
}
|
|
}, [prevChecked, checked, bubbles]), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("input", {
|
|
type: "radio",
|
|
defaultChecked: checked,
|
|
...inputProps,
|
|
tabIndex: -1,
|
|
ref,
|
|
"aria-hidden": isHidden2,
|
|
style: {
|
|
...isHidden2 ? {
|
|
// ...controlSize,
|
|
position: "absolute",
|
|
pointerEvents: "none",
|
|
opacity: 0,
|
|
margin: 0
|
|
} : {
|
|
appearance: "auto",
|
|
accentColor
|
|
},
|
|
...props.style
|
|
}
|
|
});
|
|
}, "BubbleInput");
|
|
|
|
// node_modules/@tamagui/radio-headless/dist/esm/utils.mjs
|
|
function getState4(checked) {
|
|
return checked ? "checked" : "unchecked";
|
|
}
|
|
__name(getState4, "getState");
|
|
|
|
// node_modules/@tamagui/radio-headless/dist/esm/useRadioGroup.mjs
|
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
function useRadioGroup(params) {
|
|
const {
|
|
value: valueProp,
|
|
onValueChange,
|
|
defaultValue: defaultValue2,
|
|
required,
|
|
disabled,
|
|
name,
|
|
native,
|
|
accentColor,
|
|
orientation,
|
|
ref
|
|
} = params, [value, setValue] = useControllableState({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2,
|
|
onChange: onValueChange
|
|
});
|
|
return {
|
|
providerValue: {
|
|
value,
|
|
onChange: setValue,
|
|
required,
|
|
disabled,
|
|
name,
|
|
native,
|
|
accentColor
|
|
},
|
|
frameAttrs: {
|
|
role: "radiogroup",
|
|
"aria-orientation": orientation,
|
|
"data-disabled": disabled ? "" : void 0
|
|
},
|
|
rovingFocusGroupAttrs: {
|
|
orientation,
|
|
loop: true
|
|
}
|
|
};
|
|
}
|
|
__name(useRadioGroup, "useRadioGroup");
|
|
var ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
var useRadioGroupItem = /* @__PURE__ */ __name((params) => {
|
|
const {
|
|
radioGroupContext,
|
|
value,
|
|
labelledBy: ariaLabelledby,
|
|
disabled: itemDisabled,
|
|
ref: refProp,
|
|
id,
|
|
onPress,
|
|
onKeyDown,
|
|
onFocus
|
|
} = params, {
|
|
value: groupValue,
|
|
disabled,
|
|
required,
|
|
onChange,
|
|
name,
|
|
native,
|
|
accentColor
|
|
} = (0, import_react43.useContext)(radioGroupContext), [button, setButton] = (0, import_react43.useState)(null), hasConsumerStoppedPropagationRef = (0, import_react43.useRef)(false), ref = (0, import_react43.useRef)(null), composedRefs = useComposedRefs(refProp, (node) => setButton(node), ref), isArrowKeyPressedRef = (0, import_react43.useRef)(false), isFormControl = isWeb ? button ? !!button.closest("form") : true : false, checked = groupValue === value, labelId = useLabelContext(button), labelledBy = ariaLabelledby || labelId;
|
|
(0, import_react43.useEffect)(() => {
|
|
if (isWeb) {
|
|
const handleKeyDown = /* @__PURE__ */ __name((event) => {
|
|
ARROW_KEYS.includes(event.key) && (isArrowKeyPressedRef.current = true);
|
|
}, "handleKeyDown"), handleKeyUp = /* @__PURE__ */ __name(() => {
|
|
isArrowKeyPressedRef.current = false;
|
|
}, "handleKeyUp");
|
|
return document.addEventListener("keydown", handleKeyDown), document.addEventListener("keyup", handleKeyUp), () => {
|
|
document.removeEventListener("keydown", handleKeyDown), document.removeEventListener("keyup", handleKeyUp);
|
|
};
|
|
}
|
|
}, []);
|
|
const isDisabled2 = disabled || itemDisabled;
|
|
return {
|
|
providerValue: {
|
|
checked
|
|
},
|
|
checked,
|
|
isFormControl,
|
|
bubbleInput: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(BubbleInput2, {
|
|
isHidden: !native,
|
|
control: button,
|
|
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
name,
|
|
value,
|
|
checked,
|
|
required,
|
|
disabled: isDisabled2,
|
|
...isWeb && native && {
|
|
accentColor,
|
|
id
|
|
}
|
|
}),
|
|
native,
|
|
frameAttrs: {
|
|
"data-state": getState4(checked),
|
|
"data-disabled": isDisabled2 ? "" : void 0,
|
|
role: "radio",
|
|
"aria-labelledby": labelledBy,
|
|
"aria-checked": checked,
|
|
"aria-required": required,
|
|
disabled: isDisabled2,
|
|
ref: composedRefs,
|
|
...isWeb && {
|
|
type: "button",
|
|
value
|
|
},
|
|
id,
|
|
onPress: composeEventHandlers(onPress, (event) => {
|
|
checked || (onChange == null ? void 0 : onChange(value)), isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
|
|
}),
|
|
...isWeb && {
|
|
onKeyDown: composeEventHandlers(onKeyDown, (event) => {
|
|
event.key === "Enter" && event.preventDefault();
|
|
}),
|
|
onFocus: composeEventHandlers(onFocus, () => {
|
|
var _a;
|
|
isArrowKeyPressedRef.current && ((_a = ref.current) == null ? void 0 : _a.click());
|
|
})
|
|
}
|
|
},
|
|
rovingFocusGroupAttrs: {
|
|
asChild: "expect-style",
|
|
focusable: !isDisabled2,
|
|
active: checked
|
|
}
|
|
};
|
|
}, "useRadioGroupItem");
|
|
function useRadioGroupItemIndicator(params) {
|
|
const {
|
|
radioGroupItemContext,
|
|
disabled,
|
|
...rest
|
|
} = params, {
|
|
checked
|
|
} = (0, import_react43.useContext)(radioGroupItemContext);
|
|
return {
|
|
checked,
|
|
"data-state": getState4(checked),
|
|
"data-disabled": disabled ? "" : void 0,
|
|
...rest
|
|
};
|
|
}
|
|
__name(useRadioGroupItemIndicator, "useRadioGroupItemIndicator");
|
|
|
|
// node_modules/@tamagui/collection/dist/esm/Collection.mjs
|
|
var import_core32 = require("@tamagui/core");
|
|
var import_react44 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
function createCollection(name) {
|
|
const {
|
|
Provider: CollectionProviderImpl,
|
|
useStyledContext: useCollectionContext
|
|
} = (0, import_core32.createStyledContext)({
|
|
collectionRef: {
|
|
current: null
|
|
},
|
|
itemMap: /* @__PURE__ */ new Map()
|
|
}), CollectionProvider = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
__scopeCollection,
|
|
children
|
|
} = props, ref = import_react44.default.useRef(null), itemMap = import_react44.default.useRef(/* @__PURE__ */ new Map()).current;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CollectionProviderImpl, {
|
|
scope: __scopeCollection,
|
|
itemMap,
|
|
collectionRef: ref,
|
|
children
|
|
});
|
|
}, "CollectionProvider");
|
|
CollectionProvider.displayName = "CollectionProvider";
|
|
const COLLECTION_SLOT_NAME = name + "CollectionSlot", CollectionSlot = import_react44.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeCollection,
|
|
children
|
|
} = props, context = useCollectionContext(__scopeCollection), composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core32.Slot, {
|
|
ref: composedRefs,
|
|
children
|
|
});
|
|
});
|
|
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
const ITEM_SLOT_NAME = name + "CollectionItemSlot", ITEM_DATA_ATTR = "data-collection-item", CollectionItemSlot = import_react44.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeCollection,
|
|
children,
|
|
...itemData
|
|
} = props, ref = import_react44.default.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), context = useCollectionContext(__scopeCollection);
|
|
return import_react44.default.useEffect(() => (context.itemMap.set(ref, {
|
|
ref,
|
|
...itemData
|
|
}), () => void context.itemMap.delete(ref))), /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_core32.Slot, {
|
|
[ITEM_DATA_ATTR]: "",
|
|
ref: composedRefs,
|
|
children
|
|
});
|
|
});
|
|
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
function useCollection2(__scopeCollection) {
|
|
const context = useCollectionContext(__scopeCollection);
|
|
return import_react44.default.useCallback(() => {
|
|
if (!isWeb)
|
|
return [];
|
|
const collectionNode = context.collectionRef.current;
|
|
if (!collectionNode)
|
|
return [];
|
|
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
return Array.from(context.itemMap.values()).sort((a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));
|
|
}, [context.collectionRef, context.itemMap]);
|
|
}
|
|
__name(useCollection2, "useCollection");
|
|
return [{
|
|
Provider: CollectionProvider,
|
|
Slot: CollectionSlot,
|
|
ItemSlot: CollectionItemSlot
|
|
}, useCollection2];
|
|
}
|
|
__name(createCollection, "createCollection");
|
|
|
|
// node_modules/@tamagui/roving-focus/dist/esm/RovingFocusGroup.mjs
|
|
var import_core33 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/use-direction/dist/esm/useDirection.mjs
|
|
var React26 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
var DirectionContext = React26.createContext(void 0);
|
|
function useDirection(localDir) {
|
|
const globalDir = React26.useContext(DirectionContext);
|
|
return localDir || globalDir || "ltr";
|
|
}
|
|
__name(useDirection, "useDirection");
|
|
|
|
// node_modules/@tamagui/roving-focus/dist/esm/RovingFocusGroup.mjs
|
|
var React27 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
|
|
var EVENT_OPTIONS2 = {
|
|
bubbles: false,
|
|
cancelable: true
|
|
};
|
|
var RovingFocusGroupImpl = React27.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeRovingFocusGroup,
|
|
orientation,
|
|
loop = false,
|
|
dir,
|
|
currentTabStopId: currentTabStopIdProp,
|
|
defaultCurrentTabStopId,
|
|
onCurrentTabStopIdChange,
|
|
onEntryFocus,
|
|
...groupProps
|
|
} = props, ref = React27.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), direction = useDirection(dir), [currentTabStopId = null, setCurrentTabStopId] = useControllableState({
|
|
prop: currentTabStopIdProp,
|
|
defaultProp: defaultCurrentTabStopId ?? null,
|
|
onChange: onCurrentTabStopIdChange
|
|
}), [isTabbingBackOut, setIsTabbingBackOut] = React27.useState(false), handleEntryFocus = (0, import_core33.useEvent)(onEntryFocus), getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT), isClickFocusRef = React27.useRef(false), [focusableItemsCount, setFocusableItemsCount] = React27.useState(0);
|
|
return React27.useEffect(() => {
|
|
const node = ref.current;
|
|
if (node)
|
|
return node.addEventListener(ENTRY_FOCUS, handleEntryFocus), () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);
|
|
}, [handleEntryFocus]), /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RovingFocusProvider, {
|
|
scope: __scopeRovingFocusGroup,
|
|
orientation,
|
|
dir: direction,
|
|
loop,
|
|
currentTabStopId,
|
|
onItemFocus: React27.useCallback((tabStopId) => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),
|
|
onItemShiftTab: React27.useCallback(() => setIsTabbingBackOut(true), []),
|
|
onFocusableItemAdd: React27.useCallback(() => setFocusableItemsCount((prevCount) => prevCount + 1), []),
|
|
onFocusableItemRemove: React27.useCallback(() => setFocusableItemsCount((prevCount) => prevCount - 1), []),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core33.Stack, {
|
|
tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
|
|
"data-orientation": orientation,
|
|
...groupProps,
|
|
ref: composedRefs,
|
|
style: [{
|
|
outline: "none"
|
|
}, props.style],
|
|
onMouseDown: composeEventHandlers(props.onMouseDown, () => {
|
|
isClickFocusRef.current = true;
|
|
}),
|
|
onFocus: composeEventHandlers(props.onFocus, (event) => {
|
|
const isKeyboardFocus = !isClickFocusRef.current;
|
|
if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
|
|
const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS2);
|
|
if (event.currentTarget.dispatchEvent(entryFocusEvent), !entryFocusEvent.defaultPrevented) {
|
|
const items = getItems().filter((item) => item.focusable), activeItem = items.find((item) => item.active), currentItem = items.find((item) => item.id === currentTabStopId), candidateNodes = [activeItem, currentItem, ...items].filter(Boolean).map((item) => item.ref.current);
|
|
focusFirst2(candidateNodes);
|
|
}
|
|
}
|
|
isClickFocusRef.current = false;
|
|
}),
|
|
onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))
|
|
})
|
|
});
|
|
});
|
|
var ITEM_NAME = "RovingFocusGroupItem";
|
|
var RovingFocusGroupItem = React27.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeRovingFocusGroup,
|
|
focusable = true,
|
|
active = false,
|
|
tabStopId,
|
|
...itemProps
|
|
} = props, autoId = React27.useId(), id = tabStopId || autoId, context = useRovingFocusContext(__scopeRovingFocusGroup), isCurrentTabStop = context.currentTabStopId === id, getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT), {
|
|
onFocusableItemAdd,
|
|
onFocusableItemRemove
|
|
} = context;
|
|
return React27.useEffect(() => {
|
|
if (focusable)
|
|
return onFocusableItemAdd(), () => onFocusableItemRemove();
|
|
}, [focusable, onFocusableItemAdd, onFocusableItemRemove]), /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Collection.ItemSlot, {
|
|
__scopeCollection: __scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
|
|
id,
|
|
focusable,
|
|
active,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_core33.Stack, {
|
|
tabIndex: isCurrentTabStop ? 0 : -1,
|
|
"data-orientation": context.orientation,
|
|
...itemProps,
|
|
ref: forwardedRef,
|
|
onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {
|
|
focusable ? context.onItemFocus(id) : event.preventDefault();
|
|
}),
|
|
onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),
|
|
...isWeb && {
|
|
onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
|
|
if (event.key === "Tab" && event.shiftKey) {
|
|
context.onItemShiftTab();
|
|
return;
|
|
}
|
|
if (event.target !== event.currentTarget)
|
|
return;
|
|
const focusIntent = getFocusIntent(event, context.orientation, context.dir);
|
|
if (focusIntent !== void 0) {
|
|
event.preventDefault();
|
|
let candidateNodes = getItems().filter((item) => item.focusable).map((item) => item.ref.current);
|
|
if (focusIntent === "last")
|
|
candidateNodes.reverse();
|
|
else if (focusIntent === "prev" || focusIntent === "next") {
|
|
focusIntent === "prev" && candidateNodes.reverse();
|
|
const currentIndex = candidateNodes.indexOf(event.currentTarget);
|
|
candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
|
|
}
|
|
setTimeout(() => focusFirst2(candidateNodes));
|
|
}
|
|
})
|
|
}
|
|
})
|
|
});
|
|
});
|
|
RovingFocusGroupItem.displayName = ITEM_NAME;
|
|
var GROUP_NAME2 = "RovingFocusGroup";
|
|
var [Collection, useCollection] = createCollection(GROUP_NAME2);
|
|
var {
|
|
Provider: RovingFocusProvider,
|
|
useStyledContext: useRovingFocusContext
|
|
} = (0, import_core33.createStyledContext)();
|
|
var ROVING_FOCUS_GROUP_CONTEXT = "RovingFocusGroupContext";
|
|
var RovingFocusGroup = withStaticProperties(React27.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Collection.Provider, {
|
|
__scopeCollection: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Collection.Slot, {
|
|
__scopeCollection: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(RovingFocusGroupImpl, {
|
|
...props,
|
|
ref: forwardedRef
|
|
})
|
|
})
|
|
})), {
|
|
Item: RovingFocusGroupItem
|
|
});
|
|
RovingFocusGroup.displayName = GROUP_NAME2;
|
|
var MAP_KEY_TO_FOCUS_INTENT = {
|
|
ArrowLeft: "prev",
|
|
ArrowUp: "prev",
|
|
ArrowRight: "next",
|
|
ArrowDown: "next",
|
|
PageUp: "first",
|
|
Home: "first",
|
|
PageDown: "last",
|
|
End: "last"
|
|
};
|
|
function getDirectionAwareKey(key, dir) {
|
|
return dir !== "rtl" ? key : key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
|
|
}
|
|
__name(getDirectionAwareKey, "getDirectionAwareKey");
|
|
function getFocusIntent(event, orientation, dir) {
|
|
const key = getDirectionAwareKey(event.key, dir);
|
|
if (!(orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) && !(orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)))
|
|
return MAP_KEY_TO_FOCUS_INTENT[key];
|
|
}
|
|
__name(getFocusIntent, "getFocusIntent");
|
|
function focusFirst2(candidates) {
|
|
const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
|
|
for (const candidate of candidates)
|
|
if (candidate === PREVIOUSLY_FOCUSED_ELEMENT || (candidate.focus(), document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT))
|
|
return;
|
|
}
|
|
__name(focusFirst2, "focusFirst");
|
|
function wrapArray(array, startIndex) {
|
|
return array.map((_, index3) => array[(startIndex + index3) % array.length]);
|
|
}
|
|
__name(wrapArray, "wrapArray");
|
|
|
|
// node_modules/@tamagui/radio-group/dist/esm/createRadioGroup.mjs
|
|
var import_react45 = require("react");
|
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
var ensureContext2 = /* @__PURE__ */ __name((x) => {
|
|
x.context || (x.context = RadioGroupContext);
|
|
}, "ensureContext");
|
|
var RadioGroupContext = (0, import_react45.createContext)({});
|
|
var RadioGroupItemContext = (0, import_react45.createContext)({
|
|
checked: false,
|
|
disabled: false
|
|
});
|
|
function createRadioGroup(createProps) {
|
|
const {
|
|
disableActiveTheme,
|
|
Frame: Frame2 = RadioGroupFrame,
|
|
Indicator = RadioGroupIndicatorFrame,
|
|
Item = RadioGroupItemFrame
|
|
} = createProps;
|
|
ensureContext2(Frame2), ensureContext2(Indicator), ensureContext2(Item);
|
|
const RadioGroupImp = Frame2.styleable((props, ref) => {
|
|
const {
|
|
value,
|
|
defaultValue: defaultValue2,
|
|
onValueChange,
|
|
required = false,
|
|
disabled = false,
|
|
name,
|
|
native,
|
|
accentColor,
|
|
orientation = "vertical",
|
|
...rest
|
|
} = props, {
|
|
providerValue,
|
|
frameAttrs,
|
|
rovingFocusGroupAttrs
|
|
} = useRadioGroup({
|
|
orientation,
|
|
name,
|
|
defaultValue: defaultValue2,
|
|
value,
|
|
onValueChange,
|
|
required,
|
|
disabled,
|
|
native,
|
|
accentColor
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupContext.Provider, {
|
|
value: providerValue,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RovingFocusGroup, {
|
|
...rovingFocusGroupAttrs,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupFrame, {
|
|
...frameAttrs,
|
|
ref,
|
|
...rest
|
|
})
|
|
})
|
|
});
|
|
}), RadioGroupItemImp = Item.styleable((props, ref) => {
|
|
const {
|
|
value,
|
|
labelledBy,
|
|
onPress,
|
|
//@ts-expect-error
|
|
onKeyDown,
|
|
disabled,
|
|
id,
|
|
...rest
|
|
} = props, {
|
|
providerValue,
|
|
bubbleInput,
|
|
rovingFocusGroupAttrs,
|
|
frameAttrs,
|
|
isFormControl,
|
|
native
|
|
} = useRadioGroupItem({
|
|
radioGroupContext: RadioGroupContext,
|
|
value,
|
|
id,
|
|
labelledBy,
|
|
disabled,
|
|
onPress,
|
|
onKeyDown
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupItemContext.Provider, {
|
|
value: providerValue,
|
|
children: import_core34.isWeb && native ? bubbleInput : /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, {
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RovingFocusGroup.Item, {
|
|
...rovingFocusGroupAttrs,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupItemFrame, {
|
|
...frameAttrs,
|
|
ref,
|
|
...rest
|
|
})
|
|
}), isFormControl && bubbleInput]
|
|
})
|
|
});
|
|
});
|
|
RadioGroupItemImp.displayName = "RadioGroupItem";
|
|
const RadioIndicator = Indicator.styleable((props, forwardedRef) => {
|
|
const {
|
|
forceMount,
|
|
disabled,
|
|
...indicatorProps
|
|
} = props, {
|
|
checked,
|
|
...useIndicatorRest
|
|
} = useRadioGroupItemIndicator({
|
|
radioGroupItemContext: RadioGroupItemContext,
|
|
disabled
|
|
});
|
|
return forceMount || checked ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Indicator, {
|
|
...useIndicatorRest,
|
|
ref: forwardedRef,
|
|
...indicatorProps
|
|
}) : null;
|
|
});
|
|
RadioIndicator.displayName = "RadioIndicator";
|
|
const RadioGroup2 = (0, import_core34.withStaticProperties)(RadioGroupImp, {
|
|
Item: RadioGroupItemImp,
|
|
Indicator: RadioIndicator
|
|
});
|
|
return RadioGroup2.displayName = "RadioGroup", RadioGroup2;
|
|
}
|
|
__name(createRadioGroup, "createRadioGroup");
|
|
|
|
// node_modules/@tamagui/radio-group/dist/esm/RadioGroupStyledContext.mjs
|
|
var import_core35 = require("@tamagui/core");
|
|
var RadioGroupStyledContext = (0, import_core35.createStyledContext)({
|
|
size: "$true",
|
|
scaleIcon: 1
|
|
});
|
|
|
|
// node_modules/@tamagui/radio-group/dist/esm/index.mjs
|
|
var RadioGroup = createRadioGroup({
|
|
Frame: RadioGroupFrame,
|
|
Indicator: RadioGroupIndicatorFrame,
|
|
Item: RadioGroupItemFrame
|
|
});
|
|
|
|
// node_modules/@tamagui/select/dist/esm/Select.mjs
|
|
var import_core43 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/separator/dist/esm/Separator.mjs
|
|
var import_core36 = require("@tamagui/core");
|
|
var Separator = (0, import_core36.styled)(import_core36.Stack, {
|
|
name: "Separator",
|
|
borderColor: "$borderColor",
|
|
flexShrink: 0,
|
|
borderWidth: 0,
|
|
flex: 1,
|
|
height: 0,
|
|
maxHeight: 0,
|
|
borderBottomWidth: 1,
|
|
y: -0.5,
|
|
variants: {
|
|
vertical: {
|
|
true: {
|
|
y: 0,
|
|
x: -0.5,
|
|
height: isWeb ? "initial" : "auto",
|
|
// maxHeight auto WILL BE passed to style attribute, but for some reason not used?
|
|
// almost seems like a react or browser bug, but for now `initial` works
|
|
// also, it doesn't happen for `height`, but for consistency using the same values
|
|
maxHeight: isWeb ? "initial" : "auto",
|
|
width: 0,
|
|
maxWidth: 0,
|
|
borderBottomWidth: 0,
|
|
borderRightWidth: 1
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/select/dist/esm/Select.mjs
|
|
var React33 = __toESM(require("react"), 1);
|
|
|
|
// node_modules/@tamagui/use-debounce/dist/esm/index.mjs
|
|
var import_react46 = require("react");
|
|
function debounce(func, wait, leading) {
|
|
let timeout, isCancelled = false;
|
|
function debounced() {
|
|
isCancelled = false;
|
|
const args = arguments;
|
|
leading && !timeout && func.apply(this, args), clearTimeout(timeout), timeout = setTimeout(() => {
|
|
timeout = null, leading || isCancelled || func.apply(this, args), isCancelled = false;
|
|
}, wait);
|
|
}
|
|
__name(debounced, "debounced");
|
|
return debounced.cancel = () => {
|
|
isCancelled = true;
|
|
}, debounced;
|
|
}
|
|
__name(debounce, "debounce");
|
|
var defaultOpts = {
|
|
leading: false
|
|
};
|
|
function useDebounce(fn, wait, options = defaultOpts, mountArgs = [fn]) {
|
|
const dbEffect = (0, import_react46.useRef)(null);
|
|
return (0, import_react46.useEffect)(() => () => {
|
|
var _a;
|
|
(_a = dbEffect.current) == null ? void 0 : _a.cancel();
|
|
}, []), (0, import_react46.useMemo)(() => (dbEffect.current = debounce(fn, wait, options.leading), dbEffect.current), [options.leading, ...mountArgs]);
|
|
}
|
|
__name(useDebounce, "useDebounce");
|
|
function useDebounceValue(val, amt = 0) {
|
|
const [state, setState] = (0, import_react46.useState)(val);
|
|
return (0, import_react46.useEffect)(() => {
|
|
const tm = setTimeout(() => {
|
|
setState((prev) => prev === val ? prev : val);
|
|
}, amt);
|
|
return () => {
|
|
clearTimeout(tm);
|
|
};
|
|
}, [val]), state;
|
|
}
|
|
__name(useDebounceValue, "useDebounceValue");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/constants.mjs
|
|
var SELECT_NAME = "Select";
|
|
var SCROLL_ARROW_THRESHOLD = 8;
|
|
var VIEWPORT_NAME = "SelectViewport";
|
|
|
|
// node_modules/@tamagui/select/dist/esm/context.mjs
|
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
var [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME);
|
|
var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
|
|
var [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME);
|
|
var [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME);
|
|
var ForwardSelectContext = /* @__PURE__ */ __name(({
|
|
__scopeSelect,
|
|
context,
|
|
itemContext,
|
|
children
|
|
}) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SelectProvider, {
|
|
isInSheet: true,
|
|
scope: __scopeSelect,
|
|
...context,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SelectItemParentProvider, {
|
|
scope: __scopeSelect,
|
|
...itemContext,
|
|
children
|
|
})
|
|
}), "ForwardSelectContext");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectContent.mjs
|
|
var import_core38 = require("@tamagui/core");
|
|
var import_react48 = require("react");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/useSelectBreakpointActive.mjs
|
|
var import_core37 = require("@tamagui/core");
|
|
var useSelectBreakpointActive = /* @__PURE__ */ __name((sheetBreakpoint) => {
|
|
const media2 = (0, import_core37.useMedia)();
|
|
return sheetBreakpoint ? sheetBreakpoint === true ? true : sheetBreakpoint ? media2[sheetBreakpoint] : false : false;
|
|
}, "useSelectBreakpointActive");
|
|
var useShowSelectSheet = /* @__PURE__ */ __name((context) => {
|
|
const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
return context.open === false ? false : breakpointActive;
|
|
}, "useShowSelectSheet");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectContent.mjs
|
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
var CONTENT_NAME3 = "SelectContent";
|
|
var SelectContent = /* @__PURE__ */ __name(({
|
|
children,
|
|
__scopeSelect,
|
|
zIndex: zIndex2 = 1e3,
|
|
...focusScopeProps
|
|
}) => {
|
|
const context = useSelectContext(CONTENT_NAME3, __scopeSelect), itemParentContext = useSelectItemParentContext(CONTENT_NAME3, __scopeSelect), themeName = (0, import_core38.useThemeName)(), showSheet = useShowSelectSheet(context), contents = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_core38.Theme, {
|
|
forceClassName: true,
|
|
name: themeName,
|
|
children
|
|
}), touch = (0, import_core38.useIsTouchDevice)(), overlayStyle = (0, import_react48.useMemo)(() => ({
|
|
zIndex: zIndex2,
|
|
pointerEvents: context.open ? "auto" : "none"
|
|
}), [context.open]);
|
|
return itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, {
|
|
children
|
|
}) : showSheet ? context.open ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, {
|
|
children: contents
|
|
}) : null : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(FloatingPortal, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(FloatingOverlay, {
|
|
style: overlayStyle,
|
|
lockScroll: !context.disablePreventBodyScroll && !!context.open && !touch,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(FocusScope, {
|
|
loop: true,
|
|
enabled: !!context.open,
|
|
trapped: true,
|
|
...focusScopeProps,
|
|
children: contents
|
|
})
|
|
})
|
|
});
|
|
}, "SelectContent");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectImpl.mjs
|
|
var import_core39 = require("@tamagui/core");
|
|
var React28 = __toESM(require("react"), 1);
|
|
var import_react_dom5 = require("react-dom");
|
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
var SelectInlineImpl = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
__scopeSelect,
|
|
children,
|
|
open = false,
|
|
selectedIndexRef,
|
|
listContentRef
|
|
} = props, selectContext = useSelectContext("SelectSheetImpl", __scopeSelect), selectItemParentContext = useSelectItemParentContext("SelectSheetImpl", __scopeSelect), {
|
|
setActiveIndex,
|
|
selectedIndex,
|
|
activeIndex,
|
|
forceUpdate
|
|
} = selectContext, {
|
|
setOpen,
|
|
setSelectedIndex
|
|
} = selectItemParentContext, [scrollTop, setScrollTop] = React28.useState(0), touch = (0, import_core39.useIsTouchDevice)(), listItemsRef = React28.useRef([]), overflowRef = React28.useRef(null), upArrowRef = React28.useRef(null), downArrowRef = React28.useRef(null), allowSelectRef = React28.useRef(false), allowMouseUpRef = React28.useRef(true), selectTimeoutRef = React28.useRef(), state = React28.useRef({
|
|
isMouseOutside: false,
|
|
isTyping: false
|
|
}), [controlledScrolling, setControlledScrolling] = React28.useState(false), [fallback, setFallback] = React28.useState(false), [innerOffset, setInnerOffset] = React28.useState(0), [blockSelection, setBlockSelection] = React28.useState(false), floatingStyle = React28.useRef({});
|
|
useIsomorphicLayoutEffect(() => {
|
|
queueMicrotask(() => {
|
|
open || (setScrollTop(0), setFallback(false), setActiveIndex(null), setControlledScrolling(false));
|
|
});
|
|
}, [open, setActiveIndex]), isWeb && isClient && useIsomorphicLayoutEffect(() => {
|
|
if (!open)
|
|
return;
|
|
const mouseUp = /* @__PURE__ */ __name((e) => {
|
|
state.current.isMouseOutside && setOpen(false);
|
|
}, "mouseUp");
|
|
return document.addEventListener("mouseup", mouseUp), () => {
|
|
document.removeEventListener("mouseup", mouseUp);
|
|
};
|
|
}, [open]);
|
|
const {
|
|
x,
|
|
y,
|
|
strategy,
|
|
context,
|
|
refs,
|
|
update
|
|
} = useFloating3({
|
|
open,
|
|
onOpenChange: setOpen,
|
|
placement: "bottom-start",
|
|
whileElementsMounted: autoUpdate,
|
|
// biome-ignore lint/correctness/noConstantCondition: <explanation>
|
|
middleware: [size5({
|
|
apply({
|
|
rects: {
|
|
reference: {
|
|
width
|
|
}
|
|
}
|
|
}) {
|
|
Object.assign(floatingStyle.current, {
|
|
minWidth: width + 8
|
|
}), refs.floating.current && Object.assign(refs.floating.current.style, floatingStyle.current);
|
|
}
|
|
}), inner({
|
|
listRef: listItemsRef,
|
|
overflowRef,
|
|
index: selectedIndex,
|
|
offset: innerOffset,
|
|
onFallbackChange: setFallback,
|
|
padding: 10,
|
|
minItemsVisible: touch ? 10 : 4,
|
|
referenceOverflowThreshold: 20
|
|
}), offset3({
|
|
crossAxis: -5
|
|
})]
|
|
}), floatingRef = refs.floating, showUpArrow = open && scrollTop > SCROLL_ARROW_THRESHOLD, showDownArrow = open && floatingRef.current && scrollTop < floatingRef.current.scrollHeight - floatingRef.current.clientHeight - SCROLL_ARROW_THRESHOLD, isScrollable = showDownArrow || showUpArrow;
|
|
useIsomorphicLayoutEffect(() => (window.addEventListener("resize", update), open && update(), () => window.removeEventListener("resize", update)), [update, open]);
|
|
const onMatch = (0, import_core39.useEvent)((index3) => (open ? setActiveIndex : setSelectedIndex)(index3)), interactionsProps = [useClick(context, {
|
|
event: "mousedown",
|
|
keyboardHandlers: false
|
|
}), useDismiss(context, {
|
|
outsidePress: false
|
|
}), useRole(context, {
|
|
role: "listbox"
|
|
}), useInnerOffset(context, {
|
|
enabled: !fallback && isScrollable,
|
|
onChange: setInnerOffset,
|
|
overflowRef,
|
|
scrollRef: refs.floating
|
|
}), useListNavigation(context, {
|
|
listRef: listItemsRef,
|
|
activeIndex: activeIndex || 0,
|
|
selectedIndex,
|
|
onNavigate: setActiveIndex,
|
|
scrollItemIntoView: false
|
|
}), useTypeahead(context, {
|
|
listRef: listContentRef,
|
|
onMatch,
|
|
selectedIndex,
|
|
activeIndex,
|
|
onTypingChange: (e) => {
|
|
state.current.isTyping = e;
|
|
}
|
|
})], interactions = useInteractions(
|
|
// unfortunately these memos will just always break due to floating-ui context always changing :/
|
|
React28.useMemo(() => interactionsProps, interactionsProps)
|
|
), interactionsContext = React28.useMemo(() => ({
|
|
...interactions,
|
|
getReferenceProps() {
|
|
return interactions.getReferenceProps({
|
|
ref: refs.reference,
|
|
className: "SelectTrigger",
|
|
onKeyDown(event) {
|
|
(event.key === "Enter" || event.code === "Space" || event.key === " " && !state.current.isTyping) && (event.preventDefault(), setOpen(true));
|
|
}
|
|
});
|
|
},
|
|
getFloatingProps(props2) {
|
|
return interactions.getFloatingProps({
|
|
ref: refs.floating,
|
|
className: "Select",
|
|
...props2,
|
|
style: {
|
|
position: strategy,
|
|
top: y ?? "",
|
|
left: x ?? "",
|
|
outline: 0,
|
|
scrollbarWidth: "none",
|
|
...floatingStyle.current,
|
|
...props2 == null ? void 0 : props2.style
|
|
},
|
|
onPointerEnter() {
|
|
setControlledScrolling(false), state.current.isMouseOutside = false;
|
|
},
|
|
onPointerLeave() {
|
|
state.current.isMouseOutside = true;
|
|
},
|
|
onPointerMove() {
|
|
state.current.isMouseOutside = false, setControlledScrolling(false);
|
|
},
|
|
onKeyDown() {
|
|
setControlledScrolling(true);
|
|
},
|
|
onContextMenu(e) {
|
|
e.preventDefault();
|
|
},
|
|
onScroll(event) {
|
|
(0, import_react_dom5.flushSync)(() => {
|
|
setScrollTop(event.currentTarget.scrollTop);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}), [refs.reference.current, x, y, refs.floating.current, interactions]);
|
|
return useIsomorphicLayoutEffect(() => {
|
|
if (open)
|
|
return selectTimeoutRef.current = setTimeout(() => {
|
|
allowSelectRef.current = true;
|
|
}, 300), () => {
|
|
clearTimeout(selectTimeoutRef.current);
|
|
};
|
|
allowSelectRef.current = false, allowMouseUpRef.current = true, setInnerOffset(0), setFallback(false), setBlockSelection(false);
|
|
}, [open]), useIsomorphicLayoutEffect(() => {
|
|
!open && state.current.isMouseOutside && (state.current.isMouseOutside = false);
|
|
}, [open]), useIsomorphicLayoutEffect(() => {
|
|
function onPointerDown(e) {
|
|
var _a, _b, _c;
|
|
const target = e.target;
|
|
((_a = refs.floating.current) == null ? void 0 : _a.contains(target)) || ((_b = upArrowRef.current) == null ? void 0 : _b.contains(target)) || ((_c = downArrowRef.current) == null ? void 0 : _c.contains(target)) || (setOpen(false), setControlledScrolling(false));
|
|
}
|
|
__name(onPointerDown, "onPointerDown");
|
|
if (open)
|
|
return document.addEventListener("pointerdown", onPointerDown), () => {
|
|
document.removeEventListener("pointerdown", onPointerDown);
|
|
};
|
|
}, [open, refs, setOpen]), React28.useEffect(() => {
|
|
var _a, _b;
|
|
open && controlledScrolling && activeIndex != null && ((_a = listItemsRef.current[activeIndex]) == null ? void 0 : _a.scrollIntoView({
|
|
block: "nearest"
|
|
})), setScrollTop(((_b = refs.floating.current) == null ? void 0 : _b.scrollTop) ?? 0);
|
|
}, [open, refs, controlledScrolling, activeIndex]), React28.useEffect(() => {
|
|
var _a;
|
|
open && fallback && selectedIndex != null && ((_a = listItemsRef.current[selectedIndex]) == null ? void 0 : _a.scrollIntoView({
|
|
block: "nearest"
|
|
}));
|
|
}, [open, fallback, selectedIndex]), useIsomorphicLayoutEffect(() => {
|
|
refs.floating.current && fallback && (refs.floating.current.style.maxHeight = "");
|
|
}, [refs, fallback]), /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectProvider, {
|
|
scope: __scopeSelect,
|
|
...selectContext,
|
|
setScrollTop,
|
|
setInnerOffset,
|
|
fallback,
|
|
floatingContext: context,
|
|
activeIndex,
|
|
canScrollDown: !!showDownArrow,
|
|
canScrollUp: !!showUpArrow,
|
|
controlledScrolling,
|
|
blockSelection,
|
|
upArrowRef,
|
|
downArrowRef,
|
|
update,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectItemParentProvider, {
|
|
scope: __scopeSelect,
|
|
...selectItemParentContext,
|
|
allowMouseUpRef,
|
|
allowSelectRef,
|
|
dataRef: context.dataRef,
|
|
interactions: interactionsContext,
|
|
listRef: listItemsRef,
|
|
selectTimeoutRef,
|
|
children
|
|
})
|
|
});
|
|
}, "SelectInlineImpl");
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectItem.mjs
|
|
var React29 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
var ITEM_NAME2 = "SelectItem";
|
|
var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME2);
|
|
var SelectItem = ListItemFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopeSelect,
|
|
value,
|
|
disabled = false,
|
|
textValue: textValueProp,
|
|
index: index3,
|
|
...restProps
|
|
} = props, {
|
|
props: listItemProps
|
|
} = useListItem({
|
|
...!props.unstyled && {
|
|
ellipse: true
|
|
},
|
|
...restProps
|
|
}), context = useSelectItemParentContext(ITEM_NAME2, __scopeSelect), {
|
|
setSelectedIndex,
|
|
listRef,
|
|
setOpen,
|
|
onChange,
|
|
activeIndexSubscribe,
|
|
valueSubscribe,
|
|
allowMouseUpRef,
|
|
allowSelectRef,
|
|
setValueAtIndex,
|
|
selectTimeoutRef,
|
|
dataRef,
|
|
interactions,
|
|
shouldRenderWebNative,
|
|
size: size6,
|
|
onActiveChange,
|
|
initialValue: initialValue2
|
|
} = context, [isSelected, setSelected] = React29.useState(initialValue2 === value);
|
|
React29.useEffect(() => activeIndexSubscribe((i) => {
|
|
var _a;
|
|
index3 === i && (onActiveChange(value, index3), (_a = listRef == null ? void 0 : listRef.current[index3]) == null ? void 0 : _a.focus());
|
|
}), [index3]), React29.useEffect(() => valueSubscribe((val) => {
|
|
setSelected(val === value);
|
|
}), [value]);
|
|
const textId = React29.useId(), composedRefs = useComposedRefs(forwardedRef, (node) => {
|
|
isWeb && node instanceof HTMLElement && listRef && (listRef.current[index3] = node);
|
|
});
|
|
useIsomorphicLayoutEffect(() => {
|
|
setValueAtIndex(index3, value);
|
|
}, [index3, setValueAtIndex, value]);
|
|
function handleSelect() {
|
|
setSelectedIndex(index3), onChange(value), setOpen(false);
|
|
}
|
|
__name(handleSelect, "handleSelect");
|
|
const selectItemProps = React29.useMemo(() => interactions ? interactions.getItemProps({
|
|
onTouchMove() {
|
|
allowSelectRef.current = true, allowMouseUpRef.current = false;
|
|
},
|
|
onTouchEnd() {
|
|
allowSelectRef.current = false, allowMouseUpRef.current = true;
|
|
},
|
|
onKeyDown(event) {
|
|
event.key === "Enter" || event.key === " " && !(dataRef == null ? void 0 : dataRef.current.typing) ? (event.preventDefault(), handleSelect()) : allowSelectRef.current = true;
|
|
},
|
|
onClick() {
|
|
allowSelectRef.current && handleSelect();
|
|
},
|
|
onMouseUp() {
|
|
allowMouseUpRef.current && (allowSelectRef.current && handleSelect(), clearTimeout(selectTimeoutRef.current), selectTimeoutRef.current = setTimeout(() => {
|
|
allowSelectRef.current = true;
|
|
}));
|
|
}
|
|
}) : {
|
|
onPress: handleSelect
|
|
}, [handleSelect]);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SelectItemContextProvider, {
|
|
scope: __scopeSelect,
|
|
value,
|
|
textId: textId || "",
|
|
isSelected,
|
|
children: shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("option", {
|
|
value,
|
|
children: props.children
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ListItemFrame, {
|
|
tag: "div",
|
|
componentName: ITEM_NAME2,
|
|
ref: composedRefs,
|
|
"aria-labelledby": textId,
|
|
"aria-selected": isSelected,
|
|
"data-state": isSelected ? "active" : "inactive",
|
|
"aria-disabled": disabled || void 0,
|
|
"data-disabled": disabled ? "" : void 0,
|
|
tabIndex: disabled ? void 0 : -1,
|
|
...!props.unstyled && {
|
|
backgrounded: true,
|
|
pressTheme: true,
|
|
hoverTheme: true,
|
|
focusTheme: true,
|
|
cursor: "default",
|
|
size: size6,
|
|
outlineOffset: -0.5,
|
|
focusVisibleStyle: {
|
|
outlineColor: "$outlineColor",
|
|
outlineWidth: 1,
|
|
outlineStyle: "solid"
|
|
}
|
|
},
|
|
...listItemProps,
|
|
...selectItemProps
|
|
})
|
|
});
|
|
}, {
|
|
disableTheme: true
|
|
});
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectItemText.mjs
|
|
var import_core40 = require("@tamagui/core");
|
|
var React30 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
var ITEM_TEXT_NAME = "SelectItemText";
|
|
var SelectItemTextFrame = (0, import_core40.styled)(SizableText, {
|
|
name: ITEM_TEXT_NAME,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
userSelect: "none",
|
|
color: "$color",
|
|
ellipse: true
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var SelectItemText = SelectItemTextFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopeSelect,
|
|
className,
|
|
...itemTextProps
|
|
} = props, context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(ITEM_TEXT_NAME, __scopeSelect), ref = React30.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect), contents = React30.useRef();
|
|
return contents.current = /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectItemTextFrame, {
|
|
className,
|
|
size: itemParentContext.size,
|
|
id: itemContext.textId,
|
|
...itemTextProps,
|
|
ref: composedRefs
|
|
}), React30.useEffect(() => {
|
|
itemParentContext.initialValue === itemContext.value && !context.selectedIndex && context.setSelectedItem(contents.current);
|
|
}, []), React30.useEffect(() => itemParentContext.valueSubscribe((val) => {
|
|
val === itemContext.value && context.setSelectedItem(contents.current);
|
|
}), [itemContext.value]), itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {
|
|
children: props.children
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, {
|
|
children: contents.current
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectScrollButton.mjs
|
|
var React31 = __toESM(require("react"), 1);
|
|
var import_react_dom6 = require("react-dom");
|
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
|
|
var SelectScrollUpButton = React31.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectScrollButtonImpl, {
|
|
componentName: SCROLL_UP_BUTTON_NAME,
|
|
...props,
|
|
dir: "up",
|
|
ref: forwardedRef
|
|
}));
|
|
SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
|
|
var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
|
|
var SelectScrollDownButton = React31.forwardRef((props, forwardedRef) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectScrollButtonImpl, {
|
|
componentName: SCROLL_DOWN_BUTTON_NAME,
|
|
...props,
|
|
dir: "down",
|
|
ref: forwardedRef
|
|
}));
|
|
SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
|
|
var SelectScrollButtonImpl = React31.memo(React31.forwardRef((props, forwardedRef) => {
|
|
var _a, _b;
|
|
const {
|
|
__scopeSelect,
|
|
dir,
|
|
componentName,
|
|
...scrollIndicatorProps
|
|
} = props, {
|
|
forceUpdate,
|
|
open,
|
|
fallback,
|
|
setScrollTop,
|
|
setInnerOffset,
|
|
...context
|
|
} = useSelectContext(componentName, __scopeSelect), floatingRef = (_a = context.floatingContext) == null ? void 0 : _a.refs.floating, statusRef = React31.useRef("idle"), isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"], frameRef = React31.useRef(), {
|
|
x,
|
|
y,
|
|
refs,
|
|
strategy
|
|
} = useFloating3({
|
|
open: open && isVisible,
|
|
strategy: "fixed",
|
|
elements: {
|
|
reference: floatingRef == null ? void 0 : floatingRef.current
|
|
},
|
|
placement: dir === "up" ? "top" : "bottom",
|
|
middleware: [offset3(({
|
|
rects
|
|
}) => -rects.floating.height)],
|
|
whileElementsMounted: (...args) => autoUpdate(...args, {
|
|
animationFrame: true
|
|
})
|
|
}), composedRef = useComposedRefs(forwardedRef, refs.setFloating);
|
|
if (!isVisible)
|
|
return null;
|
|
const onScroll = /* @__PURE__ */ __name((amount) => {
|
|
const floating = floatingRef;
|
|
floating && (fallback ? floating.current && (floating.current.scrollTop -= amount, (0, import_react_dom6.flushSync)(() => {
|
|
var _a2;
|
|
return setScrollTop(((_a2 = floating.current) == null ? void 0 : _a2.scrollTop) ?? 0);
|
|
})) : (0, import_react_dom6.flushSync)(() => setInnerOffset((value) => value - amount)));
|
|
}, "onScroll");
|
|
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(YStack, {
|
|
ref: composedRef,
|
|
componentName,
|
|
"aria-hidden": true,
|
|
...scrollIndicatorProps,
|
|
zIndex: 1e3,
|
|
position: strategy,
|
|
left: x || 0,
|
|
top: y || 0,
|
|
width: `calc(${(((_b = floatingRef == null ? void 0 : floatingRef.current) == null ? void 0 : _b.offsetWidth) ?? 0) - 2}px)`,
|
|
onPointerEnter: () => {
|
|
statusRef.current = "active";
|
|
let prevNow = Date.now();
|
|
function frame() {
|
|
const element = floatingRef == null ? void 0 : floatingRef.current;
|
|
if (element) {
|
|
const currentNow = Date.now(), msElapsed = currentNow - prevNow;
|
|
prevNow = currentNow;
|
|
const pixelsToScroll = msElapsed / 2, remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop, scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
|
|
onScroll(dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)), scrollRemaining && (frameRef.current = requestAnimationFrame(frame));
|
|
}
|
|
}
|
|
__name(frame, "frame");
|
|
cancelAnimationFrame(frameRef.current), frameRef.current = requestAnimationFrame(frame);
|
|
},
|
|
onPointerLeave: () => {
|
|
statusRef.current = "idle", cancelAnimationFrame(frameRef.current);
|
|
}
|
|
});
|
|
}));
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectTrigger.mjs
|
|
var import_core41 = require("@tamagui/core");
|
|
var React32 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
var TRIGGER_NAME4 = "SelectTrigger";
|
|
var isPointerCoarse = import_core41.isWeb && import_core41.isClient ? window.matchMedia("(pointer:coarse)").matches : true;
|
|
var SelectTrigger = React32.forwardRef(function(props, forwardedRef) {
|
|
var _a;
|
|
const {
|
|
__scopeSelect,
|
|
disabled = false,
|
|
unstyled = false,
|
|
...triggerProps
|
|
} = props, context = useSelectContext(TRIGGER_NAME4, __scopeSelect), itemParentContext = useSelectItemParentContext(TRIGGER_NAME4, __scopeSelect), composedRefs = useComposedRefs(forwardedRef, (_a = context.floatingContext) == null ? void 0 : _a.refs.setReference);
|
|
return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(ListItem2, {
|
|
componentName: TRIGGER_NAME4,
|
|
unstyled,
|
|
tag: "button",
|
|
type: "button",
|
|
id: itemParentContext.id,
|
|
...!unstyled && {
|
|
backgrounded: true,
|
|
radiused: true,
|
|
hoverTheme: true,
|
|
pressTheme: true,
|
|
focusable: true,
|
|
focusVisibleStyle: {
|
|
outlineStyle: "solid",
|
|
outlineWidth: 2,
|
|
outlineColor: "$outlineColor"
|
|
},
|
|
borderWidth: 1,
|
|
size: itemParentContext.size
|
|
},
|
|
"aria-expanded": context.open,
|
|
"aria-autocomplete": "none",
|
|
dir: context.dir,
|
|
disabled,
|
|
"data-disabled": disabled ? "" : void 0,
|
|
...triggerProps,
|
|
ref: composedRefs,
|
|
...itemParentContext.interactions ? {
|
|
...itemParentContext.interactions.getReferenceProps(),
|
|
...isPointerCoarse ? {
|
|
onPress() {
|
|
itemParentContext.setOpen(!context.open);
|
|
}
|
|
} : {
|
|
onMouseDown() {
|
|
var _a2;
|
|
(_a2 = context.floatingContext) == null ? void 0 : _a2.update(), itemParentContext.setOpen(!context.open);
|
|
}
|
|
}
|
|
} : {
|
|
onPress() {
|
|
itemParentContext.setOpen(!context.open);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/select/dist/esm/SelectViewport.mjs
|
|
var import_core42 = require("@tamagui/core");
|
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
var SelectViewportFrame = (0, import_core42.styled)(ThemeableStack, {
|
|
name: VIEWPORT_NAME,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$2",
|
|
backgroundColor: "$background",
|
|
elevate: true,
|
|
bordered: true,
|
|
userSelect: "none",
|
|
outlineWidth: 0
|
|
}
|
|
},
|
|
size: {
|
|
"...size": (val, {
|
|
tokens: tokens2
|
|
}) => ({
|
|
borderRadius: tokens2.radius[val] ?? val
|
|
})
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var SelectViewport = SelectViewportFrame.styleable(function(props, forwardedRef) {
|
|
var _a;
|
|
const {
|
|
__scopeSelect,
|
|
children,
|
|
disableScroll,
|
|
...viewportProps
|
|
} = props, context = useSelectContext(VIEWPORT_NAME, __scopeSelect), itemContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect), breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
if (useIsomorphicLayoutEffect(() => {
|
|
context.update && context.update();
|
|
}, [breakpointActive]), itemContext.shouldRenderWebNative)
|
|
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, {
|
|
children
|
|
});
|
|
if (breakpointActive || !isWeb)
|
|
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(PortalItem, {
|
|
hostName: `${context.scopeKey}SheetContents`,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ForwardSelectContext, {
|
|
__scopeSelect,
|
|
itemContext,
|
|
context,
|
|
children
|
|
})
|
|
});
|
|
if (!itemContext.interactions)
|
|
return process.env.NODE_ENV === "development" && console.warn("No interactions provided to Select, potentially missing Adapt"), null;
|
|
const {
|
|
style,
|
|
// remove this, it was set to "Select" always
|
|
className,
|
|
...floatingProps
|
|
} = itemContext.interactions.getFloatingProps(), composedRefs = composeRefs(forwardedRef, (_a = context.floatingContext) == null ? void 0 : _a.refs.setFloating);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_jsx_runtime47.Fragment, {
|
|
children: [!disableScroll && !props.unstyled && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("style", {
|
|
dangerouslySetInnerHTML: {
|
|
__html: selectViewportCSS
|
|
}
|
|
}), /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(AnimatePresence, {
|
|
children: context.open ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(FloatingFocusManager, {
|
|
context: context.floatingContext,
|
|
modal: false,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SelectViewportFrame, {
|
|
size: itemContext.size,
|
|
role: "presentation",
|
|
...viewportProps,
|
|
...style,
|
|
...floatingProps,
|
|
...!props.unstyled && {
|
|
overflowY: disableScroll ? void 0 : style.overflow ?? "auto"
|
|
},
|
|
ref: composedRefs,
|
|
children
|
|
}, "select-viewport")
|
|
}) : null
|
|
}), !context.open && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", {
|
|
style: {
|
|
display: "none"
|
|
},
|
|
children: props.children
|
|
})]
|
|
});
|
|
});
|
|
var selectViewportCSS = `
|
|
.is_SelectViewport {
|
|
scrollbar-width: none;
|
|
-webkit-overflow-scrolling: touch;
|
|
overscroll-behavior: contain;
|
|
}
|
|
|
|
.is_SelectViewport::-webkit-scrollbar{
|
|
display:none
|
|
}
|
|
`;
|
|
|
|
// node_modules/@tamagui/select/dist/esm/Select.mjs
|
|
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
var VALUE_NAME = "SelectValue";
|
|
var SelectValueFrame = (0, import_core43.styled)(SizableText, {
|
|
name: VALUE_NAME,
|
|
userSelect: "none"
|
|
});
|
|
var SelectValue = SelectValueFrame.styleable(function({
|
|
__scopeSelect,
|
|
children: childrenProp,
|
|
placeholder,
|
|
...props
|
|
}, forwardedRef) {
|
|
const context = useSelectContext(VALUE_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(VALUE_NAME, __scopeSelect), composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange), children = childrenProp ?? context.selectedItem, selectValueChildren = context.value == null || context.value === "" ? placeholder ?? children : children;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectValueFrame, {
|
|
...!props.unstyled && {
|
|
size: itemParentContext.size,
|
|
ellipse: true,
|
|
// we don't want events from the portalled `SelectValue` children to bubble
|
|
// through the item they came from
|
|
pointerEvents: "none"
|
|
},
|
|
ref: composedRefs,
|
|
...props,
|
|
children: unwrapSelectItem(selectValueChildren)
|
|
});
|
|
});
|
|
function unwrapSelectItem(selectValueChildren) {
|
|
return React33.Children.map(selectValueChildren, (child) => {
|
|
var _a, _b, _c;
|
|
if (child) {
|
|
if (((_b = (_a = child.type) == null ? void 0 : _a.staticConfig) == null ? void 0 : _b.componentName) === ITEM_TEXT_NAME)
|
|
return child.props.children;
|
|
if ((_c = child.props) == null ? void 0 : _c.children)
|
|
return unwrapSelectItem(child.props.children);
|
|
}
|
|
return child;
|
|
});
|
|
}
|
|
__name(unwrapSelectItem, "unwrapSelectItem");
|
|
var SelectIcon = (0, import_core43.styled)(XStack, {
|
|
name: "SelectIcon",
|
|
// @ts-ignore
|
|
"aria-hidden": true,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Paragraph, {
|
|
children: "\u25BC"
|
|
})
|
|
});
|
|
var ITEM_INDICATOR_NAME = "SelectItemIndicator";
|
|
var SelectItemIndicatorFrame = (0, import_core43.styled)(XStack, {
|
|
name: ITEM_TEXT_NAME
|
|
});
|
|
var SelectItemIndicator = React33.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSelect,
|
|
...itemIndicatorProps
|
|
} = props, context = useSelectItemParentContext(ITEM_INDICATOR_NAME, __scopeSelect), itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
|
|
return context.shouldRenderWebNative ? null : itemContext.isSelected ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectItemIndicatorFrame, {
|
|
"aria-hidden": true,
|
|
...itemIndicatorProps,
|
|
ref: forwardedRef
|
|
}) : null;
|
|
});
|
|
SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
|
|
var GROUP_NAME3 = "SelectGroup";
|
|
var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME3);
|
|
var SelectGroupFrame = (0, import_core43.styled)(YStack, {
|
|
name: GROUP_NAME3,
|
|
width: "100%"
|
|
});
|
|
var NativeSelectTextFrame = (0, import_core43.styled)(SizableText, {
|
|
tag: "select",
|
|
backgroundColor: "$background",
|
|
borderColor: "$borderColor",
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover"
|
|
}
|
|
});
|
|
var NativeSelectFrame = (0, import_core43.styled)(ThemeableStack, {
|
|
name: "NativeSelect",
|
|
bordered: true,
|
|
userSelect: "none",
|
|
outlineWidth: 0,
|
|
paddingRight: 10,
|
|
variants: {
|
|
size: {
|
|
"...size": (val, extras) => {
|
|
const {
|
|
tokens: tokens2
|
|
} = extras, paddingHorizontal = (0, import_core43.getVariableValue)(tokens2.space[val]);
|
|
return {
|
|
borderRadius: tokens2.radius[val] ?? val,
|
|
minHeight: tokens2.size[val],
|
|
paddingRight: paddingHorizontal + 20,
|
|
paddingLeft: paddingHorizontal,
|
|
paddingVertical: getSpace(val, {
|
|
shift: -3
|
|
})
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
size: "$2"
|
|
}
|
|
});
|
|
var SelectGroup = React33.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSelect,
|
|
...groupProps
|
|
} = props, groupId = React33.useId(), context = useSelectContext(GROUP_NAME3, __scopeSelect), itemParentContext = useSelectItemParentContext(GROUP_NAME3, __scopeSelect), size6 = itemParentContext.size ?? "$true", nativeSelectRef = React33.useRef(null), content = itemParentContext.shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(NativeSelectFrame, {
|
|
asChild: true,
|
|
size: size6,
|
|
value: context.value,
|
|
id: itemParentContext.id,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(NativeSelectTextFrame, {
|
|
onChange: (event) => {
|
|
itemParentContext.onChange(event.currentTarget.value);
|
|
},
|
|
size: size6,
|
|
ref: nativeSelectRef,
|
|
style: {
|
|
color: "var(--color)",
|
|
// @ts-ignore
|
|
appearance: "none"
|
|
},
|
|
children: props.children
|
|
})
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectGroupFrame, {
|
|
role: "group",
|
|
"aria-labelledby": groupId,
|
|
...groupProps,
|
|
ref: forwardedRef
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectGroupContextProvider, {
|
|
scope: __scopeSelect,
|
|
id: groupId || "",
|
|
children: content
|
|
});
|
|
});
|
|
SelectGroup.displayName = GROUP_NAME3;
|
|
var LABEL_NAME = "SelectLabel";
|
|
var SelectLabel = React33.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSelect,
|
|
...labelProps
|
|
} = props, context = useSelectItemParentContext(LABEL_NAME, __scopeSelect), groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
|
|
return context.shouldRenderWebNative ? null : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ListItem2, {
|
|
tag: "div",
|
|
componentName: LABEL_NAME,
|
|
fontWeight: "800",
|
|
id: groupContext.id,
|
|
size: context.size,
|
|
...labelProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
SelectLabel.displayName = LABEL_NAME;
|
|
var SelectSeparator = (0, import_core43.styled)(Separator, {
|
|
name: "SelectSeparator"
|
|
});
|
|
var SelectSheetController = /* @__PURE__ */ __name((props) => {
|
|
const context = useSelectContext("SelectSheetController", props.__scopeSelect), showSheet = useShowSelectSheet(context), breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint), getShowSheet = (0, import_core43.useGet)(showSheet);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SheetController, {
|
|
onOpenChange: (val) => {
|
|
getShowSheet() && props.onOpenChange(val);
|
|
},
|
|
open: context.open,
|
|
hidden: breakpointActive === false,
|
|
children: props.children
|
|
});
|
|
}, "SelectSheetController");
|
|
var SelectSheetImpl = /* @__PURE__ */ __name((props) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, {
|
|
children: props.children
|
|
}), "SelectSheetImpl");
|
|
var Select = withStaticProperties((props) => {
|
|
const {
|
|
__scopeSelect,
|
|
native,
|
|
children,
|
|
open: openProp,
|
|
defaultOpen,
|
|
onOpenChange,
|
|
value: valueProp,
|
|
defaultValue: defaultValue2,
|
|
onValueChange,
|
|
disablePreventBodyScroll,
|
|
size: sizeProp = "$true",
|
|
onActiveChange,
|
|
dir,
|
|
id
|
|
} = props, internalId = React33.useId(), scopeKey = __scopeSelect ? Object.keys(__scopeSelect)[0] ?? internalId : internalId, {
|
|
when,
|
|
AdaptProvider
|
|
} = useAdaptParent({
|
|
Contents: React33.useCallback(() => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PortalHost, {
|
|
name: `${scopeKey}SheetContents`
|
|
}), [scopeKey])
|
|
}), sheetBreakpoint = when, SelectImpl = useSelectBreakpointActive(sheetBreakpoint) || !isWeb ? SelectSheetImpl : SelectInlineImpl, forceUpdate = React33.useReducer(() => ({}), {})[1], [selectedItem, setSelectedItem] = React33.useState(null), [open, setOpen] = useControllableState({
|
|
prop: openProp,
|
|
defaultProp: defaultOpen || false,
|
|
onChange: onOpenChange
|
|
}), [value, setValue] = useControllableState({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2 || "",
|
|
onChange: onValueChange,
|
|
transition: true
|
|
});
|
|
React33.useEffect(() => {
|
|
open && emitValue(value);
|
|
}, [open]), React33.useEffect(() => {
|
|
emitValue(value);
|
|
}, [value]);
|
|
const [activeIndex, setActiveIndex] = React33.useState(0), [emitValue, valueSubscribe] = useEmitter(), [emitActiveIndex, activeIndexSubscribe] = useEmitter(), selectedIndexRef = React33.useRef(null), activeIndexRef = React33.useRef(null), listContentRef = React33.useRef([]), [selectedIndex, setSelectedIndex] = React33.useState(0), [valueNode, setValueNode] = React33.useState(null);
|
|
useIsomorphicLayoutEffect(() => {
|
|
selectedIndexRef.current = selectedIndex, activeIndexRef.current = activeIndex;
|
|
});
|
|
const shouldRenderWebNative = isWeb && (native === true || native === "web" || Array.isArray(native) && native.includes("web")), setActiveIndexDebounced = useDebounce((index3) => {
|
|
setActiveIndex((prev) => prev !== index3 && typeof index3 == "number" && activeIndexRef.current !== index3 ? (emitActiveIndex(index3), index3) : null);
|
|
}, 1, {}, []);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(AdaptProvider, {
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectItemParentProvider, {
|
|
scope: __scopeSelect,
|
|
initialValue: React33.useMemo(() => value, [open]),
|
|
size: sizeProp,
|
|
activeIndexSubscribe,
|
|
valueSubscribe,
|
|
setOpen,
|
|
id,
|
|
onChange: React33.useCallback((val) => {
|
|
setValue(val), emitValue(val);
|
|
}, []),
|
|
onActiveChange: (0, import_core43.useEvent)((...args) => {
|
|
onActiveChange == null ? void 0 : onActiveChange(...args);
|
|
}),
|
|
setSelectedIndex,
|
|
setValueAtIndex: React33.useCallback((index3, value2) => {
|
|
listContentRef.current[index3] = value2;
|
|
}, []),
|
|
shouldRenderWebNative,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectProvider, {
|
|
scope: __scopeSelect,
|
|
disablePreventBodyScroll,
|
|
dir,
|
|
blockSelection: false,
|
|
fallback: false,
|
|
selectedItem,
|
|
setSelectedItem,
|
|
forceUpdate,
|
|
valueNode,
|
|
onValueNodeChange: setValueNode,
|
|
scopeKey,
|
|
sheetBreakpoint,
|
|
activeIndex,
|
|
selectedIndex,
|
|
setActiveIndex: setActiveIndexDebounced,
|
|
value,
|
|
open,
|
|
native,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectSheetController, {
|
|
onOpenChange: setOpen,
|
|
__scopeSelect,
|
|
children: shouldRenderWebNative ? children : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectImpl, {
|
|
activeIndexRef,
|
|
listContentRef,
|
|
selectedIndexRef,
|
|
...props,
|
|
open,
|
|
value,
|
|
children
|
|
})
|
|
})
|
|
})
|
|
})
|
|
});
|
|
}, {
|
|
Adapt,
|
|
Content: SelectContent,
|
|
Group: SelectGroup,
|
|
Icon: SelectIcon,
|
|
Item: SelectItem,
|
|
ItemIndicator: SelectItemIndicator,
|
|
ItemText: SelectItemText,
|
|
Label: SelectLabel,
|
|
ScrollDownButton: SelectScrollDownButton,
|
|
ScrollUpButton: SelectScrollUpButton,
|
|
Trigger: SelectTrigger,
|
|
Value: SelectValue,
|
|
Viewport: SelectViewport,
|
|
Sheet: Sheet.Controlled
|
|
});
|
|
function useEmitter() {
|
|
const listeners = React33.useRef();
|
|
listeners.current || (listeners.current = /* @__PURE__ */ new Set());
|
|
const emit = /* @__PURE__ */ __name((value) => {
|
|
listeners.current.forEach((l) => l(value));
|
|
}, "emit"), subscribe2 = React33.useCallback((listener) => (listeners.current.add(listener), () => {
|
|
listeners.current.delete(listener);
|
|
}), []);
|
|
return [emit, subscribe2];
|
|
}
|
|
__name(useEmitter, "useEmitter");
|
|
Select.displayName = SELECT_NAME;
|
|
|
|
// node_modules/@tamagui/slider/dist/esm/Slider.mjs
|
|
var import_core45 = require("@tamagui/core");
|
|
var React35 = __toESM(require("react"), 1);
|
|
|
|
// node_modules/@tamagui/slider/dist/esm/constants.mjs
|
|
var SLIDER_NAME = "Slider";
|
|
var [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME);
|
|
var [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
|
|
var [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
|
|
startEdge: "left",
|
|
endEdge: "right",
|
|
sizeProp: "width",
|
|
size: 0,
|
|
direction: 1
|
|
});
|
|
var PAGE_KEYS = ["PageUp", "PageDown"];
|
|
var ARROW_KEYS2 = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
|
|
var BACK_KEYS = {
|
|
ltr: ["ArrowDown", "Home", "ArrowLeft", "PageDown"],
|
|
rtl: ["ArrowDown", "Home", "ArrowRight", "PageDown"]
|
|
};
|
|
|
|
// node_modules/@tamagui/slider/dist/esm/helpers.mjs
|
|
function getNextSortedValues(prevValues = [], nextValue, atIndex) {
|
|
const nextValues = [...prevValues];
|
|
return nextValues[atIndex] = nextValue, nextValues.sort((a, b) => a - b);
|
|
}
|
|
__name(getNextSortedValues, "getNextSortedValues");
|
|
function convertValueToPercentage(value, min2, max2) {
|
|
return 100 / (max2 - min2) * (value - min2);
|
|
}
|
|
__name(convertValueToPercentage, "convertValueToPercentage");
|
|
function getLabel(index3, totalValues) {
|
|
if (totalValues > 2)
|
|
return `Value ${index3 + 1} of ${totalValues}`;
|
|
if (totalValues === 2)
|
|
return ["Minimum", "Maximum"][index3];
|
|
}
|
|
__name(getLabel, "getLabel");
|
|
function getClosestValueIndex(values, nextValue) {
|
|
if (values.length === 1)
|
|
return 0;
|
|
const distances = values.map((value) => Math.abs(value - nextValue)), closestDistance = Math.min(...distances);
|
|
return distances.indexOf(closestDistance);
|
|
}
|
|
__name(getClosestValueIndex, "getClosestValueIndex");
|
|
function getThumbInBoundsOffset(width, left, direction) {
|
|
const quarterWidth = width / 4, offset4 = linearScale([0, 50], [0, quarterWidth]);
|
|
return (quarterWidth - offset4(left) * direction) * direction;
|
|
}
|
|
__name(getThumbInBoundsOffset, "getThumbInBoundsOffset");
|
|
function getStepsBetweenValues(values) {
|
|
return values.slice(0, -1).map((value, index3) => values[index3 + 1] - value);
|
|
}
|
|
__name(getStepsBetweenValues, "getStepsBetweenValues");
|
|
function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
|
|
if (minStepsBetweenValues > 0) {
|
|
const stepsBetweenValues = getStepsBetweenValues(values);
|
|
return Math.min(...stepsBetweenValues) >= minStepsBetweenValues;
|
|
}
|
|
return true;
|
|
}
|
|
__name(hasMinStepsBetweenValues, "hasMinStepsBetweenValues");
|
|
function linearScale(input, output) {
|
|
return (value) => {
|
|
if (input[0] === input[1] || output[0] === output[1])
|
|
return output[0];
|
|
const ratio = (output[1] - output[0]) / (input[1] - input[0]);
|
|
return output[0] + ratio * (value - input[0]);
|
|
};
|
|
}
|
|
__name(linearScale, "linearScale");
|
|
function getDecimalCount(value) {
|
|
return (String(value).split(".")[1] || "").length;
|
|
}
|
|
__name(getDecimalCount, "getDecimalCount");
|
|
function roundValue(value, decimalCount) {
|
|
const rounder = 10 ** decimalCount;
|
|
return Math.round(value * rounder) / rounder;
|
|
}
|
|
__name(roundValue, "roundValue");
|
|
|
|
// node_modules/@tamagui/slider/dist/esm/SliderImpl.mjs
|
|
var import_core44 = require("@tamagui/core");
|
|
var React34 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
var SliderFrame = (0, import_core44.styled)(YStack, {
|
|
position: "relative",
|
|
variants: {
|
|
orientation: {
|
|
horizontal: {},
|
|
vertical: {}
|
|
},
|
|
size: (val, extras) => {
|
|
if (!val)
|
|
return;
|
|
const orientation = extras.props.orientation, size6 = Math.round((0, import_core44.getVariableValue)(getSize(val)) / 6);
|
|
return orientation === "horizontal" ? {
|
|
height: size6,
|
|
borderRadius: size6,
|
|
justifyContent: "center"
|
|
} : {
|
|
width: size6,
|
|
borderRadius: size6,
|
|
alignItems: "center"
|
|
};
|
|
}
|
|
}
|
|
});
|
|
var SliderImpl = React34.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSlider,
|
|
onSlideStart,
|
|
onSlideMove,
|
|
onSlideEnd,
|
|
onHomeKeyDown,
|
|
onEndKeyDown,
|
|
onStepKeyDown,
|
|
...sliderProps
|
|
} = props, context = useSliderContext(SLIDER_NAME, __scopeSlider);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(SliderFrame, {
|
|
size: "$4",
|
|
...sliderProps,
|
|
"data-orientation": sliderProps.orientation,
|
|
ref: forwardedRef,
|
|
...isWeb && {
|
|
onKeyDown: (event) => {
|
|
event.key === "Home" ? (onHomeKeyDown(event), event.preventDefault()) : event.key === "End" ? (onEndKeyDown(event), event.preventDefault()) : PAGE_KEYS.concat(ARROW_KEYS2).includes(event.key) && (onStepKeyDown(event), event.preventDefault());
|
|
}
|
|
},
|
|
onMoveShouldSetResponderCapture: () => true,
|
|
onScrollShouldSetResponder: () => true,
|
|
onScrollShouldSetResponderCapture: () => true,
|
|
onMoveShouldSetResponder: () => true,
|
|
onStartShouldSetResponder: () => true,
|
|
onResponderTerminationRequest: () => false,
|
|
onResponderGrant: composeEventHandlers(props.onResponderGrant, (event) => {
|
|
const target = event.target, thumbIndex = context.thumbs.get(target), isStartingOnThumb = thumbIndex !== void 0;
|
|
isWeb && target instanceof HTMLElement && context.thumbs.has(target) && target.focus(), !isWeb && isStartingOnThumb && (context.valueIndexToChangeRef.current = thumbIndex), onSlideStart(event, isStartingOnThumb ? "thumb" : "track");
|
|
}),
|
|
onResponderMove: composeEventHandlers(props.onResponderMove, (event) => {
|
|
event.stopPropagation(), onSlideMove(event);
|
|
}),
|
|
onResponderRelease: composeEventHandlers(props.onResponderRelease, (event) => {
|
|
onSlideEnd(event);
|
|
})
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/slider/dist/esm/Slider.mjs
|
|
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
var SliderHorizontal = React35.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
min: min2,
|
|
max: max2,
|
|
dir,
|
|
onSlideStart,
|
|
onSlideMove,
|
|
onStepKeyDown,
|
|
onSlideEnd,
|
|
...sliderProps
|
|
} = props, direction = useDirection(dir), isDirectionLTR = direction === "ltr", sliderRef = React35.useRef(null), [state, setState_] = React35.useState(() => ({
|
|
size: 0,
|
|
offset: 0
|
|
})), setState = (0, import_core45.createShallowSetState)(setState_);
|
|
function getValueFromPointer(pointerPosition) {
|
|
const input = [0, state.size];
|
|
return linearScale(input, isDirectionLTR ? [min2, max2] : [max2, min2])(pointerPosition);
|
|
}
|
|
__name(getValueFromPointer, "getValueFromPointer");
|
|
const measure = /* @__PURE__ */ __name(() => {
|
|
var _a;
|
|
(_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, width, _height, pageX, _pageY) => {
|
|
setState({
|
|
size: width,
|
|
offset: pageX
|
|
});
|
|
});
|
|
}, "measure");
|
|
return isClient && useOnDebouncedWindowResize(measure), /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderOrientationProvider, {
|
|
scope: props.__scopeSlider,
|
|
startEdge: isDirectionLTR ? "left" : "right",
|
|
endEdge: isDirectionLTR ? "right" : "left",
|
|
direction: isDirectionLTR ? 1 : -1,
|
|
sizeProp: "width",
|
|
size: state.size,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderImpl, {
|
|
ref: composeRefs(forwardedRef, sliderRef),
|
|
dir: direction,
|
|
...sliderProps,
|
|
orientation: "horizontal",
|
|
onLayout: measure,
|
|
onSlideStart: (event, target) => {
|
|
const value = getValueFromPointer(event.nativeEvent.locationX);
|
|
value && (onSlideStart == null ? void 0 : onSlideStart(value, target, event));
|
|
},
|
|
onSlideMove: (event) => {
|
|
const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
|
|
value && (onSlideMove == null ? void 0 : onSlideMove(value, event));
|
|
},
|
|
onSlideEnd: (event) => {
|
|
const value = getValueFromPointer(event.nativeEvent.pageX - state.offset);
|
|
value && (onSlideEnd == null ? void 0 : onSlideEnd(event, value));
|
|
},
|
|
onStepKeyDown: (event) => {
|
|
const isBackKey = BACK_KEYS[direction].includes(event.key);
|
|
onStepKeyDown == null ? void 0 : onStepKeyDown({
|
|
event,
|
|
direction: isBackKey ? -1 : 1
|
|
});
|
|
}
|
|
})
|
|
});
|
|
});
|
|
function useOnDebouncedWindowResize(callback, amt = 200) {
|
|
React35.useEffect(() => {
|
|
let last;
|
|
const onResize = /* @__PURE__ */ __name(() => {
|
|
clearTimeout(last), last = setTimeout(callback, amt);
|
|
}, "onResize");
|
|
return window.addEventListener("resize", onResize), () => {
|
|
clearTimeout(last), window.removeEventListener("resize", onResize);
|
|
};
|
|
}, []);
|
|
}
|
|
__name(useOnDebouncedWindowResize, "useOnDebouncedWindowResize");
|
|
var SliderVertical = React35.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
min: min2,
|
|
max: max2,
|
|
onSlideStart,
|
|
onSlideMove,
|
|
onStepKeyDown,
|
|
onSlideEnd,
|
|
...sliderProps
|
|
} = props, [state, setState_] = React35.useState(() => ({
|
|
size: 0,
|
|
offset: 0
|
|
})), setState = (0, import_core45.createShallowSetState)(setState_), sliderRef = React35.useRef(null);
|
|
function getValueFromPointer(pointerPosition) {
|
|
const input = [0, state.size];
|
|
return linearScale(input, [max2, min2])(pointerPosition);
|
|
}
|
|
__name(getValueFromPointer, "getValueFromPointer");
|
|
const measure = /* @__PURE__ */ __name(() => {
|
|
var _a;
|
|
(_a = sliderRef.current) == null ? void 0 : _a.measure((_x, _y, _width, height, _pageX, pageY) => {
|
|
setState({
|
|
size: height,
|
|
offset: pageY
|
|
});
|
|
});
|
|
}, "measure");
|
|
return isClient && useOnDebouncedWindowResize(measure), /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderOrientationProvider, {
|
|
scope: props.__scopeSlider,
|
|
startEdge: "bottom",
|
|
endEdge: "top",
|
|
sizeProp: "height",
|
|
size: state.size,
|
|
direction: 1,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderImpl, {
|
|
ref: composeRefs(forwardedRef, sliderRef),
|
|
...sliderProps,
|
|
orientation: "vertical",
|
|
onLayout: measure,
|
|
onSlideStart: (event, target) => {
|
|
const value = getValueFromPointer(event.nativeEvent.locationY);
|
|
value && (onSlideStart == null ? void 0 : onSlideStart(value, target, event));
|
|
},
|
|
onSlideMove: (event) => {
|
|
const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
|
|
value && (onSlideMove == null ? void 0 : onSlideMove(value, event));
|
|
},
|
|
onSlideEnd: (event) => {
|
|
const value = getValueFromPointer(event.nativeEvent.pageY - state.offset);
|
|
onSlideEnd == null ? void 0 : onSlideEnd(event, value);
|
|
},
|
|
onStepKeyDown: (event) => {
|
|
const isBackKey = BACK_KEYS.ltr.includes(event.key);
|
|
onStepKeyDown == null ? void 0 : onStepKeyDown({
|
|
event,
|
|
direction: isBackKey ? -1 : 1
|
|
});
|
|
}
|
|
})
|
|
});
|
|
});
|
|
var TRACK_NAME = "SliderTrack";
|
|
var SliderTrackFrame = (0, import_core45.styled)(SliderFrame, {
|
|
name: "SliderTrack",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
height: "100%",
|
|
width: "100%",
|
|
backgroundColor: "$background",
|
|
position: "relative",
|
|
borderRadius: 1e5,
|
|
overflow: "hidden"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var SliderTrack = React35.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSlider,
|
|
...trackProps
|
|
} = props, context = useSliderContext(TRACK_NAME, __scopeSlider);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderTrackFrame, {
|
|
"data-disabled": context.disabled ? "" : void 0,
|
|
"data-orientation": context.orientation,
|
|
orientation: context.orientation,
|
|
size: context.size,
|
|
...trackProps,
|
|
ref: forwardedRef
|
|
});
|
|
});
|
|
SliderTrack.displayName = TRACK_NAME;
|
|
var RANGE_NAME = "SliderTrackActive";
|
|
var SliderTrackActiveFrame = (0, import_core45.styled)(SliderFrame, {
|
|
name: "SliderTrackActive",
|
|
backgroundColor: "$background",
|
|
position: "absolute"
|
|
});
|
|
var SliderTrackActive = React35.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeSlider,
|
|
...rangeProps
|
|
} = props, context = useSliderContext(RANGE_NAME, __scopeSlider), orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider), ref = React35.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), valuesCount = context.values.length, percentages = context.values.map((value) => convertValueToPercentage(value, context.min, context.max)), offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0, offsetEnd = 100 - Math.max(...percentages);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderTrackActiveFrame, {
|
|
orientation: context.orientation,
|
|
"data-orientation": context.orientation,
|
|
"data-disabled": context.disabled ? "" : void 0,
|
|
size: context.size,
|
|
animateOnly: ["left", "top", "right", "bottom"],
|
|
...rangeProps,
|
|
ref: composedRefs,
|
|
[orientation.startEdge]: `${offsetStart}%`,
|
|
[orientation.endEdge]: `${offsetEnd}%`,
|
|
...orientation.sizeProp === "width" ? {
|
|
height: "100%"
|
|
} : {
|
|
left: 0,
|
|
right: 0
|
|
}
|
|
});
|
|
});
|
|
SliderTrackActive.displayName = RANGE_NAME;
|
|
var THUMB_NAME = "SliderThumb";
|
|
var getThumbSize = /* @__PURE__ */ __name((val) => {
|
|
const tokens2 = (0, import_core45.getTokens)(), size6 = typeof val == "number" ? val : getSize(tokens2.size[val], {
|
|
shift: -1
|
|
});
|
|
return {
|
|
width: size6,
|
|
height: size6,
|
|
minWidth: size6,
|
|
minHeight: size6
|
|
};
|
|
}, "getThumbSize");
|
|
var SliderThumbFrame = (0, import_core45.styled)(ThemeableStack, {
|
|
name: "SliderThumb",
|
|
variants: {
|
|
size: {
|
|
"...size": getThumbSize
|
|
},
|
|
unstyled: {
|
|
false: {
|
|
position: "absolute",
|
|
bordered: 2,
|
|
borderWidth: 2,
|
|
backgrounded: true,
|
|
pressTheme: isWeb,
|
|
focusTheme: isWeb,
|
|
hoverTheme: isWeb
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var SliderThumb = React35.memo(SliderThumbFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopeSlider,
|
|
index: index3,
|
|
size: sizeProp,
|
|
...thumbProps
|
|
} = props, context = useSliderContext(THUMB_NAME, __scopeSlider), orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider), [thumb, setThumb] = React35.useState(null), composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node)), value = context.values[index3], percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max), label = getLabel(index3, context.values.length), sizeIn = sizeProp ?? context.size ?? "$true", [size6, setSize] = React35.useState(() => (0, import_core45.getVariableValue)(getThumbSize(sizeIn).width)), thumbInBoundsOffset = size6 ? getThumbInBoundsOffset(size6, percent, orientation.direction) : 0;
|
|
React35.useEffect(() => {
|
|
if (thumb)
|
|
return context.thumbs.set(thumb, index3), () => {
|
|
context.thumbs.delete(thumb);
|
|
};
|
|
}, [thumb, context.thumbs, index3]);
|
|
const positionalStyles = context.orientation === "horizontal" ? {
|
|
x: thumbInBoundsOffset - size6 / 2,
|
|
y: -size6 / 2,
|
|
top: "50%",
|
|
...size6 === 0 && {
|
|
top: "auto",
|
|
bottom: "auto"
|
|
}
|
|
} : {
|
|
x: -size6 / 2,
|
|
y: size6 / 2,
|
|
left: "50%",
|
|
...size6 === 0 && {
|
|
left: "auto",
|
|
right: "auto"
|
|
}
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderThumbFrame, {
|
|
ref: composedRefs,
|
|
role: "slider",
|
|
"aria-label": props["aria-label"] || label,
|
|
"aria-valuemin": context.min,
|
|
"aria-valuenow": value,
|
|
"aria-valuemax": context.max,
|
|
"aria-orientation": context.orientation,
|
|
"data-orientation": context.orientation,
|
|
"data-disabled": context.disabled ? "" : void 0,
|
|
tabIndex: context.disabled ? void 0 : 0,
|
|
animateOnly: ["transform", "left", "top", "right", "bottom"],
|
|
...positionalStyles,
|
|
[orientation.startEdge]: `${percent}%`,
|
|
size: sizeIn,
|
|
...thumbProps,
|
|
onLayout: (e) => {
|
|
setSize(e.nativeEvent.layout[orientation.sizeProp]);
|
|
},
|
|
onFocus: composeEventHandlers(props.onFocus, () => {
|
|
context.valueIndexToChangeRef.current = index3;
|
|
})
|
|
});
|
|
}));
|
|
var SliderComponent = React35.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
name,
|
|
min: min2 = 0,
|
|
max: max2 = 100,
|
|
step = 1,
|
|
orientation = "horizontal",
|
|
disabled = false,
|
|
minStepsBetweenThumbs = 0,
|
|
defaultValue: defaultValue2 = [min2],
|
|
value,
|
|
onValueChange = /* @__PURE__ */ __name(() => {
|
|
}, "onValueChange"),
|
|
size: sizeProp,
|
|
onSlideEnd,
|
|
onSlideMove,
|
|
onSlideStart,
|
|
...sliderProps
|
|
} = props, sliderRef = React35.useRef(null), composedRefs = useComposedRefs(sliderRef, forwardedRef), thumbRefs = React35.useRef(/* @__PURE__ */ new Map()), valueIndexToChangeRef = React35.useRef(0), isHorizontal = orientation === "horizontal", [values = [], setValues] = useControllableState({
|
|
prop: value,
|
|
defaultProp: defaultValue2,
|
|
transition: true,
|
|
onChange: (value2) => {
|
|
updateThumbFocus(valueIndexToChangeRef.current), onValueChange(value2);
|
|
}
|
|
});
|
|
isWeb && React35.useEffect(() => {
|
|
const node = sliderRef.current;
|
|
if (!node)
|
|
return;
|
|
const preventDefault = /* @__PURE__ */ __name((e) => {
|
|
e.preventDefault();
|
|
}, "preventDefault");
|
|
return node.addEventListener("touchstart", preventDefault), () => {
|
|
node.removeEventListener("touchstart", preventDefault);
|
|
};
|
|
}, []);
|
|
function updateThumbFocus(focusIndex) {
|
|
if (isWeb) {
|
|
for (const [node, index3] of thumbRefs.current.entries())
|
|
if (index3 === focusIndex) {
|
|
node.focus();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
__name(updateThumbFocus, "updateThumbFocus");
|
|
function handleSlideMove(value2, event) {
|
|
updateValues(value2, valueIndexToChangeRef.current), onSlideMove == null ? void 0 : onSlideMove(event, value2);
|
|
}
|
|
__name(handleSlideMove, "handleSlideMove");
|
|
function updateValues(value2, atIndex) {
|
|
const decimalCount = getDecimalCount(step), snapToStep = roundValue(Math.round((value2 - min2) / step) * step + min2, decimalCount), nextValue = clamp(snapToStep, [min2, max2]);
|
|
setValues((prevValues = []) => {
|
|
const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);
|
|
return hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step) ? (valueIndexToChangeRef.current = nextValues.indexOf(nextValue), String(nextValues) === String(prevValues) ? prevValues : nextValues) : prevValues;
|
|
});
|
|
}
|
|
__name(updateValues, "updateValues");
|
|
const SliderOriented = isHorizontal ? SliderHorizontal : SliderVertical;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderProvider, {
|
|
scope: props.__scopeSlider,
|
|
disabled,
|
|
min: min2,
|
|
max: max2,
|
|
valueIndexToChangeRef,
|
|
thumbs: thumbRefs.current,
|
|
values,
|
|
orientation,
|
|
size: sizeProp,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(SliderOriented, {
|
|
"aria-disabled": disabled,
|
|
"data-disabled": disabled ? "" : void 0,
|
|
...sliderProps,
|
|
ref: composedRefs,
|
|
min: min2,
|
|
max: max2,
|
|
onSlideEnd,
|
|
onSlideStart: disabled ? void 0 : (value2, target, event) => {
|
|
if (target !== "thumb") {
|
|
const closestIndex = getClosestValueIndex(values, value2);
|
|
updateValues(value2, closestIndex);
|
|
}
|
|
onSlideStart == null ? void 0 : onSlideStart(event, value2, target);
|
|
},
|
|
onSlideMove: disabled ? void 0 : handleSlideMove,
|
|
onHomeKeyDown: () => !disabled && updateValues(min2, 0),
|
|
onEndKeyDown: () => !disabled && updateValues(max2, values.length - 1),
|
|
onStepKeyDown: ({
|
|
event,
|
|
direction: stepDirection
|
|
}) => {
|
|
if (!disabled) {
|
|
const multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS2.includes(event.key) ? 10 : 1, atIndex = valueIndexToChangeRef.current, value2 = values[atIndex], stepInDirection = step * multiplier * stepDirection;
|
|
updateValues(value2 + stepInDirection, atIndex);
|
|
}
|
|
}
|
|
})
|
|
});
|
|
});
|
|
var Slider = withStaticProperties(SliderComponent, {
|
|
Track: SliderTrack,
|
|
TrackActive: SliderTrackActive,
|
|
Thumb: SliderThumb
|
|
});
|
|
Slider.displayName = SLIDER_NAME;
|
|
var Track = SliderTrack;
|
|
var Range = SliderTrackActive;
|
|
var Thumb = SliderThumb;
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs
|
|
var import_core48 = require("@tamagui/core");
|
|
|
|
// node_modules/@tamagui/switch-headless/dist/esm/useSwitch.mjs
|
|
var React36 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
function getState5(checked) {
|
|
return checked ? "checked" : "unchecked";
|
|
}
|
|
__name(getState5, "getState");
|
|
var BubbleInput3 = /* @__PURE__ */ __name((props) => {
|
|
const {
|
|
control,
|
|
checked,
|
|
bubbles = true,
|
|
...inputProps
|
|
} = props, ref = React36.useRef(null), prevChecked = usePrevious(checked);
|
|
return React36.useEffect(() => {
|
|
const input = ref.current, inputProto = window.HTMLInputElement.prototype, setChecked = Object.getOwnPropertyDescriptor(inputProto, "checked").set;
|
|
if (prevChecked !== checked && setChecked) {
|
|
const event = new Event("click", {
|
|
bubbles
|
|
});
|
|
setChecked.call(input, checked), input.dispatchEvent(event);
|
|
}
|
|
}, [prevChecked, checked, bubbles]), // @ts-ignore
|
|
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("input", {
|
|
type: "checkbox",
|
|
"aria-hidden": true,
|
|
defaultChecked: checked,
|
|
...inputProps,
|
|
tabIndex: -1,
|
|
ref,
|
|
style: {
|
|
...props.style,
|
|
position: "absolute",
|
|
pointerEvents: "none",
|
|
opacity: 0,
|
|
margin: 0
|
|
}
|
|
});
|
|
}, "BubbleInput");
|
|
function useSwitch(props, [checked, setChecked], ref) {
|
|
const {
|
|
disabled,
|
|
name,
|
|
value,
|
|
required
|
|
} = props, hasConsumerStoppedPropagationRef = React36.useRef(false), [button, setButton] = React36.useState(null), composedRefs = useComposedRefs(ref, setButton), isFormControl = isWeb ? button ? !!button.closest("form") : true : false, labelId = useLabelContext(button), ariaLabelledBy = props["aria-labelledby"] || props.labeledBy || labelId;
|
|
return {
|
|
switchProps: {
|
|
role: "switch",
|
|
"aria-checked": checked,
|
|
...isWeb ? {
|
|
tabIndex: disabled ? void 0 : 0,
|
|
"data-state": getState5(checked),
|
|
"data-disabled": disabled ? "" : void 0,
|
|
disabled
|
|
} : {},
|
|
...props,
|
|
"aria-labelledby": ariaLabelledBy,
|
|
onPress: composeEventHandlers(props.onPress, (event) => {
|
|
setChecked((prevChecked) => !prevChecked), isWeb && isFormControl && (hasConsumerStoppedPropagationRef.current = event.isPropagationStopped(), hasConsumerStoppedPropagationRef.current || event.stopPropagation());
|
|
})
|
|
},
|
|
switchRef: composedRefs,
|
|
/**
|
|
* insert as a sibling of your switch (should not be inside the switch)
|
|
*/
|
|
bubbleInput: isWeb && isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(BubbleInput3, {
|
|
control: button,
|
|
bubbles: !hasConsumerStoppedPropagationRef.current,
|
|
name,
|
|
value,
|
|
checked,
|
|
required,
|
|
disabled,
|
|
style: {
|
|
transform: "translateX(-100%)"
|
|
}
|
|
}) : null
|
|
};
|
|
}
|
|
__name(useSwitch, "useSwitch");
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs
|
|
var React37 = __toESM(require("react"), 1);
|
|
var import_react_native_web10 = __toESM(require_cjs20(), 1);
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/StyledContext.mjs
|
|
var import_core46 = require("@tamagui/core");
|
|
var SwitchStyledContext = (0, import_core46.createStyledContext)({
|
|
size: void 0,
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
});
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/Switch.mjs
|
|
var import_core47 = require("@tamagui/core");
|
|
var SwitchThumb = (0, import_core47.styled)(ThemeableStack, {
|
|
name: "SwitchThumb",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
size: "$true",
|
|
backgroundColor: "$background",
|
|
borderRadius: 1e3
|
|
}
|
|
},
|
|
checked: {
|
|
true: {}
|
|
},
|
|
size: {
|
|
"...size": (val) => {
|
|
const size6 = getSwitchHeight(val);
|
|
return {
|
|
height: size6,
|
|
width: size6
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var getSwitchHeight = /* @__PURE__ */ __name((val) => Math.round((0, import_core47.getVariableValue)(getSize(val)) * 0.65), "getSwitchHeight");
|
|
var getSwitchWidth = /* @__PURE__ */ __name((val) => getSwitchHeight(val) * 2, "getSwitchWidth");
|
|
var SwitchFrame = (0, import_core47.styled)(YStack, {
|
|
name: "Switch",
|
|
tag: "button",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
borderRadius: 1e3,
|
|
backgroundColor: "$background",
|
|
borderWidth: 2,
|
|
borderColor: "$background",
|
|
focusVisibleStyle: {
|
|
outlineColor: "$outlineColor",
|
|
outlineStyle: "solid",
|
|
outlineWidth: 2
|
|
}
|
|
}
|
|
},
|
|
checked: {
|
|
true: {}
|
|
},
|
|
size: {
|
|
"...size": (val) => {
|
|
const height = getSwitchHeight(val) + 4, width = getSwitchWidth(val) + 4;
|
|
return {
|
|
height,
|
|
minHeight: height,
|
|
width
|
|
};
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/createSwitch.mjs
|
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
var SwitchContext = React37.createContext({
|
|
checked: false,
|
|
disabled: false,
|
|
frameWidth: 0
|
|
});
|
|
function createSwitch(createProps) {
|
|
const {
|
|
disableActiveTheme,
|
|
Frame: Frame2 = SwitchFrame,
|
|
Thumb: Thumb2 = SwitchThumb
|
|
} = createProps;
|
|
process.env.NODE_ENV === "development" && (Frame2 !== SwitchFrame && Frame2.staticConfig.context && Frame2.staticConfig.context !== SwitchStyledContext || Thumb2 !== SwitchThumb && Thumb2.staticConfig.context && Thumb2.staticConfig.context !== SwitchStyledContext) && console.warn("Warning: createSwitch() needs to control context to pass checked state from Frame to Thumb, any custom context passed will be overridden."), Frame2.staticConfig.context = SwitchStyledContext, Thumb2.staticConfig.context = SwitchStyledContext;
|
|
const SwitchThumbComponent = Thumb2.styleable(function(props, forwardedRef) {
|
|
const {
|
|
size: sizeProp,
|
|
unstyled: unstyledProp,
|
|
nativeID,
|
|
...thumbProps
|
|
} = props, context = React37.useContext(SwitchContext), {
|
|
checked,
|
|
disabled,
|
|
frameWidth
|
|
} = context, styledContext = SwitchStyledContext.useStyledContext(), {
|
|
unstyled: unstyledContext,
|
|
size: sizeContext
|
|
} = styledContext, unstyled = process.env.TAMAGUI_HEADLESS === "1" ? true : unstyledProp ?? unstyledContext ?? false, size6 = sizeProp ?? sizeContext ?? "$true", initialChecked = React37.useRef(checked).current, [thumbWidth, setThumbWidth] = React37.useState(0), distance = frameWidth - thumbWidth, x = initialChecked ? checked ? 0 : -distance : checked ? distance : 0;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Thumb2, {
|
|
ref: forwardedRef,
|
|
unstyled,
|
|
...unstyled === false && {
|
|
size: size6,
|
|
...!disableActiveTheme && {
|
|
theme: checked ? "active" : null
|
|
}
|
|
},
|
|
alignSelf: initialChecked ? "flex-end" : "flex-start",
|
|
x,
|
|
onLayout: (0, import_core48.composeEventHandlers)(props.onLayout, (e) => setThumbWidth(e.nativeEvent.layout.width)),
|
|
checked,
|
|
disabled,
|
|
...thumbProps
|
|
});
|
|
}), SwitchComponent = Frame2.styleable(function(_props, forwardedRef) {
|
|
const {
|
|
native,
|
|
nativeProps,
|
|
checked: checkedProp,
|
|
defaultChecked,
|
|
onCheckedChange,
|
|
...props
|
|
} = _props, [checked, setChecked] = useControllableState({
|
|
prop: checkedProp,
|
|
defaultProp: defaultChecked || false,
|
|
onChange: onCheckedChange,
|
|
transition: true
|
|
}), styledContext = React37.useContext(SwitchStyledContext.context), [frameWidth, setFrameWidth] = React37.useState(0), propsActive = (0, import_core48.useProps)(props, {
|
|
noNormalize: true,
|
|
noExpand: true,
|
|
resolveValues: "none",
|
|
forComponent: Frame2
|
|
}), {
|
|
switchProps,
|
|
bubbleInput,
|
|
switchRef
|
|
} = useSwitch(
|
|
// @ts-ignore
|
|
Object.assign({
|
|
size: styledContext.size ?? props.size ?? "$true",
|
|
unstyled: styledContext.unstyled ?? props.unstyled ?? false
|
|
}, propsActive),
|
|
[checked, setChecked],
|
|
forwardedRef
|
|
), renderNative = (0, import_core48.shouldRenderNativePlatform)(native);
|
|
return renderNative === "android" || renderNative === "ios" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native_web10.Switch, {
|
|
value: checked,
|
|
onValueChange: setChecked,
|
|
...nativeProps
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(SwitchContext.Provider, {
|
|
value: {
|
|
checked,
|
|
disabled: switchProps.disabled,
|
|
frameWidth
|
|
},
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Frame2, {
|
|
ref: switchRef,
|
|
tag: "button",
|
|
...import_core48.isWeb && {
|
|
type: "button"
|
|
},
|
|
...switchProps,
|
|
...!disableActiveTheme && {
|
|
theme: checked ? "active" : null,
|
|
themeShallow: true
|
|
},
|
|
checked,
|
|
disabled: switchProps.disabled,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_core48.Stack, {
|
|
alignSelf: "stretch",
|
|
flex: 1,
|
|
onLayout: (e) => {
|
|
setFrameWidth(e.nativeEvent.layout.width);
|
|
},
|
|
children: switchProps.children
|
|
})
|
|
}), bubbleInput]
|
|
});
|
|
}, {
|
|
disableTheme: true
|
|
});
|
|
return (0, import_core48.withStaticProperties)(SwitchComponent, {
|
|
Thumb: SwitchThumbComponent
|
|
});
|
|
}
|
|
__name(createSwitch, "createSwitch");
|
|
|
|
// node_modules/@tamagui/switch/dist/esm/index.mjs
|
|
var Switch = createSwitch({
|
|
Frame: SwitchFrame,
|
|
Thumb: SwitchThumb
|
|
});
|
|
|
|
// node_modules/@tamagui/tabs/dist/esm/Tabs.mjs
|
|
var import_web19 = require("@tamagui/core");
|
|
var React38 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
var TABS_CONTEXT = "TabsContext";
|
|
var TAB_LIST_NAME = "TabsList";
|
|
var TabsList = React38.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeTabs,
|
|
loop = true,
|
|
children,
|
|
...listProps
|
|
} = props, context = useTabsContext(__scopeTabs);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(RovingFocusGroup, {
|
|
__scopeRovingFocusGroup: __scopeTabs || TABS_CONTEXT,
|
|
orientation: context.orientation,
|
|
dir: context.dir,
|
|
loop,
|
|
asChild: true,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Group, {
|
|
role: "tablist",
|
|
componentName: TAB_LIST_NAME,
|
|
"aria-orientation": context.orientation,
|
|
ref: forwardedRef,
|
|
orientation: context.orientation,
|
|
...listProps,
|
|
children
|
|
})
|
|
});
|
|
});
|
|
TabsList.displayName = TAB_LIST_NAME;
|
|
var TRIGGER_NAME5 = "TabsTrigger";
|
|
var TabsTriggerFrame = (0, import_web19.styled)(ThemeableStack, {
|
|
name: TRIGGER_NAME5,
|
|
tag: "button",
|
|
justifyContent: "center",
|
|
alignItems: "center",
|
|
flexWrap: "nowrap",
|
|
flexDirection: "row",
|
|
cursor: "pointer",
|
|
userSelect: "none",
|
|
variants: {
|
|
size: {
|
|
"...size": getButtonSized
|
|
},
|
|
disabled: {
|
|
true: {
|
|
pointerEvents: "none"
|
|
}
|
|
},
|
|
active: {
|
|
true: {
|
|
hoverStyle: {
|
|
backgroundColor: "$background"
|
|
},
|
|
focusStyle: {
|
|
backgroundColor: "$background"
|
|
}
|
|
}
|
|
},
|
|
unstyled: {
|
|
false: {
|
|
backgroundColor: "$background",
|
|
pressStyle: {
|
|
backgroundColor: "$backgroundPress"
|
|
},
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover"
|
|
},
|
|
focusStyle: {
|
|
backgroundColor: "$backgroundFocus"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var TabsTrigger = TabsTriggerFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeTabs,
|
|
value,
|
|
disabled = false,
|
|
onInteraction,
|
|
disableActiveTheme,
|
|
...triggerProps
|
|
} = props, context = useTabsContext(__scopeTabs), triggerId = makeTriggerId(context.baseId, value), contentId = makeContentId(context.baseId, value), isSelected = value === context.value, [layout, setLayout] = React38.useState(null), triggerRef = React38.useRef(null), groupItemProps = useGroupItem({
|
|
disabled: !!disabled
|
|
});
|
|
return React38.useEffect(() => (context.registerTrigger(), () => context.unregisterTrigger()), []), React38.useEffect(() => {
|
|
if (!triggerRef.current || !isWeb)
|
|
return;
|
|
function getTriggerSize() {
|
|
triggerRef.current && setLayout({
|
|
width: triggerRef.current.offsetWidth,
|
|
height: triggerRef.current.offsetHeight,
|
|
x: triggerRef.current.offsetLeft,
|
|
y: triggerRef.current.offsetTop
|
|
});
|
|
}
|
|
__name(getTriggerSize, "getTriggerSize");
|
|
getTriggerSize();
|
|
const observer = new ResizeObserver(getTriggerSize);
|
|
return observer.observe(triggerRef.current), () => {
|
|
triggerRef.current && observer.unobserve(triggerRef.current);
|
|
};
|
|
}, [context.triggersCount]), React38.useEffect(() => {
|
|
isSelected && layout && (onInteraction == null ? void 0 : onInteraction("select", layout));
|
|
}, [isSelected, value, layout]), /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_web19.Theme, {
|
|
name: isSelected && !disableActiveTheme ? "active" : null,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(RovingFocusGroup.Item, {
|
|
__scopeRovingFocusGroup: __scopeTabs || TABS_CONTEXT,
|
|
asChild: true,
|
|
focusable: !disabled,
|
|
active: isSelected,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TabsTriggerFrame, {
|
|
onLayout: (event) => {
|
|
isWeb || setLayout(event.nativeEvent.layout);
|
|
},
|
|
onHoverIn: composeEventHandlers(props.onHoverIn, () => {
|
|
layout && (onInteraction == null ? void 0 : onInteraction("hover", layout));
|
|
}),
|
|
onHoverOut: composeEventHandlers(props.onHoverOut, () => {
|
|
onInteraction == null ? void 0 : onInteraction("hover", null);
|
|
}),
|
|
role: "tab",
|
|
"aria-selected": isSelected,
|
|
"aria-controls": contentId,
|
|
"data-state": isSelected ? "active" : "inactive",
|
|
"data-disabled": disabled ? "" : void 0,
|
|
disabled,
|
|
id: triggerId,
|
|
...!props.unstyled && {
|
|
size: context.size
|
|
},
|
|
...groupItemProps,
|
|
...triggerProps,
|
|
ref: composeRefs(forwardedRef, triggerRef),
|
|
onPress: composeEventHandlers(props.onPress ?? void 0, (event) => {
|
|
const webChecks = !isWeb || event.button === 0 && event.ctrlKey === false;
|
|
!disabled && !isSelected && webChecks ? context.onChange(value) : event.preventDefault();
|
|
}),
|
|
...isWeb && {
|
|
type: "button",
|
|
onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
|
|
[" ", "Enter"].includes(event.key) && (context.onChange(value), event.preventDefault());
|
|
}),
|
|
onFocus: composeEventHandlers(props.onFocus, (event) => {
|
|
layout && (onInteraction == null ? void 0 : onInteraction("focus", layout));
|
|
const isAutomaticActivation = context.activationMode !== "manual";
|
|
!isSelected && !disabled && isAutomaticActivation && context.onChange(value);
|
|
}),
|
|
onBlur: composeEventHandlers(props.onFocus, () => {
|
|
onInteraction == null ? void 0 : onInteraction("focus", null);
|
|
})
|
|
}
|
|
})
|
|
})
|
|
});
|
|
});
|
|
TabsTrigger.displayName = TRIGGER_NAME5;
|
|
var CONTENT_NAME4 = "TabsContent";
|
|
var TabsContentFrame = (0, import_web19.styled)(ThemeableStack, {
|
|
name: CONTENT_NAME4
|
|
});
|
|
var TabsContent = TabsContentFrame.styleable(function(props, forwardedRef) {
|
|
const {
|
|
__scopeTabs,
|
|
value,
|
|
forceMount,
|
|
children,
|
|
...contentProps
|
|
} = props, context = useTabsContext(__scopeTabs), isSelected = value === context.value, show = forceMount || isSelected, triggerId = makeTriggerId(context.baseId, value), contentId = makeContentId(context.baseId, value);
|
|
return show ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TabsContentFrame, {
|
|
"data-state": isSelected ? "active" : "inactive",
|
|
"data-orientation": context.orientation,
|
|
role: "tabpanel",
|
|
"aria-labelledby": triggerId,
|
|
hidden: !show,
|
|
id: contentId,
|
|
tabIndex: 0,
|
|
...contentProps,
|
|
ref: forwardedRef,
|
|
children
|
|
}, value) : null;
|
|
});
|
|
var TABS_NAME = "Tabs";
|
|
var {
|
|
Provider: TabsProvider,
|
|
useStyledContext: useTabsContext
|
|
} = (0, import_web19.createStyledContext)();
|
|
var TabsFrame = (0, import_web19.styled)(SizableStack, {
|
|
name: TABS_NAME
|
|
});
|
|
var TabsComponent = TabsFrame.styleable((props, forwardedRef) => {
|
|
const {
|
|
__scopeTabs,
|
|
value: valueProp,
|
|
onValueChange,
|
|
defaultValue: defaultValue2,
|
|
orientation = "horizontal",
|
|
dir,
|
|
activationMode = "automatic",
|
|
size: size6 = "$true",
|
|
...tabsProps
|
|
} = props, direction = useDirection(dir), [value, setValue] = useControllableState({
|
|
prop: valueProp,
|
|
onChange: onValueChange,
|
|
defaultProp: defaultValue2 ?? ""
|
|
}), [triggersCount, setTriggersCount] = React38.useState(0), registerTrigger = (0, import_web19.useEvent)(() => setTriggersCount((v) => v + 1)), unregisterTrigger = (0, import_web19.useEvent)(() => setTriggersCount((v) => v - 1));
|
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TabsProvider, {
|
|
scope: __scopeTabs,
|
|
baseId: React38.useId(),
|
|
value,
|
|
onChange: setValue,
|
|
orientation,
|
|
dir: direction,
|
|
activationMode,
|
|
size: size6,
|
|
registerTrigger,
|
|
triggersCount,
|
|
unregisterTrigger,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TabsFrame, {
|
|
direction,
|
|
"data-orientation": orientation,
|
|
...tabsProps,
|
|
ref: forwardedRef
|
|
})
|
|
});
|
|
});
|
|
var Tabs = withStaticProperties(TabsComponent, {
|
|
List: TabsList,
|
|
/**
|
|
* @deprecated Use Tabs.Tab instead
|
|
*/
|
|
Trigger: TabsTrigger,
|
|
Tab: TabsTrigger,
|
|
Content: TabsContent
|
|
});
|
|
Tabs.displayName = TABS_NAME;
|
|
function makeTriggerId(baseId, value) {
|
|
return `${baseId}-trigger-${value}`;
|
|
}
|
|
__name(makeTriggerId, "makeTriggerId");
|
|
function makeContentId(baseId, value) {
|
|
return `${baseId}-content-${value}`;
|
|
}
|
|
__name(makeContentId, "makeContentId");
|
|
|
|
// node_modules/tamagui/dist/esm/index.mjs
|
|
__reExport(esm_exports2, __toESM(require_cjs21(), 1));
|
|
|
|
// node_modules/@tamagui/toggle-group/dist/esm/ToggleGroup.mjs
|
|
var import_web21 = require("@tamagui/core");
|
|
var import_react52 = __toESM(require("react"), 1);
|
|
|
|
// node_modules/@tamagui/toggle-group/dist/esm/Toggle.mjs
|
|
var import_web20 = require("@tamagui/core");
|
|
var React39 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
var NAME3 = "Toggle";
|
|
var ToggleFrame = (0, import_web20.styled)(ThemeableStack, {
|
|
name: NAME3,
|
|
tag: "button",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
pressTheme: true,
|
|
backgroundColor: "$background",
|
|
alignItems: "center",
|
|
justifyContent: "center",
|
|
display: "flex",
|
|
borderColor: "$borderColor",
|
|
borderWidth: 1,
|
|
margin: -1,
|
|
hoverStyle: {
|
|
backgroundColor: "$backgroundHover"
|
|
},
|
|
pressStyle: {
|
|
backgroundColor: "$backgroundPress"
|
|
},
|
|
focusStyle: {
|
|
borderColor: "$borderColorFocus"
|
|
},
|
|
focusVisibleStyle: {
|
|
outlineColor: "$outlineColor",
|
|
outlineWidth: 2,
|
|
outlineStyle: "solid"
|
|
}
|
|
}
|
|
},
|
|
active: {
|
|
true: {
|
|
zIndex: 1,
|
|
hoverStyle: {
|
|
backgroundColor: "$background"
|
|
},
|
|
focusStyle: {
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$background"
|
|
}
|
|
}
|
|
},
|
|
orientation: {
|
|
horizontal: {
|
|
flexDirection: "row",
|
|
spaceDirection: "horizontal"
|
|
},
|
|
vertical: {
|
|
flexDirection: "column",
|
|
spaceDirection: "vertical"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var Toggle = React39.forwardRef(function(props, forwardedRef) {
|
|
const {
|
|
pressed: pressedProp,
|
|
defaultPressed = false,
|
|
onPressedChange,
|
|
...buttonProps
|
|
} = props, [pressed = false, setPressed] = useControllableState({
|
|
prop: pressedProp,
|
|
onChange: onPressedChange,
|
|
defaultProp: defaultPressed
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ToggleFrame, {
|
|
...!props.unstyled && {
|
|
theme: pressed ? "active" : null,
|
|
themeShallow: true
|
|
},
|
|
active: props.unstyled ? void 0 : pressed,
|
|
"aria-pressed": pressed,
|
|
"data-state": pressed ? "on" : "off",
|
|
"data-disabled": props.disabled ? "" : void 0,
|
|
...buttonProps,
|
|
ref: forwardedRef,
|
|
onPress: composeEventHandlers(props.onPress ?? void 0, () => {
|
|
props.disabled || setPressed(!pressed);
|
|
})
|
|
});
|
|
});
|
|
|
|
// node_modules/@tamagui/toggle-group/dist/esm/ToggleGroup.mjs
|
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
var TOGGLE_GROUP_NAME = "ToggleGroup";
|
|
var TOGGLE_GROUP_ITEM_NAME = "ToggleGroupItem";
|
|
var TOGGLE_GROUP_CONTEXT = "ToggleGroup";
|
|
var {
|
|
Provider: ToggleGroupItemProvider,
|
|
useStyledContext: useToggleGroupItemContext
|
|
} = (0, import_web21.createStyledContext)();
|
|
var {
|
|
Provider: ToggleGroupContext,
|
|
useStyledContext: useToggleGroupContext
|
|
} = (0, import_web21.createStyledContext)();
|
|
var ToggleGroupItem = ToggleFrame.extractable(import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
disablePassStyles,
|
|
...rest
|
|
} = props, valueContext = useToggleGroupValueContext(props.__scopeToggleGroup), context = useToggleGroupContext(props.__scopeToggleGroup), pressed = valueContext == null ? void 0 : valueContext.value.includes(props.value), disabled = context.disabled || props.disabled || false, groupItemProps = useGroupItem({
|
|
disabled
|
|
}), size6 = props.size ?? context.size, sizeProps = props.unstyled ? {} : {
|
|
width: void 0,
|
|
height: void 0,
|
|
padding: (0, import_web21.getVariableValue)(size6) * 0.6
|
|
}, iconSize = (typeof size6 == "number" ? size6 * 0.7 : getFontSize(size6)) * 1.2, theme = (0, import_web21.useTheme)(), getThemedIcon = useGetThemedIcon({
|
|
size: iconSize,
|
|
color: theme.color
|
|
}), children = import_react52.default.Children.toArray(props.children).map((child) => props.disablePassStyles || !import_react52.default.isValidElement(child) ? child : getThemedIcon(child)), commonProps = {
|
|
pressed,
|
|
disabled,
|
|
...sizeProps,
|
|
...rest,
|
|
children
|
|
}, inner2 = /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupItemImpl, {
|
|
...commonProps,
|
|
ref: forwardedRef,
|
|
focusable: !disabled,
|
|
disabled,
|
|
...groupItemProps
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupItemProvider, {
|
|
scope: props.__scopeToggleGroup,
|
|
children: context.rovingFocus ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(RovingFocusGroup.Item, {
|
|
asChild: "except-style",
|
|
__scopeRovingFocusGroup: props.__scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
|
|
focusable: !disabled,
|
|
active: pressed,
|
|
children: inner2
|
|
}) : inner2
|
|
});
|
|
}));
|
|
ToggleGroupItem.displayName = TOGGLE_GROUP_ITEM_NAME;
|
|
var ToggleGroupItemImpl = import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeToggleGroup,
|
|
value,
|
|
...itemProps
|
|
} = props, valueContext = useToggleGroupValueContext(__scopeToggleGroup), singleProps = {
|
|
"aria-pressed": void 0
|
|
}, typeProps = valueContext.type === "single" ? singleProps : void 0;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Toggle, {
|
|
...typeProps,
|
|
...itemProps,
|
|
ref: forwardedRef,
|
|
onPressedChange: (pressed) => {
|
|
pressed ? valueContext.onItemActivate(value) : valueContext.onItemDeactivate(value);
|
|
}
|
|
});
|
|
});
|
|
var ToggleGroup = withStaticProperties(import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
type,
|
|
...toggleGroupProps
|
|
} = props;
|
|
if (isWeb || import_react52.default.useEffect(() => {
|
|
if (props.id)
|
|
return registerFocusable(props.id, {
|
|
// TODO: would be nice to focus on the first child later - could be done with reforest
|
|
// for now leaving it empty
|
|
focus: () => {
|
|
}
|
|
});
|
|
}, [props.id]), type === "single")
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImplSingle, {
|
|
...toggleGroupProps,
|
|
ref: forwardedRef
|
|
});
|
|
if (type === "multiple")
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImplMultiple, {
|
|
...toggleGroupProps,
|
|
ref: forwardedRef
|
|
});
|
|
throw new Error(`Missing prop \`type\` expected on \`${TOGGLE_GROUP_NAME}\``);
|
|
}), {
|
|
Item: ToggleGroupItem
|
|
});
|
|
ToggleGroup.displayName = TOGGLE_GROUP_NAME;
|
|
var {
|
|
Provider: ToggleGroupValueProvider,
|
|
useStyledContext: useToggleGroupValueContext
|
|
} = (0, import_web21.createStyledContext)();
|
|
var ToggleGroupImplSingle = import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
value: valueProp,
|
|
defaultValue: defaultValue2,
|
|
onValueChange = /* @__PURE__ */ __name(() => {
|
|
}, "onValueChange"),
|
|
disableDeactivation = false,
|
|
...toggleGroupSingleProps
|
|
} = props, [value, setValue] = useControllableState({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2,
|
|
onChange: onValueChange
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupValueProvider, {
|
|
scope: props.__scopeToggleGroup,
|
|
type: "single",
|
|
value: value ? [value] : [],
|
|
defaultValue: value,
|
|
onItemActivate: setValue,
|
|
onItemDeactivate: import_react52.default.useCallback(() => disableDeactivation ? null : setValue(""), [setValue, disableDeactivation]),
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImpl, {
|
|
...toggleGroupSingleProps,
|
|
ref: forwardedRef
|
|
})
|
|
});
|
|
});
|
|
var ToggleGroupImplMultiple = import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
value: valueProp,
|
|
defaultValue: defaultValue2,
|
|
onValueChange = /* @__PURE__ */ __name(() => {
|
|
}, "onValueChange"),
|
|
disableDeactivation,
|
|
...toggleGroupMultipleProps
|
|
} = props, [value = [], setValue] = useControllableState({
|
|
prop: valueProp,
|
|
defaultProp: defaultValue2,
|
|
onChange: onValueChange
|
|
}), handleButtonActivate = import_react52.default.useCallback((itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]), [setValue]), handleButtonDeactivate = import_react52.default.useCallback((itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)), [setValue]);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupValueProvider, {
|
|
scope: props.__scopeToggleGroup,
|
|
type: "multiple",
|
|
value,
|
|
defaultValue: value,
|
|
onItemActivate: handleButtonActivate,
|
|
onItemDeactivate: handleButtonDeactivate,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImpl, {
|
|
...toggleGroupMultipleProps,
|
|
ref: forwardedRef
|
|
})
|
|
});
|
|
});
|
|
ToggleGroup.displayName = TOGGLE_GROUP_NAME;
|
|
var ToggleGroupImplElementFrame = (0, import_web21.styled)(Group, {
|
|
name: TOGGLE_GROUP_NAME,
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
backgroundColor: "$background"
|
|
}
|
|
},
|
|
orientation: {
|
|
vertical: {
|
|
flexDirection: "column",
|
|
spaceDirection: "vertical"
|
|
},
|
|
horizontal: {
|
|
flexDirection: "row",
|
|
spaceDirection: "horizontal"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var ToggleGroupImpl = ToggleGroupImplElementFrame.extractable(import_react52.default.forwardRef((props, forwardedRef) => {
|
|
const {
|
|
__scopeToggleGroup,
|
|
disabled = false,
|
|
orientation = "horizontal",
|
|
dir,
|
|
rovingFocus = true,
|
|
loop = true,
|
|
unstyled = false,
|
|
size: sizeProp = "$true",
|
|
sizeAdjust = 0,
|
|
...toggleGroupProps
|
|
} = props, direction = useDirection(dir), commonProps = {
|
|
role: "group",
|
|
dir: direction,
|
|
...toggleGroupProps
|
|
}, adjustedSize = (0, import_web21.getVariableValue)(getSize(sizeProp, {
|
|
shift: sizeAdjust
|
|
})), size6 = Math.round(adjustedSize * 0.45);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupContext, {
|
|
scope: __scopeToggleGroup,
|
|
rovingFocus,
|
|
disabled,
|
|
size: size6,
|
|
children: rovingFocus ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(RovingFocusGroup, {
|
|
asChild: "except-style",
|
|
__scopeRovingFocusGroup: __scopeToggleGroup || TOGGLE_GROUP_CONTEXT,
|
|
orientation,
|
|
dir: direction,
|
|
loop,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImplElementFrame, {
|
|
"aria-orientation": orientation,
|
|
orientation,
|
|
axis: orientation,
|
|
ref: forwardedRef,
|
|
"data-disabled": disabled ? "" : void 0,
|
|
unstyled,
|
|
...commonProps
|
|
})
|
|
}) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupImplElementFrame, {
|
|
"aria-orientation": orientation,
|
|
ref: forwardedRef,
|
|
orientation,
|
|
"data-disabled": disabled ? "" : void 0,
|
|
unstyled,
|
|
...commonProps
|
|
})
|
|
});
|
|
}));
|
|
|
|
// node_modules/@tamagui/tooltip/dist/esm/Tooltip.mjs
|
|
var import_core49 = require("@tamagui/core");
|
|
var React41 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
var TOOLTIP_SCOPE = "tooltip";
|
|
var TooltipContent = PopperContentFrame.extractable(React41.forwardRef(({
|
|
__scopeTooltip,
|
|
...props
|
|
}, ref) => {
|
|
const popper = usePopperContext(__scopeTooltip || TOOLTIP_SCOPE), padding = props.padding ?? props.size ?? popper.size ?? getSize("$true", {
|
|
shift: -2
|
|
});
|
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverContent, {
|
|
__scopePopover: __scopeTooltip || TOOLTIP_SCOPE,
|
|
componentName: "Tooltip",
|
|
disableRemoveScroll: true,
|
|
disableFocusScope: true,
|
|
...!props.unstyled && {
|
|
padding
|
|
},
|
|
ref,
|
|
...props
|
|
});
|
|
}));
|
|
var TooltipArrow = React41.forwardRef((props, ref) => {
|
|
const {
|
|
__scopeTooltip,
|
|
...rest
|
|
} = props;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverArrow, {
|
|
__scopePopper: __scopeTooltip || TOOLTIP_SCOPE,
|
|
componentName: "Tooltip",
|
|
ref,
|
|
...rest
|
|
});
|
|
});
|
|
var TooltipGroup = /* @__PURE__ */ __name(({
|
|
children,
|
|
delay
|
|
}) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FloatingDelayGroup, {
|
|
delay: React41.useMemo(() => delay, [JSON.stringify(delay)]),
|
|
children
|
|
}), "TooltipGroup");
|
|
var TooltipComponent = React41.forwardRef(function(props, ref) {
|
|
const {
|
|
children,
|
|
delay: delayProp,
|
|
restMs = typeof delayProp > "u" ? 500 : typeof delayProp == "number" ? delayProp : 0,
|
|
onOpenChange: onOpenChangeProp,
|
|
focus: focus2,
|
|
open: openProp,
|
|
disableAutoCloseOnScroll,
|
|
__scopeTooltip,
|
|
...restProps
|
|
} = props, triggerRef = React41.useRef(null), [hasCustomAnchor, setHasCustomAnchor] = React41.useState(false), {
|
|
delay: delayGroup,
|
|
setCurrentId
|
|
} = useDelayGroupContext(), delay = delayProp ?? delayGroup, [open, setOpen] = useControllableState({
|
|
prop: openProp,
|
|
defaultProp: false,
|
|
onChange: onOpenChangeProp
|
|
}), id = props.groupId, onOpenChange = (0, import_core49.useEvent)((open2) => {
|
|
open2 && setCurrentId(id), setOpen(open2);
|
|
});
|
|
React41.useEffect(() => {
|
|
if (!open || disableAutoCloseOnScroll || typeof document > "u")
|
|
return;
|
|
const openIt = /* @__PURE__ */ __name(() => {
|
|
setOpen(false);
|
|
}, "openIt");
|
|
return document.documentElement.addEventListener("scroll", openIt), () => {
|
|
document.documentElement.removeEventListener("scroll", openIt);
|
|
};
|
|
}, [open, disableAutoCloseOnScroll]);
|
|
const useFloatingFn = /* @__PURE__ */ __name((props2) => {
|
|
const floating = useFloating3({
|
|
...props2,
|
|
open,
|
|
onOpenChange
|
|
}), {
|
|
getReferenceProps,
|
|
getFloatingProps
|
|
} = useInteractions([useHover(floating.context, {
|
|
delay,
|
|
restMs
|
|
}), useFocus(floating.context, focus2), useRole(floating.context, {
|
|
role: "tooltip"
|
|
}), useDismiss(floating.context), useDelayGroup(floating.context, {
|
|
id
|
|
})]);
|
|
return {
|
|
...floating,
|
|
open,
|
|
getReferenceProps,
|
|
getFloatingProps
|
|
};
|
|
}, "useFloatingFn"), useFloatingContext2 = React41.useCallback(useFloatingFn, [id, delay, open, restMs, focus2 ? JSON.stringify(focus2) : 0]), onCustomAnchorAdd = React41.useCallback(() => setHasCustomAnchor(true), []), onCustomAnchorRemove = React41.useCallback(() => setHasCustomAnchor(false), []), contentId = React41.useId(), smallerSize = props.unstyled ? null : getSize("$true", {
|
|
shift: -2,
|
|
bounds: [0]
|
|
});
|
|
return (
|
|
// TODO: FloatingOverrideContext might also need to be scoped
|
|
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FloatingOverrideContext.Provider, {
|
|
value: useFloatingContext2,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Popper, {
|
|
__scopePopper: __scopeTooltip || TOOLTIP_SCOPE,
|
|
size: smallerSize == null ? void 0 : smallerSize.key,
|
|
allowFlip: true,
|
|
stayInFrame: true,
|
|
...restProps,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverContext.Provider, {
|
|
contentId,
|
|
triggerRef,
|
|
sheetBreakpoint: false,
|
|
open,
|
|
scope: __scopeTooltip || TOOLTIP_SCOPE,
|
|
onOpenChange: setOpen,
|
|
onOpenToggle: voidFn,
|
|
hasCustomAnchor,
|
|
onCustomAnchorAdd,
|
|
onCustomAnchorRemove,
|
|
children
|
|
})
|
|
})
|
|
})
|
|
);
|
|
});
|
|
var TooltipTrigger = React41.forwardRef(function(props, ref) {
|
|
const {
|
|
__scopeTooltip,
|
|
...rest
|
|
} = props;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverTrigger, {
|
|
...rest,
|
|
__scopePopover: __scopeTooltip || TOOLTIP_SCOPE,
|
|
ref
|
|
});
|
|
});
|
|
var TooltipAnchor = React41.forwardRef(function(props, ref) {
|
|
const {
|
|
__scopeTooltip,
|
|
...rest
|
|
} = props;
|
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverAnchor, {
|
|
...rest,
|
|
__scopePopover: __scopeTooltip || TOOLTIP_SCOPE,
|
|
ref
|
|
});
|
|
});
|
|
var Tooltip2 = withStaticProperties(TooltipComponent, {
|
|
Anchor: TooltipAnchor,
|
|
Arrow: TooltipArrow,
|
|
Content: TooltipContent,
|
|
Trigger: TooltipTrigger
|
|
});
|
|
var voidFn = /* @__PURE__ */ __name(() => {
|
|
}, "voidFn");
|
|
|
|
// node_modules/@tamagui/tooltip/dist/esm/TooltipSimple.mjs
|
|
var React42 = __toESM(require("react"), 1);
|
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
var TooltipSimple = React42.forwardRef(({
|
|
label,
|
|
children,
|
|
contentProps,
|
|
disabled,
|
|
...tooltipProps
|
|
}, ref) => {
|
|
let context;
|
|
try {
|
|
context = useDelayGroupContext();
|
|
} catch {
|
|
}
|
|
const child = React42.Children.only(children), contents = /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Tooltip2, {
|
|
offset: 15,
|
|
restMs: 40,
|
|
delay: 40,
|
|
...tooltipProps,
|
|
...disabled ? {
|
|
open: false
|
|
} : null,
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Tooltip2.Trigger, {
|
|
...typeof label == "string" && {
|
|
"aria-label": label
|
|
},
|
|
asChild: "except-style",
|
|
children: ref && React42.isValidElement(child) ? React42.cloneElement(child, {
|
|
ref
|
|
}) : child
|
|
}), /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Tooltip2.Content, {
|
|
zIndex: 1e9,
|
|
enterStyle: {
|
|
x: 0,
|
|
y: -8,
|
|
opacity: 0,
|
|
scale: 0.93
|
|
},
|
|
exitStyle: {
|
|
x: 0,
|
|
y: -8,
|
|
opacity: 0,
|
|
scale: 0.93
|
|
},
|
|
x: 0,
|
|
scale: 1,
|
|
y: 0,
|
|
elevation: "$1",
|
|
opacity: 1,
|
|
paddingVertical: getSpace(tooltipProps.size || "$true", {
|
|
shift: -4
|
|
}),
|
|
animateOnly: ["transform", "opacity"],
|
|
animation: ["quicker", {
|
|
opacity: {
|
|
overshootClamping: true
|
|
}
|
|
}],
|
|
...contentProps,
|
|
children: [/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Tooltip2.Arrow, {}), /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Paragraph, {
|
|
size: "$3",
|
|
children: label
|
|
})]
|
|
})]
|
|
});
|
|
return context ? contents : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipGroup, {
|
|
delay: defaultTooltipDelay,
|
|
children: contents
|
|
});
|
|
});
|
|
var defaultTooltipDelay = {
|
|
open: 3e3,
|
|
close: 100
|
|
};
|
|
|
|
// node_modules/@tamagui/use-window-dimensions/dist/esm/index.mjs
|
|
var import_react55 = require("react");
|
|
var import_react_native_web11 = __toESM(require_cjs20(), 1);
|
|
var initialValue = {
|
|
height: 800,
|
|
width: 600
|
|
};
|
|
function configureInitialWindowDimensions(next) {
|
|
Object.assign(initialValue, next);
|
|
}
|
|
__name(configureInitialWindowDimensions, "configureInitialWindowDimensions");
|
|
import_react_native_web11.Dimensions.addEventListener("change", () => {
|
|
cbs.forEach((cb) => cb(window));
|
|
});
|
|
var cbs = /* @__PURE__ */ new Set();
|
|
function subscribe(cb) {
|
|
return cbs.add(cb), () => cbs.delete(cb);
|
|
}
|
|
__name(subscribe, "subscribe");
|
|
function useWindowDimensions2({
|
|
serverValue = initialValue
|
|
} = {}) {
|
|
return (0, import_react55.useSyncExternalStore)(subscribe, () => import_react_native_web11.Dimensions.get("window"), () => isWeb ? serverValue : import_react_native_web11.Dimensions.get("window"));
|
|
}
|
|
__name(useWindowDimensions2, "useWindowDimensions");
|
|
|
|
// node_modules/@tamagui/visually-hidden/dist/esm/VisuallyHidden.mjs
|
|
var import_web22 = require("@tamagui/core");
|
|
var VisuallyHidden = (0, import_web22.styled)(import_web22.Stack, {
|
|
position: "absolute",
|
|
width: 1,
|
|
height: 1,
|
|
margin: -1,
|
|
zIndex: -1e4,
|
|
overflow: "hidden",
|
|
opacity: 1e-8,
|
|
pointerEvents: "none",
|
|
variants: {
|
|
preserveDimensions: {
|
|
true: {
|
|
position: "relative",
|
|
width: "auto",
|
|
height: "auto"
|
|
}
|
|
},
|
|
visible: {
|
|
true: {
|
|
position: "relative",
|
|
width: "auto",
|
|
height: "auto",
|
|
margin: 0,
|
|
zIndex: 1,
|
|
overflow: "visible",
|
|
opacity: 1,
|
|
pointerEvents: "auto"
|
|
}
|
|
}
|
|
}
|
|
});
|
|
VisuallyHidden.isVisuallyHidden = true;
|
|
|
|
// node_modules/tamagui/dist/esm/createTamagui.mjs
|
|
var import_core50 = require("@tamagui/core");
|
|
var createTamagui = process.env.NODE_ENV !== "development" ? import_core50.createTamagui : (conf) => {
|
|
const sizeTokenKeys = ["$true"], hasKeys = /* @__PURE__ */ __name((expectedKeys, obj) => expectedKeys.every((k) => typeof obj[k] < "u"), "hasKeys"), tamaguiConfig2 = (0, import_core50.createTamagui)(conf);
|
|
for (const name of ["size", "space"]) {
|
|
const tokenSet = tamaguiConfig2.tokensParsed[name];
|
|
if (!tokenSet)
|
|
throw new Error(`Expected tokens for "${name}" in ${Object.keys(tamaguiConfig2.tokensParsed).join(", ")}`);
|
|
if (!hasKeys(sizeTokenKeys, tokenSet))
|
|
throw new Error(`
|
|
createTamagui() missing expected tokens.${name}:
|
|
|
|
Received: ${Object.keys(tokenSet).join(", ")}
|
|
|
|
Expected: ${sizeTokenKeys.join(", ")}
|
|
|
|
Tamagui expects a "true" key that is the same value as your default size. This is so
|
|
it can size things up or down from the defaults without assuming which keys you use.
|
|
|
|
Please define a "true" or "$true" key on your size and space tokens like so (example):
|
|
|
|
size: {
|
|
sm: 2,
|
|
md: 10,
|
|
true: 10, // this means "md" is your default size
|
|
lg: 20,
|
|
}
|
|
|
|
`);
|
|
}
|
|
const expected = Object.keys(tamaguiConfig2.tokensParsed.size);
|
|
for (const name of ["radius", "zIndex"]) {
|
|
const tokenSet = tamaguiConfig2.tokensParsed[name], received = Object.keys(tokenSet);
|
|
if (!received.some((rk) => expected.includes(rk)))
|
|
throw new Error(`
|
|
createTamagui() invalid tokens.${name}:
|
|
|
|
Received: ${received.join(", ")}
|
|
|
|
Expected a subset of: ${expected.join(", ")}
|
|
|
|
`);
|
|
}
|
|
return tamaguiConfig2;
|
|
};
|
|
|
|
// node_modules/tamagui/dist/esm/views/TamaguiProvider.mjs
|
|
var import_core51 = require("@tamagui/core");
|
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
var TamaguiProvider = /* @__PURE__ */ __name(({
|
|
children,
|
|
...props
|
|
}) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_core51.TamaguiProvider, {
|
|
...props,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(PortalProvider, {
|
|
shouldAddRootHost: true,
|
|
children
|
|
})
|
|
}), "TamaguiProvider");
|
|
|
|
// node_modules/tamagui/dist/esm/views/Anchor.mjs
|
|
var import_core52 = require("@tamagui/core");
|
|
var import_react_native_web12 = __toESM(require_cjs20(), 1);
|
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
var AnchorFrame = (0, import_core52.styled)(SizableText, {
|
|
name: "Anchor",
|
|
tag: "a",
|
|
accessibilityRole: "link"
|
|
});
|
|
var Anchor = AnchorFrame.styleable(({
|
|
href,
|
|
target,
|
|
...props
|
|
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AnchorFrame, {
|
|
...props,
|
|
...isWeb ? {
|
|
href,
|
|
target
|
|
} : {
|
|
onPress: (event) => {
|
|
var _a;
|
|
(_a = props.onPress) == null ? void 0 : _a.call(props, event), href !== void 0 && import_react_native_web12.Linking.openURL(href);
|
|
}
|
|
},
|
|
ref
|
|
}));
|
|
|
|
// node_modules/tamagui/dist/esm/views/EnsureFlexed.mjs
|
|
var import_core53 = require("@tamagui/core");
|
|
var EnsureFlexed = (0, import_core53.styled)(import_core53.Text, {
|
|
opacity: 0,
|
|
lineHeight: 0,
|
|
height: 0,
|
|
display: "flex",
|
|
fontSize: 200,
|
|
children: "wwwwwwwwwwwwwwwwwww",
|
|
pointerEvents: "none"
|
|
});
|
|
EnsureFlexed.isVisuallyHidden = true;
|
|
|
|
// node_modules/tamagui/dist/esm/views/Fieldset.mjs
|
|
var import_core54 = require("@tamagui/core");
|
|
var Fieldset = (0, import_core54.styled)(YStack, {
|
|
name: "Fieldset",
|
|
tag: "fieldset",
|
|
variants: {
|
|
horizontal: {
|
|
true: {
|
|
flexDirection: "row",
|
|
alignItems: "center"
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// node_modules/tamagui/dist/esm/views/Input.mjs
|
|
var import_core56 = require("@tamagui/core");
|
|
var import_react_native_web13 = __toESM(require_cjs20(), 1);
|
|
|
|
// node_modules/tamagui/dist/esm/helpers/inputHelpers.mjs
|
|
var import_core55 = require("@tamagui/core");
|
|
var inputSizeVariant = /* @__PURE__ */ __name((val = "$true", extras) => {
|
|
if (extras.props.multiline || extras.props.numberOfLines > 1)
|
|
return textAreaSizeVariant(val, extras);
|
|
const buttonStyles = getButtonSized(val, extras), paddingHorizontal = getSpace(val, {
|
|
shift: -1,
|
|
bounds: [2]
|
|
}), fontStyle = getFontSized(val, extras);
|
|
return !import_core55.isWeb && fontStyle && delete fontStyle.lineHeight, {
|
|
...fontStyle,
|
|
...buttonStyles,
|
|
paddingHorizontal
|
|
};
|
|
}, "inputSizeVariant");
|
|
var textAreaSizeVariant = /* @__PURE__ */ __name((val = "$true", extras) => {
|
|
const {
|
|
props
|
|
} = extras, buttonStyles = getButtonSized(val, extras), fontStyle = getFontSized(val, extras), lines = props.rows ?? props.numberOfLines, height = typeof lines == "number" ? lines * (0, import_core55.getVariableValue)(fontStyle.lineHeight) : "auto", paddingVertical = getSpace(val, {
|
|
shift: -2,
|
|
bounds: [2]
|
|
}), paddingHorizontal = getSpace(val, {
|
|
shift: -1,
|
|
bounds: [2]
|
|
});
|
|
return {
|
|
...buttonStyles,
|
|
...fontStyle,
|
|
paddingVertical,
|
|
paddingHorizontal,
|
|
height
|
|
};
|
|
}, "textAreaSizeVariant");
|
|
|
|
// node_modules/tamagui/dist/esm/views/Input.mjs
|
|
var import_react56 = require("react");
|
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
var defaultStyles = {
|
|
size: "$true",
|
|
fontFamily: "$body",
|
|
borderWidth: 1,
|
|
outlineWidth: 0,
|
|
color: "$color",
|
|
...isWeb ? {
|
|
tabIndex: 0
|
|
} : {
|
|
focusable: true
|
|
},
|
|
borderColor: "$borderColor",
|
|
backgroundColor: "$background",
|
|
// this fixes a flex bug where it overflows container
|
|
minWidth: 0,
|
|
hoverStyle: {
|
|
borderColor: "$borderColorHover"
|
|
},
|
|
focusStyle: {
|
|
borderColor: "$borderColorFocus"
|
|
},
|
|
focusVisibleStyle: {
|
|
outlineColor: "$outlineColor",
|
|
outlineWidth: 2,
|
|
outlineStyle: "solid"
|
|
}
|
|
};
|
|
var InputFrame = (0, import_core56.styled)(import_react_native_web13.TextInput, {
|
|
name: "Input",
|
|
variants: {
|
|
unstyled: {
|
|
false: defaultStyles
|
|
},
|
|
size: {
|
|
"...size": inputSizeVariant
|
|
},
|
|
disabled: {
|
|
true: {}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
}, {
|
|
isInput: true,
|
|
accept: {
|
|
placeholderTextColor: "color",
|
|
selectionColor: "color"
|
|
}
|
|
});
|
|
var Input = InputFrame.styleable((propsIn, forwardedRef) => {
|
|
const ref = (0, import_react56.useRef)(null), composedRefs = (0, import_core56.useComposedRefs)(forwardedRef, ref), props = useInputProps(propsIn, composedRefs);
|
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(InputFrame, {
|
|
...props
|
|
});
|
|
});
|
|
function useInputProps(props, ref) {
|
|
var _a, _b;
|
|
const theme = (0, import_core56.useTheme)(), {
|
|
onChangeText,
|
|
ref: combinedRef
|
|
} = useFocusable({
|
|
// @ts-ignore
|
|
props,
|
|
ref,
|
|
isInput: true
|
|
}), placeholderColorProp = props.placeholderTextColor, placeholderTextColor = ((_a = theme[placeholderColorProp]) == null ? void 0 : _a.get()) ?? placeholderColorProp ?? ((_b = theme.placeholderColor) == null ? void 0 : _b.get());
|
|
return {
|
|
ref: combinedRef,
|
|
readOnly: props.disabled,
|
|
...props,
|
|
placeholderTextColor,
|
|
onChangeText
|
|
};
|
|
}
|
|
__name(useInputProps, "useInputProps");
|
|
|
|
// node_modules/tamagui/dist/esm/views/Spinner.mjs
|
|
var import_core57 = require("@tamagui/core");
|
|
var React43 = __toESM(require("react"), 1);
|
|
var import_react_native_web14 = __toESM(require_cjs20(), 1);
|
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
var Spinner = YStack.extractable((0, import_core57.themeable)(React43.forwardRef((props, ref) => {
|
|
const {
|
|
size: size6,
|
|
color: colorProp,
|
|
...stackProps
|
|
} = props, theme = (0, import_core57.useTheme)();
|
|
let color2 = colorProp;
|
|
return color2 && color2[0] === "$" && (color2 = (0, import_core57.variableToString)(theme[color2])), /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(YStack, {
|
|
ref,
|
|
...stackProps,
|
|
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native_web14.ActivityIndicator, {
|
|
size: size6,
|
|
color: color2
|
|
})
|
|
});
|
|
}), {
|
|
componentName: "Spinner"
|
|
}));
|
|
|
|
// node_modules/tamagui/dist/esm/views/TextArea.mjs
|
|
var import_core58 = require("@tamagui/core");
|
|
var import_react57 = require("react");
|
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
var TextAreaFrame = (0, import_core58.styled)(InputFrame, {
|
|
name: "TextArea",
|
|
multiline: true,
|
|
// this attribute fixes firefox newline issue
|
|
whiteSpace: "pre-wrap",
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
height: "auto",
|
|
...defaultStyles
|
|
}
|
|
},
|
|
size: {
|
|
"...size": textAreaSizeVariant
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
var TextArea = TextAreaFrame.styleable((propsIn, forwardedRef) => {
|
|
const ref = (0, import_react57.useRef)(null), composedRefs = (0, import_core58.useComposedRefs)(forwardedRef, ref), props = useInputProps(propsIn, composedRefs), linesProp = {
|
|
// web uses rows now, but native not caught up :/
|
|
[isWeb ? "rows" : "numberOfLines"]: propsIn.unstyled ? void 0 : 4
|
|
};
|
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(TextAreaFrame, {
|
|
...linesProp,
|
|
...props
|
|
});
|
|
});
|
|
|
|
// node_modules/tamagui/dist/esm/views/Text.mjs
|
|
var import_core59 = require("@tamagui/core");
|
|
var Text3 = (0, import_core59.styled)(import_core59.Text, {
|
|
variants: {
|
|
unstyled: {
|
|
false: {
|
|
color: "$color"
|
|
}
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
unstyled: process.env.TAMAGUI_HEADLESS === "1"
|
|
}
|
|
});
|
|
|
|
// node_modules/tamagui/dist/esm/index.mjs
|
|
var import_core60 = require("@tamagui/core");
|
|
|
|
// tamagui.config.ts
|
|
var tamaguiConfig = createTamagui(config);
|
|
var tamagui_config_default = tamaguiConfig;
|
|
/*! Bundled license information:
|
|
|
|
use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js:
|
|
(**
|
|
* @license React
|
|
* use-sync-external-store-shim.production.min.js
|
|
*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
use-sync-external-store/cjs/use-sync-external-store-shim.development.js:
|
|
(**
|
|
* @license React
|
|
* use-sync-external-store-shim.development.js
|
|
*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js:
|
|
(**
|
|
* @license React
|
|
* use-sync-external-store-shim/with-selector.production.min.js
|
|
*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js:
|
|
(**
|
|
* @license React
|
|
* use-sync-external-store-shim/with-selector.development.js
|
|
*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*)
|
|
|
|
tabbable/dist/index.js:
|
|
(*!
|
|
* tabbable 6.2.0
|
|
* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
|
|
*)
|
|
*/
|