From 510f8039d071b0e5792d8d9213d37ba3f66009d8 Mon Sep 17 00:00:00 2001 From: siddheshmorewdi Date: Thu, 20 Jun 2024 13:59:27 +0530 Subject: [PATCH] first-merge --- .vite/deps/@chakra-ui_react.js | 38546 ++++++++++++++++ .vite/deps/@chakra-ui_react.js.map | 7 + .vite/deps/_metadata.json | 58 + .vite/deps/bootstrap.js | 3680 ++ .vite/deps/bootstrap.js.map | 7 + ...trap_dist_js_bootstrap__bundle__min__js.js | 2012 + ..._dist_js_bootstrap__bundle__min__js.js.map | 7 + .vite/deps/chunk-65KY755N.js | 1906 + .vite/deps/chunk-65KY755N.js.map | 7 + .vite/deps/chunk-V4OQ3NZ2.js | 42 + .vite/deps/chunk-V4OQ3NZ2.js.map | 7 + .vite/deps/chunk-YABOQLLY.js | 1516 + .vite/deps/chunk-YABOQLLY.js.map | 7 + .vite/deps/chunk-ZIYUGMGG.js | 21629 +++++++++ .vite/deps/chunk-ZIYUGMGG.js.map | 7 + .vite/deps/package.json | 3 + .vite/deps/react-dom_client.js | 39 + .vite/deps/react-dom_client.js.map | 7 + .vite/deps/react-router-dom.js | 5534 +++ .vite/deps/react-router-dom.js.map | 7 + .vite/deps/react.js | 6 + .vite/deps/react.js.map | 7 + package.json | 1 + src/App.jsx | 4 +- src/Components/Footer.jsx | 92 +- src/Components/Header.jsx | 67 +- src/assets/earth.png | Bin 0 -> 572 bytes yarn.lock | 7 + 28 files changed, 75201 insertions(+), 11 deletions(-) create mode 100644 .vite/deps/@chakra-ui_react.js create mode 100644 .vite/deps/@chakra-ui_react.js.map create mode 100644 .vite/deps/_metadata.json create mode 100644 .vite/deps/bootstrap.js create mode 100644 .vite/deps/bootstrap.js.map create mode 100644 .vite/deps/bootstrap_dist_js_bootstrap__bundle__min__js.js create mode 100644 .vite/deps/bootstrap_dist_js_bootstrap__bundle__min__js.js.map create mode 100644 .vite/deps/chunk-65KY755N.js create mode 100644 .vite/deps/chunk-65KY755N.js.map create mode 100644 .vite/deps/chunk-V4OQ3NZ2.js create mode 100644 .vite/deps/chunk-V4OQ3NZ2.js.map create mode 100644 .vite/deps/chunk-YABOQLLY.js create mode 100644 .vite/deps/chunk-YABOQLLY.js.map create mode 100644 .vite/deps/chunk-ZIYUGMGG.js create mode 100644 .vite/deps/chunk-ZIYUGMGG.js.map create mode 100644 .vite/deps/package.json create mode 100644 .vite/deps/react-dom_client.js create mode 100644 .vite/deps/react-dom_client.js.map create mode 100644 .vite/deps/react-router-dom.js create mode 100644 .vite/deps/react-router-dom.js.map create mode 100644 .vite/deps/react.js create mode 100644 .vite/deps/react.js.map create mode 100644 src/assets/earth.png diff --git a/.vite/deps/@chakra-ui_react.js b/.vite/deps/@chakra-ui_react.js new file mode 100644 index 0000000..edd5f6c --- /dev/null +++ b/.vite/deps/@chakra-ui_react.js @@ -0,0 +1,38546 @@ +import { + createPopper +} from "./chunk-YABOQLLY.js"; +import { + require_react_dom +} from "./chunk-ZIYUGMGG.js"; +import { + require_react +} from "./chunk-65KY755N.js"; +import { + __commonJS, + __esm, + __export, + __toCommonJS, + __toESM +} from "./chunk-V4OQ3NZ2.js"; + +// node_modules/@emotion/memoize/dist/emotion-memoize.esm.js +function memoize(fn) { + var cache = /* @__PURE__ */ Object.create(null); + return function(arg) { + if (cache[arg] === void 0) cache[arg] = fn(arg); + return cache[arg]; + }; +} +var init_emotion_memoize_esm = __esm({ + "node_modules/@emotion/memoize/dist/emotion-memoize.esm.js"() { + } +}); + +// node_modules/react-is/cjs/react-is.development.js +var require_react_is_development = __commonJS({ + "node_modules/react-is/cjs/react-is.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var hasSymbol = typeof Symbol === "function" && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110; + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for("react.block") : 60121; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119; + function isValidElementType(type) { + return typeof type === "string" || typeof type === "function" || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + } + function typeOf(object2) { + if (typeof object2 === "object" && object2 !== null) { + var $$typeof = object2.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object2.type; + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + default: + var $$typeofType = type && type.$$typeof; + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + default: + return $$typeof; + } + } + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + return void 0; + } + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element2 = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment18 = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal2 = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; + function isAsyncMode(object2) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API."); + } + } + return isConcurrentMode(object2) || typeOf(object2) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object2) { + return typeOf(object2) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object2) { + return typeOf(object2) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object2) { + return typeOf(object2) === REACT_PROVIDER_TYPE; + } + function isElement5(object2) { + return typeof object2 === "object" && object2 !== null && object2.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object2) { + return typeOf(object2) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object2) { + return typeOf(object2) === REACT_FRAGMENT_TYPE; + } + function isLazy(object2) { + return typeOf(object2) === REACT_LAZY_TYPE; + } + function isMemo(object2) { + return typeOf(object2) === REACT_MEMO_TYPE; + } + function isPortal(object2) { + return typeOf(object2) === REACT_PORTAL_TYPE; + } + function isProfiler(object2) { + return typeOf(object2) === REACT_PROFILER_TYPE; + } + function isStrictMode(object2) { + return typeOf(object2) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object2) { + return typeOf(object2) === REACT_SUSPENSE_TYPE; + } + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element2; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment18; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal2; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement5; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + exports.isValidElementType = isValidElementType; + exports.typeOf = typeOf; + })(); + } + } +}); + +// node_modules/react-is/index.js +var require_react_is = __commonJS({ + "node_modules/react-is/index.js"(exports, module) { + "use strict"; + if (false) { + module.exports = null; + } else { + module.exports = require_react_is_development(); + } + } +}); + +// node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +var require_hoist_non_react_statics_cjs = __commonJS({ + "node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"(exports, module) { + "use strict"; + var reactIs = require_react_is(); + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + var FORWARD_REF_STATICS = { + "$$typeof": true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + var MEMO_STATICS = { + "$$typeof": true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; + TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; + function getStatics(component) { + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } + return TYPE_STATICS[component["$$typeof"]] || REACT_STATICS; + } + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + function hoistNonReactStatics2(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== "string") { + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics2(targetComponent, inheritedComponent, blacklist); + } + } + var keys2 = getOwnPropertyNames(sourceComponent); + if (getOwnPropertySymbols) { + keys2 = keys2.concat(getOwnPropertySymbols(sourceComponent)); + } + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + for (var i = 0; i < keys2.length; ++i) { + var key = keys2[i]; + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + try { + defineProperty(targetComponent, key, descriptor); + } catch (e) { + } + } + } + } + return targetComponent; + } + module.exports = hoistNonReactStatics2; + } +}); + +// node_modules/react/cjs/react-jsx-runtime.development.js +var require_react_jsx_runtime_development = __commonJS({ + "node_modules/react/cjs/react-jsx-runtime.development.js"(exports) { + "use strict"; + if (true) { + (function() { + "use strict"; + var React26 = require_react(); + var REACT_ELEMENT_TYPE = Symbol.for("react.element"); + var REACT_PORTAL_TYPE = Symbol.for("react.portal"); + var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); + var REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"); + var REACT_PROFILER_TYPE = Symbol.for("react.profiler"); + var REACT_PROVIDER_TYPE = Symbol.for("react.provider"); + var REACT_CONTEXT_TYPE = Symbol.for("react.context"); + var REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"); + var REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"); + var REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"); + var REACT_MEMO_TYPE = Symbol.for("react.memo"); + var REACT_LAZY_TYPE = Symbol.for("react.lazy"); + var REACT_OFFSCREEN_TYPE = Symbol.for("react.offscreen"); + var MAYBE_ITERATOR_SYMBOL = Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== "object") { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === "function") { + return maybeIterator; + } + return null; + } + var ReactSharedInternals = React26.__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); + } + } + } + function printWarning(level, format, args) { + { + var ReactDebugCurrentFrame2 = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame2.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); + } + } + var enableScopeAPI = false; + var enableCacheElement = false; + var enableTransitionTracing = false; + var enableLegacyHidden = false; + var enableDebugTracing = false; + var REACT_MODULE_REFERENCE; + { + REACT_MODULE_REFERENCE = Symbol.for("react.module.reference"); + } + function isValidElementType(type) { + if (typeof type === "string" || typeof type === "function") { + return true; + } + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) { + return true; + } + if (typeof type === "object" && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object + // types supported by any Flight configuration anywhere since + // we don't know which Flight build this will end up being used + // with. + type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== void 0) { + return true; + } + } + return false; + } + function getWrappedName(outerType, innerType, wrapperName) { + var displayName = outerType.displayName; + if (displayName) { + return displayName; + } + var functionName = innerType.displayName || innerType.name || ""; + return functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName; + } + function getContextName(type) { + return type.displayName || "Context"; + } + function getComponentNameFromType(type) { + if (type == null) { + return null; + } + { + if (typeof type.tag === "number") { + error2("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."); + } + } + if (typeof type === "function") { + return type.displayName || type.name || null; + } + if (typeof type === "string") { + return type; + } + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + ".Consumer"; + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + ".Provider"; + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, "ForwardRef"); + case REACT_MEMO_TYPE: + var outerName = type.displayName || null; + if (outerName !== null) { + return outerName; + } + return getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return getComponentNameFromType(init(payload)); + } catch (x) { + return null; + } + } + } + } + return null; + } + var assign2 = Object.assign; + var disabledDepth = 0; + var prevLog; + var prevInfo; + var prevWarn; + var prevError; + var prevGroup; + var prevGroupCollapsed; + var prevGroupEnd; + function disabledLog() { + } + disabledLog.__reactDisabledLog = true; + function disableLogs() { + { + if (disabledDepth === 0) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + } + function reenableLogs() { + { + disabledDepth--; + if (disabledDepth === 0) { + var props = { + configurable: true, + enumerable: true, + writable: true + }; + Object.defineProperties(console, { + log: assign2({}, props, { + value: prevLog + }), + info: assign2({}, props, { + value: prevInfo + }), + warn: assign2({}, props, { + value: prevWarn + }), + error: assign2({}, props, { + value: prevError + }), + group: assign2({}, props, { + value: prevGroup + }), + groupCollapsed: assign2({}, props, { + value: prevGroupCollapsed + }), + groupEnd: assign2({}, props, { + value: prevGroupEnd + }) + }); + } + if (disabledDepth < 0) { + error2("disabledDepth fell below zero. This is a bug in React. Please file an issue."); + } + } + } + var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; + var prefix4; + function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix4 === void 0) { + try { + throw Error(); + } catch (x) { + var match3 = x.stack.trim().match(/\n( *(at )?)/); + prefix4 = match3 && match3[1] || ""; + } + } + return "\n" + prefix4 + name; + } + } + var reentry = false; + var componentFrameCache; + { + var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap(); + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) { + return ""; + } + { + var frame3 = componentFrameCache.get(fn); + if (frame3 !== void 0) { + return frame3; + } + } + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var previousDispatcher; + { + previousDispatcher = ReactCurrentDispatcher.current; + ReactCurrentDispatcher.current = null; + disableLogs(); + } + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if (typeof Reflect === "object" && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } + fn(); + } + } catch (sample) { + if (sample && control && typeof sample.stack === "string") { + var sampleLines = sample.stack.split("\n"); + var controlLines = control.stack.split("\n"); + var s = sampleLines.length - 1; + var c = controlLines.length - 1; + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + c--; + } + for (; s >= 1 && c >= 0; s--, c--) { + if (sampleLines[s] !== controlLines[c]) { + if (s !== 1 || c !== 1) { + do { + s--; + c--; + if (c < 0 || sampleLines[s] !== controlLines[c]) { + var _frame = "\n" + sampleLines[s].replace(" at new ", " at "); + if (fn.displayName && _frame.includes("")) { + _frame = _frame.replace("", fn.displayName); + } + { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } + return _frame; + } + } while (s >= 1 && c >= 0); + } + break; + } + } + } + } finally { + reentry = false; + { + ReactCurrentDispatcher.current = previousDispatcher; + reenableLogs(); + } + Error.prepareStackTrace = previousPrepareStackTrace; + } + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + return syntheticFrame; + } + function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } + } + function shouldConstruct(Component3) { + var prototype = Component3.prototype; + return !!(prototype && prototype.isReactComponent); + } + function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + if (type == null) { + return ""; + } + if (typeof type === "function") { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + if (typeof type === "string") { + return describeBuiltInComponentFrame(type); + } + switch (type) { + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + case REACT_MEMO_TYPE: + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + case REACT_LAZY_TYPE: { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x) { + } + } + } + } + return ""; + } + var hasOwnProperty = Object.prototype.hasOwnProperty; + var loggedTypeFailures = {}; + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame.setExtraStackFrame(null); + } + } + } + function checkPropTypes(typeSpecs, values, location, componentName, element) { + { + var has = Function.call.bind(hasOwnProperty); + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error$1 = void 0; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + err.name = "Invariant Violation"; + throw err; + } + error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (ex) { + error$1 = ex; + } + if (error$1 && !(error$1 instanceof Error)) { + setCurrentlyValidatingElement(element); + error2("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", componentName || "React class", location, typeSpecName, typeof error$1); + setCurrentlyValidatingElement(null); + } + if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { + loggedTypeFailures[error$1.message] = true; + setCurrentlyValidatingElement(element); + error2("Failed %s type: %s", location, error$1.message); + setCurrentlyValidatingElement(null); + } + } + } + } + } + var isArrayImpl = Array.isArray; + function isArray2(a) { + return isArrayImpl(a); + } + function typeName(value) { + { + var hasToStringTag = typeof Symbol === "function" && Symbol.toStringTag; + var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; + return type; + } + } + function willCoercionThrow(value) { + { + try { + testStringCoercion(value); + return false; + } catch (e) { + return true; + } + } + } + function testStringCoercion(value) { + return "" + value; + } + function checkKeyStringCoercion(value) { + { + if (willCoercionThrow(value)) { + error2("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", typeName(value)); + return testStringCoercion(value); + } + } + } + var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner; + var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true + }; + var specialPropKeyWarningShown; + var specialPropRefWarningShown; + var didWarnAboutStringRefs; + { + didWarnAboutStringRefs = {}; + } + function hasValidRef(config2) { + { + if (hasOwnProperty.call(config2, "ref")) { + var getter = Object.getOwnPropertyDescriptor(config2, "ref").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config2.ref !== void 0; + } + function hasValidKey(config2) { + { + if (hasOwnProperty.call(config2, "key")) { + var getter = Object.getOwnPropertyDescriptor(config2, "key").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config2.key !== void 0; + } + function warnIfStringRefCannotBeAutoConverted(config2, self2) { + { + if (typeof config2.ref === "string" && ReactCurrentOwner.current && self2 && ReactCurrentOwner.current.stateNode !== self2) { + var componentName = getComponentNameFromType(ReactCurrentOwner.current.type); + if (!didWarnAboutStringRefs[componentName]) { + error2('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config2.ref); + didWarnAboutStringRefs[componentName] = true; + } + } + } + } + function defineKeyPropWarningGetter(props, displayName) { + { + var warnAboutAccessingKey = function() { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + error2("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + } + function defineRefPropWarningGetter(props, displayName) { + { + var warnAboutAccessingRef = function() { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + error2("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, "ref", { + get: warnAboutAccessingRef, + configurable: true + }); + } + } + var ReactElement = function(type, key, ref, self2, source, owner, props) { + var element = { + // This tag allows us to uniquely identify this as a React Element + $$typeof: REACT_ELEMENT_TYPE, + // Built-in properties that belong on the element + type, + key, + ref, + props, + // Record the component responsible for creating this element. + _owner: owner + }; + { + element._store = {}; + Object.defineProperty(element._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + Object.defineProperty(element, "_self", { + configurable: false, + enumerable: false, + writable: false, + value: self2 + }); + Object.defineProperty(element, "_source", { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + return element; + }; + function jsxDEV(type, config2, maybeKey, source, self2) { + { + var propName; + var props = {}; + var key = null; + var ref = null; + if (maybeKey !== void 0) { + { + checkKeyStringCoercion(maybeKey); + } + key = "" + maybeKey; + } + if (hasValidKey(config2)) { + { + checkKeyStringCoercion(config2.key); + } + key = "" + config2.key; + } + if (hasValidRef(config2)) { + ref = config2.ref; + warnIfStringRefCannotBeAutoConverted(config2, self2); + } + for (propName in config2) { + if (hasOwnProperty.call(config2, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config2[propName]; + } + } + if (type && type.defaultProps) { + var defaultProps2 = type.defaultProps; + for (propName in defaultProps2) { + if (props[propName] === void 0) { + props[propName] = defaultProps2[propName]; + } + } + } + if (key || ref) { + var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + return ReactElement(type, key, ref, self2, source, ReactCurrentOwner.current, props); + } + } + var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner; + var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement$1(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame$1.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame$1.setExtraStackFrame(null); + } + } + } + var propTypesMisspellWarningShown; + { + propTypesMisspellWarningShown = false; + } + function isValidElement9(object2) { + { + return typeof object2 === "object" && object2 !== null && object2.$$typeof === REACT_ELEMENT_TYPE; + } + } + function getDeclarationErrorAddendum() { + { + if (ReactCurrentOwner$1.current) { + var name = getComponentNameFromType(ReactCurrentOwner$1.current.type); + if (name) { + return "\n\nCheck the render method of `" + name + "`."; + } + } + return ""; + } + } + function getSourceInfoErrorAddendum(source) { + { + if (source !== void 0) { + var fileName = source.fileName.replace(/^.*[\\\/]/, ""); + var lineNumber = source.lineNumber; + return "\n\nCheck your code at " + fileName + ":" + lineNumber + "."; + } + return ""; + } + } + var ownerHasKeyUseWarning = {}; + function getCurrentComponentErrorInfo(parentType) { + { + var info = getDeclarationErrorAddendum(); + if (!info) { + var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = "\n\nCheck the top-level render call using <" + parentName + ">."; + } + } + return info; + } + } + function validateExplicitKey(element, parentType) { + { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { + return; + } + ownerHasKeyUseWarning[currentComponentErrorInfo] = true; + var childOwner = ""; + if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) { + childOwner = " It was passed a child from " + getComponentNameFromType(element._owner.type) + "."; + } + setCurrentlyValidatingElement$1(element); + error2('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner); + setCurrentlyValidatingElement$1(null); + } + } + function validateChildKeys(node3, parentType) { + { + if (typeof node3 !== "object") { + return; + } + if (isArray2(node3)) { + for (var i = 0; i < node3.length; i++) { + var child = node3[i]; + if (isValidElement9(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (isValidElement9(node3)) { + if (node3._store) { + node3._store.validated = true; + } + } else if (node3) { + var iteratorFn = getIteratorFn(node3); + if (typeof iteratorFn === "function") { + if (iteratorFn !== node3.entries) { + var iterator = iteratorFn.call(node3); + var step; + while (!(step = iterator.next()).done) { + if (isValidElement9(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } + } + } + function validatePropTypes(element) { + { + var type = element.type; + if (type === null || type === void 0 || typeof type === "string") { + return; + } + var propTypes2; + if (typeof type === "function") { + propTypes2 = type.propTypes; + } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here. + // Inner props are checked in the reconciler. + type.$$typeof === REACT_MEMO_TYPE)) { + propTypes2 = type.propTypes; + } else { + return; + } + if (propTypes2) { + var name = getComponentNameFromType(type); + checkPropTypes(propTypes2, element.props, "prop", name, element); + } else if (type.PropTypes !== void 0 && !propTypesMisspellWarningShown) { + propTypesMisspellWarningShown = true; + var _name = getComponentNameFromType(type); + error2("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown"); + } + if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) { + error2("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."); + } + } + } + function validateFragmentProps(fragment) { + { + var keys2 = Object.keys(fragment.props); + for (var i = 0; i < keys2.length; i++) { + var key = keys2[i]; + if (key !== "children" && key !== "key") { + setCurrentlyValidatingElement$1(fragment); + error2("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.", key); + setCurrentlyValidatingElement$1(null); + break; + } + } + if (fragment.ref !== null) { + setCurrentlyValidatingElement$1(fragment); + error2("Invalid attribute `ref` supplied to `React.Fragment`."); + setCurrentlyValidatingElement$1(null); + } + } + } + var didWarnAboutKeySpread = {}; + function jsxWithValidation(type, props, key, isStaticChildren, source, self2) { + { + var validType = isValidElementType(type); + if (!validType) { + var info = ""; + if (type === void 0 || typeof type === "object" && type !== null && Object.keys(type).length === 0) { + info += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."; + } + var sourceInfo = getSourceInfoErrorAddendum(source); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } + var typeString; + if (type === null) { + typeString = "null"; + } else if (isArray2(type)) { + typeString = "array"; + } else if (type !== void 0 && type.$$typeof === REACT_ELEMENT_TYPE) { + typeString = "<" + (getComponentNameFromType(type.type) || "Unknown") + " />"; + info = " Did you accidentally export a JSX literal instead of a component?"; + } else { + typeString = typeof type; + } + error2("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", typeString, info); + } + var element = jsxDEV(type, props, key, source, self2); + if (element == null) { + return element; + } + if (validType) { + var children = props.children; + if (children !== void 0) { + if (isStaticChildren) { + if (isArray2(children)) { + for (var i = 0; i < children.length; i++) { + validateChildKeys(children[i], type); + } + if (Object.freeze) { + Object.freeze(children); + } + } else { + error2("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."); + } + } else { + validateChildKeys(children, type); + } + } + } + { + if (hasOwnProperty.call(props, "key")) { + var componentName = getComponentNameFromType(type); + var keys2 = Object.keys(props).filter(function(k) { + return k !== "key"; + }); + var beforeExample = keys2.length > 0 ? "{key: someKey, " + keys2.join(": ..., ") + ": ...}" : "{key: someKey}"; + if (!didWarnAboutKeySpread[componentName + beforeExample]) { + var afterExample = keys2.length > 0 ? "{" + keys2.join(": ..., ") + ": ...}" : "{}"; + error2('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName); + didWarnAboutKeySpread[componentName + beforeExample] = true; + } + } + } + if (type === REACT_FRAGMENT_TYPE) { + validateFragmentProps(element); + } else { + validatePropTypes(element); + } + return element; + } + } + function jsxWithValidationStatic(type, props, key) { + { + return jsxWithValidation(type, props, key, true); + } + } + function jsxWithValidationDynamic(type, props, key) { + { + return jsxWithValidation(type, props, key, false); + } + } + var jsx193 = jsxWithValidationDynamic; + var jsxs29 = jsxWithValidationStatic; + exports.Fragment = REACT_FRAGMENT_TYPE; + exports.jsx = jsx193; + exports.jsxs = jsxs29; + })(); + } + } +}); + +// node_modules/react/jsx-runtime.js +var require_jsx_runtime = __commonJS({ + "node_modules/react/jsx-runtime.js"(exports, module) { + "use strict"; + if (false) { + module.exports = null; + } else { + module.exports = require_react_jsx_runtime_development(); + } + } +}); + +// node_modules/lodash.mergewith/index.js +var require_lodash = __commonJS({ + "node_modules/lodash.mergewith/index.js"(exports, module) { + var LARGE_ARRAY_SIZE = 200; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + var HOT_COUNT = 800; + var HOT_SPAN = 16; + var MAX_SAFE_INTEGER = 9007199254740991; + var argsTag = "[object Arguments]"; + var arrayTag = "[object Array]"; + var asyncTag = "[object AsyncFunction]"; + var boolTag = "[object Boolean]"; + var dateTag = "[object Date]"; + var errorTag = "[object Error]"; + var funcTag = "[object Function]"; + var genTag = "[object GeneratorFunction]"; + var mapTag = "[object Map]"; + var numberTag = "[object Number]"; + var nullTag = "[object Null]"; + var objectTag = "[object Object]"; + var proxyTag = "[object Proxy]"; + var regexpTag = "[object RegExp]"; + var setTag = "[object Set]"; + var stringTag = "[object String]"; + var undefinedTag = "[object Undefined]"; + var weakMapTag = "[object WeakMap]"; + var arrayBufferTag = "[object ArrayBuffer]"; + var dataViewTag = "[object DataView]"; + var float32Tag = "[object Float32Array]"; + var float64Tag = "[object Float64Array]"; + var int8Tag = "[object Int8Array]"; + var int16Tag = "[object Int16Array]"; + var int32Tag = "[object Int32Array]"; + var uint8Tag = "[object Uint8Array]"; + var uint8ClampedTag = "[object Uint8ClampedArray]"; + var uint16Tag = "[object Uint16Array]"; + var uint32Tag = "[object Uint32Array]"; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; + var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; + var moduleExports = freeModule && freeModule.exports === freeExports; + var freeProcess = moduleExports && freeGlobal.process; + var nodeUtil = function() { + try { + var types = freeModule && freeModule.require && freeModule.require("util").types; + if (types) { + return types; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } + }(); + var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + function apply(func2, thisArg, args) { + switch (args.length) { + case 0: + return func2.call(thisArg); + case 1: + return func2.call(thisArg, args[0]); + case 2: + return func2.call(thisArg, args[0], args[1]); + case 3: + return func2.call(thisArg, args[0], args[1], args[2]); + } + return func2.apply(thisArg, args); + } + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + function baseUnary(func2) { + return function(value) { + return func2(value); + }; + } + function getValue2(object2, key) { + return object2 == null ? void 0 : object2[key]; + } + function overArg(func2, transform3) { + return function(arg) { + return func2(transform3(arg)); + }; + } + var arrayProto = Array.prototype; + var funcProto = Function.prototype; + var objectProto = Object.prototype; + var coreJsData = root["__core-js_shared__"]; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + var nativeObjectToString = objectProto.toString; + var objectCtorString = funcToString.call(Object); + var reIsNative = RegExp( + "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" + ); + var Buffer = moduleExports ? root.Buffer : void 0; + var Symbol2 = root.Symbol; + var Uint8Array = root.Uint8Array; + var allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0; + var getPrototype = overArg(Object.getPrototypeOf, Object); + var objectCreate = Object.create; + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + var splice = arrayProto.splice; + var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; + var defineProperty = function() { + try { + var func2 = getNative(Object, "defineProperty"); + func2({}, "", {}); + return func2; + } catch (e) { + } + }(); + var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0; + var nativeMax = Math.max; + var nativeNow = Date.now; + var Map2 = getNative(root, "Map"); + var nativeCreate = getNative(Object, "create"); + var baseCreate = /* @__PURE__ */ function() { + function object2() { + } + return function(proto) { + if (!isObject3(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object2.prototype = proto; + var result = new object2(); + object2.prototype = void 0; + return result; + }; + }(); + function Hash(entries) { + var index = -1, length2 = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length2) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? void 0 : result; + } + return hasOwnProperty.call(data, key) ? data[key] : void 0; + } + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); + } + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(entries) { + var index = -1, length2 = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length2) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? void 0 : data[index][1]; + } + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(entries) { + var index = -1, length2 = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length2) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map2 || ListCache)(), + "string": new Hash() + }; + } + function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; + } + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + function mapCacheSet(key, value) { + var data = getMapData(this, key), size2 = data.size; + data.set(key, value); + this.size += data.size == size2 ? 0 : 1; + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function Stack2(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + function stackDelete(key) { + var data = this.__data__, result = data["delete"](key); + this.size = data.size; + return result; + } + function stackGet(key) { + return this.__data__.get(key); + } + function stackHas(key) { + return this.__data__.has(key); + } + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + Stack2.prototype.clear = stackClear; + Stack2.prototype["delete"] = stackDelete; + Stack2.prototype.get = stackGet; + Stack2.prototype.has = stackHas; + Stack2.prototype.set = stackSet; + function arrayLikeKeys(value, inherited) { + var isArr = isArray2(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length2 = result.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length2)))) { + result.push(key); + } + } + return result; + } + function assignMergeValue(object2, key, value) { + if (value !== void 0 && !eq(object2[key], value) || value === void 0 && !(key in object2)) { + baseAssignValue(object2, key, value); + } + } + function assignValue(object2, key, value) { + var objValue = object2[key]; + if (!(hasOwnProperty.call(object2, key) && eq(objValue, value)) || value === void 0 && !(key in object2)) { + baseAssignValue(object2, key, value); + } + } + function assocIndexOf(array, key) { + var length2 = array.length; + while (length2--) { + if (eq(array[length2][0], key)) { + return length2; + } + } + return -1; + } + function baseAssignValue(object2, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object2, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object2[key] = value; + } + } + var baseFor = createBaseFor(); + function baseGetTag(value) { + if (value == null) { + return value === void 0 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); + } + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + function baseIsNative(value) { + if (!isObject3(value) || isMasked(value)) { + return false; + } + var pattern = isFunction5(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + function baseKeysIn(object2) { + if (!isObject3(object2)) { + return nativeKeysIn(object2); + } + var isProto = isPrototype(object2), result = []; + for (var key in object2) { + if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object2, key)))) { + result.push(key); + } + } + return result; + } + function baseMerge(object2, source, srcIndex, customizer, stack) { + if (object2 === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack2()); + if (isObject3(srcValue)) { + baseMergeDeep(object2, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object2, key), srcValue, key + "", object2, source, stack) : void 0; + if (newValue === void 0) { + newValue = srcValue; + } + assignMergeValue(object2, key, newValue); + } + }, keysIn); + } + function baseMergeDeep(object2, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object2, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object2, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object2, source, stack) : void 0; + var isCommon = newValue === void 0; + if (isCommon) { + var isArr = isArray2(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray2(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject3(objValue) || isFunction5(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object2, key, newValue); + } + function baseRest(func2, start) { + return setToString(overRest(func2, start, identity), func2 + ""); + } + var baseSetToString = !defineProperty ? identity : function(func2, string2) { + return defineProperty(func2, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string2), + "writable": true + }); + }; + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2); + buffer.copy(result); + return result; + } + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; + } + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + function copyArray(source, array) { + var index = -1, length2 = source.length; + array || (array = Array(length2)); + while (++index < length2) { + array[index] = source[index]; + } + return array; + } + function copyObject(source, props, object2, customizer) { + var isNew = !object2; + object2 || (object2 = {}); + var index = -1, length2 = props.length; + while (++index < length2) { + var key = props[index]; + var newValue = customizer ? customizer(object2[key], source[key], key, object2, source) : void 0; + if (newValue === void 0) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object2, key, newValue); + } else { + assignValue(object2, key, newValue); + } + } + return object2; + } + function createAssigner(assigner) { + return baseRest(function(object2, sources) { + var index = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard2 = length2 > 2 ? sources[2] : void 0; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0; + if (guard2 && isIterateeCall(sources[0], sources[1], guard2)) { + customizer = length2 < 3 ? void 0 : customizer; + length2 = 1; + } + object2 = Object(object2); + while (++index < length2) { + var source = sources[index]; + if (source) { + assigner(object2, source, index, customizer); + } + } + return object2; + }); + } + function createBaseFor(fromRight) { + return function(object2, iteratee, keysFunc) { + var index = -1, iterable = Object(object2), props = keysFunc(object2), length2 = props.length; + while (length2--) { + var key = props[fromRight ? length2 : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object2; + }; + } + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + function getNative(object2, key) { + var value = getValue2(object2, key); + return baseIsNative(value) ? value : void 0; + } + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; + try { + value[symToStringTag] = void 0; + var unmasked = true; + } catch (e) { + } + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; + } + function initCloneObject(object2) { + return typeof object2.constructor == "function" && !isPrototype(object2) ? baseCreate(getPrototype(object2)) : {}; + } + function isIndex(value, length2) { + var type = typeof value; + length2 = length2 == null ? MAX_SAFE_INTEGER : length2; + return !!length2 && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length2); + } + function isIterateeCall(value, index, object2) { + if (!isObject3(object2)) { + return false; + } + var type = typeof index; + if (type == "number" ? isArrayLike(object2) && isIndex(index, object2.length) : type == "string" && index in object2) { + return eq(object2[index], value); + } + return false; + } + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + function isMasked(func2) { + return !!maskSrcKey && maskSrcKey in func2; + } + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + function nativeKeysIn(object2) { + var result = []; + if (object2 != null) { + for (var key in Object(object2)) { + result.push(key); + } + } + return result; + } + function objectToString(value) { + return nativeObjectToString.call(value); + } + function overRest(func2, start, transform3) { + start = nativeMax(start === void 0 ? func2.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length2 = nativeMax(args.length - start, 0), array = Array(length2); + while (++index < length2) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform3(array); + return apply(func2, this, otherArgs); + }; + } + function safeGet(object2, key) { + if (key === "constructor" && typeof object2[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object2[key]; + } + var setToString = shortOut(baseSetToString); + function shortOut(func2) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func2.apply(void 0, arguments); + }; + } + function toSource(func2) { + if (func2 != null) { + try { + return funcToString.call(func2); + } catch (e) { + } + try { + return func2 + ""; + } catch (e) { + } + } + return ""; + } + function eq(value, other) { + return value === other || value !== value && other !== other; + } + var isArguments = baseIsArguments(/* @__PURE__ */ function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + var isArray2 = Array.isArray; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction5(value); + } + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + var isBuffer = nativeIsBuffer || stubFalse; + function isFunction5(value) { + if (!isObject3(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + function isObject3(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + function keysIn(object2) { + return isArrayLike(object2) ? arrayLikeKeys(object2, true) : baseKeysIn(object2); + } + var mergeWith6 = createAssigner(function(object2, source, srcIndex, customizer) { + baseMerge(object2, source, srcIndex, customizer); + }); + function constant(value) { + return function() { + return value; + }; + } + function identity(value) { + return value; + } + function stubFalse() { + return false; + } + module.exports = mergeWith6; + } +}); + +// node_modules/react-fast-compare/index.js +var require_react_fast_compare = __commonJS({ + "node_modules/react-fast-compare/index.js"(exports, module) { + var hasElementType = typeof Element !== "undefined"; + var hasMap = typeof Map === "function"; + var hasSet = typeof Set === "function"; + var hasArrayBuffer = typeof ArrayBuffer === "function" && !!ArrayBuffer.isView; + function equal(a, b) { + if (a === b) return true; + if (a && b && typeof a == "object" && typeof b == "object") { + if (a.constructor !== b.constructor) return false; + var length2, i, keys2; + if (Array.isArray(a)) { + length2 = a.length; + if (length2 != b.length) return false; + for (i = length2; i-- !== 0; ) + if (!equal(a[i], b[i])) return false; + return true; + } + var it; + if (hasMap && a instanceof Map && b instanceof Map) { + if (a.size !== b.size) return false; + it = a.entries(); + while (!(i = it.next()).done) + if (!b.has(i.value[0])) return false; + it = a.entries(); + while (!(i = it.next()).done) + if (!equal(i.value[1], b.get(i.value[0]))) return false; + return true; + } + if (hasSet && a instanceof Set && b instanceof Set) { + if (a.size !== b.size) return false; + it = a.entries(); + while (!(i = it.next()).done) + if (!b.has(i.value[0])) return false; + return true; + } + if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length2 = a.length; + if (length2 != b.length) return false; + for (i = length2; i-- !== 0; ) + if (a[i] !== b[i]) return false; + return true; + } + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === "function" && typeof b.valueOf === "function") return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString && typeof a.toString === "function" && typeof b.toString === "function") return a.toString() === b.toString(); + keys2 = Object.keys(a); + length2 = keys2.length; + if (length2 !== Object.keys(b).length) return false; + for (i = length2; i-- !== 0; ) + if (!Object.prototype.hasOwnProperty.call(b, keys2[i])) return false; + if (hasElementType && a instanceof Element) return false; + for (i = length2; i-- !== 0; ) { + if ((keys2[i] === "_owner" || keys2[i] === "__v" || keys2[i] === "__o") && a.$$typeof) { + continue; + } + if (!equal(a[keys2[i]], b[keys2[i]])) return false; + } + return true; + } + return a !== a && b !== b; + } + module.exports = function isEqual2(a, b) { + try { + return equal(a, b); + } catch (error2) { + if ((error2.message || "").match(/stack|recursion/i)) { + console.warn("react-fast-compare cannot handle circular refs"); + return false; + } + throw error2; + } + }; + } +}); + +// node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +var emotion_is_prop_valid_esm_exports = {}; +__export(emotion_is_prop_valid_esm_exports, { + default: () => isPropValid +}); +var reactPropsRegex, isPropValid; +var init_emotion_is_prop_valid_esm = __esm({ + "node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js"() { + init_emotion_memoize_esm(); + reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; + isPropValid = memoize( + function(prop) { + return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91; + } + /* Z+1 */ + ); + } +}); + +// node_modules/object-assign/index.js +var require_object_assign = __commonJS({ + "node_modules/object-assign/index.js"(exports, module) { + "use strict"; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === void 0) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function(n) { + return test2[n]; + }); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach(function(letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + module.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from2; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from2 = Object(arguments[s]); + for (var key in from2) { + if (hasOwnProperty.call(from2, key)) { + to[key] = from2[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from2); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from2, symbols[i])) { + to[symbols[i]] = from2[symbols[i]]; + } + } + } + } + return to; + }; + } +}); + +// node_modules/prop-types/lib/ReactPropTypesSecret.js +var require_ReactPropTypesSecret = __commonJS({ + "node_modules/prop-types/lib/ReactPropTypesSecret.js"(exports, module) { + "use strict"; + var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; + module.exports = ReactPropTypesSecret; + } +}); + +// node_modules/prop-types/lib/has.js +var require_has = __commonJS({ + "node_modules/prop-types/lib/has.js"(exports, module) { + module.exports = Function.call.bind(Object.prototype.hasOwnProperty); + } +}); + +// node_modules/prop-types/checkPropTypes.js +var require_checkPropTypes = __commonJS({ + "node_modules/prop-types/checkPropTypes.js"(exports, module) { + "use strict"; + var printWarning = function() { + }; + if (true) { + ReactPropTypesSecret = require_ReactPropTypesSecret(); + loggedTypeFailures = {}; + has = require_has(); + printWarning = function(text) { + var message = "Warning: " + text; + if (typeof console !== "undefined") { + console.error(message); + } + try { + throw new Error(message); + } catch (x) { + } + }; + } + var ReactPropTypesSecret; + var loggedTypeFailures; + var has; + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (true) { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error2; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error( + (componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`." + ); + err.name = "Invariant Violation"; + throw err; + } + error2 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error2 = ex; + } + if (error2 && !(error2 instanceof Error)) { + printWarning( + (componentName || "React class") + ": type specification of " + location + " `" + typeSpecName + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof error2 + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)." + ); + } + if (error2 instanceof Error && !(error2.message in loggedTypeFailures)) { + loggedTypeFailures[error2.message] = true; + var stack = getStack ? getStack() : ""; + printWarning( + "Failed " + location + " type: " + error2.message + (stack != null ? stack : "") + ); + } + } + } + } + } + checkPropTypes.resetWarningCache = function() { + if (true) { + loggedTypeFailures = {}; + } + }; + module.exports = checkPropTypes; + } +}); + +// node_modules/prop-types/factoryWithTypeCheckers.js +var require_factoryWithTypeCheckers = __commonJS({ + "node_modules/prop-types/factoryWithTypeCheckers.js"(exports, module) { + "use strict"; + var ReactIs = require_react_is(); + var assign2 = require_object_assign(); + var ReactPropTypesSecret = require_ReactPropTypesSecret(); + var has = require_has(); + var checkPropTypes = require_checkPropTypes(); + var printWarning = function() { + }; + if (true) { + printWarning = function(text) { + var message = "Warning: " + text; + if (typeof console !== "undefined") { + console.error(message); + } + try { + throw new Error(message); + } catch (x) { + } + }; + } + function emptyFunctionThatReturnsNull() { + return null; + } + module.exports = function(isValidElement9, throwOnDirectAccess) { + var ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === "function") { + return iteratorFn; + } + } + var ANONYMOUS = "<>"; + var ReactPropTypes = { + array: createPrimitiveTypeChecker("array"), + bigint: createPrimitiveTypeChecker("bigint"), + bool: createPrimitiveTypeChecker("boolean"), + func: createPrimitiveTypeChecker("function"), + number: createPrimitiveTypeChecker("number"), + object: createPrimitiveTypeChecker("object"), + string: createPrimitiveTypeChecker("string"), + symbol: createPrimitiveTypeChecker("symbol"), + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker + }; + function is(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + function PropTypeError(message, data) { + this.message = message; + this.data = data && typeof data === "object" ? data : {}; + this.stack = ""; + } + PropTypeError.prototype = Error.prototype; + function createChainableTypeChecker(validate2) { + if (true) { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + var err = new Error( + "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types" + ); + err.name = "Invariant Violation"; + throw err; + } else if (typeof console !== "undefined") { + var cacheKey = componentName + ":" + propName; + if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3) { + printWarning( + "You are manually calling a React.PropTypes validation function for the `" + propFullName + "` prop on `" + componentName + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details." + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required " + ("in `" + componentName + "`, but its value is `null`.")); + } + return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in " + ("`" + componentName + "`, but its value is `undefined`.")); + } + return null; + } else { + return validate2(props, propName, componentName, location, propFullName); + } + } + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + return chainedCheckType; + } + function createPrimitiveTypeChecker(expectedType) { + function validate2(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + var preciseType = getPreciseType(propValue); + return new PropTypeError( + "Invalid " + location + " `" + propFullName + "` of type " + ("`" + preciseType + "` supplied to `" + componentName + "`, expected ") + ("`" + expectedType + "`."), + { expectedType } + ); + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + function createArrayOfTypeChecker(typeChecker) { + function validate2(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== "function") { + return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside arrayOf."); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an array.")); + } + for (var i = 0; i < propValue.length; i++) { + var error2 = typeChecker(propValue, i, componentName, location, propFullName + "[" + i + "]", ReactPropTypesSecret); + if (error2 instanceof Error) { + return error2; + } + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createElementTypeChecker() { + function validate2(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement9(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement.")); + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createElementTypeTypeChecker() { + function validate2(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement type.")); + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createInstanceTypeChecker(expectedClass) { + function validate2(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + actualClassName + "` supplied to `" + componentName + "`, expected ") + ("instance of `" + expectedClassName + "`.")); + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (true) { + if (arguments.length > 1) { + printWarning( + "Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])." + ); + } else { + printWarning("Invalid argument supplied to oneOf, expected an array."); + } + } + return emptyFunctionThatReturnsNull; + } + function validate2(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === "symbol") { + return String(value); + } + return value; + }); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of value `" + String(propValue) + "` " + ("supplied to `" + componentName + "`, expected one of " + valuesString + ".")); + } + return createChainableTypeChecker(validate2); + } + function createObjectOfTypeChecker(typeChecker) { + function validate2(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== "function") { + return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside objectOf."); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object.")); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error2 = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error2 instanceof Error) { + return error2; + } + } + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + true ? printWarning("Invalid argument supplied to oneOfType, expected an instance of array.") : void 0; + return emptyFunctionThatReturnsNull; + } + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== "function") { + printWarning( + "Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + getPostfixForTypeWarning(checker) + " at index " + i + "." + ); + return emptyFunctionThatReturnsNull; + } + } + function validate2(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i2 = 0; i2 < arrayOfTypeCheckers.length; i2++) { + var checker2 = arrayOfTypeCheckers[i2]; + var checkerResult = checker2(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data && has(checkerResult.data, "expectedType")) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = expectedTypes.length > 0 ? ", expected one of type [" + expectedTypes.join(", ") + "]" : ""; + return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`" + expectedTypesMessage + ".")); + } + return createChainableTypeChecker(validate2); + } + function createNodeChecker() { + function validate2(props, propName, componentName, location, propFullName) { + if (!isNode2(props[propName])) { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`, expected a ReactNode.")); + } + return null; + } + return createChainableTypeChecker(validate2); + } + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError( + (componentName || "React class") + ": " + location + " type `" + propFullName + "." + key + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + type + "`." + ); + } + function createShapeTypeChecker(shapeTypes) { + function validate2(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`.")); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== "function") { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error2 = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error2) { + return error2; + } + } + return null; + } + return createChainableTypeChecker(validate2); + } + function createStrictShapeTypeChecker(shapeTypes) { + function validate2(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`.")); + } + var allKeys = assign2({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== "function") { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError( + "Invalid " + location + " `" + propFullName + "` key `" + key + "` supplied to `" + componentName + "`.\nBad object: " + JSON.stringify(props[propName], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(shapeTypes), null, " ") + ); + } + var error2 = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error2) { + return error2; + } + } + return null; + } + return createChainableTypeChecker(validate2); + } + function isNode2(propValue) { + switch (typeof propValue) { + case "number": + case "string": + case "undefined": + return true; + case "boolean": + return !propValue; + case "object": + if (Array.isArray(propValue)) { + return propValue.every(isNode2); + } + if (propValue === null || isValidElement9(propValue)) { + return true; + } + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode2(step.value)) { + return false; + } + } + } else { + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode2(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + return true; + default: + return false; + } + } + function isSymbol(propType, propValue) { + if (propType === "symbol") { + return true; + } + if (!propValue) { + return false; + } + if (propValue["@@toStringTag"] === "Symbol") { + return true; + } + if (typeof Symbol === "function" && propValue instanceof Symbol) { + return true; + } + return false; + } + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return "array"; + } + if (propValue instanceof RegExp) { + return "object"; + } + if (isSymbol(propType, propValue)) { + return "symbol"; + } + return propType; + } + function getPreciseType(propValue) { + if (typeof propValue === "undefined" || propValue === null) { + return "" + propValue; + } + var propType = getPropType(propValue); + if (propType === "object") { + if (propValue instanceof Date) { + return "date"; + } else if (propValue instanceof RegExp) { + return "regexp"; + } + } + return propType; + } + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case "array": + case "object": + return "an " + type; + case "boolean": + case "date": + case "regexp": + return "a " + type; + default: + return type; + } + } + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + return ReactPropTypes; + }; + } +}); + +// node_modules/prop-types/index.js +var require_prop_types = __commonJS({ + "node_modules/prop-types/index.js"(exports, module) { + if (true) { + ReactIs = require_react_is(); + throwOnDirectAccess = true; + module.exports = require_factoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess); + } else { + module.exports = null(); + } + var ReactIs; + var throwOnDirectAccess; + } +}); + +// node_modules/toggle-selection/index.js +var require_toggle_selection = __commonJS({ + "node_modules/toggle-selection/index.js"(exports, module) { + module.exports = function() { + var selection = document.getSelection(); + if (!selection.rangeCount) { + return function() { + }; + } + var active = document.activeElement; + var ranges = []; + for (var i = 0; i < selection.rangeCount; i++) { + ranges.push(selection.getRangeAt(i)); + } + switch (active.tagName.toUpperCase()) { + case "INPUT": + case "TEXTAREA": + active.blur(); + break; + default: + active = null; + break; + } + selection.removeAllRanges(); + return function() { + selection.type === "Caret" && selection.removeAllRanges(); + if (!selection.rangeCount) { + ranges.forEach(function(range2) { + selection.addRange(range2); + }); + } + active && active.focus(); + }; + }; + } +}); + +// node_modules/copy-to-clipboard/index.js +var require_copy_to_clipboard = __commonJS({ + "node_modules/copy-to-clipboard/index.js"(exports, module) { + "use strict"; + var deselectCurrent = require_toggle_selection(); + var clipboardToIE11Formatting = { + "text/plain": "Text", + "text/html": "Url", + "default": "Text" + }; + var defaultMessage = "Copy to clipboard: #{key}, Enter"; + function format(message) { + var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C"; + return message.replace(/#{\s*key\s*}/g, copyKey); + } + function copy3(text, options) { + var debug, message, reselectPrevious, range2, selection, mark, success = false; + if (!options) { + options = {}; + } + debug = options.debug || false; + try { + reselectPrevious = deselectCurrent(); + range2 = document.createRange(); + selection = document.getSelection(); + mark = document.createElement("span"); + mark.textContent = text; + mark.ariaHidden = "true"; + mark.style.all = "unset"; + mark.style.position = "fixed"; + mark.style.top = 0; + mark.style.clip = "rect(0, 0, 0, 0)"; + mark.style.whiteSpace = "pre"; + mark.style.webkitUserSelect = "text"; + mark.style.MozUserSelect = "text"; + mark.style.msUserSelect = "text"; + mark.style.userSelect = "text"; + mark.addEventListener("copy", function(e) { + e.stopPropagation(); + if (options.format) { + e.preventDefault(); + if (typeof e.clipboardData === "undefined") { + debug && console.warn("unable to use e.clipboardData"); + debug && console.warn("trying IE specific stuff"); + window.clipboardData.clearData(); + var format2 = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]; + window.clipboardData.setData(format2, text); + } else { + e.clipboardData.clearData(); + e.clipboardData.setData(options.format, text); + } + } + if (options.onCopy) { + e.preventDefault(); + options.onCopy(e.clipboardData); + } + }); + document.body.appendChild(mark); + range2.selectNodeContents(mark); + selection.addRange(range2); + var successful = document.execCommand("copy"); + if (!successful) { + throw new Error("copy command was unsuccessful"); + } + success = true; + } catch (err) { + debug && console.error("unable to copy using execCommand: ", err); + debug && console.warn("trying IE specific stuff"); + try { + window.clipboardData.setData(options.format || "text", text); + options.onCopy && options.onCopy(window.clipboardData); + success = true; + } catch (err2) { + debug && console.error("unable to copy using clipboardData: ", err2); + debug && console.error("falling back to prompt"); + message = format("message" in options ? options.message : defaultMessage); + window.prompt(message, text); + } + } finally { + if (selection) { + if (typeof selection.removeRange == "function") { + selection.removeRange(range2); + } else { + selection.removeAllRanges(); + } + } + if (mark) { + document.body.removeChild(mark); + } + reselectPrevious(); + } + return success; + } + module.exports = copy3; + } +}); + +// node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js +var React2 = __toESM(require_react()); +var import_react = __toESM(require_react()); + +// node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js +function sheetForTag(tag) { + if (tag.sheet) { + return tag.sheet; + } + for (var i = 0; i < document.styleSheets.length; i++) { + if (document.styleSheets[i].ownerNode === tag) { + return document.styleSheets[i]; + } + } +} +function createStyleElement(options) { + var tag = document.createElement("style"); + tag.setAttribute("data-emotion", options.key); + if (options.nonce !== void 0) { + tag.setAttribute("nonce", options.nonce); + } + tag.appendChild(document.createTextNode("")); + tag.setAttribute("data-s", ""); + return tag; +} +var StyleSheet = function() { + function StyleSheet2(options) { + var _this = this; + this._insertTag = function(tag) { + var before; + if (_this.tags.length === 0) { + if (_this.insertionPoint) { + before = _this.insertionPoint.nextSibling; + } else if (_this.prepend) { + before = _this.container.firstChild; + } else { + before = _this.before; + } + } else { + before = _this.tags[_this.tags.length - 1].nextSibling; + } + _this.container.insertBefore(tag, before); + _this.tags.push(tag); + }; + this.isSpeedy = options.speedy === void 0 ? false : options.speedy; + this.tags = []; + this.ctr = 0; + this.nonce = options.nonce; + this.key = options.key; + this.container = options.container; + this.prepend = options.prepend; + this.insertionPoint = options.insertionPoint; + this.before = null; + } + var _proto = StyleSheet2.prototype; + _proto.hydrate = function hydrate(nodes) { + nodes.forEach(this._insertTag); + }; + _proto.insert = function insert(rule) { + if (this.ctr % (this.isSpeedy ? 65e3 : 1) === 0) { + this._insertTag(createStyleElement(this)); + } + var tag = this.tags[this.tags.length - 1]; + if (true) { + var isImportRule3 = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105; + if (isImportRule3 && this._alreadyInsertedOrderInsensitiveRule) { + console.error("You're attempting to insert the following rule:\n" + rule + "\n\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules."); + } + this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule3; + } + if (this.isSpeedy) { + var sheet = sheetForTag(tag); + try { + sheet.insertRule(rule, sheet.cssRules.length); + } catch (e) { + if (!/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) { + console.error('There was a problem inserting the following rule: "' + rule + '"', e); + } + } + } else { + tag.appendChild(document.createTextNode(rule)); + } + this.ctr++; + }; + _proto.flush = function flush() { + this.tags.forEach(function(tag) { + return tag.parentNode && tag.parentNode.removeChild(tag); + }); + this.tags = []; + this.ctr = 0; + if (true) { + this._alreadyInsertedOrderInsensitiveRule = false; + } + }; + return StyleSheet2; +}(); + +// node_modules/stylis/src/Enum.js +var MS = "-ms-"; +var MOZ = "-moz-"; +var WEBKIT = "-webkit-"; +var COMMENT = "comm"; +var RULESET = "rule"; +var DECLARATION = "decl"; +var IMPORT = "@import"; +var KEYFRAMES = "@keyframes"; +var LAYER = "@layer"; + +// node_modules/stylis/src/Utility.js +var abs = Math.abs; +var from = String.fromCharCode; +var assign = Object.assign; +function hash(value, length2) { + return charat(value, 0) ^ 45 ? (((length2 << 2 ^ charat(value, 0)) << 2 ^ charat(value, 1)) << 2 ^ charat(value, 2)) << 2 ^ charat(value, 3) : 0; +} +function trim(value) { + return value.trim(); +} +function match(value, pattern) { + return (value = pattern.exec(value)) ? value[0] : value; +} +function replace(value, pattern, replacement) { + return value.replace(pattern, replacement); +} +function indexof(value, search) { + return value.indexOf(search); +} +function charat(value, index) { + return value.charCodeAt(index) | 0; +} +function substr(value, begin, end) { + return value.slice(begin, end); +} +function strlen(value) { + return value.length; +} +function sizeof(value) { + return value.length; +} +function append(value, array) { + return array.push(value), value; +} +function combine(array, callback) { + return array.map(callback).join(""); +} + +// node_modules/stylis/src/Tokenizer.js +var line = 1; +var column = 1; +var length = 0; +var position = 0; +var character = 0; +var characters = ""; +function node(value, root, parent, type, props, children, length2) { + return { value, root, parent, type, props, children, line, column, length: length2, return: "" }; +} +function copy(root, props) { + return assign(node("", null, null, "", null, null, 0), root, { length: -root.length }, props); +} +function char() { + return character; +} +function prev() { + character = position > 0 ? charat(characters, --position) : 0; + if (column--, character === 10) + column = 1, line--; + return character; +} +function next() { + character = position < length ? charat(characters, position++) : 0; + if (column++, character === 10) + column = 1, line++; + return character; +} +function peek() { + return charat(characters, position); +} +function caret() { + return position; +} +function slice(begin, end) { + return substr(characters, begin, end); +} +function token(type) { + switch (type) { + case 0: + case 9: + case 10: + case 13: + case 32: + return 5; + case 33: + case 43: + case 44: + case 47: + case 62: + case 64: + case 126: + case 59: + case 123: + case 125: + return 4; + case 58: + return 3; + case 34: + case 39: + case 40: + case 91: + return 2; + case 41: + case 93: + return 1; + } + return 0; +} +function alloc(value) { + return line = column = 1, length = strlen(characters = value), position = 0, []; +} +function dealloc(value) { + return characters = "", value; +} +function delimit(type) { + return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type))); +} +function whitespace(type) { + while (character = peek()) + if (character < 33) + next(); + else + break; + return token(type) > 2 || token(character) > 3 ? "" : " "; +} +function escaping(index, count) { + while (--count && next()) + if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) + break; + return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32)); +} +function delimiter(type) { + while (next()) + switch (character) { + case type: + return position; + case 34: + case 39: + if (type !== 34 && type !== 39) + delimiter(character); + break; + case 40: + if (type === 41) + delimiter(type); + break; + case 92: + next(); + break; + } + return position; +} +function commenter(type, index) { + while (next()) + if (type + character === 47 + 10) + break; + else if (type + character === 42 + 42 && peek() === 47) + break; + return "/*" + slice(index, position - 1) + "*" + from(type === 47 ? type : next()); +} +function identifier(index) { + while (!token(peek())) + next(); + return slice(index, position); +} + +// node_modules/stylis/src/Parser.js +function compile(value) { + return dealloc(parse("", null, null, null, [""], value = alloc(value), 0, [0], value)); +} +function parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) { + var index = 0; + var offset = 0; + var length2 = pseudo; + var atrule = 0; + var property = 0; + var previous = 0; + var variable = 1; + var scanning = 1; + var ampersand = 1; + var character2 = 0; + var type = ""; + var props = rules; + var children = rulesets; + var reference = rule; + var characters2 = type; + while (scanning) + switch (previous = character2, character2 = next()) { + case 40: + if (previous != 108 && charat(characters2, length2 - 1) == 58) { + if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f") != -1) + ampersand = -1; + break; + } + case 34: + case 39: + case 91: + characters2 += delimit(character2); + break; + case 9: + case 10: + case 13: + case 32: + characters2 += whitespace(previous); + break; + case 92: + characters2 += escaping(caret() - 1, 7); + continue; + case 47: + switch (peek()) { + case 42: + case 47: + append(comment(commenter(next(), caret()), root, parent), declarations); + break; + default: + characters2 += "/"; + } + break; + case 123 * variable: + points[index++] = strlen(characters2) * ampersand; + case 125 * variable: + case 59: + case 0: + switch (character2) { + case 0: + case 125: + scanning = 0; + case 59 + offset: + if (ampersand == -1) characters2 = replace(characters2, /\f/g, ""); + if (property > 0 && strlen(characters2) - length2) + append(property > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2), declarations); + break; + case 59: + characters2 += ";"; + default: + append(reference = ruleset(characters2, root, parent, index, offset, rules, points, type, props = [], children = [], length2), rulesets); + if (character2 === 123) + if (offset === 0) + parse(characters2, root, reference, reference, props, rulesets, length2, points, children); + else + switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) { + case 100: + case 108: + case 109: + case 115: + parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length2), children), rules, children, length2, points, rule ? props : children); + break; + default: + parse(characters2, reference, reference, reference, [""], children, 0, points, children); + } + } + index = offset = property = 0, variable = ampersand = 1, type = characters2 = "", length2 = pseudo; + break; + case 58: + length2 = 1 + strlen(characters2), property = previous; + default: + if (variable < 1) { + if (character2 == 123) + --variable; + else if (character2 == 125 && variable++ == 0 && prev() == 125) + continue; + } + switch (characters2 += from(character2), character2 * variable) { + case 38: + ampersand = offset > 0 ? 1 : (characters2 += "\f", -1); + break; + case 44: + points[index++] = (strlen(characters2) - 1) * ampersand, ampersand = 1; + break; + case 64: + if (peek() === 45) + characters2 += delimit(next()); + atrule = peek(), offset = length2 = strlen(type = characters2 += identifier(caret())), character2++; + break; + case 45: + if (previous === 45 && strlen(characters2) == 2) + variable = 0; + } + } + return rulesets; +} +function ruleset(value, root, parent, index, offset, rules, points, type, props, children, length2) { + var post = offset - 1; + var rule = offset === 0 ? rules : [""]; + var size2 = sizeof(rule); + for (var i = 0, j = 0, k = 0; i < index; ++i) + for (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size2; ++x) + if (z = trim(j > 0 ? rule[x] + " " + y : replace(y, /&\f/g, rule[x]))) + props[k++] = z; + return node(value, root, parent, offset === 0 ? RULESET : type, props, children, length2); +} +function comment(value, root, parent) { + return node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0); +} +function declaration(value, root, parent, length2) { + return node(value, root, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2); +} + +// node_modules/stylis/src/Serializer.js +function serialize(children, callback) { + var output = ""; + var length2 = sizeof(children); + for (var i = 0; i < length2; i++) + output += callback(children[i], i, children, callback) || ""; + return output; +} +function stringify(element, index, children, callback) { + switch (element.type) { + case LAYER: + if (element.children.length) break; + case IMPORT: + case DECLARATION: + return element.return = element.return || element.value; + case COMMENT: + return ""; + case KEYFRAMES: + return element.return = element.value + "{" + serialize(element.children, callback) + "}"; + case RULESET: + element.value = element.props.join(","); + } + return strlen(children = serialize(element.children, callback)) ? element.return = element.value + "{" + children + "}" : ""; +} + +// node_modules/stylis/src/Middleware.js +function middleware(collection) { + var length2 = sizeof(collection); + return function(element, index, children, callback) { + var output = ""; + for (var i = 0; i < length2; i++) + output += collection[i](element, index, children, callback) || ""; + return output; + }; +} + +// node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js +var weakMemoize = function weakMemoize2(func2) { + var cache = /* @__PURE__ */ new WeakMap(); + return function(arg) { + if (cache.has(arg)) { + return cache.get(arg); + } + var ret = func2(arg); + cache.set(arg, ret); + return ret; + }; +}; + +// node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js +init_emotion_memoize_esm(); +var identifierWithPointTracking = function identifierWithPointTracking2(begin, points, index) { + var previous = 0; + var character2 = 0; + while (true) { + previous = character2; + character2 = peek(); + if (previous === 38 && character2 === 12) { + points[index] = 1; + } + if (token(character2)) { + break; + } + next(); + } + return slice(begin, position); +}; +var toRules = function toRules2(parsed, points) { + var index = -1; + var character2 = 44; + do { + switch (token(character2)) { + case 0: + if (character2 === 38 && peek() === 12) { + points[index] = 1; + } + parsed[index] += identifierWithPointTracking(position - 1, points, index); + break; + case 2: + parsed[index] += delimit(character2); + break; + case 4: + if (character2 === 44) { + parsed[++index] = peek() === 58 ? "&\f" : ""; + points[index] = parsed[index].length; + break; + } + default: + parsed[index] += from(character2); + } + } while (character2 = next()); + return parsed; +}; +var getRules = function getRules2(value, points) { + return dealloc(toRules(alloc(value), points)); +}; +var fixedElements = /* @__PURE__ */ new WeakMap(); +var compat = function compat2(element) { + if (element.type !== "rule" || !element.parent || // positive .length indicates that this rule contains pseudo + // negative .length indicates that this rule has been already prefixed + element.length < 1) { + return; + } + var value = element.value, parent = element.parent; + var isImplicitRule = element.column === parent.column && element.line === parent.line; + while (parent.type !== "rule") { + parent = parent.parent; + if (!parent) return; + } + if (element.props.length === 1 && value.charCodeAt(0) !== 58 && !fixedElements.get(parent)) { + return; + } + if (isImplicitRule) { + return; + } + fixedElements.set(element, true); + var points = []; + var rules = getRules(value, points); + var parentRules = parent.props; + for (var i = 0, k = 0; i < rules.length; i++) { + for (var j = 0; j < parentRules.length; j++, k++) { + element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i]; + } + } +}; +var removeLabel = function removeLabel2(element) { + if (element.type === "decl") { + var value = element.value; + if ( + // charcode for l + value.charCodeAt(0) === 108 && // charcode for b + value.charCodeAt(2) === 98 + ) { + element["return"] = ""; + element.value = ""; + } + } +}; +var ignoreFlag = "emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason"; +var isIgnoringComment = function isIgnoringComment2(element) { + return element.type === "comm" && element.children.indexOf(ignoreFlag) > -1; +}; +var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm2(cache) { + return function(element, index, children) { + if (element.type !== "rule" || cache.compat) return; + var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g); + if (unsafePseudoClasses) { + var isNested = !!element.parent; + var commentContainer = isNested ? element.parent.children : ( + // global rule at the root level + children + ); + for (var i = commentContainer.length - 1; i >= 0; i--) { + var node3 = commentContainer[i]; + if (node3.line < element.line) { + break; + } + if (node3.column < element.column) { + if (isIgnoringComment(node3)) { + return; + } + break; + } + } + unsafePseudoClasses.forEach(function(unsafePseudoClass) { + console.error('The pseudo class "' + unsafePseudoClass + '" is potentially unsafe when doing server-side rendering. Try changing it to "' + unsafePseudoClass.split("-child")[0] + '-of-type".'); + }); + } + }; +}; +var isImportRule = function isImportRule2(element) { + return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64; +}; +var isPrependedWithRegularRules = function isPrependedWithRegularRules2(index, children) { + for (var i = index - 1; i >= 0; i--) { + if (!isImportRule(children[i])) { + return true; + } + } + return false; +}; +var nullifyElement = function nullifyElement2(element) { + element.type = ""; + element.value = ""; + element["return"] = ""; + element.children = ""; + element.props = ""; +}; +var incorrectImportAlarm = function incorrectImportAlarm2(element, index, children) { + if (!isImportRule(element)) { + return; + } + if (element.parent) { + console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."); + nullifyElement(element); + } else if (isPrependedWithRegularRules(index, children)) { + console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."); + nullifyElement(element); + } +}; +function prefix2(value, length2) { + switch (hash(value, length2)) { + case 5103: + return WEBKIT + "print-" + value + value; + case 5737: + case 4201: + case 3177: + case 3433: + case 1641: + case 4457: + case 2921: + case 5572: + case 6356: + case 5844: + case 3191: + case 6645: + case 3005: + case 6391: + case 5879: + case 5623: + case 6135: + case 4599: + case 4855: + case 4215: + case 6389: + case 5109: + case 5365: + case 5621: + case 3829: + return WEBKIT + value + value; + case 5349: + case 4246: + case 4810: + case 6968: + case 2756: + return WEBKIT + value + MOZ + value + MS + value + value; + case 6828: + case 4268: + return WEBKIT + value + MS + value + value; + case 6165: + return WEBKIT + value + MS + "flex-" + value + value; + case 5187: + return WEBKIT + value + replace(value, /(\w+).+(:[^]+)/, WEBKIT + "box-$1$2" + MS + "flex-$1$2") + value; + case 5443: + return WEBKIT + value + MS + "flex-item-" + replace(value, /flex-|-self/, "") + value; + case 4675: + return WEBKIT + value + MS + "flex-line-pack" + replace(value, /align-content|flex-|-self/, "") + value; + case 5548: + return WEBKIT + value + MS + replace(value, "shrink", "negative") + value; + case 5292: + return WEBKIT + value + MS + replace(value, "basis", "preferred-size") + value; + case 6060: + return WEBKIT + "box-" + replace(value, "-grow", "") + WEBKIT + value + MS + replace(value, "grow", "positive") + value; + case 4554: + return WEBKIT + replace(value, /([^-])(transform)/g, "$1" + WEBKIT + "$2") + value; + case 6187: + return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + "$1"), /(image-set)/, WEBKIT + "$1"), value, "") + value; + case 5495: + case 3959: + return replace(value, /(image-set\([^]*)/, WEBKIT + "$1$`$1"); + case 4968: + return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + "box-pack:$3" + MS + "flex-pack:$3"), /s.+-b[^;]+/, "justify") + WEBKIT + value + value; + case 4095: + case 3583: + case 4068: + case 2532: + return replace(value, /(.+)-inline(.+)/, WEBKIT + "$1$2") + value; + case 8116: + case 7059: + case 5753: + case 5535: + case 5445: + case 5701: + case 4933: + case 4677: + case 5533: + case 5789: + case 5021: + case 4765: + if (strlen(value) - 1 - length2 > 6) switch (charat(value, length2 + 1)) { + case 109: + if (charat(value, length2 + 4) !== 45) break; + case 102: + return replace(value, /(.+:)(.+)-([^]+)/, "$1" + WEBKIT + "$2-$3$1" + MOZ + (charat(value, length2 + 3) == 108 ? "$3" : "$2-$3")) + value; + case 115: + return ~indexof(value, "stretch") ? prefix2(replace(value, "stretch", "fill-available"), length2) + value : value; + } + break; + case 4949: + if (charat(value, length2 + 1) !== 115) break; + case 6444: + switch (charat(value, strlen(value) - 3 - (~indexof(value, "!important") && 10))) { + case 107: + return replace(value, ":", ":" + WEBKIT) + value; + case 101: + return replace(value, /(.+:)([^;!]+)(;|!.+)?/, "$1" + WEBKIT + (charat(value, 14) === 45 ? "inline-" : "") + "box$3$1" + WEBKIT + "$2$3$1" + MS + "$2box$3") + value; + } + break; + case 5936: + switch (charat(value, length2 + 11)) { + case 114: + return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "tb") + value; + case 108: + return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "tb-rl") + value; + case 45: + return WEBKIT + value + MS + replace(value, /[svh]\w+-[tblr]{2}/, "lr") + value; + } + return WEBKIT + value + MS + value + value; + } + return value; +} +var prefixer = function prefixer2(element, index, children, callback) { + if (element.length > -1) { + if (!element["return"]) switch (element.type) { + case DECLARATION: + element["return"] = prefix2(element.value, element.length); + break; + case KEYFRAMES: + return serialize([copy(element, { + value: replace(element.value, "@", "@" + WEBKIT) + })], callback); + case RULESET: + if (element.length) return combine(element.props, function(value) { + switch (match(value, /(::plac\w+|:read-\w+)/)) { + case ":read-only": + case ":read-write": + return serialize([copy(element, { + props: [replace(value, /:(read-\w+)/, ":" + MOZ + "$1")] + })], callback); + case "::placeholder": + return serialize([copy(element, { + props: [replace(value, /:(plac\w+)/, ":" + WEBKIT + "input-$1")] + }), copy(element, { + props: [replace(value, /:(plac\w+)/, ":" + MOZ + "$1")] + }), copy(element, { + props: [replace(value, /:(plac\w+)/, MS + "input-$1")] + })], callback); + } + return ""; + }); + } + } +}; +var defaultStylisPlugins = [prefixer]; +var createCache = function createCache2(options) { + var key = options.key; + if (!key) { + throw new Error("You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\nIf multiple caches share the same key they might \"fight\" for each other's style elements."); + } + if (key === "css") { + var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); + Array.prototype.forEach.call(ssrStyles, function(node3) { + var dataEmotionAttribute = node3.getAttribute("data-emotion"); + if (dataEmotionAttribute.indexOf(" ") === -1) { + return; + } + document.head.appendChild(node3); + node3.setAttribute("data-s", ""); + }); + } + var stylisPlugins = options.stylisPlugins || defaultStylisPlugins; + if (true) { + if (/[^a-z-]/.test(key)) { + throw new Error('Emotion key must only contain lower case alphabetical characters and - but "' + key + '" was passed'); + } + } + var inserted = {}; + var container2; + var nodesToHydrate = []; + { + container2 = options.container || document.head; + Array.prototype.forEach.call( + // this means we will ignore elements which don't have a space in them which + // means that the style elements we're looking at are only Emotion 11 server-rendered style elements + document.querySelectorAll('style[data-emotion^="' + key + ' "]'), + function(node3) { + var attrib = node3.getAttribute("data-emotion").split(" "); + for (var i = 1; i < attrib.length; i++) { + inserted[attrib[i]] = true; + } + nodesToHydrate.push(node3); + } + ); + } + var _insert; + var omnipresentPlugins = [compat, removeLabel]; + if (true) { + omnipresentPlugins.push(createUnsafeSelectorsAlarm({ + get compat() { + return cache.compat; + } + }), incorrectImportAlarm); + } + { + var currentSheet; + var finalizingPlugins = [stringify, true ? function(element) { + if (!element.root) { + if (element["return"]) { + currentSheet.insert(element["return"]); + } else if (element.value && element.type !== COMMENT) { + currentSheet.insert(element.value + "{}"); + } + } + } : rulesheet(function(rule) { + currentSheet.insert(rule); + })]; + var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins)); + var stylis = function stylis2(styles2) { + return serialize(compile(styles2), serializer); + }; + _insert = function insert(selector, serialized, sheet, shouldCache) { + currentSheet = sheet; + if (serialized.map !== void 0) { + currentSheet = { + insert: function insert2(rule) { + sheet.insert(rule + serialized.map); + } + }; + } + stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles); + if (shouldCache) { + cache.inserted[serialized.name] = true; + } + }; + } + var cache = { + key, + sheet: new StyleSheet({ + key, + container: container2, + nonce: options.nonce, + speedy: options.speedy, + prepend: options.prepend, + insertionPoint: options.insertionPoint + }), + nonce: options.nonce, + inserted, + registered: {}, + insert: _insert + }; + cache.sheet.hydrate(nodesToHydrate); + return cache; +}; + +// node_modules/@babel/runtime/helpers/esm/extends.js +function _extends() { + return _extends = Object.assign ? Object.assign.bind() : function(n) { + for (var e = 1; e < arguments.length; e++) { + var t2 = arguments[e]; + for (var r2 in t2) ({}).hasOwnProperty.call(t2, r2) && (n[r2] = t2[r2]); + } + return n; + }, _extends.apply(null, arguments); +} + +// node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js +var import_hoist_non_react_statics = __toESM(require_hoist_non_react_statics_cjs()); + +// node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js +var isBrowser = true; +function getRegisteredStyles(registered, registeredStyles, classNames2) { + var rawClassName = ""; + classNames2.split(" ").forEach(function(className) { + if (registered[className] !== void 0) { + registeredStyles.push(registered[className] + ";"); + } else { + rawClassName += className + " "; + } + }); + return rawClassName; +} +var registerStyles = function registerStyles2(cache, serialized, isStringTag) { + var className = cache.key + "-" + serialized.name; + if ( + // we only need to add the styles to the registered cache if the + // class name could be used further down + // the tree but if it's a string tag, we know it won't + // so we don't have to add it to registered cache. + // this improves memory usage since we can avoid storing the whole style string + (isStringTag === false || // we need to always store it if we're in compat mode and + // in node since emotion-server relies on whether a style is in + // the registered cache to know whether a style is global or not + // also, note that this check will be dead code eliminated in the browser + isBrowser === false) && cache.registered[className] === void 0 + ) { + cache.registered[className] = serialized.styles; + } +}; +var insertStyles = function insertStyles2(cache, serialized, isStringTag) { + registerStyles(cache, serialized, isStringTag); + var className = cache.key + "-" + serialized.name; + if (cache.inserted[serialized.name] === void 0) { + var current = serialized; + do { + cache.insert(serialized === current ? "." + className : "", current, cache.sheet, true); + current = current.next; + } while (current !== void 0); + } +}; + +// node_modules/@emotion/hash/dist/emotion-hash.esm.js +function murmur2(str) { + var h = 0; + var k, i = 0, len = str.length; + for (; len >= 4; ++i, len -= 4) { + k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24; + k = /* Math.imul(k, m): */ + (k & 65535) * 1540483477 + ((k >>> 16) * 59797 << 16); + k ^= /* k >>> r: */ + k >>> 24; + h = /* Math.imul(k, m): */ + (k & 65535) * 1540483477 + ((k >>> 16) * 59797 << 16) ^ /* Math.imul(h, m): */ + (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16); + } + switch (len) { + 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 = /* Math.imul(h, m): */ + (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16); + } + h ^= h >>> 13; + h = /* Math.imul(h, m): */ + (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16); + return ((h ^ h >>> 15) >>> 0).toString(36); +} + +// node_modules/@emotion/unitless/dist/emotion-unitless.esm.js +var unitlessKeys = { + animationIterationCount: 1, + aspectRatio: 1, + borderImageOutset: 1, + borderImageSlice: 1, + borderImageWidth: 1, + boxFlex: 1, + boxFlexGroup: 1, + boxOrdinalGroup: 1, + columnCount: 1, + columns: 1, + flex: 1, + flexGrow: 1, + flexPositive: 1, + flexShrink: 1, + flexNegative: 1, + flexOrder: 1, + gridRow: 1, + gridRowEnd: 1, + gridRowSpan: 1, + gridRowStart: 1, + gridColumn: 1, + gridColumnEnd: 1, + gridColumnSpan: 1, + gridColumnStart: 1, + msGridRow: 1, + msGridRowSpan: 1, + msGridColumn: 1, + msGridColumnSpan: 1, + fontWeight: 1, + lineHeight: 1, + opacity: 1, + order: 1, + orphans: 1, + tabSize: 1, + widows: 1, + zIndex: 1, + zoom: 1, + WebkitLineClamp: 1, + // SVG-related properties + fillOpacity: 1, + floodOpacity: 1, + stopOpacity: 1, + strokeDasharray: 1, + strokeDashoffset: 1, + strokeMiterlimit: 1, + strokeOpacity: 1, + strokeWidth: 1 +}; + +// node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js +init_emotion_memoize_esm(); +var ILLEGAL_ESCAPE_SEQUENCE_ERROR = `You have illegal escape sequence in your template literal, most likely inside content's property value. +Because you write your CSS inside a JavaScript string you actually have to do double escaping, so for example "content: '\\00d7';" should become "content: '\\\\00d7';". +You can read more about this here: +https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences`; +var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."; +var hyphenateRegex = /[A-Z]|^ms/g; +var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g; +var isCustomProperty = function isCustomProperty2(property) { + return property.charCodeAt(1) === 45; +}; +var isProcessableValue = function isProcessableValue2(value) { + return value != null && typeof value !== "boolean"; +}; +var processStyleName = memoize(function(styleName) { + return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, "-$&").toLowerCase(); +}); +var processStyleValue = function processStyleValue2(key, value) { + switch (key) { + case "animation": + case "animationName": { + if (typeof value === "string") { + return value.replace(animationRegex, function(match3, p1, p2) { + cursor = { + name: p1, + styles: p2, + next: cursor + }; + return p1; + }); + } + } + } + if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === "number" && value !== 0) { + return value + "px"; + } + return value; +}; +if (true) { + contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/; + contentValues = ["normal", "none", "initial", "inherit", "unset"]; + oldProcessStyleValue = processStyleValue; + msPattern = /^-ms-/; + hyphenPattern = /-(.)/g; + hyphenatedCache = {}; + processStyleValue = function processStyleValue3(key, value) { + if (key === "content") { + if (typeof value !== "string" || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '"' && value.charAt(0) !== "'")) { + throw new Error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\"" + value + "\"'`"); + } + } + var processed = oldProcessStyleValue(key, value); + if (processed !== "" && !isCustomProperty(key) && key.indexOf("-") !== -1 && hyphenatedCache[key] === void 0) { + hyphenatedCache[key] = true; + console.error("Using kebab-case for css properties in objects is not supported. Did you mean " + key.replace(msPattern, "ms-").replace(hyphenPattern, function(str, _char) { + return _char.toUpperCase(); + }) + "?"); + } + return processed; + }; +} +var contentValuePattern; +var contentValues; +var oldProcessStyleValue; +var msPattern; +var hyphenPattern; +var hyphenatedCache; +var noComponentSelectorMessage = "Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform."; +function handleInterpolation(mergedProps, registered, interpolation) { + if (interpolation == null) { + return ""; + } + if (interpolation.__emotion_styles !== void 0) { + if (interpolation.toString() === "NO_COMPONENT_SELECTOR") { + throw new Error(noComponentSelectorMessage); + } + return interpolation; + } + switch (typeof interpolation) { + case "boolean": { + return ""; + } + case "object": { + if (interpolation.anim === 1) { + cursor = { + name: interpolation.name, + styles: interpolation.styles, + next: cursor + }; + return interpolation.name; + } + if (interpolation.styles !== void 0) { + var next2 = interpolation.next; + if (next2 !== void 0) { + while (next2 !== void 0) { + cursor = { + name: next2.name, + styles: next2.styles, + next: cursor + }; + next2 = next2.next; + } + } + var styles2 = interpolation.styles + ";"; + if (interpolation.map !== void 0) { + styles2 += interpolation.map; + } + return styles2; + } + return createStringFromObject(mergedProps, registered, interpolation); + } + case "function": { + if (mergedProps !== void 0) { + var previousCursor = cursor; + var result = interpolation(mergedProps); + cursor = previousCursor; + return handleInterpolation(mergedProps, registered, result); + } else if (true) { + console.error("Functions that are interpolated in css calls will be stringified.\nIf you want to have a css call based on props, create a function that returns a css call like this\nlet dynamicStyle = (props) => css`color: ${props.color}`\nIt can be called directly with props or interpolated in a styled call like this\nlet SomeComponent = styled('div')`${dynamicStyle}`"); + } + break; + } + case "string": + if (true) { + var matched = []; + var replaced = interpolation.replace(animationRegex, function(match3, p1, p2) { + var fakeVarName = "animation" + matched.length; + matched.push("const " + fakeVarName + " = keyframes`" + p2.replace(/^@keyframes animation-\w+/, "") + "`"); + return "${" + fakeVarName + "}"; + }); + if (matched.length) { + console.error("`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\nInstead of doing this:\n\n" + [].concat(matched, ["`" + replaced + "`"]).join("\n") + "\n\nYou should wrap it with `css` like this:\n\n" + ("css`" + replaced + "`")); + } + } + break; + } + if (registered == null) { + return interpolation; + } + var cached = registered[interpolation]; + return cached !== void 0 ? cached : interpolation; +} +function createStringFromObject(mergedProps, registered, obj) { + var string2 = ""; + if (Array.isArray(obj)) { + for (var i = 0; i < obj.length; i++) { + string2 += handleInterpolation(mergedProps, registered, obj[i]) + ";"; + } + } else { + for (var _key in obj) { + var value = obj[_key]; + if (typeof value !== "object") { + if (registered != null && registered[value] !== void 0) { + string2 += _key + "{" + registered[value] + "}"; + } else if (isProcessableValue(value)) { + string2 += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";"; + } + } else { + if (_key === "NO_COMPONENT_SELECTOR" && true) { + throw new Error(noComponentSelectorMessage); + } + if (Array.isArray(value) && typeof value[0] === "string" && (registered == null || registered[value[0]] === void 0)) { + for (var _i = 0; _i < value.length; _i++) { + if (isProcessableValue(value[_i])) { + string2 += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";"; + } + } + } else { + var interpolated = handleInterpolation(mergedProps, registered, value); + switch (_key) { + case "animation": + case "animationName": { + string2 += processStyleName(_key) + ":" + interpolated + ";"; + break; + } + default: { + if (_key === "undefined") { + console.error(UNDEFINED_AS_OBJECT_KEY_ERROR); + } + string2 += _key + "{" + interpolated + "}"; + } + } + } + } + } + } + return string2; +} +var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g; +var sourceMapPattern; +if (true) { + sourceMapPattern = /\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//g; +} +var cursor; +var serializeStyles = function serializeStyles2(args, registered, mergedProps) { + if (args.length === 1 && typeof args[0] === "object" && args[0] !== null && args[0].styles !== void 0) { + return args[0]; + } + var stringMode = true; + var styles2 = ""; + cursor = void 0; + var strings = args[0]; + if (strings == null || strings.raw === void 0) { + stringMode = false; + styles2 += handleInterpolation(mergedProps, registered, strings); + } else { + if (strings[0] === void 0) { + console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR); + } + styles2 += strings[0]; + } + for (var i = 1; i < args.length; i++) { + styles2 += handleInterpolation(mergedProps, registered, args[i]); + if (stringMode) { + if (strings[i] === void 0) { + console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR); + } + styles2 += strings[i]; + } + } + var sourceMap; + if (true) { + styles2 = styles2.replace(sourceMapPattern, function(match4) { + sourceMap = match4; + return ""; + }); + } + labelPattern.lastIndex = 0; + var identifierName = ""; + var match3; + while ((match3 = labelPattern.exec(styles2)) !== null) { + identifierName += "-" + // $FlowFixMe we know it's not null + match3[1]; + } + var name = murmur2(styles2) + identifierName; + if (true) { + return { + name, + styles: styles2, + map: sourceMap, + next: cursor, + toString: function toString() { + return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; + } + }; + } + return { + name, + styles: styles2, + next: cursor + }; +}; + +// node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js +var React = __toESM(require_react()); +var syncFallback = function syncFallback2(create) { + return create(); +}; +var useInsertionEffect2 = React["useInsertionEffect"] ? React["useInsertionEffect"] : false; +var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect2 || syncFallback; +var useInsertionEffectWithLayoutFallback = useInsertionEffect2 || React.useLayoutEffect; + +// node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js +var isBrowser2 = true; +var hasOwn = {}.hasOwnProperty; +var EmotionCacheContext = React2.createContext( + // we're doing this to avoid preconstruct's dead code elimination in this one case + // because this module is primarily intended for the browser and node + // but it's also required in react native and similar environments sometimes + // and we could have a special build just for that + // but this is much easier and the native packages + // might use a different theme context in the future anyway + typeof HTMLElement !== "undefined" ? createCache({ + key: "css" + }) : null +); +if (true) { + EmotionCacheContext.displayName = "EmotionCacheContext"; +} +var CacheProvider = EmotionCacheContext.Provider; +var withEmotionCache = function withEmotionCache2(func2) { + return (0, import_react.forwardRef)(function(props, ref) { + var cache = (0, import_react.useContext)(EmotionCacheContext); + return func2(props, cache, ref); + }); +}; +if (!isBrowser2) { + withEmotionCache = function withEmotionCache3(func2) { + return function(props) { + var cache = (0, import_react.useContext)(EmotionCacheContext); + if (cache === null) { + cache = createCache({ + key: "css" + }); + return React2.createElement(EmotionCacheContext.Provider, { + value: cache + }, func2(props, cache)); + } else { + return func2(props, cache); + } + }; + }; +} +var ThemeContext = React2.createContext({}); +if (true) { + ThemeContext.displayName = "EmotionThemeContext"; +} +var getTheme = function getTheme2(outerTheme, theme2) { + if (typeof theme2 === "function") { + var mergedTheme = theme2(outerTheme); + if (mergedTheme == null || typeof mergedTheme !== "object" || Array.isArray(mergedTheme)) { + throw new Error("[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!"); + } + return mergedTheme; + } + if (theme2 == null || typeof theme2 !== "object" || Array.isArray(theme2)) { + throw new Error("[ThemeProvider] Please make your theme prop a plain object"); + } + return _extends({}, outerTheme, theme2); +}; +var createCacheWithTheme = weakMemoize(function(outerTheme) { + return weakMemoize(function(theme2) { + return getTheme(outerTheme, theme2); + }); +}); +var ThemeProvider = function ThemeProvider2(props) { + var theme2 = React2.useContext(ThemeContext); + if (props.theme !== theme2) { + theme2 = createCacheWithTheme(theme2)(props.theme); + } + return React2.createElement(ThemeContext.Provider, { + value: theme2 + }, props.children); +}; +var typePropName = "__EMOTION_TYPE_PLEASE_DO_NOT_USE__"; +var labelPropName = "__EMOTION_LABEL_PLEASE_DO_NOT_USE__"; +var Insertion = function Insertion2(_ref2) { + var cache = _ref2.cache, serialized = _ref2.serialized, isStringTag = _ref2.isStringTag; + registerStyles(cache, serialized, isStringTag); + useInsertionEffectAlwaysWithSyncFallback(function() { + return insertStyles(cache, serialized, isStringTag); + }); + return null; +}; +var Emotion = withEmotionCache(function(props, cache, ref) { + var cssProp = props.css; + if (typeof cssProp === "string" && cache.registered[cssProp] !== void 0) { + cssProp = cache.registered[cssProp]; + } + var WrappedComponent = props[typePropName]; + var registeredStyles = [cssProp]; + var className = ""; + if (typeof props.className === "string") { + className = getRegisteredStyles(cache.registered, registeredStyles, props.className); + } else if (props.className != null) { + className = props.className + " "; + } + var serialized = serializeStyles(registeredStyles, void 0, React2.useContext(ThemeContext)); + if (serialized.name.indexOf("-") === -1) { + var labelFromStack = props[labelPropName]; + if (labelFromStack) { + serialized = serializeStyles([serialized, "label:" + labelFromStack + ";"]); + } + } + className += cache.key + "-" + serialized.name; + var newProps = {}; + for (var key in props) { + if (hasOwn.call(props, key) && key !== "css" && key !== typePropName && key !== labelPropName) { + newProps[key] = props[key]; + } + } + newProps.ref = ref; + newProps.className = className; + return React2.createElement(React2.Fragment, null, React2.createElement(Insertion, { + cache, + serialized, + isStringTag: typeof WrappedComponent === "string" + }), React2.createElement(WrappedComponent, newProps)); +}); +if (true) { + Emotion.displayName = "EmotionCssPropInternal"; +} + +// node_modules/@emotion/react/dist/emotion-react.browser.esm.js +var React3 = __toESM(require_react()); +var import_hoist_non_react_statics2 = __toESM(require_hoist_non_react_statics_cjs()); +var pkg = { + name: "@emotion/react", + version: "11.11.4", + main: "dist/emotion-react.cjs.js", + module: "dist/emotion-react.esm.js", + browser: { + "./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js" + }, + exports: { + ".": { + module: { + worker: "./dist/emotion-react.worker.esm.js", + browser: "./dist/emotion-react.browser.esm.js", + "default": "./dist/emotion-react.esm.js" + }, + "import": "./dist/emotion-react.cjs.mjs", + "default": "./dist/emotion-react.cjs.js" + }, + "./jsx-runtime": { + module: { + worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js", + browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js", + "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js" + }, + "import": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs", + "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js" + }, + "./_isolated-hnrs": { + module: { + worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js", + browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js", + "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js" + }, + "import": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs", + "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js" + }, + "./jsx-dev-runtime": { + module: { + worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js", + browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js", + "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js" + }, + "import": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs", + "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js" + }, + "./package.json": "./package.json", + "./types/css-prop": "./types/css-prop.d.ts", + "./macro": { + types: { + "import": "./macro.d.mts", + "default": "./macro.d.ts" + }, + "default": "./macro.js" + } + }, + types: "types/index.d.ts", + files: [ + "src", + "dist", + "jsx-runtime", + "jsx-dev-runtime", + "_isolated-hnrs", + "types/*.d.ts", + "macro.*" + ], + sideEffects: false, + author: "Emotion Contributors", + license: "MIT", + scripts: { + "test:typescript": "dtslint types" + }, + dependencies: { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + peerDependencies: { + react: ">=16.8.0" + }, + peerDependenciesMeta: { + "@types/react": { + optional: true + } + }, + devDependencies: { + "@definitelytyped/dtslint": "0.0.112", + "@emotion/css": "11.11.2", + "@emotion/css-prettifier": "1.1.3", + "@emotion/server": "11.11.0", + "@emotion/styled": "11.11.0", + "html-tag-names": "^1.1.2", + react: "16.14.0", + "svg-tag-names": "^1.1.1", + typescript: "^4.5.5" + }, + repository: "https://github.com/emotion-js/emotion/tree/main/packages/react", + publishConfig: { + access: "public" + }, + "umd:main": "dist/emotion-react.umd.min.js", + preconstruct: { + entrypoints: [ + "./index.js", + "./jsx-runtime.js", + "./jsx-dev-runtime.js", + "./_isolated-hnrs.js" + ], + umdName: "emotionReact", + exports: { + envConditions: [ + "browser", + "worker" + ], + extra: { + "./types/css-prop": "./types/css-prop.d.ts", + "./macro": { + types: { + "import": "./macro.d.mts", + "default": "./macro.d.ts" + }, + "default": "./macro.js" + } + } + } + } +}; +var warnedAboutCssPropForGlobal = false; +var Global = withEmotionCache(function(props, cache) { + if (!warnedAboutCssPropForGlobal && // check for className as well since the user is + // probably using the custom createElement which + // means it will be turned into a className prop + // $FlowFixMe I don't really want to add it to the type since it shouldn't be used + (props.className || props.css)) { + console.error("It looks like you're using the css prop on Global, did you mean to use the styles prop instead?"); + warnedAboutCssPropForGlobal = true; + } + var styles2 = props.styles; + var serialized = serializeStyles([styles2], void 0, React3.useContext(ThemeContext)); + if (!isBrowser2) { + var _ref2; + var serializedNames = serialized.name; + var serializedStyles = serialized.styles; + var next2 = serialized.next; + while (next2 !== void 0) { + serializedNames += " " + next2.name; + serializedStyles += next2.styles; + next2 = next2.next; + } + var shouldCache = cache.compat === true; + var rules = cache.insert("", { + name: serializedNames, + styles: serializedStyles + }, cache.sheet, shouldCache); + if (shouldCache) { + return null; + } + return React3.createElement("style", (_ref2 = {}, _ref2["data-emotion"] = cache.key + "-global " + serializedNames, _ref2.dangerouslySetInnerHTML = { + __html: rules + }, _ref2.nonce = cache.sheet.nonce, _ref2)); + } + var sheetRef = React3.useRef(); + useInsertionEffectWithLayoutFallback(function() { + var key = cache.key + "-global"; + var sheet = new cache.sheet.constructor({ + key, + nonce: cache.sheet.nonce, + container: cache.sheet.container, + speedy: cache.sheet.isSpeedy + }); + var rehydrating = false; + var node3 = document.querySelector('style[data-emotion="' + key + " " + serialized.name + '"]'); + if (cache.sheet.tags.length) { + sheet.before = cache.sheet.tags[0]; + } + if (node3 !== null) { + rehydrating = true; + node3.setAttribute("data-emotion", key); + sheet.hydrate([node3]); + } + sheetRef.current = [sheet, rehydrating]; + return function() { + sheet.flush(); + }; + }, [cache]); + useInsertionEffectWithLayoutFallback(function() { + var sheetRefCurrent = sheetRef.current; + var sheet = sheetRefCurrent[0], rehydrating = sheetRefCurrent[1]; + if (rehydrating) { + sheetRefCurrent[1] = false; + return; + } + if (serialized.next !== void 0) { + insertStyles(cache, serialized.next, true); + } + if (sheet.tags.length) { + var element = sheet.tags[sheet.tags.length - 1].nextElementSibling; + sheet.before = element; + sheet.flush(); + } + cache.insert("", serialized, sheet, false); + }, [cache, serialized.name]); + return null; +}); +if (true) { + Global.displayName = "EmotionGlobal"; +} +function css() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return serializeStyles(args); +} +var keyframes = function keyframes2() { + var insertable = css.apply(void 0, arguments); + var name = "animation-" + insertable.name; + return { + name, + styles: "@keyframes " + name + "{" + insertable.styles + "}", + anim: 1, + toString: function toString() { + return "_EMO_" + this.name + "_" + this.styles + "_EMO_"; + } + }; +}; +var classnames = function classnames2(args) { + var len = args.length; + var i = 0; + var cls = ""; + for (; i < len; i++) { + var arg = args[i]; + if (arg == null) continue; + var toAdd = void 0; + switch (typeof arg) { + case "boolean": + break; + case "object": { + if (Array.isArray(arg)) { + toAdd = classnames2(arg); + } else { + if (arg.styles !== void 0 && arg.name !== void 0) { + console.error("You have passed styles created with `css` from `@emotion/react` package to the `cx`.\n`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component."); + } + toAdd = ""; + for (var k in arg) { + if (arg[k] && k) { + toAdd && (toAdd += " "); + toAdd += k; + } + } + } + break; + } + default: { + toAdd = arg; + } + } + if (toAdd) { + cls && (cls += " "); + cls += toAdd; + } + } + return cls; +}; +function merge(registered, css4, className) { + var registeredStyles = []; + var rawClassName = getRegisteredStyles(registered, registeredStyles, className); + if (registeredStyles.length < 2) { + return className; + } + return rawClassName + css4(registeredStyles); +} +var Insertion3 = function Insertion4(_ref2) { + var cache = _ref2.cache, serializedArr = _ref2.serializedArr; + useInsertionEffectAlwaysWithSyncFallback(function() { + for (var i = 0; i < serializedArr.length; i++) { + insertStyles(cache, serializedArr[i], false); + } + }); + return null; +}; +var ClassNames = withEmotionCache(function(props, cache) { + var hasRendered = false; + var serializedArr = []; + var css4 = function css5() { + if (hasRendered && true) { + throw new Error("css can only be used during render"); + } + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + var serialized = serializeStyles(args, cache.registered); + serializedArr.push(serialized); + registerStyles(cache, serialized, false); + return cache.key + "-" + serialized.name; + }; + var cx4 = function cx5() { + if (hasRendered && true) { + throw new Error("cx can only be used during render"); + } + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return merge(cache.registered, css4, classnames(args)); + }; + var content = { + css: css4, + cx: cx4, + theme: React3.useContext(ThemeContext) + }; + var ele = props.children(content); + hasRendered = true; + return React3.createElement(React3.Fragment, null, React3.createElement(Insertion3, { + cache, + serializedArr + }), ele); +}); +if (true) { + ClassNames.displayName = "EmotionClassNames"; +} +if (true) { + isBrowser6 = true; + isTestEnv = typeof jest !== "undefined" || typeof vi !== "undefined"; + if (isBrowser6 && !isTestEnv) { + globalContext = // $FlowIgnore + typeof globalThis !== "undefined" ? globalThis : isBrowser6 ? window : global; + globalKey = "__EMOTION_REACT_" + pkg.version.split(".")[0] + "__"; + if (globalContext[globalKey]) { + console.warn("You are loading @emotion/react when it is already loaded. Running multiple instances may cause problems. This can happen if multiple versions are used, or if multiple builds of the same version are used."); + } + globalContext[globalKey] = true; + } +} +var isBrowser6; +var isTestEnv; +var globalContext; +var globalKey; + +// node_modules/@chakra-ui/css-reset/dist/chunk-B4LBJQ3X.mjs +var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); +var css2 = String.raw; +var vhPolyfill = css2` + :root, + :host { + --chakra-vh: 100vh; + } + + @supports (height: -webkit-fill-available) { + :root, + :host { + --chakra-vh: -webkit-fill-available; + } + } + + @supports (height: -moz-fill-available) { + :root, + :host { + --chakra-vh: -moz-fill-available; + } + } + + @supports (height: 100dvh) { + :root, + :host { + --chakra-vh: 100dvh; + } + } +`; +var CSSPolyfill = () => (0, import_jsx_runtime.jsx)(Global, { styles: vhPolyfill }); +var CSSReset = ({ scope = "" }) => (0, import_jsx_runtime.jsx)( + Global, + { + styles: css2` + html { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + font-family: system-ui, sans-serif; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + touch-action: manipulation; + } + + body { + position: relative; + min-height: 100%; + margin: 0; + font-feature-settings: "kern"; + } + + ${scope} :where(*, *::before, *::after) { + border-width: 0; + border-style: solid; + box-sizing: border-box; + word-wrap: break-word; + } + + main { + display: block; + } + + ${scope} hr { + border-top-width: 1px; + box-sizing: content-box; + height: 0; + overflow: visible; + } + + ${scope} :where(pre, code, kbd,samp) { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; + font-size: 1em; + } + + ${scope} a { + background-color: transparent; + color: inherit; + text-decoration: inherit; + } + + ${scope} abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + + ${scope} :where(b, strong) { + font-weight: bold; + } + + ${scope} small { + font-size: 80%; + } + + ${scope} :where(sub,sup) { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + + ${scope} sub { + bottom: -0.25em; + } + + ${scope} sup { + top: -0.5em; + } + + ${scope} img { + border-style: none; + } + + ${scope} :where(button, input, optgroup, select, textarea) { + font-family: inherit; + font-size: 100%; + line-height: 1.15; + margin: 0; + } + + ${scope} :where(button, input) { + overflow: visible; + } + + ${scope} :where(button, select) { + text-transform: none; + } + + ${scope} :where( + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner + ) { + border-style: none; + padding: 0; + } + + ${scope} fieldset { + padding: 0.35em 0.75em 0.625em; + } + + ${scope} legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; + } + + ${scope} progress { + vertical-align: baseline; + } + + ${scope} textarea { + overflow: auto; + } + + ${scope} :where([type="checkbox"], [type="radio"]) { + box-sizing: border-box; + padding: 0; + } + + ${scope} input[type="number"]::-webkit-inner-spin-button, + ${scope} input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none !important; + } + + ${scope} input[type="number"] { + -moz-appearance: textfield; + } + + ${scope} input[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; + } + + ${scope} input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none !important; + } + + ${scope} ::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; + } + + ${scope} details { + display: block; + } + + ${scope} summary { + display: list-item; + } + + template { + display: none; + } + + [hidden] { + display: none !important; + } + + ${scope} :where( + blockquote, + dl, + dd, + h1, + h2, + h3, + h4, + h5, + h6, + hr, + figure, + p, + pre + ) { + margin: 0; + } + + ${scope} button { + background: transparent; + padding: 0; + } + + ${scope} fieldset { + margin: 0; + padding: 0; + } + + ${scope} :where(ol, ul) { + margin: 0; + padding: 0; + } + + ${scope} textarea { + resize: vertical; + } + + ${scope} :where(button, [role="button"]) { + cursor: pointer; + } + + ${scope} button::-moz-focus-inner { + border: 0 !important; + } + + ${scope} table { + border-collapse: collapse; + } + + ${scope} :where(h1, h2, h3, h4, h5, h6) { + font-size: inherit; + font-weight: inherit; + } + + ${scope} :where(button, input, optgroup, select, textarea) { + padding: 0; + line-height: inherit; + color: inherit; + } + + ${scope} :where(img, svg, video, canvas, audio, iframe, embed, object) { + display: block; + } + + ${scope} :where(img, video) { + max-width: 100%; + height: auto; + } + + [data-js-focus-visible] + :focus:not([data-focus-visible-added]):not( + [data-focus-visible-disabled] + ) { + outline: none; + box-shadow: none; + } + + ${scope} select::-ms-expand { + display: none; + } + + ${vhPolyfill} + ` + } +); + +// node_modules/@chakra-ui/react-context/dist/index.mjs +var import_react3 = __toESM(require_react(), 1); +function getErrorMessage(hook, provider) { + return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`; +} +function createContext2(options = {}) { + const { + name, + strict = true, + hookName = "useContext", + providerName = "Provider", + errorMessage, + defaultValue + } = options; + const Context = (0, import_react3.createContext)(defaultValue); + Context.displayName = name; + function useContext25() { + var _a8; + const context = (0, import_react3.useContext)(Context); + if (!context && strict) { + const error2 = new Error( + errorMessage != null ? errorMessage : getErrorMessage(hookName, providerName) + ); + error2.name = "ContextError"; + (_a8 = Error.captureStackTrace) == null ? void 0 : _a8.call(Error, error2, useContext25); + throw error2; + } + return context; + } + return [Context.Provider, useContext25, Context]; +} + +// node_modules/@chakra-ui/portal/dist/chunk-HK66PB7M.mjs +var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1); +var [PortalManagerContextProvider, usePortalManager] = createContext2({ + strict: false, + name: "PortalManagerContext" +}); +function PortalManager(props) { + const { children, zIndex } = props; + return (0, import_jsx_runtime2.jsx)(PortalManagerContextProvider, { value: { zIndex }, children }); +} +PortalManager.displayName = "PortalManager"; + +// node_modules/@chakra-ui/react-use-safe-layout-effect/dist/index.mjs +var import_react4 = __toESM(require_react(), 1); +var useSafeLayoutEffect = Boolean(globalThis == null ? void 0 : globalThis.document) ? import_react4.useLayoutEffect : import_react4.useEffect; + +// node_modules/@chakra-ui/portal/dist/chunk-34PD6CUK.mjs +var import_react_dom = __toESM(require_react_dom(), 1); +var import_react5 = __toESM(require_react(), 1); +var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); +var [PortalContextProvider, usePortalContext] = createContext2({ + strict: false, + name: "PortalContext" +}); +var PORTAL_CLASSNAME = "chakra-portal"; +var PORTAL_SELECTOR = `.chakra-portal`; +var Container = (props) => (0, import_jsx_runtime3.jsx)( + "div", + { + className: "chakra-portal-zIndex", + style: { + position: "absolute", + zIndex: props.zIndex, + top: 0, + left: 0, + right: 0 + // NB: Don't add `bottom: 0`, it makes the entire app unusable + // @see https://github.com/chakra-ui/chakra-ui/issues/3201 + }, + children: props.children + } +); +var DefaultPortal = (props) => { + const { appendToParentPortal, children } = props; + const [tempNode, setTempNode] = (0, import_react5.useState)(null); + const portal = (0, import_react5.useRef)(null); + const [, forceUpdate] = (0, import_react5.useState)({}); + (0, import_react5.useEffect)(() => forceUpdate({}), []); + const parentPortal = usePortalContext(); + const manager = usePortalManager(); + useSafeLayoutEffect(() => { + if (!tempNode) + return; + const doc = tempNode.ownerDocument; + const host = appendToParentPortal ? parentPortal != null ? parentPortal : doc.body : doc.body; + if (!host) + return; + portal.current = doc.createElement("div"); + portal.current.className = PORTAL_CLASSNAME; + host.appendChild(portal.current); + forceUpdate({}); + const portalNode = portal.current; + return () => { + if (host.contains(portalNode)) { + host.removeChild(portalNode); + } + }; + }, [tempNode]); + const _children = (manager == null ? void 0 : manager.zIndex) ? (0, import_jsx_runtime3.jsx)(Container, { zIndex: manager == null ? void 0 : manager.zIndex, children }) : children; + return portal.current ? (0, import_react_dom.createPortal)( + (0, import_jsx_runtime3.jsx)(PortalContextProvider, { value: portal.current, children: _children }), + portal.current + ) : (0, import_jsx_runtime3.jsx)( + "span", + { + ref: (el) => { + if (el) + setTempNode(el); + } + } + ); +}; +var ContainerPortal = (props) => { + const { children, containerRef, appendToParentPortal } = props; + const containerEl = containerRef.current; + const host = containerEl != null ? containerEl : typeof window !== "undefined" ? document.body : void 0; + const portal = (0, import_react5.useMemo)(() => { + const node3 = containerEl == null ? void 0 : containerEl.ownerDocument.createElement("div"); + if (node3) + node3.className = PORTAL_CLASSNAME; + return node3; + }, [containerEl]); + const [, forceUpdate] = (0, import_react5.useState)({}); + useSafeLayoutEffect(() => forceUpdate({}), []); + useSafeLayoutEffect(() => { + if (!portal || !host) + return; + host.appendChild(portal); + return () => { + host.removeChild(portal); + }; + }, [portal, host]); + if (host && portal) { + return (0, import_react_dom.createPortal)( + (0, import_jsx_runtime3.jsx)(PortalContextProvider, { value: appendToParentPortal ? portal : null, children }), + portal + ); + } + return null; +}; +function Portal(props) { + const portalProps = { + appendToParentPortal: true, + ...props + }; + const { containerRef, ...rest } = portalProps; + return containerRef ? (0, import_jsx_runtime3.jsx)(ContainerPortal, { containerRef, ...rest }) : (0, import_jsx_runtime3.jsx)(DefaultPortal, { ...rest }); +} +Portal.className = PORTAL_CLASSNAME; +Portal.selector = PORTAL_SELECTOR; +Portal.displayName = "Portal"; + +// node_modules/@chakra-ui/system/dist/chunk-UIGT7YZF.mjs +var import_react7 = __toESM(require_react(), 1); +function useTheme2() { + const theme2 = (0, import_react7.useContext)( + ThemeContext + ); + if (!theme2) { + throw Error( + "useTheme: `theme` is undefined. Seems you forgot to wrap your app in `` or ``" + ); + } + return theme2; +} + +// node_modules/@chakra-ui/color-mode/dist/chunk-UQDW7KKV.mjs +var import_react8 = __toESM(require_react(), 1); +var ColorModeContext = (0, import_react8.createContext)({}); +ColorModeContext.displayName = "ColorModeContext"; +function useColorMode() { + const context = (0, import_react8.useContext)(ColorModeContext); + if (context === void 0) { + throw new Error("useColorMode must be used within a ColorModeProvider"); + } + return context; +} +function useColorModeValue(light, dark) { + const { colorMode } = useColorMode(); + return colorMode === "dark" ? dark : light; +} + +// node_modules/@chakra-ui/color-mode/dist/chunk-X7ZBZ4KW.mjs +var classNames = { + light: "chakra-ui-light", + dark: "chakra-ui-dark" +}; +function getColorModeUtils(options = {}) { + const { preventTransition = true } = options; + const utils = { + setDataset: (value) => { + const cleanup = preventTransition ? utils.preventTransition() : void 0; + document.documentElement.dataset.theme = value; + document.documentElement.style.colorScheme = value; + cleanup == null ? void 0 : cleanup(); + }, + setClassName(dark) { + document.body.classList.add(dark ? classNames.dark : classNames.light); + document.body.classList.remove(dark ? classNames.light : classNames.dark); + }, + query() { + return window.matchMedia("(prefers-color-scheme: dark)"); + }, + getSystemTheme(fallback) { + var _a8; + const dark = (_a8 = utils.query().matches) != null ? _a8 : fallback === "dark"; + return dark ? "dark" : "light"; + }, + addListener(fn) { + const mql = utils.query(); + const listener = (e) => { + fn(e.matches ? "dark" : "light"); + }; + if (typeof mql.addListener === "function") + mql.addListener(listener); + else + mql.addEventListener("change", listener); + return () => { + if (typeof mql.removeListener === "function") + mql.removeListener(listener); + else + mql.removeEventListener("change", listener); + }; + }, + preventTransition() { + const css4 = document.createElement("style"); + css4.appendChild( + document.createTextNode( + `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}` + ) + ); + document.head.appendChild(css4); + return () => { + ; + (() => window.getComputedStyle(document.body))(); + requestAnimationFrame(() => { + requestAnimationFrame(() => { + document.head.removeChild(css4); + }); + }); + }; + } + }; + return utils; +} + +// node_modules/@chakra-ui/color-mode/dist/chunk-44OWBZ77.mjs +var STORAGE_KEY = "chakra-ui-color-mode"; +function createLocalStorageManager(key) { + return { + ssr: false, + type: "localStorage", + get(init) { + if (!(globalThis == null ? void 0 : globalThis.document)) + return init; + let value; + try { + value = localStorage.getItem(key) || init; + } catch (e) { + } + return value || init; + }, + set(value) { + try { + localStorage.setItem(key, value); + } catch (e) { + } + } + }; +} +var localStorageManager = createLocalStorageManager(STORAGE_KEY); +function parseCookie(cookie, key) { + const match3 = cookie.match(new RegExp(`(^| )${key}=([^;]+)`)); + return match3 == null ? void 0 : match3[2]; +} +function createCookieStorageManager(key, cookie) { + return { + ssr: !!cookie, + type: "cookie", + get(init) { + if (cookie) + return parseCookie(cookie, key); + if (!(globalThis == null ? void 0 : globalThis.document)) + return init; + return parseCookie(document.cookie, key) || init; + }, + set(value) { + document.cookie = `${key}=${value}; max-age=31536000; path=/`; + } + }; +} +var cookieStorageManager = createCookieStorageManager(STORAGE_KEY); +var cookieStorageManagerSSR = (cookie) => createCookieStorageManager(STORAGE_KEY, cookie); + +// node_modules/@chakra-ui/color-mode/dist/chunk-AMBGAKG2.mjs +var import_react9 = __toESM(require_react(), 1); +var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); +var noop = () => { +}; +function getTheme3(manager, fallback) { + return manager.type === "cookie" && manager.ssr ? manager.get(fallback) : fallback; +} +function ColorModeProvider(props) { + const { + value, + children, + options: { + useSystemColorMode, + initialColorMode, + disableTransitionOnChange + } = {}, + colorModeManager = localStorageManager + } = props; + const defaultColorMode = initialColorMode === "dark" ? "dark" : "light"; + const [colorMode, rawSetColorMode] = (0, import_react9.useState)( + () => getTheme3(colorModeManager, defaultColorMode) + ); + const [resolvedColorMode, setResolvedColorMode] = (0, import_react9.useState)( + () => getTheme3(colorModeManager) + ); + const { getSystemTheme, setClassName, setDataset, addListener } = (0, import_react9.useMemo)( + () => getColorModeUtils({ preventTransition: disableTransitionOnChange }), + [disableTransitionOnChange] + ); + const resolvedValue = initialColorMode === "system" && !colorMode ? resolvedColorMode : colorMode; + const setColorMode = (0, import_react9.useCallback)( + (value2) => { + const resolved = value2 === "system" ? getSystemTheme() : value2; + rawSetColorMode(resolved); + setClassName(resolved === "dark"); + setDataset(resolved); + colorModeManager.set(resolved); + }, + [colorModeManager, getSystemTheme, setClassName, setDataset] + ); + useSafeLayoutEffect(() => { + if (initialColorMode === "system") { + setResolvedColorMode(getSystemTheme()); + } + }, []); + (0, import_react9.useEffect)(() => { + const managerValue = colorModeManager.get(); + if (managerValue) { + setColorMode(managerValue); + return; + } + if (initialColorMode === "system") { + setColorMode("system"); + return; + } + setColorMode(defaultColorMode); + }, [colorModeManager, defaultColorMode, initialColorMode, setColorMode]); + const toggleColorMode = (0, import_react9.useCallback)(() => { + setColorMode(resolvedValue === "dark" ? "light" : "dark"); + }, [resolvedValue, setColorMode]); + (0, import_react9.useEffect)(() => { + if (!useSystemColorMode) + return; + return addListener(setColorMode); + }, [useSystemColorMode, addListener, setColorMode]); + const context = (0, import_react9.useMemo)( + () => ({ + colorMode: value != null ? value : resolvedValue, + toggleColorMode: value ? noop : toggleColorMode, + setColorMode: value ? noop : setColorMode, + forced: value !== void 0 + }), + [resolvedValue, toggleColorMode, setColorMode, value] + ); + return (0, import_jsx_runtime4.jsx)(ColorModeContext.Provider, { value: context, children }); +} +ColorModeProvider.displayName = "ColorModeProvider"; +function DarkMode(props) { + const context = (0, import_react9.useMemo)( + () => ({ + colorMode: "dark", + toggleColorMode: noop, + setColorMode: noop, + forced: true + }), + [] + ); + return (0, import_jsx_runtime4.jsx)(ColorModeContext.Provider, { value: context, ...props }); +} +DarkMode.displayName = "DarkMode"; +function LightMode(props) { + const context = (0, import_react9.useMemo)( + () => ({ + colorMode: "light", + toggleColorMode: noop, + setColorMode: noop, + forced: true + }), + [] + ); + return (0, import_jsx_runtime4.jsx)(ColorModeContext.Provider, { value: context, ...props }); +} +LightMode.displayName = "LightMode"; + +// node_modules/@chakra-ui/color-mode/dist/chunk-WP4V2BSL.mjs +var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); +var VALID_VALUES = /* @__PURE__ */ new Set(["dark", "light", "system"]); +function normalize(initialColorMode) { + let value = initialColorMode; + if (!VALID_VALUES.has(value)) + value = "light"; + return value; +} +function getScriptSrc(props = {}) { + const { + initialColorMode = "light", + type = "localStorage", + storageKey: key = "chakra-ui-color-mode" + } = props; + const init = normalize(initialColorMode); + const isCookie = type === "cookie"; + const cookieScript = `(function(){try{var a=function(o){var l="(prefers-color-scheme: dark)",v=window.matchMedia(l).matches?"dark":"light",e=o==="system"?v:o,d=document.documentElement,m=document.body,i="chakra-ui-light",n="chakra-ui-dark",s=e==="dark";return m.classList.add(s?n:i),m.classList.remove(s?i:n),d.style.colorScheme=e,d.dataset.theme=e,e},u=a,h="${init}",r="${key}",t=document.cookie.match(new RegExp("(^| )".concat(r,"=([^;]+)"))),c=t?t[2]:null;c?a(c):document.cookie="".concat(r,"=").concat(a(h),"; max-age=31536000; path=/")}catch(a){}})(); + `; + const localStorageScript = `(function(){try{var a=function(c){var v="(prefers-color-scheme: dark)",h=window.matchMedia(v).matches?"dark":"light",r=c==="system"?h:c,o=document.documentElement,s=document.body,l="chakra-ui-light",d="chakra-ui-dark",i=r==="dark";return s.classList.add(i?d:l),s.classList.remove(i?l:d),o.style.colorScheme=r,o.dataset.theme=r,r},n=a,m="${init}",e="${key}",t=localStorage.getItem(e);t?a(t):localStorage.setItem(e,a(m))}catch(a){}})(); + `; + const fn = isCookie ? cookieScript : localStorageScript; + return `!${fn}`.trim(); +} +function ColorModeScript(props = {}) { + const { nonce } = props; + return (0, import_jsx_runtime5.jsx)( + "script", + { + id: "chakra-script", + nonce, + dangerouslySetInnerHTML: { __html: getScriptSrc(props) } + } + ); +} + +// node_modules/@chakra-ui/system/dist/chunk-7FWEOSAE.mjs +function useChakra() { + const colorModeResult = useColorMode(); + const theme2 = useTheme2(); + return { ...colorModeResult, theme: theme2 }; +} +function getBreakpointValue(theme2, value, fallback) { + var _a8, _b5; + if (value == null) + return value; + const getValue2 = (val) => { + var _a24, _b22; + return (_b22 = (_a24 = theme2.__breakpoints) == null ? void 0 : _a24.asArray) == null ? void 0 : _b22[val]; + }; + return (_b5 = (_a8 = getValue2(value)) != null ? _a8 : getValue2(fallback)) != null ? _b5 : fallback; +} +function getTokenValue(theme2, value, fallback) { + var _a8, _b5; + if (value == null) + return value; + const getValue2 = (val) => { + var _a24, _b22; + return (_b22 = (_a24 = theme2.__cssMap) == null ? void 0 : _a24[val]) == null ? void 0 : _b22.value; + }; + return (_b5 = (_a8 = getValue2(value)) != null ? _a8 : getValue2(fallback)) != null ? _b5 : fallback; +} +function useToken(scale3, token2, fallback) { + const theme2 = useTheme2(); + return getToken(scale3, token2, fallback)(theme2); +} +function getToken(scale3, token2, fallback) { + const _token = Array.isArray(token2) ? token2 : [token2]; + const _fallback = Array.isArray(fallback) ? fallback : [fallback]; + return (theme2) => { + const fallbackArr = _fallback.filter(Boolean); + const result = _token.map((token22, index) => { + var _a8, _b5; + if (scale3 === "breakpoints") { + return getBreakpointValue(theme2, token22, (_a8 = fallbackArr[index]) != null ? _a8 : token22); + } + const path = `${scale3}.${token22}`; + return getTokenValue(theme2, path, (_b5 = fallbackArr[index]) != null ? _b5 : token22); + }); + return Array.isArray(token2) ? result : result[0]; + }; +} + +// node_modules/@chakra-ui/shared-utils/dist/index.mjs +var cx = (...classNames2) => classNames2.filter(Boolean).join(" "); +function isDev() { + return true; +} +function isObject(value) { + const type = typeof value; + return value != null && (type === "object" || type === "function") && !Array.isArray(value); +} +var warn = (options) => { + const { condition, message } = options; + if (condition && isDev()) { + console.warn(message); + } +}; +function runIfFn(valueOrFn, ...args) { + return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn; +} +var isFunction = (value) => typeof value === "function"; +var dataAttr = (condition) => condition ? "" : void 0; +var ariaAttr = (condition) => condition ? true : void 0; +function callAllHandlers(...fns) { + return function func2(event) { + fns.some((fn) => { + fn == null ? void 0 : fn(event); + return event == null ? void 0 : event.defaultPrevented; + }); + }; +} +function callAll(...fns) { + return function mergedFn(arg) { + fns.forEach((fn) => { + fn == null ? void 0 : fn(arg); + }); + }; +} + +// node_modules/@chakra-ui/styled-system/dist/index.mjs +var import_lodash = __toESM(require_lodash(), 1); +var import_lodash2 = __toESM(require_lodash(), 1); +var import_lodash3 = __toESM(require_lodash(), 1); +var import_lodash4 = __toESM(require_lodash(), 1); +var isImportant = (value) => /!(important)?$/.test(value); +var withoutImportant = (value) => typeof value === "string" ? value.replace(/!(important)?$/, "").trim() : value; +var tokenToCSSVar = (scale3, value) => (theme2) => { + const valueStr = String(value); + const important = isImportant(valueStr); + const valueWithoutImportant = withoutImportant(valueStr); + const key = scale3 ? `${scale3}.${valueWithoutImportant}` : valueWithoutImportant; + let transformed = isObject(theme2.__cssMap) && key in theme2.__cssMap ? theme2.__cssMap[key].varRef : value; + transformed = withoutImportant(transformed); + return important ? `${transformed} !important` : transformed; +}; +function createTransform(options) { + const { scale: scale3, transform: transform22, compose: compose2 } = options; + const fn = (value, theme2) => { + var _a8; + const _value = tokenToCSSVar(scale3, value)(theme2); + let result = (_a8 = transform22 == null ? void 0 : transform22(_value, theme2)) != null ? _a8 : _value; + if (compose2) { + result = compose2(result, theme2); + } + return result; + }; + return fn; +} +var pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v); +function toConfig(scale3, transform22) { + return (property) => { + const result = { property, scale: scale3 }; + result.transform = createTransform({ + scale: scale3, + transform: transform22 + }); + return result; + }; +} +var getRtl = ({ rtl, ltr }) => (theme2) => theme2.direction === "rtl" ? rtl : ltr; +function logical(options) { + const { property, scale: scale3, transform: transform22 } = options; + return { + scale: scale3, + property: getRtl(property), + transform: scale3 ? createTransform({ + scale: scale3, + compose: transform22 + }) : transform22 + }; +} +var transformTemplate = [ + "rotate(var(--chakra-rotate, 0))", + "scaleX(var(--chakra-scale-x, 1))", + "scaleY(var(--chakra-scale-y, 1))", + "skewX(var(--chakra-skew-x, 0))", + "skewY(var(--chakra-skew-y, 0))" +]; +function getTransformTemplate() { + return [ + "translateX(var(--chakra-translate-x, 0))", + "translateY(var(--chakra-translate-y, 0))", + ...transformTemplate + ].join(" "); +} +function getTransformGpuTemplate() { + return [ + "translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)", + ...transformTemplate + ].join(" "); +} +var filterTemplate = { + "--chakra-blur": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-brightness": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-contrast": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-grayscale": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-hue-rotate": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-invert": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-saturate": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-sepia": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-drop-shadow": "var(--chakra-empty,/*!*/ /*!*/)", + filter: [ + "var(--chakra-blur)", + "var(--chakra-brightness)", + "var(--chakra-contrast)", + "var(--chakra-grayscale)", + "var(--chakra-hue-rotate)", + "var(--chakra-invert)", + "var(--chakra-saturate)", + "var(--chakra-sepia)", + "var(--chakra-drop-shadow)" + ].join(" ") +}; +var backdropFilterTemplate = { + backdropFilter: [ + "var(--chakra-backdrop-blur)", + "var(--chakra-backdrop-brightness)", + "var(--chakra-backdrop-contrast)", + "var(--chakra-backdrop-grayscale)", + "var(--chakra-backdrop-hue-rotate)", + "var(--chakra-backdrop-invert)", + "var(--chakra-backdrop-opacity)", + "var(--chakra-backdrop-saturate)", + "var(--chakra-backdrop-sepia)" + ].join(" "), + "--chakra-backdrop-blur": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-brightness": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-contrast": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-grayscale": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-hue-rotate": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-invert": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-opacity": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-saturate": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-backdrop-sepia": "var(--chakra-empty,/*!*/ /*!*/)" +}; +function getRingTemplate(value) { + return { + "--chakra-ring-offset-shadow": `var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)`, + "--chakra-ring-shadow": `var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)`, + "--chakra-ring-width": value, + boxShadow: [ + `var(--chakra-ring-offset-shadow)`, + `var(--chakra-ring-shadow)`, + `var(--chakra-shadow, 0 0 #0000)` + ].join(", ") + }; +} +var flexDirectionTemplate = { + "row-reverse": { + space: "--chakra-space-x-reverse", + divide: "--chakra-divide-x-reverse" + }, + "column-reverse": { + space: "--chakra-space-y-reverse", + divide: "--chakra-divide-y-reverse" + } +}; +var directionMap = { + "to-t": "to top", + "to-tr": "to top right", + "to-r": "to right", + "to-br": "to bottom right", + "to-b": "to bottom", + "to-bl": "to bottom left", + "to-l": "to left", + "to-tl": "to top left" +}; +var valueSet = new Set(Object.values(directionMap)); +var globalSet = /* @__PURE__ */ new Set([ + "none", + "-moz-initial", + "inherit", + "initial", + "revert", + "unset" +]); +var trimSpace = (str) => str.trim(); +function parseGradient(value, theme2) { + if (value == null || globalSet.has(value)) + return value; + const prevent = isCSSFunction(value) || globalSet.has(value); + if (!prevent) + return `url('${value}')`; + const regex = /(^[a-z-A-Z]+)\((.*)\)/g; + const results = regex.exec(value); + const type = results == null ? void 0 : results[1]; + const values = results == null ? void 0 : results[2]; + if (!type || !values) + return value; + const _type = type.includes("-gradient") ? type : `${type}-gradient`; + const [maybeDirection, ...stops] = values.split(",").map(trimSpace).filter(Boolean); + if ((stops == null ? void 0 : stops.length) === 0) + return value; + const direction2 = maybeDirection in directionMap ? directionMap[maybeDirection] : maybeDirection; + stops.unshift(direction2); + const _values = stops.map((stop) => { + if (valueSet.has(stop)) + return stop; + const firstStop = stop.indexOf(" "); + const [_color, _stop] = firstStop !== -1 ? [stop.substr(0, firstStop), stop.substr(firstStop + 1)] : [stop]; + const _stopOrFunc = isCSSFunction(_stop) ? _stop : _stop && _stop.split(" "); + const key = `colors.${_color}`; + const color22 = key in theme2.__cssMap ? theme2.__cssMap[key].varRef : _color; + return _stopOrFunc ? [ + color22, + ...Array.isArray(_stopOrFunc) ? _stopOrFunc : [_stopOrFunc] + ].join(" ") : color22; + }); + return `${_type}(${_values.join(", ")})`; +} +var isCSSFunction = (value) => { + return typeof value === "string" && value.includes("(") && value.includes(")"); +}; +var gradientTransform = (value, theme2) => parseGradient(value, theme2 != null ? theme2 : {}); +function isCssVar(value) { + return /^var\(--.+\)$/.test(value); +} +var analyzeCSSValue = (value) => { + const num = parseFloat(value.toString()); + const unit = value.toString().replace(String(num), ""); + return { unitless: !unit, value: num, unit }; +}; +var wrap = (str) => (value) => `${str}(${value})`; +var transformFunctions = { + filter(value) { + return value !== "auto" ? value : filterTemplate; + }, + backdropFilter(value) { + return value !== "auto" ? value : backdropFilterTemplate; + }, + ring(value) { + return getRingTemplate(transformFunctions.px(value)); + }, + bgClip(value) { + return value === "text" ? { color: "transparent", backgroundClip: "text" } : { backgroundClip: value }; + }, + transform(value) { + if (value === "auto") + return getTransformTemplate(); + if (value === "auto-gpu") + return getTransformGpuTemplate(); + return value; + }, + vh(value) { + return value === "$100vh" ? "var(--chakra-vh)" : value; + }, + px(value) { + if (value == null) + return value; + const { unitless } = analyzeCSSValue(value); + return unitless || typeof value === "number" ? `${value}px` : value; + }, + fraction(value) { + return !(typeof value === "number") || value > 1 ? value : `${value * 100}%`; + }, + float(value, theme2) { + const map = { left: "right", right: "left" }; + return theme2.direction === "rtl" ? map[value] : value; + }, + degree(value) { + if (isCssVar(value) || value == null) + return value; + const unitless = typeof value === "string" && !value.endsWith("deg"); + return typeof value === "number" || unitless ? `${value}deg` : value; + }, + gradient: gradientTransform, + blur: wrap("blur"), + opacity: wrap("opacity"), + brightness: wrap("brightness"), + contrast: wrap("contrast"), + dropShadow: wrap("drop-shadow"), + grayscale: wrap("grayscale"), + hueRotate: (value) => wrap("hue-rotate")(transformFunctions.degree(value)), + invert: wrap("invert"), + saturate: wrap("saturate"), + sepia: wrap("sepia"), + bgImage(value) { + if (value == null) + return value; + const prevent = isCSSFunction(value) || globalSet.has(value); + return !prevent ? `url(${value})` : value; + }, + outline(value) { + const isNoneOrZero = String(value) === "0" || String(value) === "none"; + return value !== null && isNoneOrZero ? { outline: "2px solid transparent", outlineOffset: "2px" } : { outline: value }; + }, + flexDirection(value) { + var _a8; + const { space: space2, divide: divide22 } = (_a8 = flexDirectionTemplate[value]) != null ? _a8 : {}; + const result = { flexDirection: value }; + if (space2) + result[space2] = 1; + if (divide22) + result[divide22] = 1; + return result; + } +}; +var t = { + borderWidths: toConfig("borderWidths"), + borderStyles: toConfig("borderStyles"), + colors: toConfig("colors"), + borders: toConfig("borders"), + gradients: toConfig("gradients", transformFunctions.gradient), + radii: toConfig("radii", transformFunctions.px), + space: toConfig("space", pipe(transformFunctions.vh, transformFunctions.px)), + spaceT: toConfig("space", pipe(transformFunctions.vh, transformFunctions.px)), + degreeT(property) { + return { property, transform: transformFunctions.degree }; + }, + prop(property, scale3, transform22) { + return { + property, + scale: scale3, + ...scale3 && { + transform: createTransform({ scale: scale3, transform: transform22 }) + } + }; + }, + propT(property, transform22) { + return { property, transform: transform22 }; + }, + sizes: toConfig("sizes", pipe(transformFunctions.vh, transformFunctions.px)), + sizesT: toConfig("sizes", pipe(transformFunctions.vh, transformFunctions.fraction)), + shadows: toConfig("shadows"), + logical, + blur: toConfig("blur", transformFunctions.blur) +}; +var background = { + background: t.colors("background"), + backgroundColor: t.colors("backgroundColor"), + backgroundImage: t.gradients("backgroundImage"), + backgroundSize: true, + backgroundPosition: true, + backgroundRepeat: true, + backgroundAttachment: true, + backgroundClip: { transform: transformFunctions.bgClip }, + bgSize: t.prop("backgroundSize"), + bgPosition: t.prop("backgroundPosition"), + bg: t.colors("background"), + bgColor: t.colors("backgroundColor"), + bgPos: t.prop("backgroundPosition"), + bgRepeat: t.prop("backgroundRepeat"), + bgAttachment: t.prop("backgroundAttachment"), + bgGradient: t.gradients("backgroundImage"), + bgClip: { transform: transformFunctions.bgClip } +}; +Object.assign(background, { + bgImage: background.backgroundImage, + bgImg: background.backgroundImage +}); +var border = { + border: t.borders("border"), + borderWidth: t.borderWidths("borderWidth"), + borderStyle: t.borderStyles("borderStyle"), + borderColor: t.colors("borderColor"), + borderRadius: t.radii("borderRadius"), + borderTop: t.borders("borderTop"), + borderBlockStart: t.borders("borderBlockStart"), + borderTopLeftRadius: t.radii("borderTopLeftRadius"), + borderStartStartRadius: t.logical({ + scale: "radii", + property: { + ltr: "borderTopLeftRadius", + rtl: "borderTopRightRadius" + } + }), + borderEndStartRadius: t.logical({ + scale: "radii", + property: { + ltr: "borderBottomLeftRadius", + rtl: "borderBottomRightRadius" + } + }), + borderTopRightRadius: t.radii("borderTopRightRadius"), + borderStartEndRadius: t.logical({ + scale: "radii", + property: { + ltr: "borderTopRightRadius", + rtl: "borderTopLeftRadius" + } + }), + borderEndEndRadius: t.logical({ + scale: "radii", + property: { + ltr: "borderBottomRightRadius", + rtl: "borderBottomLeftRadius" + } + }), + borderRight: t.borders("borderRight"), + borderInlineEnd: t.borders("borderInlineEnd"), + borderBottom: t.borders("borderBottom"), + borderBlockEnd: t.borders("borderBlockEnd"), + borderBottomLeftRadius: t.radii("borderBottomLeftRadius"), + borderBottomRightRadius: t.radii("borderBottomRightRadius"), + borderLeft: t.borders("borderLeft"), + borderInlineStart: { + property: "borderInlineStart", + scale: "borders" + }, + borderInlineStartRadius: t.logical({ + scale: "radii", + property: { + ltr: ["borderTopLeftRadius", "borderBottomLeftRadius"], + rtl: ["borderTopRightRadius", "borderBottomRightRadius"] + } + }), + borderInlineEndRadius: t.logical({ + scale: "radii", + property: { + ltr: ["borderTopRightRadius", "borderBottomRightRadius"], + rtl: ["borderTopLeftRadius", "borderBottomLeftRadius"] + } + }), + borderX: t.borders(["borderLeft", "borderRight"]), + borderInline: t.borders("borderInline"), + borderY: t.borders(["borderTop", "borderBottom"]), + borderBlock: t.borders("borderBlock"), + borderTopWidth: t.borderWidths("borderTopWidth"), + borderBlockStartWidth: t.borderWidths("borderBlockStartWidth"), + borderTopColor: t.colors("borderTopColor"), + borderBlockStartColor: t.colors("borderBlockStartColor"), + borderTopStyle: t.borderStyles("borderTopStyle"), + borderBlockStartStyle: t.borderStyles("borderBlockStartStyle"), + borderBottomWidth: t.borderWidths("borderBottomWidth"), + borderBlockEndWidth: t.borderWidths("borderBlockEndWidth"), + borderBottomColor: t.colors("borderBottomColor"), + borderBlockEndColor: t.colors("borderBlockEndColor"), + borderBottomStyle: t.borderStyles("borderBottomStyle"), + borderBlockEndStyle: t.borderStyles("borderBlockEndStyle"), + borderLeftWidth: t.borderWidths("borderLeftWidth"), + borderInlineStartWidth: t.borderWidths("borderInlineStartWidth"), + borderLeftColor: t.colors("borderLeftColor"), + borderInlineStartColor: t.colors("borderInlineStartColor"), + borderLeftStyle: t.borderStyles("borderLeftStyle"), + borderInlineStartStyle: t.borderStyles("borderInlineStartStyle"), + borderRightWidth: t.borderWidths("borderRightWidth"), + borderInlineEndWidth: t.borderWidths("borderInlineEndWidth"), + borderRightColor: t.colors("borderRightColor"), + borderInlineEndColor: t.colors("borderInlineEndColor"), + borderRightStyle: t.borderStyles("borderRightStyle"), + borderInlineEndStyle: t.borderStyles("borderInlineEndStyle"), + borderTopRadius: t.radii(["borderTopLeftRadius", "borderTopRightRadius"]), + borderBottomRadius: t.radii([ + "borderBottomLeftRadius", + "borderBottomRightRadius" + ]), + borderLeftRadius: t.radii(["borderTopLeftRadius", "borderBottomLeftRadius"]), + borderRightRadius: t.radii([ + "borderTopRightRadius", + "borderBottomRightRadius" + ]) +}; +Object.assign(border, { + rounded: border.borderRadius, + roundedTop: border.borderTopRadius, + roundedTopLeft: border.borderTopLeftRadius, + roundedTopRight: border.borderTopRightRadius, + roundedTopStart: border.borderStartStartRadius, + roundedTopEnd: border.borderStartEndRadius, + roundedBottom: border.borderBottomRadius, + roundedBottomLeft: border.borderBottomLeftRadius, + roundedBottomRight: border.borderBottomRightRadius, + roundedBottomStart: border.borderEndStartRadius, + roundedBottomEnd: border.borderEndEndRadius, + roundedLeft: border.borderLeftRadius, + roundedRight: border.borderRightRadius, + roundedStart: border.borderInlineStartRadius, + roundedEnd: border.borderInlineEndRadius, + borderStart: border.borderInlineStart, + borderEnd: border.borderInlineEnd, + borderTopStartRadius: border.borderStartStartRadius, + borderTopEndRadius: border.borderStartEndRadius, + borderBottomStartRadius: border.borderEndStartRadius, + borderBottomEndRadius: border.borderEndEndRadius, + borderStartRadius: border.borderInlineStartRadius, + borderEndRadius: border.borderInlineEndRadius, + borderStartWidth: border.borderInlineStartWidth, + borderEndWidth: border.borderInlineEndWidth, + borderStartColor: border.borderInlineStartColor, + borderEndColor: border.borderInlineEndColor, + borderStartStyle: border.borderInlineStartStyle, + borderEndStyle: border.borderInlineEndStyle +}); +var color = { + color: t.colors("color"), + textColor: t.colors("color"), + fill: t.colors("fill"), + stroke: t.colors("stroke") +}; +var effect = { + boxShadow: t.shadows("boxShadow"), + mixBlendMode: true, + blendMode: t.prop("mixBlendMode"), + backgroundBlendMode: true, + bgBlendMode: t.prop("backgroundBlendMode"), + opacity: true +}; +Object.assign(effect, { + shadow: effect.boxShadow +}); +var filter = { + filter: { transform: transformFunctions.filter }, + blur: t.blur("--chakra-blur"), + brightness: t.propT("--chakra-brightness", transformFunctions.brightness), + contrast: t.propT("--chakra-contrast", transformFunctions.contrast), + hueRotate: t.propT("--chakra-hue-rotate", transformFunctions.hueRotate), + invert: t.propT("--chakra-invert", transformFunctions.invert), + saturate: t.propT("--chakra-saturate", transformFunctions.saturate), + dropShadow: t.propT("--chakra-drop-shadow", transformFunctions.dropShadow), + backdropFilter: { transform: transformFunctions.backdropFilter }, + backdropBlur: t.blur("--chakra-backdrop-blur"), + backdropBrightness: t.propT( + "--chakra-backdrop-brightness", + transformFunctions.brightness + ), + backdropContrast: t.propT("--chakra-backdrop-contrast", transformFunctions.contrast), + backdropHueRotate: t.propT( + "--chakra-backdrop-hue-rotate", + transformFunctions.hueRotate + ), + backdropInvert: t.propT("--chakra-backdrop-invert", transformFunctions.invert), + backdropSaturate: t.propT("--chakra-backdrop-saturate", transformFunctions.saturate) +}; +var flexbox = { + alignItems: true, + alignContent: true, + justifyItems: true, + justifyContent: true, + flexWrap: true, + flexDirection: { transform: transformFunctions.flexDirection }, + flex: true, + flexFlow: true, + flexGrow: true, + flexShrink: true, + flexBasis: t.sizes("flexBasis"), + justifySelf: true, + alignSelf: true, + order: true, + placeItems: true, + placeContent: true, + placeSelf: true, + gap: t.space("gap"), + rowGap: t.space("rowGap"), + columnGap: t.space("columnGap") +}; +Object.assign(flexbox, { + flexDir: flexbox.flexDirection +}); +var grid = { + gridGap: t.space("gridGap"), + gridColumnGap: t.space("gridColumnGap"), + gridRowGap: t.space("gridRowGap"), + gridColumn: true, + gridRow: true, + gridAutoFlow: true, + gridAutoColumns: true, + gridColumnStart: true, + gridColumnEnd: true, + gridRowStart: true, + gridRowEnd: true, + gridAutoRows: true, + gridTemplate: true, + gridTemplateColumns: true, + gridTemplateRows: true, + gridTemplateAreas: true, + gridArea: true +}; +var interactivity = { + appearance: true, + cursor: true, + resize: true, + userSelect: true, + pointerEvents: true, + outline: { transform: transformFunctions.outline }, + outlineOffset: true, + outlineColor: t.colors("outlineColor") +}; +var layout = { + width: t.sizesT("width"), + inlineSize: t.sizesT("inlineSize"), + height: t.sizes("height"), + blockSize: t.sizes("blockSize"), + boxSize: t.sizes(["width", "height"]), + minWidth: t.sizes("minWidth"), + minInlineSize: t.sizes("minInlineSize"), + minHeight: t.sizes("minHeight"), + minBlockSize: t.sizes("minBlockSize"), + maxWidth: t.sizes("maxWidth"), + maxInlineSize: t.sizes("maxInlineSize"), + maxHeight: t.sizes("maxHeight"), + maxBlockSize: t.sizes("maxBlockSize"), + overflow: true, + overflowX: true, + overflowY: true, + overscrollBehavior: true, + overscrollBehaviorX: true, + overscrollBehaviorY: true, + display: true, + aspectRatio: true, + hideFrom: { + scale: "breakpoints", + transform: (value, theme2) => { + var _a8, _b5, _c3; + const breakpoint = (_c3 = (_b5 = (_a8 = theme2.__breakpoints) == null ? void 0 : _a8.get(value)) == null ? void 0 : _b5.minW) != null ? _c3 : value; + const mq = `@media screen and (min-width: ${breakpoint})`; + return { [mq]: { display: "none" } }; + } + }, + hideBelow: { + scale: "breakpoints", + transform: (value, theme2) => { + var _a8, _b5, _c3; + const breakpoint = (_c3 = (_b5 = (_a8 = theme2.__breakpoints) == null ? void 0 : _a8.get(value)) == null ? void 0 : _b5._minW) != null ? _c3 : value; + const mq = `@media screen and (max-width: ${breakpoint})`; + return { [mq]: { display: "none" } }; + } + }, + verticalAlign: true, + boxSizing: true, + boxDecorationBreak: true, + float: t.propT("float", transformFunctions.float), + objectFit: true, + objectPosition: true, + visibility: true, + isolation: true +}; +Object.assign(layout, { + w: layout.width, + h: layout.height, + minW: layout.minWidth, + maxW: layout.maxWidth, + minH: layout.minHeight, + maxH: layout.maxHeight, + overscroll: layout.overscrollBehavior, + overscrollX: layout.overscrollBehaviorX, + overscrollY: layout.overscrollBehaviorY +}); +var list = { + listStyleType: true, + listStylePosition: true, + listStylePos: t.prop("listStylePosition"), + listStyleImage: true, + listStyleImg: t.prop("listStyleImage") +}; +function get(obj, path, fallback, index) { + const key = typeof path === "string" ? path.split(".") : [path]; + for (index = 0; index < key.length; index += 1) { + if (!obj) + break; + obj = obj[key[index]]; + } + return obj === void 0 ? fallback : obj; +} +var memoize2 = (fn) => { + const cache = /* @__PURE__ */ new WeakMap(); + const memoizedFn = (obj, path, fallback, index) => { + if (typeof obj === "undefined") { + return fn(obj, path, fallback); + } + if (!cache.has(obj)) { + cache.set(obj, /* @__PURE__ */ new Map()); + } + const map = cache.get(obj); + if (map.has(path)) { + return map.get(path); + } + const value = fn(obj, path, fallback, index); + map.set(path, value); + return value; + }; + return memoizedFn; +}; +var memoizedGet = memoize2(get); +var srOnly = { + border: "0px", + clip: "rect(0, 0, 0, 0)", + width: "1px", + height: "1px", + margin: "-1px", + padding: "0px", + overflow: "hidden", + whiteSpace: "nowrap", + position: "absolute" +}; +var srFocusable = { + position: "static", + width: "auto", + height: "auto", + clip: "auto", + padding: "0", + margin: "0", + overflow: "visible", + whiteSpace: "normal" +}; +var getWithPriority = (theme2, key, styles2) => { + const result = {}; + const obj = memoizedGet(theme2, key, {}); + for (const prop in obj) { + const isInStyles = prop in styles2 && styles2[prop] != null; + if (!isInStyles) + result[prop] = obj[prop]; + } + return result; +}; +var others = { + srOnly: { + transform(value) { + if (value === true) + return srOnly; + if (value === "focusable") + return srFocusable; + return {}; + } + }, + layerStyle: { + processResult: true, + transform: (value, theme2, styles2) => getWithPriority(theme2, `layerStyles.${value}`, styles2) + }, + textStyle: { + processResult: true, + transform: (value, theme2, styles2) => getWithPriority(theme2, `textStyles.${value}`, styles2) + }, + apply: { + processResult: true, + transform: (value, theme2, styles2) => getWithPriority(theme2, value, styles2) + } +}; +var position2 = { + position: true, + pos: t.prop("position"), + zIndex: t.prop("zIndex", "zIndices"), + inset: t.spaceT("inset"), + insetX: t.spaceT(["left", "right"]), + insetInline: t.spaceT("insetInline"), + insetY: t.spaceT(["top", "bottom"]), + insetBlock: t.spaceT("insetBlock"), + top: t.spaceT("top"), + insetBlockStart: t.spaceT("insetBlockStart"), + bottom: t.spaceT("bottom"), + insetBlockEnd: t.spaceT("insetBlockEnd"), + left: t.spaceT("left"), + insetInlineStart: t.logical({ + scale: "space", + property: { ltr: "left", rtl: "right" } + }), + right: t.spaceT("right"), + insetInlineEnd: t.logical({ + scale: "space", + property: { ltr: "right", rtl: "left" } + }) +}; +Object.assign(position2, { + insetStart: position2.insetInlineStart, + insetEnd: position2.insetInlineEnd +}); +var ring = { + ring: { transform: transformFunctions.ring }, + ringColor: t.colors("--chakra-ring-color"), + ringOffset: t.prop("--chakra-ring-offset-width"), + ringOffsetColor: t.colors("--chakra-ring-offset-color"), + ringInset: t.prop("--chakra-ring-inset") +}; +var space = { + margin: t.spaceT("margin"), + marginTop: t.spaceT("marginTop"), + marginBlockStart: t.spaceT("marginBlockStart"), + marginRight: t.spaceT("marginRight"), + marginInlineEnd: t.spaceT("marginInlineEnd"), + marginBottom: t.spaceT("marginBottom"), + marginBlockEnd: t.spaceT("marginBlockEnd"), + marginLeft: t.spaceT("marginLeft"), + marginInlineStart: t.spaceT("marginInlineStart"), + marginX: t.spaceT(["marginInlineStart", "marginInlineEnd"]), + marginInline: t.spaceT("marginInline"), + marginY: t.spaceT(["marginTop", "marginBottom"]), + marginBlock: t.spaceT("marginBlock"), + padding: t.space("padding"), + paddingTop: t.space("paddingTop"), + paddingBlockStart: t.space("paddingBlockStart"), + paddingRight: t.space("paddingRight"), + paddingBottom: t.space("paddingBottom"), + paddingBlockEnd: t.space("paddingBlockEnd"), + paddingLeft: t.space("paddingLeft"), + paddingInlineStart: t.space("paddingInlineStart"), + paddingInlineEnd: t.space("paddingInlineEnd"), + paddingX: t.space(["paddingInlineStart", "paddingInlineEnd"]), + paddingInline: t.space("paddingInline"), + paddingY: t.space(["paddingTop", "paddingBottom"]), + paddingBlock: t.space("paddingBlock") +}; +Object.assign(space, { + m: space.margin, + mt: space.marginTop, + mr: space.marginRight, + me: space.marginInlineEnd, + marginEnd: space.marginInlineEnd, + mb: space.marginBottom, + ml: space.marginLeft, + ms: space.marginInlineStart, + marginStart: space.marginInlineStart, + mx: space.marginX, + my: space.marginY, + p: space.padding, + pt: space.paddingTop, + py: space.paddingY, + px: space.paddingX, + pb: space.paddingBottom, + pl: space.paddingLeft, + ps: space.paddingInlineStart, + paddingStart: space.paddingInlineStart, + pr: space.paddingRight, + pe: space.paddingInlineEnd, + paddingEnd: space.paddingInlineEnd +}); +var textDecoration = { + textDecorationColor: t.colors("textDecorationColor"), + textDecoration: true, + textDecor: { property: "textDecoration" }, + textDecorationLine: true, + textDecorationStyle: true, + textDecorationThickness: true, + textUnderlineOffset: true, + textShadow: t.shadows("textShadow") +}; +var transform = { + clipPath: true, + transform: t.propT("transform", transformFunctions.transform), + transformOrigin: true, + translateX: t.spaceT("--chakra-translate-x"), + translateY: t.spaceT("--chakra-translate-y"), + skewX: t.degreeT("--chakra-skew-x"), + skewY: t.degreeT("--chakra-skew-y"), + scaleX: t.prop("--chakra-scale-x"), + scaleY: t.prop("--chakra-scale-y"), + scale: t.prop(["--chakra-scale-x", "--chakra-scale-y"]), + rotate: t.degreeT("--chakra-rotate") +}; +var transition = { + transition: true, + transitionDelay: true, + animation: true, + willChange: true, + transitionDuration: t.prop("transitionDuration", "transition.duration"), + transitionProperty: t.prop("transitionProperty", "transition.property"), + transitionTimingFunction: t.prop( + "transitionTimingFunction", + "transition.easing" + ) +}; +var typography = { + fontFamily: t.prop("fontFamily", "fonts"), + fontSize: t.prop("fontSize", "fontSizes", transformFunctions.px), + fontWeight: t.prop("fontWeight", "fontWeights"), + lineHeight: t.prop("lineHeight", "lineHeights"), + letterSpacing: t.prop("letterSpacing", "letterSpacings"), + textAlign: true, + fontStyle: true, + textIndent: true, + wordBreak: true, + overflowWrap: true, + textOverflow: true, + textTransform: true, + whiteSpace: true, + isTruncated: { + transform(value) { + if (value === true) { + return { + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap" + }; + } + } + }, + noOfLines: { + static: { + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + WebkitBoxOrient: "vertical", + //@ts-ignore + WebkitLineClamp: "var(--chakra-line-clamp)" + }, + property: "--chakra-line-clamp" + } +}; +var scroll = { + scrollBehavior: true, + scrollSnapAlign: true, + scrollSnapStop: true, + scrollSnapType: true, + // scroll margin + scrollMargin: t.spaceT("scrollMargin"), + scrollMarginTop: t.spaceT("scrollMarginTop"), + scrollMarginBottom: t.spaceT("scrollMarginBottom"), + scrollMarginLeft: t.spaceT("scrollMarginLeft"), + scrollMarginRight: t.spaceT("scrollMarginRight"), + scrollMarginX: t.spaceT(["scrollMarginLeft", "scrollMarginRight"]), + scrollMarginY: t.spaceT(["scrollMarginTop", "scrollMarginBottom"]), + // scroll padding + scrollPadding: t.spaceT("scrollPadding"), + scrollPaddingTop: t.spaceT("scrollPaddingTop"), + scrollPaddingBottom: t.spaceT("scrollPaddingBottom"), + scrollPaddingLeft: t.spaceT("scrollPaddingLeft"), + scrollPaddingRight: t.spaceT("scrollPaddingRight"), + scrollPaddingX: t.spaceT(["scrollPaddingLeft", "scrollPaddingRight"]), + scrollPaddingY: t.spaceT(["scrollPaddingTop", "scrollPaddingBottom"]) +}; +function resolveReference(operand) { + if (isObject(operand) && operand.reference) { + return operand.reference; + } + return String(operand); +} +var toExpression = (operator, ...operands) => operands.map(resolveReference).join(` ${operator} `).replace(/calc/g, ""); +var add = (...operands) => `calc(${toExpression("+", ...operands)})`; +var subtract = (...operands) => `calc(${toExpression("-", ...operands)})`; +var multiply = (...operands) => `calc(${toExpression("*", ...operands)})`; +var divide = (...operands) => `calc(${toExpression("/", ...operands)})`; +var negate = (x) => { + const value = resolveReference(x); + if (value != null && !Number.isNaN(parseFloat(value))) { + return String(value).startsWith("-") ? String(value).slice(1) : `-${value}`; + } + return multiply(value, -1); +}; +var calc = Object.assign( + (x) => ({ + add: (...operands) => calc(add(x, ...operands)), + subtract: (...operands) => calc(subtract(x, ...operands)), + multiply: (...operands) => calc(multiply(x, ...operands)), + divide: (...operands) => calc(divide(x, ...operands)), + negate: () => calc(negate(x)), + toString: () => x.toString() + }), + { + add, + subtract, + multiply, + divide, + negate + } +); +function replaceWhiteSpace(value, replaceValue = "-") { + return value.replace(/\s+/g, replaceValue); +} +function escape(value) { + const valueStr = replaceWhiteSpace(value.toString()); + return escapeSymbol(escapeDot(valueStr)); +} +function escapeDot(value) { + if (value.includes("\\.")) + return value; + const isDecimal2 = !Number.isInteger(parseFloat(value.toString())); + return isDecimal2 ? value.replace(".", `\\.`) : value; +} +function escapeSymbol(value) { + return value.replace(/[!-,/:-@[-^`{-~]/g, "\\$&"); +} +function addPrefix(value, prefix4 = "") { + return [prefix4, value].filter(Boolean).join("-"); +} +function toVarReference(name, fallback) { + return `var(${name}${fallback ? `, ${fallback}` : ""})`; +} +function toVarDefinition(value, prefix4 = "") { + return escape(`--${addPrefix(value, prefix4)}`); +} +function cssVar(name, fallback, cssVarPrefix) { + const cssVariable = toVarDefinition(name, cssVarPrefix); + return { + variable: cssVariable, + reference: toVarReference(cssVariable, fallback) + }; +} +function defineCssVars(scope, keys2) { + const vars2 = {}; + for (const key of keys2) { + if (Array.isArray(key)) { + const [name, fallback] = key; + vars2[name] = cssVar(`${scope}-${name}`, fallback); + continue; + } + vars2[key] = cssVar(`${scope}-${key}`); + } + return vars2; +} +function getLastItem(array) { + const length2 = array == null ? 0 : array.length; + return length2 ? array[length2 - 1] : void 0; +} +function analyzeCSSValue2(value) { + const num = parseFloat(value.toString()); + const unit = value.toString().replace(String(num), ""); + return { unitless: !unit, value: num, unit }; +} +function px(value) { + if (value == null) + return value; + const { unitless } = analyzeCSSValue2(value); + return unitless || typeof value === "number" ? `${value}px` : value; +} +var sortByBreakpointValue = (a, b) => parseInt(a[1], 10) > parseInt(b[1], 10) ? 1 : -1; +var sortBps = (breakpoints4) => Object.fromEntries(Object.entries(breakpoints4).sort(sortByBreakpointValue)); +function normalize2(breakpoints4) { + const sorted = sortBps(breakpoints4); + return Object.assign(Object.values(sorted), sorted); +} +function keys(breakpoints4) { + const value = Object.keys(sortBps(breakpoints4)); + return new Set(value); +} +function subtract2(value) { + var _a8; + if (!value) + return value; + value = (_a8 = px(value)) != null ? _a8 : value; + const OFFSET = -0.02; + return typeof value === "number" ? `${value + OFFSET}` : value.replace(/(\d+\.?\d*)/u, (m2) => `${parseFloat(m2) + OFFSET}`); +} +function toMediaQueryString(min, max) { + const query = ["@media screen"]; + if (min) + query.push("and", `(min-width: ${px(min)})`); + if (max) + query.push("and", `(max-width: ${px(max)})`); + return query.join(" "); +} +function analyzeBreakpoints(breakpoints4) { + var _a8; + if (!breakpoints4) + return null; + breakpoints4.base = (_a8 = breakpoints4.base) != null ? _a8 : "0px"; + const normalized = normalize2(breakpoints4); + const queries = Object.entries(breakpoints4).sort(sortByBreakpointValue).map(([breakpoint, minW], index, entry) => { + var _a24; + let [, maxW] = (_a24 = entry[index + 1]) != null ? _a24 : []; + maxW = parseFloat(maxW) > 0 ? subtract2(maxW) : void 0; + return { + _minW: subtract2(minW), + breakpoint, + minW, + maxW, + maxWQuery: toMediaQueryString(null, maxW), + minWQuery: toMediaQueryString(minW), + minMaxQuery: toMediaQueryString(minW, maxW) + }; + }); + const _keys = keys(breakpoints4); + const _keysArr = Array.from(_keys.values()); + return { + keys: _keys, + normalized, + isResponsive(test2) { + const keys2 = Object.keys(test2); + return keys2.length > 0 && keys2.every((key) => _keys.has(key)); + }, + asObject: sortBps(breakpoints4), + asArray: normalize2(breakpoints4), + details: queries, + get(key) { + return queries.find((q) => q.breakpoint === key); + }, + media: [ + null, + ...normalized.map((minW) => toMediaQueryString(minW)).slice(1) + ], + /** + * Converts the object responsive syntax to array syntax + * + * @example + * toArrayValue({ base: 1, sm: 2, md: 3 }) // => [1, 2, 3] + */ + toArrayValue(test2) { + if (!isObject(test2)) { + throw new Error("toArrayValue: value must be an object"); + } + const result = _keysArr.map((bp) => { + var _a24; + return (_a24 = test2[bp]) != null ? _a24 : null; + }); + while (getLastItem(result) === null) { + result.pop(); + } + return result; + }, + /** + * Converts the array responsive syntax to object syntax + * + * @example + * toObjectValue([1, 2, 3]) // => { base: 1, sm: 2, md: 3 } + */ + toObjectValue(test2) { + if (!Array.isArray(test2)) { + throw new Error("toObjectValue: value must be an array"); + } + return test2.reduce((acc, value, index) => { + const key = _keysArr[index]; + if (key != null && value != null) + acc[key] = value; + return acc; + }, {}); + } + }; +} +var state = { + hover: (str, post) => `${str}:hover ${post}, ${str}[data-hover] ${post}`, + focus: (str, post) => `${str}:focus ${post}, ${str}[data-focus] ${post}`, + focusVisible: (str, post) => `${str}:focus-visible ${post}`, + focusWithin: (str, post) => `${str}:focus-within ${post}`, + active: (str, post) => `${str}:active ${post}, ${str}[data-active] ${post}`, + disabled: (str, post) => `${str}:disabled ${post}, ${str}[data-disabled] ${post}`, + invalid: (str, post) => `${str}:invalid ${post}, ${str}[data-invalid] ${post}`, + checked: (str, post) => `${str}:checked ${post}, ${str}[data-checked] ${post}`, + indeterminate: (str, post) => `${str}:indeterminate ${post}, ${str}[aria-checked=mixed] ${post}, ${str}[data-indeterminate] ${post}`, + readOnly: (str, post) => `${str}:read-only ${post}, ${str}[readonly] ${post}, ${str}[data-read-only] ${post}`, + expanded: (str, post) => `${str}:read-only ${post}, ${str}[aria-expanded=true] ${post}, ${str}[data-expanded] ${post}`, + placeholderShown: (str, post) => `${str}:placeholder-shown ${post}` +}; +var toGroup = (fn) => merge2((v) => fn(v, "&"), "[role=group]", "[data-group]", ".group"); +var toPeer = (fn) => merge2((v) => fn(v, "~ &"), "[data-peer]", ".peer"); +var merge2 = (fn, ...selectors) => selectors.map(fn).join(", "); +var pseudoSelectors = { + /** + * Styles for CSS selector `&:hover` + */ + _hover: "&:hover, &[data-hover]", + /** + * Styles for CSS Selector `&:active` + */ + _active: "&:active, &[data-active]", + /** + * Styles for CSS selector `&:focus` + * + */ + _focus: "&:focus, &[data-focus]", + /** + * Styles for the highlighted state. + */ + _highlighted: "&[data-highlighted]", + /** + * Styles to apply when a child of this element has received focus + * - CSS Selector `&:focus-within` + */ + _focusWithin: "&:focus-within", + /** + * Styles to apply when this element has received focus via tabbing + * - CSS Selector `&:focus-visible` + */ + _focusVisible: "&:focus-visible, &[data-focus-visible]", + /** + * Styles to apply when this element is disabled. The passed styles are applied to these CSS selectors: + * - `&[aria-disabled=true]` + * - `&:disabled` + * - `&[data-disabled]` + * - `&[disabled]` + */ + _disabled: "&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]", + /** + * Styles for CSS Selector `&:readonly` + */ + _readOnly: "&[aria-readonly=true], &[readonly], &[data-readonly]", + /** + * Styles for CSS selector `&::before` + * + * NOTE:When using this, ensure the `content` is wrapped in a backtick. + * @example + * ```jsx + * + * ``` + */ + _before: "&::before", + /** + * Styles for CSS selector `&::after` + * + * NOTE:When using this, ensure the `content` is wrapped in a backtick. + * @example + * ```jsx + * + * ``` + */ + _after: "&::after", + /** + * Styles for CSS selector `&:empty` + */ + _empty: "&:empty", + /** + * Styles to apply when the ARIA attribute `aria-expanded` is `true` + * - CSS selector `&[aria-expanded=true]` + */ + _expanded: "&[aria-expanded=true], &[data-expanded]", + /** + * Styles to apply when the ARIA attribute `aria-checked` is `true` + * - CSS selector `&[aria-checked=true]` + */ + _checked: "&[aria-checked=true], &[data-checked]", + /** + * Styles to apply when the ARIA attribute `aria-grabbed` is `true` + * - CSS selector `&[aria-grabbed=true]` + */ + _grabbed: "&[aria-grabbed=true], &[data-grabbed]", + /** + * Styles for CSS Selector `&[aria-pressed=true]` + * Typically used to style the current "pressed" state of toggle buttons + */ + _pressed: "&[aria-pressed=true], &[data-pressed]", + /** + * Styles to apply when the ARIA attribute `aria-invalid` is `true` + * - CSS selector `&[aria-invalid=true]` + */ + _invalid: "&[aria-invalid=true], &[data-invalid]", + /** + * Styles for the valid state + * - CSS selector `&[data-valid], &[data-state=valid]` + */ + _valid: "&[data-valid], &[data-state=valid]", + /** + * Styles for CSS Selector `&[aria-busy=true]` or `&[data-loading=true]`. + * Useful for styling loading states + */ + _loading: "&[data-loading], &[aria-busy=true]", + /** + * Styles to apply when the ARIA attribute `aria-selected` is `true` + * + * - CSS selector `&[aria-selected=true]` + */ + _selected: "&[aria-selected=true], &[data-selected]", + /** + * Styles for CSS Selector `[hidden=true]` + */ + _hidden: "&[hidden], &[data-hidden]", + /** + * Styles for CSS Selector `&:-webkit-autofill` + */ + _autofill: "&:-webkit-autofill", + /** + * Styles for CSS Selector `&:nth-child(even)` + */ + _even: "&:nth-of-type(even)", + /** + * Styles for CSS Selector `&:nth-child(odd)` + */ + _odd: "&:nth-of-type(odd)", + /** + * Styles for CSS Selector `&:first-of-type` + */ + _first: "&:first-of-type", + /** + * Styles for CSS selector `&::first-letter` + * + * NOTE: This selector is only applied for block-level elements and not preceded by an image or table. + * @example + * ```jsx + * Once upon a time + * ``` + */ + _firstLetter: "&::first-letter", + /** + * Styles for CSS Selector `&:last-of-type` + */ + _last: "&:last-of-type", + /** + * Styles for CSS Selector `&:not(:first-of-type)` + */ + _notFirst: "&:not(:first-of-type)", + /** + * Styles for CSS Selector `&:not(:last-of-type)` + */ + _notLast: "&:not(:last-of-type)", + /** + * Styles for CSS Selector `&:visited` + */ + _visited: "&:visited", + /** + * Used to style the active link in a navigation + * Styles for CSS Selector `&[aria-current=page]` + */ + _activeLink: "&[aria-current=page]", + /** + * Used to style the current step within a process + * Styles for CSS Selector `&[aria-current=step]` + */ + _activeStep: "&[aria-current=step]", + /** + * Styles to apply when the ARIA attribute `aria-checked` is `mixed` + * - CSS selector `&[aria-checked=mixed]` + */ + _indeterminate: "&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]", + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is hovered + */ + _groupHover: toGroup(state.hover), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is hovered + */ + _peerHover: toPeer(state.hover), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is focused + */ + _groupFocus: toGroup(state.focus), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is focused + */ + _peerFocus: toPeer(state.focus), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` has visible focus + */ + _groupFocusVisible: toGroup(state.focusVisible), + /** + * Styles to apply when a sibling element with `.peer`or `data-peer` has visible focus + */ + _peerFocusVisible: toPeer(state.focusVisible), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is active + */ + _groupActive: toGroup(state.active), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is active + */ + _peerActive: toPeer(state.active), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is disabled + */ + _groupDisabled: toGroup(state.disabled), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is disabled + */ + _peerDisabled: toPeer(state.disabled), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is invalid + */ + _groupInvalid: toGroup(state.invalid), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is invalid + */ + _peerInvalid: toPeer(state.invalid), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is checked + */ + _groupChecked: toGroup(state.checked), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` is checked + */ + _peerChecked: toPeer(state.checked), + /** + * Styles to apply when a parent element with `.group`, `data-group` or `role=group` has focus within + */ + _groupFocusWithin: toGroup(state.focusWithin), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` has focus within + */ + _peerFocusWithin: toPeer(state.focusWithin), + /** + * Styles to apply when a sibling element with `.peer` or `data-peer` has placeholder shown + */ + _peerPlaceholderShown: toPeer(state.placeholderShown), + /** + * Styles for CSS Selector `&::placeholder`. + */ + _placeholder: "&::placeholder", + /** + * Styles for CSS Selector `&:placeholder-shown`. + */ + _placeholderShown: "&:placeholder-shown", + /** + * Styles for CSS Selector `&:fullscreen`. + */ + _fullScreen: "&:fullscreen", + /** + * Styles for CSS Selector `&::selection` + */ + _selection: "&::selection", + /** + * Styles for CSS Selector `[dir=rtl] &` + * It is applied when a parent element or this element has `dir="rtl"` + */ + _rtl: "[dir=rtl] &, &[dir=rtl]", + /** + * Styles for CSS Selector `[dir=ltr] &` + * It is applied when a parent element or this element has `dir="ltr"` + */ + _ltr: "[dir=ltr] &, &[dir=ltr]", + /** + * Styles for CSS Selector `@media (prefers-color-scheme: dark)` + * It is used when the user has requested the system use a light or dark color theme. + */ + _mediaDark: "@media (prefers-color-scheme: dark)", + /** + * Styles for CSS Selector `@media (prefers-reduced-motion: reduce)` + * It is used when the user has requested the system to reduce the amount of animations. + */ + _mediaReduceMotion: "@media (prefers-reduced-motion: reduce)", + /** + * Styles for when `data-theme` is applied to any parent of + * this component or element. + */ + _dark: ".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]", + /** + * Styles for when `data-theme` is applied to any parent of + * this component or element. + */ + _light: ".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]", + /** + * Styles for the CSS Selector `&[data-orientation=horizontal]` + */ + _horizontal: "&[data-orientation=horizontal]", + /** + * Styles for the CSS Selector `&[data-orientation=vertical]` + */ + _vertical: "&[data-orientation=vertical]" +}; +var pseudoPropNames = Object.keys( + pseudoSelectors +); +function tokenToCssVar(token2, prefix4) { + return cssVar(String(token2).replace(/\./g, "-"), void 0, prefix4); +} +function createThemeVars(flatTokens, options) { + let cssVars2 = {}; + const cssMap = {}; + for (const [token2, tokenValue] of Object.entries(flatTokens)) { + const { isSemantic, value } = tokenValue; + const { variable, reference } = tokenToCssVar(token2, options == null ? void 0 : options.cssVarPrefix); + if (!isSemantic) { + if (token2.startsWith("space")) { + const keys2 = token2.split("."); + const [firstKey, ...referenceKeys] = keys2; + const negativeLookupKey = `${firstKey}.-${referenceKeys.join(".")}`; + const negativeValue = calc.negate(value); + const negatedReference = calc.negate(reference); + cssMap[negativeLookupKey] = { + value: negativeValue, + var: variable, + varRef: negatedReference + }; + } + cssVars2[variable] = value; + cssMap[token2] = { + value, + var: variable, + varRef: reference + }; + continue; + } + const lookupToken = (maybeToken) => { + const scale3 = String(token2).split(".")[0]; + const withScale = [scale3, maybeToken].join("."); + const resolvedTokenValue = flatTokens[withScale]; + if (!resolvedTokenValue) + return maybeToken; + const { reference: reference2 } = tokenToCssVar(withScale, options == null ? void 0 : options.cssVarPrefix); + return reference2; + }; + const normalizedValue = isObject(value) ? value : { default: value }; + cssVars2 = (0, import_lodash.default)( + cssVars2, + Object.entries(normalizedValue).reduce( + (acc, [conditionAlias, conditionValue]) => { + var _a8, _b5; + if (!conditionValue) + return acc; + const tokenReference = lookupToken(`${conditionValue}`); + if (conditionAlias === "default") { + acc[variable] = tokenReference; + return acc; + } + const conditionSelector = (_b5 = (_a8 = pseudoSelectors) == null ? void 0 : _a8[conditionAlias]) != null ? _b5 : conditionAlias; + acc[conditionSelector] = { [variable]: tokenReference }; + return acc; + }, + {} + ) + ); + cssMap[token2] = { + value: reference, + var: variable, + varRef: reference + }; + } + return { + cssVars: cssVars2, + cssMap + }; +} +function omit(object2, keysToOmit = []) { + const clone = Object.assign({}, object2); + for (const key of keysToOmit) { + if (key in clone) { + delete clone[key]; + } + } + return clone; +} +function pick(object2, keysToPick) { + const result = {}; + for (const key of keysToPick) { + if (key in object2) { + result[key] = object2[key]; + } + } + return result; +} +function isObject5(value) { + return typeof value === "object" && value != null && !Array.isArray(value); +} +function walkObject(target, predicate, options = {}) { + const { stop, getKey } = options; + function inner(value, path = []) { + var _a8; + if (isObject5(value) || Array.isArray(value)) { + const result = {}; + for (const [prop, child] of Object.entries(value)) { + const key = (_a8 = getKey == null ? void 0 : getKey(prop)) != null ? _a8 : prop; + const childPath = [...path, key]; + if (stop == null ? void 0 : stop(value, childPath)) { + return predicate(value, path); + } + result[key] = inner(child, childPath); + } + return result; + } + return predicate(value, path); + } + return inner(target); +} +var tokens = [ + "colors", + "borders", + "borderWidths", + "borderStyles", + "fonts", + "fontSizes", + "fontWeights", + "gradients", + "letterSpacings", + "lineHeights", + "radii", + "space", + "shadows", + "sizes", + "zIndices", + "transition", + "blur", + "breakpoints" +]; +function extractTokens(theme2) { + const _tokens = tokens; + return pick(theme2, _tokens); +} +function extractSemanticTokens(theme2) { + return theme2.semanticTokens; +} +function omitVars(rawTheme) { + const { __cssMap, __cssVars, __breakpoints, ...cleanTheme } = rawTheme; + return cleanTheme; +} +var isSemanticCondition = (key) => pseudoPropNames.includes(key) || "default" === key; +function flattenTokens({ + tokens: tokens2, + semanticTokens: semanticTokens2 +}) { + const result = {}; + walkObject(tokens2, (value, path) => { + if (value == null) + return; + result[path.join(".")] = { isSemantic: false, value }; + }); + walkObject( + semanticTokens2, + (value, path) => { + if (value == null) + return; + result[path.join(".")] = { isSemantic: true, value }; + }, + { + stop: (value) => Object.keys(value).every(isSemanticCondition) + } + ); + return result; +} +function toCSSVar(rawTheme) { + var _a8; + const theme2 = omitVars(rawTheme); + const tokens2 = extractTokens(theme2); + const semanticTokens2 = extractSemanticTokens(theme2); + const flatTokens = flattenTokens({ tokens: tokens2, semanticTokens: semanticTokens2 }); + const cssVarPrefix = (_a8 = theme2.config) == null ? void 0 : _a8.cssVarPrefix; + const { + /** + * This is more like a dictionary of tokens users will type `green.500`, + * and their equivalent css variable. + */ + cssMap, + /** + * The extracted css variables will be stored here, and used in + * the emotion's component to attach variables to `:root` + */ + cssVars: cssVars2 + } = createThemeVars(flatTokens, { cssVarPrefix }); + const defaultCssVars = { + "--chakra-ring-inset": "var(--chakra-empty,/*!*/ /*!*/)", + "--chakra-ring-offset-width": "0px", + "--chakra-ring-offset-color": "#fff", + "--chakra-ring-color": "rgba(66, 153, 225, 0.6)", + "--chakra-ring-offset-shadow": "0 0 #0000", + "--chakra-ring-shadow": "0 0 #0000", + "--chakra-space-x-reverse": "0", + "--chakra-space-y-reverse": "0" + }; + Object.assign(theme2, { + __cssVars: { ...defaultCssVars, ...cssVars2 }, + __cssMap: cssMap, + __breakpoints: analyzeBreakpoints(theme2.breakpoints) + }); + return theme2; +} +var systemProps = (0, import_lodash3.default)( + {}, + background, + border, + color, + flexbox, + layout, + filter, + ring, + interactivity, + grid, + others, + position2, + effect, + space, + scroll, + typography, + textDecoration, + transform, + list, + transition +); +var layoutSystem = Object.assign({}, space, layout, flexbox, grid, position2); +var layoutPropNames = Object.keys( + layoutSystem +); +var propNames = [...Object.keys(systemProps), ...pseudoPropNames]; +var styleProps = { ...systemProps, ...pseudoSelectors }; +var isStyleProp = (prop) => prop in styleProps; +var expandResponsive = (styles2) => (theme2) => { + if (!theme2.__breakpoints) + return styles2; + const { isResponsive, toArrayValue, media: medias } = theme2.__breakpoints; + const computedStyles = {}; + for (const key in styles2) { + let value = runIfFn(styles2[key], theme2); + if (value == null) + continue; + value = isObject(value) && isResponsive(value) ? toArrayValue(value) : value; + if (!Array.isArray(value)) { + computedStyles[key] = value; + continue; + } + const queries = value.slice(0, medias.length).length; + for (let index = 0; index < queries; index += 1) { + const media = medias == null ? void 0 : medias[index]; + if (!media) { + computedStyles[key] = value[index]; + continue; + } + computedStyles[media] = computedStyles[media] || {}; + if (value[index] == null) { + continue; + } + computedStyles[media][key] = value[index]; + } + } + return computedStyles; +}; +function splitByComma(value) { + const chunks = []; + let chunk2 = ""; + let inParens = false; + for (let i = 0; i < value.length; i++) { + const char2 = value[i]; + if (char2 === "(") { + inParens = true; + chunk2 += char2; + } else if (char2 === ")") { + inParens = false; + chunk2 += char2; + } else if (char2 === "," && !inParens) { + chunks.push(chunk2); + chunk2 = ""; + } else { + chunk2 += char2; + } + } + chunk2 = chunk2.trim(); + if (chunk2) { + chunks.push(chunk2); + } + return chunks; +} +function isCssVar2(value) { + return /^var\(--.+\)$/.test(value); +} +var isCSSVariableTokenValue = (key, value) => key.startsWith("--") && typeof value === "string" && !isCssVar2(value); +var resolveTokenValue = (theme2, value) => { + var _a8, _b5; + if (value == null) + return value; + const getVar = (val) => { + var _a24, _b22; + return (_b22 = (_a24 = theme2.__cssMap) == null ? void 0 : _a24[val]) == null ? void 0 : _b22.varRef; + }; + const getValue2 = (val) => { + var _a24; + return (_a24 = getVar(val)) != null ? _a24 : val; + }; + const [tokenValue, fallbackValue] = splitByComma(value); + value = (_b5 = (_a8 = getVar(tokenValue)) != null ? _a8 : getValue2(fallbackValue)) != null ? _b5 : getValue2(value); + return value; +}; +function getCss(options) { + const { configs = {}, pseudos = {}, theme: theme2 } = options; + const css22 = (stylesOrFn, nested = false) => { + var _a8, _b5, _c3; + const _styles = runIfFn(stylesOrFn, theme2); + const styles2 = expandResponsive(_styles)(theme2); + let computedStyles = {}; + for (let key in styles2) { + const valueOrFn = styles2[key]; + let value = runIfFn(valueOrFn, theme2); + if (key in pseudos) { + key = pseudos[key]; + } + if (isCSSVariableTokenValue(key, value)) { + value = resolveTokenValue(theme2, value); + } + let config2 = configs[key]; + if (config2 === true) { + config2 = { property: key }; + } + if (isObject(value)) { + computedStyles[key] = (_a8 = computedStyles[key]) != null ? _a8 : {}; + computedStyles[key] = (0, import_lodash2.default)( + {}, + computedStyles[key], + css22(value, true) + ); + continue; + } + let rawValue = (_c3 = (_b5 = config2 == null ? void 0 : config2.transform) == null ? void 0 : _b5.call(config2, value, theme2, _styles)) != null ? _c3 : value; + rawValue = (config2 == null ? void 0 : config2.processResult) ? css22(rawValue, true) : rawValue; + const configProperty = runIfFn(config2 == null ? void 0 : config2.property, theme2); + if (!nested && (config2 == null ? void 0 : config2.static)) { + const staticStyles = runIfFn(config2.static, theme2); + computedStyles = (0, import_lodash2.default)({}, computedStyles, staticStyles); + } + if (configProperty && Array.isArray(configProperty)) { + for (const property of configProperty) { + computedStyles[property] = rawValue; + } + continue; + } + if (configProperty) { + if (configProperty === "&" && isObject(rawValue)) { + computedStyles = (0, import_lodash2.default)({}, computedStyles, rawValue); + } else { + computedStyles[configProperty] = rawValue; + } + continue; + } + if (isObject(rawValue)) { + computedStyles = (0, import_lodash2.default)({}, computedStyles, rawValue); + continue; + } + computedStyles[key] = rawValue; + } + return computedStyles; + }; + return css22; +} +var css3 = (styles2) => (theme2) => { + const cssFn = getCss({ + theme: theme2, + pseudos: pseudoSelectors, + configs: systemProps + }); + return cssFn(styles2); +}; +function defineStyle(styles2) { + return styles2; +} +function defineStyleConfig(config2) { + return config2; +} +function createMultiStyleConfigHelpers(parts) { + return { + definePartsStyle(config2) { + return config2; + }, + defineMultiStyleConfig(config2) { + return { parts, ...config2 }; + } + }; +} +function normalize22(value, toArray3) { + if (Array.isArray(value)) + return value; + if (isObject(value)) + return toArray3(value); + if (value != null) + return [value]; +} +function getNextIndex(values, i) { + for (let j = i + 1; j < values.length; j++) { + if (values[j] != null) + return j; + } + return -1; +} +function createResolver(theme2) { + const breakpointUtil = theme2.__breakpoints; + return function resolver(config2, prop, value, props) { + var _a8, _b5; + if (!breakpointUtil) + return; + const result = {}; + const normalized = normalize22(value, breakpointUtil.toArrayValue); + if (!normalized) + return result; + const len = normalized.length; + const isSingle = len === 1; + const isMultipart = !!config2.parts; + for (let i = 0; i < len; i++) { + const key = breakpointUtil.details[i]; + const nextKey = breakpointUtil.details[getNextIndex(normalized, i)]; + const query = toMediaQueryString(key.minW, nextKey == null ? void 0 : nextKey._minW); + const styles2 = runIfFn((_a8 = config2[prop]) == null ? void 0 : _a8[normalized[i]], props); + if (!styles2) + continue; + if (isMultipart) { + (_b5 = config2.parts) == null ? void 0 : _b5.forEach((part) => { + (0, import_lodash4.default)(result, { + [part]: isSingle ? styles2[part] : { [query]: styles2[part] } + }); + }); + continue; + } + if (!isMultipart) { + if (isSingle) + (0, import_lodash4.default)(result, styles2); + else + result[query] = styles2; + continue; + } + result[query] = styles2; + } + return result; + }; +} +function resolveStyleConfig(config2) { + return (props) => { + var _a8; + const { variant, size: size2, theme: theme2 } = props; + const recipe = createResolver(theme2); + return (0, import_lodash4.default)( + {}, + runIfFn((_a8 = config2.baseStyle) != null ? _a8 : {}, props), + recipe(config2, "sizes", size2, props), + recipe(config2, "variants", variant, props) + ); + }; +} +function getCSSVar(theme2, scale3, value) { + var _a8, _b5, _c3; + return (_c3 = (_b5 = (_a8 = theme2.__cssMap) == null ? void 0 : _a8[`${scale3}.${value}`]) == null ? void 0 : _b5.varRef) != null ? _c3 : value; +} +function omitThemingProps(props) { + return omit(props, ["styleConfig", "size", "variant", "colorScheme"]); +} + +// node_modules/@chakra-ui/theme/dist/chunk-P56GPN75.mjs +var requiredChakraThemeKeys = [ + "borders", + "breakpoints", + "colors", + "components", + "config", + "direction", + "fonts", + "fontSizes", + "fontWeights", + "letterSpacings", + "lineHeights", + "radii", + "shadows", + "sizes", + "space", + "styles", + "transition", + "zIndices" +]; +function isChakraTheme(unit) { + if (!isObject(unit)) { + return false; + } + return requiredChakraThemeKeys.every( + (propertyName) => Object.prototype.hasOwnProperty.call(unit, propertyName) + ); +} + +// node_modules/@chakra-ui/theme/dist/chunk-SIH73G3H.mjs +var transitionProperty = { + common: "background-color, border-color, color, fill, stroke, opacity, box-shadow, transform", + colors: "background-color, border-color, color, fill, stroke", + dimensions: "width, height", + position: "left, right, top, bottom", + background: "background-color, background-image, background-position" +}; +var transitionTimingFunction = { + "ease-in": "cubic-bezier(0.4, 0, 1, 1)", + "ease-out": "cubic-bezier(0, 0, 0.2, 1)", + "ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)" +}; +var transitionDuration = { + "ultra-fast": "50ms", + faster: "100ms", + fast: "150ms", + normal: "200ms", + slow: "300ms", + slower: "400ms", + "ultra-slow": "500ms" +}; +var transition2 = { + property: transitionProperty, + easing: transitionTimingFunction, + duration: transitionDuration +}; +var transition_default = transition2; + +// node_modules/@chakra-ui/theme/dist/chunk-45VJLTIL.mjs +var zIndices = { + hide: -1, + auto: "auto", + base: 0, + docked: 10, + dropdown: 1e3, + sticky: 1100, + banner: 1200, + overlay: 1300, + modal: 1400, + popover: 1500, + skipLink: 1600, + toast: 1700, + tooltip: 1800 +}; +var z_index_default = zIndices; + +// node_modules/@chakra-ui/theme/dist/chunk-B75T2J64.mjs +var borders = { + none: 0, + "1px": "1px solid", + "2px": "2px solid", + "4px": "4px solid", + "8px": "8px solid" +}; +var borders_default = borders; + +// node_modules/@chakra-ui/theme/dist/chunk-TXLFBUTF.mjs +var breakpoints = { + base: "0em", + sm: "30em", + md: "48em", + lg: "62em", + xl: "80em", + "2xl": "96em" +}; +var breakpoints_default = breakpoints; + +// node_modules/@chakra-ui/theme/dist/chunk-E47HH2QS.mjs +var colors = { + transparent: "transparent", + current: "currentColor", + black: "#000000", + white: "#FFFFFF", + whiteAlpha: { + 50: "rgba(255, 255, 255, 0.04)", + 100: "rgba(255, 255, 255, 0.06)", + 200: "rgba(255, 255, 255, 0.08)", + 300: "rgba(255, 255, 255, 0.16)", + 400: "rgba(255, 255, 255, 0.24)", + 500: "rgba(255, 255, 255, 0.36)", + 600: "rgba(255, 255, 255, 0.48)", + 700: "rgba(255, 255, 255, 0.64)", + 800: "rgba(255, 255, 255, 0.80)", + 900: "rgba(255, 255, 255, 0.92)" + }, + blackAlpha: { + 50: "rgba(0, 0, 0, 0.04)", + 100: "rgba(0, 0, 0, 0.06)", + 200: "rgba(0, 0, 0, 0.08)", + 300: "rgba(0, 0, 0, 0.16)", + 400: "rgba(0, 0, 0, 0.24)", + 500: "rgba(0, 0, 0, 0.36)", + 600: "rgba(0, 0, 0, 0.48)", + 700: "rgba(0, 0, 0, 0.64)", + 800: "rgba(0, 0, 0, 0.80)", + 900: "rgba(0, 0, 0, 0.92)" + }, + gray: { + 50: "#F7FAFC", + 100: "#EDF2F7", + 200: "#E2E8F0", + 300: "#CBD5E0", + 400: "#A0AEC0", + 500: "#718096", + 600: "#4A5568", + 700: "#2D3748", + 800: "#1A202C", + 900: "#171923" + }, + red: { + 50: "#FFF5F5", + 100: "#FED7D7", + 200: "#FEB2B2", + 300: "#FC8181", + 400: "#F56565", + 500: "#E53E3E", + 600: "#C53030", + 700: "#9B2C2C", + 800: "#822727", + 900: "#63171B" + }, + orange: { + 50: "#FFFAF0", + 100: "#FEEBC8", + 200: "#FBD38D", + 300: "#F6AD55", + 400: "#ED8936", + 500: "#DD6B20", + 600: "#C05621", + 700: "#9C4221", + 800: "#7B341E", + 900: "#652B19" + }, + yellow: { + 50: "#FFFFF0", + 100: "#FEFCBF", + 200: "#FAF089", + 300: "#F6E05E", + 400: "#ECC94B", + 500: "#D69E2E", + 600: "#B7791F", + 700: "#975A16", + 800: "#744210", + 900: "#5F370E" + }, + green: { + 50: "#F0FFF4", + 100: "#C6F6D5", + 200: "#9AE6B4", + 300: "#68D391", + 400: "#48BB78", + 500: "#38A169", + 600: "#2F855A", + 700: "#276749", + 800: "#22543D", + 900: "#1C4532" + }, + teal: { + 50: "#E6FFFA", + 100: "#B2F5EA", + 200: "#81E6D9", + 300: "#4FD1C5", + 400: "#38B2AC", + 500: "#319795", + 600: "#2C7A7B", + 700: "#285E61", + 800: "#234E52", + 900: "#1D4044" + }, + blue: { + 50: "#ebf8ff", + 100: "#bee3f8", + 200: "#90cdf4", + 300: "#63b3ed", + 400: "#4299e1", + 500: "#3182ce", + 600: "#2b6cb0", + 700: "#2c5282", + 800: "#2a4365", + 900: "#1A365D" + }, + cyan: { + 50: "#EDFDFD", + 100: "#C4F1F9", + 200: "#9DECF9", + 300: "#76E4F7", + 400: "#0BC5EA", + 500: "#00B5D8", + 600: "#00A3C4", + 700: "#0987A0", + 800: "#086F83", + 900: "#065666" + }, + purple: { + 50: "#FAF5FF", + 100: "#E9D8FD", + 200: "#D6BCFA", + 300: "#B794F4", + 400: "#9F7AEA", + 500: "#805AD5", + 600: "#6B46C1", + 700: "#553C9A", + 800: "#44337A", + 900: "#322659" + }, + pink: { + 50: "#FFF5F7", + 100: "#FED7E2", + 200: "#FBB6CE", + 300: "#F687B3", + 400: "#ED64A6", + 500: "#D53F8C", + 600: "#B83280", + 700: "#97266D", + 800: "#702459", + 900: "#521B41" + }, + linkedin: { + 50: "#E8F4F9", + 100: "#CFEDFB", + 200: "#9BDAF3", + 300: "#68C7EC", + 400: "#34B3E4", + 500: "#00A0DC", + 600: "#008CC9", + 700: "#0077B5", + 800: "#005E93", + 900: "#004471" + }, + facebook: { + 50: "#E8F4F9", + 100: "#D9DEE9", + 200: "#B7C2DA", + 300: "#6482C0", + 400: "#4267B2", + 500: "#385898", + 600: "#314E89", + 700: "#29487D", + 800: "#223B67", + 900: "#1E355B" + }, + messenger: { + 50: "#D0E6FF", + 100: "#B9DAFF", + 200: "#A2CDFF", + 300: "#7AB8FF", + 400: "#2E90FF", + 500: "#0078FF", + 600: "#0063D1", + 700: "#0052AC", + 800: "#003C7E", + 900: "#002C5C" + }, + whatsapp: { + 50: "#dffeec", + 100: "#b9f5d0", + 200: "#90edb3", + 300: "#65e495", + 400: "#3cdd78", + 500: "#22c35e", + 600: "#179848", + 700: "#0c6c33", + 800: "#01421c", + 900: "#001803" + }, + twitter: { + 50: "#E5F4FD", + 100: "#C8E9FB", + 200: "#A8DCFA", + 300: "#83CDF7", + 400: "#57BBF5", + 500: "#1DA1F2", + 600: "#1A94DA", + 700: "#1681BF", + 800: "#136B9E", + 900: "#0D4D71" + }, + telegram: { + 50: "#E3F2F9", + 100: "#C5E4F3", + 200: "#A2D4EC", + 300: "#7AC1E4", + 400: "#47A9DA", + 500: "#0088CC", + 600: "#007AB8", + 700: "#006BA1", + 800: "#005885", + 900: "#003F5E" + } +}; +var colors_default = colors; + +// node_modules/@chakra-ui/theme/dist/chunk-VIVTPWHP.mjs +var radii = { + none: "0", + sm: "0.125rem", + base: "0.25rem", + md: "0.375rem", + lg: "0.5rem", + xl: "0.75rem", + "2xl": "1rem", + "3xl": "1.5rem", + full: "9999px" +}; +var radius_default = radii; + +// node_modules/@chakra-ui/theme/dist/chunk-IZUFFCXS.mjs +var shadows = { + xs: "0 0 0 1px rgba(0, 0, 0, 0.05)", + sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)", + base: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)", + md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)", + lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", + xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", + "2xl": "0 25px 50px -12px rgba(0, 0, 0, 0.25)", + outline: "0 0 0 3px rgba(66, 153, 225, 0.6)", + inner: "inset 0 2px 4px 0 rgba(0,0,0,0.06)", + none: "none", + "dark-lg": "rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px" +}; +var shadows_default = shadows; + +// node_modules/@chakra-ui/theme/dist/chunk-HQ6WXDYV.mjs +var blur = { + none: 0, + sm: "4px", + base: "8px", + md: "12px", + lg: "16px", + xl: "24px", + "2xl": "40px", + "3xl": "64px" +}; +var blur_default = blur; + +// node_modules/@chakra-ui/theme/dist/chunk-6XA2KDUD.mjs +var typography2 = { + letterSpacings: { + tighter: "-0.05em", + tight: "-0.025em", + normal: "0", + wide: "0.025em", + wider: "0.05em", + widest: "0.1em" + }, + lineHeights: { + normal: "normal", + none: 1, + shorter: 1.25, + short: 1.375, + base: 1.5, + tall: 1.625, + taller: "2", + "3": ".75rem", + "4": "1rem", + "5": "1.25rem", + "6": "1.5rem", + "7": "1.75rem", + "8": "2rem", + "9": "2.25rem", + "10": "2.5rem" + }, + fontWeights: { + hairline: 100, + thin: 200, + light: 300, + normal: 400, + medium: 500, + semibold: 600, + bold: 700, + extrabold: 800, + black: 900 + }, + fonts: { + heading: `-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`, + body: `-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`, + mono: `SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace` + }, + fontSizes: { + "3xs": "0.45rem", + "2xs": "0.625rem", + xs: "0.75rem", + sm: "0.875rem", + md: "1rem", + lg: "1.125rem", + xl: "1.25rem", + "2xl": "1.5rem", + "3xl": "1.875rem", + "4xl": "2.25rem", + "5xl": "3rem", + "6xl": "3.75rem", + "7xl": "4.5rem", + "8xl": "6rem", + "9xl": "8rem" + } +}; +var typography_default = typography2; + +// node_modules/@chakra-ui/theme/dist/chunk-V7WMN6TQ.mjs +var spacing = { + px: "1px", + 0.5: "0.125rem", + 1: "0.25rem", + 1.5: "0.375rem", + 2: "0.5rem", + 2.5: "0.625rem", + 3: "0.75rem", + 3.5: "0.875rem", + 4: "1rem", + 5: "1.25rem", + 6: "1.5rem", + 7: "1.75rem", + 8: "2rem", + 9: "2.25rem", + 10: "2.5rem", + 12: "3rem", + 14: "3.5rem", + 16: "4rem", + 20: "5rem", + 24: "6rem", + 28: "7rem", + 32: "8rem", + 36: "9rem", + 40: "10rem", + 44: "11rem", + 48: "12rem", + 52: "13rem", + 56: "14rem", + 60: "15rem", + 64: "16rem", + 72: "18rem", + 80: "20rem", + 96: "24rem" +}; + +// node_modules/@chakra-ui/theme/dist/chunk-NJCYBKFH.mjs +var largeSizes = { + max: "max-content", + min: "min-content", + full: "100%", + "3xs": "14rem", + "2xs": "16rem", + xs: "20rem", + sm: "24rem", + md: "28rem", + lg: "32rem", + xl: "36rem", + "2xl": "42rem", + "3xl": "48rem", + "4xl": "56rem", + "5xl": "64rem", + "6xl": "72rem", + "7xl": "80rem", + "8xl": "90rem", + prose: "60ch" +}; +var container = { + sm: "640px", + md: "768px", + lg: "1024px", + xl: "1280px" +}; +var sizes = { + ...spacing, + ...largeSizes, + container +}; +var sizes_default = sizes; + +// node_modules/@chakra-ui/theme/dist/chunk-3WO5B3NB.mjs +var foundations = { + breakpoints: breakpoints_default, + zIndices: z_index_default, + radii: radius_default, + blur: blur_default, + colors: colors_default, + ...typography_default, + sizes: sizes_default, + shadows: shadows_default, + space: spacing, + borders: borders_default, + transition: transition_default +}; + +// node_modules/@chakra-ui/theme/dist/chunk-Q5NOVGYN.mjs +var { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers([ + "stepper", + "step", + "title", + "description", + "indicator", + "separator", + "icon", + "number" +]); +var $size = cssVar("stepper-indicator-size"); +var $iconSize = cssVar("stepper-icon-size"); +var $titleFontSize = cssVar("stepper-title-font-size"); +var $descFontSize = cssVar("stepper-description-font-size"); +var $accentColor = cssVar("stepper-accent-color"); +var baseStyle = definePartsStyle(({ colorScheme: c }) => ({ + stepper: { + display: "flex", + justifyContent: "space-between", + gap: "4", + "&[data-orientation=vertical]": { + flexDirection: "column", + alignItems: "flex-start" + }, + "&[data-orientation=horizontal]": { + flexDirection: "row", + alignItems: "center" + }, + [$accentColor.variable]: `colors.${c}.500`, + _dark: { + [$accentColor.variable]: `colors.${c}.200` + } + }, + title: { + fontSize: $titleFontSize.reference, + fontWeight: "medium" + }, + description: { + fontSize: $descFontSize.reference, + color: "chakra-subtle-text" + }, + number: { + fontSize: $titleFontSize.reference + }, + step: { + flexShrink: 0, + position: "relative", + display: "flex", + gap: "2", + "&[data-orientation=horizontal]": { + alignItems: "center" + }, + flex: "1", + "&:last-of-type:not([data-stretch])": { + flex: "initial" + } + }, + icon: { + flexShrink: 0, + width: $iconSize.reference, + height: $iconSize.reference + }, + indicator: { + flexShrink: 0, + borderRadius: "full", + width: $size.reference, + height: $size.reference, + display: "flex", + justifyContent: "center", + alignItems: "center", + "&[data-status=active]": { + borderWidth: "2px", + borderColor: $accentColor.reference + }, + "&[data-status=complete]": { + bg: $accentColor.reference, + color: "chakra-inverse-text" + }, + "&[data-status=incomplete]": { + borderWidth: "2px" + } + }, + separator: { + bg: "chakra-border-color", + flex: "1", + "&[data-status=complete]": { + bg: $accentColor.reference + }, + "&[data-orientation=horizontal]": { + width: "100%", + height: "2px", + marginStart: "2" + }, + "&[data-orientation=vertical]": { + width: "2px", + position: "absolute", + height: "100%", + maxHeight: `calc(100% - ${$size.reference} - 8px)`, + top: `calc(${$size.reference} + 4px)`, + insetStart: `calc(${$size.reference} / 2 - 1px)` + } + } +})); +var stepperTheme = defineMultiStyleConfig({ + baseStyle, + sizes: { + xs: definePartsStyle({ + stepper: { + [$size.variable]: "sizes.4", + [$iconSize.variable]: "sizes.3", + [$titleFontSize.variable]: "fontSizes.xs", + [$descFontSize.variable]: "fontSizes.xs" + } + }), + sm: definePartsStyle({ + stepper: { + [$size.variable]: "sizes.6", + [$iconSize.variable]: "sizes.4", + [$titleFontSize.variable]: "fontSizes.sm", + [$descFontSize.variable]: "fontSizes.xs" + } + }), + md: definePartsStyle({ + stepper: { + [$size.variable]: "sizes.8", + [$iconSize.variable]: "sizes.5", + [$titleFontSize.variable]: "fontSizes.md", + [$descFontSize.variable]: "fontSizes.sm" + } + }), + lg: definePartsStyle({ + stepper: { + [$size.variable]: "sizes.10", + [$iconSize.variable]: "sizes.6", + [$titleFontSize.variable]: "fontSizes.lg", + [$descFontSize.variable]: "fontSizes.md" + } + }) + }, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/anatomy/dist/chunk-OA3DH5LS.mjs +function anatomy(name, map = {}) { + let called = false; + function assert() { + if (!called) { + called = true; + return; + } + throw new Error( + "[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?" + ); + } + function parts(...values) { + assert(); + for (const part of values) { + ; + map[part] = toPart(part); + } + return anatomy(name, map); + } + function extend(...parts2) { + for (const part of parts2) { + if (part in map) + continue; + map[part] = toPart(part); + } + return anatomy(name, map); + } + function selectors() { + const value = Object.fromEntries( + Object.entries(map).map(([key, part]) => [key, part.selector]) + ); + return value; + } + function classnames3() { + const value = Object.fromEntries( + Object.entries(map).map(([key, part]) => [key, part.className]) + ); + return value; + } + function toPart(part) { + const el = ["container", "root"].includes(part != null ? part : "") ? [name] : [name, part]; + const attr = el.filter(Boolean).join("__"); + const className = `chakra-${attr}`; + const partObj = { + className, + selector: `.${className}`, + toString: () => part + }; + return partObj; + } + const __type = {}; + return { + parts, + toPart, + extend, + selectors, + classnames: classnames3, + get keys() { + return Object.keys(map); + }, + __type + }; +} + +// node_modules/@chakra-ui/anatomy/dist/chunk-7OOI6RFH.mjs +var accordionAnatomy = anatomy("accordion").parts("root", "container", "button", "panel").extend("icon"); +var alertAnatomy = anatomy("alert").parts("title", "description", "container").extend("icon", "spinner"); +var avatarAnatomy = anatomy("avatar").parts("label", "badge", "container").extend("excessLabel", "group"); +var breadcrumbAnatomy = anatomy("breadcrumb").parts("link", "item", "container").extend("separator"); +var buttonAnatomy = anatomy("button").parts(); +var checkboxAnatomy = anatomy("checkbox").parts("control", "icon", "container").extend("label"); +var circularProgressAnatomy = anatomy("progress").parts("track", "filledTrack").extend("label"); +var drawerAnatomy = anatomy("drawer").parts("overlay", "dialogContainer", "dialog").extend("header", "closeButton", "body", "footer"); +var editableAnatomy = anatomy("editable").parts( + "preview", + "input", + "textarea" +); +var formAnatomy = anatomy("form").parts( + "container", + "requiredIndicator", + "helperText" +); +var formErrorAnatomy = anatomy("formError").parts("text", "icon"); +var inputAnatomy = anatomy("input").parts( + "addon", + "field", + "element", + "group" +); +var listAnatomy = anatomy("list").parts("container", "item", "icon"); +var menuAnatomy = anatomy("menu").parts("button", "list", "item").extend("groupTitle", "icon", "command", "divider"); +var modalAnatomy = anatomy("modal").parts("overlay", "dialogContainer", "dialog").extend("header", "closeButton", "body", "footer"); +var numberInputAnatomy = anatomy("numberinput").parts( + "root", + "field", + "stepperGroup", + "stepper" +); +var pinInputAnatomy = anatomy("pininput").parts("field"); +var popoverAnatomy = anatomy("popover").parts("content", "header", "body", "footer").extend("popper", "arrow", "closeButton"); +var progressAnatomy = anatomy("progress").parts( + "label", + "filledTrack", + "track" +); +var radioAnatomy = anatomy("radio").parts( + "container", + "control", + "label" +); +var selectAnatomy = anatomy("select").parts("field", "icon"); +var sliderAnatomy = anatomy("slider").parts( + "container", + "track", + "thumb", + "filledTrack", + "mark" +); +var statAnatomy = anatomy("stat").parts( + "container", + "label", + "helpText", + "number", + "icon" +); +var switchAnatomy = anatomy("switch").parts( + "container", + "track", + "thumb", + "label" +); +var tableAnatomy = anatomy("table").parts( + "table", + "thead", + "tbody", + "tr", + "th", + "td", + "tfoot", + "caption" +); +var tabsAnatomy = anatomy("tabs").parts( + "root", + "tab", + "tablist", + "tabpanel", + "tabpanels", + "indicator" +); +var tagAnatomy = anatomy("tag").parts( + "container", + "label", + "closeButton" +); +var cardAnatomy = anatomy("card").parts( + "container", + "header", + "body", + "footer" +); +var stepperAnatomy = anatomy("stepper").parts( + "stepper", + "step", + "title", + "description", + "indicator", + "separator", + "icon", + "number" +); + +// node_modules/color2k/dist/index.exports.import.es.mjs +function guard(low, high, value) { + return Math.min(Math.max(low, value), high); +} +var ColorError = class extends Error { + constructor(color3) { + super(`Failed to parse color: "${color3}"`); + } +}; +var ColorError$1 = ColorError; +function parseToRgba(color3) { + if (typeof color3 !== "string") throw new ColorError$1(color3); + if (color3.trim().toLowerCase() === "transparent") return [0, 0, 0, 0]; + let normalizedColor = color3.trim(); + normalizedColor = namedColorRegex.test(color3) ? nameToHex(color3) : color3; + const reducedHexMatch = reducedHexRegex.exec(normalizedColor); + if (reducedHexMatch) { + const arr = Array.from(reducedHexMatch).slice(1); + return [...arr.slice(0, 3).map((x) => parseInt(r(x, 2), 16)), parseInt(r(arr[3] || "f", 2), 16) / 255]; + } + const hexMatch = hexRegex.exec(normalizedColor); + if (hexMatch) { + const arr = Array.from(hexMatch).slice(1); + return [...arr.slice(0, 3).map((x) => parseInt(x, 16)), parseInt(arr[3] || "ff", 16) / 255]; + } + const rgbaMatch = rgbaRegex.exec(normalizedColor); + if (rgbaMatch) { + const arr = Array.from(rgbaMatch).slice(1); + return [...arr.slice(0, 3).map((x) => parseInt(x, 10)), parseFloat(arr[3] || "1")]; + } + const hslaMatch = hslaRegex.exec(normalizedColor); + if (hslaMatch) { + const [h, s, l, a] = Array.from(hslaMatch).slice(1).map(parseFloat); + if (guard(0, 100, s) !== s) throw new ColorError$1(color3); + if (guard(0, 100, l) !== l) throw new ColorError$1(color3); + return [...hslToRgb(h, s, l), Number.isNaN(a) ? 1 : a]; + } + throw new ColorError$1(color3); +} +function hash2(str) { + let hash3 = 5381; + let i = str.length; + while (i) { + hash3 = hash3 * 33 ^ str.charCodeAt(--i); + } + return (hash3 >>> 0) % 2341; +} +var colorToInt = (x) => parseInt(x.replace(/_/g, ""), 36); +var compressedColorMap = "1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((acc, next2) => { + const key = colorToInt(next2.substring(0, 3)); + const hex2 = colorToInt(next2.substring(3)).toString(16); + let prefix4 = ""; + for (let i = 0; i < 6 - hex2.length; i++) { + prefix4 += "0"; + } + acc[key] = `${prefix4}${hex2}`; + return acc; +}, {}); +function nameToHex(color3) { + const normalizedColorName = color3.toLowerCase().trim(); + const result = compressedColorMap[hash2(normalizedColorName)]; + if (!result) throw new ColorError$1(color3); + return `#${result}`; +} +var r = (str, amount) => Array.from(Array(amount)).map(() => str).join(""); +var reducedHexRegex = new RegExp(`^#${r("([a-f0-9])", 3)}([a-f0-9])?$`, "i"); +var hexRegex = new RegExp(`^#${r("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"); +var rgbaRegex = new RegExp(`^rgba?\\(\\s*(\\d+)\\s*${r(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"); +var hslaRegex = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i; +var namedColorRegex = /^[a-z]+$/i; +var roundColor = (color3) => { + return Math.round(color3 * 255); +}; +var hslToRgb = (hue, saturation, lightness) => { + let l = lightness / 100; + if (saturation === 0) { + return [l, l, l].map(roundColor); + } + const huePrime = (hue % 360 + 360) % 360 / 60; + const chroma = (1 - Math.abs(2 * l - 1)) * (saturation / 100); + const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1)); + let red = 0; + let green = 0; + let blue = 0; + if (huePrime >= 0 && huePrime < 1) { + red = chroma; + green = secondComponent; + } else if (huePrime >= 1 && huePrime < 2) { + red = secondComponent; + green = chroma; + } else if (huePrime >= 2 && huePrime < 3) { + green = chroma; + blue = secondComponent; + } else if (huePrime >= 3 && huePrime < 4) { + green = secondComponent; + blue = chroma; + } else if (huePrime >= 4 && huePrime < 5) { + red = secondComponent; + blue = chroma; + } else if (huePrime >= 5 && huePrime < 6) { + red = chroma; + blue = secondComponent; + } + const lightnessModification = l - chroma / 2; + const finalRed = red + lightnessModification; + const finalGreen = green + lightnessModification; + const finalBlue = blue + lightnessModification; + return [finalRed, finalGreen, finalBlue].map(roundColor); +}; +function rgba(red, green, blue, alpha2) { + return `rgba(${guard(0, 255, red).toFixed()}, ${guard(0, 255, green).toFixed()}, ${guard(0, 255, blue).toFixed()}, ${parseFloat(guard(0, 1, alpha2).toFixed(3))})`; +} +function transparentize(color3, amount) { + const [r2, g, b, a] = parseToRgba(color3); + return rgba(r2, g, b, a - amount); +} +function toHex(color3) { + const [r2, g, b, a] = parseToRgba(color3); + let hex2 = (x) => { + const h = guard(0, 255, x).toString(16); + return h.length === 1 ? `0${h}` : h; + }; + return `#${hex2(r2)}${hex2(g)}${hex2(b)}${a < 1 ? hex2(Math.round(a * 255)) : ""}`; +} + +// node_modules/@chakra-ui/theme-tools/dist/chunk-6IC2I3BY.mjs +function dlv_es_default(t2, e, l, n, r2) { + for (e = e.split ? e.split(".") : e, n = 0; n < e.length; n++) + t2 = t2 ? t2[e[n]] : r2; + return t2 === r2 ? l : t2; +} +var isEmptyObject = (obj) => Object.keys(obj).length === 0; +var getColor = (theme2, color3, fallback) => { + const hex2 = dlv_es_default(theme2, `colors.${color3}`, color3); + try { + toHex(hex2); + return hex2; + } catch { + return fallback != null ? fallback : "#000000"; + } +}; +var getBrightness = (color3) => { + const [r2, g, b] = parseToRgba(color3); + return (r2 * 299 + g * 587 + b * 114) / 1e3; +}; +var tone = (color3) => (theme2) => { + const hex2 = getColor(theme2, color3); + const brightness = getBrightness(hex2); + const isDark2 = brightness < 128; + return isDark2 ? "dark" : "light"; +}; +var isDark = (color3) => (theme2) => tone(color3)(theme2) === "dark"; +var transparentize2 = (color3, opacity) => (theme2) => { + const raw = getColor(theme2, color3); + return transparentize(raw, 1 - opacity); +}; +function generateStripe(size2 = "1rem", color3 = "rgba(255, 255, 255, 0.15)") { + return { + backgroundImage: `linear-gradient( + 45deg, + ${color3} 25%, + transparent 25%, + transparent 50%, + ${color3} 50%, + ${color3} 75%, + transparent 75%, + transparent + )`, + backgroundSize: `${size2} ${size2}` + }; +} +var randomHex = () => `#${Math.floor(Math.random() * 16777215).toString(16).padEnd(6, "0")}`; +function randomColor(opts) { + const fallback = randomHex(); + if (!opts || isEmptyObject(opts)) { + return fallback; + } + if (opts.string && opts.colors) { + return randomColorFromList(opts.string, opts.colors); + } + if (opts.string && !opts.colors) { + return randomColorFromString(opts.string); + } + if (opts.colors && !opts.string) { + return randomFromList(opts.colors); + } + return fallback; +} +function randomColorFromString(str) { + let hash3 = 0; + if (str.length === 0) + return hash3.toString(); + for (let i = 0; i < str.length; i += 1) { + hash3 = str.charCodeAt(i) + ((hash3 << 5) - hash3); + hash3 = hash3 & hash3; + } + let color3 = "#"; + for (let j = 0; j < 3; j += 1) { + const value = hash3 >> j * 8 & 255; + color3 += `00${value.toString(16)}`.substr(-2); + } + return color3; +} +function randomColorFromList(str, list2) { + let index = 0; + if (str.length === 0) + return list2[0]; + for (let i = 0; i < str.length; i += 1) { + index = str.charCodeAt(i) + ((index << 5) - index); + index = index & index; + } + index = (index % list2.length + list2.length) % list2.length; + return list2[index]; +} +function randomFromList(list2) { + return list2[Math.floor(Math.random() * list2.length)]; +} + +// node_modules/@chakra-ui/theme-tools/dist/chunk-FNB7ZWWX.mjs +function mode(light, dark) { + return (props) => props.colorMode === "dark" ? dark : light; +} +function orient(options) { + const { orientation, vertical, horizontal } = options; + if (!orientation) + return {}; + return orientation === "vertical" ? vertical : horizontal; +} + +// node_modules/@chakra-ui/theme-tools/dist/chunk-XMZHFSTS.mjs +function toRef(operand) { + if (isObject(operand) && operand.reference) { + return operand.reference; + } + return String(operand); +} +var toExpr = (operator, ...operands) => operands.map(toRef).join(` ${operator} `).replace(/calc/g, ""); +var add2 = (...operands) => `calc(${toExpr("+", ...operands)})`; +var subtract3 = (...operands) => `calc(${toExpr("-", ...operands)})`; +var multiply2 = (...operands) => `calc(${toExpr("*", ...operands)})`; +var divide2 = (...operands) => `calc(${toExpr("/", ...operands)})`; +var negate2 = (x) => { + const value = toRef(x); + if (value != null && !Number.isNaN(parseFloat(value))) { + return String(value).startsWith("-") ? String(value).slice(1) : `-${value}`; + } + return multiply2(value, -1); +}; +var calc2 = Object.assign( + (x) => ({ + add: (...operands) => calc2(add2(x, ...operands)), + subtract: (...operands) => calc2(subtract3(x, ...operands)), + multiply: (...operands) => calc2(multiply2(x, ...operands)), + divide: (...operands) => calc2(divide2(x, ...operands)), + negate: () => calc2(negate2(x)), + toString: () => x.toString() + }), + { + add: add2, + subtract: subtract3, + multiply: multiply2, + divide: divide2, + negate: negate2 + } +); + +// node_modules/@chakra-ui/theme-tools/dist/chunk-WSAJBJJ4.mjs +function isDecimal(value) { + return !Number.isInteger(parseFloat(value.toString())); +} +function replaceWhiteSpace2(value, replaceValue = "-") { + return value.replace(/\s+/g, replaceValue); +} +function escape2(value) { + const valueStr = replaceWhiteSpace2(value.toString()); + if (valueStr.includes("\\.")) + return value; + return isDecimal(value) ? valueStr.replace(".", `\\.`) : value; +} +function addPrefix2(value, prefix4 = "") { + return [prefix4, escape2(value)].filter(Boolean).join("-"); +} +function toVarRef(name, fallback) { + return `var(${escape2(name)}${fallback ? `, ${fallback}` : ""})`; +} +function toVar(value, prefix4 = "") { + return `--${addPrefix2(value, prefix4)}`; +} +function cssVar2(name, options) { + const cssVariable = toVar(name, options == null ? void 0 : options.prefix); + return { + variable: cssVariable, + reference: toVarRef(cssVariable, getFallback(options == null ? void 0 : options.fallback)) + }; +} +function getFallback(fallback) { + if (typeof fallback === "string") + return fallback; + return fallback == null ? void 0 : fallback.reference; +} + +// node_modules/@chakra-ui/theme/dist/chunk-SG67NFYS.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig2, definePartsStyle: definePartsStyle2 } = createMultiStyleConfigHelpers(switchAnatomy.keys); +var $width = cssVar2("switch-track-width"); +var $height = cssVar2("switch-track-height"); +var $diff = cssVar2("switch-track-diff"); +var diffValue = calc2.subtract($width, $height); +var $translateX = cssVar2("switch-thumb-x"); +var $bg = cssVar2("switch-bg"); +var baseStyleTrack = defineStyle((props) => { + const { colorScheme: c } = props; + return { + borderRadius: "full", + p: "0.5", + width: [$width.reference], + height: [$height.reference], + transitionProperty: "common", + transitionDuration: "fast", + [$bg.variable]: "colors.gray.300", + _dark: { + [$bg.variable]: "colors.whiteAlpha.400" + }, + _focusVisible: { + boxShadow: "outline" + }, + _disabled: { + opacity: 0.4, + cursor: "not-allowed" + }, + _checked: { + [$bg.variable]: `colors.${c}.500`, + _dark: { + [$bg.variable]: `colors.${c}.200` + } + }, + bg: $bg.reference + }; +}); +var baseStyleThumb = defineStyle({ + bg: "white", + transitionProperty: "transform", + transitionDuration: "normal", + borderRadius: "inherit", + width: [$height.reference], + height: [$height.reference], + _checked: { + transform: `translateX(${$translateX.reference})` + } +}); +var baseStyle2 = definePartsStyle2((props) => ({ + container: { + [$diff.variable]: diffValue, + [$translateX.variable]: $diff.reference, + _rtl: { + [$translateX.variable]: calc2($diff).negate().toString() + } + }, + track: baseStyleTrack(props), + thumb: baseStyleThumb +})); +var sizes2 = { + sm: definePartsStyle2({ + container: { + [$width.variable]: "1.375rem", + [$height.variable]: "sizes.3" + } + }), + md: definePartsStyle2({ + container: { + [$width.variable]: "1.875rem", + [$height.variable]: "sizes.4" + } + }), + lg: definePartsStyle2({ + container: { + [$width.variable]: "2.875rem", + [$height.variable]: "sizes.6" + } + }) +}; +var switchTheme = defineMultiStyleConfig2({ + baseStyle: baseStyle2, + sizes: sizes2, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-QWN3S45W.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig3, definePartsStyle: definePartsStyle3 } = createMultiStyleConfigHelpers(tableAnatomy.keys); +var baseStyle3 = definePartsStyle3({ + table: { + fontVariantNumeric: "lining-nums tabular-nums", + borderCollapse: "collapse", + width: "full" + }, + th: { + fontFamily: "heading", + fontWeight: "bold", + textTransform: "uppercase", + letterSpacing: "wider", + textAlign: "start" + }, + td: { + textAlign: "start" + }, + caption: { + mt: 4, + fontFamily: "heading", + textAlign: "center", + fontWeight: "medium" + } +}); +var numericStyles = defineStyle({ + "&[data-is-numeric=true]": { + textAlign: "end" + } +}); +var variantSimple = definePartsStyle3((props) => { + const { colorScheme: c } = props; + return { + th: { + color: mode("gray.600", "gray.400")(props), + borderBottom: "1px", + borderColor: mode(`${c}.100`, `${c}.700`)(props), + ...numericStyles + }, + td: { + borderBottom: "1px", + borderColor: mode(`${c}.100`, `${c}.700`)(props), + ...numericStyles + }, + caption: { + color: mode("gray.600", "gray.100")(props) + }, + tfoot: { + tr: { + "&:last-of-type": { + th: { borderBottomWidth: 0 } + } + } + } + }; +}); +var variantStripe = definePartsStyle3((props) => { + const { colorScheme: c } = props; + return { + th: { + color: mode("gray.600", "gray.400")(props), + borderBottom: "1px", + borderColor: mode(`${c}.100`, `${c}.700`)(props), + ...numericStyles + }, + td: { + borderBottom: "1px", + borderColor: mode(`${c}.100`, `${c}.700`)(props), + ...numericStyles + }, + caption: { + color: mode("gray.600", "gray.100")(props) + }, + tbody: { + tr: { + "&:nth-of-type(odd)": { + "th, td": { + borderBottomWidth: "1px", + borderColor: mode(`${c}.100`, `${c}.700`)(props) + }, + td: { + background: mode(`${c}.100`, `${c}.700`)(props) + } + } + } + }, + tfoot: { + tr: { + "&:last-of-type": { + th: { borderBottomWidth: 0 } + } + } + } + }; +}); +var variants = { + simple: variantSimple, + striped: variantStripe, + unstyled: defineStyle({}) +}; +var sizes3 = { + sm: definePartsStyle3({ + th: { + px: "4", + py: "1", + lineHeight: "4", + fontSize: "xs" + }, + td: { + px: "4", + py: "2", + fontSize: "sm", + lineHeight: "4" + }, + caption: { + px: "4", + py: "2", + fontSize: "xs" + } + }), + md: definePartsStyle3({ + th: { + px: "6", + py: "3", + lineHeight: "4", + fontSize: "xs" + }, + td: { + px: "6", + py: "4", + lineHeight: "5" + }, + caption: { + px: "6", + py: "2", + fontSize: "sm" + } + }), + lg: definePartsStyle3({ + th: { + px: "8", + py: "4", + lineHeight: "5", + fontSize: "sm" + }, + td: { + px: "8", + py: "5", + lineHeight: "6" + }, + caption: { + px: "6", + py: "2", + fontSize: "md" + } + }) +}; +var tableTheme = defineMultiStyleConfig3({ + baseStyle: baseStyle3, + variants, + sizes: sizes3, + defaultProps: { + variant: "simple", + size: "md", + colorScheme: "gray" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-GYISOX2E.mjs +var $fg = cssVar("tabs-color"); +var $bg2 = cssVar("tabs-bg"); +var $border = cssVar("tabs-border-color"); +var { defineMultiStyleConfig: defineMultiStyleConfig4, definePartsStyle: definePartsStyle4 } = createMultiStyleConfigHelpers(tabsAnatomy.keys); +var baseStyleRoot = defineStyle((props) => { + const { orientation } = props; + return { + display: orientation === "vertical" ? "flex" : "block" + }; +}); +var baseStyleTab = defineStyle((props) => { + const { isFitted } = props; + return { + flex: isFitted ? 1 : void 0, + transitionProperty: "common", + transitionDuration: "normal", + _focusVisible: { + zIndex: 1, + boxShadow: "outline" + }, + _disabled: { + cursor: "not-allowed", + opacity: 0.4 + } + }; +}); +var baseStyleTablist = defineStyle((props) => { + const { align = "start", orientation } = props; + const alignments = { + end: "flex-end", + center: "center", + start: "flex-start" + }; + return { + justifyContent: alignments[align], + flexDirection: orientation === "vertical" ? "column" : "row" + }; +}); +var baseStyleTabpanel = defineStyle({ + p: 4 +}); +var baseStyle4 = definePartsStyle4((props) => ({ + root: baseStyleRoot(props), + tab: baseStyleTab(props), + tablist: baseStyleTablist(props), + tabpanel: baseStyleTabpanel +})); +var sizes4 = { + sm: definePartsStyle4({ + tab: { + py: 1, + px: 4, + fontSize: "sm" + } + }), + md: definePartsStyle4({ + tab: { + fontSize: "md", + py: 2, + px: 4 + } + }), + lg: definePartsStyle4({ + tab: { + fontSize: "lg", + py: 3, + px: 4 + } + }) +}; +var variantLine = definePartsStyle4((props) => { + const { colorScheme: c, orientation } = props; + const isVertical = orientation === "vertical"; + const borderProp = isVertical ? "borderStart" : "borderBottom"; + const marginProp = isVertical ? "marginStart" : "marginBottom"; + return { + tablist: { + [borderProp]: "2px solid", + borderColor: "inherit" + }, + tab: { + [borderProp]: "2px solid", + borderColor: "transparent", + [marginProp]: "-2px", + _selected: { + [$fg.variable]: `colors.${c}.600`, + _dark: { + [$fg.variable]: `colors.${c}.300` + }, + borderColor: "currentColor" + }, + _active: { + [$bg2.variable]: "colors.gray.200", + _dark: { + [$bg2.variable]: "colors.whiteAlpha.300" + } + }, + _disabled: { + _active: { bg: "none" } + }, + color: $fg.reference, + bg: $bg2.reference + } + }; +}); +var variantEnclosed = definePartsStyle4((props) => { + const { colorScheme: c } = props; + return { + tab: { + borderTopRadius: "md", + border: "1px solid", + borderColor: "transparent", + mb: "-1px", + [$border.variable]: "transparent", + _selected: { + [$fg.variable]: `colors.${c}.600`, + [$border.variable]: `colors.white`, + _dark: { + [$fg.variable]: `colors.${c}.300`, + [$border.variable]: `colors.gray.800` + }, + borderColor: "inherit", + borderBottomColor: $border.reference + }, + color: $fg.reference + }, + tablist: { + mb: "-1px", + borderBottom: "1px solid", + borderColor: "inherit" + } + }; +}); +var variantEnclosedColored = definePartsStyle4((props) => { + const { colorScheme: c } = props; + return { + tab: { + border: "1px solid", + borderColor: "inherit", + [$bg2.variable]: "colors.gray.50", + _dark: { + [$bg2.variable]: "colors.whiteAlpha.50" + }, + mb: "-1px", + _notLast: { + marginEnd: "-1px" + }, + _selected: { + [$bg2.variable]: "colors.white", + [$fg.variable]: `colors.${c}.600`, + _dark: { + [$bg2.variable]: "colors.gray.800", + [$fg.variable]: `colors.${c}.300` + }, + borderColor: "inherit", + borderTopColor: "currentColor", + borderBottomColor: "transparent" + }, + color: $fg.reference, + bg: $bg2.reference + }, + tablist: { + mb: "-1px", + borderBottom: "1px solid", + borderColor: "inherit" + } + }; +}); +var variantSoftRounded = definePartsStyle4((props) => { + const { colorScheme: c, theme: theme2 } = props; + return { + tab: { + borderRadius: "full", + fontWeight: "semibold", + color: "gray.600", + _selected: { + color: getColor(theme2, `${c}.700`), + bg: getColor(theme2, `${c}.100`) + } + } + }; +}); +var variantSolidRounded = definePartsStyle4((props) => { + const { colorScheme: c } = props; + return { + tab: { + borderRadius: "full", + fontWeight: "semibold", + [$fg.variable]: "colors.gray.600", + _dark: { + [$fg.variable]: "inherit" + }, + _selected: { + [$fg.variable]: "colors.white", + [$bg2.variable]: `colors.${c}.600`, + _dark: { + [$fg.variable]: "colors.gray.800", + [$bg2.variable]: `colors.${c}.300` + } + }, + color: $fg.reference, + bg: $bg2.reference + } + }; +}); +var variantUnstyled = definePartsStyle4({}); +var variants2 = { + line: variantLine, + enclosed: variantEnclosed, + "enclosed-colored": variantEnclosedColored, + "soft-rounded": variantSoftRounded, + "solid-rounded": variantSolidRounded, + unstyled: variantUnstyled +}; +var tabsTheme = defineMultiStyleConfig4({ + baseStyle: baseStyle4, + sizes: sizes4, + variants: variants2, + defaultProps: { + size: "md", + variant: "line", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-ZQMLTFF3.mjs +var vars = defineCssVars("badge", ["bg", "color", "shadow"]); +var baseStyle5 = defineStyle({ + px: 1, + textTransform: "uppercase", + fontSize: "xs", + borderRadius: "sm", + fontWeight: "bold", + bg: vars.bg.reference, + color: vars.color.reference, + boxShadow: vars.shadow.reference +}); +var variantSolid = defineStyle((props) => { + const { colorScheme: c, theme: theme2 } = props; + const dark = transparentize2(`${c}.500`, 0.6)(theme2); + return { + [vars.bg.variable]: `colors.${c}.500`, + [vars.color.variable]: `colors.white`, + _dark: { + [vars.bg.variable]: dark, + [vars.color.variable]: `colors.whiteAlpha.800` + } + }; +}); +var variantSubtle = defineStyle((props) => { + const { colorScheme: c, theme: theme2 } = props; + const darkBg = transparentize2(`${c}.200`, 0.16)(theme2); + return { + [vars.bg.variable]: `colors.${c}.100`, + [vars.color.variable]: `colors.${c}.800`, + _dark: { + [vars.bg.variable]: darkBg, + [vars.color.variable]: `colors.${c}.200` + } + }; +}); +var variantOutline = defineStyle((props) => { + const { colorScheme: c, theme: theme2 } = props; + const darkColor = transparentize2(`${c}.200`, 0.8)(theme2); + return { + [vars.color.variable]: `colors.${c}.500`, + _dark: { + [vars.color.variable]: darkColor + }, + [vars.shadow.variable]: `inset 0 0 0px 1px ${vars.color.reference}` + }; +}); +var variants3 = { + solid: variantSolid, + subtle: variantSubtle, + outline: variantOutline +}; +var badgeTheme = defineStyleConfig({ + baseStyle: baseStyle5, + variants: variants3, + defaultProps: { + variant: "subtle", + colorScheme: "gray" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-7RVLYCMR.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig5, definePartsStyle: definePartsStyle5 } = createMultiStyleConfigHelpers(tagAnatomy.keys); +var $bg3 = cssVar("tag-bg"); +var $color = cssVar("tag-color"); +var $shadow = cssVar("tag-shadow"); +var $minH = cssVar("tag-min-height"); +var $minW = cssVar("tag-min-width"); +var $fontSize = cssVar("tag-font-size"); +var $paddingX = cssVar("tag-padding-inline"); +var baseStyleContainer = defineStyle({ + fontWeight: "medium", + lineHeight: 1.2, + outline: 0, + [$color.variable]: vars.color.reference, + [$bg3.variable]: vars.bg.reference, + [$shadow.variable]: vars.shadow.reference, + color: $color.reference, + bg: $bg3.reference, + boxShadow: $shadow.reference, + borderRadius: "md", + minH: $minH.reference, + minW: $minW.reference, + fontSize: $fontSize.reference, + px: $paddingX.reference, + _focusVisible: { + [$shadow.variable]: "shadows.outline" + } +}); +var baseStyleLabel = defineStyle({ + lineHeight: 1.2, + overflow: "visible" +}); +var baseStyleCloseButton = defineStyle({ + fontSize: "lg", + w: "5", + h: "5", + transitionProperty: "common", + transitionDuration: "normal", + borderRadius: "full", + marginStart: "1.5", + marginEnd: "-1", + opacity: 0.5, + _disabled: { + opacity: 0.4 + }, + _focusVisible: { + boxShadow: "outline", + bg: "rgba(0, 0, 0, 0.14)" + }, + _hover: { + opacity: 0.8 + }, + _active: { + opacity: 1 + } +}); +var baseStyle6 = definePartsStyle5({ + container: baseStyleContainer, + label: baseStyleLabel, + closeButton: baseStyleCloseButton +}); +var sizes5 = { + sm: definePartsStyle5({ + container: { + [$minH.variable]: "sizes.5", + [$minW.variable]: "sizes.5", + [$fontSize.variable]: "fontSizes.xs", + [$paddingX.variable]: "space.2" + }, + closeButton: { + marginEnd: "-2px", + marginStart: "0.35rem" + } + }), + md: definePartsStyle5({ + container: { + [$minH.variable]: "sizes.6", + [$minW.variable]: "sizes.6", + [$fontSize.variable]: "fontSizes.sm", + [$paddingX.variable]: "space.2" + } + }), + lg: definePartsStyle5({ + container: { + [$minH.variable]: "sizes.8", + [$minW.variable]: "sizes.8", + [$fontSize.variable]: "fontSizes.md", + [$paddingX.variable]: "space.3" + } + }) +}; +var variants4 = { + subtle: definePartsStyle5((props) => { + var _a8; + return { + container: (_a8 = badgeTheme.variants) == null ? void 0 : _a8.subtle(props) + }; + }), + solid: definePartsStyle5((props) => { + var _a8; + return { + container: (_a8 = badgeTheme.variants) == null ? void 0 : _a8.solid(props) + }; + }), + outline: definePartsStyle5((props) => { + var _a8; + return { + container: (_a8 = badgeTheme.variants) == null ? void 0 : _a8.outline(props) + }; + }) +}; +var tagTheme = defineMultiStyleConfig5({ + variants: variants4, + baseStyle: baseStyle6, + sizes: sizes5, + defaultProps: { + size: "md", + variant: "subtle", + colorScheme: "gray" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-ICL3HPTT.mjs +var { definePartsStyle: definePartsStyle6, defineMultiStyleConfig: defineMultiStyleConfig6 } = createMultiStyleConfigHelpers(inputAnatomy.keys); +var $height2 = cssVar("input-height"); +var $fontSize2 = cssVar("input-font-size"); +var $padding = cssVar("input-padding"); +var $borderRadius = cssVar("input-border-radius"); +var baseStyle7 = definePartsStyle6({ + addon: { + height: $height2.reference, + fontSize: $fontSize2.reference, + px: $padding.reference, + borderRadius: $borderRadius.reference + }, + field: { + width: "100%", + height: $height2.reference, + fontSize: $fontSize2.reference, + px: $padding.reference, + borderRadius: $borderRadius.reference, + minWidth: 0, + outline: 0, + position: "relative", + appearance: "none", + transitionProperty: "common", + transitionDuration: "normal", + _disabled: { + opacity: 0.4, + cursor: "not-allowed" + } + } +}); +var size = { + lg: defineStyle({ + [$fontSize2.variable]: "fontSizes.lg", + [$padding.variable]: "space.4", + [$borderRadius.variable]: "radii.md", + [$height2.variable]: "sizes.12" + }), + md: defineStyle({ + [$fontSize2.variable]: "fontSizes.md", + [$padding.variable]: "space.4", + [$borderRadius.variable]: "radii.md", + [$height2.variable]: "sizes.10" + }), + sm: defineStyle({ + [$fontSize2.variable]: "fontSizes.sm", + [$padding.variable]: "space.3", + [$borderRadius.variable]: "radii.sm", + [$height2.variable]: "sizes.8" + }), + xs: defineStyle({ + [$fontSize2.variable]: "fontSizes.xs", + [$padding.variable]: "space.2", + [$borderRadius.variable]: "radii.sm", + [$height2.variable]: "sizes.6" + }) +}; +var sizes6 = { + lg: definePartsStyle6({ + field: size.lg, + group: size.lg + }), + md: definePartsStyle6({ + field: size.md, + group: size.md + }), + sm: definePartsStyle6({ + field: size.sm, + group: size.sm + }), + xs: definePartsStyle6({ + field: size.xs, + group: size.xs + }) +}; +function getDefaults(props) { + const { focusBorderColor: fc, errorBorderColor: ec } = props; + return { + focusBorderColor: fc || mode("blue.500", "blue.300")(props), + errorBorderColor: ec || mode("red.500", "red.300")(props) + }; +} +var variantOutline2 = definePartsStyle6((props) => { + const { theme: theme2 } = props; + const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); + return { + field: { + border: "1px solid", + borderColor: "inherit", + bg: "inherit", + _hover: { + borderColor: mode("gray.300", "whiteAlpha.400")(props) + }, + _readOnly: { + boxShadow: "none !important", + userSelect: "all" + }, + _invalid: { + borderColor: getColor(theme2, ec), + boxShadow: `0 0 0 1px ${getColor(theme2, ec)}` + }, + _focusVisible: { + zIndex: 1, + borderColor: getColor(theme2, fc), + boxShadow: `0 0 0 1px ${getColor(theme2, fc)}` + } + }, + addon: { + border: "1px solid", + borderColor: mode("inherit", "whiteAlpha.50")(props), + bg: mode("gray.100", "whiteAlpha.300")(props) + } + }; +}); +var variantFilled = definePartsStyle6((props) => { + const { theme: theme2 } = props; + const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); + return { + field: { + border: "2px solid", + borderColor: "transparent", + bg: mode("gray.100", "whiteAlpha.50")(props), + _hover: { + bg: mode("gray.200", "whiteAlpha.100")(props) + }, + _readOnly: { + boxShadow: "none !important", + userSelect: "all" + }, + _invalid: { + borderColor: getColor(theme2, ec) + }, + _focusVisible: { + bg: "transparent", + borderColor: getColor(theme2, fc) + } + }, + addon: { + border: "2px solid", + borderColor: "transparent", + bg: mode("gray.100", "whiteAlpha.50")(props) + } + }; +}); +var variantFlushed = definePartsStyle6((props) => { + const { theme: theme2 } = props; + const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); + return { + field: { + borderBottom: "1px solid", + borderColor: "inherit", + borderRadius: "0", + px: "0", + bg: "transparent", + _readOnly: { + boxShadow: "none !important", + userSelect: "all" + }, + _invalid: { + borderColor: getColor(theme2, ec), + boxShadow: `0px 1px 0px 0px ${getColor(theme2, ec)}` + }, + _focusVisible: { + borderColor: getColor(theme2, fc), + boxShadow: `0px 1px 0px 0px ${getColor(theme2, fc)}` + } + }, + addon: { + borderBottom: "2px solid", + borderColor: "inherit", + borderRadius: "0", + px: "0", + bg: "transparent" + } + }; +}); +var variantUnstyled2 = definePartsStyle6({ + field: { + bg: "transparent", + px: "0", + height: "auto" + }, + addon: { + bg: "transparent", + px: "0", + height: "auto" + } +}); +var variants5 = { + outline: variantOutline2, + filled: variantFilled, + flushed: variantFlushed, + unstyled: variantUnstyled2 +}; +var inputTheme = defineMultiStyleConfig6({ + baseStyle: baseStyle7, + sizes: sizes6, + variants: variants5, + defaultProps: { + size: "md", + variant: "outline" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-KJ26FGJD.mjs +var _a; +var baseStyle8 = defineStyle({ + ...(_a = inputTheme.baseStyle) == null ? void 0 : _a.field, + paddingY: "2", + minHeight: "20", + lineHeight: "short", + verticalAlign: "top" +}); +var _a2; +var _b; +var variants6 = { + outline: defineStyle( + (props) => { + var _a42, _b32; + return (_b32 = (_a42 = inputTheme.variants) == null ? void 0 : _a42.outline(props).field) != null ? _b32 : {}; + } + ), + flushed: defineStyle( + (props) => { + var _a42, _b32; + return (_b32 = (_a42 = inputTheme.variants) == null ? void 0 : _a42.flushed(props).field) != null ? _b32 : {}; + } + ), + filled: defineStyle( + (props) => { + var _a42, _b32; + return (_b32 = (_a42 = inputTheme.variants) == null ? void 0 : _a42.filled(props).field) != null ? _b32 : {}; + } + ), + unstyled: (_b = (_a2 = inputTheme.variants) == null ? void 0 : _a2.unstyled.field) != null ? _b : {} +}; +var _a3; +var _b2; +var _c; +var _d; +var _e; +var _f; +var _g; +var _h; +var sizes7 = { + xs: (_b2 = (_a3 = inputTheme.sizes) == null ? void 0 : _a3.xs.field) != null ? _b2 : {}, + sm: (_d = (_c = inputTheme.sizes) == null ? void 0 : _c.sm.field) != null ? _d : {}, + md: (_f = (_e = inputTheme.sizes) == null ? void 0 : _e.md.field) != null ? _f : {}, + lg: (_h = (_g = inputTheme.sizes) == null ? void 0 : _g.lg.field) != null ? _h : {} +}; +var textareaTheme = defineStyleConfig({ + baseStyle: baseStyle8, + sizes: sizes7, + variants: variants6, + defaultProps: { + size: "md", + variant: "outline" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-R7ZISUMV.mjs +var $bg4 = cssVar2("tooltip-bg"); +var $fg2 = cssVar2("tooltip-fg"); +var $arrowBg = cssVar2("popper-arrow-bg"); +var baseStyle9 = defineStyle({ + bg: $bg4.reference, + color: $fg2.reference, + [$bg4.variable]: "colors.gray.700", + [$fg2.variable]: "colors.whiteAlpha.900", + _dark: { + [$bg4.variable]: "colors.gray.300", + [$fg2.variable]: "colors.gray.900" + }, + [$arrowBg.variable]: $bg4.reference, + px: "2", + py: "0.5", + borderRadius: "sm", + fontWeight: "medium", + fontSize: "sm", + boxShadow: "md", + maxW: "xs", + zIndex: "tooltip" +}); +var tooltipTheme = defineStyleConfig({ + baseStyle: baseStyle9 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-37MNRBP2.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig7, definePartsStyle: definePartsStyle7 } = createMultiStyleConfigHelpers(progressAnatomy.keys); +var filledStyle = defineStyle((props) => { + const { colorScheme: c, theme: t2, isIndeterminate, hasStripe } = props; + const stripeStyle = mode( + generateStripe(), + generateStripe("1rem", "rgba(0,0,0,0.1)") + )(props); + const bgColor = mode(`${c}.500`, `${c}.200`)(props); + const gradient = `linear-gradient( + to right, + transparent 0%, + ${getColor(t2, bgColor)} 50%, + transparent 100% + )`; + const addStripe = !isIndeterminate && hasStripe; + return { + ...addStripe && stripeStyle, + ...isIndeterminate ? { bgImage: gradient } : { bgColor } + }; +}); +var baseStyleLabel2 = defineStyle({ + lineHeight: "1", + fontSize: "0.25em", + fontWeight: "bold", + color: "white" +}); +var baseStyleTrack2 = defineStyle((props) => { + return { + bg: mode("gray.100", "whiteAlpha.300")(props) + }; +}); +var baseStyleFilledTrack = defineStyle((props) => { + return { + transitionProperty: "common", + transitionDuration: "slow", + ...filledStyle(props) + }; +}); +var baseStyle10 = definePartsStyle7((props) => ({ + label: baseStyleLabel2, + filledTrack: baseStyleFilledTrack(props), + track: baseStyleTrack2(props) +})); +var sizes8 = { + xs: definePartsStyle7({ + track: { h: "1" } + }), + sm: definePartsStyle7({ + track: { h: "2" } + }), + md: definePartsStyle7({ + track: { h: "3" } + }), + lg: definePartsStyle7({ + track: { h: "4" } + }) +}; +var progressTheme = defineMultiStyleConfig7({ + sizes: sizes8, + baseStyle: baseStyle10, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-UV3F75RF.mjs +var isFunction2 = (value) => typeof value === "function"; +function runIfFn2(valueOrFn, ...args) { + return isFunction2(valueOrFn) ? valueOrFn(...args) : valueOrFn; +} + +// node_modules/@chakra-ui/theme/dist/chunk-XHYVH6UO.mjs +var { definePartsStyle: definePartsStyle8, defineMultiStyleConfig: defineMultiStyleConfig8 } = createMultiStyleConfigHelpers(checkboxAnatomy.keys); +var $size2 = cssVar("checkbox-size"); +var baseStyleControl = defineStyle((props) => { + const { colorScheme: c } = props; + return { + w: $size2.reference, + h: $size2.reference, + transitionProperty: "box-shadow", + transitionDuration: "normal", + border: "2px solid", + borderRadius: "sm", + borderColor: "inherit", + color: "white", + _checked: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode("white", "gray.900")(props), + _hover: { + bg: mode(`${c}.600`, `${c}.300`)(props), + borderColor: mode(`${c}.600`, `${c}.300`)(props) + }, + _disabled: { + borderColor: mode("gray.200", "transparent")(props), + bg: mode("gray.200", "whiteAlpha.300")(props), + color: mode("gray.500", "whiteAlpha.500")(props) + } + }, + _indeterminate: { + bg: mode(`${c}.500`, `${c}.200`)(props), + borderColor: mode(`${c}.500`, `${c}.200`)(props), + color: mode("white", "gray.900")(props) + }, + _disabled: { + bg: mode("gray.100", "whiteAlpha.100")(props), + borderColor: mode("gray.100", "transparent")(props) + }, + _focusVisible: { + boxShadow: "outline" + }, + _invalid: { + borderColor: mode("red.500", "red.300")(props) + } + }; +}); +var baseStyleContainer2 = defineStyle({ + _disabled: { cursor: "not-allowed" } +}); +var baseStyleLabel3 = defineStyle({ + userSelect: "none", + _disabled: { opacity: 0.4 } +}); +var baseStyleIcon = defineStyle({ + transitionProperty: "transform", + transitionDuration: "normal" +}); +var baseStyle11 = definePartsStyle8((props) => ({ + icon: baseStyleIcon, + container: baseStyleContainer2, + control: runIfFn2(baseStyleControl, props), + label: baseStyleLabel3 +})); +var sizes9 = { + sm: definePartsStyle8({ + control: { [$size2.variable]: "sizes.3" }, + label: { fontSize: "sm" }, + icon: { fontSize: "3xs" } + }), + md: definePartsStyle8({ + control: { [$size2.variable]: "sizes.4" }, + label: { fontSize: "md" }, + icon: { fontSize: "2xs" } + }), + lg: definePartsStyle8({ + control: { [$size2.variable]: "sizes.5" }, + label: { fontSize: "lg" }, + icon: { fontSize: "2xs" } + }) +}; +var checkboxTheme = defineMultiStyleConfig8({ + baseStyle: baseStyle11, + sizes: sizes9, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-VZUATZ4E.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig9, definePartsStyle: definePartsStyle9 } = createMultiStyleConfigHelpers(radioAnatomy.keys); +var baseStyleControl2 = defineStyle((props) => { + var _a8; + const controlStyle = (_a8 = runIfFn2(checkboxTheme.baseStyle, props)) == null ? void 0 : _a8.control; + return { + ...controlStyle, + borderRadius: "full", + _checked: { + ...controlStyle == null ? void 0 : controlStyle["_checked"], + _before: { + content: `""`, + display: "inline-block", + pos: "relative", + w: "50%", + h: "50%", + borderRadius: "50%", + bg: "currentColor" + } + } + }; +}); +var baseStyle12 = definePartsStyle9((props) => { + var _a8, _b5, _c3, _d3; + return { + label: (_b5 = (_a8 = checkboxTheme).baseStyle) == null ? void 0 : _b5.call(_a8, props).label, + container: (_d3 = (_c3 = checkboxTheme).baseStyle) == null ? void 0 : _d3.call(_c3, props).container, + control: baseStyleControl2(props) + }; +}); +var sizes10 = { + md: definePartsStyle9({ + control: { w: "4", h: "4" }, + label: { fontSize: "md" } + }), + lg: definePartsStyle9({ + control: { w: "5", h: "5" }, + label: { fontSize: "lg" } + }), + sm: definePartsStyle9({ + control: { width: "3", height: "3" }, + label: { fontSize: "sm" } + }) +}; +var radioTheme = defineMultiStyleConfig9({ + baseStyle: baseStyle12, + sizes: sizes10, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-NNA4E64A.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig10, definePartsStyle: definePartsStyle10 } = createMultiStyleConfigHelpers(selectAnatomy.keys); +var $bg5 = cssVar("select-bg"); +var _a4; +var baseStyleField = defineStyle({ + ...(_a4 = inputTheme.baseStyle) == null ? void 0 : _a4.field, + appearance: "none", + paddingBottom: "1px", + lineHeight: "normal", + bg: $bg5.reference, + [$bg5.variable]: "colors.white", + _dark: { + [$bg5.variable]: "colors.gray.700" + }, + "> option, > optgroup": { + bg: $bg5.reference + } +}); +var baseStyleIcon2 = defineStyle({ + width: "6", + height: "100%", + insetEnd: "2", + position: "relative", + color: "currentColor", + fontSize: "xl", + _disabled: { + opacity: 0.5 + } +}); +var baseStyle13 = definePartsStyle10({ + field: baseStyleField, + icon: baseStyleIcon2 +}); +var iconSpacing = defineStyle({ + paddingInlineEnd: "8" +}); +var _a22; +var _b3; +var _c2; +var _d2; +var _e2; +var _f2; +var _g2; +var _h2; +var sizes11 = { + lg: { + ...(_a22 = inputTheme.sizes) == null ? void 0 : _a22.lg, + field: { + ...(_b3 = inputTheme.sizes) == null ? void 0 : _b3.lg.field, + ...iconSpacing + } + }, + md: { + ...(_c2 = inputTheme.sizes) == null ? void 0 : _c2.md, + field: { + ...(_d2 = inputTheme.sizes) == null ? void 0 : _d2.md.field, + ...iconSpacing + } + }, + sm: { + ...(_e2 = inputTheme.sizes) == null ? void 0 : _e2.sm, + field: { + ...(_f2 = inputTheme.sizes) == null ? void 0 : _f2.sm.field, + ...iconSpacing + } + }, + xs: { + ...(_g2 = inputTheme.sizes) == null ? void 0 : _g2.xs, + field: { + ...(_h2 = inputTheme.sizes) == null ? void 0 : _h2.xs.field, + ...iconSpacing + }, + icon: { + insetEnd: "1" + } + } +}; +var selectTheme = defineMultiStyleConfig10({ + baseStyle: baseStyle13, + sizes: sizes11, + variants: inputTheme.variants, + defaultProps: inputTheme.defaultProps +}); + +// node_modules/@chakra-ui/theme/dist/chunk-X6XFE4TF.mjs +var $startColor = cssVar("skeleton-start-color"); +var $endColor = cssVar("skeleton-end-color"); +var baseStyle14 = defineStyle({ + [$startColor.variable]: "colors.gray.100", + [$endColor.variable]: "colors.gray.400", + _dark: { + [$startColor.variable]: "colors.gray.800", + [$endColor.variable]: "colors.gray.600" + }, + background: $startColor.reference, + borderColor: $endColor.reference, + opacity: 0.7, + borderRadius: "sm" +}); +var skeletonTheme = defineStyleConfig({ + baseStyle: baseStyle14 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-ZREGO6US.mjs +var $bg6 = cssVar("skip-link-bg"); +var baseStyle15 = defineStyle({ + borderRadius: "md", + fontWeight: "semibold", + _focusVisible: { + boxShadow: "outline", + padding: "4", + position: "fixed", + top: "6", + insetStart: "6", + [$bg6.variable]: "colors.white", + _dark: { + [$bg6.variable]: "colors.gray.700" + }, + bg: $bg6.reference + } +}); +var skipLinkTheme = defineStyleConfig({ + baseStyle: baseStyle15 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-5FA7Y3RP.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig11, definePartsStyle: definePartsStyle11 } = createMultiStyleConfigHelpers(sliderAnatomy.keys); +var $thumbSize = cssVar("slider-thumb-size"); +var $trackSize = cssVar("slider-track-size"); +var $bg7 = cssVar("slider-bg"); +var baseStyleContainer3 = defineStyle((props) => { + const { orientation } = props; + return { + display: "inline-block", + position: "relative", + cursor: "pointer", + _disabled: { + opacity: 0.6, + cursor: "default", + pointerEvents: "none" + }, + ...orient({ + orientation, + vertical: { h: "100%" }, + horizontal: { w: "100%" } + }) + }; +}); +var baseStyleTrack3 = defineStyle((props) => { + const orientationStyles = orient({ + orientation: props.orientation, + horizontal: { h: $trackSize.reference }, + vertical: { w: $trackSize.reference } + }); + return { + ...orientationStyles, + overflow: "hidden", + borderRadius: "sm", + [$bg7.variable]: "colors.gray.200", + _dark: { + [$bg7.variable]: "colors.whiteAlpha.200" + }, + _disabled: { + [$bg7.variable]: "colors.gray.300", + _dark: { + [$bg7.variable]: "colors.whiteAlpha.300" + } + }, + bg: $bg7.reference + }; +}); +var baseStyleThumb2 = defineStyle((props) => { + const { orientation } = props; + const orientationStyle = orient({ + orientation, + vertical: { + left: "50%", + transform: `translateX(-50%)`, + _active: { + transform: `translateX(-50%) scale(1.15)` + } + }, + horizontal: { + top: "50%", + transform: `translateY(-50%)`, + _active: { + transform: `translateY(-50%) scale(1.15)` + } + } + }); + return { + ...orientationStyle, + w: $thumbSize.reference, + h: $thumbSize.reference, + display: "flex", + alignItems: "center", + justifyContent: "center", + position: "absolute", + outline: 0, + zIndex: 1, + borderRadius: "full", + bg: "white", + boxShadow: "base", + border: "1px solid", + borderColor: "transparent", + transitionProperty: "transform", + transitionDuration: "normal", + _focusVisible: { + boxShadow: "outline" + }, + _disabled: { + bg: "gray.300" + } + }; +}); +var baseStyleFilledTrack2 = defineStyle((props) => { + const { colorScheme: c } = props; + return { + width: "inherit", + height: "inherit", + [$bg7.variable]: `colors.${c}.500`, + _dark: { + [$bg7.variable]: `colors.${c}.200` + }, + bg: $bg7.reference + }; +}); +var baseStyle16 = definePartsStyle11((props) => ({ + container: baseStyleContainer3(props), + track: baseStyleTrack3(props), + thumb: baseStyleThumb2(props), + filledTrack: baseStyleFilledTrack2(props) +})); +var sizeLg = definePartsStyle11({ + container: { + [$thumbSize.variable]: `sizes.4`, + [$trackSize.variable]: `sizes.1` + } +}); +var sizeMd = definePartsStyle11({ + container: { + [$thumbSize.variable]: `sizes.3.5`, + [$trackSize.variable]: `sizes.1` + } +}); +var sizeSm = definePartsStyle11({ + container: { + [$thumbSize.variable]: `sizes.2.5`, + [$trackSize.variable]: `sizes.0.5` + } +}); +var sizes12 = { + lg: sizeLg, + md: sizeMd, + sm: sizeSm +}; +var sliderTheme = defineMultiStyleConfig11({ + baseStyle: baseStyle16, + sizes: sizes12, + defaultProps: { + size: "md", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-L3YAB6CV.mjs +var $size3 = cssVar2("spinner-size"); +var baseStyle17 = defineStyle({ + width: [$size3.reference], + height: [$size3.reference] +}); +var sizes13 = { + xs: defineStyle({ + [$size3.variable]: "sizes.3" + }), + sm: defineStyle({ + [$size3.variable]: "sizes.4" + }), + md: defineStyle({ + [$size3.variable]: "sizes.6" + }), + lg: defineStyle({ + [$size3.variable]: "sizes.8" + }), + xl: defineStyle({ + [$size3.variable]: "sizes.12" + }) +}; +var spinnerTheme = defineStyleConfig({ + baseStyle: baseStyle17, + sizes: sizes13, + defaultProps: { + size: "md" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-2KWJXISX.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig12, definePartsStyle: definePartsStyle12 } = createMultiStyleConfigHelpers(statAnatomy.keys); +var baseStyleLabel4 = defineStyle({ + fontWeight: "medium" +}); +var baseStyleHelpText = defineStyle({ + opacity: 0.8, + marginBottom: "2" +}); +var baseStyleNumber = defineStyle({ + verticalAlign: "baseline", + fontWeight: "semibold" +}); +var baseStyleIcon3 = defineStyle({ + marginEnd: 1, + w: "3.5", + h: "3.5", + verticalAlign: "middle" +}); +var baseStyle18 = definePartsStyle12({ + container: {}, + label: baseStyleLabel4, + helpText: baseStyleHelpText, + number: baseStyleNumber, + icon: baseStyleIcon3 +}); +var sizes14 = { + md: definePartsStyle12({ + label: { fontSize: "sm" }, + helpText: { fontSize: "sm" }, + number: { fontSize: "2xl" } + }) +}; +var statTheme = defineMultiStyleConfig12({ + baseStyle: baseStyle18, + sizes: sizes14, + defaultProps: { + size: "md" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-AFCBUAM5.mjs +var $bg8 = cssVar("kbd-bg"); +var baseStyle19 = defineStyle({ + [$bg8.variable]: "colors.gray.100", + _dark: { + [$bg8.variable]: "colors.whiteAlpha.100" + }, + bg: $bg8.reference, + borderRadius: "md", + borderWidth: "1px", + borderBottomWidth: "3px", + fontSize: "0.8em", + fontWeight: "bold", + lineHeight: "normal", + px: "0.4em", + whiteSpace: "nowrap" +}); +var kbdTheme = defineStyleConfig({ + baseStyle: baseStyle19 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-V5KSHSOQ.mjs +var baseStyle20 = defineStyle({ + transitionProperty: "common", + transitionDuration: "fast", + transitionTimingFunction: "ease-out", + cursor: "pointer", + textDecoration: "none", + outline: "none", + color: "inherit", + _hover: { + textDecoration: "underline" + }, + _focusVisible: { + boxShadow: "outline" + } +}); +var linkTheme = defineStyleConfig({ + baseStyle: baseStyle20 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-MGNM2WZQ.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig13, definePartsStyle: definePartsStyle13 } = createMultiStyleConfigHelpers(listAnatomy.keys); +var baseStyleIcon4 = defineStyle({ + marginEnd: "2", + display: "inline", + verticalAlign: "text-bottom" +}); +var baseStyle21 = definePartsStyle13({ + icon: baseStyleIcon4 +}); +var listTheme = defineMultiStyleConfig13({ + baseStyle: baseStyle21 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-N2GP2AF7.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig14, definePartsStyle: definePartsStyle14 } = createMultiStyleConfigHelpers(menuAnatomy.keys); +var $bg9 = cssVar("menu-bg"); +var $shadow2 = cssVar("menu-shadow"); +var baseStyleList = defineStyle({ + [$bg9.variable]: "#fff", + [$shadow2.variable]: "shadows.sm", + _dark: { + [$bg9.variable]: "colors.gray.700", + [$shadow2.variable]: "shadows.dark-lg" + }, + color: "inherit", + minW: "3xs", + py: "2", + zIndex: 1, + borderRadius: "md", + borderWidth: "1px", + bg: $bg9.reference, + boxShadow: $shadow2.reference +}); +var baseStyleItem = defineStyle({ + py: "1.5", + px: "3", + transitionProperty: "background", + transitionDuration: "ultra-fast", + transitionTimingFunction: "ease-in", + _focus: { + [$bg9.variable]: "colors.gray.100", + _dark: { + [$bg9.variable]: "colors.whiteAlpha.100" + } + }, + _active: { + [$bg9.variable]: "colors.gray.200", + _dark: { + [$bg9.variable]: "colors.whiteAlpha.200" + } + }, + _expanded: { + [$bg9.variable]: "colors.gray.100", + _dark: { + [$bg9.variable]: "colors.whiteAlpha.100" + } + }, + _disabled: { + opacity: 0.4, + cursor: "not-allowed" + }, + bg: $bg9.reference +}); +var baseStyleGroupTitle = defineStyle({ + mx: 4, + my: 2, + fontWeight: "semibold", + fontSize: "sm" +}); +var baseStyleIcon5 = defineStyle({ + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0 +}); +var baseStyleCommand = defineStyle({ + opacity: 0.6 +}); +var baseStyleDivider = defineStyle({ + border: 0, + borderBottom: "1px solid", + borderColor: "inherit", + my: "2", + opacity: 0.6 +}); +var baseStyleButton = defineStyle({ + transitionProperty: "common", + transitionDuration: "normal" +}); +var baseStyle22 = definePartsStyle14({ + button: baseStyleButton, + list: baseStyleList, + item: baseStyleItem, + groupTitle: baseStyleGroupTitle, + icon: baseStyleIcon5, + command: baseStyleCommand, + divider: baseStyleDivider +}); +var menuTheme = defineMultiStyleConfig14({ + baseStyle: baseStyle22 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-JN6QBAR6.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig15, definePartsStyle: definePartsStyle15 } = createMultiStyleConfigHelpers(modalAnatomy.keys); +var $bg10 = cssVar("modal-bg"); +var $shadow3 = cssVar("modal-shadow"); +var baseStyleOverlay = defineStyle({ + bg: "blackAlpha.600", + zIndex: "modal" +}); +var baseStyleDialogContainer = defineStyle((props) => { + const { isCentered, scrollBehavior } = props; + return { + display: "flex", + zIndex: "modal", + justifyContent: "center", + alignItems: isCentered ? "center" : "flex-start", + overflow: scrollBehavior === "inside" ? "hidden" : "auto", + overscrollBehaviorY: "none" + }; +}); +var baseStyleDialog = defineStyle((props) => { + const { isCentered, scrollBehavior } = props; + return { + borderRadius: "md", + color: "inherit", + my: isCentered ? "auto" : "16", + mx: isCentered ? "auto" : void 0, + zIndex: "modal", + maxH: scrollBehavior === "inside" ? "calc(100% - 7.5rem)" : void 0, + [$bg10.variable]: "colors.white", + [$shadow3.variable]: "shadows.lg", + _dark: { + [$bg10.variable]: "colors.gray.700", + [$shadow3.variable]: "shadows.dark-lg" + }, + bg: $bg10.reference, + boxShadow: $shadow3.reference + }; +}); +var baseStyleHeader = defineStyle({ + px: "6", + py: "4", + fontSize: "xl", + fontWeight: "semibold" +}); +var baseStyleCloseButton2 = defineStyle({ + position: "absolute", + top: "2", + insetEnd: "3" +}); +var baseStyleBody = defineStyle((props) => { + const { scrollBehavior } = props; + return { + px: "6", + py: "2", + flex: "1", + overflow: scrollBehavior === "inside" ? "auto" : void 0 + }; +}); +var baseStyleFooter = defineStyle({ + px: "6", + py: "4" +}); +var baseStyle23 = definePartsStyle15((props) => ({ + overlay: baseStyleOverlay, + dialogContainer: runIfFn2(baseStyleDialogContainer, props), + dialog: runIfFn2(baseStyleDialog, props), + header: baseStyleHeader, + closeButton: baseStyleCloseButton2, + body: runIfFn2(baseStyleBody, props), + footer: baseStyleFooter +})); +function getSize(value) { + if (value === "full") { + return definePartsStyle15({ + dialog: { + maxW: "100vw", + minH: "$100vh", + my: "0", + borderRadius: "0" + } + }); + } + return definePartsStyle15({ + dialog: { maxW: value } + }); +} +var sizes15 = { + xs: getSize("xs"), + sm: getSize("sm"), + md: getSize("md"), + lg: getSize("lg"), + xl: getSize("xl"), + "2xl": getSize("2xl"), + "3xl": getSize("3xl"), + "4xl": getSize("4xl"), + "5xl": getSize("5xl"), + "6xl": getSize("6xl"), + full: getSize("full") +}; +var modalTheme = defineMultiStyleConfig15({ + baseStyle: baseStyle23, + sizes: sizes15, + defaultProps: { size: "md" } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-57T4IAPW.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig16, definePartsStyle: definePartsStyle16 } = createMultiStyleConfigHelpers(numberInputAnatomy.keys); +var $stepperWidth = cssVar2("number-input-stepper-width"); +var $inputPadding = cssVar2("number-input-input-padding"); +var inputPaddingValue = calc2($stepperWidth).add("0.5rem").toString(); +var $bg11 = cssVar2("number-input-bg"); +var $fg3 = cssVar2("number-input-color"); +var $border2 = cssVar2("number-input-border-color"); +var baseStyleRoot2 = defineStyle({ + [$stepperWidth.variable]: "sizes.6", + [$inputPadding.variable]: inputPaddingValue +}); +var baseStyleField2 = defineStyle( + (props) => { + var _a8, _b5; + return (_b5 = (_a8 = runIfFn2(inputTheme.baseStyle, props)) == null ? void 0 : _a8.field) != null ? _b5 : {}; + } +); +var baseStyleStepperGroup = defineStyle({ + width: $stepperWidth.reference +}); +var baseStyleStepper = defineStyle({ + borderStart: "1px solid", + borderStartColor: $border2.reference, + color: $fg3.reference, + bg: $bg11.reference, + [$fg3.variable]: "colors.chakra-body-text", + [$border2.variable]: "colors.chakra-border-color", + _dark: { + [$fg3.variable]: "colors.whiteAlpha.800", + [$border2.variable]: "colors.whiteAlpha.300" + }, + _active: { + [$bg11.variable]: "colors.gray.200", + _dark: { + [$bg11.variable]: "colors.whiteAlpha.300" + } + }, + _disabled: { + opacity: 0.4, + cursor: "not-allowed" + } +}); +var baseStyle24 = definePartsStyle16((props) => { + var _a8; + return { + root: baseStyleRoot2, + field: (_a8 = runIfFn2(baseStyleField2, props)) != null ? _a8 : {}, + stepperGroup: baseStyleStepperGroup, + stepper: baseStyleStepper + }; +}); +function getSize2(size2) { + var _a8, _b5, _c3; + const sizeStyle = (_a8 = inputTheme.sizes) == null ? void 0 : _a8[size2]; + const radius = { + lg: "md", + md: "md", + sm: "sm", + xs: "sm" + }; + const _fontSize = (_c3 = (_b5 = sizeStyle.field) == null ? void 0 : _b5.fontSize) != null ? _c3 : "md"; + const fontSize = typography_default.fontSizes[_fontSize]; + return definePartsStyle16({ + field: { + ...sizeStyle.field, + paddingInlineEnd: $inputPadding.reference, + verticalAlign: "top" + }, + stepper: { + fontSize: calc2(fontSize).multiply(0.75).toString(), + _first: { + borderTopEndRadius: radius[size2] + }, + _last: { + borderBottomEndRadius: radius[size2], + mt: "-1px", + borderTopWidth: 1 + } + } + }); +} +var sizes16 = { + xs: getSize2("xs"), + sm: getSize2("sm"), + md: getSize2("md"), + lg: getSize2("lg") +}; +var numberInputTheme = defineMultiStyleConfig16({ + baseStyle: baseStyle24, + sizes: sizes16, + variants: inputTheme.variants, + defaultProps: inputTheme.defaultProps +}); + +// node_modules/@chakra-ui/theme/dist/chunk-OEFJDLVS.mjs +var _a5; +var baseStyle25 = defineStyle({ + ...(_a5 = inputTheme.baseStyle) == null ? void 0 : _a5.field, + textAlign: "center" +}); +var sizes17 = { + lg: defineStyle({ + fontSize: "lg", + w: 12, + h: 12, + borderRadius: "md" + }), + md: defineStyle({ + fontSize: "md", + w: 10, + h: 10, + borderRadius: "md" + }), + sm: defineStyle({ + fontSize: "sm", + w: 8, + h: 8, + borderRadius: "sm" + }), + xs: defineStyle({ + fontSize: "xs", + w: 6, + h: 6, + borderRadius: "sm" + }) +}; +var _a23; +var _b4; +var variants7 = { + outline: defineStyle( + (props) => { + var _a32, _b22, _c3; + return (_c3 = (_b22 = runIfFn2((_a32 = inputTheme.variants) == null ? void 0 : _a32.outline, props)) == null ? void 0 : _b22.field) != null ? _c3 : {}; + } + ), + flushed: defineStyle( + (props) => { + var _a32, _b22, _c3; + return (_c3 = (_b22 = runIfFn2((_a32 = inputTheme.variants) == null ? void 0 : _a32.flushed, props)) == null ? void 0 : _b22.field) != null ? _c3 : {}; + } + ), + filled: defineStyle( + (props) => { + var _a32, _b22, _c3; + return (_c3 = (_b22 = runIfFn2((_a32 = inputTheme.variants) == null ? void 0 : _a32.filled, props)) == null ? void 0 : _b22.field) != null ? _c3 : {}; + } + ), + unstyled: (_b4 = (_a23 = inputTheme.variants) == null ? void 0 : _a23.unstyled.field) != null ? _b4 : {} +}; +var pinInputTheme = defineStyleConfig({ + baseStyle: baseStyle25, + sizes: sizes17, + variants: variants7, + defaultProps: inputTheme.defaultProps +}); + +// node_modules/@chakra-ui/theme/dist/chunk-U3INMHUO.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig17, definePartsStyle: definePartsStyle17 } = createMultiStyleConfigHelpers(popoverAnatomy.keys); +var $popperBg = cssVar2("popper-bg"); +var $arrowBg2 = cssVar2("popper-arrow-bg"); +var $arrowShadowColor = cssVar2("popper-arrow-shadow-color"); +var baseStylePopper = defineStyle({ zIndex: 10 }); +var baseStyleContent = defineStyle({ + [$popperBg.variable]: `colors.white`, + bg: $popperBg.reference, + [$arrowBg2.variable]: $popperBg.reference, + [$arrowShadowColor.variable]: `colors.gray.200`, + _dark: { + [$popperBg.variable]: `colors.gray.700`, + [$arrowShadowColor.variable]: `colors.whiteAlpha.300` + }, + width: "xs", + border: "1px solid", + borderColor: "inherit", + borderRadius: "md", + boxShadow: "sm", + zIndex: "inherit", + _focusVisible: { + outline: 0, + boxShadow: "outline" + } +}); +var baseStyleHeader2 = defineStyle({ + px: 3, + py: 2, + borderBottomWidth: "1px" +}); +var baseStyleBody2 = defineStyle({ + px: 3, + py: 2 +}); +var baseStyleFooter2 = defineStyle({ + px: 3, + py: 2, + borderTopWidth: "1px" +}); +var baseStyleCloseButton3 = defineStyle({ + position: "absolute", + borderRadius: "md", + top: 1, + insetEnd: 2, + padding: 2 +}); +var baseStyle26 = definePartsStyle17({ + popper: baseStylePopper, + content: baseStyleContent, + header: baseStyleHeader2, + body: baseStyleBody2, + footer: baseStyleFooter2, + closeButton: baseStyleCloseButton3 +}); +var popoverTheme = defineMultiStyleConfig17({ + baseStyle: baseStyle26 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-VWP3ZVQT.mjs +var { definePartsStyle: definePartsStyle18, defineMultiStyleConfig: defineMultiStyleConfig18 } = createMultiStyleConfigHelpers(drawerAnatomy.keys); +var $bg12 = cssVar("drawer-bg"); +var $bs = cssVar("drawer-box-shadow"); +function getSize3(value) { + if (value === "full") { + return definePartsStyle18({ + dialog: { maxW: "100vw", h: "100vh" } + }); + } + return definePartsStyle18({ + dialog: { maxW: value } + }); +} +var baseStyleOverlay2 = defineStyle({ + bg: "blackAlpha.600", + zIndex: "modal" +}); +var baseStyleDialogContainer2 = defineStyle({ + display: "flex", + zIndex: "modal", + justifyContent: "center" +}); +var baseStyleDialog2 = defineStyle((props) => { + const { isFullHeight } = props; + return { + ...isFullHeight && { height: "100vh" }, + zIndex: "modal", + maxH: "100vh", + color: "inherit", + [$bg12.variable]: "colors.white", + [$bs.variable]: "shadows.lg", + _dark: { + [$bg12.variable]: "colors.gray.700", + [$bs.variable]: "shadows.dark-lg" + }, + bg: $bg12.reference, + boxShadow: $bs.reference + }; +}); +var baseStyleHeader3 = defineStyle({ + px: "6", + py: "4", + fontSize: "xl", + fontWeight: "semibold" +}); +var baseStyleCloseButton4 = defineStyle({ + position: "absolute", + top: "2", + insetEnd: "3" +}); +var baseStyleBody3 = defineStyle({ + px: "6", + py: "2", + flex: "1", + overflow: "auto" +}); +var baseStyleFooter3 = defineStyle({ + px: "6", + py: "4" +}); +var baseStyle27 = definePartsStyle18((props) => ({ + overlay: baseStyleOverlay2, + dialogContainer: baseStyleDialogContainer2, + dialog: runIfFn2(baseStyleDialog2, props), + header: baseStyleHeader3, + closeButton: baseStyleCloseButton4, + body: baseStyleBody3, + footer: baseStyleFooter3 +})); +var sizes18 = { + xs: getSize3("xs"), + sm: getSize3("md"), + md: getSize3("lg"), + lg: getSize3("2xl"), + xl: getSize3("4xl"), + full: getSize3("full") +}; +var drawerTheme = defineMultiStyleConfig18({ + baseStyle: baseStyle27, + sizes: sizes18, + defaultProps: { + size: "xs" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-D6DZ26HA.mjs +var { definePartsStyle: definePartsStyle19, defineMultiStyleConfig: defineMultiStyleConfig19 } = createMultiStyleConfigHelpers(editableAnatomy.keys); +var baseStylePreview = defineStyle({ + borderRadius: "md", + py: "1", + transitionProperty: "common", + transitionDuration: "normal" +}); +var baseStyleInput = defineStyle({ + borderRadius: "md", + py: "1", + transitionProperty: "common", + transitionDuration: "normal", + width: "full", + _focusVisible: { boxShadow: "outline" }, + _placeholder: { opacity: 0.6 } +}); +var baseStyleTextarea = defineStyle({ + borderRadius: "md", + py: "1", + transitionProperty: "common", + transitionDuration: "normal", + width: "full", + _focusVisible: { boxShadow: "outline" }, + _placeholder: { opacity: 0.6 } +}); +var baseStyle28 = definePartsStyle19({ + preview: baseStylePreview, + input: baseStyleInput, + textarea: baseStyleTextarea +}); +var editableTheme = defineMultiStyleConfig19({ + baseStyle: baseStyle28 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-O6GGGS4Y.mjs +var { definePartsStyle: definePartsStyle20, defineMultiStyleConfig: defineMultiStyleConfig20 } = createMultiStyleConfigHelpers(formAnatomy.keys); +var $fg4 = cssVar("form-control-color"); +var baseStyleRequiredIndicator = defineStyle({ + marginStart: "1", + [$fg4.variable]: "colors.red.500", + _dark: { + [$fg4.variable]: "colors.red.300" + }, + color: $fg4.reference +}); +var baseStyleHelperText = defineStyle({ + mt: "2", + [$fg4.variable]: "colors.gray.600", + _dark: { + [$fg4.variable]: "colors.whiteAlpha.600" + }, + color: $fg4.reference, + lineHeight: "normal", + fontSize: "sm" +}); +var baseStyle29 = definePartsStyle20({ + container: { + width: "100%", + position: "relative" + }, + requiredIndicator: baseStyleRequiredIndicator, + helperText: baseStyleHelperText +}); +var formTheme = defineMultiStyleConfig20({ + baseStyle: baseStyle29 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-SRBDDT7F.mjs +var { definePartsStyle: definePartsStyle21, defineMultiStyleConfig: defineMultiStyleConfig21 } = createMultiStyleConfigHelpers(formErrorAnatomy.keys); +var $fg5 = cssVar("form-error-color"); +var baseStyleText = defineStyle({ + [$fg5.variable]: `colors.red.500`, + _dark: { + [$fg5.variable]: `colors.red.300` + }, + color: $fg5.reference, + mt: "2", + fontSize: "sm", + lineHeight: "normal" +}); +var baseStyleIcon6 = defineStyle({ + marginEnd: "0.5em", + [$fg5.variable]: `colors.red.500`, + _dark: { + [$fg5.variable]: `colors.red.300` + }, + color: $fg5.reference +}); +var baseStyle30 = definePartsStyle21({ + text: baseStyleText, + icon: baseStyleIcon6 +}); +var formErrorTheme = defineMultiStyleConfig21({ + baseStyle: baseStyle30 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-VHM7WLW6.mjs +var baseStyle31 = defineStyle({ + fontSize: "md", + marginEnd: "3", + mb: "2", + fontWeight: "medium", + transitionProperty: "common", + transitionDuration: "normal", + opacity: 1, + _disabled: { + opacity: 0.4 + } +}); +var formLabelTheme = defineStyleConfig({ + baseStyle: baseStyle31 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-WXARPSDQ.mjs +var baseStyle32 = defineStyle({ + fontFamily: "heading", + fontWeight: "bold" +}); +var sizes19 = { + "4xl": defineStyle({ + fontSize: ["6xl", null, "7xl"], + lineHeight: 1 + }), + "3xl": defineStyle({ + fontSize: ["5xl", null, "6xl"], + lineHeight: 1 + }), + "2xl": defineStyle({ + fontSize: ["4xl", null, "5xl"], + lineHeight: [1.2, null, 1] + }), + xl: defineStyle({ + fontSize: ["3xl", null, "4xl"], + lineHeight: [1.33, null, 1.2] + }), + lg: defineStyle({ + fontSize: ["2xl", null, "3xl"], + lineHeight: [1.33, null, 1.2] + }), + md: defineStyle({ + fontSize: "xl", + lineHeight: 1.2 + }), + sm: defineStyle({ + fontSize: "md", + lineHeight: 1.2 + }), + xs: defineStyle({ + fontSize: "sm", + lineHeight: 1.2 + }) +}; +var headingTheme = defineStyleConfig({ + baseStyle: baseStyle32, + sizes: sizes19, + defaultProps: { + size: "xl" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-FU5DDBRC.mjs +var { defineMultiStyleConfig: defineMultiStyleConfig22, definePartsStyle: definePartsStyle22 } = createMultiStyleConfigHelpers(breadcrumbAnatomy.keys); +var $decor = cssVar("breadcrumb-link-decor"); +var baseStyleLink = defineStyle({ + transitionProperty: "common", + transitionDuration: "fast", + transitionTimingFunction: "ease-out", + outline: "none", + color: "inherit", + textDecoration: $decor.reference, + [$decor.variable]: "none", + "&:not([aria-current=page])": { + cursor: "pointer", + _hover: { + [$decor.variable]: "underline" + }, + _focusVisible: { + boxShadow: "outline" + } + } +}); +var baseStyle33 = definePartsStyle22({ + link: baseStyleLink +}); +var breadcrumbTheme = defineMultiStyleConfig22({ + baseStyle: baseStyle33 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-MBVM6PEK.mjs +var baseStyle34 = defineStyle({ + lineHeight: "1.2", + borderRadius: "md", + fontWeight: "semibold", + transitionProperty: "common", + transitionDuration: "normal", + _focusVisible: { + boxShadow: "outline" + }, + _disabled: { + opacity: 0.4, + cursor: "not-allowed", + boxShadow: "none" + }, + _hover: { + _disabled: { + bg: "initial" + } + } +}); +var variantGhost = defineStyle((props) => { + const { colorScheme: c, theme: theme2 } = props; + if (c === "gray") { + return { + color: mode(`gray.800`, `whiteAlpha.900`)(props), + _hover: { + bg: mode(`gray.100`, `whiteAlpha.200`)(props) + }, + _active: { bg: mode(`gray.200`, `whiteAlpha.300`)(props) } + }; + } + const darkHoverBg = transparentize2(`${c}.200`, 0.12)(theme2); + const darkActiveBg = transparentize2(`${c}.200`, 0.24)(theme2); + return { + color: mode(`${c}.600`, `${c}.200`)(props), + bg: "transparent", + _hover: { + bg: mode(`${c}.50`, darkHoverBg)(props) + }, + _active: { + bg: mode(`${c}.100`, darkActiveBg)(props) + } + }; +}); +var variantOutline3 = defineStyle((props) => { + const { colorScheme: c } = props; + const borderColor = mode(`gray.200`, `whiteAlpha.300`)(props); + return { + border: "1px solid", + borderColor: c === "gray" ? borderColor : "currentColor", + ".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)": { marginEnd: "-1px" }, + ".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)": { marginBottom: "-1px" }, + ...runIfFn2(variantGhost, props) + }; +}); +var accessibleColorMap = { + yellow: { + bg: "yellow.400", + color: "black", + hoverBg: "yellow.500", + activeBg: "yellow.600" + }, + cyan: { + bg: "cyan.400", + color: "black", + hoverBg: "cyan.500", + activeBg: "cyan.600" + } +}; +var variantSolid2 = defineStyle((props) => { + var _a8; + const { colorScheme: c } = props; + if (c === "gray") { + const bg2 = mode(`gray.100`, `whiteAlpha.200`)(props); + return { + bg: bg2, + color: mode(`gray.800`, `whiteAlpha.900`)(props), + _hover: { + bg: mode(`gray.200`, `whiteAlpha.300`)(props), + _disabled: { + bg: bg2 + } + }, + _active: { bg: mode(`gray.300`, `whiteAlpha.400`)(props) } + }; + } + const { + bg = `${c}.500`, + color: color3 = "white", + hoverBg = `${c}.600`, + activeBg = `${c}.700` + } = (_a8 = accessibleColorMap[c]) != null ? _a8 : {}; + const background2 = mode(bg, `${c}.200`)(props); + return { + bg: background2, + color: mode(color3, `gray.800`)(props), + _hover: { + bg: mode(hoverBg, `${c}.300`)(props), + _disabled: { + bg: background2 + } + }, + _active: { bg: mode(activeBg, `${c}.400`)(props) } + }; +}); +var variantLink = defineStyle((props) => { + const { colorScheme: c } = props; + return { + padding: 0, + height: "auto", + lineHeight: "normal", + verticalAlign: "baseline", + color: mode(`${c}.500`, `${c}.200`)(props), + _hover: { + textDecoration: "underline", + _disabled: { + textDecoration: "none" + } + }, + _active: { + color: mode(`${c}.700`, `${c}.500`)(props) + } + }; +}); +var variantUnstyled3 = defineStyle({ + bg: "none", + color: "inherit", + display: "inline", + lineHeight: "inherit", + m: "0", + p: "0" +}); +var variants8 = { + ghost: variantGhost, + outline: variantOutline3, + solid: variantSolid2, + link: variantLink, + unstyled: variantUnstyled3 +}; +var sizes20 = { + lg: defineStyle({ + h: "12", + minW: "12", + fontSize: "lg", + px: "6" + }), + md: defineStyle({ + h: "10", + minW: "10", + fontSize: "md", + px: "4" + }), + sm: defineStyle({ + h: "8", + minW: "8", + fontSize: "sm", + px: "3" + }), + xs: defineStyle({ + h: "6", + minW: "6", + fontSize: "xs", + px: "2" + }) +}; +var buttonTheme = defineStyleConfig({ + baseStyle: baseStyle34, + variants: variants8, + sizes: sizes20, + defaultProps: { + variant: "solid", + size: "md", + colorScheme: "gray" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-F7CKIHPM.mjs +var { definePartsStyle: definePartsStyle23, defineMultiStyleConfig: defineMultiStyleConfig23 } = createMultiStyleConfigHelpers(cardAnatomy.keys); +var $bg13 = cssVar("card-bg"); +var $padding2 = cssVar("card-padding"); +var $shadow4 = cssVar("card-shadow"); +var $radius = cssVar("card-radius"); +var $border3 = cssVar("card-border-width", "0"); +var $borderColor = cssVar("card-border-color"); +var baseStyle35 = definePartsStyle23({ + container: { + [$bg13.variable]: "colors.chakra-body-bg", + backgroundColor: $bg13.reference, + boxShadow: $shadow4.reference, + borderRadius: $radius.reference, + color: "chakra-body-text", + borderWidth: $border3.reference, + borderColor: $borderColor.reference + }, + body: { + padding: $padding2.reference, + flex: "1 1 0%" + }, + header: { + padding: $padding2.reference + }, + footer: { + padding: $padding2.reference + } +}); +var sizes21 = { + sm: definePartsStyle23({ + container: { + [$radius.variable]: "radii.base", + [$padding2.variable]: "space.3" + } + }), + md: definePartsStyle23({ + container: { + [$radius.variable]: "radii.md", + [$padding2.variable]: "space.5" + } + }), + lg: definePartsStyle23({ + container: { + [$radius.variable]: "radii.xl", + [$padding2.variable]: "space.7" + } + }) +}; +var variants9 = { + elevated: definePartsStyle23({ + container: { + [$shadow4.variable]: "shadows.base", + _dark: { + [$bg13.variable]: "colors.gray.700" + } + } + }), + outline: definePartsStyle23({ + container: { + [$border3.variable]: "1px", + [$borderColor.variable]: "colors.chakra-border-color" + } + }), + filled: definePartsStyle23({ + container: { + [$bg13.variable]: "colors.chakra-subtle-bg" + } + }), + unstyled: { + body: { + [$padding2.variable]: 0 + }, + header: { + [$padding2.variable]: 0 + }, + footer: { + [$padding2.variable]: 0 + } + } +}; +var cardTheme = defineMultiStyleConfig23({ + baseStyle: baseStyle35, + variants: variants9, + sizes: sizes21, + defaultProps: { + variant: "elevated", + size: "md" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-OB7MMEC3.mjs +var $size4 = cssVar2("close-button-size"); +var $bg14 = cssVar2("close-button-bg"); +var baseStyle36 = defineStyle({ + w: [$size4.reference], + h: [$size4.reference], + borderRadius: "md", + transitionProperty: "common", + transitionDuration: "normal", + _disabled: { + opacity: 0.4, + cursor: "not-allowed", + boxShadow: "none" + }, + _hover: { + [$bg14.variable]: "colors.blackAlpha.100", + _dark: { + [$bg14.variable]: "colors.whiteAlpha.100" + } + }, + _active: { + [$bg14.variable]: "colors.blackAlpha.200", + _dark: { + [$bg14.variable]: "colors.whiteAlpha.200" + } + }, + _focusVisible: { + boxShadow: "outline" + }, + bg: $bg14.reference +}); +var sizes22 = { + lg: defineStyle({ + [$size4.variable]: "sizes.10", + fontSize: "md" + }), + md: defineStyle({ + [$size4.variable]: "sizes.8", + fontSize: "xs" + }), + sm: defineStyle({ + [$size4.variable]: "sizes.6", + fontSize: "2xs" + }) +}; +var closeButtonTheme = defineStyleConfig({ + baseStyle: baseStyle36, + sizes: sizes22, + defaultProps: { + size: "md" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-K3RH7Y2L.mjs +var { variants: variants10, defaultProps } = badgeTheme; +var baseStyle37 = defineStyle({ + fontFamily: "mono", + fontSize: "sm", + px: "0.2em", + borderRadius: "sm", + bg: vars.bg.reference, + color: vars.color.reference, + boxShadow: vars.shadow.reference +}); +var codeTheme = defineStyleConfig({ + baseStyle: baseStyle37, + variants: variants10, + defaultProps +}); + +// node_modules/@chakra-ui/theme/dist/chunk-TECE6HDR.mjs +var baseStyle38 = defineStyle({ + w: "100%", + mx: "auto", + maxW: "prose", + px: "4" +}); +var containerTheme = defineStyleConfig({ + baseStyle: baseStyle38 +}); + +// node_modules/@chakra-ui/theme/dist/chunk-5S44M2O4.mjs +var baseStyle39 = defineStyle({ + opacity: 0.6, + borderColor: "inherit" +}); +var variantSolid3 = defineStyle({ + borderStyle: "solid" +}); +var variantDashed = defineStyle({ + borderStyle: "dashed" +}); +var variants11 = { + solid: variantSolid3, + dashed: variantDashed +}; +var dividerTheme = defineStyleConfig({ + baseStyle: baseStyle39, + variants: variants11, + defaultProps: { + variant: "solid" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-J7AGDWFO.mjs +var { definePartsStyle: definePartsStyle24, defineMultiStyleConfig: defineMultiStyleConfig24 } = createMultiStyleConfigHelpers(accordionAnatomy.keys); +var baseStyleContainer4 = defineStyle({ + borderTopWidth: "1px", + borderColor: "inherit", + _last: { + borderBottomWidth: "1px" + } +}); +var baseStyleButton2 = defineStyle({ + transitionProperty: "common", + transitionDuration: "normal", + fontSize: "md", + _focusVisible: { + boxShadow: "outline" + }, + _hover: { + bg: "blackAlpha.50" + }, + _disabled: { + opacity: 0.4, + cursor: "not-allowed" + }, + px: "4", + py: "2" +}); +var baseStylePanel = defineStyle({ + pt: "2", + px: "4", + pb: "5" +}); +var baseStyleIcon7 = defineStyle({ + fontSize: "1.25em" +}); +var baseStyle40 = definePartsStyle24({ + container: baseStyleContainer4, + button: baseStyleButton2, + panel: baseStylePanel, + icon: baseStyleIcon7 +}); +var accordionTheme = defineMultiStyleConfig24({ baseStyle: baseStyle40 }); + +// node_modules/@chakra-ui/theme/dist/chunk-BNQWYFTH.mjs +var { definePartsStyle: definePartsStyle25, defineMultiStyleConfig: defineMultiStyleConfig25 } = createMultiStyleConfigHelpers(alertAnatomy.keys); +var $fg6 = cssVar("alert-fg"); +var $bg15 = cssVar("alert-bg"); +var baseStyle41 = definePartsStyle25({ + container: { + bg: $bg15.reference, + px: "4", + py: "3" + }, + title: { + fontWeight: "bold", + lineHeight: "6", + marginEnd: "2" + }, + description: { + lineHeight: "6" + }, + icon: { + color: $fg6.reference, + flexShrink: 0, + marginEnd: "3", + w: "5", + h: "6" + }, + spinner: { + color: $fg6.reference, + flexShrink: 0, + marginEnd: "3", + w: "5", + h: "5" + } +}); +function getBg(props) { + const { theme: theme2, colorScheme: c } = props; + const darkBg = transparentize2(`${c}.200`, 0.16)(theme2); + return { + light: `colors.${c}.100`, + dark: darkBg + }; +} +var variantSubtle2 = definePartsStyle25((props) => { + const { colorScheme: c } = props; + const bg = getBg(props); + return { + container: { + [$fg6.variable]: `colors.${c}.600`, + [$bg15.variable]: bg.light, + _dark: { + [$fg6.variable]: `colors.${c}.200`, + [$bg15.variable]: bg.dark + } + } + }; +}); +var variantLeftAccent = definePartsStyle25((props) => { + const { colorScheme: c } = props; + const bg = getBg(props); + return { + container: { + [$fg6.variable]: `colors.${c}.600`, + [$bg15.variable]: bg.light, + _dark: { + [$fg6.variable]: `colors.${c}.200`, + [$bg15.variable]: bg.dark + }, + paddingStart: "3", + borderStartWidth: "4px", + borderStartColor: $fg6.reference + } + }; +}); +var variantTopAccent = definePartsStyle25((props) => { + const { colorScheme: c } = props; + const bg = getBg(props); + return { + container: { + [$fg6.variable]: `colors.${c}.600`, + [$bg15.variable]: bg.light, + _dark: { + [$fg6.variable]: `colors.${c}.200`, + [$bg15.variable]: bg.dark + }, + pt: "2", + borderTopWidth: "4px", + borderTopColor: $fg6.reference + } + }; +}); +var variantSolid4 = definePartsStyle25((props) => { + const { colorScheme: c } = props; + return { + container: { + [$fg6.variable]: `colors.white`, + [$bg15.variable]: `colors.${c}.600`, + _dark: { + [$fg6.variable]: `colors.gray.900`, + [$bg15.variable]: `colors.${c}.200` + }, + color: $fg6.reference + } + }; +}); +var variants12 = { + subtle: variantSubtle2, + "left-accent": variantLeftAccent, + "top-accent": variantTopAccent, + solid: variantSolid4 +}; +var alertTheme = defineMultiStyleConfig25({ + baseStyle: baseStyle41, + variants: variants12, + defaultProps: { + variant: "subtle", + colorScheme: "blue" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-Q5ZQE4MD.mjs +var { definePartsStyle: definePartsStyle26, defineMultiStyleConfig: defineMultiStyleConfig26 } = createMultiStyleConfigHelpers(avatarAnatomy.keys); +var $border4 = cssVar("avatar-border-color"); +var $bg16 = cssVar("avatar-bg"); +var $fs = cssVar("avatar-font-size"); +var $size5 = cssVar("avatar-size"); +var baseStyleBadge = defineStyle({ + borderRadius: "full", + border: "0.2em solid", + borderColor: $border4.reference, + [$border4.variable]: "white", + _dark: { + [$border4.variable]: "colors.gray.800" + } +}); +var baseStyleExcessLabel = defineStyle({ + bg: $bg16.reference, + fontSize: $fs.reference, + width: $size5.reference, + height: $size5.reference, + lineHeight: "1", + [$bg16.variable]: "colors.gray.200", + _dark: { + [$bg16.variable]: "colors.whiteAlpha.400" + } +}); +var baseStyleContainer5 = defineStyle((props) => { + const { name, theme: theme2 } = props; + const bg = name ? randomColor({ string: name }) : "colors.gray.400"; + const isBgDark = isDark(bg)(theme2); + let color3 = "white"; + if (!isBgDark) + color3 = "gray.800"; + return { + bg: $bg16.reference, + fontSize: $fs.reference, + color: color3, + borderColor: $border4.reference, + verticalAlign: "top", + width: $size5.reference, + height: $size5.reference, + "&:not([data-loaded])": { + [$bg16.variable]: bg + }, + [$border4.variable]: "colors.white", + _dark: { + [$border4.variable]: "colors.gray.800" + } + }; +}); +var baseStyleLabel5 = defineStyle({ + fontSize: $fs.reference, + lineHeight: "1" +}); +var baseStyle42 = definePartsStyle26((props) => ({ + badge: runIfFn2(baseStyleBadge, props), + excessLabel: runIfFn2(baseStyleExcessLabel, props), + container: runIfFn2(baseStyleContainer5, props), + label: baseStyleLabel5 +})); +function getSize4(size2) { + const themeSize = size2 !== "100%" ? sizes_default[size2] : void 0; + return definePartsStyle26({ + container: { + [$size5.variable]: themeSize != null ? themeSize : size2, + [$fs.variable]: `calc(${themeSize != null ? themeSize : size2} / 2.5)` + }, + excessLabel: { + [$size5.variable]: themeSize != null ? themeSize : size2, + [$fs.variable]: `calc(${themeSize != null ? themeSize : size2} / 2.5)` + } + }); +} +var sizes23 = { + "2xs": getSize4(4), + xs: getSize4(6), + sm: getSize4(8), + md: getSize4(12), + lg: getSize4(16), + xl: getSize4(24), + "2xl": getSize4(32), + full: getSize4("100%") +}; +var avatarTheme = defineMultiStyleConfig26({ + baseStyle: baseStyle42, + sizes: sizes23, + defaultProps: { + size: "md" + } +}); + +// node_modules/@chakra-ui/theme/dist/chunk-P7SDT22G.mjs +var components = { + Accordion: accordionTheme, + Alert: alertTheme, + Avatar: avatarTheme, + Badge: badgeTheme, + Breadcrumb: breadcrumbTheme, + Button: buttonTheme, + Checkbox: checkboxTheme, + CloseButton: closeButtonTheme, + Code: codeTheme, + Container: containerTheme, + Divider: dividerTheme, + Drawer: drawerTheme, + Editable: editableTheme, + Form: formTheme, + FormError: formErrorTheme, + FormLabel: formLabelTheme, + Heading: headingTheme, + Input: inputTheme, + Kbd: kbdTheme, + Link: linkTheme, + List: listTheme, + Menu: menuTheme, + Modal: modalTheme, + NumberInput: numberInputTheme, + PinInput: pinInputTheme, + Popover: popoverTheme, + Progress: progressTheme, + Radio: radioTheme, + Select: selectTheme, + Skeleton: skeletonTheme, + SkipLink: skipLinkTheme, + Slider: sliderTheme, + Spinner: spinnerTheme, + Stat: statTheme, + Switch: switchTheme, + Table: tableTheme, + Tabs: tabsTheme, + Tag: tagTheme, + Textarea: textareaTheme, + Tooltip: tooltipTheme, + Card: cardTheme, + Stepper: stepperTheme +}; + +// node_modules/@chakra-ui/theme/dist/chunk-5GOSZLB7.mjs +var semanticTokens = { + colors: { + "chakra-body-text": { _light: "gray.800", _dark: "whiteAlpha.900" }, + "chakra-body-bg": { _light: "white", _dark: "gray.800" }, + "chakra-border-color": { _light: "gray.200", _dark: "whiteAlpha.300" }, + "chakra-inverse-text": { _light: "white", _dark: "gray.800" }, + "chakra-subtle-bg": { _light: "gray.100", _dark: "gray.700" }, + "chakra-subtle-text": { _light: "gray.600", _dark: "gray.400" }, + "chakra-placeholder-color": { _light: "gray.500", _dark: "whiteAlpha.400" } + } +}; + +// node_modules/@chakra-ui/theme/dist/chunk-3F7U33P5.mjs +var styles = { + global: { + body: { + fontFamily: "body", + color: "chakra-body-text", + bg: "chakra-body-bg", + transitionProperty: "background-color", + transitionDuration: "normal", + lineHeight: "base" + }, + "*::placeholder": { + color: "chakra-placeholder-color" + }, + "*, *::before, &::after": { + borderColor: "chakra-border-color" + } + } +}; + +// node_modules/@chakra-ui/theme/dist/index.mjs +var direction = "ltr"; +var config = { + useSystemColorMode: false, + initialColorMode: "light", + cssVarPrefix: "chakra" +}; +var theme = { + semanticTokens, + direction, + ...foundations, + components, + styles, + config +}; +var baseTheme = { + semanticTokens, + direction, + components: {}, + ...foundations, + styles, + config +}; + +// node_modules/@chakra-ui/theme-utils/dist/chunk-LIR5QAZY.mjs +var import_lodash5 = __toESM(require_lodash(), 1); +function isFunction3(value) { + return typeof value === "function"; +} +function pipe2(...fns) { + return (v) => fns.reduce((a, b) => b(a), v); +} +var createExtendTheme = (theme2) => { + return function extendTheme2(...extensions) { + let overrides = [...extensions]; + let activeTheme = extensions[extensions.length - 1]; + if (isChakraTheme(activeTheme) && // this ensures backward compatibility + // previously only `extendTheme(override, activeTheme?)` was allowed + overrides.length > 1) { + overrides = overrides.slice(0, overrides.length - 1); + } else { + activeTheme = theme2; + } + return pipe2( + ...overrides.map( + (extension) => (prevTheme) => isFunction3(extension) ? extension(prevTheme) : mergeThemeOverride(prevTheme, extension) + ) + )(activeTheme); + }; +}; +var extendTheme = createExtendTheme(theme); +var extendBaseTheme = createExtendTheme(baseTheme); +function mergeThemeOverride(...overrides) { + return (0, import_lodash5.default)({}, ...overrides, mergeThemeCustomizer); +} +function mergeThemeCustomizer(source, override, key, object2) { + if ((isFunction3(source) || isFunction3(override)) && Object.prototype.hasOwnProperty.call(object2, key)) { + return (...args) => { + const sourceValue = isFunction3(source) ? source(...args) : source; + const overrideValue = isFunction3(override) ? override(...args) : override; + return (0, import_lodash5.default)({}, sourceValue, overrideValue, mergeThemeCustomizer); + }; + } + return void 0; +} + +// node_modules/@chakra-ui/theme-utils/dist/chunk-7FV6Z5GW.mjs +function withDefaultColorScheme({ + colorScheme, + components: components2 +}) { + return (theme2) => { + let names = Object.keys(theme2.components || {}); + if (Array.isArray(components2)) { + names = components2; + } else if (isObject(components2)) { + names = Object.keys(components2); + } + return mergeThemeOverride(theme2, { + components: Object.fromEntries( + names.map((componentName) => { + const withColorScheme = { + defaultProps: { + colorScheme + } + }; + return [componentName, withColorScheme]; + }) + ) + }); + }; +} + +// node_modules/@chakra-ui/theme-utils/dist/chunk-5IM46G4H.mjs +function withDefaultSize({ + size: size2, + components: components2 +}) { + return (theme2) => { + let names = Object.keys(theme2.components || {}); + if (Array.isArray(components2)) { + names = components2; + } else if (isObject(components2)) { + names = Object.keys(components2); + } + return mergeThemeOverride(theme2, { + components: Object.fromEntries( + names.map((componentName) => { + const withSize = { + defaultProps: { + size: size2 + } + }; + return [componentName, withSize]; + }) + ) + }); + }; +} + +// node_modules/@chakra-ui/theme-utils/dist/chunk-5UFXUR4J.mjs +function withDefaultVariant({ + variant, + components: components2 +}) { + return (theme2) => { + let names = Object.keys(theme2.components || {}); + if (Array.isArray(components2)) { + names = components2; + } else if (isObject(components2)) { + names = Object.keys(components2); + } + return mergeThemeOverride(theme2, { + components: Object.fromEntries( + names.map((componentName) => { + const withVariant = { + defaultProps: { + variant + } + }; + return [componentName, withVariant]; + }) + ) + }); + }; +} + +// node_modules/@chakra-ui/theme-utils/dist/chunk-PE3QADR6.mjs +function pipe3(...fns) { + return (v) => fns.reduce((a, b) => b(a), v); +} +function withDefaultProps({ + defaultProps: { colorScheme, variant, size: size2 }, + components: components2 +}) { + const identity = (t2) => t2; + const fns = [ + colorScheme ? withDefaultColorScheme({ colorScheme, components: components2 }) : identity, + size2 ? withDefaultSize({ size: size2, components: components2 }) : identity, + variant ? withDefaultVariant({ variant, components: components2 }) : identity + ]; + return (theme2) => mergeThemeOverride(pipe3(...fns)(theme2)); +} + +// node_modules/@chakra-ui/utils/dist/chunk-O3SWHQEE.mjs +function isElement(el) { + return el != null && typeof el == "object" && "nodeType" in el && el.nodeType === Node.ELEMENT_NODE; +} +function isHTMLElement(el) { + var _a8; + if (!isElement(el)) { + return false; + } + const win = (_a8 = el.ownerDocument.defaultView) != null ? _a8 : window; + return el instanceof win.HTMLElement; +} +function getOwnerWindow(node3) { + var _a8, _b5; + return isElement(node3) ? (_b5 = (_a8 = getOwnerDocument(node3)) == null ? void 0 : _a8.defaultView) != null ? _b5 : window : window; +} +function getOwnerDocument(node3) { + var _a8; + return isElement(node3) ? (_a8 = node3.ownerDocument) != null ? _a8 : document : document; +} +function getEventWindow(event) { + var _a8; + return (_a8 = event.view) != null ? _a8 : window; +} +function canUseDOM() { + return !!(typeof window !== "undefined" && window.document && window.document.createElement); +} +var isBrowser3 = canUseDOM(); +function getActiveElement(node3) { + const doc = getOwnerDocument(node3); + return doc == null ? void 0 : doc.activeElement; +} +function contains(parent, child) { + if (!parent) + return false; + return parent === child || parent.contains(child); +} +function addDomEvent(target, eventName, handler, options) { + target.addEventListener(eventName, handler, options); + return () => { + target.removeEventListener(eventName, handler, options); + }; +} + +// node_modules/@chakra-ui/utils/dist/chunk-DGFLLHTM.mjs +function getUserAgentBrowser(navigator2) { + const { userAgent: ua, vendor } = navigator2; + const android = /(android)/i.test(ua); + switch (true) { + case /CriOS/.test(ua): + return "Chrome for iOS"; + case /Edg\//.test(ua): + return "Edge"; + case (android && /Silk\//.test(ua)): + return "Silk"; + case (/Chrome/.test(ua) && /Google Inc/.test(vendor)): + return "Chrome"; + case /Firefox\/\d+\.\d+$/.test(ua): + return "Firefox"; + case android: + return "AOSP"; + case /MSIE|Trident/.test(ua): + return "IE"; + case (/Safari/.test(navigator2.userAgent) && /Apple Computer/.test(ua)): + return "Safari"; + case /AppleWebKit/.test(ua): + return "WebKit"; + default: + return null; + } +} +function detectBrowser(browser) { + if (!isBrowser3) + return false; + return getUserAgentBrowser(window.navigator) === browser; +} + +// node_modules/@chakra-ui/utils/dist/chunk-YTQ3XZ3T.mjs +var import_lodash6 = __toESM(require_lodash(), 1); +function omit2(object2, keys2) { + const result = {}; + Object.keys(object2).forEach((key) => { + if (keys2.includes(key)) + return; + result[key] = object2[key]; + }); + return result; +} +function get2(obj, path, fallback, index) { + const key = typeof path === "string" ? path.split(".") : [path]; + for (index = 0; index < key.length; index += 1) { + if (!obj) + break; + obj = obj[key[index]]; + } + return obj === void 0 ? fallback : obj; +} +var memoize3 = (fn) => { + const cache = /* @__PURE__ */ new WeakMap(); + const memoizedFn = (obj, path, fallback, index) => { + if (typeof obj === "undefined") { + return fn(obj, path, fallback); + } + if (!cache.has(obj)) { + cache.set(obj, /* @__PURE__ */ new Map()); + } + const map = cache.get(obj); + if (map.has(path)) { + return map.get(path); + } + const value = fn(obj, path, fallback, index); + map.set(path, value); + return value; + }; + return memoizedFn; +}; +var memoizedGet2 = memoize3(get2); +function objectFilter(object2, fn) { + const result = {}; + Object.keys(object2).forEach((key) => { + const value = object2[key]; + const shouldPass = fn(value, key, object2); + if (shouldPass) { + result[key] = value; + } + }); + return result; +} +var filterUndefined = (object2) => objectFilter(object2, (val) => val !== null && val !== void 0); + +// node_modules/@chakra-ui/utils/dist/chunk-Y5FGD7DM.mjs +function isNumber(value) { + return typeof value === "number"; +} +function isFunction4(value) { + return typeof value === "function"; +} +var __DEV__ = true; +function isRefObject(val) { + return "current" in val; +} + +// node_modules/@chakra-ui/utils/dist/chunk-M3TFMUOL.mjs +function runIfFn3(valueOrFn, ...args) { + return isFunction4(valueOrFn) ? valueOrFn(...args) : valueOrFn; +} +function callAllHandlers2(...fns) { + return function func2(event) { + fns.some((fn) => { + fn == null ? void 0 : fn(event); + return event == null ? void 0 : event.defaultPrevented; + }); + }; +} +function once(fn) { + let result; + return function func2(...args) { + if (fn) { + result = fn.apply(this, args); + fn = null; + } + return result; + }; +} +var noop2 = () => { +}; +var warn2 = once((options) => () => { + const { condition, message } = options; + if (condition && __DEV__) { + console.warn(message); + } +}); +var error = once((options) => () => { + const { condition, message } = options; + if (condition && __DEV__) { + console.error(message); + } +}); +var pipe4 = (...fns) => (v) => fns.reduce((a, b) => b(a), v); +var distance1D = (a, b) => Math.abs(a - b); +var isPoint = (point) => "x" in point && "y" in point; +function distance(a, b) { + if (isNumber(a) && isNumber(b)) { + return distance1D(a, b); + } + if (isPoint(a) && isPoint(b)) { + const xDelta = distance1D(a.x, b.x); + const yDelta = distance1D(a.y, b.y); + return Math.sqrt(xDelta ** 2 + yDelta ** 2); + } + return 0; +} + +// node_modules/@chakra-ui/utils/dist/chunk-YAFHXCR4.mjs +var minSafeInteger = Number.MIN_SAFE_INTEGER || -9007199254740991; +var maxSafeInteger = Number.MAX_SAFE_INTEGER || 9007199254740991; + +// node_modules/@chakra-ui/utils/dist/chunk-LCE7F24A.mjs +function isMouseEvent(event) { + const win = getEventWindow(event); + if (typeof win.PointerEvent !== "undefined" && event instanceof win.PointerEvent) { + return !!(event.pointerType === "mouse"); + } + return event instanceof win.MouseEvent; +} +function isTouchEvent(event) { + const hasTouches = !!event.touches; + return hasTouches; +} +function filterPrimaryPointer(eventHandler) { + return (event) => { + const win = getEventWindow(event); + const isMouseEvent22 = event instanceof win.MouseEvent; + const isPrimaryPointer2 = !isMouseEvent22 || isMouseEvent22 && event.button === 0; + if (isPrimaryPointer2) { + eventHandler(event); + } + }; +} +var defaultPagePoint = { pageX: 0, pageY: 0 }; +function pointFromTouch(e, pointType = "page") { + const primaryTouch = e.touches[0] || e.changedTouches[0]; + const point = primaryTouch || defaultPagePoint; + return { + x: point[`${pointType}X`], + y: point[`${pointType}Y`] + }; +} +function pointFromMouse(point, pointType = "page") { + return { + x: point[`${pointType}X`], + y: point[`${pointType}Y`] + }; +} +function extractEventInfo(event, pointType = "page") { + return { + point: isTouchEvent(event) ? pointFromTouch(event, pointType) : pointFromMouse(event, pointType) + }; +} +var wrapPointerEventHandler = (handler, shouldFilterPrimaryPointer = false) => { + const listener = (event) => handler(event, extractEventInfo(event)); + return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener; +}; +var supportsPointerEvents = () => isBrowser3 && window.onpointerdown === null; +var supportsTouchEvents = () => isBrowser3 && window.ontouchstart === null; +var supportsMouseEvents = () => isBrowser3 && window.onmousedown === null; +var mouseEventNames = { + pointerdown: "mousedown", + pointermove: "mousemove", + pointerup: "mouseup", + pointercancel: "mousecancel", + pointerover: "mouseover", + pointerout: "mouseout", + pointerenter: "mouseenter", + pointerleave: "mouseleave" +}; +var touchEventNames = { + pointerdown: "touchstart", + pointermove: "touchmove", + pointerup: "touchend", + pointercancel: "touchcancel" +}; +function getPointerEventName(name) { + if (supportsPointerEvents()) { + return name; + } + if (supportsTouchEvents()) { + return touchEventNames[name]; + } + if (supportsMouseEvents()) { + return mouseEventNames[name]; + } + return name; +} +function addPointerEvent(target, eventName, handler, options) { + return addDomEvent( + target, + getPointerEventName(eventName), + wrapPointerEventHandler(handler, eventName === "pointerdown"), + options + ); +} +function isMultiTouchEvent(event) { + return isTouchEvent(event) && event.touches.length > 1; +} + +// node_modules/@chakra-ui/utils/dist/chunk-NHABU752.mjs +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// node_modules/framesync/dist/es/on-next-frame.mjs +var defaultTimestep = 1 / 60 * 1e3; +var getCurrentTime = typeof performance !== "undefined" ? () => performance.now() : () => Date.now(); +var onNextFrame = typeof window !== "undefined" ? (callback) => window.requestAnimationFrame(callback) : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep); + +// node_modules/framesync/dist/es/create-render-step.mjs +function createRenderStep(runNextFrame2) { + let toRun = []; + let toRunNextFrame = []; + let numToRun = 0; + let isProcessing2 = false; + let flushNextFrame = false; + const toKeepAlive = /* @__PURE__ */ new WeakSet(); + const step = { + schedule: (callback, keepAlive = false, immediate = false) => { + const addToCurrentFrame = immediate && isProcessing2; + const buffer = addToCurrentFrame ? toRun : toRunNextFrame; + if (keepAlive) + toKeepAlive.add(callback); + if (buffer.indexOf(callback) === -1) { + buffer.push(callback); + if (addToCurrentFrame && isProcessing2) + numToRun = toRun.length; + } + return callback; + }, + cancel: (callback) => { + const index = toRunNextFrame.indexOf(callback); + if (index !== -1) + toRunNextFrame.splice(index, 1); + toKeepAlive.delete(callback); + }, + process: (frameData2) => { + if (isProcessing2) { + flushNextFrame = true; + return; + } + isProcessing2 = true; + [toRun, toRunNextFrame] = [toRunNextFrame, toRun]; + toRunNextFrame.length = 0; + numToRun = toRun.length; + if (numToRun) { + for (let i = 0; i < numToRun; i++) { + const callback = toRun[i]; + callback(frameData2); + if (toKeepAlive.has(callback)) { + step.schedule(callback); + runNextFrame2(); + } + } + } + isProcessing2 = false; + if (flushNextFrame) { + flushNextFrame = false; + step.process(frameData2); + } + } + }; + return step; +} + +// node_modules/framesync/dist/es/index.mjs +var maxElapsed = 40; +var useDefaultElapsed = true; +var runNextFrame = false; +var isProcessing = false; +var frame = { + delta: 0, + timestamp: 0 +}; +var stepsOrder = [ + "read", + "update", + "preRender", + "render", + "postRender" +]; +var steps = stepsOrder.reduce((acc, key) => { + acc[key] = createRenderStep(() => runNextFrame = true); + return acc; +}, {}); +var sync = stepsOrder.reduce((acc, key) => { + const step = steps[key]; + acc[key] = (process2, keepAlive = false, immediate = false) => { + if (!runNextFrame) + startLoop(); + return step.schedule(process2, keepAlive, immediate); + }; + return acc; +}, {}); +var cancelSync = stepsOrder.reduce((acc, key) => { + acc[key] = steps[key].cancel; + return acc; +}, {}); +var flushSync = stepsOrder.reduce((acc, key) => { + acc[key] = () => steps[key].process(frame); + return acc; +}, {}); +var processStep = (stepId) => steps[stepId].process(frame); +var processFrame = (timestamp) => { + runNextFrame = false; + frame.delta = useDefaultElapsed ? defaultTimestep : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1); + frame.timestamp = timestamp; + isProcessing = true; + stepsOrder.forEach(processStep); + isProcessing = false; + if (runNextFrame) { + useDefaultElapsed = false; + onNextFrame(processFrame); + } +}; +var startLoop = () => { + runNextFrame = true; + useDefaultElapsed = true; + if (!isProcessing) + onNextFrame(processFrame); +}; +var getFrameData = () => frame; +var es_default = sync; + +// node_modules/@chakra-ui/utils/dist/chunk-SV3JYFGC.mjs +var PanSession = class { + constructor(event, handlers2, threshold) { + __publicField(this, "history", []); + __publicField(this, "startEvent", null); + __publicField(this, "lastEvent", null); + __publicField(this, "lastEventInfo", null); + __publicField(this, "handlers", {}); + __publicField(this, "removeListeners", noop2); + __publicField(this, "threshold", 3); + __publicField(this, "win"); + __publicField(this, "updatePoint", () => { + if (!(this.lastEvent && this.lastEventInfo)) + return; + const info2 = getPanInfo(this.lastEventInfo, this.history); + const isPanStarted = this.startEvent !== null; + const isDistancePastThreshold = distance(info2.offset, { x: 0, y: 0 }) >= this.threshold; + if (!isPanStarted && !isDistancePastThreshold) + return; + const { timestamp: timestamp2 } = getFrameData(); + this.history.push({ ...info2.point, timestamp: timestamp2 }); + const { onStart, onMove } = this.handlers; + if (!isPanStarted) { + onStart == null ? void 0 : onStart(this.lastEvent, info2); + this.startEvent = this.lastEvent; + } + onMove == null ? void 0 : onMove(this.lastEvent, info2); + }); + __publicField(this, "onPointerMove", (event2, info2) => { + this.lastEvent = event2; + this.lastEventInfo = info2; + if (isMouseEvent(event2) && event2.buttons === 0) { + this.onPointerUp(event2, info2); + return; + } + es_default.update(this.updatePoint, true); + }); + __publicField(this, "onPointerUp", (event2, info2) => { + const panInfo = getPanInfo(info2, this.history); + const { onEnd, onSessionEnd } = this.handlers; + onSessionEnd == null ? void 0 : onSessionEnd(event2, panInfo); + this.end(); + if (!onEnd || !this.startEvent) + return; + onEnd == null ? void 0 : onEnd(event2, panInfo); + }); + this.win = getEventWindow(event); + if (isMultiTouchEvent(event)) + return; + this.handlers = handlers2; + if (threshold) { + this.threshold = threshold; + } + event.stopPropagation(); + event.preventDefault(); + const info = extractEventInfo(event); + const { timestamp } = getFrameData(); + this.history = [{ ...info.point, timestamp }]; + const { onSessionStart } = handlers2; + onSessionStart == null ? void 0 : onSessionStart(event, getPanInfo(info, this.history)); + this.removeListeners = pipe4( + addPointerEvent(this.win, "pointermove", this.onPointerMove), + addPointerEvent(this.win, "pointerup", this.onPointerUp), + addPointerEvent(this.win, "pointercancel", this.onPointerUp) + ); + } + updateHandlers(handlers2) { + this.handlers = handlers2; + } + end() { + var _a8; + (_a8 = this.removeListeners) == null ? void 0 : _a8.call(this); + cancelSync.update(this.updatePoint); + } +}; +function subtractPoint(a, b) { + return { x: a.x - b.x, y: a.y - b.y }; +} +function startPanPoint(history) { + return history[0]; +} +function lastPanPoint(history) { + return history[history.length - 1]; +} +function getPanInfo(info, history) { + return { + point: info.point, + delta: subtractPoint(info.point, lastPanPoint(history)), + offset: subtractPoint(info.point, startPanPoint(history)), + velocity: getVelocity(history, 0.1) + }; +} +function lastDevicePoint(history) { + return history[history.length - 1]; +} +var toMilliseconds = (seconds) => seconds * 1e3; +function getVelocity(history, timeDelta) { + if (history.length < 2) { + return { x: 0, y: 0 }; + } + let i = history.length - 1; + let timestampedPoint = null; + const lastPoint = lastDevicePoint(history); + while (i >= 0) { + timestampedPoint = history[i]; + if (lastPoint.timestamp - timestampedPoint.timestamp > toMilliseconds(timeDelta)) { + break; + } + i--; + } + if (!timestampedPoint) { + return { x: 0, y: 0 }; + } + const time2 = (lastPoint.timestamp - timestampedPoint.timestamp) / 1e3; + if (time2 === 0) { + return { x: 0, y: 0 }; + } + const currentVelocity = { + x: (lastPoint.x - timestampedPoint.x) / time2, + y: (lastPoint.y - timestampedPoint.y) / time2 + }; + if (currentVelocity.x === Infinity) { + currentVelocity.x = 0; + } + if (currentVelocity.y === Infinity) { + currentVelocity.y = 0; + } + return currentVelocity; +} + +// node_modules/@chakra-ui/utils/dist/chunk-FGAEJGLB.mjs +var breakpoints2 = Object.freeze([ + "base", + "sm", + "md", + "lg", + "xl", + "2xl" +]); + +// node_modules/@chakra-ui/utils/dist/chunk-P6S57EDQ.mjs +var hasTabIndex = (element) => element.hasAttribute("tabindex"); +var hasNegativeTabIndex = (element) => hasTabIndex(element) && element.tabIndex === -1; +function isDisabled(element) { + return Boolean(element.getAttribute("disabled")) === true || Boolean(element.getAttribute("aria-disabled")) === true; +} +function isInputElement(element) { + return isHTMLElement(element) && element.localName === "input" && "select" in element; +} +function isActiveElement(element) { + const doc = isHTMLElement(element) ? getOwnerDocument(element) : document; + return doc.activeElement === element; +} +function hasFocusWithin(element) { + if (!document.activeElement) + return false; + return element.contains(document.activeElement); +} +function isHidden(element) { + if (element.parentElement && isHidden(element.parentElement)) + return true; + return element.hidden; +} +function isContentEditable(element) { + const value = element.getAttribute("contenteditable"); + return value !== "false" && value != null; +} +function isFocusable(element) { + if (!isHTMLElement(element) || isHidden(element) || isDisabled(element)) { + return false; + } + const { localName } = element; + const focusableTags = ["input", "select", "textarea", "button"]; + if (focusableTags.indexOf(localName) >= 0) + return true; + const others2 = { + a: () => element.hasAttribute("href"), + audio: () => element.hasAttribute("controls"), + video: () => element.hasAttribute("controls") + }; + if (localName in others2) { + return others2[localName](); + } + if (isContentEditable(element)) + return true; + return hasTabIndex(element); +} +function isTabbable(element) { + if (!element) + return false; + return isHTMLElement(element) && isFocusable(element) && !hasNegativeTabIndex(element); +} + +// node_modules/@chakra-ui/utils/dist/chunk-5LUSIWEA.mjs +var focusableElList = [ + "input:not(:disabled):not([disabled])", + "select:not(:disabled):not([disabled])", + "textarea:not(:disabled):not([disabled])", + "embed", + "iframe", + "object", + "a[href]", + "area[href]", + "button:not(:disabled):not([disabled])", + "[tabindex]", + "audio[controls]", + "video[controls]", + "*[tabindex]:not([aria-disabled])", + "*[contenteditable]" +]; +var focusableElSelector = focusableElList.join(); +var isVisible = (el) => el.offsetWidth > 0 && el.offsetHeight > 0; +function getAllFocusable(container2) { + const focusableEls = Array.from( + container2.querySelectorAll(focusableElSelector) + ); + focusableEls.unshift(container2); + return focusableEls.filter((el) => isFocusable(el) && isVisible(el)); +} + +// node_modules/@chakra-ui/utils/dist/chunk-QKXRP2IX.mjs +function focus(element, options = {}) { + const { + isActive = isActiveElement, + nextTick, + preventScroll = true, + selectTextIfInput = true + } = options; + if (!element || isActive(element)) + return -1; + function triggerFocus() { + if (!element) { + warn2({ + condition: true, + message: "[chakra-ui]: can't call focus() on `null` or `undefined` element" + }); + return; + } + if (supportsPreventScroll()) { + element.focus({ preventScroll }); + } else { + element.focus(); + if (preventScroll) { + const scrollableElements = getScrollableElements(element); + restoreScrollPosition(scrollableElements); + } + } + if (selectTextIfInput) { + if (isInputElement(element)) { + element.select(); + } else if ("setSelectionRange" in element) { + const el = element; + el.setSelectionRange(el.value.length, el.value.length); + } + } + } + if (nextTick) { + return requestAnimationFrame(triggerFocus); + } + triggerFocus(); + return -1; +} +var supportsPreventScrollCached = null; +function supportsPreventScroll() { + if (supportsPreventScrollCached == null) { + supportsPreventScrollCached = false; + try { + const div = document.createElement("div"); + div.focus({ + get preventScroll() { + supportsPreventScrollCached = true; + return true; + } + }); + } catch (e) { + } + } + return supportsPreventScrollCached; +} +function getScrollableElements(element) { + var _a8; + const doc = getOwnerDocument(element); + const win = (_a8 = doc.defaultView) != null ? _a8 : window; + let parent = element.parentNode; + const scrollableElements = []; + const rootScrollingElement = doc.scrollingElement || doc.documentElement; + while (parent instanceof win.HTMLElement && parent !== rootScrollingElement) { + if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) { + scrollableElements.push({ + element: parent, + scrollTop: parent.scrollTop, + scrollLeft: parent.scrollLeft + }); + } + parent = parent.parentNode; + } + if (rootScrollingElement instanceof win.HTMLElement) { + scrollableElements.push({ + element: rootScrollingElement, + scrollTop: rootScrollingElement.scrollTop, + scrollLeft: rootScrollingElement.scrollLeft + }); + } + return scrollableElements; +} +function restoreScrollPosition(scrollableElements) { + for (const { element, scrollTop, scrollLeft } of scrollableElements) { + element.scrollTop = scrollTop; + element.scrollLeft = scrollLeft; + } +} + +// node_modules/tiny-invariant/dist/esm/tiny-invariant.js +var isProduction = false; +var prefix3 = "Invariant failed"; +function invariant(condition, message) { + if (condition) { + return; + } + if (isProduction) { + throw new Error(prefix3); + } + var provided = typeof message === "function" ? message() : message; + var value = provided ? "".concat(prefix3, ": ").concat(provided) : prefix3; + throw new Error(value); +} + +// node_modules/css-box-model/dist/css-box-model.esm.js +var getRect = function getRect2(_ref2) { + var top = _ref2.top, right = _ref2.right, bottom = _ref2.bottom, left = _ref2.left; + var width = right - left; + var height = bottom - top; + var rect = { + top, + right, + bottom, + left, + width, + height, + x: left, + y: top, + center: { + x: (right + left) / 2, + y: (bottom + top) / 2 + } + }; + return rect; +}; +var expand = function expand2(target, expandBy) { + return { + top: target.top - expandBy.top, + left: target.left - expandBy.left, + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right + }; +}; +var shrink = function shrink2(target, shrinkBy) { + return { + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right + }; +}; +var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 +}; +var createBox = function createBox2(_ref2) { + var borderBox = _ref2.borderBox, _ref2$margin = _ref2.margin, margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, _ref2$border = _ref2.border, border2 = _ref2$border === void 0 ? noSpacing : _ref2$border, _ref2$padding = _ref2.padding, padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding; + var marginBox = getRect(expand(borderBox, margin)); + var paddingBox = getRect(shrink(borderBox, border2)); + var contentBox = getRect(shrink(paddingBox, padding)); + return { + marginBox, + borderBox: getRect(borderBox), + paddingBox, + contentBox, + margin, + border: border2, + padding + }; +}; +var parse2 = function parse3(raw) { + var value = raw.slice(0, -2); + var suffix = raw.slice(-2); + if (suffix !== "px") { + return 0; + } + var result = Number(value); + !!isNaN(result) ? true ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0; + return result; +}; +var calculateBox = function calculateBox2(borderBox, styles2) { + var margin = { + top: parse2(styles2.marginTop), + right: parse2(styles2.marginRight), + bottom: parse2(styles2.marginBottom), + left: parse2(styles2.marginLeft) + }; + var padding = { + top: parse2(styles2.paddingTop), + right: parse2(styles2.paddingRight), + bottom: parse2(styles2.paddingBottom), + left: parse2(styles2.paddingLeft) + }; + var border2 = { + top: parse2(styles2.borderTopWidth), + right: parse2(styles2.borderRightWidth), + bottom: parse2(styles2.borderBottomWidth), + left: parse2(styles2.borderLeftWidth) + }; + return createBox({ + borderBox, + margin, + padding, + border: border2 + }); +}; +var getBox = function getBox2(el) { + var borderBox = el.getBoundingClientRect(); + var styles2 = window.getComputedStyle(el); + return calculateBox(borderBox, styles2); +}; + +// node_modules/@chakra-ui/system/dist/chunk-DMO4EI7P.mjs +var import_react10 = __toESM(require_react(), 1); +var import_react_fast_compare = __toESM(require_react_fast_compare(), 1); +function useStyleConfigImpl(themeKey, props = {}) { + var _a8; + const { styleConfig: styleConfigProp, ...rest } = props; + const { theme: theme2, colorMode } = useChakra(); + const themeStyleConfig = themeKey ? memoizedGet2(theme2, `components.${themeKey}`) : void 0; + const styleConfig = styleConfigProp || themeStyleConfig; + const mergedProps = (0, import_lodash6.default)( + { theme: theme2, colorMode }, + (_a8 = styleConfig == null ? void 0 : styleConfig.defaultProps) != null ? _a8 : {}, + filterUndefined(omit2(rest, ["children"])) + ); + const stylesRef = (0, import_react10.useRef)({}); + if (styleConfig) { + const getStyles4 = resolveStyleConfig(styleConfig); + const styles2 = getStyles4(mergedProps); + const isStyleEqual = (0, import_react_fast_compare.default)(stylesRef.current, styles2); + if (!isStyleEqual) { + stylesRef.current = styles2; + } + } + return stylesRef.current; +} +function useStyleConfig(themeKey, props = {}) { + return useStyleConfigImpl(themeKey, props); +} +function useMultiStyleConfig(themeKey, props = {}) { + return useStyleConfigImpl(themeKey, props); +} +function useComponentStyles__unstable(themeKey, props) { + var _a8; + const { baseConfig, ...restProps } = props; + const { theme: theme2 } = useChakra(); + const overrides = (_a8 = theme2.components) == null ? void 0 : _a8[themeKey]; + const styleConfig = overrides ? mergeThemeOverride(overrides, baseConfig) : baseConfig; + return useStyleConfigImpl(null, { + ...restProps, + styleConfig + }); +} + +// node_modules/@chakra-ui/system/dist/chunk-FDQH4LQI.mjs +var allPropNames = /* @__PURE__ */ new Set([ + ...propNames, + "textStyle", + "layerStyle", + "apply", + "noOfLines", + "focusBorderColor", + "errorBorderColor", + "as", + "__css", + "css", + "sx" +]); +var validHTMLProps = /* @__PURE__ */ new Set([ + "htmlWidth", + "htmlHeight", + "htmlSize", + "htmlTranslate" +]); +function shouldForwardProp(prop) { + return validHTMLProps.has(prop) || !allPropNames.has(prop); +} + +// node_modules/@chakra-ui/object-utils/dist/chunk-OLTBUDV5.mjs +function assignAfter(target, ...sources) { + if (target == null) { + throw new TypeError("Cannot convert undefined or null to object"); + } + const result = { ...target }; + for (const nextSource of sources) { + if (nextSource == null) + continue; + for (const nextKey in nextSource) { + if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey)) + continue; + if (nextKey in result) + delete result[nextKey]; + result[nextKey] = nextSource[nextKey]; + } + } + return result; +} + +// node_modules/@chakra-ui/object-utils/dist/chunk-R3DH46PF.mjs +function compact(object2) { + const clone = Object.assign({}, object2); + for (let key in clone) { + if (clone[key] === void 0) + delete clone[key]; + } + return clone; +} + +// node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js +var React4 = __toESM(require_react()); +init_emotion_is_prop_valid_esm(); +var testOmitPropsOnStringTag = isPropValid; +var testOmitPropsOnComponent = function testOmitPropsOnComponent2(key) { + return key !== "theme"; +}; +var getDefaultShouldForwardProp = function getDefaultShouldForwardProp2(tag) { + return typeof tag === "string" && // 96 is one less than the char code + // for "a" so this is checking that + // it's a lowercase character + tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent; +}; +var composeShouldForwardProps = function composeShouldForwardProps2(tag, options, isReal) { + var shouldForwardProp2; + if (options) { + var optionsShouldForwardProp = options.shouldForwardProp; + shouldForwardProp2 = tag.__emotion_forwardProp && optionsShouldForwardProp ? function(propName) { + return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName); + } : optionsShouldForwardProp; + } + if (typeof shouldForwardProp2 !== "function" && isReal) { + shouldForwardProp2 = tag.__emotion_forwardProp; + } + return shouldForwardProp2; +}; +var ILLEGAL_ESCAPE_SEQUENCE_ERROR2 = `You have illegal escape sequence in your template literal, most likely inside content's property value. +Because you write your CSS inside a JavaScript string you actually have to do double escaping, so for example "content: '\\00d7';" should become "content: '\\\\00d7';". +You can read more about this here: +https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences`; +var Insertion5 = function Insertion6(_ref2) { + var cache = _ref2.cache, serialized = _ref2.serialized, isStringTag = _ref2.isStringTag; + registerStyles(cache, serialized, isStringTag); + useInsertionEffectAlwaysWithSyncFallback(function() { + return insertStyles(cache, serialized, isStringTag); + }); + return null; +}; +var createStyled = function createStyled2(tag, options) { + if (true) { + if (tag === void 0) { + throw new Error("You are trying to create a styled element with an undefined component.\nYou may have forgotten to import it."); + } + } + var isReal = tag.__emotion_real === tag; + var baseTag = isReal && tag.__emotion_base || tag; + var identifierName; + var targetClassName; + if (options !== void 0) { + identifierName = options.label; + targetClassName = options.target; + } + var shouldForwardProp2 = composeShouldForwardProps(tag, options, isReal); + var defaultShouldForwardProp = shouldForwardProp2 || getDefaultShouldForwardProp(baseTag); + var shouldUseAs = !defaultShouldForwardProp("as"); + return function() { + var args = arguments; + var styles2 = isReal && tag.__emotion_styles !== void 0 ? tag.__emotion_styles.slice(0) : []; + if (identifierName !== void 0) { + styles2.push("label:" + identifierName + ";"); + } + if (args[0] == null || args[0].raw === void 0) { + styles2.push.apply(styles2, args); + } else { + if (args[0][0] === void 0) { + console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR2); + } + styles2.push(args[0][0]); + var len = args.length; + var i = 1; + for (; i < len; i++) { + if (args[0][i] === void 0) { + console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR2); + } + styles2.push(args[i], args[0][i]); + } + } + var Styled = withEmotionCache(function(props, cache, ref) { + var FinalTag = shouldUseAs && props.as || baseTag; + var className = ""; + var classInterpolations = []; + var mergedProps = props; + if (props.theme == null) { + mergedProps = {}; + for (var key in props) { + mergedProps[key] = props[key]; + } + mergedProps.theme = React4.useContext(ThemeContext); + } + if (typeof props.className === "string") { + className = getRegisteredStyles(cache.registered, classInterpolations, props.className); + } else if (props.className != null) { + className = props.className + " "; + } + var serialized = serializeStyles(styles2.concat(classInterpolations), cache.registered, mergedProps); + className += cache.key + "-" + serialized.name; + if (targetClassName !== void 0) { + className += " " + targetClassName; + } + var finalShouldForwardProp = shouldUseAs && shouldForwardProp2 === void 0 ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp; + var newProps = {}; + for (var _key in props) { + if (shouldUseAs && _key === "as") continue; + if ( + // $FlowFixMe + finalShouldForwardProp(_key) + ) { + newProps[_key] = props[_key]; + } + } + newProps.className = className; + newProps.ref = ref; + return React4.createElement(React4.Fragment, null, React4.createElement(Insertion5, { + cache, + serialized, + isStringTag: typeof FinalTag === "string" + }), React4.createElement(FinalTag, newProps)); + }); + Styled.displayName = identifierName !== void 0 ? identifierName : "Styled(" + (typeof baseTag === "string" ? baseTag : baseTag.displayName || baseTag.name || "Component") + ")"; + Styled.defaultProps = tag.defaultProps; + Styled.__emotion_real = Styled; + Styled.__emotion_base = baseTag; + Styled.__emotion_styles = styles2; + Styled.__emotion_forwardProp = shouldForwardProp2; + Object.defineProperty(Styled, "toString", { + value: function value() { + if (targetClassName === void 0 && true) { + return "NO_COMPONENT_SELECTOR"; + } + return "." + targetClassName; + } + }); + Styled.withComponent = function(nextTag, nextOptions) { + return createStyled2(nextTag, _extends({}, options, nextOptions, { + shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true) + })).apply(void 0, styles2); + }; + return Styled; + }; +}; + +// node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js +var import_react12 = __toESM(require_react()); +init_emotion_is_prop_valid_esm(); +var tags = [ + "a", + "abbr", + "address", + "area", + "article", + "aside", + "audio", + "b", + "base", + "bdi", + "bdo", + "big", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "cite", + "code", + "col", + "colgroup", + "data", + "datalist", + "dd", + "del", + "details", + "dfn", + "dialog", + "div", + "dl", + "dt", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "ins", + "kbd", + "keygen", + "label", + "legend", + "li", + "link", + "main", + "map", + "mark", + "marquee", + "menu", + "menuitem", + "meta", + "meter", + "nav", + "noscript", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "picture", + "pre", + "progress", + "q", + "rp", + "rt", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "small", + "source", + "span", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "track", + "u", + "ul", + "var", + "video", + "wbr", + // SVG + "circle", + "clipPath", + "defs", + "ellipse", + "foreignObject", + "g", + "image", + "line", + "linearGradient", + "mask", + "path", + "pattern", + "polygon", + "polyline", + "radialGradient", + "rect", + "stop", + "svg", + "text", + "tspan" +]; +var newStyled = createStyled.bind(); +tags.forEach(function(tagName) { + newStyled[tagName] = newStyled(tagName); +}); + +// node_modules/@chakra-ui/system/dist/chunk-5PL47M24.mjs +var import_react14 = __toESM(require_react(), 1); +var _a6; +var emotion_styled = (_a6 = newStyled.default) != null ? _a6 : newStyled; +var toCSSObject = ({ baseStyle: baseStyle44 }) => (props) => { + const { theme: theme2, css: cssProp, __css, sx, ...rest } = props; + const styleProps2 = objectFilter(rest, (_, prop) => isStyleProp(prop)); + const finalBaseStyle = runIfFn3(baseStyle44, props); + const finalStyles = assignAfter( + {}, + __css, + finalBaseStyle, + filterUndefined(styleProps2), + sx + ); + const computedCSS = css3(finalStyles)(props.theme); + return cssProp ? [computedCSS, cssProp] : computedCSS; +}; +function styled(component, options) { + const { baseStyle: baseStyle44, ...styledOptions } = options != null ? options : {}; + if (!styledOptions.shouldForwardProp) { + styledOptions.shouldForwardProp = shouldForwardProp; + } + const styleObject = toCSSObject({ baseStyle: baseStyle44 }); + const Component3 = emotion_styled( + component, + styledOptions + )(styleObject); + const chakraComponent = import_react14.default.forwardRef(function ChakraComponent(props, ref) { + const { colorMode, forced } = useColorMode(); + return import_react14.default.createElement(Component3, { + ref, + "data-theme": forced ? colorMode : void 0, + ...props + }); + }); + return chakraComponent; +} + +// node_modules/@chakra-ui/system/dist/chunk-ZHQNHOQS.mjs +function factory() { + const cache = /* @__PURE__ */ new Map(); + return new Proxy(styled, { + /** + * @example + * const Div = chakra("div") + * const WithChakra = chakra(AnotherComponent) + */ + apply(target, thisArg, argArray) { + return styled(...argArray); + }, + /** + * @example + * + */ + get(_, element) { + if (!cache.has(element)) { + cache.set(element, styled(element)); + } + return cache.get(element); + } + }); +} +var chakra = factory(); + +// node_modules/@chakra-ui/system/dist/chunk-ZJJGQIVY.mjs +var import_react15 = __toESM(require_react(), 1); +function forwardRef3(component) { + return (0, import_react15.forwardRef)(component); +} + +// node_modules/@chakra-ui/react-utils/dist/chunk-IH2MM24A.mjs +var import_react16 = __toESM(require_react(), 1); + +// node_modules/@chakra-ui/react-utils/dist/chunk-ITIKTQWJ.mjs +var import_react17 = __toESM(require_react(), 1); +function createContext4(options = {}) { + const { + strict = true, + errorMessage = "useContext: `context` is undefined. Seems you forgot to wrap component within the Provider", + name + } = options; + const Context = (0, import_react17.createContext)(void 0); + Context.displayName = name; + function useContext25() { + var _a8; + const context = (0, import_react17.useContext)(Context); + if (!context && strict) { + const error2 = new Error(errorMessage); + error2.name = "ContextError"; + (_a8 = Error.captureStackTrace) == null ? void 0 : _a8.call(Error, error2, useContext25); + throw error2; + } + return context; + } + return [ + Context.Provider, + useContext25, + Context + ]; +} + +// node_modules/@chakra-ui/system/dist/chunk-MFVQSVQB.mjs +var import_react19 = __toESM(require_react(), 1); +var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); +function ThemeProvider3(props) { + const { cssVarsRoot, theme: theme2, children } = props; + const computedTheme = (0, import_react19.useMemo)(() => toCSSVar(theme2), [theme2]); + return (0, import_jsx_runtime6.jsxs)(ThemeProvider, { theme: computedTheme, children: [ + (0, import_jsx_runtime6.jsx)(CSSVars, { root: cssVarsRoot }), + children + ] }); +} +function CSSVars({ root = ":host, :root" }) { + const selector = [root, `[data-theme]`].join(","); + return (0, import_jsx_runtime6.jsx)(Global, { styles: (theme2) => ({ [selector]: theme2.__cssVars }) }); +} +var [StylesProvider, useStyles] = createContext4({ + name: "StylesContext", + errorMessage: "useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` " +}); +function createStylesContext(componentName) { + return createContext4({ + name: `${componentName}StylesContext`, + errorMessage: `useStyles: "styles" is undefined. Seems you forgot to wrap the components in "<${componentName} />" ` + }); +} +function GlobalStyle() { + const { colorMode } = useColorMode(); + return (0, import_jsx_runtime6.jsx)( + Global, + { + styles: (theme2) => { + const styleObjectOrFn = memoizedGet2(theme2, "styles.global"); + const globalStyles = runIfFn3(styleObjectOrFn, { theme: theme2, colorMode }); + if (!globalStyles) + return void 0; + const styles2 = css3(globalStyles)(theme2); + return styles2; + } + } + ); +} + +// node_modules/@chakra-ui/react-env/dist/chunk-VMD3UMGK.mjs +var import_react21 = __toESM(require_react(), 1); +var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); +var EnvironmentContext = (0, import_react21.createContext)({ + getDocument() { + return document; + }, + getWindow() { + return window; + } +}); +EnvironmentContext.displayName = "EnvironmentContext"; +function useEnvironment({ defer } = {}) { + const [, forceUpdate] = (0, import_react21.useReducer)((c) => c + 1, 0); + useSafeLayoutEffect(() => { + if (!defer) + return; + forceUpdate(); + }, [defer]); + return (0, import_react21.useContext)(EnvironmentContext); +} +function EnvironmentProvider(props) { + const { children, environment: environmentProp, disabled } = props; + const ref = (0, import_react21.useRef)(null); + const context = (0, import_react21.useMemo)(() => { + if (environmentProp) + return environmentProp; + return { + getDocument: () => { + var _a8, _b5; + return (_b5 = (_a8 = ref.current) == null ? void 0 : _a8.ownerDocument) != null ? _b5 : document; + }, + getWindow: () => { + var _a8, _b5; + return (_b5 = (_a8 = ref.current) == null ? void 0 : _a8.ownerDocument.defaultView) != null ? _b5 : window; + } + }; + }, [environmentProp]); + const showSpan = !disabled || !environmentProp; + return (0, import_jsx_runtime7.jsxs)(EnvironmentContext.Provider, { value: context, children: [ + children, + showSpan && (0, import_jsx_runtime7.jsx)("span", { id: "__chakra_env", hidden: true, ref }) + ] }); +} +EnvironmentProvider.displayName = "EnvironmentProvider"; + +// node_modules/@chakra-ui/provider/dist/chunk-3DDHO3UN.mjs +var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); +var ChakraProvider = (props) => { + const { + children, + colorModeManager, + portalZIndex, + resetScope, + resetCSS = true, + theme: theme2 = {}, + environment, + cssVarsRoot, + disableEnvironment, + disableGlobalStyle + } = props; + const _children = (0, import_jsx_runtime8.jsx)( + EnvironmentProvider, + { + environment, + disabled: disableEnvironment, + children + } + ); + return (0, import_jsx_runtime8.jsx)(ThemeProvider3, { theme: theme2, cssVarsRoot, children: (0, import_jsx_runtime8.jsxs)( + ColorModeProvider, + { + colorModeManager, + options: theme2.config, + children: [ + resetCSS ? (0, import_jsx_runtime8.jsx)(CSSReset, { scope: resetScope }) : (0, import_jsx_runtime8.jsx)(CSSPolyfill, {}), + !disableGlobalStyle && (0, import_jsx_runtime8.jsx)(GlobalStyle, {}), + portalZIndex ? (0, import_jsx_runtime8.jsx)(PortalManager, { zIndex: portalZIndex, children: _children }) : _children + ] + } + ) }); +}; + +// node_modules/@chakra-ui/toast/dist/chunk-LDADOVIM.mjs +var findById = (arr, id3) => arr.find((toast) => toast.id === id3); +function findToast(toasts, id3) { + const position3 = getToastPosition(toasts, id3); + const index = position3 ? toasts[position3].findIndex((toast) => toast.id === id3) : -1; + return { + position: position3, + index + }; +} +function getToastPosition(toasts, id3) { + for (const [position3, values] of Object.entries(toasts)) { + if (findById(values, id3)) { + return position3; + } + } +} +function getToastStyle(position3) { + const isRighty = position3.includes("right"); + const isLefty = position3.includes("left"); + let alignItems = "center"; + if (isRighty) + alignItems = "flex-end"; + if (isLefty) + alignItems = "flex-start"; + return { + display: "flex", + flexDirection: "column", + alignItems + }; +} +function getToastListStyle(position3) { + const isTopOrBottom = position3 === "top" || position3 === "bottom"; + const margin = isTopOrBottom ? "0 auto" : void 0; + const top = position3.includes("top") ? "env(safe-area-inset-top, 0px)" : void 0; + const bottom = position3.includes("bottom") ? "env(safe-area-inset-bottom, 0px)" : void 0; + const right = !position3.includes("left") ? "env(safe-area-inset-right, 0px)" : void 0; + const left = !position3.includes("right") ? "env(safe-area-inset-left, 0px)" : void 0; + return { + position: "fixed", + zIndex: "var(--toast-z-index, 5500)", + pointerEvents: "none", + display: "flex", + flexDirection: "column", + margin, + top, + bottom, + right, + left + }; +} + +// node_modules/@chakra-ui/react-use-timeout/dist/index.mjs +var import_react23 = __toESM(require_react(), 1); + +// node_modules/@chakra-ui/react-use-callback-ref/dist/index.mjs +var import_react22 = __toESM(require_react(), 1); +function useCallbackRef(callback, deps = []) { + const callbackRef = (0, import_react22.useRef)(callback); + (0, import_react22.useEffect)(() => { + callbackRef.current = callback; + }); + return (0, import_react22.useCallback)((...args) => { + var _a8; + return (_a8 = callbackRef.current) == null ? void 0 : _a8.call(callbackRef, ...args); + }, deps); +} + +// node_modules/@chakra-ui/react-use-timeout/dist/index.mjs +function useTimeout(callback, delay2) { + const fn = useCallbackRef(callback); + (0, import_react23.useEffect)(() => { + if (delay2 == null) + return void 0; + let timeoutId = null; + timeoutId = window.setTimeout(() => { + fn(); + }, delay2); + return () => { + if (timeoutId) { + window.clearTimeout(timeoutId); + } + }; + }, [delay2, fn]); +} + +// node_modules/@chakra-ui/react-use-update-effect/dist/index.mjs +var import_react24 = __toESM(require_react(), 1); +function useUpdateEffect(callback, deps) { + const renderCycleRef = (0, import_react24.useRef)(false); + const effectCycleRef = (0, import_react24.useRef)(false); + (0, import_react24.useEffect)(() => { + const mounted = renderCycleRef.current; + const run = mounted && effectCycleRef.current; + if (run) { + return callback(); + } + effectCycleRef.current = true; + }, deps); + (0, import_react24.useEffect)(() => { + renderCycleRef.current = true; + return () => { + renderCycleRef.current = false; + }; + }, []); +} + +// node_modules/framer-motion/dist/es/motion/index.mjs +var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); +var import_react35 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs +var import_react25 = __toESM(require_react(), 1); +var MotionConfigContext = (0, import_react25.createContext)({ + transformPagePoint: (p) => p, + isStatic: false, + reducedMotion: "never" +}); + +// node_modules/framer-motion/dist/es/context/MotionContext/index.mjs +var import_react26 = __toESM(require_react(), 1); +var MotionContext = (0, import_react26.createContext)({}); + +// node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +var import_react31 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/context/PresenceContext.mjs +var import_react27 = __toESM(require_react(), 1); +var PresenceContext = (0, import_react27.createContext)(null); + +// node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +var import_react28 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/is-browser.mjs +var isBrowser4 = typeof document !== "undefined"; + +// node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +var useIsomorphicLayoutEffect = isBrowser4 ? import_react28.useLayoutEffect : import_react28.useEffect; + +// node_modules/framer-motion/dist/es/context/LazyContext.mjs +var import_react29 = __toESM(require_react(), 1); +var LazyContext = (0, import_react29.createContext)({ strict: false }); + +// node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +var camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase(); + +// node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +var optimizedAppearDataId = "framerAppearId"; +var optimizedAppearDataAttribute = "data-" + camelToDash(optimizedAppearDataId); + +// node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +var MotionGlobalConfig = { + skipAnimations: false, + useManualTiming: false +}; + +// node_modules/framer-motion/dist/es/frameloop/render-step.mjs +var Queue = class { + constructor() { + this.order = []; + this.scheduled = /* @__PURE__ */ new Set(); + } + add(process2) { + if (!this.scheduled.has(process2)) { + this.scheduled.add(process2); + this.order.push(process2); + return true; + } + } + remove(process2) { + const index = this.order.indexOf(process2); + if (index !== -1) { + this.order.splice(index, 1); + this.scheduled.delete(process2); + } + } + clear() { + this.order.length = 0; + this.scheduled.clear(); + } +}; +function createRenderStep2(runNextFrame2) { + let thisFrame = new Queue(); + let nextFrame = new Queue(); + let numToRun = 0; + let isProcessing2 = false; + let flushNextFrame = false; + const toKeepAlive = /* @__PURE__ */ new WeakSet(); + const step = { + /** + * Schedule a process to run on the next frame. + */ + schedule: (callback, keepAlive = false, immediate = false) => { + const addToCurrentFrame = immediate && isProcessing2; + const queue = addToCurrentFrame ? thisFrame : nextFrame; + if (keepAlive) + toKeepAlive.add(callback); + if (queue.add(callback) && addToCurrentFrame && isProcessing2) { + numToRun = thisFrame.order.length; + } + return callback; + }, + /** + * Cancel the provided callback from running on the next frame. + */ + cancel: (callback) => { + nextFrame.remove(callback); + toKeepAlive.delete(callback); + }, + /** + * Execute all schedule callbacks. + */ + process: (frameData2) => { + if (isProcessing2) { + flushNextFrame = true; + return; + } + isProcessing2 = true; + [thisFrame, nextFrame] = [nextFrame, thisFrame]; + nextFrame.clear(); + numToRun = thisFrame.order.length; + if (numToRun) { + for (let i = 0; i < numToRun; i++) { + const callback = thisFrame.order[i]; + if (toKeepAlive.has(callback)) { + step.schedule(callback); + runNextFrame2(); + } + callback(frameData2); + } + } + isProcessing2 = false; + if (flushNextFrame) { + flushNextFrame = false; + step.process(frameData2); + } + } + }; + return step; +} + +// node_modules/framer-motion/dist/es/frameloop/batcher.mjs +var stepsOrder2 = [ + "read", + // Read + "resolveKeyframes", + // Write/Read/Write/Read + "update", + // Compute + "preRender", + // Compute + "render", + // Write + "postRender" + // Compute +]; +var maxElapsed2 = 40; +function createRenderBatcher(scheduleNextBatch, allowKeepAlive) { + let runNextFrame2 = false; + let useDefaultElapsed2 = true; + const state2 = { + delta: 0, + timestamp: 0, + isProcessing: false + }; + const steps3 = stepsOrder2.reduce((acc, key) => { + acc[key] = createRenderStep2(() => runNextFrame2 = true); + return acc; + }, {}); + const processStep2 = (stepId) => { + steps3[stepId].process(state2); + }; + const processBatch = () => { + const timestamp = MotionGlobalConfig.useManualTiming ? state2.timestamp : performance.now(); + runNextFrame2 = false; + state2.delta = useDefaultElapsed2 ? 1e3 / 60 : Math.max(Math.min(timestamp - state2.timestamp, maxElapsed2), 1); + state2.timestamp = timestamp; + state2.isProcessing = true; + stepsOrder2.forEach(processStep2); + state2.isProcessing = false; + if (runNextFrame2 && allowKeepAlive) { + useDefaultElapsed2 = false; + scheduleNextBatch(processBatch); + } + }; + const wake = () => { + runNextFrame2 = true; + useDefaultElapsed2 = true; + if (!state2.isProcessing) { + scheduleNextBatch(processBatch); + } + }; + const schedule = stepsOrder2.reduce((acc, key) => { + const step = steps3[key]; + acc[key] = (process2, keepAlive = false, immediate = false) => { + if (!runNextFrame2) + wake(); + return step.schedule(process2, keepAlive, immediate); + }; + return acc; + }, {}); + const cancel = (process2) => stepsOrder2.forEach((key) => steps3[key].cancel(process2)); + return { schedule, cancel, state: state2, steps: steps3 }; +} + +// node_modules/framer-motion/dist/es/frameloop/microtask.mjs +var { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false); + +// node_modules/framer-motion/dist/es/utils/is-ref-object.mjs +function isRefObject2(ref) { + return ref && typeof ref === "object" && Object.prototype.hasOwnProperty.call(ref, "current"); +} + +// node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +var import_react30 = __toESM(require_react(), 1); +var SwitchLayoutGroupContext = (0, import_react30.createContext)({}); + +// node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +var scheduleHandoffComplete = false; +function useVisualElement(Component3, visualState, props, createVisualElement2, ProjectionNodeConstructor) { + const { visualElement: parent } = (0, import_react31.useContext)(MotionContext); + const lazyContext = (0, import_react31.useContext)(LazyContext); + const presenceContext = (0, import_react31.useContext)(PresenceContext); + const reducedMotionConfig = (0, import_react31.useContext)(MotionConfigContext).reducedMotion; + const visualElementRef = (0, import_react31.useRef)(); + createVisualElement2 = createVisualElement2 || lazyContext.renderer; + if (!visualElementRef.current && createVisualElement2) { + visualElementRef.current = createVisualElement2(Component3, { + visualState, + parent, + props, + presenceContext, + blockInitialAnimation: presenceContext ? presenceContext.initial === false : false, + reducedMotionConfig + }); + } + const visualElement = visualElementRef.current; + const initialLayoutGroupConfig = (0, import_react31.useContext)(SwitchLayoutGroupContext); + if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg")) { + createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig); + } + (0, import_react31.useInsertionEffect)(() => { + visualElement && visualElement.update(props, presenceContext); + }); + const wantsHandoff = (0, import_react31.useRef)(Boolean(props[optimizedAppearDataAttribute] && !window.HandoffComplete)); + useIsomorphicLayoutEffect(() => { + if (!visualElement) + return; + visualElement.updateFeatures(); + microtask.render(visualElement.render); + if (wantsHandoff.current && visualElement.animationState) { + visualElement.animationState.animateChanges(); + } + }); + (0, import_react31.useEffect)(() => { + if (!visualElement) + return; + if (!wantsHandoff.current && visualElement.animationState) { + visualElement.animationState.animateChanges(); + } + if (wantsHandoff.current) { + wantsHandoff.current = false; + if (!scheduleHandoffComplete) { + scheduleHandoffComplete = true; + queueMicrotask(completeHandoff); + } + } + }); + return visualElement; +} +function completeHandoff() { + window.HandoffComplete = true; +} +function createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) { + const { layoutId, layout: layout3, drag: drag2, dragConstraints, layoutScroll, layoutRoot } = props; + visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props["data-framer-portal-id"] ? void 0 : getClosestProjectingNode(visualElement.parent)); + visualElement.projection.setOptions({ + layoutId, + layout: layout3, + alwaysMeasureLayout: Boolean(drag2) || dragConstraints && isRefObject2(dragConstraints), + visualElement, + scheduleRender: () => visualElement.scheduleRender(), + /** + * TODO: Update options in an effect. This could be tricky as it'll be too late + * to update by the time layout animations run. + * We also need to fix this safeToRemove by linking it up to the one returned by usePresence, + * ensuring it gets called if there's no potential layout animations. + * + */ + animationType: typeof layout3 === "string" ? layout3 : "both", + initialPromotionConfig, + layoutScroll, + layoutRoot + }); +} +function getClosestProjectingNode(visualElement) { + if (!visualElement) + return void 0; + return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent); +} + +// node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +var import_react32 = __toESM(require_react(), 1); +function useMotionRef(visualState, visualElement, externalRef) { + return (0, import_react32.useCallback)( + (instance) => { + instance && visualState.mount && visualState.mount(instance); + if (visualElement) { + if (instance) { + visualElement.mount(instance); + } else { + visualElement.unmount(); + } + } + if (externalRef) { + if (typeof externalRef === "function") { + externalRef(instance); + } else if (isRefObject2(externalRef)) { + externalRef.current = instance; + } + } + }, + /** + * Only pass a new ref callback to React if we've received a visual element + * factory. Otherwise we'll be mounting/remounting every time externalRef + * or other dependencies change. + */ + [visualElement] + ); +} + +// node_modules/framer-motion/dist/es/context/MotionContext/create.mjs +var import_react33 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +function isVariantLabel(v) { + return typeof v === "string" || Array.isArray(v); +} + +// node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +function isAnimationControls(v) { + return v !== null && typeof v === "object" && typeof v.start === "function"; +} + +// node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +var variantPriorityOrder = [ + "animate", + "whileInView", + "whileFocus", + "whileHover", + "whileTap", + "whileDrag", + "exit" +]; +var variantProps = ["initial", ...variantPriorityOrder]; + +// node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +function isControllingVariants(props) { + return isAnimationControls(props.animate) || variantProps.some((name) => isVariantLabel(props[name])); +} +function isVariantNode(props) { + return Boolean(isControllingVariants(props) || props.variants); +} + +// node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs +function getCurrentTreeVariants(props, context) { + if (isControllingVariants(props)) { + const { initial, animate: animate2 } = props; + return { + initial: initial === false || isVariantLabel(initial) ? initial : void 0, + animate: isVariantLabel(animate2) ? animate2 : void 0 + }; + } + return props.inherit !== false ? context : {}; +} + +// node_modules/framer-motion/dist/es/context/MotionContext/create.mjs +function useCreateMotionContext(props) { + const { initial, animate: animate2 } = getCurrentTreeVariants(props, (0, import_react33.useContext)(MotionContext)); + return (0, import_react33.useMemo)(() => ({ initial, animate: animate2 }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate2)]); +} +function variantLabelsAsDependency(prop) { + return Array.isArray(prop) ? prop.join(" ") : prop; +} + +// node_modules/framer-motion/dist/es/motion/features/definitions.mjs +var featureProps = { + animation: [ + "animate", + "variants", + "whileHover", + "whileTap", + "exit", + "whileInView", + "whileFocus", + "whileDrag" + ], + exit: ["exit"], + drag: ["drag", "dragControls"], + focus: ["whileFocus"], + hover: ["whileHover", "onHoverStart", "onHoverEnd"], + tap: ["whileTap", "onTap", "onTapStart", "onTapCancel"], + pan: ["onPan", "onPanStart", "onPanSessionStart", "onPanEnd"], + inView: ["whileInView", "onViewportEnter", "onViewportLeave"], + layout: ["layout", "layoutId"] +}; +var featureDefinitions = {}; +for (const key in featureProps) { + featureDefinitions[key] = { + isEnabled: (props) => featureProps[key].some((name) => !!props[name]) + }; +} + +// node_modules/framer-motion/dist/es/motion/features/load-features.mjs +function loadFeatures(features) { + for (const key in features) { + featureDefinitions[key] = { + ...featureDefinitions[key], + ...features[key] + }; + } +} + +// node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs +var import_react34 = __toESM(require_react(), 1); +var LayoutGroupContext = (0, import_react34.createContext)({}); + +// node_modules/framer-motion/dist/es/motion/utils/symbol.mjs +var motionComponentSymbol = Symbol.for("motionComponentSymbol"); + +// node_modules/framer-motion/dist/es/utils/noop.mjs +var noop3 = (any2) => any2; + +// node_modules/framer-motion/dist/es/utils/errors.mjs +var warning = noop3; +var invariant2 = noop3; +if (true) { + warning = (check, message) => { + if (!check && typeof console !== "undefined") { + console.warn(message); + } + }; + invariant2 = (check, message) => { + if (!check) { + throw new Error(message); + } + }; +} + +// node_modules/framer-motion/dist/es/motion/index.mjs +function createMotionComponent({ preloadedFeatures: preloadedFeatures2, createVisualElement: createVisualElement2, useRender, useVisualState: useVisualState2, Component: Component3 }) { + preloadedFeatures2 && loadFeatures(preloadedFeatures2); + function MotionComponent(props, externalRef) { + let MeasureLayout2; + const configAndProps = { + ...(0, import_react35.useContext)(MotionConfigContext), + ...props, + layoutId: useLayoutId(props) + }; + const { isStatic } = configAndProps; + const context = useCreateMotionContext(props); + const visualState = useVisualState2(props, isStatic); + if (!isStatic && isBrowser4) { + useStrictMode(configAndProps, preloadedFeatures2); + const layoutProjection = getProjectionFunctionality(configAndProps); + MeasureLayout2 = layoutProjection.MeasureLayout; + context.visualElement = useVisualElement(Component3, visualState, configAndProps, createVisualElement2, layoutProjection.ProjectionNode); + } + return (0, import_jsx_runtime9.jsxs)(MotionContext.Provider, { value: context, children: [MeasureLayout2 && context.visualElement ? (0, import_jsx_runtime9.jsx)(MeasureLayout2, { visualElement: context.visualElement, ...configAndProps }) : null, useRender(Component3, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }); + } + const ForwardRefComponent = (0, import_react35.forwardRef)(MotionComponent); + ForwardRefComponent[motionComponentSymbol] = Component3; + return ForwardRefComponent; +} +function useLayoutId({ layoutId }) { + const layoutGroupId = (0, import_react35.useContext)(LayoutGroupContext).id; + return layoutGroupId && layoutId !== void 0 ? layoutGroupId + "-" + layoutId : layoutId; +} +function useStrictMode(configAndProps, preloadedFeatures2) { + const isStrict = (0, import_react35.useContext)(LazyContext).strict; + if (preloadedFeatures2 && isStrict) { + const strictMessage = "You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead."; + configAndProps.ignoreStrict ? warning(false, strictMessage) : invariant2(false, strictMessage); + } +} +function getProjectionFunctionality(props) { + const { drag: drag2, layout: layout3 } = featureDefinitions; + if (!drag2 && !layout3) + return {}; + const combined = { ...drag2, ...layout3 }; + return { + MeasureLayout: (drag2 === null || drag2 === void 0 ? void 0 : drag2.isEnabled(props)) || (layout3 === null || layout3 === void 0 ? void 0 : layout3.isEnabled(props)) ? combined.MeasureLayout : void 0, + ProjectionNode: combined.ProjectionNode + }; +} + +// node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs +function createMotionProxy(createConfig) { + function custom(Component3, customMotionComponentConfig = {}) { + return createMotionComponent(createConfig(Component3, customMotionComponentConfig)); + } + if (typeof Proxy === "undefined") { + return custom; + } + const componentCache = /* @__PURE__ */ new Map(); + return new Proxy(custom, { + /** + * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc. + * The prop name is passed through as `key` and we can use that to generate a `motion` + * DOM component with that name. + */ + get: (_target, key) => { + if (!componentCache.has(key)) { + componentCache.set(key, custom(key)); + } + return componentCache.get(key); + } + }); +} + +// node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs +var lowercaseSVGElements = [ + "animate", + "circle", + "defs", + "desc", + "ellipse", + "g", + "image", + "line", + "filter", + "marker", + "mask", + "metadata", + "path", + "pattern", + "polygon", + "polyline", + "rect", + "stop", + "switch", + "symbol", + "svg", + "text", + "tspan", + "use", + "view" +]; + +// node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +function isSVGComponent(Component3) { + if ( + /** + * If it's not a string, it's a custom React component. Currently we only support + * HTML custom React components. + */ + typeof Component3 !== "string" || /** + * If it contains a dash, the element is a custom HTML webcomponent. + */ + Component3.includes("-") + ) { + return false; + } else if ( + /** + * If it's in our list of lowercase SVG tags, it's an SVG component + */ + lowercaseSVGElements.indexOf(Component3) > -1 || /** + * If it contains a capital letter, it's an SVG component + */ + /[A-Z]/u.test(Component3) + ) { + return true; + } + return false; +} + +// node_modules/framer-motion/dist/es/render/dom/use-render.mjs +var import_react38 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/render/html/use-props.mjs +var import_react36 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +var scaleCorrectors = {}; +function addScaleCorrector(correctors) { + Object.assign(scaleCorrectors, correctors); +} + +// node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +var transformPropOrder = [ + "transformPerspective", + "x", + "y", + "z", + "translateX", + "translateY", + "translateZ", + "scale", + "scaleX", + "scaleY", + "rotate", + "rotateX", + "rotateY", + "rotateZ", + "skew", + "skewX", + "skewY" +]; +var transformProps = new Set(transformPropOrder); + +// node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +function isForcedMotionValue(key, { layout: layout3, layoutId }) { + return transformProps.has(key) || key.startsWith("origin") || (layout3 || layoutId !== void 0) && (!!scaleCorrectors[key] || key === "opacity"); +} + +// node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +var isMotionValue = (value) => Boolean(value && value.getVelocity); + +// node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +var translateAlias = { + x: "translateX", + y: "translateY", + z: "translateZ", + transformPerspective: "perspective" +}; +var numTransforms = transformPropOrder.length; +function buildTransform(transform3, { enableHardwareAcceleration = true, allowTransformNone = true }, transformIsDefault, transformTemplate2) { + let transformString = ""; + for (let i = 0; i < numTransforms; i++) { + const key = transformPropOrder[i]; + if (transform3[key] !== void 0) { + const transformName = translateAlias[key] || key; + transformString += `${transformName}(${transform3[key]}) `; + } + } + if (enableHardwareAcceleration && !transform3.z) { + transformString += "translateZ(0)"; + } + transformString = transformString.trim(); + if (transformTemplate2) { + transformString = transformTemplate2(transform3, transformIsDefault ? "" : transformString); + } else if (allowTransformNone && transformIsDefault) { + transformString = "none"; + } + return transformString; +} + +// node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +var checkStringStartsWith = (token2) => (key) => typeof key === "string" && key.startsWith(token2); +var isCSSVariableName = checkStringStartsWith("--"); +var startsAsVariableToken = checkStringStartsWith("var(--"); +var isCSSVariableToken = (value) => { + const startsWithToken = startsAsVariableToken(value); + if (!startsWithToken) + return false; + return singleCssVariableRegex.test(value.split("/*")[0].trim()); +}; +var singleCssVariableRegex = /var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu; + +// node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +var getValueAsType = (value, type) => { + return type && typeof value === "number" ? type.transform(value) : value; +}; + +// node_modules/framer-motion/dist/es/utils/clamp.mjs +var clamp = (min, max, v) => { + if (v > max) + return max; + if (v < min) + return min; + return v; +}; + +// node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +var number = { + test: (v) => typeof v === "number", + parse: parseFloat, + transform: (v) => v +}; +var alpha = { + ...number, + transform: (v) => clamp(0, 1, v) +}; +var scale = { + ...number, + default: 1 +}; + +// node_modules/framer-motion/dist/es/value/types/utils.mjs +var sanitize = (v) => Math.round(v * 1e5) / 1e5; +var floatRegex = /-?(?:\d+(?:\.\d+)?|\.\d+)/gu; +var colorRegex = /(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu; +var singleColorRegex = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu; +function isString2(v) { + return typeof v === "string"; +} + +// node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +var createUnitType = (unit) => ({ + test: (v) => isString2(v) && v.endsWith(unit) && v.split(" ").length === 1, + parse: parseFloat, + transform: (v) => `${v}${unit}` +}); +var degrees = createUnitType("deg"); +var percent = createUnitType("%"); +var px3 = createUnitType("px"); +var vh = createUnitType("vh"); +var vw = createUnitType("vw"); +var progressPercentage = { + ...percent, + parse: (v) => percent.parse(v) / 100, + transform: (v) => percent.transform(v * 100) +}; + +// node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +var int = { + ...number, + transform: Math.round +}; + +// node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +var numberValueTypes = { + // Border props + borderWidth: px3, + borderTopWidth: px3, + borderRightWidth: px3, + borderBottomWidth: px3, + borderLeftWidth: px3, + borderRadius: px3, + radius: px3, + borderTopLeftRadius: px3, + borderTopRightRadius: px3, + borderBottomRightRadius: px3, + borderBottomLeftRadius: px3, + // Positioning props + width: px3, + maxWidth: px3, + height: px3, + maxHeight: px3, + size: px3, + top: px3, + right: px3, + bottom: px3, + left: px3, + // Spacing props + padding: px3, + paddingTop: px3, + paddingRight: px3, + paddingBottom: px3, + paddingLeft: px3, + margin: px3, + marginTop: px3, + marginRight: px3, + marginBottom: px3, + marginLeft: px3, + // Transform props + rotate: degrees, + rotateX: degrees, + rotateY: degrees, + rotateZ: degrees, + scale, + scaleX: scale, + scaleY: scale, + scaleZ: scale, + skew: degrees, + skewX: degrees, + skewY: degrees, + distance: px3, + translateX: px3, + translateY: px3, + translateZ: px3, + x: px3, + y: px3, + z: px3, + perspective: px3, + transformPerspective: px3, + opacity: alpha, + originX: progressPercentage, + originY: progressPercentage, + originZ: px3, + // Misc + zIndex: int, + backgroundPositionX: px3, + backgroundPositionY: px3, + // SVG + fillOpacity: alpha, + strokeOpacity: alpha, + numOctaves: int +}; + +// node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +function buildHTMLStyles(state2, latestValues, options, transformTemplate2) { + const { style, vars: vars2, transform: transform3, transformOrigin: transformOrigin2 } = state2; + let hasTransform2 = false; + let hasTransformOrigin = false; + let transformIsNone = true; + for (const key in latestValues) { + const value = latestValues[key]; + if (isCSSVariableName(key)) { + vars2[key] = value; + continue; + } + const valueType = numberValueTypes[key]; + const valueAsType = getValueAsType(value, valueType); + if (transformProps.has(key)) { + hasTransform2 = true; + transform3[key] = valueAsType; + if (!transformIsNone) + continue; + if (value !== (valueType.default || 0)) + transformIsNone = false; + } else if (key.startsWith("origin")) { + hasTransformOrigin = true; + transformOrigin2[key] = valueAsType; + } else { + style[key] = valueAsType; + } + } + if (!latestValues.transform) { + if (hasTransform2 || transformTemplate2) { + style.transform = buildTransform(state2.transform, options, transformIsNone, transformTemplate2); + } else if (style.transform) { + style.transform = "none"; + } + } + if (hasTransformOrigin) { + const { originX = "50%", originY = "50%", originZ = 0 } = transformOrigin2; + style.transformOrigin = `${originX} ${originY} ${originZ}`; + } +} + +// node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs +var createHtmlRenderState = () => ({ + style: {}, + transform: {}, + transformOrigin: {}, + vars: {} +}); + +// node_modules/framer-motion/dist/es/render/html/use-props.mjs +function copyRawValuesOnly(target, source, props) { + for (const key in source) { + if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) { + target[key] = source[key]; + } + } +} +function useInitialMotionValues({ transformTemplate: transformTemplate2 }, visualState, isStatic) { + return (0, import_react36.useMemo)(() => { + const state2 = createHtmlRenderState(); + buildHTMLStyles(state2, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate2); + return Object.assign({}, state2.vars, state2.style); + }, [visualState]); +} +function useStyle(props, visualState, isStatic) { + const styleProp = props.style || {}; + const style = {}; + copyRawValuesOnly(style, styleProp, props); + Object.assign(style, useInitialMotionValues(props, visualState, isStatic)); + return style; +} +function useHTMLProps(props, visualState, isStatic) { + const htmlProps = {}; + const style = useStyle(props, visualState, isStatic); + if (props.drag && props.dragListener !== false) { + htmlProps.draggable = false; + style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = "none"; + style.touchAction = props.drag === true ? "none" : `pan-${props.drag === "x" ? "y" : "x"}`; + } + if (props.tabIndex === void 0 && (props.onTap || props.onTapStart || props.whileTap)) { + htmlProps.tabIndex = 0; + } + htmlProps.style = style; + return htmlProps; +} + +// node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs +var validMotionProps = /* @__PURE__ */ new Set([ + "animate", + "exit", + "variants", + "initial", + "style", + "values", + "variants", + "transition", + "transformTemplate", + "custom", + "inherit", + "onBeforeLayoutMeasure", + "onAnimationStart", + "onAnimationComplete", + "onUpdate", + "onDragStart", + "onDrag", + "onDragEnd", + "onMeasureDragConstraints", + "onDirectionLock", + "onDragTransitionEnd", + "_dragX", + "_dragY", + "onHoverStart", + "onHoverEnd", + "onViewportEnter", + "onViewportLeave", + "globalTapTarget", + "ignoreStrict", + "viewport" +]); +function isValidMotionProp(key) { + return key.startsWith("while") || key.startsWith("drag") && key !== "draggable" || key.startsWith("layout") || key.startsWith("onTap") || key.startsWith("onPan") || key.startsWith("onLayout") || validMotionProps.has(key); +} + +// node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs +var shouldForward = (key) => !isValidMotionProp(key); +function loadExternalIsValidProp(isValidProp) { + if (!isValidProp) + return; + shouldForward = (key) => key.startsWith("on") ? !isValidMotionProp(key) : isValidProp(key); +} +try { + loadExternalIsValidProp((init_emotion_is_prop_valid_esm(), __toCommonJS(emotion_is_prop_valid_esm_exports)).default); +} catch (_a8) { +} +function filterProps(props, isDom3, forwardMotionProps) { + const filteredProps = {}; + for (const key in props) { + if (key === "values" && typeof props.values === "object") + continue; + if (shouldForward(key) || forwardMotionProps === true && isValidMotionProp(key) || !isDom3 && !isValidMotionProp(key) || // If trying to use native HTML drag events, forward drag listeners + props["draggable"] && key.startsWith("onDrag")) { + filteredProps[key] = props[key]; + } + } + return filteredProps; +} + +// node_modules/framer-motion/dist/es/render/svg/use-props.mjs +var import_react37 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +function calcOrigin(origin, offset, size2) { + return typeof origin === "string" ? origin : px3.transform(offset + size2 * origin); +} +function calcSVGTransformOrigin(dimensions, originX, originY) { + const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width); + const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height); + return `${pxOriginX} ${pxOriginY}`; +} + +// node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +var dashKeys = { + offset: "stroke-dashoffset", + array: "stroke-dasharray" +}; +var camelKeys = { + offset: "strokeDashoffset", + array: "strokeDasharray" +}; +function buildSVGPath(attrs, length2, spacing2 = 1, offset = 0, useDashCase = true) { + attrs.pathLength = 1; + const keys2 = useDashCase ? dashKeys : camelKeys; + attrs[keys2.offset] = px3.transform(-offset); + const pathLength = px3.transform(length2); + const pathSpacing = px3.transform(spacing2); + attrs[keys2.array] = `${pathLength} ${pathSpacing}`; +} + +// node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +function buildSVGAttrs(state2, { + attrX, + attrY, + attrScale, + originX, + originY, + pathLength, + pathSpacing = 1, + pathOffset = 0, + // This is object creation, which we try to avoid per-frame. + ...latest +}, options, isSVGTag2, transformTemplate2) { + buildHTMLStyles(state2, latest, options, transformTemplate2); + if (isSVGTag2) { + if (state2.style.viewBox) { + state2.attrs.viewBox = state2.style.viewBox; + } + return; + } + state2.attrs = state2.style; + state2.style = {}; + const { attrs, style, dimensions } = state2; + if (attrs.transform) { + if (dimensions) + style.transform = attrs.transform; + delete attrs.transform; + } + if (dimensions && (originX !== void 0 || originY !== void 0 || style.transform)) { + style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== void 0 ? originX : 0.5, originY !== void 0 ? originY : 0.5); + } + if (attrX !== void 0) + attrs.x = attrX; + if (attrY !== void 0) + attrs.y = attrY; + if (attrScale !== void 0) + attrs.scale = attrScale; + if (pathLength !== void 0) { + buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false); + } +} + +// node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +var createSvgRenderState = () => ({ + ...createHtmlRenderState(), + attrs: {} +}); + +// node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +var isSVGTag = (tag) => typeof tag === "string" && tag.toLowerCase() === "svg"; + +// node_modules/framer-motion/dist/es/render/svg/use-props.mjs +function useSVGProps(props, visualState, _isStatic, Component3) { + const visualProps = (0, import_react37.useMemo)(() => { + const state2 = createSvgRenderState(); + buildSVGAttrs(state2, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component3), props.transformTemplate); + return { + ...state2.attrs, + style: { ...state2.style } + }; + }, [visualState]); + if (props.style) { + const rawStyles = {}; + copyRawValuesOnly(rawStyles, props.style, props); + visualProps.style = { ...rawStyles, ...visualProps.style }; + } + return visualProps; +} + +// node_modules/framer-motion/dist/es/render/dom/use-render.mjs +function createUseRender(forwardMotionProps = false) { + const useRender = (Component3, props, ref, { latestValues }, isStatic) => { + const useVisualProps = isSVGComponent(Component3) ? useSVGProps : useHTMLProps; + const visualProps = useVisualProps(props, latestValues, isStatic, Component3); + const filteredProps = filterProps(props, typeof Component3 === "string", forwardMotionProps); + const elementProps = Component3 !== import_react38.Fragment ? { ...filteredProps, ...visualProps, ref } : {}; + const { children } = props; + const renderedChildren = (0, import_react38.useMemo)(() => isMotionValue(children) ? children.get() : children, [children]); + return (0, import_react38.createElement)(Component3, { + ...elementProps, + children: renderedChildren + }); + }; + return useRender; +} + +// node_modules/framer-motion/dist/es/render/html/utils/render.mjs +function renderHTML(element, { style, vars: vars2 }, styleProp, projection) { + Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp)); + for (const key in vars2) { + element.style.setProperty(key, vars2[key]); + } +} + +// node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +var camelCaseAttributes = /* @__PURE__ */ new Set([ + "baseFrequency", + "diffuseConstant", + "kernelMatrix", + "kernelUnitLength", + "keySplines", + "keyTimes", + "limitingConeAngle", + "markerHeight", + "markerWidth", + "numOctaves", + "targetX", + "targetY", + "surfaceScale", + "specularConstant", + "specularExponent", + "stdDeviation", + "tableValues", + "viewBox", + "gradientTransform", + "pathLength", + "startOffset", + "textLength", + "lengthAdjust" +]); + +// node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +function renderSVG(element, renderState, _styleProp, projection) { + renderHTML(element, renderState, void 0, projection); + for (const key in renderState.attrs) { + element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]); + } +} + +// node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +function scrapeMotionValuesFromProps(props, prevProps, visualElement) { + var _a8; + const { style } = props; + const newValues = {}; + for (const key in style) { + if (isMotionValue(style[key]) || prevProps.style && isMotionValue(prevProps.style[key]) || isForcedMotionValue(key, props) || ((_a8 = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a8 === void 0 ? void 0 : _a8.liveStyle) !== void 0) { + newValues[key] = style[key]; + } + } + return newValues; +} + +// node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +function scrapeMotionValuesFromProps2(props, prevProps, visualElement) { + const newValues = scrapeMotionValuesFromProps(props, prevProps, visualElement); + for (const key in props) { + if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) { + const targetKey = transformPropOrder.indexOf(key) !== -1 ? "attr" + key.charAt(0).toUpperCase() + key.substring(1) : key; + newValues[targetKey] = props[key]; + } + } + return newValues; +} + +// node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs +var import_react40 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +function getValueState(visualElement) { + const state2 = [{}, {}]; + visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => { + state2[0][key] = value.get(); + state2[1][key] = value.getVelocity(); + }); + return state2; +} +function resolveVariantFromProps(props, definition, custom, visualElement) { + if (typeof definition === "function") { + const [current, velocity] = getValueState(visualElement); + definition = definition(custom !== void 0 ? custom : props.custom, current, velocity); + } + if (typeof definition === "string") { + definition = props.variants && props.variants[definition]; + } + if (typeof definition === "function") { + const [current, velocity] = getValueState(visualElement); + definition = definition(custom !== void 0 ? custom : props.custom, current, velocity); + } + return definition; +} + +// node_modules/framer-motion/dist/es/utils/use-constant.mjs +var import_react39 = __toESM(require_react(), 1); +function useConstant(init) { + const ref = (0, import_react39.useRef)(null); + if (ref.current === null) { + ref.current = init(); + } + return ref.current; +} + +// node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +var isKeyframesTarget = (v) => { + return Array.isArray(v); +}; + +// node_modules/framer-motion/dist/es/utils/resolve-value.mjs +var isCustomValue = (v) => { + return Boolean(v && typeof v === "object" && v.mix && v.toValue); +}; +var resolveFinalValueInKeyframes = (v) => { + return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v; +}; + +// node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +function resolveMotionValue(value) { + const unwrappedValue = isMotionValue(value) ? value.get() : value; + return isCustomValue(unwrappedValue) ? unwrappedValue.toValue() : unwrappedValue; +} + +// node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs +function makeState({ scrapeMotionValuesFromProps: scrapeMotionValuesFromProps3, createRenderState, onMount }, props, context, presenceContext) { + const state2 = { + latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps3), + renderState: createRenderState() + }; + if (onMount) { + state2.mount = (instance) => onMount(props, instance, state2); + } + return state2; +} +var makeUseVisualState = (config2) => (props, isStatic) => { + const context = (0, import_react40.useContext)(MotionContext); + const presenceContext = (0, import_react40.useContext)(PresenceContext); + const make = () => makeState(config2, props, context, presenceContext); + return isStatic ? make() : useConstant(make); +}; +function makeLatestValues(props, context, presenceContext, scrapeMotionValues) { + const values = {}; + const motionValues = scrapeMotionValues(props, {}); + for (const key in motionValues) { + values[key] = resolveMotionValue(motionValues[key]); + } + let { initial, animate: animate2 } = props; + const isControllingVariants$1 = isControllingVariants(props); + const isVariantNode$1 = isVariantNode(props); + if (context && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== false) { + if (initial === void 0) + initial = context.initial; + if (animate2 === void 0) + animate2 = context.animate; + } + let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === false : false; + isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false; + const variantToSet = isInitialAnimationBlocked ? animate2 : initial; + if (variantToSet && typeof variantToSet !== "boolean" && !isAnimationControls(variantToSet)) { + const list2 = Array.isArray(variantToSet) ? variantToSet : [variantToSet]; + list2.forEach((definition) => { + const resolved = resolveVariantFromProps(props, definition); + if (!resolved) + return; + const { transitionEnd, transition: transition3, ...target } = resolved; + for (const key in target) { + let valueTarget = target[key]; + if (Array.isArray(valueTarget)) { + const index = isInitialAnimationBlocked ? valueTarget.length - 1 : 0; + valueTarget = valueTarget[index]; + } + if (valueTarget !== null) { + values[key] = valueTarget; + } + } + for (const key in transitionEnd) + values[key] = transitionEnd[key]; + }); + } + return values; +} + +// node_modules/framer-motion/dist/es/frameloop/frame.mjs +var { schedule: frame2, cancel: cancelFrame, state: frameData, steps: steps2 } = createRenderBatcher(typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : noop3, true); + +// node_modules/framer-motion/dist/es/render/svg/config-motion.mjs +var svgMotionConfig = { + useVisualState: makeUseVisualState({ + scrapeMotionValuesFromProps: scrapeMotionValuesFromProps2, + createRenderState: createSvgRenderState, + onMount: (props, instance, { renderState, latestValues }) => { + frame2.read(() => { + try { + renderState.dimensions = typeof instance.getBBox === "function" ? instance.getBBox() : instance.getBoundingClientRect(); + } catch (e) { + renderState.dimensions = { + x: 0, + y: 0, + width: 0, + height: 0 + }; + } + }); + frame2.render(() => { + buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate); + renderSVG(instance, renderState); + }); + } + }) +}; + +// node_modules/framer-motion/dist/es/render/html/config-motion.mjs +var htmlMotionConfig = { + useVisualState: makeUseVisualState({ + scrapeMotionValuesFromProps, + createRenderState: createHtmlRenderState + }) +}; + +// node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs +function createDomMotionConfig(Component3, { forwardMotionProps = false }, preloadedFeatures2, createVisualElement2) { + const baseConfig = isSVGComponent(Component3) ? svgMotionConfig : htmlMotionConfig; + return { + ...baseConfig, + preloadedFeatures: preloadedFeatures2, + useRender: createUseRender(forwardMotionProps), + createVisualElement: createVisualElement2, + Component: Component3 + }; +} + +// node_modules/framer-motion/dist/es/events/add-dom-event.mjs +function addDomEvent2(target, eventName, handler, options = { passive: true }) { + target.addEventListener(eventName, handler, options); + return () => target.removeEventListener(eventName, handler); +} + +// node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs +var isPrimaryPointer = (event) => { + if (event.pointerType === "mouse") { + return typeof event.button !== "number" || event.button <= 0; + } else { + return event.isPrimary !== false; + } +}; + +// node_modules/framer-motion/dist/es/events/event-info.mjs +function extractEventInfo2(event, pointType = "page") { + return { + point: { + x: event[`${pointType}X`], + y: event[`${pointType}Y`] + } + }; +} +var addPointerInfo = (handler) => { + return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo2(event)); +}; + +// node_modules/framer-motion/dist/es/events/add-pointer-event.mjs +function addPointerEvent2(target, eventName, handler, options) { + return addDomEvent2(target, eventName, addPointerInfo(handler), options); +} + +// node_modules/framer-motion/dist/es/utils/pipe.mjs +var combineFunctions = (a, b) => (v) => b(a(v)); +var pipe5 = (...transformers) => transformers.reduce(combineFunctions); + +// node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs +function createLock(name) { + let lock = null; + return () => { + const openLock = () => { + lock = null; + }; + if (lock === null) { + lock = name; + return openLock; + } + return false; + }; +} +var globalHorizontalLock = createLock("dragHorizontal"); +var globalVerticalLock = createLock("dragVertical"); +function getGlobalLock(drag2) { + let lock = false; + if (drag2 === "y") { + lock = globalVerticalLock(); + } else if (drag2 === "x") { + lock = globalHorizontalLock(); + } else { + const openHorizontal = globalHorizontalLock(); + const openVertical = globalVerticalLock(); + if (openHorizontal && openVertical) { + lock = () => { + openHorizontal(); + openVertical(); + }; + } else { + if (openHorizontal) + openHorizontal(); + if (openVertical) + openVertical(); + } + } + return lock; +} +function isDragActive() { + const openGestureLock = getGlobalLock(true); + if (!openGestureLock) + return true; + openGestureLock(); + return false; +} + +// node_modules/framer-motion/dist/es/motion/features/Feature.mjs +var Feature = class { + constructor(node3) { + this.isMounted = false; + this.node = node3; + } + update() { + } +}; + +// node_modules/framer-motion/dist/es/gestures/hover.mjs +function addHoverEvent(node3, isActive) { + const eventName = isActive ? "pointerenter" : "pointerleave"; + const callbackName = isActive ? "onHoverStart" : "onHoverEnd"; + const handleEvent = (event, info) => { + if (event.pointerType === "touch" || isDragActive()) + return; + const props = node3.getProps(); + if (node3.animationState && props.whileHover) { + node3.animationState.setActive("whileHover", isActive); + } + const callback = props[callbackName]; + if (callback) { + frame2.postRender(() => callback(event, info)); + } + }; + return addPointerEvent2(node3.current, eventName, handleEvent, { + passive: !node3.getProps()[callbackName] + }); +} +var HoverGesture = class extends Feature { + mount() { + this.unmount = pipe5(addHoverEvent(this.node, true), addHoverEvent(this.node, false)); + } + unmount() { + } +}; + +// node_modules/framer-motion/dist/es/gestures/focus.mjs +var FocusGesture = class extends Feature { + constructor() { + super(...arguments); + this.isActive = false; + } + onFocus() { + let isFocusVisible2 = false; + try { + isFocusVisible2 = this.node.current.matches(":focus-visible"); + } catch (e) { + isFocusVisible2 = true; + } + if (!isFocusVisible2 || !this.node.animationState) + return; + this.node.animationState.setActive("whileFocus", true); + this.isActive = true; + } + onBlur() { + if (!this.isActive || !this.node.animationState) + return; + this.node.animationState.setActive("whileFocus", false); + this.isActive = false; + } + mount() { + this.unmount = pipe5(addDomEvent2(this.node.current, "focus", () => this.onFocus()), addDomEvent2(this.node.current, "blur", () => this.onBlur())); + } + unmount() { + } +}; + +// node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs +var isNodeOrChild = (parent, child) => { + if (!child) { + return false; + } else if (parent === child) { + return true; + } else { + return isNodeOrChild(parent, child.parentElement); + } +}; + +// node_modules/framer-motion/dist/es/gestures/press.mjs +function fireSyntheticPointerEvent(name, handler) { + if (!handler) + return; + const syntheticPointerEvent = new PointerEvent("pointer" + name); + handler(syntheticPointerEvent, extractEventInfo2(syntheticPointerEvent)); +} +var PressGesture = class extends Feature { + constructor() { + super(...arguments); + this.removeStartListeners = noop3; + this.removeEndListeners = noop3; + this.removeAccessibleListeners = noop3; + this.startPointerPress = (startEvent, startInfo) => { + if (this.isPressing) + return; + this.removeEndListeners(); + const props = this.node.getProps(); + const endPointerPress = (endEvent, endInfo) => { + if (!this.checkPressEnd()) + return; + const { onTap, onTapCancel, globalTapTarget } = this.node.getProps(); + const handler = !globalTapTarget && !isNodeOrChild(this.node.current, endEvent.target) ? onTapCancel : onTap; + if (handler) { + frame2.update(() => handler(endEvent, endInfo)); + } + }; + const removePointerUpListener = addPointerEvent2(window, "pointerup", endPointerPress, { + passive: !(props.onTap || props["onPointerUp"]) + }); + const removePointerCancelListener = addPointerEvent2(window, "pointercancel", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { + passive: !(props.onTapCancel || props["onPointerCancel"]) + }); + this.removeEndListeners = pipe5(removePointerUpListener, removePointerCancelListener); + this.startPress(startEvent, startInfo); + }; + this.startAccessiblePress = () => { + const handleKeydown = (keydownEvent) => { + if (keydownEvent.key !== "Enter" || this.isPressing) + return; + const handleKeyup = (keyupEvent) => { + if (keyupEvent.key !== "Enter" || !this.checkPressEnd()) + return; + fireSyntheticPointerEvent("up", (event, info) => { + const { onTap } = this.node.getProps(); + if (onTap) { + frame2.postRender(() => onTap(event, info)); + } + }); + }; + this.removeEndListeners(); + this.removeEndListeners = addDomEvent2(this.node.current, "keyup", handleKeyup); + fireSyntheticPointerEvent("down", (event, info) => { + this.startPress(event, info); + }); + }; + const removeKeydownListener = addDomEvent2(this.node.current, "keydown", handleKeydown); + const handleBlur = () => { + if (!this.isPressing) + return; + fireSyntheticPointerEvent("cancel", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo)); + }; + const removeBlurListener = addDomEvent2(this.node.current, "blur", handleBlur); + this.removeAccessibleListeners = pipe5(removeKeydownListener, removeBlurListener); + }; + } + startPress(event, info) { + this.isPressing = true; + const { onTapStart, whileTap } = this.node.getProps(); + if (whileTap && this.node.animationState) { + this.node.animationState.setActive("whileTap", true); + } + if (onTapStart) { + frame2.postRender(() => onTapStart(event, info)); + } + } + checkPressEnd() { + this.removeEndListeners(); + this.isPressing = false; + const props = this.node.getProps(); + if (props.whileTap && this.node.animationState) { + this.node.animationState.setActive("whileTap", false); + } + return !isDragActive(); + } + cancelPress(event, info) { + if (!this.checkPressEnd()) + return; + const { onTapCancel } = this.node.getProps(); + if (onTapCancel) { + frame2.postRender(() => onTapCancel(event, info)); + } + } + mount() { + const props = this.node.getProps(); + const removePointerListener = addPointerEvent2(props.globalTapTarget ? window : this.node.current, "pointerdown", this.startPointerPress, { + passive: !(props.onTapStart || props["onPointerStart"]) + }); + const removeFocusListener = addDomEvent2(this.node.current, "focus", this.startAccessiblePress); + this.removeStartListeners = pipe5(removePointerListener, removeFocusListener); + } + unmount() { + this.removeStartListeners(); + this.removeEndListeners(); + this.removeAccessibleListeners(); + } +}; + +// node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs +var observerCallbacks = /* @__PURE__ */ new WeakMap(); +var observers = /* @__PURE__ */ new WeakMap(); +var fireObserverCallback = (entry) => { + const callback = observerCallbacks.get(entry.target); + callback && callback(entry); +}; +var fireAllObserverCallbacks = (entries) => { + entries.forEach(fireObserverCallback); +}; +function initIntersectionObserver({ root, ...options }) { + const lookupRoot = root || document; + if (!observers.has(lookupRoot)) { + observers.set(lookupRoot, {}); + } + const rootObservers = observers.get(lookupRoot); + const key = JSON.stringify(options); + if (!rootObservers[key]) { + rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options }); + } + return rootObservers[key]; +} +function observeIntersection(element, options, callback) { + const rootInteresectionObserver = initIntersectionObserver(options); + observerCallbacks.set(element, callback); + rootInteresectionObserver.observe(element); + return () => { + observerCallbacks.delete(element); + rootInteresectionObserver.unobserve(element); + }; +} + +// node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs +var thresholdNames = { + some: 0, + all: 1 +}; +var InViewFeature = class extends Feature { + constructor() { + super(...arguments); + this.hasEnteredView = false; + this.isInView = false; + } + startObserver() { + this.unmount(); + const { viewport = {} } = this.node.getProps(); + const { root, margin: rootMargin, amount = "some", once: once2 } = viewport; + const options = { + root: root ? root.current : void 0, + rootMargin, + threshold: typeof amount === "number" ? amount : thresholdNames[amount] + }; + const onIntersectionUpdate = (entry) => { + const { isIntersecting } = entry; + if (this.isInView === isIntersecting) + return; + this.isInView = isIntersecting; + if (once2 && !isIntersecting && this.hasEnteredView) { + return; + } else if (isIntersecting) { + this.hasEnteredView = true; + } + if (this.node.animationState) { + this.node.animationState.setActive("whileInView", isIntersecting); + } + const { onViewportEnter, onViewportLeave } = this.node.getProps(); + const callback = isIntersecting ? onViewportEnter : onViewportLeave; + callback && callback(entry); + }; + return observeIntersection(this.node.current, options, onIntersectionUpdate); + } + mount() { + this.startObserver(); + } + update() { + if (typeof IntersectionObserver === "undefined") + return; + const { props, prevProps } = this.node; + const hasOptionsChanged = ["amount", "margin", "root"].some(hasViewportOptionChanged(props, prevProps)); + if (hasOptionsChanged) { + this.startObserver(); + } + } + unmount() { + } +}; +function hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) { + return (name) => viewport[name] !== prevViewport[name]; +} + +// node_modules/framer-motion/dist/es/motion/features/gestures.mjs +var gestureAnimations = { + inView: { + Feature: InViewFeature + }, + tap: { + Feature: PressGesture + }, + focus: { + Feature: FocusGesture + }, + hover: { + Feature: HoverGesture + } +}; + +// node_modules/framer-motion/dist/es/utils/shallow-compare.mjs +function shallowCompare(next2, prev2) { + if (!Array.isArray(prev2)) + return false; + const prevLength = prev2.length; + if (prevLength !== next2.length) + return false; + for (let i = 0; i < prevLength; i++) { + if (prev2[i] !== next2[i]) + return false; + } + return true; +} + +// node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +function resolveVariant(visualElement, definition, custom) { + const props = visualElement.getProps(); + return resolveVariantFromProps(props, definition, custom !== void 0 ? custom : props.custom, visualElement); +} + +// node_modules/framer-motion/dist/es/utils/time-conversion.mjs +var secondsToMilliseconds = (seconds) => seconds * 1e3; +var millisecondsToSeconds = (milliseconds) => milliseconds / 1e3; + +// node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +var underDampedSpring = { + type: "spring", + stiffness: 500, + damping: 25, + restSpeed: 10 +}; +var criticallyDampedSpring = (target) => ({ + type: "spring", + stiffness: 550, + damping: target === 0 ? 2 * Math.sqrt(550) : 30, + restSpeed: 10 +}); +var keyframesTransition = { + type: "keyframes", + duration: 0.8 +}; +var ease = { + type: "keyframes", + ease: [0.25, 0.1, 0.35, 1], + duration: 0.3 +}; +var getDefaultTransition = (valueKey, { keyframes: keyframes4 }) => { + if (keyframes4.length > 2) { + return keyframesTransition; + } else if (transformProps.has(valueKey)) { + return valueKey.startsWith("scale") ? criticallyDampedSpring(keyframes4[1]) : underDampedSpring; + } + return ease; +}; + +// node_modules/framer-motion/dist/es/animation/utils/transitions.mjs +function isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from: from2, elapsed, ...transition3 }) { + return !!Object.keys(transition3).length; +} +function getValueTransition(transition3, key) { + return transition3[key] || transition3["default"] || transition3; +} + +// node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs +var instantAnimationState = { + current: false +}; + +// node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +var isNotNull = (value) => value !== null; +function getFinalKeyframe(keyframes4, { repeat, repeatType = "loop" }, finalKeyframe) { + const resolvedKeyframes = keyframes4.filter(isNotNull); + const index = repeat && repeatType !== "loop" && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1; + return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe; +} + +// node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +var now; +function clearTime() { + now = void 0; +} +var time = { + now: () => { + if (now === void 0) { + time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming ? frameData.timestamp : performance.now()); + } + return now; + }, + set: (newTime) => { + now = newTime; + queueMicrotask(clearTime); + } +}; + +// node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +var isZeroValueString = (v) => /^0[^.\s]+$/u.test(v); + +// node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +function isNone(value) { + if (typeof value === "number") { + return value === 0; + } else if (value !== null) { + return value === "none" || value === "0" || isZeroValueString(value); + } else { + return true; + } +} + +// node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +var isNumericalString = (v) => /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(v); + +// node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +var splitCSSVariableRegex = ( + // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words + /^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u +); +function parseCSSVariable(current) { + const match3 = splitCSSVariableRegex.exec(current); + if (!match3) + return [,]; + const [, token1, token2, fallback] = match3; + return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback]; +} +var maxDepth = 4; +function getVariableValue(current, element, depth = 1) { + invariant2(depth <= maxDepth, `Max CSS variable fallback depth detected in property "${current}". This may indicate a circular fallback dependency.`); + const [token2, fallback] = parseCSSVariable(current); + if (!token2) + return; + const resolved = window.getComputedStyle(element).getPropertyValue(token2); + if (resolved) { + const trimmed = resolved.trim(); + return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed; + } + return isCSSVariableToken(fallback) ? getVariableValue(fallback, element, depth + 1) : fallback; +} + +// node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +var positionalKeys = /* @__PURE__ */ new Set([ + "width", + "height", + "top", + "left", + "right", + "bottom", + "x", + "y", + "translateX", + "translateY" +]); +var isNumOrPxType = (v) => v === number || v === px3; +var getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(", ")[pos]); +var getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform: transform3 }) => { + if (transform3 === "none" || !transform3) + return 0; + const matrix3d = transform3.match(/^matrix3d\((.+)\)$/u); + if (matrix3d) { + return getPosFromMatrix(matrix3d[1], pos3); + } else { + const matrix = transform3.match(/^matrix\((.+)\)$/u); + if (matrix) { + return getPosFromMatrix(matrix[1], pos2); + } else { + return 0; + } + } +}; +var transformKeys = /* @__PURE__ */ new Set(["x", "y", "z"]); +var nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key)); +function removeNonTranslationalTransform(visualElement) { + const removedTransforms = []; + nonTranslationalTransformKeys.forEach((key) => { + const value = visualElement.getValue(key); + if (value !== void 0) { + removedTransforms.push([key, value.get()]); + value.set(key.startsWith("scale") ? 1 : 0); + } + }); + return removedTransforms; +} +var positionalValues = { + // Dimensions + width: ({ x }, { paddingLeft = "0", paddingRight = "0" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight), + height: ({ y }, { paddingTop = "0", paddingBottom = "0" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom), + top: (_bbox, { top }) => parseFloat(top), + left: (_bbox, { left }) => parseFloat(left), + bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min), + right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min), + // Transform + x: getTranslateFromMatrix(4, 13), + y: getTranslateFromMatrix(5, 14) +}; +positionalValues.translateX = positionalValues.x; +positionalValues.translateY = positionalValues.y; + +// node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +var testValueType = (v) => (type) => type.test(v); + +// node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +var auto = { + test: (v) => v === "auto", + parse: (v) => v +}; + +// node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +var dimensionValueTypes = [number, px3, percent, degrees, vw, vh, auto]; +var findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v)); + +// node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +var toResolve = /* @__PURE__ */ new Set(); +var isScheduled = false; +var anyNeedsMeasurement = false; +function measureAllKeyframes() { + if (anyNeedsMeasurement) { + const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement); + const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element)); + const transformsToRestore = /* @__PURE__ */ new Map(); + elementsToMeasure.forEach((element) => { + const removedTransforms = removeNonTranslationalTransform(element); + if (!removedTransforms.length) + return; + transformsToRestore.set(element, removedTransforms); + element.render(); + }); + resolversToMeasure.forEach((resolver) => resolver.measureInitialState()); + elementsToMeasure.forEach((element) => { + element.render(); + const restore = transformsToRestore.get(element); + if (restore) { + restore.forEach(([key, value]) => { + var _a8; + (_a8 = element.getValue(key)) === null || _a8 === void 0 ? void 0 : _a8.set(value); + }); + } + }); + resolversToMeasure.forEach((resolver) => resolver.measureEndState()); + resolversToMeasure.forEach((resolver) => { + if (resolver.suspendedScrollY !== void 0) { + window.scrollTo(0, resolver.suspendedScrollY); + } + }); + } + anyNeedsMeasurement = false; + isScheduled = false; + toResolve.forEach((resolver) => resolver.complete()); + toResolve.clear(); +} +function readAllKeyframes() { + toResolve.forEach((resolver) => { + resolver.readKeyframes(); + if (resolver.needsMeasurement) { + anyNeedsMeasurement = true; + } + }); +} +function flushKeyframeResolvers() { + readAllKeyframes(); + measureAllKeyframes(); +} +var KeyframeResolver = class { + constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false) { + this.isComplete = false; + this.isAsync = false; + this.needsMeasurement = false; + this.isScheduled = false; + this.unresolvedKeyframes = [...unresolvedKeyframes]; + this.onComplete = onComplete; + this.name = name; + this.motionValue = motionValue2; + this.element = element; + this.isAsync = isAsync; + } + scheduleResolve() { + this.isScheduled = true; + if (this.isAsync) { + toResolve.add(this); + if (!isScheduled) { + isScheduled = true; + frame2.read(readAllKeyframes); + frame2.resolveKeyframes(measureAllKeyframes); + } + } else { + this.readKeyframes(); + this.complete(); + } + } + readKeyframes() { + const { unresolvedKeyframes, name, element, motionValue: motionValue2 } = this; + for (let i = 0; i < unresolvedKeyframes.length; i++) { + if (unresolvedKeyframes[i] === null) { + if (i === 0) { + const currentValue = motionValue2 === null || motionValue2 === void 0 ? void 0 : motionValue2.get(); + const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1]; + if (currentValue !== void 0) { + unresolvedKeyframes[0] = currentValue; + } else if (element && name) { + const valueAsRead = element.readValue(name, finalKeyframe); + if (valueAsRead !== void 0 && valueAsRead !== null) { + unresolvedKeyframes[0] = valueAsRead; + } + } + if (unresolvedKeyframes[0] === void 0) { + unresolvedKeyframes[0] = finalKeyframe; + } + if (motionValue2 && currentValue === void 0) { + motionValue2.set(unresolvedKeyframes[0]); + } + } else { + unresolvedKeyframes[i] = unresolvedKeyframes[i - 1]; + } + } + } + } + setFinalKeyframe() { + } + measureInitialState() { + } + renderEndStyles() { + } + measureEndState() { + } + complete() { + this.isComplete = true; + this.onComplete(this.unresolvedKeyframes, this.finalKeyframe); + toResolve.delete(this); + } + cancel() { + if (!this.isComplete) { + this.isScheduled = false; + toResolve.delete(this); + } + } + resume() { + if (!this.isComplete) + this.scheduleResolve(); + } +}; + +// node_modules/framer-motion/dist/es/value/types/color/utils.mjs +var isColorString = (type, testProp) => (v) => { + return Boolean(isString2(v) && singleColorRegex.test(v) && v.startsWith(type) || testProp && Object.prototype.hasOwnProperty.call(v, testProp)); +}; +var splitColor = (aName, bName, cName) => (v) => { + if (!isString2(v)) + return v; + const [a, b, c, alpha2] = v.match(floatRegex); + return { + [aName]: parseFloat(a), + [bName]: parseFloat(b), + [cName]: parseFloat(c), + alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1 + }; +}; + +// node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +var clampRgbUnit = (v) => clamp(0, 255, v); +var rgbUnit = { + ...number, + transform: (v) => Math.round(clampRgbUnit(v)) +}; +var rgba2 = { + test: isColorString("rgb", "red"), + parse: splitColor("red", "green", "blue"), + transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => "rgba(" + rgbUnit.transform(red) + ", " + rgbUnit.transform(green) + ", " + rgbUnit.transform(blue) + ", " + sanitize(alpha.transform(alpha$1)) + ")" +}; + +// node_modules/framer-motion/dist/es/value/types/color/hex.mjs +function parseHex(v) { + let r2 = ""; + let g = ""; + let b = ""; + let a = ""; + if (v.length > 5) { + r2 = v.substring(1, 3); + g = v.substring(3, 5); + b = v.substring(5, 7); + a = v.substring(7, 9); + } else { + r2 = v.substring(1, 2); + g = v.substring(2, 3); + b = v.substring(3, 4); + a = v.substring(4, 5); + r2 += r2; + g += g; + b += b; + a += a; + } + return { + red: parseInt(r2, 16), + green: parseInt(g, 16), + blue: parseInt(b, 16), + alpha: a ? parseInt(a, 16) / 255 : 1 + }; +} +var hex = { + test: isColorString("#"), + parse: parseHex, + transform: rgba2.transform +}; + +// node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +var hsla2 = { + test: isColorString("hsl", "hue"), + parse: splitColor("hue", "saturation", "lightness"), + transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => { + return "hsla(" + Math.round(hue) + ", " + percent.transform(sanitize(saturation)) + ", " + percent.transform(sanitize(lightness)) + ", " + sanitize(alpha.transform(alpha$1)) + ")"; + } +}; + +// node_modules/framer-motion/dist/es/value/types/color/index.mjs +var color2 = { + test: (v) => rgba2.test(v) || hex.test(v) || hsla2.test(v), + parse: (v) => { + if (rgba2.test(v)) { + return rgba2.parse(v); + } else if (hsla2.test(v)) { + return hsla2.parse(v); + } else { + return hex.parse(v); + } + }, + transform: (v) => { + return isString2(v) ? v : v.hasOwnProperty("red") ? rgba2.transform(v) : hsla2.transform(v); + } +}; + +// node_modules/framer-motion/dist/es/value/types/complex/index.mjs +function test(v) { + var _a8, _b5; + return isNaN(v) && isString2(v) && (((_a8 = v.match(floatRegex)) === null || _a8 === void 0 ? void 0 : _a8.length) || 0) + (((_b5 = v.match(colorRegex)) === null || _b5 === void 0 ? void 0 : _b5.length) || 0) > 0; +} +var NUMBER_TOKEN = "number"; +var COLOR_TOKEN = "color"; +var VAR_TOKEN = "var"; +var VAR_FUNCTION_TOKEN = "var("; +var SPLIT_TOKEN = "${}"; +var complexRegex = /var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu; +function analyseComplexValue(value) { + const originalValue = value.toString(); + const values = []; + const indexes = { + color: [], + number: [], + var: [] + }; + const types = []; + let i = 0; + const tokenised = originalValue.replace(complexRegex, (parsedValue) => { + if (color2.test(parsedValue)) { + indexes.color.push(i); + types.push(COLOR_TOKEN); + values.push(color2.parse(parsedValue)); + } else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) { + indexes.var.push(i); + types.push(VAR_TOKEN); + values.push(parsedValue); + } else { + indexes.number.push(i); + types.push(NUMBER_TOKEN); + values.push(parseFloat(parsedValue)); + } + ++i; + return SPLIT_TOKEN; + }); + const split5 = tokenised.split(SPLIT_TOKEN); + return { values, split: split5, indexes, types }; +} +function parseComplexValue(v) { + return analyseComplexValue(v).values; +} +function createTransformer(source) { + const { split: split5, types } = analyseComplexValue(source); + const numSections = split5.length; + return (v) => { + let output = ""; + for (let i = 0; i < numSections; i++) { + output += split5[i]; + if (v[i] !== void 0) { + const type = types[i]; + if (type === NUMBER_TOKEN) { + output += sanitize(v[i]); + } else if (type === COLOR_TOKEN) { + output += color2.transform(v[i]); + } else { + output += v[i]; + } + } + } + return output; + }; +} +var convertNumbersToZero = (v) => typeof v === "number" ? 0 : v; +function getAnimatableNone(v) { + const parsed = parseComplexValue(v); + const transformer = createTransformer(v); + return transformer(parsed.map(convertNumbersToZero)); +} +var complex = { + test, + parse: parseComplexValue, + createTransformer, + getAnimatableNone +}; + +// node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +var maxDefaults = /* @__PURE__ */ new Set(["brightness", "contrast", "saturate", "opacity"]); +function applyDefaultFilter(v) { + const [name, value] = v.slice(0, -1).split("("); + if (name === "drop-shadow") + return v; + const [number2] = value.match(floatRegex) || []; + if (!number2) + return v; + const unit = value.replace(number2, ""); + let defaultValue = maxDefaults.has(name) ? 1 : 0; + if (number2 !== value) + defaultValue *= 100; + return name + "(" + defaultValue + unit + ")"; +} +var functionRegex = /\b([a-z-]*)\(.*?\)/gu; +var filter2 = { + ...complex, + getAnimatableNone: (v) => { + const functions = v.match(functionRegex); + return functions ? functions.map(applyDefaultFilter).join(" ") : v; + } +}; + +// node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +var defaultValueTypes = { + ...numberValueTypes, + // Color props + color: color2, + backgroundColor: color2, + outlineColor: color2, + fill: color2, + stroke: color2, + // Border props + borderColor: color2, + borderTopColor: color2, + borderRightColor: color2, + borderBottomColor: color2, + borderLeftColor: color2, + filter: filter2, + WebkitFilter: filter2 +}; +var getDefaultValueType = (key) => defaultValueTypes[key]; + +// node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +function getAnimatableNone2(key, value) { + let defaultValueType = getDefaultValueType(key); + if (defaultValueType !== filter2) + defaultValueType = complex; + return defaultValueType.getAnimatableNone ? defaultValueType.getAnimatableNone(value) : void 0; +} + +// node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +var invalidTemplates = /* @__PURE__ */ new Set(["auto", "none", "0"]); +function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) { + let i = 0; + let animatableTemplate = void 0; + while (i < unresolvedKeyframes.length && !animatableTemplate) { + const keyframe = unresolvedKeyframes[i]; + if (typeof keyframe === "string" && !invalidTemplates.has(keyframe) && analyseComplexValue(keyframe).values.length) { + animatableTemplate = unresolvedKeyframes[i]; + } + i++; + } + if (animatableTemplate && name) { + for (const noneIndex of noneKeyframeIndexes) { + unresolvedKeyframes[noneIndex] = getAnimatableNone2(name, animatableTemplate); + } + } +} + +// node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +var DOMKeyframesResolver = class extends KeyframeResolver { + constructor(unresolvedKeyframes, onComplete, name, motionValue2) { + super(unresolvedKeyframes, onComplete, name, motionValue2, motionValue2 === null || motionValue2 === void 0 ? void 0 : motionValue2.owner, true); + } + readKeyframes() { + const { unresolvedKeyframes, element, name } = this; + if (!element.current) + return; + super.readKeyframes(); + for (let i = 0; i < unresolvedKeyframes.length; i++) { + let keyframe = unresolvedKeyframes[i]; + if (typeof keyframe === "string") { + keyframe = keyframe.trim(); + if (isCSSVariableToken(keyframe)) { + const resolved = getVariableValue(keyframe, element.current); + if (resolved !== void 0) { + unresolvedKeyframes[i] = resolved; + } + if (i === unresolvedKeyframes.length - 1) { + this.finalKeyframe = keyframe; + } + } + } + } + this.resolveNoneKeyframes(); + if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) { + return; + } + const [origin, target] = unresolvedKeyframes; + const originType = findDimensionValueType(origin); + const targetType = findDimensionValueType(target); + if (originType === targetType) + return; + if (isNumOrPxType(originType) && isNumOrPxType(targetType)) { + for (let i = 0; i < unresolvedKeyframes.length; i++) { + const value = unresolvedKeyframes[i]; + if (typeof value === "string") { + unresolvedKeyframes[i] = parseFloat(value); + } + } + } else { + this.needsMeasurement = true; + } + } + resolveNoneKeyframes() { + const { unresolvedKeyframes, name } = this; + const noneKeyframeIndexes = []; + for (let i = 0; i < unresolvedKeyframes.length; i++) { + if (isNone(unresolvedKeyframes[i])) { + noneKeyframeIndexes.push(i); + } + } + if (noneKeyframeIndexes.length) { + makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name); + } + } + measureInitialState() { + const { element, unresolvedKeyframes, name } = this; + if (!element.current) + return; + if (name === "height") { + this.suspendedScrollY = window.pageYOffset; + } + this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current)); + unresolvedKeyframes[0] = this.measuredOrigin; + const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1]; + if (measureKeyframe !== void 0) { + element.getValue(name, measureKeyframe).jump(measureKeyframe, false); + } + } + measureEndState() { + var _a8; + const { element, name, unresolvedKeyframes } = this; + if (!element.current) + return; + const value = element.getValue(name); + value && value.jump(this.measuredOrigin, false); + const finalKeyframeIndex = unresolvedKeyframes.length - 1; + const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex]; + unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current)); + if (finalKeyframe !== null && this.finalKeyframe === void 0) { + this.finalKeyframe = finalKeyframe; + } + if ((_a8 = this.removedTransforms) === null || _a8 === void 0 ? void 0 : _a8.length) { + this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => { + element.getValue(unsetTransformName).set(unsetTransformValue); + }); + } + this.resolveNoneKeyframes(); + } +}; + +// node_modules/framer-motion/dist/es/utils/memo.mjs +function memo(callback) { + let result; + return () => { + if (result === void 0) + result = callback(); + return result; + }; +} + +// node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +var isAnimatable = (value, name) => { + if (name === "zIndex") + return false; + if (typeof value === "number" || Array.isArray(value)) + return true; + if (typeof value === "string" && // It's animatable if we have a string + (complex.test(value) || value === "0") && // And it contains numbers and/or colors + !value.startsWith("url(")) { + return true; + } + return false; +}; + +// node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +function hasKeyframesChanged(keyframes4) { + const current = keyframes4[0]; + if (keyframes4.length === 1) + return true; + for (let i = 0; i < keyframes4.length; i++) { + if (keyframes4[i] !== current) + return true; + } +} +function canAnimate(keyframes4, name, type, velocity) { + const originKeyframe = keyframes4[0]; + if (originKeyframe === null) + return false; + if (name === "display" || name === "visibility") + return true; + const targetKeyframe = keyframes4[keyframes4.length - 1]; + const isOriginAnimatable = isAnimatable(originKeyframe, name); + const isTargetAnimatable = isAnimatable(targetKeyframe, name); + warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from "${originKeyframe}" to "${targetKeyframe}". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \`style\` property.`); + if (!isOriginAnimatable || !isTargetAnimatable) { + return false; + } + return hasKeyframesChanged(keyframes4) || type === "spring" && velocity; +} + +// node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +var BaseAnimation = class { + constructor({ autoplay = true, delay: delay2 = 0, type = "keyframes", repeat = 0, repeatDelay = 0, repeatType = "loop", ...options }) { + this.isStopped = false; + this.hasAttemptedResolve = false; + this.options = { + autoplay, + delay: delay2, + type, + repeat, + repeatDelay, + repeatType, + ...options + }; + this.updateFinishedPromise(); + } + /** + * A getter for resolved data. If keyframes are not yet resolved, accessing + * this.resolved will synchronously flush all pending keyframe resolvers. + * This is a deoptimisation, but at its worst still batches read/writes. + */ + get resolved() { + if (!this._resolved && !this.hasAttemptedResolve) { + flushKeyframeResolvers(); + } + return this._resolved; + } + /** + * A method to be called when the keyframes resolver completes. This method + * will check if its possible to run the animation and, if not, skip it. + * Otherwise, it will call initPlayback on the implementing class. + */ + onKeyframesResolved(keyframes4, finalKeyframe) { + this.hasAttemptedResolve = true; + const { name, type, velocity, delay: delay2, onComplete, onUpdate, isGenerator } = this.options; + if (!isGenerator && !canAnimate(keyframes4, name, type, velocity)) { + if (instantAnimationState.current || !delay2) { + onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes4, this.options, finalKeyframe)); + onComplete === null || onComplete === void 0 ? void 0 : onComplete(); + this.resolveFinishedPromise(); + return; + } else { + this.options.duration = 0; + } + } + const resolvedAnimation = this.initPlayback(keyframes4, finalKeyframe); + if (resolvedAnimation === false) + return; + this._resolved = { + keyframes: keyframes4, + finalKeyframe, + ...resolvedAnimation + }; + this.onPostResolved(); + } + onPostResolved() { + } + /** + * Allows the returned animation to be awaited or promise-chained. Currently + * resolves when the animation finishes at all but in a future update could/should + * reject if its cancels. + */ + then(resolve, reject) { + return this.currentFinishedPromise.then(resolve, reject); + } + updateFinishedPromise() { + this.currentFinishedPromise = new Promise((resolve) => { + this.resolveFinishedPromise = resolve; + }); + } +}; + +// node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +function velocityPerSecond(velocity, frameDuration) { + return frameDuration ? velocity * (1e3 / frameDuration) : 0; +} + +// node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +var velocitySampleDuration = 5; +function calcGeneratorVelocity(resolveValue, t2, current) { + const prevT = Math.max(t2 - velocitySampleDuration, 0); + return velocityPerSecond(current - resolveValue(prevT), t2 - prevT); +} + +// node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +var safeMin = 1e-3; +var minDuration = 0.01; +var maxDuration = 10; +var minDamping = 0.05; +var maxDamping = 1; +function findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1 }) { + let envelope; + let derivative; + warning(duration <= secondsToMilliseconds(maxDuration), "Spring duration must be 10 seconds or less"); + let dampingRatio = 1 - bounce; + dampingRatio = clamp(minDamping, maxDamping, dampingRatio); + duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration)); + if (dampingRatio < 1) { + envelope = (undampedFreq2) => { + const exponentialDecay = undampedFreq2 * dampingRatio; + const delta = exponentialDecay * duration; + const a = exponentialDecay - velocity; + const b = calcAngularFreq(undampedFreq2, dampingRatio); + const c = Math.exp(-delta); + return safeMin - a / b * c; + }; + derivative = (undampedFreq2) => { + const exponentialDecay = undampedFreq2 * dampingRatio; + const delta = exponentialDecay * duration; + const d = delta * velocity + velocity; + const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq2, 2) * duration; + const f = Math.exp(-delta); + const g = calcAngularFreq(Math.pow(undampedFreq2, 2), dampingRatio); + const factor = -envelope(undampedFreq2) + safeMin > 0 ? -1 : 1; + return factor * ((d - e) * f) / g; + }; + } else { + envelope = (undampedFreq2) => { + const a = Math.exp(-undampedFreq2 * duration); + const b = (undampedFreq2 - velocity) * duration + 1; + return -safeMin + a * b; + }; + derivative = (undampedFreq2) => { + const a = Math.exp(-undampedFreq2 * duration); + const b = (velocity - undampedFreq2) * (duration * duration); + return a * b; + }; + } + const initialGuess = 5 / duration; + const undampedFreq = approximateRoot(envelope, derivative, initialGuess); + duration = secondsToMilliseconds(duration); + if (isNaN(undampedFreq)) { + return { + stiffness: 100, + damping: 10, + duration + }; + } else { + const stiffness = Math.pow(undampedFreq, 2) * mass; + return { + stiffness, + damping: dampingRatio * 2 * Math.sqrt(mass * stiffness), + duration + }; + } +} +var rootIterations = 12; +function approximateRoot(envelope, derivative, initialGuess) { + let result = initialGuess; + for (let i = 1; i < rootIterations; i++) { + result = result - envelope(result) / derivative(result); + } + return result; +} +function calcAngularFreq(undampedFreq, dampingRatio) { + return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio); +} + +// node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +var durationKeys = ["duration", "bounce"]; +var physicsKeys = ["stiffness", "damping", "mass"]; +function isSpringType(options, keys2) { + return keys2.some((key) => options[key] !== void 0); +} +function getSpringOptions(options) { + let springOptions = { + velocity: 0, + stiffness: 100, + damping: 10, + mass: 1, + isResolvedFromDuration: false, + ...options + }; + if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) { + const derived = findSpring(options); + springOptions = { + ...springOptions, + ...derived, + mass: 1 + }; + springOptions.isResolvedFromDuration = true; + } + return springOptions; +} +function spring({ keyframes: keyframes4, restDelta, restSpeed, ...options }) { + const origin = keyframes4[0]; + const target = keyframes4[keyframes4.length - 1]; + const state2 = { done: false, value: origin }; + const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration } = getSpringOptions({ + ...options, + velocity: -millisecondsToSeconds(options.velocity || 0) + }); + const initialVelocity = velocity || 0; + const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass)); + const initialDelta = target - origin; + const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass)); + const isGranularScale = Math.abs(initialDelta) < 5; + restSpeed || (restSpeed = isGranularScale ? 0.01 : 2); + restDelta || (restDelta = isGranularScale ? 5e-3 : 0.5); + let resolveSpring; + if (dampingRatio < 1) { + const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio); + resolveSpring = (t2) => { + const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t2); + return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq * Math.sin(angularFreq * t2) + initialDelta * Math.cos(angularFreq * t2)); + }; + } else if (dampingRatio === 1) { + resolveSpring = (t2) => target - Math.exp(-undampedAngularFreq * t2) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t2); + } else { + const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1); + resolveSpring = (t2) => { + const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t2); + const freqForT = Math.min(dampedAngularFreq * t2, 300); + return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq * initialDelta * Math.cosh(freqForT)) / dampedAngularFreq; + }; + } + return { + calculatedDuration: isResolvedFromDuration ? duration || null : null, + next: (t2) => { + const current = resolveSpring(t2); + if (!isResolvedFromDuration) { + let currentVelocity = initialVelocity; + if (t2 !== 0) { + if (dampingRatio < 1) { + currentVelocity = calcGeneratorVelocity(resolveSpring, t2, current); + } else { + currentVelocity = 0; + } + } + const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed; + const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta; + state2.done = isBelowVelocityThreshold && isBelowDisplacementThreshold; + } else { + state2.done = t2 >= duration; + } + state2.value = state2.done ? target : current; + return state2; + } + }; +} + +// node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +function inertia({ keyframes: keyframes4, velocity = 0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed }) { + const origin = keyframes4[0]; + const state2 = { + done: false, + value: origin + }; + const isOutOfBounds = (v) => min !== void 0 && v < min || max !== void 0 && v > max; + const nearestBoundary = (v) => { + if (min === void 0) + return max; + if (max === void 0) + return min; + return Math.abs(min - v) < Math.abs(max - v) ? min : max; + }; + let amplitude = power * velocity; + const ideal = origin + amplitude; + const target = modifyTarget === void 0 ? ideal : modifyTarget(ideal); + if (target !== ideal) + amplitude = target - origin; + const calcDelta = (t2) => -amplitude * Math.exp(-t2 / timeConstant); + const calcLatest = (t2) => target + calcDelta(t2); + const applyFriction = (t2) => { + const delta = calcDelta(t2); + const latest = calcLatest(t2); + state2.done = Math.abs(delta) <= restDelta; + state2.value = state2.done ? target : latest; + }; + let timeReachedBoundary; + let spring$1; + const checkCatchBoundary = (t2) => { + if (!isOutOfBounds(state2.value)) + return; + timeReachedBoundary = t2; + spring$1 = spring({ + keyframes: [state2.value, nearestBoundary(state2.value)], + velocity: calcGeneratorVelocity(calcLatest, t2, state2.value), + // TODO: This should be passing * 1000 + damping: bounceDamping, + stiffness: bounceStiffness, + restDelta, + restSpeed + }); + }; + checkCatchBoundary(0); + return { + calculatedDuration: null, + next: (t2) => { + let hasUpdatedFrame = false; + if (!spring$1 && timeReachedBoundary === void 0) { + hasUpdatedFrame = true; + applyFriction(t2); + checkCatchBoundary(t2); + } + if (timeReachedBoundary !== void 0 && t2 >= timeReachedBoundary) { + return spring$1.next(t2 - timeReachedBoundary); + } else { + !hasUpdatedFrame && applyFriction(t2); + return state2; + } + } + }; +} + +// node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +var calcBezier = (t2, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t2 + (3 * a2 - 6 * a1)) * t2 + 3 * a1) * t2; +var subdivisionPrecision = 1e-7; +var subdivisionMaxIterations = 12; +function binarySubdivide(x, lowerBound, upperBound, mX1, mX2) { + let currentX; + let currentT; + let i = 0; + do { + currentT = lowerBound + (upperBound - lowerBound) / 2; + currentX = calcBezier(currentT, mX1, mX2) - x; + if (currentX > 0) { + upperBound = currentT; + } else { + lowerBound = currentT; + } + } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations); + return currentT; +} +function cubicBezier(mX1, mY1, mX2, mY2) { + if (mX1 === mY1 && mX2 === mY2) + return noop3; + const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2); + return (t2) => t2 === 0 || t2 === 1 ? t2 : calcBezier(getTForX(t2), mY1, mY2); +} + +// node_modules/framer-motion/dist/es/easing/ease.mjs +var easeIn = cubicBezier(0.42, 0, 1, 1); +var easeOut = cubicBezier(0, 0, 0.58, 1); +var easeInOut = cubicBezier(0.42, 0, 0.58, 1); + +// node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +var isEasingArray = (ease2) => { + return Array.isArray(ease2) && typeof ease2[0] !== "number"; +}; + +// node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +var mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2; + +// node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +var reverseEasing = (easing) => (p) => 1 - easing(1 - p); + +// node_modules/framer-motion/dist/es/easing/circ.mjs +var circIn = (p) => 1 - Math.sin(Math.acos(p)); +var circOut = reverseEasing(circIn); +var circInOut = mirrorEasing(circIn); + +// node_modules/framer-motion/dist/es/easing/back.mjs +var backOut = cubicBezier(0.33, 1.53, 0.69, 0.99); +var backIn = reverseEasing(backOut); +var backInOut = mirrorEasing(backIn); + +// node_modules/framer-motion/dist/es/easing/anticipate.mjs +var anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1))); + +// node_modules/framer-motion/dist/es/easing/utils/map.mjs +var easingLookup = { + linear: noop3, + easeIn, + easeInOut, + easeOut, + circIn, + circInOut, + circOut, + backIn, + backInOut, + backOut, + anticipate +}; +var easingDefinitionToFunction = (definition) => { + if (Array.isArray(definition)) { + invariant2(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`); + const [x1, y1, x2, y2] = definition; + return cubicBezier(x1, y1, x2, y2); + } else if (typeof definition === "string") { + invariant2(easingLookup[definition] !== void 0, `Invalid easing type '${definition}'`); + return easingLookup[definition]; + } + return definition; +}; + +// node_modules/framer-motion/dist/es/utils/progress.mjs +var progress = (from2, to, value) => { + const toFromDifference = to - from2; + return toFromDifference === 0 ? 1 : (value - from2) / toFromDifference; +}; + +// node_modules/framer-motion/dist/es/utils/mix/number.mjs +var mixNumber = (from2, to, progress3) => { + return from2 + (to - from2) * progress3; +}; + +// node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +function hueToRgb(p, q, t2) { + if (t2 < 0) + t2 += 1; + if (t2 > 1) + t2 -= 1; + if (t2 < 1 / 6) + return p + (q - p) * 6 * t2; + if (t2 < 1 / 2) + return q; + if (t2 < 2 / 3) + return p + (q - p) * (2 / 3 - t2) * 6; + return p; +} +function hslaToRgba({ hue, saturation, lightness, alpha: alpha2 }) { + hue /= 360; + saturation /= 100; + lightness /= 100; + let red = 0; + let green = 0; + let blue = 0; + if (!saturation) { + red = green = blue = lightness; + } else { + const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation; + const p = 2 * lightness - q; + red = hueToRgb(p, q, hue + 1 / 3); + green = hueToRgb(p, q, hue); + blue = hueToRgb(p, q, hue - 1 / 3); + } + return { + red: Math.round(red * 255), + green: Math.round(green * 255), + blue: Math.round(blue * 255), + alpha: alpha2 + }; +} + +// node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +function mixImmediate(a, b) { + return (p) => p > 0 ? b : a; +} + +// node_modules/framer-motion/dist/es/utils/mix/color.mjs +var mixLinearColor = (from2, to, v) => { + const fromExpo = from2 * from2; + const expo = v * (to * to - fromExpo) + fromExpo; + return expo < 0 ? 0 : Math.sqrt(expo); +}; +var colorTypes = [hex, rgba2, hsla2]; +var getColorType = (v) => colorTypes.find((type) => type.test(v)); +function asRGBA(color3) { + const type = getColorType(color3); + warning(Boolean(type), `'${color3}' is not an animatable color. Use the equivalent color code instead.`); + if (!Boolean(type)) + return false; + let model = type.parse(color3); + if (type === hsla2) { + model = hslaToRgba(model); + } + return model; +} +var mixColor = (from2, to) => { + const fromRGBA = asRGBA(from2); + const toRGBA = asRGBA(to); + if (!fromRGBA || !toRGBA) { + return mixImmediate(from2, to); + } + const blended = { ...fromRGBA }; + return (v) => { + blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v); + blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v); + blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v); + blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v); + return rgba2.transform(blended); + }; +}; + +// node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +var invisibleValues = /* @__PURE__ */ new Set(["none", "hidden"]); +function mixVisibility(origin, target) { + if (invisibleValues.has(origin)) { + return (p) => p <= 0 ? origin : target; + } else { + return (p) => p >= 1 ? target : origin; + } +} + +// node_modules/framer-motion/dist/es/utils/mix/complex.mjs +function mixNumber2(a, b) { + return (p) => mixNumber(a, b, p); +} +function getMixer(a) { + if (typeof a === "number") { + return mixNumber2; + } else if (typeof a === "string") { + return isCSSVariableToken(a) ? mixImmediate : color2.test(a) ? mixColor : mixComplex; + } else if (Array.isArray(a)) { + return mixArray; + } else if (typeof a === "object") { + return color2.test(a) ? mixColor : mixObject; + } + return mixImmediate; +} +function mixArray(a, b) { + const output = [...a]; + const numValues = output.length; + const blendValue = a.map((v, i) => getMixer(v)(v, b[i])); + return (p) => { + for (let i = 0; i < numValues; i++) { + output[i] = blendValue[i](p); + } + return output; + }; +} +function mixObject(a, b) { + const output = { ...a, ...b }; + const blendValue = {}; + for (const key in output) { + if (a[key] !== void 0 && b[key] !== void 0) { + blendValue[key] = getMixer(a[key])(a[key], b[key]); + } + } + return (v) => { + for (const key in blendValue) { + output[key] = blendValue[key](v); + } + return output; + }; +} +function matchOrder(origin, target) { + var _a8; + const orderedOrigin = []; + const pointers = { color: 0, var: 0, number: 0 }; + for (let i = 0; i < target.values.length; i++) { + const type = target.types[i]; + const originIndex = origin.indexes[type][pointers[type]]; + const originValue = (_a8 = origin.values[originIndex]) !== null && _a8 !== void 0 ? _a8 : 0; + orderedOrigin[i] = originValue; + pointers[type]++; + } + return orderedOrigin; +} +var mixComplex = (origin, target) => { + const template = complex.createTransformer(target); + const originStats = analyseComplexValue(origin); + const targetStats = analyseComplexValue(target); + const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length && originStats.indexes.color.length === targetStats.indexes.color.length && originStats.indexes.number.length >= targetStats.indexes.number.length; + if (canInterpolate) { + if (invisibleValues.has(origin) && !targetStats.values.length || invisibleValues.has(target) && !originStats.values.length) { + return mixVisibility(origin, target); + } + return pipe5(mixArray(matchOrder(originStats, targetStats), targetStats.values), template); + } else { + warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`); + return mixImmediate(origin, target); + } +}; + +// node_modules/framer-motion/dist/es/utils/mix/index.mjs +function mix2(from2, to, p) { + if (typeof from2 === "number" && typeof to === "number" && typeof p === "number") { + return mixNumber(from2, to, p); + } + const mixer = getMixer(from2); + return mixer(from2, to); +} + +// node_modules/framer-motion/dist/es/utils/interpolate.mjs +function createMixers(output, ease2, customMixer) { + const mixers = []; + const mixerFactory = customMixer || mix2; + const numMixers = output.length - 1; + for (let i = 0; i < numMixers; i++) { + let mixer = mixerFactory(output[i], output[i + 1]); + if (ease2) { + const easingFunction = Array.isArray(ease2) ? ease2[i] || noop3 : ease2; + mixer = pipe5(easingFunction, mixer); + } + mixers.push(mixer); + } + return mixers; +} +function interpolate(input, output, { clamp: isClamp = true, ease: ease2, mixer } = {}) { + const inputLength = input.length; + invariant2(inputLength === output.length, "Both input and output ranges must be the same length"); + if (inputLength === 1) + return () => output[0]; + if (inputLength === 2 && input[0] === input[1]) + return () => output[1]; + if (input[0] > input[inputLength - 1]) { + input = [...input].reverse(); + output = [...output].reverse(); + } + const mixers = createMixers(output, ease2, mixer); + const numMixers = mixers.length; + const interpolator = (v) => { + let i = 0; + if (numMixers > 1) { + for (; i < input.length - 2; i++) { + if (v < input[i + 1]) + break; + } + } + const progressInRange = progress(input[i], input[i + 1], v); + return mixers[i](progressInRange); + }; + return isClamp ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v)) : interpolator; +} + +// node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +function fillOffset(offset, remaining) { + const min = offset[offset.length - 1]; + for (let i = 1; i <= remaining; i++) { + const offsetProgress = progress(0, remaining, i); + offset.push(mixNumber(min, 1, offsetProgress)); + } +} + +// node_modules/framer-motion/dist/es/utils/offsets/default.mjs +function defaultOffset(arr) { + const offset = [0]; + fillOffset(offset, arr.length - 1); + return offset; +} + +// node_modules/framer-motion/dist/es/utils/offsets/time.mjs +function convertOffsetToTimes(offset, duration) { + return offset.map((o) => o * duration); +} + +// node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +function defaultEasing(values, easing) { + return values.map(() => easing || easeInOut).splice(0, values.length - 1); +} +function keyframes3({ duration = 300, keyframes: keyframeValues, times, ease: ease2 = "easeInOut" }) { + const easingFunctions = isEasingArray(ease2) ? ease2.map(easingDefinitionToFunction) : easingDefinitionToFunction(ease2); + const state2 = { + done: false, + value: keyframeValues[0] + }; + const absoluteTimes = convertOffsetToTimes( + // Only use the provided offsets if they're the correct length + // TODO Maybe we should warn here if there's a length mismatch + times && times.length === keyframeValues.length ? times : defaultOffset(keyframeValues), + duration + ); + const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, { + ease: Array.isArray(easingFunctions) ? easingFunctions : defaultEasing(keyframeValues, easingFunctions) + }); + return { + calculatedDuration: duration, + next: (t2) => { + state2.value = mapTimeToKeyframe(t2); + state2.done = t2 >= duration; + return state2; + } + }; +} + +// node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +var maxGeneratorDuration = 2e4; +function calcGeneratorDuration(generator) { + let duration = 0; + const timeStep = 50; + let state2 = generator.next(duration); + while (!state2.done && duration < maxGeneratorDuration) { + duration += timeStep; + state2 = generator.next(duration); + } + return duration >= maxGeneratorDuration ? Infinity : duration; +} + +// node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +var frameloopDriver = (update) => { + const passTimestamp = ({ timestamp }) => update(timestamp); + return { + start: () => frame2.update(passTimestamp, true), + stop: () => cancelFrame(passTimestamp), + /** + * If we're processing this frame we can use the + * framelocked timestamp to keep things in sync. + */ + now: () => frameData.isProcessing ? frameData.timestamp : time.now() + }; +}; + +// node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +var generators = { + decay: inertia, + inertia, + tween: keyframes3, + keyframes: keyframes3, + spring +}; +var percentToProgress = (percent2) => percent2 / 100; +var MainThreadAnimation = class extends BaseAnimation { + constructor({ KeyframeResolver: KeyframeResolver$1 = KeyframeResolver, ...options }) { + super(options); + this.holdTime = null; + this.startTime = null; + this.cancelTime = null; + this.currentTime = 0; + this.playbackSpeed = 1; + this.pendingPlayState = "running"; + this.state = "idle"; + this.stop = () => { + this.resolver.cancel(); + this.isStopped = true; + if (this.state === "idle") + return; + this.teardown(); + const { onStop } = this.options; + onStop && onStop(); + }; + const { name, motionValue: motionValue2, keyframes: keyframes4 } = this.options; + const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe); + if (name && motionValue2 && motionValue2.owner) { + this.resolver = motionValue2.owner.resolveKeyframes(keyframes4, onResolved, name, motionValue2); + } else { + this.resolver = new KeyframeResolver$1(keyframes4, onResolved, name, motionValue2); + } + this.resolver.scheduleResolve(); + } + initPlayback(keyframes$1) { + const { type = "keyframes", repeat = 0, repeatDelay = 0, repeatType, velocity = 0 } = this.options; + const generatorFactory = generators[type] || keyframes3; + let mapPercentToKeyframes; + let mirroredGenerator; + if (generatorFactory !== keyframes3 && typeof keyframes$1[0] !== "number") { + if (true) { + invariant2(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`); + } + mapPercentToKeyframes = pipe5(percentToProgress, mix2(keyframes$1[0], keyframes$1[1])); + keyframes$1 = [0, 100]; + } + const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 }); + if (repeatType === "mirror") { + mirroredGenerator = generatorFactory({ + ...this.options, + keyframes: [...keyframes$1].reverse(), + velocity: -velocity + }); + } + if (generator.calculatedDuration === null) { + generator.calculatedDuration = calcGeneratorDuration(generator); + } + const { calculatedDuration } = generator; + const resolvedDuration = calculatedDuration + repeatDelay; + const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay; + return { + generator, + mirroredGenerator, + mapPercentToKeyframes, + calculatedDuration, + resolvedDuration, + totalDuration + }; + } + onPostResolved() { + const { autoplay = true } = this.options; + this.play(); + if (this.pendingPlayState === "paused" || !autoplay) { + this.pause(); + } else { + this.state = this.pendingPlayState; + } + } + tick(timestamp, sample = false) { + const { resolved } = this; + if (!resolved) { + const { keyframes: keyframes5 } = this.options; + return { done: true, value: keyframes5[keyframes5.length - 1] }; + } + const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes: keyframes4, calculatedDuration, totalDuration, resolvedDuration } = resolved; + if (this.startTime === null) + return generator.next(0); + const { delay: delay2, repeat, repeatType, repeatDelay, onUpdate } = this.options; + if (this.speed > 0) { + this.startTime = Math.min(this.startTime, timestamp); + } else if (this.speed < 0) { + this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime); + } + if (sample) { + this.currentTime = timestamp; + } else if (this.holdTime !== null) { + this.currentTime = this.holdTime; + } else { + this.currentTime = Math.round(timestamp - this.startTime) * this.speed; + } + const timeWithoutDelay = this.currentTime - delay2 * (this.speed >= 0 ? 1 : -1); + const isInDelayPhase = this.speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration; + this.currentTime = Math.max(timeWithoutDelay, 0); + if (this.state === "finished" && this.holdTime === null) { + this.currentTime = totalDuration; + } + let elapsed = this.currentTime; + let frameGenerator = generator; + if (repeat) { + const progress3 = Math.min(this.currentTime, totalDuration) / resolvedDuration; + let currentIteration = Math.floor(progress3); + let iterationProgress = progress3 % 1; + if (!iterationProgress && progress3 >= 1) { + iterationProgress = 1; + } + iterationProgress === 1 && currentIteration--; + currentIteration = Math.min(currentIteration, repeat + 1); + const isOddIteration = Boolean(currentIteration % 2); + if (isOddIteration) { + if (repeatType === "reverse") { + iterationProgress = 1 - iterationProgress; + if (repeatDelay) { + iterationProgress -= repeatDelay / resolvedDuration; + } + } else if (repeatType === "mirror") { + frameGenerator = mirroredGenerator; + } + } + elapsed = clamp(0, 1, iterationProgress) * resolvedDuration; + } + const state2 = isInDelayPhase ? { done: false, value: keyframes4[0] } : frameGenerator.next(elapsed); + if (mapPercentToKeyframes) { + state2.value = mapPercentToKeyframes(state2.value); + } + let { done } = state2; + if (!isInDelayPhase && calculatedDuration !== null) { + done = this.speed >= 0 ? this.currentTime >= totalDuration : this.currentTime <= 0; + } + const isAnimationFinished = this.holdTime === null && (this.state === "finished" || this.state === "running" && done); + if (isAnimationFinished && finalKeyframe !== void 0) { + state2.value = getFinalKeyframe(keyframes4, this.options, finalKeyframe); + } + if (onUpdate) { + onUpdate(state2.value); + } + if (isAnimationFinished) { + this.finish(); + } + return state2; + } + get duration() { + const { resolved } = this; + return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0; + } + get time() { + return millisecondsToSeconds(this.currentTime); + } + set time(newTime) { + newTime = secondsToMilliseconds(newTime); + this.currentTime = newTime; + if (this.holdTime !== null || this.speed === 0) { + this.holdTime = newTime; + } else if (this.driver) { + this.startTime = this.driver.now() - newTime / this.speed; + } + } + get speed() { + return this.playbackSpeed; + } + set speed(newSpeed) { + const hasChanged = this.playbackSpeed !== newSpeed; + this.playbackSpeed = newSpeed; + if (hasChanged) { + this.time = millisecondsToSeconds(this.currentTime); + } + } + play() { + if (!this.resolver.isScheduled) { + this.resolver.resume(); + } + if (!this._resolved) { + this.pendingPlayState = "running"; + return; + } + if (this.isStopped) + return; + const { driver = frameloopDriver, onPlay } = this.options; + if (!this.driver) { + this.driver = driver((timestamp) => this.tick(timestamp)); + } + onPlay && onPlay(); + const now2 = this.driver.now(); + if (this.holdTime !== null) { + this.startTime = now2 - this.holdTime; + } else if (!this.startTime || this.state === "finished") { + this.startTime = now2; + } + if (this.state === "finished") { + this.updateFinishedPromise(); + } + this.cancelTime = this.startTime; + this.holdTime = null; + this.state = "running"; + this.driver.start(); + } + pause() { + var _a8; + if (!this._resolved) { + this.pendingPlayState = "paused"; + return; + } + this.state = "paused"; + this.holdTime = (_a8 = this.currentTime) !== null && _a8 !== void 0 ? _a8 : 0; + } + complete() { + if (this.state !== "running") { + this.play(); + } + this.pendingPlayState = this.state = "finished"; + this.holdTime = null; + } + finish() { + this.teardown(); + this.state = "finished"; + const { onComplete } = this.options; + onComplete && onComplete(); + } + cancel() { + if (this.cancelTime !== null) { + this.tick(this.cancelTime); + } + this.teardown(); + this.updateFinishedPromise(); + } + teardown() { + this.state = "idle"; + this.stopDriver(); + this.resolveFinishedPromise(); + this.updateFinishedPromise(); + this.startTime = this.cancelTime = null; + this.resolver.cancel(); + } + stopDriver() { + if (!this.driver) + return; + this.driver.stop(); + this.driver = void 0; + } + sample(time2) { + this.startTime = 0; + return this.tick(time2, true); + } +}; + +// node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +var isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === "number"; + +// node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +function isWaapiSupportedEasing(easing) { + return Boolean(!easing || typeof easing === "string" && easing in supportedWaapiEasing || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing)); +} +var cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`; +var supportedWaapiEasing = { + linear: "linear", + ease: "ease", + easeIn: "ease-in", + easeOut: "ease-out", + easeInOut: "ease-in-out", + circIn: cubicBezierAsString([0, 0.65, 0.55, 1]), + circOut: cubicBezierAsString([0.55, 0, 1, 0.45]), + backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]), + backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]) +}; +function mapEasingToNativeEasingWithDefault(easing) { + return mapEasingToNativeEasing(easing) || supportedWaapiEasing.easeOut; +} +function mapEasingToNativeEasing(easing) { + if (!easing) { + return void 0; + } else if (isBezierDefinition(easing)) { + return cubicBezierAsString(easing); + } else if (Array.isArray(easing)) { + return easing.map(mapEasingToNativeEasingWithDefault); + } else { + return supportedWaapiEasing[easing]; + } +} + +// node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +function animateStyle(element, valueName, keyframes4, { delay: delay2 = 0, duration = 300, repeat = 0, repeatType = "loop", ease: ease2, times } = {}) { + const keyframeOptions = { [valueName]: keyframes4 }; + if (times) + keyframeOptions.offset = times; + const easing = mapEasingToNativeEasing(ease2); + if (Array.isArray(easing)) + keyframeOptions.easing = easing; + return element.animate(keyframeOptions, { + delay: delay2, + duration, + easing: !Array.isArray(easing) ? easing : "linear", + fill: "both", + iterations: repeat + 1, + direction: repeatType === "reverse" ? "alternate" : "normal" + }); +} + +// node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +var supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, "animate")); +var acceleratedValues = /* @__PURE__ */ new Set([ + "opacity", + "clipPath", + "filter", + "transform" + // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved + // or until we implement support for linear() easing. + // "background-color" +]); +var sampleDelta = 10; +var maxDuration2 = 2e4; +function requiresPregeneratedKeyframes(options) { + return options.type === "spring" || options.name === "backgroundColor" || !isWaapiSupportedEasing(options.ease); +} +function pregenerateKeyframes(keyframes4, options) { + const sampleAnimation = new MainThreadAnimation({ + ...options, + keyframes: keyframes4, + repeat: 0, + delay: 0, + isGenerator: true + }); + let state2 = { done: false, value: keyframes4[0] }; + const pregeneratedKeyframes = []; + let t2 = 0; + while (!state2.done && t2 < maxDuration2) { + state2 = sampleAnimation.sample(t2); + pregeneratedKeyframes.push(state2.value); + t2 += sampleDelta; + } + return { + times: void 0, + keyframes: pregeneratedKeyframes, + duration: t2 - sampleDelta, + ease: "linear" + }; +} +var AcceleratedAnimation = class extends BaseAnimation { + constructor(options) { + super(options); + const { name, motionValue: motionValue2, keyframes: keyframes4 } = this.options; + this.resolver = new DOMKeyframesResolver(keyframes4, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue2); + this.resolver.scheduleResolve(); + } + initPlayback(keyframes4, finalKeyframe) { + var _a8; + let { duration = 300, times, ease: ease2, type, motionValue: motionValue2, name } = this.options; + if (!((_a8 = motionValue2.owner) === null || _a8 === void 0 ? void 0 : _a8.current)) { + return false; + } + if (requiresPregeneratedKeyframes(this.options)) { + const { onComplete, onUpdate, motionValue: motionValue3, ...options } = this.options; + const pregeneratedAnimation = pregenerateKeyframes(keyframes4, options); + keyframes4 = pregeneratedAnimation.keyframes; + if (keyframes4.length === 1) { + keyframes4[1] = keyframes4[0]; + } + duration = pregeneratedAnimation.duration; + times = pregeneratedAnimation.times; + ease2 = pregeneratedAnimation.ease; + type = "keyframes"; + } + const animation = animateStyle(motionValue2.owner.current, name, keyframes4, { ...this.options, duration, times, ease: ease2 }); + animation.startTime = time.now(); + if (this.pendingTimeline) { + animation.timeline = this.pendingTimeline; + this.pendingTimeline = void 0; + } else { + animation.onfinish = () => { + const { onComplete } = this.options; + motionValue2.set(getFinalKeyframe(keyframes4, this.options, finalKeyframe)); + onComplete && onComplete(); + this.cancel(); + this.resolveFinishedPromise(); + }; + } + return { + animation, + duration, + times, + type, + ease: ease2, + keyframes: keyframes4 + }; + } + get duration() { + const { resolved } = this; + if (!resolved) + return 0; + const { duration } = resolved; + return millisecondsToSeconds(duration); + } + get time() { + const { resolved } = this; + if (!resolved) + return 0; + const { animation } = resolved; + return millisecondsToSeconds(animation.currentTime || 0); + } + set time(newTime) { + const { resolved } = this; + if (!resolved) + return; + const { animation } = resolved; + animation.currentTime = secondsToMilliseconds(newTime); + } + get speed() { + const { resolved } = this; + if (!resolved) + return 1; + const { animation } = resolved; + return animation.playbackRate; + } + set speed(newSpeed) { + const { resolved } = this; + if (!resolved) + return; + const { animation } = resolved; + animation.playbackRate = newSpeed; + } + get state() { + const { resolved } = this; + if (!resolved) + return "idle"; + const { animation } = resolved; + return animation.playState; + } + /** + * Replace the default DocumentTimeline with another AnimationTimeline. + * Currently used for scroll animations. + */ + attachTimeline(timeline) { + if (!this._resolved) { + this.pendingTimeline = timeline; + } else { + const { resolved } = this; + if (!resolved) + return noop3; + const { animation } = resolved; + animation.timeline = timeline; + animation.onfinish = null; + } + return noop3; + } + play() { + if (this.isStopped) + return; + const { resolved } = this; + if (!resolved) + return; + const { animation } = resolved; + if (animation.playState === "finished") { + this.updateFinishedPromise(); + } + animation.play(); + } + pause() { + const { resolved } = this; + if (!resolved) + return; + const { animation } = resolved; + animation.pause(); + } + stop() { + this.resolver.cancel(); + this.isStopped = true; + if (this.state === "idle") + return; + const { resolved } = this; + if (!resolved) + return; + const { animation, keyframes: keyframes4, duration, type, ease: ease2, times } = resolved; + if (animation.playState === "idle" || animation.playState === "finished") { + return; + } + if (this.time) { + const { motionValue: motionValue2, onUpdate, onComplete, ...options } = this.options; + const sampleAnimation = new MainThreadAnimation({ + ...options, + keyframes: keyframes4, + duration, + type, + ease: ease2, + times, + isGenerator: true + }); + const sampleTime = secondsToMilliseconds(this.time); + motionValue2.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta); + } + this.cancel(); + } + complete() { + const { resolved } = this; + if (!resolved) + return; + resolved.animation.finish(); + } + cancel() { + const { resolved } = this; + if (!resolved) + return; + resolved.animation.cancel(); + } + static supports(options) { + const { motionValue: motionValue2, name, repeatDelay, repeatType, damping, type } = options; + return supportsWaapi() && name && acceleratedValues.has(name) && motionValue2 && motionValue2.owner && motionValue2.owner.current instanceof HTMLElement && /** + * If we're outputting values to onUpdate then we can't use WAAPI as there's + * no way to read the value from WAAPI every frame. + */ + !motionValue2.owner.getProps().onUpdate && !repeatDelay && repeatType !== "mirror" && damping !== 0 && type !== "inertia"; + } +}; + +// node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +function observeTimeline(update, timeline) { + let prevProgress; + const onFrame = () => { + const { currentTime } = timeline; + const percentage = currentTime === null ? 0 : currentTime.value; + const progress3 = percentage / 100; + if (prevProgress !== progress3) { + update(progress3); + } + prevProgress = progress3; + }; + frame2.update(onFrame, true); + return () => cancelFrame(onFrame); +} + +// node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +var supportsScrollTimeline = memo(() => window.ScrollTimeline !== void 0); + +// node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +var GroupPlaybackControls = class { + constructor(animations2) { + this.stop = () => this.runAll("stop"); + this.animations = animations2.filter(Boolean); + } + then(onResolve, onReject) { + return Promise.all(this.animations).then(onResolve).catch(onReject); + } + /** + * TODO: Filter out cancelled or stopped animations before returning + */ + getAll(propName) { + return this.animations[0][propName]; + } + setAll(propName, newValue) { + for (let i = 0; i < this.animations.length; i++) { + this.animations[i][propName] = newValue; + } + } + attachTimeline(timeline) { + const cancelAll = this.animations.map((animation) => { + if (supportsScrollTimeline() && animation.attachTimeline) { + animation.attachTimeline(timeline); + } else { + animation.pause(); + return observeTimeline((progress3) => { + animation.time = animation.duration * progress3; + }, timeline); + } + }); + return () => { + cancelAll.forEach((cancelTimeline, i) => { + if (cancelTimeline) + cancelTimeline(); + this.animations[i].stop(); + }); + }; + } + get time() { + return this.getAll("time"); + } + set time(time2) { + this.setAll("time", time2); + } + get speed() { + return this.getAll("speed"); + } + set speed(speed) { + this.setAll("speed", speed); + } + get duration() { + let max = 0; + for (let i = 0; i < this.animations.length; i++) { + max = Math.max(max, this.animations[i].duration); + } + return max; + } + runAll(methodName) { + this.animations.forEach((controls) => controls[methodName]()); + } + play() { + this.runAll("play"); + } + pause() { + this.runAll("pause"); + } + cancel() { + this.runAll("cancel"); + } + complete() { + this.runAll("complete"); + } +}; + +// node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +var animateMotionValue = (name, value, target, transition3 = {}, element, isHandoff) => (onComplete) => { + const valueTransition = getValueTransition(transition3, name) || {}; + const delay2 = valueTransition.delay || transition3.delay || 0; + let { elapsed = 0 } = transition3; + elapsed = elapsed - secondsToMilliseconds(delay2); + let options = { + keyframes: Array.isArray(target) ? target : [null, target], + ease: "easeOut", + velocity: value.getVelocity(), + ...valueTransition, + delay: -elapsed, + onUpdate: (v) => { + value.set(v); + valueTransition.onUpdate && valueTransition.onUpdate(v); + }, + onComplete: () => { + onComplete(); + valueTransition.onComplete && valueTransition.onComplete(); + }, + name, + motionValue: value, + element: isHandoff ? void 0 : element + }; + if (!isTransitionDefined(valueTransition)) { + options = { + ...options, + ...getDefaultTransition(name, options) + }; + } + if (options.duration) { + options.duration = secondsToMilliseconds(options.duration); + } + if (options.repeatDelay) { + options.repeatDelay = secondsToMilliseconds(options.repeatDelay); + } + if (options.from !== void 0) { + options.keyframes[0] = options.from; + } + let shouldSkip = false; + if (options.type === false || options.duration === 0 && !options.repeatDelay) { + options.duration = 0; + if (options.delay === 0) { + shouldSkip = true; + } + } + if (instantAnimationState.current || MotionGlobalConfig.skipAnimations) { + shouldSkip = true; + options.duration = 0; + options.delay = 0; + } + if (shouldSkip && !isHandoff && value.get() !== void 0) { + const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition); + if (finalKeyframe !== void 0) { + frame2.update(() => { + options.onUpdate(finalKeyframe); + options.onComplete(); + }); + return new GroupPlaybackControls([]); + } + } + if (!isHandoff && AcceleratedAnimation.supports(options)) { + return new AcceleratedAnimation(options); + } else { + return new MainThreadAnimation(options); + } +}; + +// node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +function isWillChangeMotionValue(value) { + return Boolean(isMotionValue(value) && value.add); +} + +// node_modules/framer-motion/dist/es/utils/array.mjs +function addUniqueItem(arr, item) { + if (arr.indexOf(item) === -1) + arr.push(item); +} +function removeItem2(arr, item) { + const index = arr.indexOf(item); + if (index > -1) + arr.splice(index, 1); +} +function moveItem([...arr], fromIndex, toIndex) { + const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex; + if (startIndex >= 0 && startIndex < arr.length) { + const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex; + const [item] = arr.splice(fromIndex, 1); + arr.splice(endIndex, 0, item); + } + return arr; +} + +// node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +var SubscriptionManager = class { + constructor() { + this.subscriptions = []; + } + add(handler) { + addUniqueItem(this.subscriptions, handler); + return () => removeItem2(this.subscriptions, handler); + } + notify(a, b, c) { + const numSubscriptions = this.subscriptions.length; + if (!numSubscriptions) + return; + if (numSubscriptions === 1) { + this.subscriptions[0](a, b, c); + } else { + for (let i = 0; i < numSubscriptions; i++) { + const handler = this.subscriptions[i]; + handler && handler(a, b, c); + } + } + } + getSize() { + return this.subscriptions.length; + } + clear() { + this.subscriptions.length = 0; + } +}; + +// node_modules/framer-motion/dist/es/utils/warn-once.mjs +var warned = /* @__PURE__ */ new Set(); +function warnOnce(condition, message, element) { + if (condition || warned.has(message)) + return; + console.warn(message); + if (element) + console.warn(element); + warned.add(message); +} + +// node_modules/framer-motion/dist/es/value/index.mjs +var MAX_VELOCITY_DELTA = 30; +var isFloat = (value) => { + return !isNaN(parseFloat(value)); +}; +var collectMotionValues = { + current: void 0 +}; +var MotionValue = class { + /** + * @param init - The initiating value + * @param config - Optional configuration options + * + * - `transformer`: A function to transform incoming values with. + * + * @internal + */ + constructor(init, options = {}) { + this.version = "11.2.11"; + this.canTrackVelocity = null; + this.events = {}; + this.updateAndNotify = (v, render = true) => { + const currentTime = time.now(); + if (this.updatedAt !== currentTime) { + this.setPrevFrameValue(); + } + this.prev = this.current; + this.setCurrent(v); + if (this.current !== this.prev && this.events.change) { + this.events.change.notify(this.current); + } + if (render && this.events.renderRequest) { + this.events.renderRequest.notify(this.current); + } + }; + this.hasAnimated = false; + this.setCurrent(init); + this.owner = options.owner; + } + setCurrent(current) { + this.current = current; + this.updatedAt = time.now(); + if (this.canTrackVelocity === null && current !== void 0) { + this.canTrackVelocity = isFloat(this.current); + } + } + setPrevFrameValue(prevFrameValue = this.current) { + this.prevFrameValue = prevFrameValue; + this.prevUpdatedAt = this.updatedAt; + } + /** + * Adds a function that will be notified when the `MotionValue` is updated. + * + * It returns a function that, when called, will cancel the subscription. + * + * When calling `onChange` inside a React component, it should be wrapped with the + * `useEffect` hook. As it returns an unsubscribe function, this should be returned + * from the `useEffect` function to ensure you don't add duplicate subscribers.. + * + * ```jsx + * export const MyComponent = () => { + * const x = useMotionValue(0) + * const y = useMotionValue(0) + * const opacity = useMotionValue(1) + * + * useEffect(() => { + * function updateOpacity() { + * const maxXY = Math.max(x.get(), y.get()) + * const newOpacity = transform(maxXY, [0, 100], [1, 0]) + * opacity.set(newOpacity) + * } + * + * const unsubscribeX = x.on("change", updateOpacity) + * const unsubscribeY = y.on("change", updateOpacity) + * + * return () => { + * unsubscribeX() + * unsubscribeY() + * } + * }, []) + * + * return + * } + * ``` + * + * @param subscriber - A function that receives the latest value. + * @returns A function that, when called, will cancel this subscription. + * + * @deprecated + */ + onChange(subscription) { + if (true) { + warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on("change", callback).`); + } + return this.on("change", subscription); + } + on(eventName, callback) { + if (!this.events[eventName]) { + this.events[eventName] = new SubscriptionManager(); + } + const unsubscribe = this.events[eventName].add(callback); + if (eventName === "change") { + return () => { + unsubscribe(); + frame2.read(() => { + if (!this.events.change.getSize()) { + this.stop(); + } + }); + }; + } + return unsubscribe; + } + clearListeners() { + for (const eventManagers in this.events) { + this.events[eventManagers].clear(); + } + } + /** + * Attaches a passive effect to the `MotionValue`. + * + * @internal + */ + attach(passiveEffect, stopPassiveEffect) { + this.passiveEffect = passiveEffect; + this.stopPassiveEffect = stopPassiveEffect; + } + /** + * Sets the state of the `MotionValue`. + * + * @remarks + * + * ```jsx + * const x = useMotionValue(0) + * x.set(10) + * ``` + * + * @param latest - Latest value to set. + * @param render - Whether to notify render subscribers. Defaults to `true` + * + * @public + */ + set(v, render = true) { + if (!render || !this.passiveEffect) { + this.updateAndNotify(v, render); + } else { + this.passiveEffect(v, this.updateAndNotify); + } + } + setWithVelocity(prev2, current, delta) { + this.set(current); + this.prev = void 0; + this.prevFrameValue = prev2; + this.prevUpdatedAt = this.updatedAt - delta; + } + /** + * Set the state of the `MotionValue`, stopping any active animations, + * effects, and resets velocity to `0`. + */ + jump(v, endAnimation = true) { + this.updateAndNotify(v); + this.prev = v; + this.prevUpdatedAt = this.prevFrameValue = void 0; + endAnimation && this.stop(); + if (this.stopPassiveEffect) + this.stopPassiveEffect(); + } + /** + * Returns the latest state of `MotionValue` + * + * @returns - The latest state of `MotionValue` + * + * @public + */ + get() { + if (collectMotionValues.current) { + collectMotionValues.current.push(this); + } + return this.current; + } + /** + * @public + */ + getPrevious() { + return this.prev; + } + /** + * Returns the latest velocity of `MotionValue` + * + * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical. + * + * @public + */ + getVelocity() { + const currentTime = time.now(); + if (!this.canTrackVelocity || this.prevFrameValue === void 0 || currentTime - this.updatedAt > MAX_VELOCITY_DELTA) { + return 0; + } + const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA); + return velocityPerSecond(parseFloat(this.current) - parseFloat(this.prevFrameValue), delta); + } + /** + * Registers a new animation to control this `MotionValue`. Only one + * animation can drive a `MotionValue` at one time. + * + * ```jsx + * value.start() + * ``` + * + * @param animation - A function that starts the provided animation + * + * @internal + */ + start(startAnimation) { + this.stop(); + return new Promise((resolve) => { + this.hasAnimated = true; + this.animation = startAnimation(resolve); + if (this.events.animationStart) { + this.events.animationStart.notify(); + } + }).then(() => { + if (this.events.animationComplete) { + this.events.animationComplete.notify(); + } + this.clearAnimation(); + }); + } + /** + * Stop the currently active animation. + * + * @public + */ + stop() { + if (this.animation) { + this.animation.stop(); + if (this.events.animationCancel) { + this.events.animationCancel.notify(); + } + } + this.clearAnimation(); + } + /** + * Returns `true` if this value is currently animating. + * + * @public + */ + isAnimating() { + return !!this.animation; + } + clearAnimation() { + delete this.animation; + } + /** + * Destroy and clean up subscribers to this `MotionValue`. + * + * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically + * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually + * created a `MotionValue` via the `motionValue` function. + * + * @public + */ + destroy() { + this.clearListeners(); + this.stop(); + if (this.stopPassiveEffect) { + this.stopPassiveEffect(); + } + } +}; +function motionValue(init, options) { + return new MotionValue(init, options); +} + +// node_modules/framer-motion/dist/es/render/utils/setters.mjs +function setMotionValue(visualElement, key, value) { + if (visualElement.hasValue(key)) { + visualElement.getValue(key).set(value); + } else { + visualElement.addValue(key, motionValue(value)); + } +} +function setTarget(visualElement, definition) { + const resolved = resolveVariant(visualElement, definition); + let { transitionEnd = {}, transition: transition3 = {}, ...target } = resolved || {}; + target = { ...target, ...transitionEnd }; + for (const key in target) { + const value = resolveFinalValueInKeyframes(target[key]); + setMotionValue(visualElement, key, value); + } +} + +// node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +function getOptimisedAppearId(visualElement) { + return visualElement.getProps()[optimizedAppearDataAttribute]; +} + +// node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +function shouldBlockAnimation({ protectedKeys, needsAnimating }, key) { + const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true; + needsAnimating[key] = false; + return shouldBlock; +} +function animateTarget(visualElement, targetAndTransition, { delay: delay2 = 0, transitionOverride, type } = {}) { + var _a8; + let { transition: transition3 = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition; + const willChange = visualElement.getValue("willChange"); + if (transitionOverride) + transition3 = transitionOverride; + const animations2 = []; + const animationTypeState = type && visualElement.animationState && visualElement.animationState.getState()[type]; + for (const key in target) { + const value = visualElement.getValue(key, (_a8 = visualElement.latestValues[key]) !== null && _a8 !== void 0 ? _a8 : null); + const valueTarget = target[key]; + if (valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key)) { + continue; + } + const valueTransition = { + delay: delay2, + elapsed: 0, + ...getValueTransition(transition3 || {}, key) + }; + let isHandoff = false; + if (window.HandoffAppearAnimations) { + const appearId = getOptimisedAppearId(visualElement); + if (appearId) { + const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame2); + if (elapsed !== null) { + valueTransition.elapsed = elapsed; + isHandoff = true; + } + } + } + value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key) ? { type: false } : valueTransition, visualElement, isHandoff)); + const animation = value.animation; + if (animation) { + if (isWillChangeMotionValue(willChange)) { + willChange.add(key); + animation.then(() => willChange.remove(key)); + } + animations2.push(animation); + } + } + if (transitionEnd) { + Promise.all(animations2).then(() => { + frame2.update(() => { + transitionEnd && setTarget(visualElement, transitionEnd); + }); + }); + } + return animations2; +} + +// node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +function animateVariant(visualElement, variant, options = {}) { + var _a8; + const resolved = resolveVariant(visualElement, variant, options.type === "exit" ? (_a8 = visualElement.presenceContext) === null || _a8 === void 0 ? void 0 : _a8.custom : void 0); + let { transition: transition3 = visualElement.getDefaultTransition() || {} } = resolved || {}; + if (options.transitionOverride) { + transition3 = options.transitionOverride; + } + const getAnimation = resolved ? () => Promise.all(animateTarget(visualElement, resolved, options)) : () => Promise.resolve(); + const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size ? (forwardDelay = 0) => { + const { delayChildren = 0, staggerChildren, staggerDirection } = transition3; + return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options); + } : () => Promise.resolve(); + const { when } = transition3; + if (when) { + const [first, last] = when === "beforeChildren" ? [getAnimation, getChildAnimations] : [getChildAnimations, getAnimation]; + return first().then(() => last()); + } else { + return Promise.all([getAnimation(), getChildAnimations(options.delay)]); + } +} +function animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) { + const animations2 = []; + const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren; + const generateStaggerDuration = staggerDirection === 1 ? (i = 0) => i * staggerChildren : (i = 0) => maxStaggerDuration - i * staggerChildren; + Array.from(visualElement.variantChildren).sort(sortByTreeOrder).forEach((child, i) => { + child.notify("AnimationStart", variant); + animations2.push(animateVariant(child, variant, { + ...options, + delay: delayChildren + generateStaggerDuration(i) + }).then(() => child.notify("AnimationComplete", variant))); + }); + return Promise.all(animations2); +} +function sortByTreeOrder(a, b) { + return a.sortNodePosition(b); +} + +// node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs +function animateVisualElement(visualElement, definition, options = {}) { + visualElement.notify("AnimationStart", definition); + let animation; + if (Array.isArray(definition)) { + const animations2 = definition.map((variant) => animateVariant(visualElement, variant, options)); + animation = Promise.all(animations2); + } else if (typeof definition === "string") { + animation = animateVariant(visualElement, definition, options); + } else { + const resolvedDefinition = typeof definition === "function" ? resolveVariant(visualElement, definition, options.custom) : definition; + animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options)); + } + return animation.then(() => { + frame2.postRender(() => { + visualElement.notify("AnimationComplete", definition); + }); + }); +} + +// node_modules/framer-motion/dist/es/render/utils/animation-state.mjs +var reversePriorityOrder = [...variantPriorityOrder].reverse(); +var numAnimationTypes = variantPriorityOrder.length; +function animateList(visualElement) { + return (animations2) => Promise.all(animations2.map(({ animation, options }) => animateVisualElement(visualElement, animation, options))); +} +function createAnimationState(visualElement) { + let animate2 = animateList(visualElement); + let state2 = createState(); + let isInitialRender = true; + const buildResolvedTypeValues = (type) => (acc, definition) => { + var _a8; + const resolved = resolveVariant(visualElement, definition, type === "exit" ? (_a8 = visualElement.presenceContext) === null || _a8 === void 0 ? void 0 : _a8.custom : void 0); + if (resolved) { + const { transition: transition3, transitionEnd, ...target } = resolved; + acc = { ...acc, ...target, ...transitionEnd }; + } + return acc; + }; + function setAnimateFunction(makeAnimator) { + animate2 = makeAnimator(visualElement); + } + function animateChanges(changedActiveType) { + const props = visualElement.getProps(); + const context = visualElement.getVariantContext(true) || {}; + const animations2 = []; + const removedKeys = /* @__PURE__ */ new Set(); + let encounteredKeys = {}; + let removedVariantIndex = Infinity; + for (let i = 0; i < numAnimationTypes; i++) { + const type = reversePriorityOrder[i]; + const typeState = state2[type]; + const prop = props[type] !== void 0 ? props[type] : context[type]; + const propIsVariant = isVariantLabel(prop); + const activeDelta = type === changedActiveType ? typeState.isActive : null; + if (activeDelta === false) + removedVariantIndex = i; + let isInherited = prop === context[type] && prop !== props[type] && propIsVariant; + if (isInherited && isInitialRender && visualElement.manuallyAnimateOnMount) { + isInherited = false; + } + typeState.protectedKeys = { ...encounteredKeys }; + if ( + // If it isn't active and hasn't *just* been set as inactive + !typeState.isActive && activeDelta === null || // If we didn't and don't have any defined prop for this animation type + !prop && !typeState.prevProp || // Or if the prop doesn't define an animation + isAnimationControls(prop) || typeof prop === "boolean" + ) { + continue; + } + const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop); + let shouldAnimateType = variantDidChange || // If we're making this variant active, we want to always make it active + type === changedActiveType && typeState.isActive && !isInherited && propIsVariant || // If we removed a higher-priority variant (i is in reverse order) + i > removedVariantIndex && propIsVariant; + let handledRemovedValues = false; + const definitionList = Array.isArray(prop) ? prop : [prop]; + let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {}); + if (activeDelta === false) + resolvedValues = {}; + const { prevResolvedValues = {} } = typeState; + const allKeys = { + ...prevResolvedValues, + ...resolvedValues + }; + const markToAnimate = (key) => { + shouldAnimateType = true; + if (removedKeys.has(key)) { + handledRemovedValues = true; + removedKeys.delete(key); + } + typeState.needsAnimating[key] = true; + const motionValue2 = visualElement.getValue(key); + if (motionValue2) + motionValue2.liveStyle = false; + }; + for (const key in allKeys) { + const next2 = resolvedValues[key]; + const prev2 = prevResolvedValues[key]; + if (encounteredKeys.hasOwnProperty(key)) + continue; + let valueHasChanged = false; + if (isKeyframesTarget(next2) && isKeyframesTarget(prev2)) { + valueHasChanged = !shallowCompare(next2, prev2); + } else { + valueHasChanged = next2 !== prev2; + } + if (valueHasChanged) { + if (next2 !== void 0 && next2 !== null) { + markToAnimate(key); + } else { + removedKeys.add(key); + } + } else if (next2 !== void 0 && removedKeys.has(key)) { + markToAnimate(key); + } else { + typeState.protectedKeys[key] = true; + } + } + typeState.prevProp = prop; + typeState.prevResolvedValues = resolvedValues; + if (typeState.isActive) { + encounteredKeys = { ...encounteredKeys, ...resolvedValues }; + } + if (isInitialRender && visualElement.blockInitialAnimation) { + shouldAnimateType = false; + } + if (shouldAnimateType && (!isInherited || handledRemovedValues)) { + animations2.push(...definitionList.map((animation) => ({ + animation, + options: { type } + }))); + } + } + if (removedKeys.size) { + const fallbackAnimation = {}; + removedKeys.forEach((key) => { + const fallbackTarget = visualElement.getBaseTarget(key); + const motionValue2 = visualElement.getValue(key); + if (motionValue2) + motionValue2.liveStyle = true; + fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null; + }); + animations2.push({ animation: fallbackAnimation }); + } + let shouldAnimate = Boolean(animations2.length); + if (isInitialRender && (props.initial === false || props.initial === props.animate) && !visualElement.manuallyAnimateOnMount) { + shouldAnimate = false; + } + isInitialRender = false; + return shouldAnimate ? animate2(animations2) : Promise.resolve(); + } + function setActive(type, isActive) { + var _a8; + if (state2[type].isActive === isActive) + return Promise.resolve(); + (_a8 = visualElement.variantChildren) === null || _a8 === void 0 ? void 0 : _a8.forEach((child) => { + var _a9; + return (_a9 = child.animationState) === null || _a9 === void 0 ? void 0 : _a9.setActive(type, isActive); + }); + state2[type].isActive = isActive; + const animations2 = animateChanges(type); + for (const key in state2) { + state2[key].protectedKeys = {}; + } + return animations2; + } + return { + animateChanges, + setActive, + setAnimateFunction, + getState: () => state2, + reset: () => { + state2 = createState(); + isInitialRender = true; + } + }; +} +function checkVariantsDidChange(prev2, next2) { + if (typeof next2 === "string") { + return next2 !== prev2; + } else if (Array.isArray(next2)) { + return !shallowCompare(next2, prev2); + } + return false; +} +function createTypeState(isActive = false) { + return { + isActive, + protectedKeys: {}, + needsAnimating: {}, + prevResolvedValues: {} + }; +} +function createState() { + return { + animate: createTypeState(true), + whileInView: createTypeState(), + whileHover: createTypeState(), + whileTap: createTypeState(), + whileDrag: createTypeState(), + whileFocus: createTypeState(), + exit: createTypeState() + }; +} + +// node_modules/framer-motion/dist/es/motion/features/animation/index.mjs +var AnimationFeature = class extends Feature { + /** + * We dynamically generate the AnimationState manager as it contains a reference + * to the underlying animation library. We only want to load that if we load this, + * so people can optionally code split it out using the `m` component. + */ + constructor(node3) { + super(node3); + node3.animationState || (node3.animationState = createAnimationState(node3)); + } + updateAnimationControlsSubscription() { + const { animate: animate2 } = this.node.getProps(); + if (isAnimationControls(animate2)) { + this.unmountControls = animate2.subscribe(this.node); + } + } + /** + * Subscribe any provided AnimationControls to the component's VisualElement + */ + mount() { + this.updateAnimationControlsSubscription(); + } + update() { + const { animate: animate2 } = this.node.getProps(); + const { animate: prevAnimate } = this.node.prevProps || {}; + if (animate2 !== prevAnimate) { + this.updateAnimationControlsSubscription(); + } + } + unmount() { + var _a8; + this.node.animationState.reset(); + (_a8 = this.unmountControls) === null || _a8 === void 0 ? void 0 : _a8.call(this); + } +}; + +// node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs +var id = 0; +var ExitAnimationFeature = class extends Feature { + constructor() { + super(...arguments); + this.id = id++; + } + update() { + if (!this.node.presenceContext) + return; + const { isPresent: isPresent2, onExitComplete } = this.node.presenceContext; + const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {}; + if (!this.node.animationState || isPresent2 === prevIsPresent) { + return; + } + const exitAnimation = this.node.animationState.setActive("exit", !isPresent2); + if (onExitComplete && !isPresent2) { + exitAnimation.then(() => onExitComplete(this.id)); + } + } + mount() { + const { register } = this.node.presenceContext || {}; + if (register) { + this.unmount = register(this.id); + } + } + unmount() { + } +}; + +// node_modules/framer-motion/dist/es/motion/features/animations.mjs +var animations = { + animation: { + Feature: AnimationFeature + }, + exit: { + Feature: ExitAnimationFeature + } +}; + +// node_modules/framer-motion/dist/es/utils/distance.mjs +var distance2 = (a, b) => Math.abs(a - b); +function distance2D(a, b) { + const xDelta = distance2(a.x, b.x); + const yDelta = distance2(a.y, b.y); + return Math.sqrt(xDelta ** 2 + yDelta ** 2); +} + +// node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs +var PanSession2 = class { + constructor(event, handlers2, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) { + this.startEvent = null; + this.lastMoveEvent = null; + this.lastMoveEventInfo = null; + this.handlers = {}; + this.contextWindow = window; + this.updatePoint = () => { + if (!(this.lastMoveEvent && this.lastMoveEventInfo)) + return; + const info2 = getPanInfo2(this.lastMoveEventInfo, this.history); + const isPanStarted = this.startEvent !== null; + const isDistancePastThreshold = distance2D(info2.offset, { x: 0, y: 0 }) >= 3; + if (!isPanStarted && !isDistancePastThreshold) + return; + const { point: point2 } = info2; + const { timestamp: timestamp2 } = frameData; + this.history.push({ ...point2, timestamp: timestamp2 }); + const { onStart, onMove } = this.handlers; + if (!isPanStarted) { + onStart && onStart(this.lastMoveEvent, info2); + this.startEvent = this.lastMoveEvent; + } + onMove && onMove(this.lastMoveEvent, info2); + }; + this.handlePointerMove = (event2, info2) => { + this.lastMoveEvent = event2; + this.lastMoveEventInfo = transformPoint(info2, this.transformPagePoint); + frame2.update(this.updatePoint, true); + }; + this.handlePointerUp = (event2, info2) => { + this.end(); + const { onEnd, onSessionEnd, resumeAnimation } = this.handlers; + if (this.dragSnapToOrigin) + resumeAnimation && resumeAnimation(); + if (!(this.lastMoveEvent && this.lastMoveEventInfo)) + return; + const panInfo = getPanInfo2(event2.type === "pointercancel" ? this.lastMoveEventInfo : transformPoint(info2, this.transformPagePoint), this.history); + if (this.startEvent && onEnd) { + onEnd(event2, panInfo); + } + onSessionEnd && onSessionEnd(event2, panInfo); + }; + if (!isPrimaryPointer(event)) + return; + this.dragSnapToOrigin = dragSnapToOrigin; + this.handlers = handlers2; + this.transformPagePoint = transformPagePoint; + this.contextWindow = contextWindow || window; + const info = extractEventInfo2(event); + const initialInfo = transformPoint(info, this.transformPagePoint); + const { point } = initialInfo; + const { timestamp } = frameData; + this.history = [{ ...point, timestamp }]; + const { onSessionStart } = handlers2; + onSessionStart && onSessionStart(event, getPanInfo2(initialInfo, this.history)); + this.removeListeners = pipe5(addPointerEvent2(this.contextWindow, "pointermove", this.handlePointerMove), addPointerEvent2(this.contextWindow, "pointerup", this.handlePointerUp), addPointerEvent2(this.contextWindow, "pointercancel", this.handlePointerUp)); + } + updateHandlers(handlers2) { + this.handlers = handlers2; + } + end() { + this.removeListeners && this.removeListeners(); + cancelFrame(this.updatePoint); + } +}; +function transformPoint(info, transformPagePoint) { + return transformPagePoint ? { point: transformPagePoint(info.point) } : info; +} +function subtractPoint2(a, b) { + return { x: a.x - b.x, y: a.y - b.y }; +} +function getPanInfo2({ point }, history) { + return { + point, + delta: subtractPoint2(point, lastDevicePoint2(history)), + offset: subtractPoint2(point, startDevicePoint(history)), + velocity: getVelocity2(history, 0.1) + }; +} +function startDevicePoint(history) { + return history[0]; +} +function lastDevicePoint2(history) { + return history[history.length - 1]; +} +function getVelocity2(history, timeDelta) { + if (history.length < 2) { + return { x: 0, y: 0 }; + } + let i = history.length - 1; + let timestampedPoint = null; + const lastPoint = lastDevicePoint2(history); + while (i >= 0) { + timestampedPoint = history[i]; + if (lastPoint.timestamp - timestampedPoint.timestamp > secondsToMilliseconds(timeDelta)) { + break; + } + i--; + } + if (!timestampedPoint) { + return { x: 0, y: 0 }; + } + const time2 = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp); + if (time2 === 0) { + return { x: 0, y: 0 }; + } + const currentVelocity = { + x: (lastPoint.x - timestampedPoint.x) / time2, + y: (lastPoint.y - timestampedPoint.y) / time2 + }; + if (currentVelocity.x === Infinity) { + currentVelocity.x = 0; + } + if (currentVelocity.y === Infinity) { + currentVelocity.y = 0; + } + return currentVelocity; +} + +// node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +function calcLength(axis) { + return axis.max - axis.min; +} +function isNear(value, target = 0, maxDistance = 0.01) { + return Math.abs(value - target) <= maxDistance; +} +function calcAxisDelta(delta, source, target, origin = 0.5) { + delta.origin = origin; + delta.originPoint = mixNumber(source.min, source.max, delta.origin); + delta.scale = calcLength(target) / calcLength(source); + if (isNear(delta.scale, 1, 1e-4) || isNaN(delta.scale)) + delta.scale = 1; + delta.translate = mixNumber(target.min, target.max, delta.origin) - delta.originPoint; + if (isNear(delta.translate) || isNaN(delta.translate)) + delta.translate = 0; +} +function calcBoxDelta(delta, source, target, origin) { + calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : void 0); + calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : void 0); +} +function calcRelativeAxis(target, relative, parent) { + target.min = parent.min + relative.min; + target.max = target.min + calcLength(relative); +} +function calcRelativeBox(target, relative, parent) { + calcRelativeAxis(target.x, relative.x, parent.x); + calcRelativeAxis(target.y, relative.y, parent.y); +} +function calcRelativeAxisPosition(target, layout3, parent) { + target.min = layout3.min - parent.min; + target.max = target.min + calcLength(layout3); +} +function calcRelativePosition(target, layout3, parent) { + calcRelativeAxisPosition(target.x, layout3.x, parent.x); + calcRelativeAxisPosition(target.y, layout3.y, parent.y); +} + +// node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +function applyConstraints(point, { min, max }, elastic) { + if (min !== void 0 && point < min) { + point = elastic ? mixNumber(min, point, elastic.min) : Math.max(point, min); + } else if (max !== void 0 && point > max) { + point = elastic ? mixNumber(max, point, elastic.max) : Math.min(point, max); + } + return point; +} +function calcRelativeAxisConstraints(axis, min, max) { + return { + min: min !== void 0 ? axis.min + min : void 0, + max: max !== void 0 ? axis.max + max - (axis.max - axis.min) : void 0 + }; +} +function calcRelativeConstraints(layoutBox, { top, left, bottom, right }) { + return { + x: calcRelativeAxisConstraints(layoutBox.x, left, right), + y: calcRelativeAxisConstraints(layoutBox.y, top, bottom) + }; +} +function calcViewportAxisConstraints(layoutAxis, constraintsAxis) { + let min = constraintsAxis.min - layoutAxis.min; + let max = constraintsAxis.max - layoutAxis.max; + if (constraintsAxis.max - constraintsAxis.min < layoutAxis.max - layoutAxis.min) { + [min, max] = [max, min]; + } + return { min, max }; +} +function calcViewportConstraints(layoutBox, constraintsBox) { + return { + x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x), + y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y) + }; +} +function calcOrigin2(source, target) { + let origin = 0.5; + const sourceLength = calcLength(source); + const targetLength = calcLength(target); + if (targetLength > sourceLength) { + origin = progress(target.min, target.max - sourceLength, source.min); + } else if (sourceLength > targetLength) { + origin = progress(source.min, source.max - targetLength, target.min); + } + return clamp(0, 1, origin); +} +function rebaseAxisConstraints(layout3, constraints) { + const relativeConstraints = {}; + if (constraints.min !== void 0) { + relativeConstraints.min = constraints.min - layout3.min; + } + if (constraints.max !== void 0) { + relativeConstraints.max = constraints.max - layout3.min; + } + return relativeConstraints; +} +var defaultElastic = 0.35; +function resolveDragElastic(dragElastic = defaultElastic) { + if (dragElastic === false) { + dragElastic = 0; + } else if (dragElastic === true) { + dragElastic = defaultElastic; + } + return { + x: resolveAxisElastic(dragElastic, "left", "right"), + y: resolveAxisElastic(dragElastic, "top", "bottom") + }; +} +function resolveAxisElastic(dragElastic, minLabel, maxLabel) { + return { + min: resolvePointElastic(dragElastic, minLabel), + max: resolvePointElastic(dragElastic, maxLabel) + }; +} +function resolvePointElastic(dragElastic, label) { + return typeof dragElastic === "number" ? dragElastic : dragElastic[label] || 0; +} + +// node_modules/framer-motion/dist/es/projection/geometry/models.mjs +var createAxisDelta = () => ({ + translate: 0, + scale: 1, + origin: 0, + originPoint: 0 +}); +var createDelta = () => ({ + x: createAxisDelta(), + y: createAxisDelta() +}); +var createAxis = () => ({ min: 0, max: 0 }); +var createBox3 = () => ({ + x: createAxis(), + y: createAxis() +}); + +// node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +function eachAxis(callback) { + return [callback("x"), callback("y")]; +} + +// node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +function convertBoundingBoxToBox({ top, left, right, bottom }) { + return { + x: { min: left, max: right }, + y: { min: top, max: bottom } + }; +} +function convertBoxToBoundingBox({ x, y }) { + return { top: y.min, right: x.max, bottom: y.max, left: x.min }; +} +function transformBoxPoints(point, transformPoint2) { + if (!transformPoint2) + return point; + const topLeft = transformPoint2({ x: point.left, y: point.top }); + const bottomRight = transformPoint2({ x: point.right, y: point.bottom }); + return { + top: topLeft.y, + left: topLeft.x, + bottom: bottomRight.y, + right: bottomRight.x + }; +} + +// node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +function isIdentityScale(scale3) { + return scale3 === void 0 || scale3 === 1; +} +function hasScale({ scale: scale3, scaleX, scaleY }) { + return !isIdentityScale(scale3) || !isIdentityScale(scaleX) || !isIdentityScale(scaleY); +} +function hasTransform(values) { + return hasScale(values) || has2DTranslate(values) || values.z || values.rotate || values.rotateX || values.rotateY || values.skewX || values.skewY; +} +function has2DTranslate(values) { + return is2DTranslate(values.x) || is2DTranslate(values.y); +} +function is2DTranslate(value) { + return value && value !== "0%"; +} + +// node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +function scalePoint(point, scale3, originPoint) { + const distanceFromOrigin = point - originPoint; + const scaled = scale3 * distanceFromOrigin; + return originPoint + scaled; +} +function applyPointDelta(point, translate, scale3, originPoint, boxScale) { + if (boxScale !== void 0) { + point = scalePoint(point, boxScale, originPoint); + } + return scalePoint(point, scale3, originPoint) + translate; +} +function applyAxisDelta(axis, translate = 0, scale3 = 1, originPoint, boxScale) { + axis.min = applyPointDelta(axis.min, translate, scale3, originPoint, boxScale); + axis.max = applyPointDelta(axis.max, translate, scale3, originPoint, boxScale); +} +function applyBoxDelta(box, { x, y }) { + applyAxisDelta(box.x, x.translate, x.scale, x.originPoint); + applyAxisDelta(box.y, y.translate, y.scale, y.originPoint); +} +function applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) { + const treeLength = treePath.length; + if (!treeLength) + return; + treeScale.x = treeScale.y = 1; + let node3; + let delta; + for (let i = 0; i < treeLength; i++) { + node3 = treePath[i]; + delta = node3.projectionDelta; + const instance = node3.instance; + if (instance && instance.style && instance.style.display === "contents") { + continue; + } + if (isSharedTransition && node3.options.layoutScroll && node3.scroll && node3 !== node3.root) { + transformBox(box, { + x: -node3.scroll.offset.x, + y: -node3.scroll.offset.y + }); + } + if (delta) { + treeScale.x *= delta.x.scale; + treeScale.y *= delta.y.scale; + applyBoxDelta(box, delta); + } + if (isSharedTransition && hasTransform(node3.latestValues)) { + transformBox(box, node3.latestValues); + } + } + treeScale.x = snapToDefault(treeScale.x); + treeScale.y = snapToDefault(treeScale.y); +} +function snapToDefault(scale3) { + if (Number.isInteger(scale3)) + return scale3; + return scale3 > 1.0000000000001 || scale3 < 0.999999999999 ? scale3 : 1; +} +function translateAxis(axis, distance4) { + axis.min = axis.min + distance4; + axis.max = axis.max + distance4; +} +function transformAxis(axis, transforms2, [key, scaleKey, originKey]) { + const axisOrigin = transforms2[originKey] !== void 0 ? transforms2[originKey] : 0.5; + const originPoint = mixNumber(axis.min, axis.max, axisOrigin); + applyAxisDelta(axis, transforms2[key], transforms2[scaleKey], originPoint, transforms2.scale); +} +var xKeys = ["x", "scaleX", "originX"]; +var yKeys = ["y", "scaleY", "originY"]; +function transformBox(box, transform3) { + transformAxis(box.x, transform3, xKeys); + transformAxis(box.y, transform3, yKeys); +} + +// node_modules/framer-motion/dist/es/projection/utils/measure.mjs +function measureViewportBox(instance, transformPoint2) { + return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint2)); +} +function measurePageBox(element, rootProjectionNode2, transformPagePoint) { + const viewportBox = measureViewportBox(element, transformPagePoint); + const { scroll: scroll3 } = rootProjectionNode2; + if (scroll3) { + translateAxis(viewportBox.x, scroll3.offset.x); + translateAxis(viewportBox.y, scroll3.offset.y); + } + return viewportBox; +} + +// node_modules/framer-motion/dist/es/utils/get-context-window.mjs +var getContextWindow = ({ current }) => { + return current ? current.ownerDocument.defaultView : null; +}; + +// node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +var elementDragControls = /* @__PURE__ */ new WeakMap(); +var VisualElementDragControls = class { + constructor(visualElement) { + this.openGlobalLock = null; + this.isDragging = false; + this.currentDirection = null; + this.originPoint = { x: 0, y: 0 }; + this.constraints = false; + this.hasMutatedConstraints = false; + this.elastic = createBox3(); + this.visualElement = visualElement; + } + start(originEvent, { snapToCursor = false } = {}) { + const { presenceContext } = this.visualElement; + if (presenceContext && presenceContext.isPresent === false) + return; + const onSessionStart = (event) => { + const { dragSnapToOrigin: dragSnapToOrigin2 } = this.getProps(); + dragSnapToOrigin2 ? this.pauseAnimation() : this.stopAnimation(); + if (snapToCursor) { + this.snapToCursor(extractEventInfo2(event, "page").point); + } + }; + const onStart = (event, info) => { + const { drag: drag2, dragPropagation, onDragStart } = this.getProps(); + if (drag2 && !dragPropagation) { + if (this.openGlobalLock) + this.openGlobalLock(); + this.openGlobalLock = getGlobalLock(drag2); + if (!this.openGlobalLock) + return; + } + this.isDragging = true; + this.currentDirection = null; + this.resolveConstraints(); + if (this.visualElement.projection) { + this.visualElement.projection.isAnimationBlocked = true; + this.visualElement.projection.target = void 0; + } + eachAxis((axis) => { + let current = this.getAxisMotionValue(axis).get() || 0; + if (percent.test(current)) { + const { projection } = this.visualElement; + if (projection && projection.layout) { + const measuredAxis = projection.layout.layoutBox[axis]; + if (measuredAxis) { + const length2 = calcLength(measuredAxis); + current = length2 * (parseFloat(current) / 100); + } + } + } + this.originPoint[axis] = current; + }); + if (onDragStart) { + frame2.postRender(() => onDragStart(event, info)); + } + const { animationState } = this.visualElement; + animationState && animationState.setActive("whileDrag", true); + }; + const onMove = (event, info) => { + const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag } = this.getProps(); + if (!dragPropagation && !this.openGlobalLock) + return; + const { offset } = info; + if (dragDirectionLock && this.currentDirection === null) { + this.currentDirection = getCurrentDirection(offset); + if (this.currentDirection !== null) { + onDirectionLock && onDirectionLock(this.currentDirection); + } + return; + } + this.updateAxis("x", info.point, offset); + this.updateAxis("y", info.point, offset); + this.visualElement.render(); + onDrag && onDrag(event, info); + }; + const onSessionEnd = (event, info) => this.stop(event, info); + const resumeAnimation = () => eachAxis((axis) => { + var _a8; + return this.getAnimationState(axis) === "paused" && ((_a8 = this.getAxisMotionValue(axis).animation) === null || _a8 === void 0 ? void 0 : _a8.play()); + }); + const { dragSnapToOrigin } = this.getProps(); + this.panSession = new PanSession2(originEvent, { + onSessionStart, + onStart, + onMove, + onSessionEnd, + resumeAnimation + }, { + transformPagePoint: this.visualElement.getTransformPagePoint(), + dragSnapToOrigin, + contextWindow: getContextWindow(this.visualElement) + }); + } + stop(event, info) { + const isDragging = this.isDragging; + this.cancel(); + if (!isDragging) + return; + const { velocity } = info; + this.startAnimation(velocity); + const { onDragEnd } = this.getProps(); + if (onDragEnd) { + frame2.postRender(() => onDragEnd(event, info)); + } + } + cancel() { + this.isDragging = false; + const { projection, animationState } = this.visualElement; + if (projection) { + projection.isAnimationBlocked = false; + } + this.panSession && this.panSession.end(); + this.panSession = void 0; + const { dragPropagation } = this.getProps(); + if (!dragPropagation && this.openGlobalLock) { + this.openGlobalLock(); + this.openGlobalLock = null; + } + animationState && animationState.setActive("whileDrag", false); + } + updateAxis(axis, _point, offset) { + const { drag: drag2 } = this.getProps(); + if (!offset || !shouldDrag(axis, drag2, this.currentDirection)) + return; + const axisValue = this.getAxisMotionValue(axis); + let next2 = this.originPoint[axis] + offset[axis]; + if (this.constraints && this.constraints[axis]) { + next2 = applyConstraints(next2, this.constraints[axis], this.elastic[axis]); + } + axisValue.set(next2); + } + resolveConstraints() { + var _a8; + const { dragConstraints, dragElastic } = this.getProps(); + const layout3 = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(false) : (_a8 = this.visualElement.projection) === null || _a8 === void 0 ? void 0 : _a8.layout; + const prevConstraints = this.constraints; + if (dragConstraints && isRefObject2(dragConstraints)) { + if (!this.constraints) { + this.constraints = this.resolveRefConstraints(); + } + } else { + if (dragConstraints && layout3) { + this.constraints = calcRelativeConstraints(layout3.layoutBox, dragConstraints); + } else { + this.constraints = false; + } + } + this.elastic = resolveDragElastic(dragElastic); + if (prevConstraints !== this.constraints && layout3 && this.constraints && !this.hasMutatedConstraints) { + eachAxis((axis) => { + if (this.constraints !== false && this.getAxisMotionValue(axis)) { + this.constraints[axis] = rebaseAxisConstraints(layout3.layoutBox[axis], this.constraints[axis]); + } + }); + } + } + resolveRefConstraints() { + const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps(); + if (!constraints || !isRefObject2(constraints)) + return false; + const constraintsElement = constraints.current; + invariant2(constraintsElement !== null, "If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop."); + const { projection } = this.visualElement; + if (!projection || !projection.layout) + return false; + const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint()); + let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox); + if (onMeasureDragConstraints) { + const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints)); + this.hasMutatedConstraints = !!userConstraints; + if (userConstraints) { + measuredConstraints = convertBoundingBoxToBox(userConstraints); + } + } + return measuredConstraints; + } + startAnimation(velocity) { + const { drag: drag2, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd } = this.getProps(); + const constraints = this.constraints || {}; + const momentumAnimations = eachAxis((axis) => { + if (!shouldDrag(axis, drag2, this.currentDirection)) { + return; + } + let transition3 = constraints && constraints[axis] || {}; + if (dragSnapToOrigin) + transition3 = { min: 0, max: 0 }; + const bounceStiffness = dragElastic ? 200 : 1e6; + const bounceDamping = dragElastic ? 40 : 1e7; + const inertia2 = { + type: "inertia", + velocity: dragMomentum ? velocity[axis] : 0, + bounceStiffness, + bounceDamping, + timeConstant: 750, + restDelta: 1, + restSpeed: 10, + ...dragTransition, + ...transition3 + }; + return this.startAxisValueAnimation(axis, inertia2); + }); + return Promise.all(momentumAnimations).then(onDragTransitionEnd); + } + startAxisValueAnimation(axis, transition3) { + const axisValue = this.getAxisMotionValue(axis); + return axisValue.start(animateMotionValue(axis, axisValue, 0, transition3, this.visualElement)); + } + stopAnimation() { + eachAxis((axis) => this.getAxisMotionValue(axis).stop()); + } + pauseAnimation() { + eachAxis((axis) => { + var _a8; + return (_a8 = this.getAxisMotionValue(axis).animation) === null || _a8 === void 0 ? void 0 : _a8.pause(); + }); + } + getAnimationState(axis) { + var _a8; + return (_a8 = this.getAxisMotionValue(axis).animation) === null || _a8 === void 0 ? void 0 : _a8.state; + } + /** + * Drag works differently depending on which props are provided. + * + * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values. + * - Otherwise, we apply the delta to the x/y motion values. + */ + getAxisMotionValue(axis) { + const dragKey = `_drag${axis.toUpperCase()}`; + const props = this.visualElement.getProps(); + const externalMotionValue = props[dragKey]; + return externalMotionValue ? externalMotionValue : this.visualElement.getValue(axis, (props.initial ? props.initial[axis] : void 0) || 0); + } + snapToCursor(point) { + eachAxis((axis) => { + const { drag: drag2 } = this.getProps(); + if (!shouldDrag(axis, drag2, this.currentDirection)) + return; + const { projection } = this.visualElement; + const axisValue = this.getAxisMotionValue(axis); + if (projection && projection.layout) { + const { min, max } = projection.layout.layoutBox[axis]; + axisValue.set(point[axis] - mixNumber(min, max, 0.5)); + } + }); + } + /** + * When the viewport resizes we want to check if the measured constraints + * have changed and, if so, reposition the element within those new constraints + * relative to where it was before the resize. + */ + scalePositionWithinConstraints() { + if (!this.visualElement.current) + return; + const { drag: drag2, dragConstraints } = this.getProps(); + const { projection } = this.visualElement; + if (!isRefObject2(dragConstraints) || !projection || !this.constraints) + return; + this.stopAnimation(); + const boxProgress = { x: 0, y: 0 }; + eachAxis((axis) => { + const axisValue = this.getAxisMotionValue(axis); + if (axisValue && this.constraints !== false) { + const latest = axisValue.get(); + boxProgress[axis] = calcOrigin2({ min: latest, max: latest }, this.constraints[axis]); + } + }); + const { transformTemplate: transformTemplate2 } = this.visualElement.getProps(); + this.visualElement.current.style.transform = transformTemplate2 ? transformTemplate2({}, "") : "none"; + projection.root && projection.root.updateScroll(); + projection.updateLayout(); + this.resolveConstraints(); + eachAxis((axis) => { + if (!shouldDrag(axis, drag2, null)) + return; + const axisValue = this.getAxisMotionValue(axis); + const { min, max } = this.constraints[axis]; + axisValue.set(mixNumber(min, max, boxProgress[axis])); + }); + } + addListeners() { + if (!this.visualElement.current) + return; + elementDragControls.set(this.visualElement, this); + const element = this.visualElement.current; + const stopPointerListener = addPointerEvent2(element, "pointerdown", (event) => { + const { drag: drag2, dragListener = true } = this.getProps(); + drag2 && dragListener && this.start(event); + }); + const measureDragConstraints = () => { + const { dragConstraints } = this.getProps(); + if (isRefObject2(dragConstraints) && dragConstraints.current) { + this.constraints = this.resolveRefConstraints(); + } + }; + const { projection } = this.visualElement; + const stopMeasureLayoutListener = projection.addEventListener("measure", measureDragConstraints); + if (projection && !projection.layout) { + projection.root && projection.root.updateScroll(); + projection.updateLayout(); + } + frame2.read(measureDragConstraints); + const stopResizeListener = addDomEvent2(window, "resize", () => this.scalePositionWithinConstraints()); + const stopLayoutUpdateListener = projection.addEventListener("didUpdate", ({ delta, hasLayoutChanged }) => { + if (this.isDragging && hasLayoutChanged) { + eachAxis((axis) => { + const motionValue2 = this.getAxisMotionValue(axis); + if (!motionValue2) + return; + this.originPoint[axis] += delta[axis].translate; + motionValue2.set(motionValue2.get() + delta[axis].translate); + }); + this.visualElement.render(); + } + }); + return () => { + stopResizeListener(); + stopPointerListener(); + stopMeasureLayoutListener(); + stopLayoutUpdateListener && stopLayoutUpdateListener(); + }; + } + getProps() { + const props = this.visualElement.getProps(); + const { drag: drag2 = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true } = props; + return { + ...props, + drag: drag2, + dragDirectionLock, + dragPropagation, + dragConstraints, + dragElastic, + dragMomentum + }; + } +}; +function shouldDrag(direction2, drag2, currentDirection) { + return (drag2 === true || drag2 === direction2) && (currentDirection === null || currentDirection === direction2); +} +function getCurrentDirection(offset, lockThreshold = 10) { + let direction2 = null; + if (Math.abs(offset.y) > lockThreshold) { + direction2 = "y"; + } else if (Math.abs(offset.x) > lockThreshold) { + direction2 = "x"; + } + return direction2; +} + +// node_modules/framer-motion/dist/es/gestures/drag/index.mjs +var DragGesture = class extends Feature { + constructor(node3) { + super(node3); + this.removeGroupControls = noop3; + this.removeListeners = noop3; + this.controls = new VisualElementDragControls(node3); + } + mount() { + const { dragControls } = this.node.getProps(); + if (dragControls) { + this.removeGroupControls = dragControls.subscribe(this.controls); + } + this.removeListeners = this.controls.addListeners() || noop3; + } + unmount() { + this.removeGroupControls(); + this.removeListeners(); + } +}; + +// node_modules/framer-motion/dist/es/gestures/pan/index.mjs +var asyncHandler = (handler) => (event, info) => { + if (handler) { + frame2.postRender(() => handler(event, info)); + } +}; +var PanGesture = class extends Feature { + constructor() { + super(...arguments); + this.removePointerDownListener = noop3; + } + onPointerDown(pointerDownEvent) { + this.session = new PanSession2(pointerDownEvent, this.createPanHandlers(), { + transformPagePoint: this.node.getTransformPagePoint(), + contextWindow: getContextWindow(this.node) + }); + } + createPanHandlers() { + const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps(); + return { + onSessionStart: asyncHandler(onPanSessionStart), + onStart: asyncHandler(onPanStart), + onMove: onPan, + onEnd: (event, info) => { + delete this.session; + if (onPanEnd) { + frame2.postRender(() => onPanEnd(event, info)); + } + } + }; + } + mount() { + this.removePointerDownListener = addPointerEvent2(this.node.current, "pointerdown", (event) => this.onPointerDown(event)); + } + update() { + this.session && this.session.updateHandlers(this.createPanHandlers()); + } + unmount() { + this.removePointerDownListener(); + this.session && this.session.end(); + } +}; + +// node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); +var import_react42 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +var import_react41 = __toESM(require_react(), 1); +function usePresence() { + const context = (0, import_react41.useContext)(PresenceContext); + if (context === null) + return [true, null]; + const { isPresent: isPresent2, onExitComplete, register } = context; + const id3 = (0, import_react41.useId)(); + (0, import_react41.useEffect)(() => register(id3), []); + const safeToRemove = () => onExitComplete && onExitComplete(id3); + return !isPresent2 && onExitComplete ? [false, safeToRemove] : [true]; +} +function useIsPresent() { + return isPresent((0, import_react41.useContext)(PresenceContext)); +} +function isPresent(context) { + return context === null ? true : context.isPresent; +} + +// node_modules/framer-motion/dist/es/projection/node/state.mjs +var globalProjectionState = { + /** + * Global flag as to whether the tree has animated since the last time + * we resized the window + */ + hasAnimatedSinceResize: true, + /** + * We set this to true once, on the first update. Any nodes added to the tree beyond that + * update will be given a `data-projection-id` attribute. + */ + hasEverUpdated: false +}; + +// node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +function pixelsToPercent(pixels, axis) { + if (axis.max === axis.min) + return 0; + return pixels / (axis.max - axis.min) * 100; +} +var correctBorderRadius = { + correct: (latest, node3) => { + if (!node3.target) + return latest; + if (typeof latest === "string") { + if (px3.test(latest)) { + latest = parseFloat(latest); + } else { + return latest; + } + } + const x = pixelsToPercent(latest, node3.target.x); + const y = pixelsToPercent(latest, node3.target.y); + return `${x}% ${y}%`; + } +}; + +// node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +var correctBoxShadow = { + correct: (latest, { treeScale, projectionDelta }) => { + const original = latest; + const shadow = complex.parse(latest); + if (shadow.length > 5) + return original; + const template = complex.createTransformer(latest); + const offset = typeof shadow[0] !== "number" ? 1 : 0; + const xScale = projectionDelta.x.scale * treeScale.x; + const yScale = projectionDelta.y.scale * treeScale.y; + shadow[0 + offset] /= xScale; + shadow[1 + offset] /= yScale; + const averageScale = mixNumber(xScale, yScale, 0.5); + if (typeof shadow[2 + offset] === "number") + shadow[2 + offset] /= averageScale; + if (typeof shadow[3 + offset] === "number") + shadow[3 + offset] /= averageScale; + return template(shadow); + } +}; + +// node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +var MeasureLayoutWithContext = class extends import_react42.Component { + /** + * This only mounts projection nodes for components that + * need measuring, we might want to do it for all components + * in order to incorporate transforms + */ + componentDidMount() { + const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props; + const { projection } = visualElement; + addScaleCorrector(defaultScaleCorrectors); + if (projection) { + if (layoutGroup.group) + layoutGroup.group.add(projection); + if (switchLayoutGroup && switchLayoutGroup.register && layoutId) { + switchLayoutGroup.register(projection); + } + projection.root.didUpdate(); + projection.addEventListener("animationComplete", () => { + this.safeToRemove(); + }); + projection.setOptions({ + ...projection.options, + onExitComplete: () => this.safeToRemove() + }); + } + globalProjectionState.hasEverUpdated = true; + } + getSnapshotBeforeUpdate(prevProps) { + const { layoutDependency, visualElement, drag: drag2, isPresent: isPresent2 } = this.props; + const projection = visualElement.projection; + if (!projection) + return null; + projection.isPresent = isPresent2; + if (drag2 || prevProps.layoutDependency !== layoutDependency || layoutDependency === void 0) { + projection.willUpdate(); + } else { + this.safeToRemove(); + } + if (prevProps.isPresent !== isPresent2) { + if (isPresent2) { + projection.promote(); + } else if (!projection.relegate()) { + frame2.postRender(() => { + const stack = projection.getStack(); + if (!stack || !stack.members.length) { + this.safeToRemove(); + } + }); + } + } + return null; + } + componentDidUpdate() { + const { projection } = this.props.visualElement; + if (projection) { + projection.root.didUpdate(); + microtask.postRender(() => { + if (!projection.currentAnimation && projection.isLead()) { + this.safeToRemove(); + } + }); + } + } + componentWillUnmount() { + const { visualElement, layoutGroup, switchLayoutGroup: promoteContext } = this.props; + const { projection } = visualElement; + if (projection) { + projection.scheduleCheckAfterUnmount(); + if (layoutGroup && layoutGroup.group) + layoutGroup.group.remove(projection); + if (promoteContext && promoteContext.deregister) + promoteContext.deregister(projection); + } + } + safeToRemove() { + const { safeToRemove } = this.props; + safeToRemove && safeToRemove(); + } + render() { + return null; + } +}; +function MeasureLayout(props) { + const [isPresent2, safeToRemove] = usePresence(); + const layoutGroup = (0, import_react42.useContext)(LayoutGroupContext); + return (0, import_jsx_runtime10.jsx)(MeasureLayoutWithContext, { ...props, layoutGroup, switchLayoutGroup: (0, import_react42.useContext)(SwitchLayoutGroupContext), isPresent: isPresent2, safeToRemove }); +} +var defaultScaleCorrectors = { + borderRadius: { + ...correctBorderRadius, + applyTo: [ + "borderTopLeftRadius", + "borderTopRightRadius", + "borderBottomLeftRadius", + "borderBottomRightRadius" + ] + }, + borderTopLeftRadius: correctBorderRadius, + borderTopRightRadius: correctBorderRadius, + borderBottomLeftRadius: correctBorderRadius, + borderBottomRightRadius: correctBorderRadius, + boxShadow: correctBoxShadow +}; + +// node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +var borders2 = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"]; +var numBorders = borders2.length; +var asNumber = (value) => typeof value === "string" ? parseFloat(value) : value; +var isPx = (value) => typeof value === "number" || px3.test(value); +function mixValues(target, follow, lead, progress3, shouldCrossfadeOpacity, isOnlyMember) { + if (shouldCrossfadeOpacity) { + target.opacity = mixNumber( + 0, + // TODO Reinstate this if only child + lead.opacity !== void 0 ? lead.opacity : 1, + easeCrossfadeIn(progress3) + ); + target.opacityExit = mixNumber(follow.opacity !== void 0 ? follow.opacity : 1, 0, easeCrossfadeOut(progress3)); + } else if (isOnlyMember) { + target.opacity = mixNumber(follow.opacity !== void 0 ? follow.opacity : 1, lead.opacity !== void 0 ? lead.opacity : 1, progress3); + } + for (let i = 0; i < numBorders; i++) { + const borderLabel = `border${borders2[i]}Radius`; + let followRadius = getRadius(follow, borderLabel); + let leadRadius = getRadius(lead, borderLabel); + if (followRadius === void 0 && leadRadius === void 0) + continue; + followRadius || (followRadius = 0); + leadRadius || (leadRadius = 0); + const canMix = followRadius === 0 || leadRadius === 0 || isPx(followRadius) === isPx(leadRadius); + if (canMix) { + target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress3), 0); + if (percent.test(leadRadius) || percent.test(followRadius)) { + target[borderLabel] += "%"; + } + } else { + target[borderLabel] = leadRadius; + } + } + if (follow.rotate || lead.rotate) { + target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress3); + } +} +function getRadius(values, radiusName) { + return values[radiusName] !== void 0 ? values[radiusName] : values.borderRadius; +} +var easeCrossfadeIn = compress(0, 0.5, circOut); +var easeCrossfadeOut = compress(0.5, 0.95, noop3); +function compress(min, max, easing) { + return (p) => { + if (p < min) + return 0; + if (p > max) + return 1; + return easing(progress(min, max, p)); + }; +} + +// node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +function copyAxisInto(axis, originAxis) { + axis.min = originAxis.min; + axis.max = originAxis.max; +} +function copyBoxInto(box, originBox) { + copyAxisInto(box.x, originBox.x); + copyAxisInto(box.y, originBox.y); +} + +// node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +function removePointDelta(point, translate, scale3, originPoint, boxScale) { + point -= translate; + point = scalePoint(point, 1 / scale3, originPoint); + if (boxScale !== void 0) { + point = scalePoint(point, 1 / boxScale, originPoint); + } + return point; +} +function removeAxisDelta(axis, translate = 0, scale3 = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) { + if (percent.test(translate)) { + translate = parseFloat(translate); + const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100); + translate = relativeProgress - sourceAxis.min; + } + if (typeof translate !== "number") + return; + let originPoint = mixNumber(originAxis.min, originAxis.max, origin); + if (axis === originAxis) + originPoint -= translate; + axis.min = removePointDelta(axis.min, translate, scale3, originPoint, boxScale); + axis.max = removePointDelta(axis.max, translate, scale3, originPoint, boxScale); +} +function removeAxisTransforms(axis, transforms2, [key, scaleKey, originKey], origin, sourceAxis) { + removeAxisDelta(axis, transforms2[key], transforms2[scaleKey], transforms2[originKey], transforms2.scale, origin, sourceAxis); +} +var xKeys2 = ["x", "scaleX", "originX"]; +var yKeys2 = ["y", "scaleY", "originY"]; +function removeBoxTransforms(box, transforms2, originBox, sourceBox) { + removeAxisTransforms(box.x, transforms2, xKeys2, originBox ? originBox.x : void 0, sourceBox ? sourceBox.x : void 0); + removeAxisTransforms(box.y, transforms2, yKeys2, originBox ? originBox.y : void 0, sourceBox ? sourceBox.y : void 0); +} + +// node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +function isAxisDeltaZero(delta) { + return delta.translate === 0 && delta.scale === 1; +} +function isDeltaZero(delta) { + return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y); +} +function boxEquals(a, b) { + return a.x.min === b.x.min && a.x.max === b.x.max && a.y.min === b.y.min && a.y.max === b.y.max; +} +function boxEqualsRounded(a, b) { + return Math.round(a.x.min) === Math.round(b.x.min) && Math.round(a.x.max) === Math.round(b.x.max) && Math.round(a.y.min) === Math.round(b.y.min) && Math.round(a.y.max) === Math.round(b.y.max); +} +function aspectRatio(box) { + return calcLength(box.x) / calcLength(box.y); +} + +// node_modules/framer-motion/dist/es/projection/shared/stack.mjs +var NodeStack = class { + constructor() { + this.members = []; + } + add(node3) { + addUniqueItem(this.members, node3); + node3.scheduleRender(); + } + remove(node3) { + removeItem2(this.members, node3); + if (node3 === this.prevLead) { + this.prevLead = void 0; + } + if (node3 === this.lead) { + const prevLead = this.members[this.members.length - 1]; + if (prevLead) { + this.promote(prevLead); + } + } + } + relegate(node3) { + const indexOfNode = this.members.findIndex((member) => node3 === member); + if (indexOfNode === 0) + return false; + let prevLead; + for (let i = indexOfNode; i >= 0; i--) { + const member = this.members[i]; + if (member.isPresent !== false) { + prevLead = member; + break; + } + } + if (prevLead) { + this.promote(prevLead); + return true; + } else { + return false; + } + } + promote(node3, preserveFollowOpacity) { + const prevLead = this.lead; + if (node3 === prevLead) + return; + this.prevLead = prevLead; + this.lead = node3; + node3.show(); + if (prevLead) { + prevLead.instance && prevLead.scheduleRender(); + node3.scheduleRender(); + node3.resumeFrom = prevLead; + if (preserveFollowOpacity) { + node3.resumeFrom.preserveOpacity = true; + } + if (prevLead.snapshot) { + node3.snapshot = prevLead.snapshot; + node3.snapshot.latestValues = prevLead.animationValues || prevLead.latestValues; + } + if (node3.root && node3.root.isUpdating) { + node3.isLayoutDirty = true; + } + const { crossfade } = node3.options; + if (crossfade === false) { + prevLead.hide(); + } + } + } + exitAnimationComplete() { + this.members.forEach((node3) => { + const { options, resumingFrom } = node3; + options.onExitComplete && options.onExitComplete(); + if (resumingFrom) { + resumingFrom.options.onExitComplete && resumingFrom.options.onExitComplete(); + } + }); + } + scheduleRender() { + this.members.forEach((node3) => { + node3.instance && node3.scheduleRender(false); + }); + } + /** + * Clear any leads that have been removed this render to prevent them from being + * used in future animations and to prevent memory leaks + */ + removeLeadSnapshot() { + if (this.lead && this.lead.snapshot) { + this.lead.snapshot = void 0; + } + } +}; + +// node_modules/framer-motion/dist/es/projection/styles/transform.mjs +function buildProjectionTransform(delta, treeScale, latestTransform) { + let transform3 = ""; + const xTranslate = delta.x.translate / treeScale.x; + const yTranslate = delta.y.translate / treeScale.y; + const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0; + if (xTranslate || yTranslate || zTranslate) { + transform3 = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `; + } + if (treeScale.x !== 1 || treeScale.y !== 1) { + transform3 += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `; + } + if (latestTransform) { + const { transformPerspective, rotate: rotate2, rotateX, rotateY, skewX, skewY } = latestTransform; + if (transformPerspective) + transform3 = `perspective(${transformPerspective}px) ${transform3}`; + if (rotate2) + transform3 += `rotate(${rotate2}deg) `; + if (rotateX) + transform3 += `rotateX(${rotateX}deg) `; + if (rotateY) + transform3 += `rotateY(${rotateY}deg) `; + if (skewX) + transform3 += `skewX(${skewX}deg) `; + if (skewY) + transform3 += `skewY(${skewY}deg) `; + } + const elementScaleX = delta.x.scale * treeScale.x; + const elementScaleY = delta.y.scale * treeScale.y; + if (elementScaleX !== 1 || elementScaleY !== 1) { + transform3 += `scale(${elementScaleX}, ${elementScaleY})`; + } + return transform3 || "none"; +} + +// node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +var compareByDepth = (a, b) => a.depth - b.depth; + +// node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +var FlatTree = class { + constructor() { + this.children = []; + this.isDirty = false; + } + add(child) { + addUniqueItem(this.children, child); + this.isDirty = true; + } + remove(child) { + removeItem2(this.children, child); + this.isDirty = true; + } + forEach(callback) { + this.isDirty && this.children.sort(compareByDepth); + this.isDirty = false; + this.children.forEach(callback); + } +}; + +// node_modules/framer-motion/dist/es/utils/delay.mjs +function delay(callback, timeout) { + const start = time.now(); + const checkElapsed = ({ timestamp }) => { + const elapsed = timestamp - start; + if (elapsed >= timeout) { + cancelFrame(checkElapsed); + callback(elapsed - timeout); + } + }; + frame2.read(checkElapsed, true); + return () => cancelFrame(checkElapsed); +} + +// node_modules/framer-motion/dist/es/debug/record.mjs +function record(data) { + if (window.MotionDebug) { + window.MotionDebug.record(data); + } +} + +// node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +function isSVGElement(element) { + return element instanceof SVGElement && element.tagName !== "svg"; +} + +// node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs +function animateSingleValue(value, keyframes4, options) { + const motionValue$1 = isMotionValue(value) ? value : motionValue(value); + motionValue$1.start(animateMotionValue("", motionValue$1, keyframes4, options)); + return motionValue$1.animation; +} + +// node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +var transformAxes = ["", "X", "Y", "Z"]; +var hiddenVisibility = { visibility: "hidden" }; +var animationTarget = 1e3; +var id2 = 0; +var projectionFrameData = { + type: "projectionFrame", + totalNodes: 0, + resolvedTargetDeltas: 0, + recalculatedProjection: 0 +}; +function resetDistortingTransform(key, visualElement, values, sharedAnimationValues) { + const { latestValues } = visualElement; + if (latestValues[key]) { + values[key] = latestValues[key]; + visualElement.setStaticValue(key, 0); + if (sharedAnimationValues) { + sharedAnimationValues[key] = 0; + } + } +} +function isOptimisedAppearTree(projectionNode) { + projectionNode.hasCheckedOptimisedAppear = true; + if (projectionNode.root === projectionNode) + return false; + const { visualElement } = projectionNode.options; + if (!visualElement) { + return false; + } else if (getOptimisedAppearId(visualElement)) { + return true; + } else if (projectionNode.parent && !projectionNode.parent.hasCheckedOptimisedAppear) { + return isOptimisedAppearTree(projectionNode.parent); + } else { + return false; + } +} +function createProjectionNode2({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform }) { + return class ProjectionNode { + constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) { + this.id = id2++; + this.animationId = 0; + this.children = /* @__PURE__ */ new Set(); + this.options = {}; + this.isTreeAnimating = false; + this.isAnimationBlocked = false; + this.isLayoutDirty = false; + this.isProjectionDirty = false; + this.isSharedProjectionDirty = false; + this.isTransformDirty = false; + this.updateManuallyBlocked = false; + this.updateBlockedByResize = false; + this.isUpdating = false; + this.isSVG = false; + this.needsReset = false; + this.shouldResetTransform = false; + this.hasCheckedOptimisedAppear = false; + this.treeScale = { x: 1, y: 1 }; + this.eventHandlers = /* @__PURE__ */ new Map(); + this.hasTreeAnimated = false; + this.updateScheduled = false; + this.scheduleUpdate = () => this.update(); + this.projectionUpdateScheduled = false; + this.checkUpdateFailed = () => { + if (this.isUpdating) { + this.isUpdating = false; + this.clearAllSnapshots(); + } + }; + this.updateProjection = () => { + this.projectionUpdateScheduled = false; + projectionFrameData.totalNodes = projectionFrameData.resolvedTargetDeltas = projectionFrameData.recalculatedProjection = 0; + this.nodes.forEach(propagateDirtyNodes); + this.nodes.forEach(resolveTargetDelta); + this.nodes.forEach(calcProjection); + this.nodes.forEach(cleanDirtyNodes); + record(projectionFrameData); + }; + this.hasProjected = false; + this.isVisible = true; + this.animationProgress = 0; + this.sharedNodes = /* @__PURE__ */ new Map(); + this.latestValues = latestValues; + this.root = parent ? parent.root || parent : this; + this.path = parent ? [...parent.path, parent] : []; + this.parent = parent; + this.depth = parent ? parent.depth + 1 : 0; + for (let i = 0; i < this.path.length; i++) { + this.path[i].shouldResetTransform = true; + } + if (this.root === this) + this.nodes = new FlatTree(); + } + addEventListener(name, handler) { + if (!this.eventHandlers.has(name)) { + this.eventHandlers.set(name, new SubscriptionManager()); + } + return this.eventHandlers.get(name).add(handler); + } + notifyListeners(name, ...args) { + const subscriptionManager = this.eventHandlers.get(name); + subscriptionManager && subscriptionManager.notify(...args); + } + hasListeners(name) { + return this.eventHandlers.has(name); + } + /** + * Lifecycles + */ + mount(instance, isLayoutDirty = this.root.hasTreeAnimated) { + if (this.instance) + return; + this.isSVG = isSVGElement(instance); + this.instance = instance; + const { layoutId, layout: layout3, visualElement } = this.options; + if (visualElement && !visualElement.current) { + visualElement.mount(instance); + } + this.root.nodes.add(this); + this.parent && this.parent.children.add(this); + if (isLayoutDirty && (layout3 || layoutId)) { + this.isLayoutDirty = true; + } + if (attachResizeListener) { + let cancelDelay; + const resizeUnblockUpdate = () => this.root.updateBlockedByResize = false; + attachResizeListener(instance, () => { + this.root.updateBlockedByResize = true; + cancelDelay && cancelDelay(); + cancelDelay = delay(resizeUnblockUpdate, 250); + if (globalProjectionState.hasAnimatedSinceResize) { + globalProjectionState.hasAnimatedSinceResize = false; + this.nodes.forEach(finishAnimation); + } + }); + } + if (layoutId) { + this.root.registerSharedNode(layoutId, this); + } + if (this.options.animate !== false && visualElement && (layoutId || layout3)) { + this.addEventListener("didUpdate", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout }) => { + if (this.isTreeAnimationBlocked()) { + this.target = void 0; + this.relativeTarget = void 0; + return; + } + const layoutTransition = this.options.transition || visualElement.getDefaultTransition() || defaultLayoutTransition; + const { onLayoutAnimationStart, onLayoutAnimationComplete } = visualElement.getProps(); + const targetChanged = !this.targetLayout || !boxEqualsRounded(this.targetLayout, newLayout) || hasRelativeTargetChanged; + const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged; + if (this.options.layoutRoot || this.resumeFrom && this.resumeFrom.instance || hasOnlyRelativeTargetChanged || hasLayoutChanged && (targetChanged || !this.currentAnimation)) { + if (this.resumeFrom) { + this.resumingFrom = this.resumeFrom; + this.resumingFrom.resumingFrom = void 0; + } + this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged); + const animationOptions = { + ...getValueTransition(layoutTransition, "layout"), + onPlay: onLayoutAnimationStart, + onComplete: onLayoutAnimationComplete + }; + if (visualElement.shouldReduceMotion || this.options.layoutRoot) { + animationOptions.delay = 0; + animationOptions.type = false; + } + this.startAnimation(animationOptions); + } else { + if (!hasLayoutChanged) { + finishAnimation(this); + } + if (this.isLead() && this.options.onExitComplete) { + this.options.onExitComplete(); + } + } + this.targetLayout = newLayout; + }); + } + } + unmount() { + this.options.layoutId && this.willUpdate(); + this.root.nodes.remove(this); + const stack = this.getStack(); + stack && stack.remove(this); + this.parent && this.parent.children.delete(this); + this.instance = void 0; + cancelFrame(this.updateProjection); + } + // only on the root + blockUpdate() { + this.updateManuallyBlocked = true; + } + unblockUpdate() { + this.updateManuallyBlocked = false; + } + isUpdateBlocked() { + return this.updateManuallyBlocked || this.updateBlockedByResize; + } + isTreeAnimationBlocked() { + return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || false; + } + // Note: currently only running on root node + startUpdate() { + if (this.isUpdateBlocked()) + return; + this.isUpdating = true; + this.nodes && this.nodes.forEach(resetSkewAndRotation); + this.animationId++; + } + getTransformTemplate() { + const { visualElement } = this.options; + return visualElement && visualElement.getProps().transformTemplate; + } + willUpdate(shouldNotifyListeners = true) { + this.root.hasTreeAnimated = true; + if (this.root.isUpdateBlocked()) { + this.options.onExitComplete && this.options.onExitComplete(); + return; + } + if (window.HandoffCancelAllAnimations && isOptimisedAppearTree(this)) { + window.HandoffCancelAllAnimations(); + } + !this.root.isUpdating && this.root.startUpdate(); + if (this.isLayoutDirty) + return; + this.isLayoutDirty = true; + for (let i = 0; i < this.path.length; i++) { + const node3 = this.path[i]; + node3.shouldResetTransform = true; + node3.updateScroll("snapshot"); + if (node3.options.layoutRoot) { + node3.willUpdate(false); + } + } + const { layoutId, layout: layout3 } = this.options; + if (layoutId === void 0 && !layout3) + return; + const transformTemplate2 = this.getTransformTemplate(); + this.prevTransformTemplateValue = transformTemplate2 ? transformTemplate2(this.latestValues, "") : void 0; + this.updateSnapshot(); + shouldNotifyListeners && this.notifyListeners("willUpdate"); + } + update() { + this.updateScheduled = false; + const updateWasBlocked = this.isUpdateBlocked(); + if (updateWasBlocked) { + this.unblockUpdate(); + this.clearAllSnapshots(); + this.nodes.forEach(clearMeasurements); + return; + } + if (!this.isUpdating) { + this.nodes.forEach(clearIsLayoutDirty); + } + this.isUpdating = false; + this.nodes.forEach(resetTransformStyle); + this.nodes.forEach(updateLayout); + this.nodes.forEach(notifyLayoutUpdate); + this.clearAllSnapshots(); + const now2 = time.now(); + frameData.delta = clamp(0, 1e3 / 60, now2 - frameData.timestamp); + frameData.timestamp = now2; + frameData.isProcessing = true; + steps2.update.process(frameData); + steps2.preRender.process(frameData); + steps2.render.process(frameData); + frameData.isProcessing = false; + } + didUpdate() { + if (!this.updateScheduled) { + this.updateScheduled = true; + microtask.read(this.scheduleUpdate); + } + } + clearAllSnapshots() { + this.nodes.forEach(clearSnapshot); + this.sharedNodes.forEach(removeLeadSnapshots); + } + scheduleUpdateProjection() { + if (!this.projectionUpdateScheduled) { + this.projectionUpdateScheduled = true; + frame2.preRender(this.updateProjection, false, true); + } + } + scheduleCheckAfterUnmount() { + frame2.postRender(() => { + if (this.isLayoutDirty) { + this.root.didUpdate(); + } else { + this.root.checkUpdateFailed(); + } + }); + } + /** + * Update measurements + */ + updateSnapshot() { + if (this.snapshot || !this.instance) + return; + this.snapshot = this.measure(); + } + updateLayout() { + if (!this.instance) + return; + this.updateScroll(); + if (!(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty) { + return; + } + if (this.resumeFrom && !this.resumeFrom.instance) { + for (let i = 0; i < this.path.length; i++) { + const node3 = this.path[i]; + node3.updateScroll(); + } + } + const prevLayout = this.layout; + this.layout = this.measure(false); + this.layoutCorrected = createBox3(); + this.isLayoutDirty = false; + this.projectionDelta = void 0; + this.notifyListeners("measure", this.layout.layoutBox); + const { visualElement } = this.options; + visualElement && visualElement.notify("LayoutMeasure", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : void 0); + } + updateScroll(phase = "measure") { + let needsMeasurement = Boolean(this.options.layoutScroll && this.instance); + if (this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === phase) { + needsMeasurement = false; + } + if (needsMeasurement) { + this.scroll = { + animationId: this.root.animationId, + phase, + isRoot: checkIsScrollRoot(this.instance), + offset: measureScroll(this.instance) + }; + } + } + resetTransform() { + if (!resetTransform) + return; + const isResetRequested = this.isLayoutDirty || this.shouldResetTransform; + const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta); + const transformTemplate2 = this.getTransformTemplate(); + const transformTemplateValue = transformTemplate2 ? transformTemplate2(this.latestValues, "") : void 0; + const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue; + if (isResetRequested && (hasProjection || hasTransform(this.latestValues) || transformTemplateHasChanged)) { + resetTransform(this.instance, transformTemplateValue); + this.shouldResetTransform = false; + this.scheduleRender(); + } + } + measure(removeTransform = true) { + const pageBox = this.measurePageBox(); + let layoutBox = this.removeElementScroll(pageBox); + if (removeTransform) { + layoutBox = this.removeTransform(layoutBox); + } + roundBox(layoutBox); + return { + animationId: this.root.animationId, + measuredBox: pageBox, + layoutBox, + latestValues: {}, + source: this.id + }; + } + measurePageBox() { + const { visualElement } = this.options; + if (!visualElement) + return createBox3(); + const box = visualElement.measureViewportBox(); + const { scroll: scroll3 } = this.root; + if (scroll3) { + translateAxis(box.x, scroll3.offset.x); + translateAxis(box.y, scroll3.offset.y); + } + return box; + } + removeElementScroll(box) { + const boxWithoutScroll = createBox3(); + copyBoxInto(boxWithoutScroll, box); + for (let i = 0; i < this.path.length; i++) { + const node3 = this.path[i]; + const { scroll: scroll3, options } = node3; + if (node3 !== this.root && scroll3 && options.layoutScroll) { + if (scroll3.isRoot) { + copyBoxInto(boxWithoutScroll, box); + const { scroll: rootScroll } = this.root; + if (rootScroll) { + translateAxis(boxWithoutScroll.x, -rootScroll.offset.x); + translateAxis(boxWithoutScroll.y, -rootScroll.offset.y); + } + } + translateAxis(boxWithoutScroll.x, scroll3.offset.x); + translateAxis(boxWithoutScroll.y, scroll3.offset.y); + } + } + return boxWithoutScroll; + } + applyTransform(box, transformOnly = false) { + const withTransforms = createBox3(); + copyBoxInto(withTransforms, box); + for (let i = 0; i < this.path.length; i++) { + const node3 = this.path[i]; + if (!transformOnly && node3.options.layoutScroll && node3.scroll && node3 !== node3.root) { + transformBox(withTransforms, { + x: -node3.scroll.offset.x, + y: -node3.scroll.offset.y + }); + } + if (!hasTransform(node3.latestValues)) + continue; + transformBox(withTransforms, node3.latestValues); + } + if (hasTransform(this.latestValues)) { + transformBox(withTransforms, this.latestValues); + } + return withTransforms; + } + removeTransform(box) { + const boxWithoutTransform = createBox3(); + copyBoxInto(boxWithoutTransform, box); + for (let i = 0; i < this.path.length; i++) { + const node3 = this.path[i]; + if (!node3.instance) + continue; + if (!hasTransform(node3.latestValues)) + continue; + hasScale(node3.latestValues) && node3.updateSnapshot(); + const sourceBox = createBox3(); + const nodeBox = node3.measurePageBox(); + copyBoxInto(sourceBox, nodeBox); + removeBoxTransforms(boxWithoutTransform, node3.latestValues, node3.snapshot ? node3.snapshot.layoutBox : void 0, sourceBox); + } + if (hasTransform(this.latestValues)) { + removeBoxTransforms(boxWithoutTransform, this.latestValues); + } + return boxWithoutTransform; + } + setTargetDelta(delta) { + this.targetDelta = delta; + this.root.scheduleUpdateProjection(); + this.isProjectionDirty = true; + } + setOptions(options) { + this.options = { + ...this.options, + ...options, + crossfade: options.crossfade !== void 0 ? options.crossfade : true + }; + } + clearMeasurements() { + this.scroll = void 0; + this.layout = void 0; + this.snapshot = void 0; + this.prevTransformTemplateValue = void 0; + this.targetDelta = void 0; + this.target = void 0; + this.isLayoutDirty = false; + } + forceRelativeParentToResolveTarget() { + if (!this.relativeParent) + return; + if (this.relativeParent.resolvedRelativeTargetAt !== frameData.timestamp) { + this.relativeParent.resolveTargetDelta(true); + } + } + resolveTargetDelta(forceRecalculation = false) { + var _a8; + const lead = this.getLead(); + this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty); + this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty); + this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty); + const isShared = Boolean(this.resumingFrom) || this !== lead; + const canSkip = !(forceRecalculation || isShared && this.isSharedProjectionDirty || this.isProjectionDirty || ((_a8 = this.parent) === null || _a8 === void 0 ? void 0 : _a8.isProjectionDirty) || this.attemptToResolveRelativeTarget); + if (canSkip) + return; + const { layout: layout3, layoutId } = this.options; + if (!this.layout || !(layout3 || layoutId)) + return; + this.resolvedRelativeTargetAt = frameData.timestamp; + if (!this.targetDelta && !this.relativeTarget) { + const relativeParent = this.getClosestProjectingParent(); + if (relativeParent && relativeParent.layout && this.animationProgress !== 1) { + this.relativeParent = relativeParent; + this.forceRelativeParentToResolveTarget(); + this.relativeTarget = createBox3(); + this.relativeTargetOrigin = createBox3(); + calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox); + copyBoxInto(this.relativeTarget, this.relativeTargetOrigin); + } else { + this.relativeParent = this.relativeTarget = void 0; + } + } + if (!this.relativeTarget && !this.targetDelta) + return; + if (!this.target) { + this.target = createBox3(); + this.targetWithTransforms = createBox3(); + } + if (this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target) { + this.forceRelativeParentToResolveTarget(); + calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target); + } else if (this.targetDelta) { + if (Boolean(this.resumingFrom)) { + this.target = this.applyTransform(this.layout.layoutBox); + } else { + copyBoxInto(this.target, this.layout.layoutBox); + } + applyBoxDelta(this.target, this.targetDelta); + } else { + copyBoxInto(this.target, this.layout.layoutBox); + } + if (this.attemptToResolveRelativeTarget) { + this.attemptToResolveRelativeTarget = false; + const relativeParent = this.getClosestProjectingParent(); + if (relativeParent && Boolean(relativeParent.resumingFrom) === Boolean(this.resumingFrom) && !relativeParent.options.layoutScroll && relativeParent.target && this.animationProgress !== 1) { + this.relativeParent = relativeParent; + this.forceRelativeParentToResolveTarget(); + this.relativeTarget = createBox3(); + this.relativeTargetOrigin = createBox3(); + calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target); + copyBoxInto(this.relativeTarget, this.relativeTargetOrigin); + } else { + this.relativeParent = this.relativeTarget = void 0; + } + } + projectionFrameData.resolvedTargetDeltas++; + } + getClosestProjectingParent() { + if (!this.parent || hasScale(this.parent.latestValues) || has2DTranslate(this.parent.latestValues)) { + return void 0; + } + if (this.parent.isProjecting()) { + return this.parent; + } else { + return this.parent.getClosestProjectingParent(); + } + } + isProjecting() { + return Boolean((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout); + } + calcProjection() { + var _a8; + const lead = this.getLead(); + const isShared = Boolean(this.resumingFrom) || this !== lead; + let canSkip = true; + if (this.isProjectionDirty || ((_a8 = this.parent) === null || _a8 === void 0 ? void 0 : _a8.isProjectionDirty)) { + canSkip = false; + } + if (isShared && (this.isSharedProjectionDirty || this.isTransformDirty)) { + canSkip = false; + } + if (this.resolvedRelativeTargetAt === frameData.timestamp) { + canSkip = false; + } + if (canSkip) + return; + const { layout: layout3, layoutId } = this.options; + this.isTreeAnimating = Boolean(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation); + if (!this.isTreeAnimating) { + this.targetDelta = this.relativeTarget = void 0; + } + if (!this.layout || !(layout3 || layoutId)) + return; + copyBoxInto(this.layoutCorrected, this.layout.layoutBox); + const prevTreeScaleX = this.treeScale.x; + const prevTreeScaleY = this.treeScale.y; + applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared); + if (lead.layout && !lead.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1)) { + lead.target = lead.layout.layoutBox; + lead.targetWithTransforms = createBox3(); + } + const { target } = lead; + if (!target) { + if (this.projectionTransform) { + this.projectionDelta = createDelta(); + this.projectionTransform = "none"; + this.scheduleRender(); + } + return; + } + if (!this.projectionDelta) { + this.projectionDelta = createDelta(); + this.projectionDeltaWithTransform = createDelta(); + } + const prevProjectionTransform = this.projectionTransform; + calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues); + this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale); + if (this.projectionTransform !== prevProjectionTransform || this.treeScale.x !== prevTreeScaleX || this.treeScale.y !== prevTreeScaleY) { + this.hasProjected = true; + this.scheduleRender(); + this.notifyListeners("projectionUpdate", target); + } + projectionFrameData.recalculatedProjection++; + } + hide() { + this.isVisible = false; + } + show() { + this.isVisible = true; + } + scheduleRender(notifyAll = true) { + this.options.scheduleRender && this.options.scheduleRender(); + if (notifyAll) { + const stack = this.getStack(); + stack && stack.scheduleRender(); + } + if (this.resumingFrom && !this.resumingFrom.instance) { + this.resumingFrom = void 0; + } + } + setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) { + const snapshot = this.snapshot; + const snapshotLatestValues = snapshot ? snapshot.latestValues : {}; + const mixedValues = { ...this.latestValues }; + const targetDelta = createDelta(); + if (!this.relativeParent || !this.relativeParent.options.layoutRoot) { + this.relativeTarget = this.relativeTargetOrigin = void 0; + } + this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged; + const relativeLayout = createBox3(); + const snapshotSource = snapshot ? snapshot.source : void 0; + const layoutSource = this.layout ? this.layout.source : void 0; + const isSharedLayoutAnimation = snapshotSource !== layoutSource; + const stack = this.getStack(); + const isOnlyMember = !stack || stack.members.length <= 1; + const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation && !isOnlyMember && this.options.crossfade === true && !this.path.some(hasOpacityCrossfade)); + this.animationProgress = 0; + let prevRelativeTarget; + this.mixTargetDelta = (latest) => { + const progress3 = latest / 1e3; + mixAxisDelta(targetDelta.x, delta.x, progress3); + mixAxisDelta(targetDelta.y, delta.y, progress3); + this.setTargetDelta(targetDelta); + if (this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout) { + calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox); + mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress3); + if (prevRelativeTarget && boxEquals(this.relativeTarget, prevRelativeTarget)) { + this.isProjectionDirty = false; + } + if (!prevRelativeTarget) + prevRelativeTarget = createBox3(); + copyBoxInto(prevRelativeTarget, this.relativeTarget); + } + if (isSharedLayoutAnimation) { + this.animationValues = mixedValues; + mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress3, shouldCrossfadeOpacity, isOnlyMember); + } + this.root.scheduleUpdateProjection(); + this.scheduleRender(); + this.animationProgress = progress3; + }; + this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0); + } + startAnimation(options) { + this.notifyListeners("animationStart"); + this.currentAnimation && this.currentAnimation.stop(); + if (this.resumingFrom && this.resumingFrom.currentAnimation) { + this.resumingFrom.currentAnimation.stop(); + } + if (this.pendingAnimation) { + cancelFrame(this.pendingAnimation); + this.pendingAnimation = void 0; + } + this.pendingAnimation = frame2.update(() => { + globalProjectionState.hasAnimatedSinceResize = true; + this.currentAnimation = animateSingleValue(0, animationTarget, { + ...options, + onUpdate: (latest) => { + this.mixTargetDelta(latest); + options.onUpdate && options.onUpdate(latest); + }, + onComplete: () => { + options.onComplete && options.onComplete(); + this.completeAnimation(); + } + }); + if (this.resumingFrom) { + this.resumingFrom.currentAnimation = this.currentAnimation; + } + this.pendingAnimation = void 0; + }); + } + completeAnimation() { + if (this.resumingFrom) { + this.resumingFrom.currentAnimation = void 0; + this.resumingFrom.preserveOpacity = void 0; + } + const stack = this.getStack(); + stack && stack.exitAnimationComplete(); + this.resumingFrom = this.currentAnimation = this.animationValues = void 0; + this.notifyListeners("animationComplete"); + } + finishAnimation() { + if (this.currentAnimation) { + this.mixTargetDelta && this.mixTargetDelta(animationTarget); + this.currentAnimation.stop(); + } + this.completeAnimation(); + } + applyTransformsToTarget() { + const lead = this.getLead(); + let { targetWithTransforms, target, layout: layout3, latestValues } = lead; + if (!targetWithTransforms || !target || !layout3) + return; + if (this !== lead && this.layout && layout3 && shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout3.layoutBox)) { + target = this.target || createBox3(); + const xLength = calcLength(this.layout.layoutBox.x); + target.x.min = lead.target.x.min; + target.x.max = target.x.min + xLength; + const yLength = calcLength(this.layout.layoutBox.y); + target.y.min = lead.target.y.min; + target.y.max = target.y.min + yLength; + } + copyBoxInto(targetWithTransforms, target); + transformBox(targetWithTransforms, latestValues); + calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues); + } + registerSharedNode(layoutId, node3) { + if (!this.sharedNodes.has(layoutId)) { + this.sharedNodes.set(layoutId, new NodeStack()); + } + const stack = this.sharedNodes.get(layoutId); + stack.add(node3); + const config2 = node3.options.initialPromotionConfig; + node3.promote({ + transition: config2 ? config2.transition : void 0, + preserveFollowOpacity: config2 && config2.shouldPreserveFollowOpacity ? config2.shouldPreserveFollowOpacity(node3) : void 0 + }); + } + isLead() { + const stack = this.getStack(); + return stack ? stack.lead === this : true; + } + getLead() { + var _a8; + const { layoutId } = this.options; + return layoutId ? ((_a8 = this.getStack()) === null || _a8 === void 0 ? void 0 : _a8.lead) || this : this; + } + getPrevLead() { + var _a8; + const { layoutId } = this.options; + return layoutId ? (_a8 = this.getStack()) === null || _a8 === void 0 ? void 0 : _a8.prevLead : void 0; + } + getStack() { + const { layoutId } = this.options; + if (layoutId) + return this.root.sharedNodes.get(layoutId); + } + promote({ needsReset, transition: transition3, preserveFollowOpacity } = {}) { + const stack = this.getStack(); + if (stack) + stack.promote(this, preserveFollowOpacity); + if (needsReset) { + this.projectionDelta = void 0; + this.needsReset = true; + } + if (transition3) + this.setOptions({ transition: transition3 }); + } + relegate() { + const stack = this.getStack(); + if (stack) { + return stack.relegate(this); + } else { + return false; + } + } + resetSkewAndRotation() { + const { visualElement } = this.options; + if (!visualElement) + return; + let hasDistortingTransform = false; + const { latestValues } = visualElement; + if (latestValues.z || latestValues.rotate || latestValues.rotateX || latestValues.rotateY || latestValues.rotateZ || latestValues.skewX || latestValues.skewY) { + hasDistortingTransform = true; + } + if (!hasDistortingTransform) + return; + const resetValues = {}; + if (latestValues.z) { + resetDistortingTransform("z", visualElement, resetValues, this.animationValues); + } + for (let i = 0; i < transformAxes.length; i++) { + resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues); + resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues); + } + visualElement.render(); + for (const key in resetValues) { + visualElement.setStaticValue(key, resetValues[key]); + if (this.animationValues) { + this.animationValues[key] = resetValues[key]; + } + } + visualElement.scheduleRender(); + } + getProjectionStyles(styleProp) { + var _a8, _b5; + if (!this.instance || this.isSVG) + return void 0; + if (!this.isVisible) { + return hiddenVisibility; + } + const styles2 = { + visibility: "" + }; + const transformTemplate2 = this.getTransformTemplate(); + if (this.needsReset) { + this.needsReset = false; + styles2.opacity = ""; + styles2.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || ""; + styles2.transform = transformTemplate2 ? transformTemplate2(this.latestValues, "") : "none"; + return styles2; + } + const lead = this.getLead(); + if (!this.projectionDelta || !this.layout || !lead.target) { + const emptyStyles = {}; + if (this.options.layoutId) { + emptyStyles.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1; + emptyStyles.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || ""; + } + if (this.hasProjected && !hasTransform(this.latestValues)) { + emptyStyles.transform = transformTemplate2 ? transformTemplate2({}, "") : "none"; + this.hasProjected = false; + } + return emptyStyles; + } + const valuesToRender = lead.animationValues || lead.latestValues; + this.applyTransformsToTarget(); + styles2.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender); + if (transformTemplate2) { + styles2.transform = transformTemplate2(valuesToRender, styles2.transform); + } + const { x, y } = this.projectionDelta; + styles2.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`; + if (lead.animationValues) { + styles2.opacity = lead === this ? (_b5 = (_a8 = valuesToRender.opacity) !== null && _a8 !== void 0 ? _a8 : this.latestValues.opacity) !== null && _b5 !== void 0 ? _b5 : 1 : this.preserveOpacity ? this.latestValues.opacity : valuesToRender.opacityExit; + } else { + styles2.opacity = lead === this ? valuesToRender.opacity !== void 0 ? valuesToRender.opacity : "" : valuesToRender.opacityExit !== void 0 ? valuesToRender.opacityExit : 0; + } + for (const key in scaleCorrectors) { + if (valuesToRender[key] === void 0) + continue; + const { correct, applyTo } = scaleCorrectors[key]; + const corrected = styles2.transform === "none" ? valuesToRender[key] : correct(valuesToRender[key], lead); + if (applyTo) { + const num = applyTo.length; + for (let i = 0; i < num; i++) { + styles2[applyTo[i]] = corrected; + } + } else { + styles2[key] = corrected; + } + } + if (this.options.layoutId) { + styles2.pointerEvents = lead === this ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || "" : "none"; + } + return styles2; + } + clearSnapshot() { + this.resumeFrom = this.snapshot = void 0; + } + // Only run on root + resetTree() { + this.root.nodes.forEach((node3) => { + var _a8; + return (_a8 = node3.currentAnimation) === null || _a8 === void 0 ? void 0 : _a8.stop(); + }); + this.root.nodes.forEach(clearMeasurements); + this.root.sharedNodes.clear(); + } + }; +} +function updateLayout(node3) { + node3.updateLayout(); +} +function notifyLayoutUpdate(node3) { + var _a8; + const snapshot = ((_a8 = node3.resumeFrom) === null || _a8 === void 0 ? void 0 : _a8.snapshot) || node3.snapshot; + if (node3.isLead() && node3.layout && snapshot && node3.hasListeners("didUpdate")) { + const { layoutBox: layout3, measuredBox: measuredLayout } = node3.layout; + const { animationType } = node3.options; + const isShared = snapshot.source !== node3.layout.source; + if (animationType === "size") { + eachAxis((axis) => { + const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis]; + const length2 = calcLength(axisSnapshot); + axisSnapshot.min = layout3[axis].min; + axisSnapshot.max = axisSnapshot.min + length2; + }); + } else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout3)) { + eachAxis((axis) => { + const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis]; + const length2 = calcLength(layout3[axis]); + axisSnapshot.max = axisSnapshot.min + length2; + if (node3.relativeTarget && !node3.currentAnimation) { + node3.isProjectionDirty = true; + node3.relativeTarget[axis].max = node3.relativeTarget[axis].min + length2; + } + }); + } + const layoutDelta = createDelta(); + calcBoxDelta(layoutDelta, layout3, snapshot.layoutBox); + const visualDelta = createDelta(); + if (isShared) { + calcBoxDelta(visualDelta, node3.applyTransform(measuredLayout, true), snapshot.measuredBox); + } else { + calcBoxDelta(visualDelta, layout3, snapshot.layoutBox); + } + const hasLayoutChanged = !isDeltaZero(layoutDelta); + let hasRelativeTargetChanged = false; + if (!node3.resumeFrom) { + const relativeParent = node3.getClosestProjectingParent(); + if (relativeParent && !relativeParent.resumeFrom) { + const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent; + if (parentSnapshot && parentLayout) { + const relativeSnapshot = createBox3(); + calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox); + const relativeLayout = createBox3(); + calcRelativePosition(relativeLayout, layout3, parentLayout.layoutBox); + if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) { + hasRelativeTargetChanged = true; + } + if (relativeParent.options.layoutRoot) { + node3.relativeTarget = relativeLayout; + node3.relativeTargetOrigin = relativeSnapshot; + node3.relativeParent = relativeParent; + } + } + } + } + node3.notifyListeners("didUpdate", { + layout: layout3, + snapshot, + delta: visualDelta, + layoutDelta, + hasLayoutChanged, + hasRelativeTargetChanged + }); + } else if (node3.isLead()) { + const { onExitComplete } = node3.options; + onExitComplete && onExitComplete(); + } + node3.options.transition = void 0; +} +function propagateDirtyNodes(node3) { + projectionFrameData.totalNodes++; + if (!node3.parent) + return; + if (!node3.isProjecting()) { + node3.isProjectionDirty = node3.parent.isProjectionDirty; + } + node3.isSharedProjectionDirty || (node3.isSharedProjectionDirty = Boolean(node3.isProjectionDirty || node3.parent.isProjectionDirty || node3.parent.isSharedProjectionDirty)); + node3.isTransformDirty || (node3.isTransformDirty = node3.parent.isTransformDirty); +} +function cleanDirtyNodes(node3) { + node3.isProjectionDirty = node3.isSharedProjectionDirty = node3.isTransformDirty = false; +} +function clearSnapshot(node3) { + node3.clearSnapshot(); +} +function clearMeasurements(node3) { + node3.clearMeasurements(); +} +function clearIsLayoutDirty(node3) { + node3.isLayoutDirty = false; +} +function resetTransformStyle(node3) { + const { visualElement } = node3.options; + if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) { + visualElement.notify("BeforeLayoutMeasure"); + } + node3.resetTransform(); +} +function finishAnimation(node3) { + node3.finishAnimation(); + node3.targetDelta = node3.relativeTarget = node3.target = void 0; + node3.isProjectionDirty = true; +} +function resolveTargetDelta(node3) { + node3.resolveTargetDelta(); +} +function calcProjection(node3) { + node3.calcProjection(); +} +function resetSkewAndRotation(node3) { + node3.resetSkewAndRotation(); +} +function removeLeadSnapshots(stack) { + stack.removeLeadSnapshot(); +} +function mixAxisDelta(output, delta, p) { + output.translate = mixNumber(delta.translate, 0, p); + output.scale = mixNumber(delta.scale, 1, p); + output.origin = delta.origin; + output.originPoint = delta.originPoint; +} +function mixAxis(output, from2, to, p) { + output.min = mixNumber(from2.min, to.min, p); + output.max = mixNumber(from2.max, to.max, p); +} +function mixBox(output, from2, to, p) { + mixAxis(output.x, from2.x, to.x, p); + mixAxis(output.y, from2.y, to.y, p); +} +function hasOpacityCrossfade(node3) { + return node3.animationValues && node3.animationValues.opacityExit !== void 0; +} +var defaultLayoutTransition = { + duration: 0.45, + ease: [0.4, 0, 0.1, 1] +}; +var userAgentContains = (string2) => typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(string2); +var roundPoint = userAgentContains("applewebkit/") && !userAgentContains("chrome/") ? Math.round : noop3; +function roundAxis(axis) { + axis.min = roundPoint(axis.min); + axis.max = roundPoint(axis.max); +} +function roundBox(box) { + roundAxis(box.x); + roundAxis(box.y); +} +function shouldAnimatePositionOnly(animationType, snapshot, layout3) { + return animationType === "position" || animationType === "preserve-aspect" && !isNear(aspectRatio(snapshot), aspectRatio(layout3), 0.2); +} + +// node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +var DocumentProjectionNode = createProjectionNode2({ + attachResizeListener: (ref, notify) => addDomEvent2(ref, "resize", notify), + measureScroll: () => ({ + x: document.documentElement.scrollLeft || document.body.scrollLeft, + y: document.documentElement.scrollTop || document.body.scrollTop + }), + checkIsScrollRoot: () => true +}); + +// node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +var rootProjectionNode = { + current: void 0 +}; +var HTMLProjectionNode = createProjectionNode2({ + measureScroll: (instance) => ({ + x: instance.scrollLeft, + y: instance.scrollTop + }), + defaultParent: () => { + if (!rootProjectionNode.current) { + const documentNode = new DocumentProjectionNode({}); + documentNode.mount(window); + documentNode.setOptions({ layoutScroll: true }); + rootProjectionNode.current = documentNode; + } + return rootProjectionNode.current; + }, + resetTransform: (instance, value) => { + instance.style.transform = value !== void 0 ? value : "none"; + }, + checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === "fixed") +}); + +// node_modules/framer-motion/dist/es/motion/features/drag.mjs +var drag = { + pan: { + Feature: PanGesture + }, + drag: { + Feature: DragGesture, + ProjectionNode: HTMLProjectionNode, + MeasureLayout + } +}; + +// node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs +var import_react43 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +var prefersReducedMotion = { current: null }; +var hasReducedMotionListener = { current: false }; + +// node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +function initPrefersReducedMotion() { + hasReducedMotionListener.current = true; + if (!isBrowser4) + return; + if (window.matchMedia) { + const motionMediaQuery = window.matchMedia("(prefers-reduced-motion)"); + const setReducedMotionPreferences = () => prefersReducedMotion.current = motionMediaQuery.matches; + motionMediaQuery.addListener(setReducedMotionPreferences); + setReducedMotionPreferences(); + } else { + prefersReducedMotion.current = false; + } +} + +// node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +function updateMotionValuesFromProps(element, next2, prev2) { + const { willChange } = next2; + for (const key in next2) { + const nextValue = next2[key]; + const prevValue = prev2[key]; + if (isMotionValue(nextValue)) { + element.addValue(key, nextValue); + if (isWillChangeMotionValue(willChange)) { + willChange.add(key); + } + if (true) { + warnOnce(nextValue.version === "11.2.11", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.2.11 may not work as expected.`); + } + } else if (isMotionValue(prevValue)) { + element.addValue(key, motionValue(nextValue, { owner: element })); + if (isWillChangeMotionValue(willChange)) { + willChange.remove(key); + } + } else if (prevValue !== nextValue) { + if (element.hasValue(key)) { + const existingValue = element.getValue(key); + if (existingValue.liveStyle === true) { + existingValue.jump(nextValue); + } else if (!existingValue.hasAnimated) { + existingValue.set(nextValue); + } + } else { + const latestValue = element.getStaticValue(key); + element.addValue(key, motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element })); + } + } + } + for (const key in prev2) { + if (next2[key] === void 0) + element.removeValue(key); + } + return next2; +} + +// node_modules/framer-motion/dist/es/render/store.mjs +var visualElementStore = /* @__PURE__ */ new WeakMap(); + +// node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +var valueTypes = [...dimensionValueTypes, color2, complex]; +var findValueType = (v) => valueTypes.find(testValueType(v)); + +// node_modules/framer-motion/dist/es/render/VisualElement.mjs +var propEventHandlers = [ + "AnimationStart", + "AnimationComplete", + "Update", + "BeforeLayoutMeasure", + "LayoutMeasure", + "LayoutAnimationStart", + "LayoutAnimationComplete" +]; +var numVariantProps = variantProps.length; +var VisualElement = class { + /** + * This method takes React props and returns found MotionValues. For example, HTML + * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays. + * + * This isn't an abstract method as it needs calling in the constructor, but it is + * intended to be one. + */ + scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) { + return {}; + } + constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState }, options = {}) { + this.resolveKeyframes = (keyframes4, onComplete, name, value) => { + return new this.KeyframeResolver(keyframes4, onComplete, name, value, this); + }; + this.current = null; + this.children = /* @__PURE__ */ new Set(); + this.isVariantNode = false; + this.isControllingVariants = false; + this.shouldReduceMotion = null; + this.values = /* @__PURE__ */ new Map(); + this.KeyframeResolver = KeyframeResolver; + this.features = {}; + this.valueSubscriptions = /* @__PURE__ */ new Map(); + this.prevMotionValues = {}; + this.events = {}; + this.propEventSubscriptions = {}; + this.notifyUpdate = () => this.notify("Update", this.latestValues); + this.render = () => { + if (!this.current) + return; + this.triggerBuild(); + this.renderInstance(this.current, this.renderState, this.props.style, this.projection); + }; + this.scheduleRender = () => frame2.render(this.render, false, true); + const { latestValues, renderState } = visualState; + this.latestValues = latestValues; + this.baseTarget = { ...latestValues }; + this.initialValues = props.initial ? { ...latestValues } : {}; + this.renderState = renderState; + this.parent = parent; + this.props = props; + this.presenceContext = presenceContext; + this.depth = parent ? parent.depth + 1 : 0; + this.reducedMotionConfig = reducedMotionConfig; + this.options = options; + this.blockInitialAnimation = Boolean(blockInitialAnimation); + this.isControllingVariants = isControllingVariants(props); + this.isVariantNode = isVariantNode(props); + if (this.isVariantNode) { + this.variantChildren = /* @__PURE__ */ new Set(); + } + this.manuallyAnimateOnMount = Boolean(parent && parent.current); + const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this); + for (const key in initialMotionValues) { + const value = initialMotionValues[key]; + if (latestValues[key] !== void 0 && isMotionValue(value)) { + value.set(latestValues[key], false); + if (isWillChangeMotionValue(willChange)) { + willChange.add(key); + } + } + } + } + mount(instance) { + this.current = instance; + visualElementStore.set(instance, this); + if (this.projection && !this.projection.instance) { + this.projection.mount(instance); + } + if (this.parent && this.isVariantNode && !this.isControllingVariants) { + this.removeFromVariantTree = this.parent.addVariantChild(this); + } + this.values.forEach((value, key) => this.bindToMotionValue(key, value)); + if (!hasReducedMotionListener.current) { + initPrefersReducedMotion(); + } + this.shouldReduceMotion = this.reducedMotionConfig === "never" ? false : this.reducedMotionConfig === "always" ? true : prefersReducedMotion.current; + if (true) { + warnOnce(this.shouldReduceMotion !== true, "You have Reduced Motion enabled on your device. Animations may not appear as expected."); + } + if (this.parent) + this.parent.children.add(this); + this.update(this.props, this.presenceContext); + } + unmount() { + visualElementStore.delete(this.current); + this.projection && this.projection.unmount(); + cancelFrame(this.notifyUpdate); + cancelFrame(this.render); + this.valueSubscriptions.forEach((remove) => remove()); + this.removeFromVariantTree && this.removeFromVariantTree(); + this.parent && this.parent.children.delete(this); + for (const key in this.events) { + this.events[key].clear(); + } + for (const key in this.features) { + const feature = this.features[key]; + if (feature) { + feature.unmount(); + feature.isMounted = false; + } + } + this.current = null; + } + bindToMotionValue(key, value) { + const valueIsTransform = transformProps.has(key); + const removeOnChange = value.on("change", (latestValue) => { + this.latestValues[key] = latestValue; + this.props.onUpdate && frame2.preRender(this.notifyUpdate); + if (valueIsTransform && this.projection) { + this.projection.isTransformDirty = true; + } + }); + const removeOnRenderRequest = value.on("renderRequest", this.scheduleRender); + this.valueSubscriptions.set(key, () => { + removeOnChange(); + removeOnRenderRequest(); + if (value.owner) + value.stop(); + }); + } + sortNodePosition(other) { + if (!this.current || !this.sortInstanceNodePosition || this.type !== other.type) { + return 0; + } + return this.sortInstanceNodePosition(this.current, other.current); + } + updateFeatures() { + let key = "animation"; + for (key in featureDefinitions) { + const featureDefinition = featureDefinitions[key]; + if (!featureDefinition) + continue; + const { isEnabled, Feature: FeatureConstructor } = featureDefinition; + if (!this.features[key] && FeatureConstructor && isEnabled(this.props)) { + this.features[key] = new FeatureConstructor(this); + } + if (this.features[key]) { + const feature = this.features[key]; + if (feature.isMounted) { + feature.update(); + } else { + feature.mount(); + feature.isMounted = true; + } + } + } + } + triggerBuild() { + this.build(this.renderState, this.latestValues, this.options, this.props); + } + /** + * Measure the current viewport box with or without transforms. + * Only measures axis-aligned boxes, rotate and skew must be manually + * removed with a re-render to work. + */ + measureViewportBox() { + return this.current ? this.measureInstanceViewportBox(this.current, this.props) : createBox3(); + } + getStaticValue(key) { + return this.latestValues[key]; + } + setStaticValue(key, value) { + this.latestValues[key] = value; + } + /** + * Update the provided props. Ensure any newly-added motion values are + * added to our map, old ones removed, and listeners updated. + */ + update(props, presenceContext) { + if (props.transformTemplate || this.props.transformTemplate) { + this.scheduleRender(); + } + this.prevProps = this.props; + this.props = props; + this.prevPresenceContext = this.presenceContext; + this.presenceContext = presenceContext; + for (let i = 0; i < propEventHandlers.length; i++) { + const key = propEventHandlers[i]; + if (this.propEventSubscriptions[key]) { + this.propEventSubscriptions[key](); + delete this.propEventSubscriptions[key]; + } + const listenerName = "on" + key; + const listener = props[listenerName]; + if (listener) { + this.propEventSubscriptions[key] = this.on(key, listener); + } + } + this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues); + if (this.handleChildMotionValue) { + this.handleChildMotionValue(); + } + } + getProps() { + return this.props; + } + /** + * Returns the variant definition with a given name. + */ + getVariant(name) { + return this.props.variants ? this.props.variants[name] : void 0; + } + /** + * Returns the defined default transition on this component. + */ + getDefaultTransition() { + return this.props.transition; + } + getTransformPagePoint() { + return this.props.transformPagePoint; + } + getClosestVariantNode() { + return this.isVariantNode ? this : this.parent ? this.parent.getClosestVariantNode() : void 0; + } + getVariantContext(startAtParent = false) { + if (startAtParent) { + return this.parent ? this.parent.getVariantContext() : void 0; + } + if (!this.isControllingVariants) { + const context2 = this.parent ? this.parent.getVariantContext() || {} : {}; + if (this.props.initial !== void 0) { + context2.initial = this.props.initial; + } + return context2; + } + const context = {}; + for (let i = 0; i < numVariantProps; i++) { + const name = variantProps[i]; + const prop = this.props[name]; + if (isVariantLabel(prop) || prop === false) { + context[name] = prop; + } + } + return context; + } + /** + * Add a child visual element to our set of children. + */ + addVariantChild(child) { + const closestVariantNode = this.getClosestVariantNode(); + if (closestVariantNode) { + closestVariantNode.variantChildren && closestVariantNode.variantChildren.add(child); + return () => closestVariantNode.variantChildren.delete(child); + } + } + /** + * Add a motion value and bind it to this visual element. + */ + addValue(key, value) { + const existingValue = this.values.get(key); + if (value !== existingValue) { + if (existingValue) + this.removeValue(key); + this.bindToMotionValue(key, value); + this.values.set(key, value); + this.latestValues[key] = value.get(); + } + } + /** + * Remove a motion value and unbind any active subscriptions. + */ + removeValue(key) { + this.values.delete(key); + const unsubscribe = this.valueSubscriptions.get(key); + if (unsubscribe) { + unsubscribe(); + this.valueSubscriptions.delete(key); + } + delete this.latestValues[key]; + this.removeValueFromRenderState(key, this.renderState); + } + /** + * Check whether we have a motion value for this key + */ + hasValue(key) { + return this.values.has(key); + } + getValue(key, defaultValue) { + if (this.props.values && this.props.values[key]) { + return this.props.values[key]; + } + let value = this.values.get(key); + if (value === void 0 && defaultValue !== void 0) { + value = motionValue(defaultValue === null ? void 0 : defaultValue, { owner: this }); + this.addValue(key, value); + } + return value; + } + /** + * If we're trying to animate to a previously unencountered value, + * we need to check for it in our state and as a last resort read it + * directly from the instance (which might have performance implications). + */ + readValue(key, target) { + var _a8; + let value = this.latestValues[key] !== void 0 || !this.current ? this.latestValues[key] : (_a8 = this.getBaseTargetFromProps(this.props, key)) !== null && _a8 !== void 0 ? _a8 : this.readValueFromInstance(this.current, key, this.options); + if (value !== void 0 && value !== null) { + if (typeof value === "string" && (isNumericalString(value) || isZeroValueString(value))) { + value = parseFloat(value); + } else if (!findValueType(value) && complex.test(target)) { + value = getAnimatableNone2(key, target); + } + this.setBaseTarget(key, isMotionValue(value) ? value.get() : value); + } + return isMotionValue(value) ? value.get() : value; + } + /** + * Set the base target to later animate back to. This is currently + * only hydrated on creation and when we first read a value. + */ + setBaseTarget(key, value) { + this.baseTarget[key] = value; + } + /** + * Find the base target for a value thats been removed from all animation + * props. + */ + getBaseTarget(key) { + var _a8; + const { initial } = this.props; + let valueFromInitial; + if (typeof initial === "string" || typeof initial === "object") { + const variant = resolveVariantFromProps(this.props, initial, (_a8 = this.presenceContext) === null || _a8 === void 0 ? void 0 : _a8.custom); + if (variant) { + valueFromInitial = variant[key]; + } + } + if (initial && valueFromInitial !== void 0) { + return valueFromInitial; + } + const target = this.getBaseTargetFromProps(this.props, key); + if (target !== void 0 && !isMotionValue(target)) + return target; + return this.initialValues[key] !== void 0 && valueFromInitial === void 0 ? void 0 : this.baseTarget[key]; + } + on(eventName, callback) { + if (!this.events[eventName]) { + this.events[eventName] = new SubscriptionManager(); + } + return this.events[eventName].add(callback); + } + notify(eventName, ...args) { + if (this.events[eventName]) { + this.events[eventName].notify(...args); + } + } +}; + +// node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +var DOMVisualElement = class extends VisualElement { + constructor() { + super(...arguments); + this.KeyframeResolver = DOMKeyframesResolver; + } + sortInstanceNodePosition(a, b) { + return a.compareDocumentPosition(b) & 2 ? 1 : -1; + } + getBaseTargetFromProps(props, key) { + return props.style ? props.style[key] : void 0; + } + removeValueFromRenderState(key, { vars: vars2, style }) { + delete vars2[key]; + delete style[key]; + } +}; + +// node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +function getComputedStyle2(element) { + return window.getComputedStyle(element); +} +var HTMLVisualElement = class extends DOMVisualElement { + constructor() { + super(...arguments); + this.type = "html"; + } + readValueFromInstance(instance, key) { + if (transformProps.has(key)) { + const defaultType = getDefaultValueType(key); + return defaultType ? defaultType.default || 0 : 0; + } else { + const computedStyle = getComputedStyle2(instance); + const value = (isCSSVariableName(key) ? computedStyle.getPropertyValue(key) : computedStyle[key]) || 0; + return typeof value === "string" ? value.trim() : value; + } + } + measureInstanceViewportBox(instance, { transformPagePoint }) { + return measureViewportBox(instance, transformPagePoint); + } + build(renderState, latestValues, options, props) { + buildHTMLStyles(renderState, latestValues, options, props.transformTemplate); + } + scrapeMotionValuesFromProps(props, prevProps, visualElement) { + return scrapeMotionValuesFromProps(props, prevProps, visualElement); + } + handleChildMotionValue() { + if (this.childSubscription) { + this.childSubscription(); + delete this.childSubscription; + } + const { children } = this.props; + if (isMotionValue(children)) { + this.childSubscription = children.on("change", (latest) => { + if (this.current) + this.current.textContent = `${latest}`; + }); + } + } + renderInstance(instance, renderState, styleProp, projection) { + renderHTML(instance, renderState, styleProp, projection); + } +}; + +// node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +var SVGVisualElement = class extends DOMVisualElement { + constructor() { + super(...arguments); + this.type = "svg"; + this.isSVGTag = false; + } + getBaseTargetFromProps(props, key) { + return props[key]; + } + readValueFromInstance(instance, key) { + if (transformProps.has(key)) { + const defaultType = getDefaultValueType(key); + return defaultType ? defaultType.default || 0 : 0; + } + key = !camelCaseAttributes.has(key) ? camelToDash(key) : key; + return instance.getAttribute(key); + } + measureInstanceViewportBox() { + return createBox3(); + } + scrapeMotionValuesFromProps(props, prevProps, visualElement) { + return scrapeMotionValuesFromProps2(props, prevProps, visualElement); + } + build(renderState, latestValues, options, props) { + buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate); + } + renderInstance(instance, renderState, styleProp, projection) { + renderSVG(instance, renderState, styleProp, projection); + } + mount(instance) { + this.isSVGTag = isSVGTag(instance.tagName); + super.mount(instance); + } +}; + +// node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs +var createDomVisualElement = (Component3, options) => { + return isSVGComponent(Component3) ? new SVGVisualElement(options, { enableHardwareAcceleration: false }) : new HTMLVisualElement(options, { + allowProjection: Component3 !== import_react43.Fragment, + enableHardwareAcceleration: true + }); +}; + +// node_modules/framer-motion/dist/es/motion/features/layout.mjs +var layout2 = { + layout: { + ProjectionNode: HTMLProjectionNode, + MeasureLayout + } +}; + +// node_modules/framer-motion/dist/es/render/dom/motion.mjs +var preloadedFeatures = { + ...animations, + ...gestureAnimations, + ...drag, + ...layout2 +}; +var motion = createMotionProxy((Component3, config2) => createDomMotionConfig(Component3, config2, preloadedFeatures, createDomVisualElement)); + +// node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs +var m = createMotionProxy(createDomMotionConfig); + +// node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs +var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); +var import_react49 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/use-force-update.mjs +var import_react45 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs +var import_react44 = __toESM(require_react(), 1); +function useIsMounted() { + const isMounted = (0, import_react44.useRef)(false); + useIsomorphicLayoutEffect(() => { + isMounted.current = true; + return () => { + isMounted.current = false; + }; + }, []); + return isMounted; +} + +// node_modules/framer-motion/dist/es/utils/use-force-update.mjs +function useForceUpdate() { + const isMounted = useIsMounted(); + const [forcedRenderCount, setForcedRenderCount] = (0, import_react45.useState)(0); + const forceRender = (0, import_react45.useCallback)(() => { + isMounted.current && setForcedRenderCount(forcedRenderCount + 1); + }, [forcedRenderCount]); + const deferredForceRender = (0, import_react45.useCallback)(() => frame2.postRender(forceRender), [forceRender]); + return [deferredForceRender, forcedRenderCount]; +} + +// node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); +var React7 = __toESM(require_react(), 1); +var import_react47 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); +var React6 = __toESM(require_react(), 1); +var import_react46 = __toESM(require_react(), 1); +var PopChildMeasure = class extends React6.Component { + getSnapshotBeforeUpdate(prevProps) { + const element = this.props.childRef.current; + if (element && prevProps.isPresent && !this.props.isPresent) { + const size2 = this.props.sizeRef.current; + size2.height = element.offsetHeight || 0; + size2.width = element.offsetWidth || 0; + size2.top = element.offsetTop; + size2.left = element.offsetLeft; + } + return null; + } + /** + * Required with getSnapshotBeforeUpdate to stop React complaining. + */ + componentDidUpdate() { + } + render() { + return this.props.children; + } +}; +function PopChild({ children, isPresent: isPresent2 }) { + const id3 = (0, import_react46.useId)(); + const ref = (0, import_react46.useRef)(null); + const size2 = (0, import_react46.useRef)({ + width: 0, + height: 0, + top: 0, + left: 0 + }); + const { nonce } = (0, import_react46.useContext)(MotionConfigContext); + (0, import_react46.useInsertionEffect)(() => { + const { width, height, top, left } = size2.current; + if (isPresent2 || !ref.current || !width || !height) + return; + ref.current.dataset.motionPopId = id3; + const style = document.createElement("style"); + if (nonce) + style.nonce = nonce; + document.head.appendChild(style); + if (style.sheet) { + style.sheet.insertRule(` + [data-motion-pop-id="${id3}"] { + position: absolute !important; + width: ${width}px !important; + height: ${height}px !important; + top: ${top}px !important; + left: ${left}px !important; + } + `); + } + return () => { + document.head.removeChild(style); + }; + }, [isPresent2]); + return (0, import_jsx_runtime11.jsx)(PopChildMeasure, { isPresent: isPresent2, childRef: ref, sizeRef: size2, children: React6.cloneElement(children, { ref }) }); +} + +// node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +var PresenceChild = ({ children, initial, isPresent: isPresent2, onExitComplete, custom, presenceAffectsLayout, mode: mode2 }) => { + const presenceChildren = useConstant(newChildrenMap); + const id3 = (0, import_react47.useId)(); + const context = (0, import_react47.useMemo)( + () => ({ + id: id3, + initial, + isPresent: isPresent2, + custom, + onExitComplete: (childId) => { + presenceChildren.set(childId, true); + for (const isComplete of presenceChildren.values()) { + if (!isComplete) + return; + } + onExitComplete && onExitComplete(); + }, + register: (childId) => { + presenceChildren.set(childId, false); + return () => presenceChildren.delete(childId); + } + }), + /** + * 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. + */ + presenceAffectsLayout ? [Math.random()] : [isPresent2] + ); + (0, import_react47.useMemo)(() => { + presenceChildren.forEach((_, key) => presenceChildren.set(key, false)); + }, [isPresent2]); + React7.useEffect(() => { + !isPresent2 && !presenceChildren.size && onExitComplete && onExitComplete(); + }, [isPresent2]); + if (mode2 === "popLayout") { + children = (0, import_jsx_runtime12.jsx)(PopChild, { isPresent: isPresent2, children }); + } + return (0, import_jsx_runtime12.jsx)(PresenceContext.Provider, { value: context, children }); +}; +function newChildrenMap() { + return /* @__PURE__ */ new Map(); +} + +// node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs +var import_react48 = __toESM(require_react(), 1); +function useUnmountEffect(callback) { + return (0, import_react48.useEffect)(() => () => callback(), []); +} + +// node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs +var getChildKey = (child) => child.key || ""; +function updateChildLookup(children, allChildren) { + children.forEach((child) => { + const key = getChildKey(child); + allChildren.set(key, child); + }); +} +function onlyElements(children) { + const filtered = []; + import_react49.Children.forEach(children, (child) => { + if ((0, import_react49.isValidElement)(child)) + filtered.push(child); + }); + return filtered; +} +var AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode: mode2 = "sync" }) => { + invariant2(!exitBeforeEnter, "Replace exitBeforeEnter with mode='wait'"); + const forceRender = (0, import_react49.useContext)(LayoutGroupContext).forceRender || useForceUpdate()[0]; + const isMounted = useIsMounted(); + const filteredChildren = onlyElements(children); + let childrenToRender = filteredChildren; + const exitingChildren = (0, import_react49.useRef)(/* @__PURE__ */ new Map()).current; + const presentChildren = (0, import_react49.useRef)(childrenToRender); + const allChildren = (0, import_react49.useRef)(/* @__PURE__ */ new Map()).current; + const isInitialRender = (0, import_react49.useRef)(true); + useIsomorphicLayoutEffect(() => { + isInitialRender.current = false; + updateChildLookup(filteredChildren, allChildren); + presentChildren.current = childrenToRender; + }); + useUnmountEffect(() => { + isInitialRender.current = true; + allChildren.clear(); + exitingChildren.clear(); + }); + if (isInitialRender.current) { + return (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: childrenToRender.map((child) => (0, import_jsx_runtime13.jsx)(PresenceChild, { isPresent: true, initial: initial ? void 0 : false, presenceAffectsLayout, mode: mode2, children: child }, getChildKey(child))) }); + } + childrenToRender = [...childrenToRender]; + const presentKeys = presentChildren.current.map(getChildKey); + const targetKeys = filteredChildren.map(getChildKey); + const numPresent = presentKeys.length; + for (let i = 0; i < numPresent; i++) { + const key = presentKeys[i]; + if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) { + exitingChildren.set(key, void 0); + } + } + if (mode2 === "wait" && exitingChildren.size) { + childrenToRender = []; + } + exitingChildren.forEach((component, key) => { + if (targetKeys.indexOf(key) !== -1) + return; + const child = allChildren.get(key); + if (!child) + return; + const insertionIndex = presentKeys.indexOf(key); + let exitingComponent = component; + if (!exitingComponent) { + const onExit = () => { + exitingChildren.delete(key); + const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey)); + leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey)); + presentChildren.current = filteredChildren.filter((presentChild) => { + const presentChildKey = getChildKey(presentChild); + return ( + // filter out the node exiting + presentChildKey === key || // filter out the leftover children + leftOverKeys.includes(presentChildKey) + ); + }); + if (!exitingChildren.size) { + if (isMounted.current === false) + return; + forceRender(); + onExitComplete && onExitComplete(); + } + }; + exitingComponent = (0, import_jsx_runtime13.jsx)(PresenceChild, { isPresent: false, onExitComplete: onExit, custom, presenceAffectsLayout, mode: mode2, children: child }, getChildKey(child)); + exitingChildren.set(key, exitingComponent); + } + childrenToRender.splice(insertionIndex, 0, exitingComponent); + }); + childrenToRender = childrenToRender.map((child) => { + const key = child.key; + return exitingChildren.has(key) ? child : (0, import_jsx_runtime13.jsx)(PresenceChild, { isPresent: true, presenceAffectsLayout, mode: mode2, children: child }, getChildKey(child)); + }); + if (mode2 === "wait" && childrenToRender.length > 1) { + console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`); + } + return (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: exitingChildren.size ? childrenToRender : childrenToRender.map((child) => (0, import_react49.cloneElement)(child)) }); +}; + +// node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs +var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); +var import_react50 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs +var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); +var import_react51 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs +var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); +var import_react53 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +var import_react52 = __toESM(require_react(), 1); +var DeprecatedLayoutGroupContext = (0, import_react52.createContext)(null); + +// node_modules/framer-motion/dist/es/components/Reorder/Group.mjs +var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); +var import_react55 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/context/ReorderContext.mjs +var import_react54 = __toESM(require_react(), 1); +var ReorderContext = (0, import_react54.createContext)(null); + +// node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +function checkReorder(order, value, offset, velocity) { + if (!velocity) + return order; + const index = order.findIndex((item2) => item2.value === value); + if (index === -1) + return order; + const nextOffset = velocity > 0 ? 1 : -1; + const nextItem = order[index + nextOffset]; + if (!nextItem) + return order; + const item = order[index]; + const nextLayout = nextItem.layout; + const nextItemCenter = mixNumber(nextLayout.min, nextLayout.max, 0.5); + if (nextOffset === 1 && item.layout.max + offset > nextItemCenter || nextOffset === -1 && item.layout.min + offset < nextItemCenter) { + return moveItem(order, index, index + nextOffset); + } + return order; +} + +// node_modules/framer-motion/dist/es/components/Reorder/Group.mjs +function ReorderGroup({ children, as = "ul", axis = "y", onReorder, values, ...props }, externalRef) { + const Component3 = useConstant(() => motion(as)); + const order = []; + const isReordering = (0, import_react55.useRef)(false); + invariant2(Boolean(values), "Reorder.Group must be provided a values prop"); + const context = { + axis, + registerItem: (value, layout3) => { + const idx = order.findIndex((entry) => value === entry.value); + if (idx !== -1) { + order[idx].layout = layout3[axis]; + } else { + order.push({ value, layout: layout3[axis] }); + } + order.sort(compareMin); + }, + updateOrder: (item, offset, velocity) => { + if (isReordering.current) + return; + const newOrder = checkReorder(order, item, offset, velocity); + if (order !== newOrder) { + isReordering.current = true; + onReorder(newOrder.map(getValue).filter((value) => values.indexOf(value) !== -1)); + } + } + }; + (0, import_react55.useEffect)(() => { + isReordering.current = false; + }); + return (0, import_jsx_runtime17.jsx)(Component3, { ...props, ref: externalRef, ignoreStrict: true, children: (0, import_jsx_runtime17.jsx)(ReorderContext.Provider, { value: context, children }) }); +} +var Group = (0, import_react55.forwardRef)(ReorderGroup); +function getValue(item) { + return item.value; +} +function compareMin(a, b) { + return a.layout.min - b.layout.min; +} + +// node_modules/framer-motion/dist/es/components/Reorder/Item.mjs +var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1); +var import_react57 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/value/use-motion-value.mjs +var import_react56 = __toESM(require_react(), 1); +function useMotionValue(initial) { + const value = useConstant(() => motionValue(initial)); + const { isStatic } = (0, import_react56.useContext)(MotionConfigContext); + if (isStatic) { + const [, setLatest] = (0, import_react56.useState)(initial); + (0, import_react56.useEffect)(() => value.on("change", setLatest), []); + } + return value; +} + +// node_modules/framer-motion/dist/es/utils/transform.mjs +var isCustomValueType = (v) => { + return v && typeof v === "object" && v.mix; +}; +var getMixer2 = (v) => isCustomValueType(v) ? v.mix : void 0; +function transform2(...args) { + const useImmediate = !Array.isArray(args[0]); + const argOffset = useImmediate ? 0 : -1; + const inputValue = args[0 + argOffset]; + const inputRange = args[1 + argOffset]; + const outputRange = args[2 + argOffset]; + const options = args[3 + argOffset]; + const interpolator = interpolate(inputRange, outputRange, { + mixer: getMixer2(outputRange[0]), + ...options + }); + return useImmediate ? interpolator(inputValue) : interpolator; +} + +// node_modules/framer-motion/dist/es/value/use-combine-values.mjs +function useCombineMotionValues(values, combineValues) { + const value = useMotionValue(combineValues()); + const updateValue = () => value.set(combineValues()); + updateValue(); + useIsomorphicLayoutEffect(() => { + const scheduleUpdate = () => frame2.preRender(updateValue, false, true); + const subscriptions = values.map((v) => v.on("change", scheduleUpdate)); + return () => { + subscriptions.forEach((unsubscribe) => unsubscribe()); + cancelFrame(updateValue); + }; + }); + return value; +} + +// node_modules/framer-motion/dist/es/value/use-computed.mjs +function useComputed(compute) { + collectMotionValues.current = []; + compute(); + const value = useCombineMotionValues(collectMotionValues.current, compute); + collectMotionValues.current = void 0; + return value; +} + +// node_modules/framer-motion/dist/es/value/use-transform.mjs +function useTransform(input, inputRangeOrTransformer, outputRange, options) { + if (typeof input === "function") { + return useComputed(input); + } + const transformer = typeof inputRangeOrTransformer === "function" ? inputRangeOrTransformer : transform2(inputRangeOrTransformer, outputRange, options); + return Array.isArray(input) ? useListTransform(input, transformer) : useListTransform([input], ([latest]) => transformer(latest)); +} +function useListTransform(values, transformer) { + const latest = useConstant(() => []); + return useCombineMotionValues(values, () => { + latest.length = 0; + const numValues = values.length; + for (let i = 0; i < numValues; i++) { + latest[i] = values[i].get(); + } + return transformer(latest); + }); +} + +// node_modules/framer-motion/dist/es/components/Reorder/Item.mjs +function useDefaultMotionValue(value, defaultValue = 0) { + return isMotionValue(value) ? value : useMotionValue(defaultValue); +} +function ReorderItem({ children, style = {}, value, as = "li", onDrag, layout: layout3 = true, ...props }, externalRef) { + const Component3 = useConstant(() => motion(as)); + const context = (0, import_react57.useContext)(ReorderContext); + const point = { + x: useDefaultMotionValue(style.x), + y: useDefaultMotionValue(style.y) + }; + const zIndex = useTransform([point.x, point.y], ([latestX, latestY]) => latestX || latestY ? 1 : "unset"); + invariant2(Boolean(context), "Reorder.Item must be a child of Reorder.Group"); + const { axis, registerItem, updateOrder } = context; + return (0, import_jsx_runtime18.jsx)(Component3, { drag: axis, ...props, dragSnapToOrigin: true, style: { ...style, x: point.x, y: point.y, zIndex }, layout: layout3, onDrag: (event, gesturePoint) => { + const { velocity } = gesturePoint; + velocity[axis] && updateOrder(value, point[axis].get(), velocity[axis]); + onDrag && onDrag(event, gesturePoint); + }, onLayoutMeasure: (measured) => registerItem(value, measured), ref: externalRef, ignoreStrict: true, children }); +} +var Item = (0, import_react57.forwardRef)(ReorderItem); + +// node_modules/framer-motion/dist/es/render/dom/features-animation.mjs +var domAnimation = { + renderer: createDomVisualElement, + ...animations, + ...gestureAnimations +}; + +// node_modules/framer-motion/dist/es/render/dom/features-max.mjs +var domMax = { + ...domAnimation, + ...drag, + ...layout2 +}; + +// node_modules/framer-motion/dist/es/value/use-spring.mjs +var import_react58 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs +var import_react59 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/value/use-scroll.mjs +var import_react60 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +function resolveElements(elements, scope, selectorCache) { + var _a8; + if (typeof elements === "string") { + let root = document; + if (scope) { + invariant2(Boolean(scope.current), "Scope provided, but no element detected."); + root = scope.current; + } + if (selectorCache) { + (_a8 = selectorCache[elements]) !== null && _a8 !== void 0 ? _a8 : selectorCache[elements] = root.querySelectorAll(elements); + elements = selectorCache[elements]; + } else { + elements = root.querySelectorAll(elements); + } + } else if (elements instanceof Element) { + elements = [elements]; + } + return Array.from(elements || []); +} + +// node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs +var import_react61 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +var import_react62 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +var import_react63 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +function isDOMKeyframes(keyframes4) { + return typeof keyframes4 === "object" && !Array.isArray(keyframes4); +} + +// node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +function createVisualElement(element) { + const options = { + presenceContext: null, + props: {}, + visualState: { + renderState: { + transform: {}, + transformOrigin: {}, + style: {}, + vars: {}, + attrs: {} + }, + latestValues: {} + } + }; + const node3 = isSVGElement(element) ? new SVGVisualElement(options, { + enableHardwareAcceleration: false + }) : new HTMLVisualElement(options, { + enableHardwareAcceleration: true + }); + node3.mount(element); + visualElementStore.set(element, node3); +} + +// node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +function createGeneratorEasing(options, scale3 = 100) { + const generator = spring({ keyframes: [0, scale3], ...options }); + const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration); + return { + type: "keyframes", + ease: (progress3) => generator.next(duration * progress3).value / scale3, + duration: millisecondsToSeconds(duration) + }; +} + +// node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +function calcNextTime(current, next2, prev2, labels) { + var _a8; + if (typeof next2 === "number") { + return next2; + } else if (next2.startsWith("-") || next2.startsWith("+")) { + return Math.max(0, current + parseFloat(next2)); + } else if (next2 === "<") { + return prev2; + } else { + return (_a8 = labels.get(next2)) !== null && _a8 !== void 0 ? _a8 : current; + } +} + +// node_modules/framer-motion/dist/es/utils/wrap.mjs +var wrap2 = (min, max, v) => { + const rangeSize = max - min; + return ((v - min) % rangeSize + rangeSize) % rangeSize + min; +}; + +// node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +function getEasingForSegment(easing, i) { + return isEasingArray(easing) ? easing[wrap2(0, easing.length, i)] : easing; +} + +// node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +function eraseKeyframes(sequence, startTime, endTime) { + for (let i = 0; i < sequence.length; i++) { + const keyframe = sequence[i]; + if (keyframe.at > startTime && keyframe.at < endTime) { + removeItem2(sequence, keyframe); + i--; + } + } +} +function addKeyframes(sequence, keyframes4, easing, offset, startTime, endTime) { + eraseKeyframes(sequence, startTime, endTime); + for (let i = 0; i < keyframes4.length; i++) { + sequence.push({ + value: keyframes4[i], + at: mixNumber(startTime, endTime, offset[i]), + easing: getEasingForSegment(easing, i) + }); + } +} + +// node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +function compareByTime(a, b) { + if (a.at === b.at) { + if (a.value === null) + return 1; + if (b.value === null) + return -1; + return 0; + } else { + return a.at - b.at; + } +} + +// node_modules/framer-motion/dist/es/animation/sequence/create.mjs +var defaultSegmentEasing = "easeInOut"; +function createAnimationsFromSequence(sequence, { defaultTransition: defaultTransition2 = {}, ...sequenceTransition } = {}, scope) { + const defaultDuration = defaultTransition2.duration || 0.3; + const animationDefinitions = /* @__PURE__ */ new Map(); + const sequences = /* @__PURE__ */ new Map(); + const elementCache = {}; + const timeLabels = /* @__PURE__ */ new Map(); + let prevTime = 0; + let currentTime = 0; + let totalDuration = 0; + for (let i = 0; i < sequence.length; i++) { + const segment = sequence[i]; + if (typeof segment === "string") { + timeLabels.set(segment, currentTime); + continue; + } else if (!Array.isArray(segment)) { + timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels)); + continue; + } + let [subject, keyframes4, transition3 = {}] = segment; + if (transition3.at !== void 0) { + currentTime = calcNextTime(currentTime, transition3.at, prevTime, timeLabels); + } + let maxDuration3 = 0; + const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numElements = 0) => { + const valueKeyframesAsList = keyframesAsList(valueKeyframes); + const { delay: delay2 = 0, times = defaultOffset(valueKeyframesAsList), type = "keyframes", ...remainingTransition } = valueTransition; + let { ease: ease2 = defaultTransition2.ease || "easeOut", duration } = valueTransition; + const calculatedDelay = typeof delay2 === "function" ? delay2(elementIndex, numElements) : delay2; + const numKeyframes = valueKeyframesAsList.length; + if (numKeyframes <= 2 && type === "spring") { + let absoluteDelta = 100; + if (numKeyframes === 2 && isNumberKeyframesArray(valueKeyframesAsList)) { + const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0]; + absoluteDelta = Math.abs(delta); + } + const springTransition = { ...remainingTransition }; + if (duration !== void 0) { + springTransition.duration = secondsToMilliseconds(duration); + } + const springEasing = createGeneratorEasing(springTransition, absoluteDelta); + ease2 = springEasing.ease; + duration = springEasing.duration; + } + duration !== null && duration !== void 0 ? duration : duration = defaultDuration; + const startTime = currentTime + calculatedDelay; + const targetTime = startTime + duration; + if (times.length === 1 && times[0] === 0) { + times[1] = 1; + } + const remainder = times.length - valueKeyframesAsList.length; + remainder > 0 && fillOffset(times, remainder); + valueKeyframesAsList.length === 1 && valueKeyframesAsList.unshift(null); + addKeyframes(valueSequence, valueKeyframesAsList, ease2, times, startTime, targetTime); + maxDuration3 = Math.max(calculatedDelay + duration, maxDuration3); + totalDuration = Math.max(targetTime, totalDuration); + }; + if (isMotionValue(subject)) { + const subjectSequence = getSubjectSequence(subject, sequences); + resolveValueSequence(keyframes4, transition3, getValueSequence("default", subjectSequence)); + } else { + const elements = resolveElements(subject, scope, elementCache); + const numElements = elements.length; + for (let elementIndex = 0; elementIndex < numElements; elementIndex++) { + keyframes4 = keyframes4; + transition3 = transition3; + const element = elements[elementIndex]; + const subjectSequence = getSubjectSequence(element, sequences); + for (const key in keyframes4) { + resolveValueSequence(keyframes4[key], getValueTransition2(transition3, key), getValueSequence(key, subjectSequence), elementIndex, numElements); + } + } + } + prevTime = currentTime; + currentTime += maxDuration3; + } + sequences.forEach((valueSequences, element) => { + for (const key in valueSequences) { + const valueSequence = valueSequences[key]; + valueSequence.sort(compareByTime); + const keyframes4 = []; + const valueOffset = []; + const valueEasing = []; + for (let i = 0; i < valueSequence.length; i++) { + const { at, value, easing } = valueSequence[i]; + keyframes4.push(value); + valueOffset.push(progress(0, totalDuration, at)); + valueEasing.push(easing || "easeOut"); + } + if (valueOffset[0] !== 0) { + valueOffset.unshift(0); + keyframes4.unshift(keyframes4[0]); + valueEasing.unshift(defaultSegmentEasing); + } + if (valueOffset[valueOffset.length - 1] !== 1) { + valueOffset.push(1); + keyframes4.push(null); + } + if (!animationDefinitions.has(element)) { + animationDefinitions.set(element, { + keyframes: {}, + transition: {} + }); + } + const definition = animationDefinitions.get(element); + definition.keyframes[key] = keyframes4; + definition.transition[key] = { + ...defaultTransition2, + duration: totalDuration, + ease: valueEasing, + times: valueOffset, + ...sequenceTransition + }; + } + }); + return animationDefinitions; +} +function getSubjectSequence(subject, sequences) { + !sequences.has(subject) && sequences.set(subject, {}); + return sequences.get(subject); +} +function getValueSequence(name, sequences) { + if (!sequences[name]) + sequences[name] = []; + return sequences[name]; +} +function keyframesAsList(keyframes4) { + return Array.isArray(keyframes4) ? keyframes4 : [keyframes4]; +} +function getValueTransition2(transition3, key) { + return transition3[key] ? { + ...transition3, + ...transition3[key] + } : { ...transition3 }; +} +var isNumber2 = (keyframe) => typeof keyframe === "number"; +var isNumberKeyframesArray = (keyframes4) => keyframes4.every(isNumber2); + +// node_modules/framer-motion/dist/es/animation/animate.mjs +function animateElements(elementOrSelector, keyframes4, options, scope) { + const elements = resolveElements(elementOrSelector, scope); + const numElements = elements.length; + invariant2(Boolean(numElements), "No valid element provided."); + const animations2 = []; + for (let i = 0; i < numElements; i++) { + const element = elements[i]; + if (!visualElementStore.has(element)) { + createVisualElement(element); + } + const visualElement = visualElementStore.get(element); + const transition3 = { ...options }; + if (typeof transition3.delay === "function") { + transition3.delay = transition3.delay(i, numElements); + } + animations2.push(...animateTarget(visualElement, { ...keyframes4, transition: transition3 }, {})); + } + return new GroupPlaybackControls(animations2); +} +var isSequence = (value) => Array.isArray(value) && Array.isArray(value[0]); +function animateSequence(sequence, options, scope) { + const animations2 = []; + const animationDefinitions = createAnimationsFromSequence(sequence, options, scope); + animationDefinitions.forEach(({ keyframes: keyframes4, transition: transition3 }, subject) => { + let animation; + if (isMotionValue(subject)) { + animation = animateSingleValue(subject, keyframes4.default, transition3.default); + } else { + animation = animateElements(subject, keyframes4, transition3); + } + animations2.push(animation); + }); + return new GroupPlaybackControls(animations2); +} +var createScopedAnimate = (scope) => { + function scopedAnimate(valueOrElementOrSequence, keyframes4, options) { + let animation; + if (isSequence(valueOrElementOrSequence)) { + animation = animateSequence(valueOrElementOrSequence, keyframes4, scope); + } else if (isDOMKeyframes(keyframes4)) { + animation = animateElements(valueOrElementOrSequence, keyframes4, options, scope); + } else { + animation = animateSingleValue(valueOrElementOrSequence, keyframes4, options); + } + if (scope) { + scope.animations.push(animation); + } + return animation; + } + return scopedAnimate; +}; +var animate = createScopedAnimate(); + +// node_modules/framer-motion/dist/es/utils/use-cycle.mjs +var import_react64 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/use-in-view.mjs +var import_react65 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/events/use-dom-event.mjs +var import_react66 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs +var import_react67 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs +var import_react68 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +var import_react69 = __toESM(require_react(), 1); +var createObject = () => ({}); +var useVisualState = makeUseVisualState({ + scrapeMotionValuesFromProps: createObject, + createRenderState: createObject +}); + +// node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs +var import_react70 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs +var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1); +var React8 = __toESM(require_react(), 1); + +// node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +var cancelSync2 = stepsOrder2.reduce((acc, key) => { + acc[key] = (process2) => cancelFrame(process2); + return acc; +}, {}); + +// node_modules/@chakra-ui/toast/dist/chunk-VXESY33O.mjs +var import_react71 = __toESM(require_react(), 1); +var import_jsx_runtime20 = __toESM(require_jsx_runtime(), 1); +var toastMotionVariants = { + initial: (props) => { + const { position: position3 } = props; + const dir = ["top", "bottom"].includes(position3) ? "y" : "x"; + let factor = ["top-right", "bottom-right"].includes(position3) ? 1 : -1; + if (position3 === "bottom") + factor = 1; + return { + opacity: 0, + [dir]: factor * 24 + }; + }, + animate: { + opacity: 1, + y: 0, + x: 0, + scale: 1, + transition: { + duration: 0.4, + ease: [0.4, 0, 0.2, 1] + } + }, + exit: { + opacity: 0, + scale: 0.85, + transition: { + duration: 0.2, + ease: [0.4, 0, 1, 1] + } + } +}; +var ToastComponent = (0, import_react71.memo)((props) => { + const { + id: id3, + message, + onCloseComplete, + onRequestRemove, + requestClose = false, + position: position3 = "bottom", + duration = 5e3, + containerStyle, + motionVariants: motionVariants2 = toastMotionVariants, + toastSpacing = "0.5rem" + } = props; + const [delay2, setDelay] = (0, import_react71.useState)(duration); + const isPresent2 = useIsPresent(); + useUpdateEffect(() => { + if (!isPresent2) { + onCloseComplete == null ? void 0 : onCloseComplete(); + } + }, [isPresent2]); + useUpdateEffect(() => { + setDelay(duration); + }, [duration]); + const onMouseEnter = () => setDelay(null); + const onMouseLeave = () => setDelay(duration); + const close = () => { + if (isPresent2) + onRequestRemove(); + }; + (0, import_react71.useEffect)(() => { + if (isPresent2 && requestClose) { + onRequestRemove(); + } + }, [isPresent2, requestClose, onRequestRemove]); + useTimeout(close, delay2); + const containerStyles = (0, import_react71.useMemo)( + () => ({ + pointerEvents: "auto", + maxWidth: 560, + minWidth: 300, + margin: toastSpacing, + ...containerStyle + }), + [containerStyle, toastSpacing] + ); + const toastStyle = (0, import_react71.useMemo)(() => getToastStyle(position3), [position3]); + return (0, import_jsx_runtime20.jsx)( + motion.div, + { + layout: true, + className: "chakra-toast", + variants: motionVariants2, + initial: "initial", + animate: "animate", + exit: "exit", + onHoverStart: onMouseEnter, + onHoverEnd: onMouseLeave, + custom: { position: position3 }, + style: toastStyle, + children: (0, import_jsx_runtime20.jsx)( + chakra.div, + { + role: "status", + "aria-atomic": "true", + className: "chakra-toast__inner", + __css: containerStyles, + children: runIfFn(message, { id: id3, onClose: close }) + } + ) + } + ); +}); +ToastComponent.displayName = "ToastComponent"; + +// node_modules/@chakra-ui/toast/dist/chunk-LHPMGMGT.mjs +function getToastPlacement(position3, dir) { + var _a8; + const computedPosition = position3 != null ? position3 : "bottom"; + const logicals2 = { + "top-start": { ltr: "top-left", rtl: "top-right" }, + "top-end": { ltr: "top-right", rtl: "top-left" }, + "bottom-start": { ltr: "bottom-left", rtl: "bottom-right" }, + "bottom-end": { ltr: "bottom-right", rtl: "bottom-left" } + }; + const logical2 = logicals2[computedPosition]; + return (_a8 = logical2 == null ? void 0 : logical2[dir]) != null ? _a8 : computedPosition; +} + +// node_modules/@chakra-ui/icon/dist/chunk-2GBDXOMA.mjs +var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1); +var fallbackIcon = { + path: (0, import_jsx_runtime21.jsxs)("g", { stroke: "currentColor", strokeWidth: "1.5", children: [ + (0, import_jsx_runtime21.jsx)( + "path", + { + strokeLinecap: "round", + fill: "none", + d: "M9,9a3,3,0,1,1,4,2.829,1.5,1.5,0,0,0-1,1.415V14.25" + } + ), + (0, import_jsx_runtime21.jsx)( + "path", + { + fill: "currentColor", + strokeLinecap: "round", + d: "M12,17.25a.375.375,0,1,0,.375.375A.375.375,0,0,0,12,17.25h0" + } + ), + (0, import_jsx_runtime21.jsx)("circle", { fill: "none", strokeMiterlimit: "10", cx: "12", cy: "12", r: "11.25" }) + ] }), + viewBox: "0 0 24 24" +}; +var Icon = forwardRef3((props, ref) => { + const { + as: element, + viewBox, + color: color3 = "currentColor", + focusable = false, + children, + className, + __css, + ...rest + } = props; + const _className = cx("chakra-icon", className); + const customStyles = useStyleConfig("Icon", props); + const styles2 = { + w: "1em", + h: "1em", + display: "inline-block", + lineHeight: "1em", + flexShrink: 0, + color: color3, + ...__css, + ...customStyles + }; + const shared = { + ref, + focusable, + className: _className, + __css: styles2 + }; + const _viewBox = viewBox != null ? viewBox : fallbackIcon.viewBox; + if (element && typeof element !== "string") { + return (0, import_jsx_runtime21.jsx)(chakra.svg, { as: element, ...shared, ...rest }); + } + const _path = children != null ? children : fallbackIcon.path; + return (0, import_jsx_runtime21.jsx)(chakra.svg, { verticalAlign: "middle", viewBox: _viewBox, ...shared, ...rest, children: _path }); +}); +Icon.displayName = "Icon"; + +// node_modules/@chakra-ui/icon/dist/chunk-DEQZ7DVA.mjs +var import_react72 = __toESM(require_react(), 1); +var import_jsx_runtime22 = __toESM(require_jsx_runtime(), 1); +function createIcon(options) { + const { + viewBox = "0 0 24 24", + d: pathDefinition, + displayName, + defaultProps: defaultProps2 = {} + } = options; + const path = import_react72.Children.toArray(options.path); + const Comp = forwardRef3((props, ref) => (0, import_jsx_runtime22.jsx)(Icon, { ref, viewBox, ...defaultProps2, ...props, children: path.length ? path : (0, import_jsx_runtime22.jsx)("path", { fill: "currentColor", d: pathDefinition }) })); + Comp.displayName = displayName; + return Comp; +} + +// node_modules/@chakra-ui/alert/dist/chunk-NEDBTDT2.mjs +var import_jsx_runtime23 = __toESM(require_jsx_runtime(), 1); +function CheckIcon(props) { + return (0, import_jsx_runtime23.jsx)(Icon, { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime23.jsx)( + "path", + { + fill: "currentColor", + d: "M12,0A12,12,0,1,0,24,12,12.014,12.014,0,0,0,12,0Zm6.927,8.2-6.845,9.289a1.011,1.011,0,0,1-1.43.188L5.764,13.769a1,1,0,1,1,1.25-1.562l4.076,3.261,6.227-8.451A1,1,0,1,1,18.927,8.2Z" + } + ) }); +} +function InfoIcon(props) { + return (0, import_jsx_runtime23.jsx)(Icon, { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime23.jsx)( + "path", + { + fill: "currentColor", + d: "M12,0A12,12,0,1,0,24,12,12.013,12.013,0,0,0,12,0Zm.25,5a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,12.25,5ZM14.5,18.5h-4a1,1,0,0,1,0-2h.75a.25.25,0,0,0,.25-.25v-4.5a.25.25,0,0,0-.25-.25H10.5a1,1,0,0,1,0-2h1a2,2,0,0,1,2,2v4.75a.25.25,0,0,0,.25.25h.75a1,1,0,1,1,0,2Z" + } + ) }); +} +function WarningIcon(props) { + return (0, import_jsx_runtime23.jsx)(Icon, { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime23.jsx)( + "path", + { + fill: "currentColor", + d: "M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z" + } + ) }); +} + +// node_modules/@chakra-ui/spinner/dist/chunk-5PH6ULNP.mjs +var import_jsx_runtime24 = __toESM(require_jsx_runtime(), 1); +var spin = keyframes({ + "0%": { + transform: "rotate(0deg)" + }, + "100%": { + transform: "rotate(360deg)" + } +}); +var Spinner = forwardRef3((props, ref) => { + const styles2 = useStyleConfig("Spinner", props); + const { + label = "Loading...", + thickness = "2px", + speed = "0.45s", + emptyColor = "transparent", + className, + ...rest + } = omitThemingProps(props); + const _className = cx("chakra-spinner", className); + const spinnerStyles = { + display: "inline-block", + borderColor: "currentColor", + borderStyle: "solid", + borderRadius: "99999px", + borderWidth: thickness, + borderBottomColor: emptyColor, + borderLeftColor: emptyColor, + animation: `${spin} ${speed} linear infinite`, + ...styles2 + }; + return (0, import_jsx_runtime24.jsx)( + chakra.div, + { + ref, + __css: spinnerStyles, + className: _className, + ...rest, + children: label && (0, import_jsx_runtime24.jsx)(chakra.span, { srOnly: true, children: label }) + } + ); +}); +Spinner.displayName = "Spinner"; + +// node_modules/@chakra-ui/alert/dist/chunk-XCES3W5V.mjs +var [AlertProvider, useAlertContext] = createContext2({ + name: "AlertContext", + hookName: "useAlertContext", + providerName: "" +}); +var [AlertStylesProvider, useAlertStyles] = createContext2({ + name: `AlertStylesContext`, + hookName: `useAlertStyles`, + providerName: "" +}); +var STATUSES = { + info: { icon: InfoIcon, colorScheme: "blue" }, + warning: { icon: WarningIcon, colorScheme: "orange" }, + success: { icon: CheckIcon, colorScheme: "green" }, + error: { icon: WarningIcon, colorScheme: "red" }, + loading: { icon: Spinner, colorScheme: "blue" } +}; +function getStatusColorScheme(status) { + return STATUSES[status].colorScheme; +} +function getStatusIcon(status) { + return STATUSES[status].icon; +} + +// node_modules/@chakra-ui/alert/dist/chunk-CUKBNH6U.mjs +var import_jsx_runtime25 = __toESM(require_jsx_runtime(), 1); +var AlertDescription = forwardRef3( + function AlertDescription2(props, ref) { + const styles2 = useAlertStyles(); + const { status } = useAlertContext(); + const descriptionStyles = { + display: "inline", + ...styles2.description + }; + return (0, import_jsx_runtime25.jsx)( + chakra.div, + { + ref, + "data-status": status, + ...props, + className: cx("chakra-alert__desc", props.className), + __css: descriptionStyles + } + ); + } +); +AlertDescription.displayName = "AlertDescription"; + +// node_modules/@chakra-ui/alert/dist/chunk-ALC6QPCI.mjs +var import_jsx_runtime26 = __toESM(require_jsx_runtime(), 1); +function AlertIcon(props) { + const { status } = useAlertContext(); + const BaseIcon = getStatusIcon(status); + const styles2 = useAlertStyles(); + const css4 = status === "loading" ? styles2.spinner : styles2.icon; + return (0, import_jsx_runtime26.jsx)( + chakra.span, + { + display: "inherit", + "data-status": status, + ...props, + className: cx("chakra-alert__icon", props.className), + __css: css4, + children: props.children || (0, import_jsx_runtime26.jsx)(BaseIcon, { h: "100%", w: "100%" }) + } + ); +} +AlertIcon.displayName = "AlertIcon"; + +// node_modules/@chakra-ui/alert/dist/chunk-QURMB2UJ.mjs +var import_jsx_runtime27 = __toESM(require_jsx_runtime(), 1); +var AlertTitle = forwardRef3( + function AlertTitle2(props, ref) { + const styles2 = useAlertStyles(); + const { status } = useAlertContext(); + return (0, import_jsx_runtime27.jsx)( + chakra.div, + { + ref, + "data-status": status, + ...props, + className: cx("chakra-alert__title", props.className), + __css: styles2.title + } + ); + } +); +AlertTitle.displayName = "AlertTitle"; + +// node_modules/@chakra-ui/alert/dist/chunk-3KCBMPN5.mjs +var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1); +var Alert = forwardRef3(function Alert2(props, ref) { + var _a8; + const { status = "info", addRole = true, ...rest } = omitThemingProps(props); + const colorScheme = (_a8 = props.colorScheme) != null ? _a8 : getStatusColorScheme(status); + const styles2 = useMultiStyleConfig("Alert", { ...props, colorScheme }); + const alertStyles = { + width: "100%", + display: "flex", + alignItems: "center", + position: "relative", + overflow: "hidden", + ...styles2.container + }; + return (0, import_jsx_runtime28.jsx)(AlertProvider, { value: { status }, children: (0, import_jsx_runtime28.jsx)(AlertStylesProvider, { value: styles2, children: (0, import_jsx_runtime28.jsx)( + chakra.div, + { + "data-status": status, + role: addRole ? "alert" : void 0, + ref, + ...rest, + className: cx("chakra-alert", props.className), + __css: alertStyles + } + ) }) }); +}); +Alert.displayName = "Alert"; + +// node_modules/@chakra-ui/close-button/dist/chunk-37N6GCLA.mjs +var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1); +function CloseIcon(props) { + return (0, import_jsx_runtime29.jsx)(Icon, { focusable: "false", "aria-hidden": true, ...props, children: (0, import_jsx_runtime29.jsx)( + "path", + { + fill: "currentColor", + d: "M.439,21.44a1.5,1.5,0,0,0,2.122,2.121L11.823,14.3a.25.25,0,0,1,.354,0l9.262,9.263a1.5,1.5,0,1,0,2.122-2.121L14.3,12.177a.25.25,0,0,1,0-.354l9.263-9.262A1.5,1.5,0,0,0,21.439.44L12.177,9.7a.25.25,0,0,1-.354,0L2.561.44A1.5,1.5,0,0,0,.439,2.561L9.7,11.823a.25.25,0,0,1,0,.354Z" + } + ) }); +} +var CloseButton = forwardRef3( + function CloseButton2(props, ref) { + const styles2 = useStyleConfig("CloseButton", props); + const { children, isDisabled: isDisabled3, __css, ...rest } = omitThemingProps(props); + const baseStyle44 = { + outline: 0, + display: "flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0 + }; + return (0, import_jsx_runtime29.jsx)( + chakra.button, + { + type: "button", + "aria-label": "Close", + ref, + disabled: isDisabled3, + __css: { + ...baseStyle44, + ...styles2, + ...__css + }, + ...rest, + children: children || (0, import_jsx_runtime29.jsx)(CloseIcon, { width: "1em", height: "1em" }) + } + ); + } +); +CloseButton.displayName = "CloseButton"; + +// node_modules/@chakra-ui/toast/dist/chunk-HYCJNCPE.mjs +var import_jsx_runtime30 = __toESM(require_jsx_runtime(), 1); +var initialState = { + top: [], + "top-left": [], + "top-right": [], + "bottom-left": [], + bottom: [], + "bottom-right": [] +}; +var toastStore = createStore(initialState); +function createStore(initialState2) { + let state2 = initialState2; + const listeners = /* @__PURE__ */ new Set(); + const setState = (setStateFn) => { + state2 = setStateFn(state2); + listeners.forEach((l) => l()); + }; + return { + getState: () => state2, + subscribe: (listener) => { + listeners.add(listener); + return () => { + setState(() => initialState2); + listeners.delete(listener); + }; + }, + /** + * Delete a toast record at its position + */ + removeToast: (id3, position3) => { + setState((prevState) => ({ + ...prevState, + // id may be string or number + // eslint-disable-next-line eqeqeq + [position3]: prevState[position3].filter((toast) => toast.id != id3) + })); + }, + notify: (message, options) => { + const toast = createToast(message, options); + const { position: position3, id: id3 } = toast; + setState((prevToasts) => { + var _a8, _b5; + const isTop = position3.includes("top"); + const toasts = isTop ? [toast, ...(_a8 = prevToasts[position3]) != null ? _a8 : []] : [...(_b5 = prevToasts[position3]) != null ? _b5 : [], toast]; + return { + ...prevToasts, + [position3]: toasts + }; + }); + return id3; + }, + update: (id3, options) => { + if (!id3) + return; + setState((prevState) => { + const nextState = { ...prevState }; + const { position: position3, index } = findToast(nextState, id3); + if (position3 && index !== -1) { + nextState[position3][index] = { + ...nextState[position3][index], + ...options, + message: createRenderToast(options) + }; + } + return nextState; + }); + }, + closeAll: ({ positions } = {}) => { + setState((prev2) => { + const allPositions = [ + "bottom", + "bottom-right", + "bottom-left", + "top", + "top-left", + "top-right" + ]; + const positionsToClose = positions != null ? positions : allPositions; + return positionsToClose.reduce( + (acc, position3) => { + acc[position3] = prev2[position3].map((toast) => ({ + ...toast, + requestClose: true + })); + return acc; + }, + { ...prev2 } + ); + }); + }, + close: (id3) => { + setState((prevState) => { + const position3 = getToastPosition(prevState, id3); + if (!position3) + return prevState; + return { + ...prevState, + [position3]: prevState[position3].map((toast) => { + if (toast.id == id3) { + return { + ...toast, + requestClose: true + }; + } + return toast; + }) + }; + }); + }, + isActive: (id3) => Boolean(findToast(toastStore.getState(), id3).position) + }; +} +var counter = 0; +function createToast(message, options = {}) { + var _a8, _b5; + counter += 1; + const id3 = (_a8 = options.id) != null ? _a8 : counter; + const position3 = (_b5 = options.position) != null ? _b5 : "bottom"; + return { + id: id3, + message, + position: position3, + duration: options.duration, + onCloseComplete: options.onCloseComplete, + onRequestRemove: () => toastStore.removeToast(String(id3), position3), + status: options.status, + requestClose: false, + containerStyle: options.containerStyle + }; +} +var Toast = (props) => { + const { + status, + variant = "solid", + id: id3, + title, + isClosable, + onClose, + description, + colorScheme, + icon + } = props; + const ids = id3 ? { + root: `toast-${id3}`, + title: `toast-${id3}-title`, + description: `toast-${id3}-description` + } : void 0; + return (0, import_jsx_runtime30.jsxs)( + Alert, + { + addRole: false, + status, + variant, + id: ids == null ? void 0 : ids.root, + alignItems: "start", + borderRadius: "md", + boxShadow: "lg", + paddingEnd: 8, + textAlign: "start", + width: "auto", + colorScheme, + children: [ + (0, import_jsx_runtime30.jsx)(AlertIcon, { children: icon }), + (0, import_jsx_runtime30.jsxs)(chakra.div, { flex: "1", maxWidth: "100%", children: [ + title && (0, import_jsx_runtime30.jsx)(AlertTitle, { id: ids == null ? void 0 : ids.title, children: title }), + description && (0, import_jsx_runtime30.jsx)(AlertDescription, { id: ids == null ? void 0 : ids.description, display: "block", children: description }) + ] }), + isClosable && (0, import_jsx_runtime30.jsx)( + CloseButton, + { + size: "sm", + onClick: onClose, + position: "absolute", + insetEnd: 1, + top: 1 + } + ) + ] + } + ); +}; +function createRenderToast(options = {}) { + const { render, toastComponent: ToastComponent2 = Toast } = options; + const renderToast = (props) => { + if (typeof render === "function") { + return render({ ...props, ...options }); + } + return (0, import_jsx_runtime30.jsx)(ToastComponent2, { ...props, ...options }); + }; + return renderToast; +} +function createToastFn(dir, defaultOptions4) { + const normalizeToastOptions = (options) => { + var _a8; + return { + ...defaultOptions4, + ...options, + position: getToastPlacement( + (_a8 = options == null ? void 0 : options.position) != null ? _a8 : defaultOptions4 == null ? void 0 : defaultOptions4.position, + dir + ) + }; + }; + const toast = (options) => { + const normalizedToastOptions = normalizeToastOptions(options); + const Message = createRenderToast(normalizedToastOptions); + return toastStore.notify(Message, normalizedToastOptions); + }; + toast.update = (id3, options) => { + toastStore.update(id3, normalizeToastOptions(options)); + }; + toast.promise = (promise, options) => { + const id3 = toast({ + ...options.loading, + status: "loading", + duration: null + }); + promise.then( + (data) => toast.update(id3, { + status: "success", + duration: 5e3, + ...runIfFn(options.success, data) + }) + ).catch( + (error2) => toast.update(id3, { + status: "error", + duration: 5e3, + ...runIfFn(options.error, error2) + }) + ); + }; + toast.closeAll = toastStore.closeAll; + toast.close = toastStore.close; + toast.isActive = toastStore.isActive; + return toast; +} + +// node_modules/@chakra-ui/toast/dist/chunk-3Y4YXCR2.mjs +var import_react73 = __toESM(require_react(), 1); +var import_jsx_runtime31 = __toESM(require_jsx_runtime(), 1); +var [ToastOptionProvider, useToastOptionContext] = createContext2({ + name: `ToastOptionsContext`, + strict: false +}); +var ToastProvider = (props) => { + const state2 = (0, import_react73.useSyncExternalStore)( + toastStore.subscribe, + toastStore.getState, + toastStore.getState + ); + const { + motionVariants: motionVariants2, + component: Component3 = ToastComponent, + portalProps + } = props; + const stateKeys = Object.keys(state2); + const toastList = stateKeys.map((position3) => { + const toasts = state2[position3]; + return (0, import_jsx_runtime31.jsx)( + "div", + { + role: "region", + "aria-live": "polite", + "aria-label": `Notifications-${position3}`, + id: `chakra-toast-manager-${position3}`, + style: getToastListStyle(position3), + children: (0, import_jsx_runtime31.jsx)(AnimatePresence, { initial: false, children: toasts.map((toast) => (0, import_jsx_runtime31.jsx)( + Component3, + { + motionVariants: motionVariants2, + ...toast + }, + toast.id + )) }) + }, + position3 + ); + }); + return (0, import_jsx_runtime31.jsx)(Portal, { ...portalProps, children: toastList }); +}; + +// node_modules/@chakra-ui/toast/dist/chunk-6RSEZNRH.mjs +var import_react74 = __toESM(require_react(), 1); +function useToast(options) { + const { theme: theme2 } = useChakra(); + const defaultOptions4 = useToastOptionContext(); + return (0, import_react74.useMemo)( + () => createToastFn(theme2.direction, { + ...defaultOptions4, + ...options + }), + [options, theme2.direction, defaultOptions4] + ); +} + +// node_modules/@chakra-ui/toast/dist/chunk-FOFDA6UD.mjs +var import_jsx_runtime32 = __toESM(require_jsx_runtime(), 1); +var defaults = { + duration: 5e3, + variant: "solid" +}; +var defaultStandaloneParam = { + theme, + colorMode: "light", + toggleColorMode: () => { + }, + setColorMode: () => { + }, + defaultOptions: defaults, + forced: false +}; +function createStandaloneToast({ + theme: theme2 = defaultStandaloneParam.theme, + colorMode = defaultStandaloneParam.colorMode, + toggleColorMode = defaultStandaloneParam.toggleColorMode, + setColorMode = defaultStandaloneParam.setColorMode, + defaultOptions: defaultOptions4 = defaultStandaloneParam.defaultOptions, + motionVariants: motionVariants2, + toastSpacing, + component, + forced +} = defaultStandaloneParam) { + const colorModeContextValue = { + colorMode, + setColorMode, + toggleColorMode, + forced + }; + const ToastContainer = () => (0, import_jsx_runtime32.jsx)(ThemeProvider3, { theme: theme2, children: (0, import_jsx_runtime32.jsx)(ColorModeContext.Provider, { value: colorModeContextValue, children: (0, import_jsx_runtime32.jsx)( + ToastProvider, + { + defaultOptions: defaultOptions4, + motionVariants: motionVariants2, + toastSpacing, + component + } + ) }) }); + return { + ToastContainer, + toast: createToastFn(theme2.direction, defaultOptions4) + }; +} + +// node_modules/@chakra-ui/react/dist/chunk-QAITB7GG.mjs +var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1); +var createChakraProvider = (providerTheme) => { + return function ChakraProvider22({ + children, + theme: theme2 = providerTheme, + toastOptions, + ...restProps + }) { + return (0, import_jsx_runtime33.jsxs)(ChakraProvider, { theme: theme2, ...restProps, children: [ + (0, import_jsx_runtime33.jsx)(ToastOptionProvider, { value: toastOptions == null ? void 0 : toastOptions.defaultOptions, children }), + (0, import_jsx_runtime33.jsx)(ToastProvider, { ...toastOptions }) + ] }); + }; +}; +var ChakraProvider2 = createChakraProvider(theme); +var ChakraBaseProvider = createChakraProvider(baseTheme); + +// node_modules/@chakra-ui/descendant/dist/chunk-3A5YOZDU.mjs +var import_react75 = __toESM(require_react(), 1); +var __defProp2 = Object.defineProperty; +var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField2 = (obj, key, value) => { + __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +function sortNodes(nodes) { + return nodes.sort((a, b) => { + const compare = a.compareDocumentPosition(b); + if (compare & Node.DOCUMENT_POSITION_FOLLOWING || compare & Node.DOCUMENT_POSITION_CONTAINED_BY) { + return -1; + } + if (compare & Node.DOCUMENT_POSITION_PRECEDING || compare & Node.DOCUMENT_POSITION_CONTAINS) { + return 1; + } + if (compare & Node.DOCUMENT_POSITION_DISCONNECTED || compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC) { + throw Error("Cannot sort the given nodes."); + } else { + return 0; + } + }); +} +var isElement2 = (el) => typeof el == "object" && "nodeType" in el && el.nodeType === Node.ELEMENT_NODE; +function getNextIndex3(current, max, loop) { + let next2 = current + 1; + if (loop && next2 >= max) + next2 = 0; + return next2; +} +function getPrevIndex2(current, max, loop) { + let next2 = current - 1; + if (loop && next2 < 0) + next2 = max; + return next2; +} +var useSafeLayoutEffect2 = typeof window !== "undefined" ? import_react75.useLayoutEffect : import_react75.useEffect; +var cast = (value) => value; + +// node_modules/@chakra-ui/descendant/dist/chunk-FT3H4P66.mjs +var DescendantsManager = class { + constructor() { + __publicField2(this, "descendants", /* @__PURE__ */ new Map()); + __publicField2(this, "register", (nodeOrOptions) => { + if (nodeOrOptions == null) + return; + if (isElement2(nodeOrOptions)) { + return this.registerNode(nodeOrOptions); + } + return (node3) => { + this.registerNode(node3, nodeOrOptions); + }; + }); + __publicField2(this, "unregister", (node3) => { + this.descendants.delete(node3); + const sorted = sortNodes(Array.from(this.descendants.keys())); + this.assignIndex(sorted); + }); + __publicField2(this, "destroy", () => { + this.descendants.clear(); + }); + __publicField2(this, "assignIndex", (descendants) => { + this.descendants.forEach((descendant) => { + const index = descendants.indexOf(descendant.node); + descendant.index = index; + descendant.node.dataset["index"] = descendant.index.toString(); + }); + }); + __publicField2(this, "count", () => this.descendants.size); + __publicField2(this, "enabledCount", () => this.enabledValues().length); + __publicField2(this, "values", () => { + const values = Array.from(this.descendants.values()); + return values.sort((a, b) => a.index - b.index); + }); + __publicField2(this, "enabledValues", () => { + return this.values().filter((descendant) => !descendant.disabled); + }); + __publicField2(this, "item", (index) => { + if (this.count() === 0) + return void 0; + return this.values()[index]; + }); + __publicField2(this, "enabledItem", (index) => { + if (this.enabledCount() === 0) + return void 0; + return this.enabledValues()[index]; + }); + __publicField2(this, "first", () => this.item(0)); + __publicField2(this, "firstEnabled", () => this.enabledItem(0)); + __publicField2(this, "last", () => this.item(this.descendants.size - 1)); + __publicField2(this, "lastEnabled", () => { + const lastIndex = this.enabledValues().length - 1; + return this.enabledItem(lastIndex); + }); + __publicField2(this, "indexOf", (node3) => { + var _a8, _b5; + if (!node3) + return -1; + return (_b5 = (_a8 = this.descendants.get(node3)) == null ? void 0 : _a8.index) != null ? _b5 : -1; + }); + __publicField2(this, "enabledIndexOf", (node3) => { + if (node3 == null) + return -1; + return this.enabledValues().findIndex((i) => i.node.isSameNode(node3)); + }); + __publicField2(this, "next", (index, loop = true) => { + const next2 = getNextIndex3(index, this.count(), loop); + return this.item(next2); + }); + __publicField2(this, "nextEnabled", (index, loop = true) => { + const item = this.item(index); + if (!item) + return; + const enabledIndex = this.enabledIndexOf(item.node); + const nextEnabledIndex = getNextIndex3( + enabledIndex, + this.enabledCount(), + loop + ); + return this.enabledItem(nextEnabledIndex); + }); + __publicField2(this, "prev", (index, loop = true) => { + const prev2 = getPrevIndex2(index, this.count() - 1, loop); + return this.item(prev2); + }); + __publicField2(this, "prevEnabled", (index, loop = true) => { + const item = this.item(index); + if (!item) + return; + const enabledIndex = this.enabledIndexOf(item.node); + const prevEnabledIndex = getPrevIndex2( + enabledIndex, + this.enabledCount() - 1, + loop + ); + return this.enabledItem(prevEnabledIndex); + }); + __publicField2(this, "registerNode", (node3, options) => { + if (!node3 || this.descendants.has(node3)) + return; + const keys2 = Array.from(this.descendants.keys()).concat(node3); + const sorted = sortNodes(keys2); + if (options == null ? void 0 : options.disabled) { + options.disabled = !!options.disabled; + } + const descendant = { node: node3, index: -1, ...options }; + this.descendants.set(node3, descendant); + this.assignIndex(sorted); + }); + } +}; + +// node_modules/@chakra-ui/react-use-merge-refs/dist/index.mjs +var import_react76 = __toESM(require_react(), 1); +function assignRef2(ref, value) { + if (ref == null) + return; + if (typeof ref === "function") { + ref(value); + return; + } + try { + ref.current = value; + } catch (error2) { + throw new Error(`Cannot assign value '${value}' to ref '${ref}'`); + } +} +function mergeRefs2(...refs) { + return (node3) => { + refs.forEach((ref) => { + assignRef2(ref, node3); + }); + }; +} +function useMergeRefs(...refs) { + return (0, import_react76.useMemo)(() => mergeRefs2(...refs), refs); +} + +// node_modules/@chakra-ui/descendant/dist/chunk-OCNORRQU.mjs +var import_react77 = __toESM(require_react(), 1); +function useDescendants() { + const descendants = (0, import_react77.useRef)(new DescendantsManager()); + useSafeLayoutEffect2(() => { + return () => descendants.current.destroy(); + }); + return descendants.current; +} +var [DescendantsContextProvider, useDescendantsContext] = createContext2({ + name: "DescendantsProvider", + errorMessage: "useDescendantsContext must be used within DescendantsProvider" +}); +function useDescendant(options) { + const descendants = useDescendantsContext(); + const [index, setIndex] = (0, import_react77.useState)(-1); + const ref = (0, import_react77.useRef)(null); + useSafeLayoutEffect2(() => { + return () => { + if (!ref.current) + return; + descendants.unregister(ref.current); + }; + }, []); + useSafeLayoutEffect2(() => { + if (!ref.current) + return; + const dataIndex = Number(ref.current.dataset["index"]); + if (index != dataIndex && !Number.isNaN(dataIndex)) { + setIndex(dataIndex); + } + }); + const refCallback = options ? cast(descendants.register(options)) : cast(descendants.register); + return { + descendants, + index, + enabledIndex: descendants.enabledIndexOf(ref.current), + register: mergeRefs2(refCallback, ref) + }; +} +function createDescendantContext() { + const ContextProvider = cast(DescendantsContextProvider); + const _useDescendantsContext = () => cast(useDescendantsContext()); + const _useDescendant = (options) => useDescendant(options); + const _useDescendants = () => useDescendants(); + return [ + // context provider + ContextProvider, + // call this when you need to read from context + _useDescendantsContext, + // descendants state information, to be called and passed to `ContextProvider` + _useDescendants, + // descendant index information + _useDescendant + ]; +} + +// node_modules/@chakra-ui/accordion/dist/chunk-RUEU7BLR.mjs +var [AccordionStylesProvider, useAccordionStyles] = createContext2({ + name: "AccordionStylesContext", + hookName: "useAccordionStyles", + providerName: "" +}); +var [AccordionItemProvider, useAccordionItemContext] = createContext2({ + name: "AccordionItemContext", + hookName: "useAccordionItemContext", + providerName: "" +}); +var [ + AccordionDescendantsProvider, + useAccordionDescendantsContext, + useAccordionDescendants, + useAccordionDescendant +] = createDescendantContext(); + +// node_modules/@chakra-ui/accordion/dist/chunk-QCAXGLVH.mjs +var import_jsx_runtime34 = __toESM(require_jsx_runtime(), 1); +var AccordionButton = forwardRef3( + function AccordionButton2(props, ref) { + const { getButtonProps } = useAccordionItemContext(); + const buttonProps = getButtonProps(props, ref); + const styles2 = useAccordionStyles(); + const buttonStyles = { + display: "flex", + alignItems: "center", + width: "100%", + outline: 0, + ...styles2.button + }; + return (0, import_jsx_runtime34.jsx)( + chakra.button, + { + ...buttonProps, + className: cx("chakra-accordion__button", props.className), + __css: buttonStyles + } + ); + } +); +AccordionButton.displayName = "AccordionButton"; + +// node_modules/@chakra-ui/react-use-controllable-state/dist/index.mjs +var import_react78 = __toESM(require_react(), 1); +function useControllableState(props) { + const { + value: valueProp, + defaultValue, + onChange, + shouldUpdate = (prev2, next2) => prev2 !== next2 + } = props; + const onChangeProp = useCallbackRef(onChange); + const shouldUpdateProp = useCallbackRef(shouldUpdate); + const [uncontrolledState, setUncontrolledState] = (0, import_react78.useState)(defaultValue); + const controlled = valueProp !== void 0; + const value = controlled ? valueProp : uncontrolledState; + const setValue = useCallbackRef( + (next2) => { + const setter = next2; + const nextValue = typeof next2 === "function" ? setter(value) : next2; + if (!shouldUpdateProp(value, nextValue)) { + return; + } + if (!controlled) { + setUncontrolledState(nextValue); + } + onChangeProp(nextValue); + }, + [controlled, onChangeProp, value, shouldUpdateProp] + ); + return [value, setValue]; +} + +// node_modules/@chakra-ui/accordion/dist/chunk-74QY6M57.mjs +var import_react79 = __toESM(require_react(), 1); +function useAccordion(props) { + const { + onChange, + defaultIndex, + index: indexProp, + allowMultiple, + allowToggle, + ...htmlProps + } = props; + allowMultipleWarning(props); + allowMultipleAndAllowToggleWarning(props); + const descendants = useAccordionDescendants(); + const [focusedIndex, setFocusedIndex] = (0, import_react79.useState)(-1); + (0, import_react79.useEffect)(() => { + return () => { + setFocusedIndex(-1); + }; + }, []); + const [index, setIndex] = useControllableState({ + value: indexProp, + defaultValue() { + if (allowMultiple) + return defaultIndex != null ? defaultIndex : []; + return defaultIndex != null ? defaultIndex : -1; + }, + onChange + }); + const getAccordionItemProps = (idx) => { + let isOpen = false; + if (idx !== null) { + isOpen = Array.isArray(index) ? index.includes(idx) : index === idx; + } + const onChange2 = (isOpen2) => { + if (idx === null) + return; + if (allowMultiple && Array.isArray(index)) { + const nextState = isOpen2 ? index.concat(idx) : index.filter((i) => i !== idx); + setIndex(nextState); + } else if (isOpen2) { + setIndex(idx); + } else if (allowToggle) { + setIndex(-1); + } + }; + return { isOpen, onChange: onChange2 }; + }; + return { + index, + setIndex, + htmlProps, + getAccordionItemProps, + focusedIndex, + setFocusedIndex, + descendants + }; +} +var [AccordionProvider, useAccordionContext] = createContext2({ + name: "AccordionContext", + hookName: "useAccordionContext", + providerName: "Accordion" +}); +function useAccordionItem(props) { + const { isDisabled: isDisabled3, isFocusable: isFocusable3, id: id3, ...htmlProps } = props; + const { getAccordionItemProps, setFocusedIndex } = useAccordionContext(); + const buttonRef = (0, import_react79.useRef)(null); + const reactId = (0, import_react79.useId)(); + const uid = id3 != null ? id3 : reactId; + const buttonId = `accordion-button-${uid}`; + const panelId = `accordion-panel-${uid}`; + focusableNotDisabledWarning(props); + const { register, index, descendants } = useAccordionDescendant({ + disabled: isDisabled3 && !isFocusable3 + }); + const { isOpen, onChange } = getAccordionItemProps( + index === -1 ? null : index + ); + warnIfOpenAndDisabled({ isOpen, isDisabled: isDisabled3 }); + const onOpen = () => { + onChange == null ? void 0 : onChange(true); + }; + const onClose = () => { + onChange == null ? void 0 : onChange(false); + }; + const onClick = (0, import_react79.useCallback)(() => { + onChange == null ? void 0 : onChange(!isOpen); + setFocusedIndex(index); + }, [index, setFocusedIndex, isOpen, onChange]); + const onKeyDown = (0, import_react79.useCallback)( + (event) => { + const keyMap = { + ArrowDown: () => { + const next2 = descendants.nextEnabled(index); + next2 == null ? void 0 : next2.node.focus(); + }, + ArrowUp: () => { + const prev2 = descendants.prevEnabled(index); + prev2 == null ? void 0 : prev2.node.focus(); + }, + Home: () => { + const first = descendants.firstEnabled(); + first == null ? void 0 : first.node.focus(); + }, + End: () => { + const last = descendants.lastEnabled(); + last == null ? void 0 : last.node.focus(); + } + }; + const action = keyMap[event.key]; + if (action) { + event.preventDefault(); + action(event); + } + }, + [descendants, index] + ); + const onFocus3 = (0, import_react79.useCallback)(() => { + setFocusedIndex(index); + }, [setFocusedIndex, index]); + const getButtonProps = (0, import_react79.useCallback)( + function getButtonProps2(props2 = {}, ref = null) { + return { + ...props2, + type: "button", + ref: mergeRefs2(register, buttonRef, ref), + id: buttonId, + disabled: !!isDisabled3, + "aria-expanded": !!isOpen, + "aria-controls": panelId, + onClick: callAllHandlers(props2.onClick, onClick), + onFocus: callAllHandlers(props2.onFocus, onFocus3), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown) + }; + }, + [ + buttonId, + isDisabled3, + isOpen, + onClick, + onFocus3, + onKeyDown, + panelId, + register + ] + ); + const getPanelProps = (0, import_react79.useCallback)( + function getPanelProps2(props2 = {}, ref = null) { + return { + ...props2, + ref, + role: "region", + id: panelId, + "aria-labelledby": buttonId, + hidden: !isOpen + }; + }, + [buttonId, isOpen, panelId] + ); + return { + isOpen, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + onOpen, + onClose, + getButtonProps, + getPanelProps, + htmlProps + }; +} +function allowMultipleWarning(props) { + const index = props.index || props.defaultIndex; + const condition = index != null && !Array.isArray(index) && props.allowMultiple; + warn({ + condition: !!condition, + message: `If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: ${typeof index},` + }); +} +function allowMultipleAndAllowToggleWarning(props) { + warn({ + condition: !!(props.allowMultiple && props.allowToggle), + message: `If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not` + }); +} +function focusableNotDisabledWarning(props) { + warn({ + condition: !!(props.isFocusable && !props.isDisabled), + message: `Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well. + ` + }); +} +function warnIfOpenAndDisabled(props) { + warn({ + condition: props.isOpen && !!props.isDisabled, + message: "Cannot open a disabled accordion item" + }); +} + +// node_modules/@chakra-ui/accordion/dist/chunk-YI3ICT2T.mjs +var import_jsx_runtime35 = __toESM(require_jsx_runtime(), 1); +function AccordionIcon(props) { + const { isOpen, isDisabled: isDisabled3 } = useAccordionItemContext(); + const { reduceMotion } = useAccordionContext(); + const _className = cx("chakra-accordion__icon", props.className); + const styles2 = useAccordionStyles(); + const iconStyles = { + opacity: isDisabled3 ? 0.4 : 1, + transform: isOpen ? "rotate(-180deg)" : void 0, + transition: reduceMotion ? void 0 : "transform 0.2s", + transformOrigin: "center", + ...styles2.icon + }; + return (0, import_jsx_runtime35.jsx)( + Icon, + { + viewBox: "0 0 24 24", + "aria-hidden": true, + className: _className, + __css: iconStyles, + ...props, + children: (0, import_jsx_runtime35.jsx)( + "path", + { + fill: "currentColor", + d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z" + } + ) + } + ); +} +AccordionIcon.displayName = "AccordionIcon"; + +// node_modules/@chakra-ui/accordion/dist/chunk-JQ2DNXQ3.mjs +var import_react80 = __toESM(require_react(), 1); +var import_jsx_runtime36 = __toESM(require_jsx_runtime(), 1); +var AccordionItem = forwardRef3( + function AccordionItem2(props, ref) { + const { children, className } = props; + const { htmlProps, ...context } = useAccordionItem(props); + const styles2 = useAccordionStyles(); + const containerStyles = { + ...styles2.container, + overflowAnchor: "none" + }; + const ctx = (0, import_react80.useMemo)(() => context, [context]); + return (0, import_jsx_runtime36.jsx)(AccordionItemProvider, { value: ctx, children: (0, import_jsx_runtime36.jsx)( + chakra.div, + { + ref, + ...htmlProps, + className: cx("chakra-accordion__item", className), + __css: containerStyles, + children: typeof children === "function" ? children({ + isExpanded: !!context.isOpen, + isDisabled: !!context.isDisabled + }) : children + } + ) }); + } +); +AccordionItem.displayName = "AccordionItem"; + +// node_modules/@chakra-ui/transition/dist/chunk-6NHXDBFO.mjs +var TRANSITION_EASINGS = { + ease: [0.25, 0.1, 0.25, 1], + easeIn: [0.4, 0, 1, 1], + easeOut: [0, 0, 0.2, 1], + easeInOut: [0.4, 0, 0.2, 1] +}; +var TRANSITION_VARIANTS = { + scale: { + enter: { scale: 1 }, + exit: { scale: 0.95 } + }, + fade: { + enter: { opacity: 1 }, + exit: { opacity: 0 } + }, + pushLeft: { + enter: { x: "100%" }, + exit: { x: "-30%" } + }, + pushRight: { + enter: { x: "-100%" }, + exit: { x: "30%" } + }, + pushUp: { + enter: { y: "100%" }, + exit: { y: "-30%" } + }, + pushDown: { + enter: { y: "-100%" }, + exit: { y: "30%" } + }, + slideLeft: { + position: { left: 0, top: 0, bottom: 0, width: "100%" }, + enter: { x: 0, y: 0 }, + exit: { x: "-100%", y: 0 } + }, + slideRight: { + position: { right: 0, top: 0, bottom: 0, width: "100%" }, + enter: { x: 0, y: 0 }, + exit: { x: "100%", y: 0 } + }, + slideUp: { + position: { top: 0, left: 0, right: 0, maxWidth: "100vw" }, + enter: { x: 0, y: 0 }, + exit: { x: 0, y: "-100%" } + }, + slideDown: { + position: { bottom: 0, left: 0, right: 0, maxWidth: "100vw" }, + enter: { x: 0, y: 0 }, + exit: { x: 0, y: "100%" } + } +}; +function getSlideTransition(options) { + var _a8; + const side = (_a8 = options == null ? void 0 : options.direction) != null ? _a8 : "right"; + switch (side) { + case "right": + return TRANSITION_VARIANTS.slideRight; + case "left": + return TRANSITION_VARIANTS.slideLeft; + case "bottom": + return TRANSITION_VARIANTS.slideDown; + case "top": + return TRANSITION_VARIANTS.slideUp; + default: + return TRANSITION_VARIANTS.slideRight; + } +} +var TRANSITION_DEFAULTS = { + enter: { + duration: 0.2, + ease: TRANSITION_EASINGS.easeOut + }, + exit: { + duration: 0.1, + ease: TRANSITION_EASINGS.easeIn + } +}; +var withDelay = { + enter: (transition3, delay2) => ({ + ...transition3, + delay: typeof delay2 === "number" ? delay2 : delay2 == null ? void 0 : delay2["enter"] + }), + exit: (transition3, delay2) => ({ + ...transition3, + delay: typeof delay2 === "number" ? delay2 : delay2 == null ? void 0 : delay2["exit"] + }) +}; + +// node_modules/@chakra-ui/transition/dist/chunk-RKXMPHPI.mjs +var import_react81 = __toESM(require_react(), 1); +var import_jsx_runtime37 = __toESM(require_jsx_runtime(), 1); +var isNumeric2 = (value) => value != null && parseInt(value.toString(), 10) > 0; +var defaultTransitions = { + exit: { + height: { duration: 0.2, ease: TRANSITION_EASINGS.ease }, + opacity: { duration: 0.3, ease: TRANSITION_EASINGS.ease } + }, + enter: { + height: { duration: 0.3, ease: TRANSITION_EASINGS.ease }, + opacity: { duration: 0.4, ease: TRANSITION_EASINGS.ease } + } +}; +var variants13 = { + exit: ({ + animateOpacity, + startingHeight, + transition: transition3, + transitionEnd, + delay: delay2 + }) => { + var _a8; + return { + ...animateOpacity && { opacity: isNumeric2(startingHeight) ? 1 : 0 }, + height: startingHeight, + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(defaultTransitions.exit, delay2) + }; + }, + enter: ({ + animateOpacity, + endingHeight, + transition: transition3, + transitionEnd, + delay: delay2 + }) => { + var _a8; + return { + ...animateOpacity && { opacity: 1 }, + height: endingHeight, + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.enter, + transition: (_a8 = transition3 == null ? void 0 : transition3.enter) != null ? _a8 : withDelay.enter(defaultTransitions.enter, delay2) + }; + } +}; +var Collapse = (0, import_react81.forwardRef)( + (props, ref) => { + const { + in: isOpen, + unmountOnExit, + animateOpacity = true, + startingHeight = 0, + endingHeight = "auto", + style, + className, + transition: transition3, + transitionEnd, + ...rest + } = props; + const [mounted, setMounted] = (0, import_react81.useState)(false); + (0, import_react81.useEffect)(() => { + const timeout = setTimeout(() => { + setMounted(true); + }); + return () => clearTimeout(timeout); + }, []); + warn({ + condition: Number(startingHeight) > 0 && !!unmountOnExit, + message: `startingHeight and unmountOnExit are mutually exclusive. You can't use them together` + }); + const hasStartingHeight = parseFloat(startingHeight.toString()) > 0; + const custom = { + startingHeight, + endingHeight, + animateOpacity, + transition: !mounted ? { enter: { duration: 0 } } : transition3, + transitionEnd: { + enter: transitionEnd == null ? void 0 : transitionEnd.enter, + exit: unmountOnExit ? transitionEnd == null ? void 0 : transitionEnd.exit : { + ...transitionEnd == null ? void 0 : transitionEnd.exit, + display: hasStartingHeight ? "block" : "none" + } + } + }; + const show = unmountOnExit ? isOpen : true; + const animate2 = isOpen || unmountOnExit ? "enter" : "exit"; + return (0, import_jsx_runtime37.jsx)(AnimatePresence, { initial: false, custom, children: show && (0, import_jsx_runtime37.jsx)( + motion.div, + { + ref, + ...rest, + className: cx("chakra-collapse", className), + style: { + overflow: "hidden", + display: "block", + ...style + }, + custom, + variants: variants13, + initial: unmountOnExit ? "exit" : false, + animate: animate2, + exit: "exit" + } + ) }); + } +); +Collapse.displayName = "Collapse"; + +// node_modules/@chakra-ui/transition/dist/chunk-TR226DUX.mjs +var import_react82 = __toESM(require_react(), 1); +var import_jsx_runtime38 = __toESM(require_jsx_runtime(), 1); +var variants14 = { + enter: ({ transition: transition3, transitionEnd, delay: delay2 } = {}) => { + var _a8; + return { + opacity: 1, + transition: (_a8 = transition3 == null ? void 0 : transition3.enter) != null ? _a8 : withDelay.enter(TRANSITION_DEFAULTS.enter, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.enter + }; + }, + exit: ({ transition: transition3, transitionEnd, delay: delay2 } = {}) => { + var _a8; + return { + opacity: 0, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(TRANSITION_DEFAULTS.exit, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit + }; + } +}; +var fadeConfig = { + initial: "exit", + animate: "enter", + exit: "exit", + variants: variants14 +}; +var Fade = (0, import_react82.forwardRef)(function Fade2(props, ref) { + const { + unmountOnExit, + in: isOpen, + className, + transition: transition3, + transitionEnd, + delay: delay2, + ...rest + } = props; + const animate2 = isOpen || unmountOnExit ? "enter" : "exit"; + const show = unmountOnExit ? isOpen && unmountOnExit : true; + const custom = { transition: transition3, transitionEnd, delay: delay2 }; + return (0, import_jsx_runtime38.jsx)(AnimatePresence, { custom, children: show && (0, import_jsx_runtime38.jsx)( + motion.div, + { + ref, + className: cx("chakra-fade", className), + custom, + ...fadeConfig, + animate: animate2, + ...rest + } + ) }); +}); +Fade.displayName = "Fade"; + +// node_modules/@chakra-ui/transition/dist/chunk-SR4VX3RF.mjs +var import_react83 = __toESM(require_react(), 1); +var import_jsx_runtime39 = __toESM(require_jsx_runtime(), 1); +var variants15 = { + exit: ({ reverse, initialScale, transition: transition3, transitionEnd, delay: delay2 }) => { + var _a8; + return { + opacity: 0, + ...reverse ? { scale: initialScale, transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit } : { transitionEnd: { scale: initialScale, ...transitionEnd == null ? void 0 : transitionEnd.exit } }, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(TRANSITION_DEFAULTS.exit, delay2) + }; + }, + enter: ({ transitionEnd, transition: transition3, delay: delay2 }) => { + var _a8; + return { + opacity: 1, + scale: 1, + transition: (_a8 = transition3 == null ? void 0 : transition3.enter) != null ? _a8 : withDelay.enter(TRANSITION_DEFAULTS.enter, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.enter + }; + } +}; +var scaleFadeConfig = { + initial: "exit", + animate: "enter", + exit: "exit", + variants: variants15 +}; +var ScaleFade = (0, import_react83.forwardRef)( + function ScaleFade2(props, ref) { + const { + unmountOnExit, + in: isOpen, + reverse = true, + initialScale = 0.95, + className, + transition: transition3, + transitionEnd, + delay: delay2, + ...rest + } = props; + const show = unmountOnExit ? isOpen && unmountOnExit : true; + const animate2 = isOpen || unmountOnExit ? "enter" : "exit"; + const custom = { initialScale, reverse, transition: transition3, transitionEnd, delay: delay2 }; + return (0, import_jsx_runtime39.jsx)(AnimatePresence, { custom, children: show && (0, import_jsx_runtime39.jsx)( + motion.div, + { + ref, + className: cx("chakra-offset-slide", className), + ...scaleFadeConfig, + animate: animate2, + custom, + ...rest + } + ) }); + } +); +ScaleFade.displayName = "ScaleFade"; + +// node_modules/@chakra-ui/transition/dist/chunk-7254PCTD.mjs +var import_react84 = __toESM(require_react(), 1); +var import_jsx_runtime40 = __toESM(require_jsx_runtime(), 1); +var variants16 = { + initial: ({ offsetX, offsetY, transition: transition3, transitionEnd, delay: delay2 }) => { + var _a8; + return { + opacity: 0, + x: offsetX, + y: offsetY, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(TRANSITION_DEFAULTS.exit, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit + }; + }, + enter: ({ transition: transition3, transitionEnd, delay: delay2 }) => { + var _a8; + return { + opacity: 1, + x: 0, + y: 0, + transition: (_a8 = transition3 == null ? void 0 : transition3.enter) != null ? _a8 : withDelay.enter(TRANSITION_DEFAULTS.enter, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.enter + }; + }, + exit: ({ offsetY, offsetX, transition: transition3, transitionEnd, reverse, delay: delay2 }) => { + var _a8; + const offset = { x: offsetX, y: offsetY }; + return { + opacity: 0, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(TRANSITION_DEFAULTS.exit, delay2), + ...reverse ? { ...offset, transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit } : { transitionEnd: { ...offset, ...transitionEnd == null ? void 0 : transitionEnd.exit } } + }; + } +}; +var slideFadeConfig = { + initial: "initial", + animate: "enter", + exit: "exit", + variants: variants16 +}; +var SlideFade = (0, import_react84.forwardRef)( + function SlideFade2(props, ref) { + const { + unmountOnExit, + in: isOpen, + reverse = true, + className, + offsetX = 0, + offsetY = 8, + transition: transition3, + transitionEnd, + delay: delay2, + ...rest + } = props; + const show = unmountOnExit ? isOpen && unmountOnExit : true; + const animate2 = isOpen || unmountOnExit ? "enter" : "exit"; + const custom = { + offsetX, + offsetY, + reverse, + transition: transition3, + transitionEnd, + delay: delay2 + }; + return (0, import_jsx_runtime40.jsx)(AnimatePresence, { custom, children: show && (0, import_jsx_runtime40.jsx)( + motion.div, + { + ref, + className: cx("chakra-offset-slide", className), + custom, + ...slideFadeConfig, + animate: animate2, + ...rest + } + ) }); + } +); +SlideFade.displayName = "SlideFade"; + +// node_modules/@chakra-ui/transition/dist/chunk-CYUETFQE.mjs +var import_react85 = __toESM(require_react(), 1); +var import_jsx_runtime41 = __toESM(require_jsx_runtime(), 1); +var defaultTransition = { + exit: { + duration: 0.15, + ease: TRANSITION_EASINGS.easeInOut + }, + enter: { + type: "spring", + damping: 25, + stiffness: 180 + } +}; +var variants17 = { + exit: ({ direction: direction2, transition: transition3, transitionEnd, delay: delay2 }) => { + var _a8; + const { exit: exitStyles } = getSlideTransition({ direction: direction2 }); + return { + ...exitStyles, + transition: (_a8 = transition3 == null ? void 0 : transition3.exit) != null ? _a8 : withDelay.exit(defaultTransition.exit, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.exit + }; + }, + enter: ({ direction: direction2, transitionEnd, transition: transition3, delay: delay2 }) => { + var _a8; + const { enter: enterStyles } = getSlideTransition({ direction: direction2 }); + return { + ...enterStyles, + transition: (_a8 = transition3 == null ? void 0 : transition3.enter) != null ? _a8 : withDelay.enter(defaultTransition.enter, delay2), + transitionEnd: transitionEnd == null ? void 0 : transitionEnd.enter + }; + } +}; +var Slide = (0, import_react85.forwardRef)(function Slide2(props, ref) { + const { + direction: direction2 = "right", + style, + unmountOnExit, + in: isOpen, + className, + transition: transition3, + transitionEnd, + delay: delay2, + motionProps, + ...rest + } = props; + const transitionStyles = getSlideTransition({ direction: direction2 }); + const computedStyle = Object.assign( + { position: "fixed" }, + transitionStyles.position, + style + ); + const show = unmountOnExit ? isOpen && unmountOnExit : true; + const animate2 = isOpen || unmountOnExit ? "enter" : "exit"; + const custom = { transitionEnd, transition: transition3, direction: direction2, delay: delay2 }; + return (0, import_jsx_runtime41.jsx)(AnimatePresence, { custom, children: show && (0, import_jsx_runtime41.jsx)( + motion.div, + { + ...rest, + ref, + initial: "exit", + className: cx("chakra-slide", className), + animate: animate2, + exit: "exit", + custom, + variants: variants17, + style: computedStyle, + ...motionProps + } + ) }); +}); +Slide.displayName = "Slide"; + +// node_modules/@chakra-ui/accordion/dist/chunk-5VAIMVHT.mjs +var import_jsx_runtime42 = __toESM(require_jsx_runtime(), 1); +var AccordionPanel = forwardRef3( + function AccordionPanel2(props, ref) { + const { className, motionProps, ...rest } = props; + const { reduceMotion } = useAccordionContext(); + const { getPanelProps, isOpen } = useAccordionItemContext(); + const panelProps = getPanelProps(rest, ref); + const _className = cx("chakra-accordion__panel", className); + const styles2 = useAccordionStyles(); + if (!reduceMotion) { + delete panelProps.hidden; + } + const child = (0, import_jsx_runtime42.jsx)(chakra.div, { ...panelProps, __css: styles2.panel, className: _className }); + if (!reduceMotion) { + return (0, import_jsx_runtime42.jsx)(Collapse, { in: isOpen, ...motionProps, children: child }); + } + return child; + } +); +AccordionPanel.displayName = "AccordionPanel"; + +// node_modules/@chakra-ui/accordion/dist/chunk-CRBMUVJA.mjs +var import_react86 = __toESM(require_react(), 1); +var import_jsx_runtime43 = __toESM(require_jsx_runtime(), 1); +var Accordion = forwardRef3(function Accordion2({ children, reduceMotion, ...props }, ref) { + const styles2 = useMultiStyleConfig("Accordion", props); + const ownProps = omitThemingProps(props); + const { htmlProps, descendants, ...context } = useAccordion(ownProps); + const ctx = (0, import_react86.useMemo)( + () => ({ ...context, reduceMotion: !!reduceMotion }), + [context, reduceMotion] + ); + return (0, import_jsx_runtime43.jsx)(AccordionDescendantsProvider, { value: descendants, children: (0, import_jsx_runtime43.jsx)(AccordionProvider, { value: ctx, children: (0, import_jsx_runtime43.jsx)(AccordionStylesProvider, { value: styles2, children: (0, import_jsx_runtime43.jsx)( + chakra.div, + { + ref, + ...htmlProps, + className: cx("chakra-accordion", props.className), + __css: styles2.root, + children + } + ) }) }) }); +}); +Accordion.displayName = "Accordion"; + +// node_modules/@chakra-ui/accordion/dist/chunk-3OO6EZWZ.mjs +function useAccordionItemState() { + const { isOpen, isDisabled: isDisabled3, onClose, onOpen } = useAccordionItemContext(); + return { isOpen, onClose, isDisabled: isDisabled3, onOpen }; +} + +// node_modules/@chakra-ui/avatar/dist/chunk-RD3LQCU3.mjs +var [AvatarStylesProvider, useAvatarStyles] = createContext2({ + name: `AvatarStylesContext`, + hookName: `useAvatarStyles`, + providerName: "" +}); + +// node_modules/@chakra-ui/avatar/dist/chunk-BVSSY3BL.mjs +var import_jsx_runtime44 = __toESM(require_jsx_runtime(), 1); +var placementMap = { + "top-start": { + top: "0", + insetStart: "0", + transform: "translate(-25%, -25%)" + }, + "top-end": { + top: "0", + insetEnd: "0", + transform: "translate(25%, -25%)" + }, + "bottom-start": { + bottom: "0", + insetStart: "0", + transform: "translate(-25%, 25%)" + }, + "bottom-end": { + bottom: "0", + insetEnd: "0", + transform: "translate(25%, 25%)" + } +}; +var AvatarBadge = forwardRef3( + function AvatarBadge2(props, ref) { + const { placement = "bottom-end", className, ...rest } = props; + const styles2 = useAvatarStyles(); + const placementStyles = placementMap[placement]; + const badgeStyles = { + position: "absolute", + display: "flex", + alignItems: "center", + justifyContent: "center", + ...placementStyles, + ...styles2.badge + }; + return (0, import_jsx_runtime44.jsx)( + chakra.div, + { + ref, + ...rest, + className: cx("chakra-avatar__badge", className), + __css: badgeStyles + } + ); + } +); +AvatarBadge.displayName = "AvatarBadge"; + +// node_modules/@chakra-ui/avatar/dist/chunk-O25PJXSD.mjs +var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1); +function initials(name) { + var _a8; + const names = name.split(" "); + const firstName = (_a8 = names[0]) != null ? _a8 : ""; + const lastName = names.length > 1 ? names[names.length - 1] : ""; + return firstName && lastName ? `${firstName.charAt(0)}${lastName.charAt(0)}` : firstName.charAt(0); +} +function AvatarName(props) { + const { name, getInitials, ...rest } = props; + const styles2 = useAvatarStyles(); + return (0, import_jsx_runtime45.jsx)(chakra.div, { role: "img", "aria-label": name, ...rest, __css: styles2.label, children: name ? getInitials == null ? void 0 : getInitials(name) : null }); +} +AvatarName.displayName = "AvatarName"; + +// node_modules/@chakra-ui/avatar/dist/chunk-CXYPMOCL.mjs +var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1); +var GenericAvatarIcon = (props) => (0, import_jsx_runtime46.jsxs)( + chakra.svg, + { + viewBox: "0 0 128 128", + color: "#fff", + width: "100%", + height: "100%", + className: "chakra-avatar__svg", + ...props, + children: [ + (0, import_jsx_runtime46.jsx)( + "path", + { + fill: "currentColor", + d: "M103,102.1388 C93.094,111.92 79.3504,118 64.1638,118 C48.8056,118 34.9294,111.768 25,101.7892 L25,95.2 C25,86.8096 31.981,80 40.6,80 L87.4,80 C96.019,80 103,86.8096 103,95.2 L103,102.1388 Z" + } + ), + (0, import_jsx_runtime46.jsx)( + "path", + { + fill: "currentColor", + d: "M63.9961647,24 C51.2938136,24 41,34.2938136 41,46.9961647 C41,59.7061864 51.2938136,70 63.9961647,70 C76.6985159,70 87,59.7061864 87,46.9961647 C87,34.2938136 76.6985159,24 63.9961647,24" + } + ) + ] + } +); + +// node_modules/@chakra-ui/image/dist/chunk-X3PS6RUF.mjs +var import_jsx_runtime47 = __toESM(require_jsx_runtime(), 1); +var NativeImage = forwardRef3(function NativeImage2(props, ref) { + const { htmlWidth, htmlHeight, alt, ...rest } = props; + return (0, import_jsx_runtime47.jsx)("img", { width: htmlWidth, height: htmlHeight, ref, alt, ...rest }); +}); +NativeImage.displayName = "NativeImage"; + +// node_modules/@chakra-ui/image/dist/chunk-SPIKMR6I.mjs +var import_react87 = __toESM(require_react(), 1); +function useImage(props) { + const { + loading, + src, + srcSet, + onLoad, + onError, + crossOrigin, + sizes: sizes24, + ignoreFallback + } = props; + const [status, setStatus] = (0, import_react87.useState)("pending"); + (0, import_react87.useEffect)(() => { + setStatus(src ? "loading" : "pending"); + }, [src]); + const imageRef = (0, import_react87.useRef)(); + const load = (0, import_react87.useCallback)(() => { + if (!src) + return; + flush(); + const img = new Image(); + img.src = src; + if (crossOrigin) + img.crossOrigin = crossOrigin; + if (srcSet) + img.srcset = srcSet; + if (sizes24) + img.sizes = sizes24; + if (loading) + img.loading = loading; + img.onload = (event) => { + flush(); + setStatus("loaded"); + onLoad == null ? void 0 : onLoad(event); + }; + img.onerror = (error2) => { + flush(); + setStatus("failed"); + onError == null ? void 0 : onError(error2); + }; + imageRef.current = img; + }, [src, crossOrigin, srcSet, sizes24, onLoad, onError, loading]); + const flush = () => { + if (imageRef.current) { + imageRef.current.onload = null; + imageRef.current.onerror = null; + imageRef.current = null; + } + }; + useSafeLayoutEffect(() => { + if (ignoreFallback) + return void 0; + if (status === "loading") { + load(); + } + return () => { + flush(); + }; + }, [status, load, ignoreFallback]); + return ignoreFallback ? "loaded" : status; +} +var shouldShowFallbackImage = (status, fallbackStrategy) => status !== "loaded" && fallbackStrategy === "beforeLoadOrError" || status === "failed" && fallbackStrategy === "onError"; + +// node_modules/@chakra-ui/image/dist/chunk-QINAG4RG.mjs +var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1); +function omit4(object2, keysToOmit = []) { + const clone = Object.assign({}, object2); + for (const key of keysToOmit) { + if (key in clone) { + delete clone[key]; + } + } + return clone; +} +var Image2 = forwardRef3(function Image22(props, ref) { + const { + fallbackSrc, + fallback, + src, + srcSet, + align, + fit, + loading, + ignoreFallback, + crossOrigin, + fallbackStrategy = "beforeLoadOrError", + referrerPolicy, + ...rest + } = props; + const providedFallback = fallbackSrc !== void 0 || fallback !== void 0; + const shouldIgnoreFallbackImage = loading != null || // use can opt out of fallback image + ignoreFallback || // if the user doesn't provide any kind of fallback we should ignore it + !providedFallback; + const status = useImage({ + ...props, + crossOrigin, + ignoreFallback: shouldIgnoreFallbackImage + }); + const showFallbackImage = shouldShowFallbackImage(status, fallbackStrategy); + const shared = { + ref, + objectFit: fit, + objectPosition: align, + ...shouldIgnoreFallbackImage ? rest : omit4(rest, ["onError", "onLoad"]) + }; + if (showFallbackImage) { + if (fallback) + return fallback; + return (0, import_jsx_runtime48.jsx)( + chakra.img, + { + as: NativeImage, + className: "chakra-image__placeholder", + src: fallbackSrc, + ...shared + } + ); + } + return (0, import_jsx_runtime48.jsx)( + chakra.img, + { + as: NativeImage, + src, + srcSet, + crossOrigin, + loading, + referrerPolicy, + className: "chakra-image", + ...shared + } + ); +}); +Image2.displayName = "Image"; + +// node_modules/@chakra-ui/image/dist/chunk-YF5BD7DN.mjs +var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1); +var Img = forwardRef3((props, ref) => (0, import_jsx_runtime49.jsx)(chakra.img, { ref, as: NativeImage, className: "chakra-image", ...props })); + +// node_modules/@chakra-ui/avatar/dist/chunk-V2ATFO44.mjs +var import_react88 = __toESM(require_react(), 1); +var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1); +function AvatarImage(props) { + const { + src, + srcSet, + onError, + onLoad, + getInitials, + name, + borderRadius, + loading, + iconLabel, + icon = (0, import_jsx_runtime50.jsx)(GenericAvatarIcon, {}), + ignoreFallback, + referrerPolicy, + crossOrigin + } = props; + const status = useImage({ src, onError, crossOrigin, ignoreFallback }); + const hasLoaded = status === "loaded"; + const showFallback = !src || !hasLoaded; + if (showFallback) { + return name ? (0, import_jsx_runtime50.jsx)( + AvatarName, + { + className: "chakra-avatar__initials", + getInitials, + name + } + ) : (0, import_react88.cloneElement)(icon, { + role: "img", + "aria-label": iconLabel + }); + } + return (0, import_jsx_runtime50.jsx)( + chakra.img, + { + src, + srcSet, + alt: name, + onLoad, + referrerPolicy, + crossOrigin: crossOrigin != null ? crossOrigin : void 0, + className: "chakra-avatar__img", + loading, + __css: { + width: "100%", + height: "100%", + objectFit: "cover", + borderRadius + } + } + ); +} +AvatarImage.displayName = "AvatarImage"; + +// node_modules/@chakra-ui/avatar/dist/chunk-V7PAE35Z.mjs +var import_react89 = __toESM(require_react(), 1); +var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1); +var baseStyle43 = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + textAlign: "center", + textTransform: "uppercase", + fontWeight: "medium", + position: "relative", + flexShrink: 0 +}; +var Avatar = forwardRef3((props, ref) => { + const styles2 = useMultiStyleConfig("Avatar", props); + const [isLoaded, setIsLoaded] = (0, import_react89.useState)(false); + const { + src, + srcSet, + name, + showBorder, + borderRadius = "full", + onError, + onLoad: onLoadProp, + getInitials = initials, + icon = (0, import_jsx_runtime51.jsx)(GenericAvatarIcon, {}), + iconLabel = " avatar", + loading, + children, + borderColor, + ignoreFallback, + crossOrigin, + referrerPolicy, + ...rest + } = omitThemingProps(props); + const avatarStyles = { + borderRadius, + borderWidth: showBorder ? "2px" : void 0, + ...baseStyle43, + ...styles2.container + }; + if (borderColor) { + avatarStyles.borderColor = borderColor; + } + return (0, import_jsx_runtime51.jsx)( + chakra.span, + { + ref, + ...rest, + className: cx("chakra-avatar", props.className), + "data-loaded": dataAttr(isLoaded), + __css: avatarStyles, + children: (0, import_jsx_runtime51.jsxs)(AvatarStylesProvider, { value: styles2, children: [ + (0, import_jsx_runtime51.jsx)( + AvatarImage, + { + src, + srcSet, + loading, + onLoad: callAllHandlers(onLoadProp, () => { + setIsLoaded(true); + }), + onError, + getInitials, + name, + borderRadius, + icon, + iconLabel, + ignoreFallback, + crossOrigin, + referrerPolicy + } + ), + children + ] }) + } + ); +}); +Avatar.displayName = "Avatar"; + +// node_modules/@chakra-ui/react-children-utils/dist/index.mjs +var import_react90 = __toESM(require_react(), 1); +function getValidChildren2(children) { + return import_react90.Children.toArray(children).filter( + (child) => (0, import_react90.isValidElement)(child) + ); +} + +// node_modules/@chakra-ui/avatar/dist/chunk-A4TTV745.mjs +var import_react91 = __toESM(require_react(), 1); +var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1); +function compact2(object2) { + const clone = Object.assign({}, object2); + for (let key in clone) { + if (clone[key] === void 0) + delete clone[key]; + } + return clone; +} +var AvatarGroup = forwardRef3( + function AvatarGroup2(props, ref) { + const styles2 = useMultiStyleConfig("Avatar", props); + const { + children, + borderColor, + max, + spacing: spacing2 = "-0.75rem", + borderRadius = "full", + ...rest + } = omitThemingProps(props); + const validChildren = getValidChildren2(children); + const childrenWithinMax = max != null ? validChildren.slice(0, max) : validChildren; + const excess = max != null ? validChildren.length - max : 0; + const reversedChildren = childrenWithinMax.reverse(); + const clones = reversedChildren.map((child, index) => { + var _a8; + const isFirstAvatar = index === 0; + const childProps = { + marginEnd: isFirstAvatar ? 0 : spacing2, + size: props.size, + borderColor: (_a8 = child.props.borderColor) != null ? _a8 : borderColor, + showBorder: true + }; + return (0, import_react91.cloneElement)(child, compact2(childProps)); + }); + const groupStyles = { + display: "flex", + alignItems: "center", + justifyContent: "flex-end", + flexDirection: "row-reverse", + ...styles2.group + }; + const excessStyles = { + borderRadius, + marginStart: spacing2, + ...baseStyle43, + ...styles2.excessLabel + }; + return (0, import_jsx_runtime52.jsxs)( + chakra.div, + { + ref, + role: "group", + __css: groupStyles, + ...rest, + className: cx("chakra-avatar__group", props.className), + children: [ + excess > 0 && (0, import_jsx_runtime52.jsx)(chakra.span, { className: "chakra-avatar__excess", __css: excessStyles, children: `+${excess}` }), + clones + ] + } + ); + } +); +AvatarGroup.displayName = "AvatarGroup"; + +// node_modules/@chakra-ui/breadcrumb/dist/chunk-24NX3CUR.mjs +var [BreadcrumbStylesProvider, useBreadcrumbStyles] = createContext2({ + name: `BreadcrumbStylesContext`, + errorMessage: `useBreadcrumbStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); + +// node_modules/@chakra-ui/breadcrumb/dist/chunk-UIZJRKRT.mjs +var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1); +var BreadcrumbLink = forwardRef3( + function BreadcrumbLink2(props, ref) { + const { isCurrentPage, as, className, href, ...rest } = props; + const styles2 = useBreadcrumbStyles(); + const sharedProps = { + ref, + as, + className: cx("chakra-breadcrumb__link", className), + ...rest + }; + if (isCurrentPage) { + return (0, import_jsx_runtime53.jsx)(chakra.span, { "aria-current": "page", __css: styles2.link, ...sharedProps }); + } + return (0, import_jsx_runtime53.jsx)(chakra.a, { __css: styles2.link, href, ...sharedProps }); + } +); +BreadcrumbLink.displayName = "BreadcrumbLink"; + +// node_modules/@chakra-ui/breadcrumb/dist/chunk-I4SEDIQD.mjs +var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1); +var BreadcrumbSeparator = forwardRef3( + function BreadcrumbSeparator2(props, ref) { + const { spacing: spacing2, ...rest } = props; + const styles2 = useBreadcrumbStyles(); + const separatorStyles = { + mx: spacing2, + ...styles2.separator + }; + return (0, import_jsx_runtime54.jsx)( + chakra.span, + { + ref, + role: "presentation", + ...rest, + __css: separatorStyles + } + ); + } +); +BreadcrumbSeparator.displayName = "BreadcrumbSeparator"; + +// node_modules/@chakra-ui/breadcrumb/dist/chunk-U7EUQI2I.mjs +var import_react92 = __toESM(require_react(), 1); +var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1); +var BreadcrumbItem = forwardRef3( + function BreadcrumbItem2(props, ref) { + const { + isCurrentPage, + separator, + isLastChild, + spacing: spacing2, + children, + className, + ...rest + } = props; + const validChildren = getValidChildren2(children); + const clones = validChildren.map((child) => { + if (child.type === BreadcrumbLink) { + return (0, import_react92.cloneElement)(child, { + isCurrentPage + }); + } + if (child.type === BreadcrumbSeparator) { + return (0, import_react92.cloneElement)(child, { + spacing: spacing2, + children: child.props.children || separator + }); + } + return child; + }); + const styles2 = useBreadcrumbStyles(); + const itemStyles = { + display: "inline-flex", + alignItems: "center", + ...styles2.item + }; + const _className = cx("chakra-breadcrumb__list-item", className); + return (0, import_jsx_runtime55.jsxs)(chakra.li, { ref, className: _className, ...rest, __css: itemStyles, children: [ + clones, + !isLastChild && (0, import_jsx_runtime55.jsx)(BreadcrumbSeparator, { spacing: spacing2, children: separator }) + ] }); + } +); +BreadcrumbItem.displayName = "BreadcrumbItem"; + +// node_modules/@chakra-ui/breadcrumb/dist/chunk-QOOL75FN.mjs +var import_react93 = __toESM(require_react(), 1); +var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1); +var Breadcrumb = forwardRef3( + function Breadcrumb2(props, ref) { + const styles2 = useMultiStyleConfig("Breadcrumb", props); + const ownProps = omitThemingProps(props); + const { + children, + spacing: spacing2 = "0.5rem", + separator = "/", + className, + listProps, + ...rest + } = ownProps; + const validChildren = getValidChildren2(children); + const count = validChildren.length; + const clones = validChildren.map( + (child, index) => (0, import_react93.cloneElement)(child, { + separator, + spacing: spacing2, + isLastChild: count === index + 1 + }) + ); + const _className = cx("chakra-breadcrumb", className); + return (0, import_jsx_runtime56.jsx)( + chakra.nav, + { + ref, + "aria-label": "breadcrumb", + className: _className, + __css: styles2.container, + ...rest, + children: (0, import_jsx_runtime56.jsx)(BreadcrumbStylesProvider, { value: styles2, children: (0, import_jsx_runtime56.jsx)( + chakra.ol, + { + className: "chakra-breadcrumb__list", + ...listProps, + __css: { + display: "flex", + alignItems: "center", + ...styles2.list + }, + children: clones + } + ) }) + } + ); + } +); +Breadcrumb.displayName = "Breadcrumb"; + +// node_modules/@chakra-ui/button/dist/chunk-T6ZDZOLO.mjs +var [ButtonGroupProvider, useButtonGroup] = createContext2({ + strict: false, + name: "ButtonGroupContext" +}); + +// node_modules/@chakra-ui/button/dist/chunk-DA7QIPTJ.mjs +var import_react94 = __toESM(require_react(), 1); +var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1); +var attachedStyles = { + horizontal: { + "> *:first-of-type:not(:last-of-type)": { borderEndRadius: 0 }, + "> *:not(:first-of-type):not(:last-of-type)": { borderRadius: 0 }, + "> *:not(:first-of-type):last-of-type": { borderStartRadius: 0 } + }, + vertical: { + "> *:first-of-type:not(:last-of-type)": { borderBottomRadius: 0 }, + "> *:not(:first-of-type):not(:last-of-type)": { borderRadius: 0 }, + "> *:not(:first-of-type):last-of-type": { borderTopRadius: 0 } + } +}; +var gapStyles = { + horizontal: (spacing2) => ({ + "& > *:not(style) ~ *:not(style)": { marginStart: spacing2 } + }), + vertical: (spacing2) => ({ + "& > *:not(style) ~ *:not(style)": { marginTop: spacing2 } + }) +}; +var ButtonGroup = forwardRef3( + function ButtonGroup2(props, ref) { + const { + size: size2, + colorScheme, + variant, + className, + spacing: spacing2 = "0.5rem", + isAttached, + isDisabled: isDisabled3, + orientation = "horizontal", + ...rest + } = props; + const _className = cx("chakra-button__group", className); + const context = (0, import_react94.useMemo)( + () => ({ size: size2, colorScheme, variant, isDisabled: isDisabled3 }), + [size2, colorScheme, variant, isDisabled3] + ); + let groupStyles = { + display: "inline-flex", + ...isAttached ? attachedStyles[orientation] : gapStyles[orientation](spacing2) + }; + const isVertical = orientation === "vertical"; + return (0, import_jsx_runtime57.jsx)(ButtonGroupProvider, { value: context, children: (0, import_jsx_runtime57.jsx)( + chakra.div, + { + ref, + role: "group", + __css: groupStyles, + className: _className, + "data-attached": isAttached ? "" : void 0, + "data-orientation": orientation, + flexDir: isVertical ? "column" : void 0, + ...rest + } + ) }); + } +); +ButtonGroup.displayName = "ButtonGroup"; + +// node_modules/@chakra-ui/button/dist/chunk-J37R6SZE.mjs +var import_react95 = __toESM(require_react(), 1); +function useButtonType(value) { + const [isButton, setIsButton] = (0, import_react95.useState)(!value); + const refCallback = (0, import_react95.useCallback)((node3) => { + if (!node3) + return; + setIsButton(node3.tagName === "BUTTON"); + }, []); + const type = isButton ? "button" : void 0; + return { ref: refCallback, type }; +} + +// node_modules/@chakra-ui/button/dist/chunk-3RENZ2UO.mjs +var import_react96 = __toESM(require_react(), 1); +var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1); +function ButtonIcon(props) { + const { children, className, ...rest } = props; + const _children = (0, import_react96.isValidElement)(children) ? (0, import_react96.cloneElement)(children, { + "aria-hidden": true, + focusable: false + }) : children; + const _className = cx("chakra-button__icon", className); + return (0, import_jsx_runtime58.jsx)( + chakra.span, + { + display: "inline-flex", + alignSelf: "center", + flexShrink: 0, + ...rest, + className: _className, + children: _children + } + ); +} +ButtonIcon.displayName = "ButtonIcon"; + +// node_modules/@chakra-ui/button/dist/chunk-QB2Y5VKH.mjs +var import_react97 = __toESM(require_react(), 1); +var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1); +function ButtonSpinner(props) { + const { + label, + placement, + spacing: spacing2 = "0.5rem", + children = (0, import_jsx_runtime59.jsx)(Spinner, { color: "currentColor", width: "1em", height: "1em" }), + className, + __css, + ...rest + } = props; + const _className = cx("chakra-button__spinner", className); + const marginProp = placement === "start" ? "marginEnd" : "marginStart"; + const spinnerStyles = (0, import_react97.useMemo)( + () => ({ + display: "flex", + alignItems: "center", + position: label ? "relative" : "absolute", + [marginProp]: label ? spacing2 : 0, + fontSize: "1em", + lineHeight: "normal", + ...__css + }), + [__css, label, marginProp, spacing2] + ); + return (0, import_jsx_runtime59.jsx)(chakra.div, { className: _className, ...rest, __css: spinnerStyles, children }); +} +ButtonSpinner.displayName = "ButtonSpinner"; + +// node_modules/@chakra-ui/button/dist/chunk-UVUR7MCU.mjs +var import_react98 = __toESM(require_react(), 1); +var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1); +var Button = forwardRef3((props, ref) => { + const group = useButtonGroup(); + const styles2 = useStyleConfig("Button", { ...group, ...props }); + const { + isDisabled: isDisabled3 = group == null ? void 0 : group.isDisabled, + isLoading, + isActive, + children, + leftIcon, + rightIcon, + loadingText, + iconSpacing: iconSpacing2 = "0.5rem", + type, + spinner, + spinnerPlacement = "start", + className, + as, + ...rest + } = omitThemingProps(props); + const buttonStyles = (0, import_react98.useMemo)(() => { + const _focus = { ...styles2 == null ? void 0 : styles2["_focus"], zIndex: 1 }; + return { + display: "inline-flex", + appearance: "none", + alignItems: "center", + justifyContent: "center", + userSelect: "none", + position: "relative", + whiteSpace: "nowrap", + verticalAlign: "middle", + outline: "none", + ...styles2, + ...!!group && { _focus } + }; + }, [styles2, group]); + const { ref: _ref2, type: defaultType } = useButtonType(as); + const contentProps = { rightIcon, leftIcon, iconSpacing: iconSpacing2, children }; + return (0, import_jsx_runtime60.jsxs)( + chakra.button, + { + ref: useMergeRefs(ref, _ref2), + as, + type: type != null ? type : defaultType, + "data-active": dataAttr(isActive), + "data-loading": dataAttr(isLoading), + __css: buttonStyles, + className: cx("chakra-button", className), + ...rest, + disabled: isDisabled3 || isLoading, + children: [ + isLoading && spinnerPlacement === "start" && (0, import_jsx_runtime60.jsx)( + ButtonSpinner, + { + className: "chakra-button__spinner--start", + label: loadingText, + placement: "start", + spacing: iconSpacing2, + children: spinner + } + ), + isLoading ? loadingText || (0, import_jsx_runtime60.jsx)(chakra.span, { opacity: 0, children: (0, import_jsx_runtime60.jsx)(ButtonContent, { ...contentProps }) }) : (0, import_jsx_runtime60.jsx)(ButtonContent, { ...contentProps }), + isLoading && spinnerPlacement === "end" && (0, import_jsx_runtime60.jsx)( + ButtonSpinner, + { + className: "chakra-button__spinner--end", + label: loadingText, + placement: "end", + spacing: iconSpacing2, + children: spinner + } + ) + ] + } + ); +}); +Button.displayName = "Button"; +function ButtonContent(props) { + const { leftIcon, rightIcon, children, iconSpacing: iconSpacing2 } = props; + return (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [ + leftIcon && (0, import_jsx_runtime60.jsx)(ButtonIcon, { marginEnd: iconSpacing2, children: leftIcon }), + children, + rightIcon && (0, import_jsx_runtime60.jsx)(ButtonIcon, { marginStart: iconSpacing2, children: rightIcon }) + ] }); +} + +// node_modules/@chakra-ui/button/dist/chunk-6QYXN73V.mjs +var import_react99 = __toESM(require_react(), 1); +var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1); +var IconButton = forwardRef3( + (props, ref) => { + const { icon, children, isRound, "aria-label": ariaLabel, ...rest } = props; + const element = icon || children; + const _children = (0, import_react99.isValidElement)(element) ? (0, import_react99.cloneElement)(element, { + "aria-hidden": true, + focusable: false + }) : null; + return (0, import_jsx_runtime61.jsx)( + Button, + { + padding: "0", + borderRadius: isRound ? "full" : void 0, + ref, + "aria-label": ariaLabel, + ...rest, + children: _children + } + ); + } +); +IconButton.displayName = "IconButton"; + +// node_modules/@chakra-ui/card/dist/chunk-HAZMUPV3.mjs +var [CardStylesProvider, useCardStyles] = createStylesContext("Card"); + +// node_modules/@chakra-ui/card/dist/chunk-FHHZMTWR.mjs +var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1); +var CardBody = forwardRef3(function CardBody2(props, ref) { + const { className, ...rest } = props; + const styles2 = useCardStyles(); + return (0, import_jsx_runtime62.jsx)( + chakra.div, + { + ref, + className: cx("chakra-card__body", className), + __css: styles2.body, + ...rest + } + ); +}); + +// node_modules/@chakra-ui/card/dist/chunk-BDSTZZXD.mjs +var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1); +var CardFooter = forwardRef3( + function CardFooter2(props, ref) { + const { className, justify, ...rest } = props; + const styles2 = useCardStyles(); + return (0, import_jsx_runtime63.jsx)( + chakra.div, + { + ref, + className: cx("chakra-card__footer", className), + __css: { + display: "flex", + justifyContent: justify, + ...styles2.footer + }, + ...rest + } + ); + } +); + +// node_modules/@chakra-ui/card/dist/chunk-2EW3JUUD.mjs +var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1); +var CardHeader = forwardRef3( + function CardHeader2(props, ref) { + const { className, ...rest } = props; + const styles2 = useCardStyles(); + return (0, import_jsx_runtime64.jsx)( + chakra.div, + { + ref, + className: cx("chakra-card__header", className), + __css: styles2.header, + ...rest + } + ); + } +); + +// node_modules/@chakra-ui/card/dist/chunk-YQO7BFFX.mjs +var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1); +var Card = forwardRef3(function Card2(props, ref) { + const { + className, + children, + direction: direction2 = "column", + justify, + align, + ...rest + } = omitThemingProps(props); + const styles2 = useMultiStyleConfig("Card", props); + return (0, import_jsx_runtime65.jsx)( + chakra.div, + { + ref, + className: cx("chakra-card", className), + __css: { + display: "flex", + flexDirection: direction2, + justifyContent: justify, + alignItems: align, + position: "relative", + minWidth: 0, + wordWrap: "break-word", + ...styles2.container + }, + ...rest, + children: (0, import_jsx_runtime65.jsx)(CardStylesProvider, { value: styles2, children }) + } + ); +}); + +// node_modules/@chakra-ui/checkbox/dist/chunk-LYGBQ47X.mjs +var [CheckboxGroupProvider, useCheckboxGroupContext] = createContext2({ + name: "CheckboxGroupContext", + strict: false +}); + +// node_modules/@chakra-ui/checkbox/dist/chunk-TOQK4WO2.mjs +var import_react100 = __toESM(require_react(), 1); +function isInputEvent2(value) { + return value && isObject(value) && isObject(value.target); +} +function useCheckboxGroup(props = {}) { + const { + defaultValue, + value: valueProp, + onChange, + isDisabled: isDisabled3, + isNative + } = props; + const onChangeProp = useCallbackRef(onChange); + const [value, setValue] = useControllableState({ + value: valueProp, + defaultValue: defaultValue || [], + onChange: onChangeProp + }); + const handleChange = (0, import_react100.useCallback)( + (eventOrValue) => { + if (!value) + return; + const isChecked = isInputEvent2(eventOrValue) ? eventOrValue.target.checked : !value.includes(eventOrValue); + const selectedValue = isInputEvent2(eventOrValue) ? eventOrValue.target.value : eventOrValue; + const nextValue = isChecked ? [...value, selectedValue] : value.filter((v) => String(v) !== String(selectedValue)); + setValue(nextValue); + }, + [setValue, value] + ); + const getCheckboxProps = (0, import_react100.useCallback)( + (props2 = {}) => { + const checkedKey = isNative ? "checked" : "isChecked"; + return { + ...props2, + [checkedKey]: value.some((val) => String(props2.value) === String(val)), + onChange: handleChange + }; + }, + [handleChange, isNative, value] + ); + return { + value, + isDisabled: isDisabled3, + onChange: handleChange, + setValue, + getCheckboxProps + }; +} + +// node_modules/@chakra-ui/checkbox/dist/chunk-CKJ5T3MX.mjs +var import_react101 = __toESM(require_react(), 1); +var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1); +function CheckboxGroup(props) { + const { colorScheme, size: size2, variant, children, isDisabled: isDisabled3 } = props; + const { value, onChange } = useCheckboxGroup(props); + const group = (0, import_react101.useMemo)( + () => ({ + size: size2, + onChange, + colorScheme, + value, + variant, + isDisabled: isDisabled3 + }), + [size2, onChange, colorScheme, value, variant, isDisabled3] + ); + return (0, import_jsx_runtime66.jsx)(CheckboxGroupProvider, { value: group, children }); +} +CheckboxGroup.displayName = "CheckboxGroup"; + +// node_modules/@chakra-ui/checkbox/dist/chunk-2TOCDA5N.mjs +var import_react102 = __toESM(require_react(), 1); +function useInitialAnimationState(isChecked) { + const [previousIsChecked, setPreviousIsChecked] = (0, import_react102.useState)(isChecked); + const [shouldAnimate, setShouldAnimate] = (0, import_react102.useState)(false); + if (isChecked !== previousIsChecked) { + setShouldAnimate(true); + setPreviousIsChecked(isChecked); + } + return shouldAnimate; +} + +// node_modules/@chakra-ui/checkbox/dist/chunk-ULEC7HZU.mjs +var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1); +function CheckIcon2(props) { + return (0, import_jsx_runtime67.jsx)( + chakra.svg, + { + width: "1.2em", + viewBox: "0 0 12 10", + style: { + fill: "none", + strokeWidth: 2, + stroke: "currentColor", + strokeDasharray: 16 + }, + ...props, + children: (0, import_jsx_runtime67.jsx)("polyline", { points: "1.5 6 4.5 9 10.5 1" }) + } + ); +} +function IndeterminateIcon(props) { + return (0, import_jsx_runtime67.jsx)( + chakra.svg, + { + width: "1.2em", + viewBox: "0 0 24 24", + style: { stroke: "currentColor", strokeWidth: 4 }, + ...props, + children: (0, import_jsx_runtime67.jsx)("line", { x1: "21", x2: "3", y1: "12", y2: "12" }) + } + ); +} +function CheckboxIcon(props) { + const { isIndeterminate, isChecked, ...rest } = props; + const BaseIcon = isIndeterminate ? IndeterminateIcon : CheckIcon2; + return isChecked || isIndeterminate ? (0, import_jsx_runtime67.jsx)( + chakra.div, + { + style: { + display: "flex", + alignItems: "center", + justifyContent: "center", + height: "100%" + }, + children: (0, import_jsx_runtime67.jsx)(BaseIcon, { ...rest }) + } + ) : null; +} + +// node_modules/@chakra-ui/form-control/dist/chunk-DFWC5MHP.mjs +var import_react103 = __toESM(require_react(), 1); +var import_jsx_runtime68 = __toESM(require_jsx_runtime(), 1); +var [FormControlStylesProvider, useFormControlStyles] = createContext2({ + name: `FormControlStylesContext`, + errorMessage: `useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var [FormControlProvider, useFormControlContext] = createContext2({ + strict: false, + name: "FormControlContext" +}); +function useFormControlProvider(props) { + const { + id: idProp, + isRequired, + isInvalid, + isDisabled: isDisabled3, + isReadOnly, + ...htmlProps + } = props; + const uuid = (0, import_react103.useId)(); + const id3 = idProp || `field-${uuid}`; + const labelId = `${id3}-label`; + const feedbackId = `${id3}-feedback`; + const helpTextId = `${id3}-helptext`; + const [hasFeedbackText, setHasFeedbackText] = (0, import_react103.useState)(false); + const [hasHelpText, setHasHelpText] = (0, import_react103.useState)(false); + const [isFocused, setFocus] = (0, import_react103.useState)(false); + const getHelpTextProps = (0, import_react103.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + id: helpTextId, + ...props2, + /** + * Notify the field context when the help text is rendered on screen, + * so we can apply the correct `aria-describedby` to the field (e.g. input, textarea). + */ + ref: mergeRefs2(forwardedRef, (node3) => { + if (!node3) + return; + setHasHelpText(true); + }) + }), + [helpTextId] + ); + const getLabelProps = (0, import_react103.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ref: forwardedRef, + "data-focus": dataAttr(isFocused), + "data-disabled": dataAttr(isDisabled3), + "data-invalid": dataAttr(isInvalid), + "data-readonly": dataAttr(isReadOnly), + id: props2.id !== void 0 ? props2.id : labelId, + htmlFor: props2.htmlFor !== void 0 ? props2.htmlFor : id3 + }), + [id3, isDisabled3, isFocused, isInvalid, isReadOnly, labelId] + ); + const getErrorMessageProps = (0, import_react103.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + id: feedbackId, + ...props2, + /** + * Notify the field context when the error message is rendered on screen, + * so we can apply the correct `aria-describedby` to the field (e.g. input, textarea). + */ + ref: mergeRefs2(forwardedRef, (node3) => { + if (!node3) + return; + setHasFeedbackText(true); + }), + "aria-live": "polite" + }), + [feedbackId] + ); + const getRootProps = (0, import_react103.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ...htmlProps, + ref: forwardedRef, + role: "group", + "data-focus": dataAttr(isFocused), + "data-disabled": dataAttr(isDisabled3), + "data-invalid": dataAttr(isInvalid), + "data-readonly": dataAttr(isReadOnly) + }), + [htmlProps, isDisabled3, isFocused, isInvalid, isReadOnly] + ); + const getRequiredIndicatorProps = (0, import_react103.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ref: forwardedRef, + role: "presentation", + "aria-hidden": true, + children: props2.children || "*" + }), + [] + ); + return { + isRequired: !!isRequired, + isInvalid: !!isInvalid, + isReadOnly: !!isReadOnly, + isDisabled: !!isDisabled3, + isFocused: !!isFocused, + onFocus: () => setFocus(true), + onBlur: () => setFocus(false), + hasFeedbackText, + setHasFeedbackText, + hasHelpText, + setHasHelpText, + id: id3, + labelId, + feedbackId, + helpTextId, + htmlProps, + getHelpTextProps, + getErrorMessageProps, + getRootProps, + getLabelProps, + getRequiredIndicatorProps + }; +} +var FormControl = forwardRef3( + function FormControl2(props, ref) { + const styles2 = useMultiStyleConfig("Form", props); + const ownProps = omitThemingProps(props); + const { + getRootProps, + htmlProps: _, + ...context + } = useFormControlProvider(ownProps); + const className = cx("chakra-form-control", props.className); + return (0, import_jsx_runtime68.jsx)(FormControlProvider, { value: context, children: (0, import_jsx_runtime68.jsx)(FormControlStylesProvider, { value: styles2, children: (0, import_jsx_runtime68.jsx)( + chakra.div, + { + ...getRootProps({}, ref), + className, + __css: styles2["container"] + } + ) }) }); + } +); +FormControl.displayName = "FormControl"; +var FormHelperText = forwardRef3( + function FormHelperText2(props, ref) { + const field = useFormControlContext(); + const styles2 = useFormControlStyles(); + const className = cx("chakra-form__helper-text", props.className); + return (0, import_jsx_runtime68.jsx)( + chakra.div, + { + ...field == null ? void 0 : field.getHelpTextProps(props, ref), + __css: styles2.helperText, + className + } + ); + } +); +FormHelperText.displayName = "FormHelperText"; + +// node_modules/@chakra-ui/form-control/dist/chunk-VGESXGVT.mjs +var import_jsx_runtime69 = __toESM(require_jsx_runtime(), 1); +var [FormErrorStylesProvider, useFormErrorStyles] = createContext2({ + name: `FormErrorStylesContext`, + errorMessage: `useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var FormErrorMessage = forwardRef3( + (props, ref) => { + const styles2 = useMultiStyleConfig("FormError", props); + const ownProps = omitThemingProps(props); + const field = useFormControlContext(); + if (!(field == null ? void 0 : field.isInvalid)) + return null; + return (0, import_jsx_runtime69.jsx)(FormErrorStylesProvider, { value: styles2, children: (0, import_jsx_runtime69.jsx)( + chakra.div, + { + ...field == null ? void 0 : field.getErrorMessageProps(ownProps, ref), + className: cx("chakra-form__error-message", props.className), + __css: { + display: "flex", + alignItems: "center", + ...styles2.text + } + } + ) }); + } +); +FormErrorMessage.displayName = "FormErrorMessage"; +var FormErrorIcon = forwardRef3((props, ref) => { + const styles2 = useFormErrorStyles(); + const field = useFormControlContext(); + if (!(field == null ? void 0 : field.isInvalid)) + return null; + const _className = cx("chakra-form__error-icon", props.className); + return (0, import_jsx_runtime69.jsx)( + Icon, + { + ref, + "aria-hidden": true, + ...props, + __css: styles2.icon, + className: _className, + children: (0, import_jsx_runtime69.jsx)( + "path", + { + fill: "currentColor", + d: "M11.983,0a12.206,12.206,0,0,0-8.51,3.653A11.8,11.8,0,0,0,0,12.207,11.779,11.779,0,0,0,11.8,24h.214A12.111,12.111,0,0,0,24,11.791h0A11.766,11.766,0,0,0,11.983,0ZM10.5,16.542a1.476,1.476,0,0,1,1.449-1.53h.027a1.527,1.527,0,0,1,1.523,1.47,1.475,1.475,0,0,1-1.449,1.53h-.027A1.529,1.529,0,0,1,10.5,16.542ZM11,12.5v-6a1,1,0,0,1,2,0v6a1,1,0,1,1-2,0Z" + } + ) + } + ); +}); +FormErrorIcon.displayName = "FormErrorIcon"; + +// node_modules/@chakra-ui/form-control/dist/chunk-H46NUPBZ.mjs +var import_jsx_runtime70 = __toESM(require_jsx_runtime(), 1); +var FormLabel = forwardRef3(function FormLabel2(passedProps, ref) { + var _a8; + const styles2 = useStyleConfig("FormLabel", passedProps); + const props = omitThemingProps(passedProps); + const { + className, + children, + requiredIndicator = (0, import_jsx_runtime70.jsx)(RequiredIndicator, {}), + optionalIndicator = null, + ...rest + } = props; + const field = useFormControlContext(); + const ownProps = (_a8 = field == null ? void 0 : field.getLabelProps(rest, ref)) != null ? _a8 : { ref, ...rest }; + return (0, import_jsx_runtime70.jsxs)( + chakra.label, + { + ...ownProps, + className: cx("chakra-form__label", props.className), + __css: { + display: "block", + textAlign: "start", + ...styles2 + }, + children: [ + children, + (field == null ? void 0 : field.isRequired) ? requiredIndicator : optionalIndicator + ] + } + ); +}); +FormLabel.displayName = "FormLabel"; +var RequiredIndicator = forwardRef3( + function RequiredIndicator2(props, ref) { + const field = useFormControlContext(); + const styles2 = useFormControlStyles(); + if (!(field == null ? void 0 : field.isRequired)) + return null; + const className = cx("chakra-form__required-indicator", props.className); + return (0, import_jsx_runtime70.jsx)( + chakra.span, + { + ...field == null ? void 0 : field.getRequiredIndicatorProps(props, ref), + __css: styles2.requiredIndicator, + className + } + ); + } +); +RequiredIndicator.displayName = "RequiredIndicator"; + +// node_modules/@chakra-ui/form-control/dist/chunk-56K2BSAJ.mjs +function useFormControl(props) { + const { isDisabled: isDisabled3, isInvalid, isReadOnly, isRequired, ...rest } = useFormControlProps(props); + return { + ...rest, + disabled: isDisabled3, + readOnly: isReadOnly, + required: isRequired, + "aria-invalid": ariaAttr(isInvalid), + "aria-required": ariaAttr(isRequired), + "aria-readonly": ariaAttr(isReadOnly) + }; +} +function useFormControlProps(props) { + var _a8, _b5, _c3; + const field = useFormControlContext(); + const { + id: id3, + disabled, + readOnly, + required, + isRequired, + isInvalid, + isReadOnly, + isDisabled: isDisabled3, + onFocus: onFocus3, + onBlur: onBlur3, + ...rest + } = props; + const labelIds = props["aria-describedby"] ? [props["aria-describedby"]] : []; + if ((field == null ? void 0 : field.hasFeedbackText) && (field == null ? void 0 : field.isInvalid)) { + labelIds.push(field.feedbackId); + } + if (field == null ? void 0 : field.hasHelpText) { + labelIds.push(field.helpTextId); + } + return { + ...rest, + "aria-describedby": labelIds.join(" ") || void 0, + id: id3 != null ? id3 : field == null ? void 0 : field.id, + isDisabled: (_a8 = disabled != null ? disabled : isDisabled3) != null ? _a8 : field == null ? void 0 : field.isDisabled, + isReadOnly: (_b5 = readOnly != null ? readOnly : isReadOnly) != null ? _b5 : field == null ? void 0 : field.isReadOnly, + isRequired: (_c3 = required != null ? required : isRequired) != null ? _c3 : field == null ? void 0 : field.isRequired, + isInvalid: isInvalid != null ? isInvalid : field == null ? void 0 : field.isInvalid, + onFocus: callAllHandlers(field == null ? void 0 : field.onFocus, onFocus3), + onBlur: callAllHandlers(field == null ? void 0 : field.onBlur, onBlur3) + }; +} + +// node_modules/@chakra-ui/visually-hidden/dist/chunk-3JHDQ75O.mjs +var visuallyHiddenStyle = { + border: "0", + clip: "rect(0, 0, 0, 0)", + height: "1px", + width: "1px", + margin: "-1px", + padding: "0", + overflow: "hidden", + whiteSpace: "nowrap", + position: "absolute" +}; + +// node_modules/@chakra-ui/visually-hidden/dist/chunk-KO6Q73AP.mjs +var VisuallyHidden = chakra("span", { + baseStyle: visuallyHiddenStyle +}); +VisuallyHidden.displayName = "VisuallyHidden"; +var VisuallyHiddenInput = chakra("input", { + baseStyle: visuallyHiddenStyle +}); +VisuallyHiddenInput.displayName = "VisuallyHiddenInput"; + +// node_modules/@zag-js/dom-query/dist/index.mjs +function itemById(v, id3) { + return v.find((node3) => node3.id === id3); +} +function indexOfId(v, id3) { + const item = itemById(v, id3); + return item ? v.indexOf(item) : -1; +} +var getValueText = (item) => item.dataset.valuetext ?? item.textContent ?? ""; +var match2 = (valueText, query2) => valueText.toLowerCase().startsWith(query2.toLowerCase()); +var wrap3 = (v, idx) => { + return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]); +}; +function getByText(v, text, currentId) { + const index = currentId ? indexOfId(v, currentId) : -1; + let items = currentId ? wrap3(v, index) : v; + const isSingleKey = text.length === 1; + if (isSingleKey) { + items = items.filter((item) => item.id !== currentId); + } + return items.find((item) => match2(getValueText(item), text)); +} +function getByTypeaheadImpl(_items, options) { + const { state: state2, activeId, key, timeout = 350 } = options; + const search = state2.keysSoFar + key; + const isRepeated = search.length > 1 && Array.from(search).every((char2) => char2 === search[0]); + const query2 = isRepeated ? search[0] : search; + let items = _items.slice(); + const next2 = getByText(items, query2, activeId); + function cleanup() { + clearTimeout(state2.timer); + state2.timer = -1; + } + function update(value) { + state2.keysSoFar = value; + cleanup(); + if (value !== "") { + state2.timer = +setTimeout(() => { + update(""); + cleanup(); + }, timeout); + } + } + update(search); + return next2; +} +var getByTypeahead = Object.assign(getByTypeaheadImpl, { + defaultOptions: { keysSoFar: "", timer: -1 }, + isValidEvent: isValidTypeaheadEvent +}); +function isValidTypeaheadEvent(event) { + return event.key.length === 1 && !event.ctrlKey && !event.metaKey; +} +var isDom = () => typeof document !== "undefined"; + +// node_modules/@zag-js/focus-visible/dist/index.mjs +var hasSetup = false; +var modality = null; +var hasEventBeforeFocus = false; +var hasBlurredWindowRecently = false; +var handlers = /* @__PURE__ */ new Set(); +function trigger(modality2, event) { + handlers.forEach((handler) => handler(modality2, event)); +} +var isMac = typeof window !== "undefined" && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false; +function isValidKey(e) { + return !(e.metaKey || !isMac && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta"); +} +function onKeyboardEvent(event) { + hasEventBeforeFocus = true; + if (isValidKey(event)) { + modality = "keyboard"; + trigger("keyboard", event); + } +} +function onPointerEvent(event) { + modality = "pointer"; + if (event.type === "mousedown" || event.type === "pointerdown") { + hasEventBeforeFocus = true; + const target = event.composedPath ? event.composedPath()[0] : event.target; + let matches = false; + try { + matches = target.matches(":focus-visible"); + } catch { + } + if (matches) + return; + trigger("pointer", event); + } +} +function isVirtualClick(event) { + if (event.mozInputSource === 0 && event.isTrusted) + return true; + return event.detail === 0 && !event.pointerType; +} +function onClickEvent(e) { + if (isVirtualClick(e)) { + hasEventBeforeFocus = true; + modality = "virtual"; + } +} +function onWindowFocus(event) { + if (event.target === window || event.target === document) { + return; + } + if (!hasEventBeforeFocus && !hasBlurredWindowRecently) { + modality = "virtual"; + trigger("virtual", event); + } + hasEventBeforeFocus = false; + hasBlurredWindowRecently = false; +} +function onWindowBlur() { + hasEventBeforeFocus = false; + hasBlurredWindowRecently = true; +} +function isFocusVisible() { + return modality !== "pointer"; +} +function setupGlobalFocusEvents() { + if (!isDom() || hasSetup) { + return; + } + const { focus: focus2 } = HTMLElement.prototype; + HTMLElement.prototype.focus = function focusElement(...args) { + hasEventBeforeFocus = true; + focus2.apply(this, args); + }; + document.addEventListener("keydown", onKeyboardEvent, true); + document.addEventListener("keyup", onKeyboardEvent, true); + document.addEventListener("click", onClickEvent, true); + window.addEventListener("focus", onWindowFocus, true); + window.addEventListener("blur", onWindowBlur, false); + if (typeof PointerEvent !== "undefined") { + document.addEventListener("pointerdown", onPointerEvent, true); + document.addEventListener("pointermove", onPointerEvent, true); + document.addEventListener("pointerup", onPointerEvent, true); + } else { + document.addEventListener("mousedown", onPointerEvent, true); + document.addEventListener("mousemove", onPointerEvent, true); + document.addEventListener("mouseup", onPointerEvent, true); + } + hasSetup = true; +} +function trackFocusVisible(fn) { + setupGlobalFocusEvents(); + fn(isFocusVisible()); + const handler = () => fn(isFocusVisible()); + handlers.add(handler); + return () => { + handlers.delete(handler); + }; +} + +// node_modules/@chakra-ui/checkbox/dist/chunk-7D6N5TE5.mjs +var import_react104 = __toESM(require_react(), 1); +function omit5(object2, keysToOmit = []) { + const clone = Object.assign({}, object2); + for (const key of keysToOmit) { + if (key in clone) { + delete clone[key]; + } + } + return clone; +} +function useCheckbox(props = {}) { + const formControlProps = useFormControlProps(props); + const { + isDisabled: isDisabled3, + isReadOnly, + isRequired, + isInvalid, + id: id3, + onBlur: onBlur3, + onFocus: onFocus3, + "aria-describedby": ariaDescribedBy + } = formControlProps; + const { + defaultChecked, + isChecked: checkedProp, + isFocusable: isFocusable3, + onChange, + isIndeterminate, + name, + value, + tabIndex = void 0, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + "aria-invalid": ariaInvalid, + ...rest + } = props; + const htmlProps = omit5(rest, [ + "isDisabled", + "isReadOnly", + "isRequired", + "isInvalid", + "id", + "onBlur", + "onFocus", + "aria-describedby" + ]); + const onChangeProp = useCallbackRef(onChange); + const onBlurProp = useCallbackRef(onBlur3); + const onFocusProp = useCallbackRef(onFocus3); + const [isFocusVisible2, setIsFocusVisible] = (0, import_react104.useState)(false); + const [isFocused, setFocused] = (0, import_react104.useState)(false); + const [isHovered, setHovered] = (0, import_react104.useState)(false); + const [isActive, setActive] = (0, import_react104.useState)(false); + (0, import_react104.useEffect)(() => { + return trackFocusVisible(setIsFocusVisible); + }, []); + const inputRef = (0, import_react104.useRef)(null); + const [rootIsLabelElement, setRootIsLabelElement] = (0, import_react104.useState)(true); + const [checkedState, setCheckedState] = (0, import_react104.useState)(!!defaultChecked); + const isControlled = checkedProp !== void 0; + const isChecked = isControlled ? checkedProp : checkedState; + const handleChange = (0, import_react104.useCallback)( + (event) => { + if (isReadOnly || isDisabled3) { + event.preventDefault(); + return; + } + if (!isControlled) { + if (isChecked) { + setCheckedState(event.target.checked); + } else { + setCheckedState(isIndeterminate ? true : event.target.checked); + } + } + onChangeProp == null ? void 0 : onChangeProp(event); + }, + [ + isReadOnly, + isDisabled3, + isChecked, + isControlled, + isIndeterminate, + onChangeProp + ] + ); + useSafeLayoutEffect(() => { + if (inputRef.current) { + inputRef.current.indeterminate = Boolean(isIndeterminate); + } + }, [isIndeterminate]); + useUpdateEffect(() => { + if (isDisabled3) { + setFocused(false); + } + }, [isDisabled3, setFocused]); + useSafeLayoutEffect(() => { + const el = inputRef.current; + if (!(el == null ? void 0 : el.form)) + return; + const formResetListener = () => { + setCheckedState(!!defaultChecked); + }; + el.form.addEventListener("reset", formResetListener); + return () => { + var _a8; + return (_a8 = el.form) == null ? void 0 : _a8.removeEventListener("reset", formResetListener); + }; + }, []); + const trulyDisabled = isDisabled3 && !isFocusable3; + const onKeyDown = (0, import_react104.useCallback)( + (event) => { + if (event.key === " ") { + setActive(true); + } + }, + [setActive] + ); + const onKeyUp = (0, import_react104.useCallback)( + (event) => { + if (event.key === " ") { + setActive(false); + } + }, + [setActive] + ); + useSafeLayoutEffect(() => { + if (!inputRef.current) + return; + const notInSync = inputRef.current.checked !== isChecked; + if (notInSync) { + setCheckedState(inputRef.current.checked); + } + }, [inputRef.current]); + const getCheckboxProps = (0, import_react104.useCallback)( + (props2 = {}, forwardedRef = null) => { + const onPressDown = (event) => { + if (isFocused) { + event.preventDefault(); + } + setActive(true); + }; + return { + ...props2, + ref: forwardedRef, + "data-active": dataAttr(isActive), + "data-hover": dataAttr(isHovered), + "data-checked": dataAttr(isChecked), + "data-focus": dataAttr(isFocused), + "data-focus-visible": dataAttr(isFocused && isFocusVisible2), + "data-indeterminate": dataAttr(isIndeterminate), + "data-disabled": dataAttr(isDisabled3), + "data-invalid": dataAttr(isInvalid), + "data-readonly": dataAttr(isReadOnly), + "aria-hidden": true, + onMouseDown: callAllHandlers(props2.onMouseDown, onPressDown), + onMouseUp: callAllHandlers(props2.onMouseUp, () => setActive(false)), + onMouseEnter: callAllHandlers( + props2.onMouseEnter, + () => setHovered(true) + ), + onMouseLeave: callAllHandlers( + props2.onMouseLeave, + () => setHovered(false) + ) + }; + }, + [ + isActive, + isChecked, + isDisabled3, + isFocused, + isFocusVisible2, + isHovered, + isIndeterminate, + isInvalid, + isReadOnly + ] + ); + const getIndicatorProps = (0, import_react104.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ref: forwardedRef, + "data-active": dataAttr(isActive), + "data-hover": dataAttr(isHovered), + "data-checked": dataAttr(isChecked), + "data-focus": dataAttr(isFocused), + "data-focus-visible": dataAttr(isFocused && isFocusVisible2), + "data-indeterminate": dataAttr(isIndeterminate), + "data-disabled": dataAttr(isDisabled3), + "data-invalid": dataAttr(isInvalid), + "data-readonly": dataAttr(isReadOnly) + }), + [ + isActive, + isChecked, + isDisabled3, + isFocused, + isFocusVisible2, + isHovered, + isIndeterminate, + isInvalid, + isReadOnly + ] + ); + const getRootProps = (0, import_react104.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...htmlProps, + ...props2, + ref: mergeRefs2(forwardedRef, (node3) => { + if (!node3) + return; + setRootIsLabelElement(node3.tagName === "LABEL"); + }), + onClick: callAllHandlers(props2.onClick, () => { + var _a8; + if (!rootIsLabelElement) { + (_a8 = inputRef.current) == null ? void 0 : _a8.click(); + requestAnimationFrame(() => { + var _a24; + (_a24 = inputRef.current) == null ? void 0 : _a24.focus({ preventScroll: true }); + }); + } + }), + "data-disabled": dataAttr(isDisabled3), + "data-checked": dataAttr(isChecked), + "data-invalid": dataAttr(isInvalid) + }), + [htmlProps, isDisabled3, isChecked, isInvalid, rootIsLabelElement] + ); + const getInputProps = (0, import_react104.useCallback)( + (props2 = {}, forwardedRef = null) => { + return { + ...props2, + ref: mergeRefs2(inputRef, forwardedRef), + type: "checkbox", + name, + value, + id: id3, + tabIndex, + onChange: callAllHandlers(props2.onChange, handleChange), + onBlur: callAllHandlers( + props2.onBlur, + onBlurProp, + () => setFocused(false) + ), + onFocus: callAllHandlers( + props2.onFocus, + onFocusProp, + () => setFocused(true) + ), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown), + onKeyUp: callAllHandlers(props2.onKeyUp, onKeyUp), + required: isRequired, + checked: isChecked, + disabled: trulyDisabled, + readOnly: isReadOnly, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + "aria-invalid": ariaInvalid ? Boolean(ariaInvalid) : isInvalid, + "aria-describedby": ariaDescribedBy, + "aria-disabled": isDisabled3, + style: visuallyHiddenStyle + }; + }, + [ + name, + value, + id3, + handleChange, + onBlurProp, + onFocusProp, + onKeyDown, + onKeyUp, + isRequired, + isChecked, + trulyDisabled, + isReadOnly, + ariaLabel, + ariaLabelledBy, + ariaInvalid, + isInvalid, + ariaDescribedBy, + isDisabled3, + tabIndex + ] + ); + const getLabelProps = (0, import_react104.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ref: forwardedRef, + onMouseDown: callAllHandlers(props2.onMouseDown, stopEvent), + "data-disabled": dataAttr(isDisabled3), + "data-checked": dataAttr(isChecked), + "data-invalid": dataAttr(isInvalid) + }), + [isChecked, isDisabled3, isInvalid] + ); + const state2 = { + isInvalid, + isFocused, + isChecked, + isActive, + isHovered, + isIndeterminate, + isDisabled: isDisabled3, + isReadOnly, + isRequired + }; + return { + state: state2, + getRootProps, + getCheckboxProps, + getIndicatorProps, + getInputProps, + getLabelProps, + htmlProps + }; +} +function stopEvent(event) { + event.preventDefault(); + event.stopPropagation(); +} + +// node_modules/@chakra-ui/checkbox/dist/chunk-CWVAJCXJ.mjs +var import_react105 = __toESM(require_react(), 1); +var import_jsx_runtime71 = __toESM(require_jsx_runtime(), 1); +var controlStyles = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + verticalAlign: "top", + userSelect: "none", + flexShrink: 0 +}; +var rootStyles = { + cursor: "pointer", + display: "inline-flex", + alignItems: "center", + verticalAlign: "top", + position: "relative" +}; +var checkAnim = keyframes({ + from: { + opacity: 0, + strokeDashoffset: 16, + transform: "scale(0.95)" + }, + to: { + opacity: 1, + strokeDashoffset: 0, + transform: "scale(1)" + } +}); +var indeterminateOpacityAnim = keyframes({ + from: { + opacity: 0 + }, + to: { + opacity: 1 + } +}); +var indeterminateScaleAnim = keyframes({ + from: { + transform: "scaleX(0.65)" + }, + to: { + transform: "scaleX(1)" + } +}); +var Checkbox = forwardRef3(function Checkbox2(props, ref) { + const group = useCheckboxGroupContext(); + const mergedProps = { ...group, ...props }; + const styles2 = useMultiStyleConfig("Checkbox", mergedProps); + const ownProps = omitThemingProps(props); + const { + spacing: spacing2 = "0.5rem", + className, + children, + iconColor, + iconSize, + icon = (0, import_jsx_runtime71.jsx)(CheckboxIcon, {}), + isChecked: isCheckedProp, + isDisabled: isDisabled3 = group == null ? void 0 : group.isDisabled, + onChange: onChangeProp, + inputProps, + ...rest + } = ownProps; + let isChecked = isCheckedProp; + if ((group == null ? void 0 : group.value) && ownProps.value) { + isChecked = group.value.includes(ownProps.value); + } + let onChange = onChangeProp; + if ((group == null ? void 0 : group.onChange) && ownProps.value) { + onChange = callAll(group.onChange, onChangeProp); + } + const { + state: state2, + getInputProps, + getCheckboxProps, + getLabelProps, + getRootProps + } = useCheckbox({ + ...rest, + isDisabled: isDisabled3, + isChecked, + onChange + }); + const shouldAnimate = useInitialAnimationState(state2.isChecked); + const iconStyles = (0, import_react105.useMemo)( + () => ({ + animation: !shouldAnimate ? void 0 : state2.isIndeterminate ? `${indeterminateOpacityAnim} 20ms linear, ${indeterminateScaleAnim} 200ms linear` : `${checkAnim} 200ms linear`, + fontSize: iconSize, + color: iconColor, + ...styles2.icon + }), + [iconColor, iconSize, shouldAnimate, state2.isIndeterminate, styles2.icon] + ); + const clonedIcon = (0, import_react105.cloneElement)(icon, { + __css: iconStyles, + isIndeterminate: state2.isIndeterminate, + isChecked: state2.isChecked + }); + return (0, import_jsx_runtime71.jsxs)( + chakra.label, + { + __css: { ...rootStyles, ...styles2.container }, + className: cx("chakra-checkbox", className), + ...getRootProps(), + children: [ + (0, import_jsx_runtime71.jsx)( + "input", + { + className: "chakra-checkbox__input", + ...getInputProps(inputProps, ref) + } + ), + (0, import_jsx_runtime71.jsx)( + chakra.span, + { + __css: { ...controlStyles, ...styles2.control }, + className: "chakra-checkbox__control", + ...getCheckboxProps(), + children: clonedIcon + } + ), + children && (0, import_jsx_runtime71.jsx)( + chakra.span, + { + className: "chakra-checkbox__label", + ...getLabelProps(), + __css: { + marginStart: spacing2, + ...styles2.label + }, + children + } + ) + ] + } + ); +}); +Checkbox.displayName = "Checkbox"; + +// node_modules/@chakra-ui/control-box/dist/chunk-P2CZ2AGB.mjs +var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1); +var ControlBox = (props) => { + const { + type = "checkbox", + _hover, + _invalid, + _disabled, + _focus, + _checked, + _child = { opacity: 0 }, + _checkedAndChild = { opacity: 1 }, + _checkedAndDisabled, + _checkedAndFocus, + _checkedAndHover, + children, + ...rest + } = props; + const checkedAndDisabled = `input[type=${type}]:checked:disabled + &`; + const checkedAndHover = `input[type=${type}]:checked:hover:not(:disabled) + &`; + const checkedAndFocus = `input[type=${type}]:checked:focus + &`; + const disabled = `input[type=${type}]:disabled + &`; + const focus2 = `input[type=${type}]:focus + &`; + const hover = `input[type=${type}]:hover:not(:disabled):not(:checked) + &`; + const checked = `input[type=${type}]:checked + &, input[type=${type}][aria-checked=mixed] + &`; + const invalid = `input[type=${type}][aria-invalid=true] + &`; + const child = `& > *`; + return (0, import_jsx_runtime72.jsx)( + chakra.div, + { + ...rest, + "aria-hidden": true, + __css: { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + transitionProperty: "common", + transitionDuration: "fast", + flexShrink: 0, + [focus2]: _focus, + [hover]: _hover, + [disabled]: _disabled, + [invalid]: _invalid, + [checkedAndDisabled]: _checkedAndDisabled, + [checkedAndFocus]: _checkedAndFocus, + [checkedAndHover]: _checkedAndHover, + [child]: _child, + [checked]: { + ..._checked, + [child]: _checkedAndChild + } + }, + children + } + ); +}; +ControlBox.displayName = "ControlBox"; + +// node_modules/@chakra-ui/number-utils/dist/index.mjs +function toNumber(value) { + const num = parseFloat(value); + return typeof num !== "number" || Number.isNaN(num) ? 0 : num; +} +function toPrecision2(value, precision) { + let nextValue = toNumber(value); + const scaleFactor = 10 ** (precision != null ? precision : 10); + nextValue = Math.round(nextValue * scaleFactor) / scaleFactor; + return precision ? nextValue.toFixed(precision) : nextValue.toString(); +} +function countDecimalPlaces2(value) { + if (!Number.isFinite(value)) + return 0; + let e = 1; + let p = 0; + while (Math.round(value * e) / e !== value) { + e *= 10; + p += 1; + } + return p; +} +function valueToPercent2(value, min, max) { + return (value - min) * 100 / (max - min); +} +function percentToValue2(percent2, min, max) { + return (max - min) * percent2 + min; +} +function roundValueToStep2(value, from2, step) { + const nextValue = Math.round((value - from2) / step) * step + from2; + const precision = countDecimalPlaces2(step); + return toPrecision2(nextValue, precision); +} +function clampValue2(value, min, max) { + if (value == null) + return value; + if (max < min) { + console.warn("clamp: max cannot be less than min"); + } + return Math.min(Math.max(value, min), max); +} + +// node_modules/@chakra-ui/counter/dist/chunk-AB3TPYVS.mjs +var import_react106 = __toESM(require_react(), 1); +function useCounter(props = {}) { + const { + onChange, + precision: precisionProp, + defaultValue, + value: valueProp, + step: stepProp = 1, + min = Number.MIN_SAFE_INTEGER, + max = Number.MAX_SAFE_INTEGER, + keepWithinRange = true + } = props; + const onChangeProp = useCallbackRef(onChange); + const [valueState, setValue] = (0, import_react106.useState)(() => { + var _a8; + if (defaultValue == null) + return ""; + return (_a8 = cast2(defaultValue, stepProp, precisionProp)) != null ? _a8 : ""; + }); + const isControlled = typeof valueProp !== "undefined"; + const value = isControlled ? valueProp : valueState; + const decimalPlaces = getDecimalPlaces(parse4(value), stepProp); + const precision = precisionProp != null ? precisionProp : decimalPlaces; + const update = (0, import_react106.useCallback)( + (next2) => { + if (next2 === value) + return; + if (!isControlled) { + setValue(next2.toString()); + } + onChangeProp == null ? void 0 : onChangeProp(next2.toString(), parse4(next2)); + }, + [onChangeProp, isControlled, value] + ); + const clamp2 = (0, import_react106.useCallback)( + (value2) => { + let nextValue = value2; + if (keepWithinRange) { + nextValue = clampValue2(nextValue, min, max); + } + return toPrecision2(nextValue, precision); + }, + [precision, keepWithinRange, max, min] + ); + const increment = (0, import_react106.useCallback)( + (step = stepProp) => { + let next2; + if (value === "") { + next2 = parse4(step); + } else { + next2 = parse4(value) + step; + } + next2 = clamp2(next2); + update(next2); + }, + [clamp2, stepProp, update, value] + ); + const decrement = (0, import_react106.useCallback)( + (step = stepProp) => { + let next2; + if (value === "") { + next2 = parse4(-step); + } else { + next2 = parse4(value) - step; + } + next2 = clamp2(next2); + update(next2); + }, + [clamp2, stepProp, update, value] + ); + const reset = (0, import_react106.useCallback)(() => { + var _a8; + let next2; + if (defaultValue == null) { + next2 = ""; + } else { + next2 = (_a8 = cast2(defaultValue, stepProp, precisionProp)) != null ? _a8 : min; + } + update(next2); + }, [defaultValue, precisionProp, stepProp, update, min]); + const castValue = (0, import_react106.useCallback)( + (value2) => { + var _a8; + const nextValue = (_a8 = cast2(value2, stepProp, precision)) != null ? _a8 : min; + update(nextValue); + }, + [precision, stepProp, update, min] + ); + const valueAsNumber = parse4(value); + const isOutOfRange = valueAsNumber > max || valueAsNumber < min; + const isAtMax = valueAsNumber === max; + const isAtMin = valueAsNumber === min; + return { + isOutOfRange, + isAtMax, + isAtMin, + precision, + value, + valueAsNumber, + update, + reset, + increment, + decrement, + clamp: clamp2, + cast: castValue, + setValue + }; +} +function parse4(value) { + return parseFloat(value.toString().replace(/[^\w.-]+/g, "")); +} +function getDecimalPlaces(value, step) { + return Math.max(countDecimalPlaces2(step), countDecimalPlaces2(value)); +} +function cast2(value, step, precision) { + const parsedValue = parse4(value); + if (Number.isNaN(parsedValue)) + return void 0; + const decimalPlaces = getDecimalPlaces(parsedValue, step); + return toPrecision2(parsedValue, precision != null ? precision : decimalPlaces); +} + +// node_modules/@chakra-ui/editable/dist/chunk-WYY72ITE.mjs +var [EditableStylesProvider, useEditableStyles] = createContext2({ + name: `EditableStylesContext`, + errorMessage: `useEditableStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var [EditableProvider, useEditableContext] = createContext2({ + name: "EditableContext", + errorMessage: "useEditableContext: context is undefined. Seems you forgot to wrap the editable components in ``" +}); + +// node_modules/@chakra-ui/editable/dist/chunk-47M7OZ3U.mjs +function useEditableState() { + const { isEditing, onSubmit, onCancel, onEdit, isDisabled: isDisabled3 } = useEditableContext(); + return { + isEditing, + onSubmit, + onCancel, + onEdit, + isDisabled: isDisabled3 + }; +} + +// node_modules/@chakra-ui/editable/dist/chunk-6XCKNNTK.mjs +var commonStyles = { + fontSize: "inherit", + fontWeight: "inherit", + textAlign: "inherit", + bg: "transparent" +}; + +// node_modules/@chakra-ui/editable/dist/chunk-7XO4TBDN.mjs +var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1); +var EditableInput = forwardRef3( + function EditableInput2(props, ref) { + const { getInputProps } = useEditableContext(); + const styles2 = useEditableStyles(); + const inputProps = getInputProps(props, ref); + const _className = cx("chakra-editable__input", props.className); + return (0, import_jsx_runtime73.jsx)( + chakra.input, + { + ...inputProps, + __css: { + outline: 0, + ...commonStyles, + ...styles2.input + }, + className: _className + } + ); + } +); +EditableInput.displayName = "EditableInput"; + +// node_modules/@chakra-ui/editable/dist/chunk-USE7AZZJ.mjs +var import_jsx_runtime74 = __toESM(require_jsx_runtime(), 1); +var EditablePreview = forwardRef3( + function EditablePreview2(props, ref) { + const { getPreviewProps } = useEditableContext(); + const styles2 = useEditableStyles(); + const previewProps = getPreviewProps(props, ref); + const _className = cx("chakra-editable__preview", props.className); + return (0, import_jsx_runtime74.jsx)( + chakra.span, + { + ...previewProps, + __css: { + cursor: "text", + display: "inline-block", + ...commonStyles, + ...styles2.preview + }, + className: _className + } + ); + } +); +EditablePreview.displayName = "EditablePreview"; + +// node_modules/@chakra-ui/editable/dist/chunk-KE6CZM3P.mjs +var import_jsx_runtime75 = __toESM(require_jsx_runtime(), 1); +var EditableTextarea = forwardRef3( + function EditableTextarea2(props, ref) { + const { getTextareaProps } = useEditableContext(); + const styles2 = useEditableStyles(); + const textareaProps = getTextareaProps(props, ref); + const _className = cx("chakra-editable__textarea", props.className); + return (0, import_jsx_runtime75.jsx)( + chakra.textarea, + { + ...textareaProps, + __css: { + outline: 0, + ...commonStyles, + ...styles2.textarea + }, + className: _className + } + ); + } +); +EditableTextarea.displayName = "EditableTextarea"; + +// node_modules/@chakra-ui/react-use-event-listener/dist/index.mjs +var import_react107 = __toESM(require_react(), 1); +function useEventListener(target, event, handler, options) { + const listener = useCallbackRef(handler); + (0, import_react107.useEffect)(() => { + const node3 = typeof target === "function" ? target() : target != null ? target : document; + if (!handler || !node3) + return; + node3.addEventListener(event, listener, options); + return () => { + node3.removeEventListener(event, listener, options); + }; + }, [event, target, options, listener, handler]); + return () => { + const node3 = typeof target === "function" ? target() : target != null ? target : document; + node3 == null ? void 0 : node3.removeEventListener(event, listener, options); + }; +} + +// node_modules/@chakra-ui/react-use-focus-on-pointer-down/dist/index.mjs +function isRefObject3(val) { + return "current" in val; +} +var isDom2 = () => typeof window !== "undefined"; +function getPlatform() { + var _a8; + const agent = navigator.userAgentData; + return (_a8 = agent == null ? void 0 : agent.platform) != null ? _a8 : navigator.platform; +} +var vn = (v) => isDom2() && v.test(navigator.vendor); +var pt = (v) => isDom2() && v.test(getPlatform()); +var isApple = () => pt(/mac|iphone|ipad|ipod/i); +var isSafari = () => isApple() && vn(/apple/i); +function useFocusOnPointerDown(props) { + const { ref, elements, enabled } = props; + const doc = () => { + var _a8, _b5; + return (_b5 = (_a8 = ref.current) == null ? void 0 : _a8.ownerDocument) != null ? _b5 : document; + }; + useEventListener(doc, "pointerdown", (event) => { + if (!isSafari() || !enabled) + return; + const target = event.target; + const els = elements != null ? elements : [ref]; + const isValidTarget = els.some((elementOrRef) => { + const el = isRefObject3(elementOrRef) ? elementOrRef.current : elementOrRef; + return (el == null ? void 0 : el.contains(target)) || el === target; + }); + if (doc().activeElement !== target && isValidTarget) { + event.preventDefault(); + target.focus(); + } + }); +} + +// node_modules/@chakra-ui/editable/dist/chunk-TXN5ELBN.mjs +var import_react108 = __toESM(require_react(), 1); +function contains2(parent, child) { + if (!parent) + return false; + return parent === child || parent.contains(child); +} +function useEditable(props = {}) { + const { + onChange: onChangeProp, + onCancel: onCancelProp, + onSubmit: onSubmitProp, + onBlur: onBlurProp, + value: valueProp, + isDisabled: isDisabled3, + defaultValue, + startWithEditView, + isPreviewFocusable = true, + submitOnBlur = true, + selectAllOnFocus = true, + placeholder, + onEdit: onEditCallback, + finalFocusRef, + ...htmlProps + } = props; + const onEditProp = useCallbackRef(onEditCallback); + const defaultIsEditing = Boolean(startWithEditView && !isDisabled3); + const [isEditing, setIsEditing] = (0, import_react108.useState)(defaultIsEditing); + const [value, setValue] = useControllableState({ + defaultValue: defaultValue || "", + value: valueProp, + onChange: onChangeProp + }); + const [prevValue, setPrevValue] = (0, import_react108.useState)(value); + const inputRef = (0, import_react108.useRef)(null); + const previewRef = (0, import_react108.useRef)(null); + const editButtonRef = (0, import_react108.useRef)(null); + const cancelButtonRef = (0, import_react108.useRef)(null); + const submitButtonRef = (0, import_react108.useRef)(null); + useFocusOnPointerDown({ + ref: inputRef, + enabled: isEditing, + elements: [cancelButtonRef, submitButtonRef] + }); + const isInteractive = !isEditing && !isDisabled3; + useSafeLayoutEffect(() => { + var _a8, _b5; + if (isEditing) { + (_a8 = inputRef.current) == null ? void 0 : _a8.focus(); + if (selectAllOnFocus) + (_b5 = inputRef.current) == null ? void 0 : _b5.select(); + } + }, []); + useUpdateEffect(() => { + var _a8, _b5, _c3, _d3; + if (!isEditing) { + if (finalFocusRef) { + (_a8 = finalFocusRef.current) == null ? void 0 : _a8.focus(); + } else { + (_b5 = editButtonRef.current) == null ? void 0 : _b5.focus(); + } + return; + } + (_c3 = inputRef.current) == null ? void 0 : _c3.focus(); + if (selectAllOnFocus) { + (_d3 = inputRef.current) == null ? void 0 : _d3.select(); + } + onEditProp == null ? void 0 : onEditProp(); + }, [isEditing, onEditProp, selectAllOnFocus]); + const onEdit = (0, import_react108.useCallback)(() => { + if (isInteractive) { + setIsEditing(true); + } + }, [isInteractive]); + const onUpdatePrevValue = (0, import_react108.useCallback)(() => { + setPrevValue(value); + }, [value]); + const onCancel = (0, import_react108.useCallback)(() => { + setIsEditing(false); + setValue(prevValue); + onCancelProp == null ? void 0 : onCancelProp(prevValue); + onBlurProp == null ? void 0 : onBlurProp(prevValue); + }, [onCancelProp, onBlurProp, setValue, prevValue]); + const onSubmit = (0, import_react108.useCallback)(() => { + setIsEditing(false); + setPrevValue(value); + onSubmitProp == null ? void 0 : onSubmitProp(value); + onBlurProp == null ? void 0 : onBlurProp(prevValue); + }, [value, onSubmitProp, onBlurProp, prevValue]); + (0, import_react108.useEffect)(() => { + if (isEditing) + return; + const inputEl = inputRef.current; + if ((inputEl == null ? void 0 : inputEl.ownerDocument.activeElement) === inputEl) { + inputEl == null ? void 0 : inputEl.blur(); + } + }, [isEditing]); + const onChange = (0, import_react108.useCallback)( + (event) => { + setValue(event.currentTarget.value); + }, + [setValue] + ); + const onKeyDown = (0, import_react108.useCallback)( + (event) => { + const eventKey = event.key; + const keyMap = { + Escape: onCancel, + Enter: (event2) => { + if (!event2.shiftKey && !event2.metaKey) { + onSubmit(); + } + } + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + action(event); + } + }, + [onCancel, onSubmit] + ); + const onKeyDownWithoutSubmit = (0, import_react108.useCallback)( + (event) => { + const eventKey = event.key; + const keyMap = { + Escape: onCancel + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + action(event); + } + }, + [onCancel] + ); + const isValueEmpty = value.length === 0; + const onBlur3 = (0, import_react108.useCallback)( + (event) => { + var _a8; + if (!isEditing) + return; + const doc = event.currentTarget.ownerDocument; + const relatedTarget = (_a8 = event.relatedTarget) != null ? _a8 : doc.activeElement; + const targetIsCancel = contains2(cancelButtonRef.current, relatedTarget); + const targetIsSubmit = contains2(submitButtonRef.current, relatedTarget); + const isValidBlur = !targetIsCancel && !targetIsSubmit; + if (isValidBlur) { + if (submitOnBlur) { + onSubmit(); + } else { + onCancel(); + } + } + }, + [submitOnBlur, onSubmit, onCancel, isEditing] + ); + const getPreviewProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => { + const tabIndex = isInteractive && isPreviewFocusable ? 0 : void 0; + return { + ...props2, + ref: mergeRefs2(ref, previewRef), + children: isValueEmpty ? placeholder : value, + hidden: isEditing, + "aria-disabled": ariaAttr(isDisabled3), + tabIndex, + onFocus: callAllHandlers(props2.onFocus, onEdit, onUpdatePrevValue) + }; + }, + [ + isDisabled3, + isEditing, + isInteractive, + isPreviewFocusable, + isValueEmpty, + onEdit, + onUpdatePrevValue, + placeholder, + value + ] + ); + const getInputProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + hidden: !isEditing, + placeholder, + ref: mergeRefs2(ref, inputRef), + disabled: isDisabled3, + "aria-disabled": ariaAttr(isDisabled3), + value, + onBlur: callAllHandlers(props2.onBlur, onBlur3), + onChange: callAllHandlers(props2.onChange, onChange), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown), + onFocus: callAllHandlers(props2.onFocus, onUpdatePrevValue) + }), + [ + isDisabled3, + isEditing, + onBlur3, + onChange, + onKeyDown, + onUpdatePrevValue, + placeholder, + value + ] + ); + const getTextareaProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + hidden: !isEditing, + placeholder, + ref: mergeRefs2(ref, inputRef), + disabled: isDisabled3, + "aria-disabled": ariaAttr(isDisabled3), + value, + onBlur: callAllHandlers(props2.onBlur, onBlur3), + onChange: callAllHandlers(props2.onChange, onChange), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDownWithoutSubmit), + onFocus: callAllHandlers(props2.onFocus, onUpdatePrevValue) + }), + [ + isDisabled3, + isEditing, + onBlur3, + onChange, + onKeyDownWithoutSubmit, + onUpdatePrevValue, + placeholder, + value + ] + ); + const getEditButtonProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => ({ + "aria-label": "Edit", + ...props2, + type: "button", + onClick: callAllHandlers(props2.onClick, onEdit), + ref: mergeRefs2(ref, editButtonRef), + disabled: isDisabled3 + }), + [onEdit, isDisabled3] + ); + const getSubmitButtonProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + "aria-label": "Submit", + ref: mergeRefs2(submitButtonRef, ref), + type: "button", + onClick: callAllHandlers(props2.onClick, onSubmit), + disabled: isDisabled3 + }), + [onSubmit, isDisabled3] + ); + const getCancelButtonProps = (0, import_react108.useCallback)( + (props2 = {}, ref = null) => ({ + "aria-label": "Cancel", + id: "cancel", + ...props2, + ref: mergeRefs2(cancelButtonRef, ref), + type: "button", + onClick: callAllHandlers(props2.onClick, onCancel), + disabled: isDisabled3 + }), + [onCancel, isDisabled3] + ); + return { + isEditing, + isDisabled: isDisabled3, + isValueEmpty, + value, + onEdit, + onCancel, + onSubmit, + getPreviewProps, + getInputProps, + getTextareaProps, + getEditButtonProps, + getSubmitButtonProps, + getCancelButtonProps, + htmlProps + }; +} + +// node_modules/@chakra-ui/editable/dist/chunk-ROCN3PRT.mjs +var import_jsx_runtime76 = __toESM(require_jsx_runtime(), 1); +var Editable = forwardRef3(function Editable2(props, ref) { + const styles2 = useMultiStyleConfig("Editable", props); + const ownProps = omitThemingProps(props); + const { htmlProps, ...context } = useEditable(ownProps); + const { isEditing, onSubmit, onCancel, onEdit } = context; + const _className = cx("chakra-editable", props.className); + const children = runIfFn(props.children, { + isEditing, + onSubmit, + onCancel, + onEdit + }); + return (0, import_jsx_runtime76.jsx)(EditableProvider, { value: context, children: (0, import_jsx_runtime76.jsx)(EditableStylesProvider, { value: styles2, children: (0, import_jsx_runtime76.jsx)( + chakra.div, + { + ref, + ...htmlProps, + className: _className, + children + } + ) }) }); +}); +Editable.displayName = "Editable"; + +// node_modules/@chakra-ui/editable/dist/chunk-OKWGAP7R.mjs +function useEditableControls() { + const { + isEditing, + getEditButtonProps, + getCancelButtonProps, + getSubmitButtonProps + } = useEditableContext(); + return { + isEditing, + getEditButtonProps, + getCancelButtonProps, + getSubmitButtonProps + }; +} + +// node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +function _objectWithoutPropertiesLoose(r2, e) { + if (null == r2) return {}; + var t2 = {}; + for (var n in r2) if ({}.hasOwnProperty.call(r2, n)) { + if (e.indexOf(n) >= 0) continue; + t2[n] = r2[n]; + } + return t2; +} + +// node_modules/react-focus-lock/dist/es2015/Combination.js +var React17 = __toESM(require_react()); + +// node_modules/react-focus-lock/dist/es2015/Lock.js +var React14 = __toESM(require_react()); +var import_prop_types2 = __toESM(require_prop_types()); + +// node_modules/focus-lock/dist/es2015/constants.js +var FOCUS_GROUP = "data-focus-lock"; +var FOCUS_DISABLED = "data-focus-lock-disabled"; +var FOCUS_ALLOW = "data-no-focus-lock"; +var FOCUS_AUTO = "data-autofocus-inside"; +var FOCUS_NO_AUTOFOCUS = "data-no-autofocus"; + +// node_modules/use-callback-ref/dist/es2015/assignRef.js +function assignRef3(ref, value) { + if (typeof ref === "function") { + ref(value); + } else if (ref) { + ref.current = value; + } + return ref; +} + +// node_modules/use-callback-ref/dist/es2015/useRef.js +var import_react109 = __toESM(require_react()); +function useCallbackRef2(initialValue, callback) { + var ref = (0, import_react109.useState)(function() { + return { + // value + value: initialValue, + // 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; +} + +// node_modules/use-callback-ref/dist/es2015/useMergeRef.js +var React9 = __toESM(require_react()); +var useIsomorphicLayoutEffect2 = typeof window !== "undefined" ? React9.useLayoutEffect : React9.useEffect; +var currentValues = /* @__PURE__ */ new WeakMap(); +function useMergeRefs2(refs, defaultValue) { + var callbackRef = useCallbackRef2(defaultValue || null, function(newValue) { + return refs.forEach(function(ref) { + return assignRef3(ref, newValue); + }); + }); + useIsomorphicLayoutEffect2(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)) { + assignRef3(ref, null); + } + }); + nextRefs_1.forEach(function(ref) { + if (!prevRefs_1.has(ref)) { + assignRef3(ref, current_1); + } + }); + } + currentValues.set(callbackRef, refs); + }, [refs]); + return callbackRef; +} + +// node_modules/react-focus-lock/dist/es2015/FocusGuard.js +var React10 = __toESM(require_react()); +var import_prop_types = __toESM(require_prop_types()); +var hiddenGuard = { + width: "1px", + height: "0px", + padding: 0, + overflow: "hidden", + position: "fixed", + top: "1px", + left: "1px" +}; +var InFocusGuard = function InFocusGuard2(_ref2) { + var _ref$children = _ref2.children, children = _ref$children === void 0 ? null : _ref$children; + return React10.createElement(React10.Fragment, null, React10.createElement("div", { + key: "guard-first", + "data-focus-guard": true, + "data-focus-auto-guard": true, + style: hiddenGuard + }), children, children && React10.createElement("div", { + key: "guard-last", + "data-focus-guard": true, + "data-focus-auto-guard": true, + style: hiddenGuard + })); +}; +InFocusGuard.propTypes = true ? { + children: import_prop_types.default.node +} : {}; + +// node_modules/tslib/tslib.es6.mjs +var __assign = function() { + __assign = Object.assign || function __assign2(t2) { + 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)) t2[p] = s[p]; + } + return t2; + }; + return __assign.apply(this, arguments); +}; +function __rest(s, e) { + var t2 = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t2[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])) + t2[p[i]] = s[p[i]]; + } + return t2; +} +function __spreadArray(to, from2, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from2.length, ar; i < l; i++) { + if (ar || !(i in from2)) { + if (!ar) ar = Array.prototype.slice.call(from2, 0, i); + ar[i] = from2[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from2)); +} + +// node_modules/use-sidecar/dist/es2015/hoc.js +var React11 = __toESM(require_react()); + +// node_modules/use-sidecar/dist/es2015/hook.js +var import_react110 = __toESM(require_react()); + +// node_modules/use-sidecar/dist/es2015/medium.js +function ItoI(a) { + return a; +} +function innerCreateMedium(defaults2, middleware2) { + if (middleware2 === void 0) { + middleware2 = 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 defaults2; + }, + useMedium: function(data) { + var item = middleware2(data, assigned); + buffer.push(item); + return function() { + buffer = buffer.filter(function(x) { + return x !== item; + }); + }; + }, + assignSyncMedium: function(cb) { + assigned = true; + while (buffer.length) { + var cbs = buffer; + buffer = []; + cbs.forEach(cb); + } + buffer = { + push: function(x) { + return cb(x); + }, + filter: function() { + return buffer; + } + }; + }, + assignMedium: function(cb) { + assigned = true; + var pendingQueue = []; + if (buffer.length) { + var cbs = buffer; + buffer = []; + cbs.forEach(cb); + pendingQueue = buffer; + } + var executeQueue = function() { + var cbs2 = pendingQueue; + pendingQueue = []; + cbs2.forEach(cb); + }; + var cycle = function() { + return Promise.resolve().then(executeQueue); + }; + cycle(); + buffer = { + push: function(x) { + pendingQueue.push(x); + cycle(); + }, + filter: function(filter4) { + pendingQueue = pendingQueue.filter(filter4); + return buffer; + } + }; + } + }; + return medium; +} +function createMedium(defaults2, middleware2) { + if (middleware2 === void 0) { + middleware2 = ItoI; + } + return innerCreateMedium(defaults2, middleware2); +} +function createSidecarMedium(options) { + if (options === void 0) { + options = {}; + } + var medium = innerCreateMedium(null); + medium.options = __assign({ async: true, ssr: false }, options); + return medium; +} + +// node_modules/use-sidecar/dist/es2015/renderProp.js +var React12 = __toESM(require_react()); +var import_react111 = __toESM(require_react()); + +// node_modules/use-sidecar/dist/es2015/exports.js +var React13 = __toESM(require_react()); +var SideCar = function(_a8) { + var sideCar2 = _a8.sideCar, rest = __rest(_a8, ["sideCar"]); + if (!sideCar2) { + throw new Error("Sidecar: please provide `sideCar` property to import the right car"); + } + var Target = sideCar2.read(); + if (!Target) { + throw new Error("Sidecar medium not found"); + } + return React13.createElement(Target, __assign({}, rest)); +}; +SideCar.isSideCarExport = true; +function exportSidecar(medium, exported) { + medium.useMedium(exported); + return SideCar; +} + +// node_modules/react-focus-lock/dist/es2015/medium.js +var mediumFocus = createMedium({}, function(_ref2) { + var target = _ref2.target, currentTarget = _ref2.currentTarget; + return { + target, + currentTarget + }; +}); +var mediumBlur = createMedium(); +var mediumEffect = createMedium(); +var mediumSidecar = createSidecarMedium({ + async: true, + ssr: typeof document !== "undefined" +}); + +// node_modules/react-focus-lock/dist/es2015/scope.js +var import_react112 = __toESM(require_react()); +var focusScope = (0, import_react112.createContext)(void 0); + +// node_modules/react-focus-lock/dist/es2015/Lock.js +var emptyArray = []; +var FocusLock = React14.forwardRef(function FocusLockUI(props, parentRef) { + var _extends2; + var _React$useState = React14.useState(), realObserved = _React$useState[0], setObserved = _React$useState[1]; + var observed = React14.useRef(); + var isActive = React14.useRef(false); + var originalFocusedElement = React14.useRef(null); + var _React$useState2 = React14.useState({}), update = _React$useState2[1]; + var children = props.children, _props$disabled = props.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, _props$noFocusGuards = props.noFocusGuards, noFocusGuards = _props$noFocusGuards === void 0 ? false : _props$noFocusGuards, _props$persistentFocu = props.persistentFocus, persistentFocus = _props$persistentFocu === void 0 ? false : _props$persistentFocu, _props$crossFrame = props.crossFrame, crossFrame = _props$crossFrame === void 0 ? true : _props$crossFrame, _props$autoFocus = props.autoFocus, autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus, allowTextSelection = props.allowTextSelection, group = props.group, className = props.className, whiteList = props.whiteList, hasPositiveIndices = props.hasPositiveIndices, _props$shards = props.shards, shards = _props$shards === void 0 ? emptyArray : _props$shards, _props$as = props.as, Container3 = _props$as === void 0 ? "div" : _props$as, _props$lockProps = props.lockProps, containerProps = _props$lockProps === void 0 ? {} : _props$lockProps, SideCar2 = props.sideCar, _props$returnFocus = props.returnFocus, shouldReturnFocus = _props$returnFocus === void 0 ? false : _props$returnFocus, focusOptions = props.focusOptions, onActivationCallback = props.onActivation, onDeactivationCallback = props.onDeactivation; + var _React$useState3 = React14.useState({}), id3 = _React$useState3[0]; + var onActivation = React14.useCallback(function(_ref2) { + var captureFocusRestore2 = _ref2.captureFocusRestore; + if (!originalFocusedElement.current) { + var _document; + var activeElement = (_document = document) == null ? void 0 : _document.activeElement; + originalFocusedElement.current = activeElement; + if (activeElement !== document.body) { + originalFocusedElement.current = captureFocusRestore2(activeElement); + } + } + if (observed.current && onActivationCallback) { + onActivationCallback(observed.current); + } + isActive.current = true; + update(); + }, [onActivationCallback]); + var onDeactivation = React14.useCallback(function() { + isActive.current = false; + if (onDeactivationCallback) { + onDeactivationCallback(observed.current); + } + update(); + }, [onDeactivationCallback]); + var returnFocus = React14.useCallback(function(allowDefer) { + var focusRestore = originalFocusedElement.current; + if (focusRestore) { + var returnFocusTo = (typeof focusRestore === "function" ? focusRestore() : focusRestore) || document.body; + var howToReturnFocus = typeof shouldReturnFocus === "function" ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus; + if (howToReturnFocus) { + var returnFocusOptions = typeof howToReturnFocus === "object" ? howToReturnFocus : void 0; + originalFocusedElement.current = null; + if (allowDefer) { + Promise.resolve().then(function() { + return returnFocusTo.focus(returnFocusOptions); + }); + } else { + returnFocusTo.focus(returnFocusOptions); + } + } + } + }, [shouldReturnFocus]); + var onFocus3 = React14.useCallback(function(event) { + if (isActive.current) { + mediumFocus.useMedium(event); + } + }, []); + var onBlur3 = mediumBlur.useMedium; + var setObserveNode = React14.useCallback(function(newObserved) { + if (observed.current !== newObserved) { + observed.current = newObserved; + setObserved(newObserved); + } + }, []); + if (true) { + if (typeof allowTextSelection !== "undefined") { + console.warn("React-Focus-Lock: allowTextSelection is deprecated and enabled by default"); + } + React14.useEffect(function() { + if (!observed.current && typeof Container3 !== "string") { + console.error("FocusLock: could not obtain ref to internal node"); + } + }, []); + } + var lockProps = _extends((_extends2 = {}, _extends2[FOCUS_DISABLED] = disabled && "disabled", _extends2[FOCUS_GROUP] = group, _extends2), containerProps); + var hasLeadingGuards = noFocusGuards !== true; + var hasTailingGuards = hasLeadingGuards && noFocusGuards !== "tail"; + var mergedRef = useMergeRefs2([parentRef, setObserveNode]); + var focusScopeValue = React14.useMemo(function() { + return { + observed, + shards, + enabled: !disabled, + active: isActive.current + }; + }, [disabled, isActive.current, shards, realObserved]); + return React14.createElement(React14.Fragment, null, hasLeadingGuards && [ + React14.createElement("div", { + key: "guard-first", + "data-focus-guard": true, + tabIndex: disabled ? -1 : 0, + style: hiddenGuard + }), + hasPositiveIndices ? React14.createElement("div", { + key: "guard-nearest", + "data-focus-guard": true, + tabIndex: disabled ? -1 : 1, + style: hiddenGuard + }) : null + ], !disabled && React14.createElement(SideCar2, { + id: id3, + sideCar: mediumSidecar, + observed: realObserved, + disabled, + persistentFocus, + crossFrame, + autoFocus, + whiteList, + shards, + onActivation, + onDeactivation, + returnFocus, + focusOptions + }), React14.createElement(Container3, _extends({ + ref: mergedRef + }, lockProps, { + className, + onBlur: onBlur3, + onFocus: onFocus3 + }), React14.createElement(focusScope.Provider, { + value: focusScopeValue + }, children)), hasTailingGuards && React14.createElement("div", { + "data-focus-guard": true, + tabIndex: disabled ? -1 : 0, + style: hiddenGuard + })); +}); +FocusLock.propTypes = true ? { + children: import_prop_types2.node, + disabled: import_prop_types2.bool, + returnFocus: (0, import_prop_types2.oneOfType)([import_prop_types2.bool, import_prop_types2.object, import_prop_types2.func]), + focusOptions: import_prop_types2.object, + noFocusGuards: import_prop_types2.bool, + hasPositiveIndices: import_prop_types2.bool, + allowTextSelection: import_prop_types2.bool, + autoFocus: import_prop_types2.bool, + persistentFocus: import_prop_types2.bool, + crossFrame: import_prop_types2.bool, + group: import_prop_types2.string, + className: import_prop_types2.string, + whiteList: import_prop_types2.func, + shards: (0, import_prop_types2.arrayOf)(import_prop_types2.any), + as: (0, import_prop_types2.oneOfType)([import_prop_types2.string, import_prop_types2.func, import_prop_types2.object]), + lockProps: import_prop_types2.object, + onActivation: import_prop_types2.func, + onDeactivation: import_prop_types2.func, + sideCar: import_prop_types2.any.isRequired +} : {}; +var Lock_default = FocusLock; + +// node_modules/react-focus-lock/dist/es2015/Trap.js +var React16 = __toESM(require_react()); +var import_prop_types3 = __toESM(require_prop_types()); + +// node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +function _setPrototypeOf(t2, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t3, e2) { + return t3.__proto__ = e2, t3; + }, _setPrototypeOf(t2, e); +} + +// node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +function _inheritsLoose(t2, o) { + t2.prototype = Object.create(o.prototype), t2.prototype.constructor = t2, _setPrototypeOf(t2, o); +} + +// node_modules/@babel/runtime/helpers/esm/typeof.js +function _typeof(o) { + "@babel/helpers - typeof"; + return _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; + }, _typeof(o); +} + +// node_modules/@babel/runtime/helpers/esm/toPrimitive.js +function toPrimitive(t2, r2) { + if ("object" != _typeof(t2) || !t2) return t2; + var e = t2[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t2, r2 || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r2 ? String : Number)(t2); +} + +// node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +function toPropertyKey(t2) { + var i = toPrimitive(t2, "string"); + return "symbol" == _typeof(i) ? i : i + ""; +} + +// node_modules/@babel/runtime/helpers/esm/defineProperty.js +function _defineProperty(e, r2, t2) { + return (r2 = toPropertyKey(r2)) in e ? Object.defineProperty(e, r2, { + value: t2, + enumerable: true, + configurable: true, + writable: true + }) : e[r2] = t2, e; +} + +// node_modules/react-clientside-effect/lib/index.es.js +var import_react113 = __toESM(require_react()); +function withSideEffect(reducePropsToState2, handleStateChangeOnClient2) { + if (true) { + if (typeof reducePropsToState2 !== "function") { + throw new Error("Expected reducePropsToState to be a function."); + } + if (typeof handleStateChangeOnClient2 !== "function") { + throw new Error("Expected handleStateChangeOnClient to be a function."); + } + } + function getDisplayName(WrappedComponent) { + return WrappedComponent.displayName || WrappedComponent.name || "Component"; + } + return function wrap5(WrappedComponent) { + if (true) { + if (typeof WrappedComponent !== "function") { + throw new Error("Expected WrappedComponent to be a React component."); + } + } + var mountedInstances = []; + var state2; + function emitChange() { + state2 = reducePropsToState2(mountedInstances.map(function(instance) { + return instance.props; + })); + handleStateChangeOnClient2(state2); + } + var SideEffect = function(_PureComponent) { + _inheritsLoose(SideEffect2, _PureComponent); + function SideEffect2() { + return _PureComponent.apply(this, arguments) || this; + } + SideEffect2.peek = function peek2() { + return state2; + }; + var _proto = SideEffect2.prototype; + _proto.componentDidMount = function componentDidMount() { + mountedInstances.push(this); + emitChange(); + }; + _proto.componentDidUpdate = function componentDidUpdate() { + emitChange(); + }; + _proto.componentWillUnmount = function componentWillUnmount() { + var index = mountedInstances.indexOf(this); + mountedInstances.splice(index, 1); + emitChange(); + }; + _proto.render = function render() { + return import_react113.default.createElement(WrappedComponent, this.props); + }; + return SideEffect2; + }(import_react113.PureComponent); + _defineProperty(SideEffect, "displayName", "SideEffect(" + getDisplayName(WrappedComponent) + ")"); + return SideEffect; + }; +} +var index_es_default = withSideEffect; + +// node_modules/focus-lock/dist/es2015/utils/array.js +var toArray = function(a) { + var ret = Array(a.length); + for (var i = 0; i < a.length; ++i) { + ret[i] = a[i]; + } + return ret; +}; +var asArray = function(a) { + return Array.isArray(a) ? a : [a]; +}; +var getFirst = function(a) { + return Array.isArray(a) ? a[0] : a; +}; + +// node_modules/focus-lock/dist/es2015/utils/is.js +var isElementHidden = function(node3) { + if (node3.nodeType !== Node.ELEMENT_NODE) { + return false; + } + var computedStyle = window.getComputedStyle(node3, null); + if (!computedStyle || !computedStyle.getPropertyValue) { + return false; + } + return computedStyle.getPropertyValue("display") === "none" || computedStyle.getPropertyValue("visibility") === "hidden"; +}; +var getParentNode = function(node3) { + return node3.parentNode && node3.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + node3.parentNode.host + ) : node3.parentNode; +}; +var isTopNode = function(node3) { + return node3 === document || node3 && node3.nodeType === Node.DOCUMENT_NODE; +}; +var isInert = function(node3) { + return node3.hasAttribute("inert"); +}; +var isVisibleUncached = function(node3, checkParent) { + return !node3 || isTopNode(node3) || !isElementHidden(node3) && !isInert(node3) && checkParent(getParentNode(node3)); +}; +var isVisibleCached = function(visibilityCache, node3) { + var cached = visibilityCache.get(node3); + if (cached !== void 0) { + return cached; + } + var result = isVisibleUncached(node3, isVisibleCached.bind(void 0, visibilityCache)); + visibilityCache.set(node3, result); + return result; +}; +var isAutoFocusAllowedUncached = function(node3, checkParent) { + return node3 && !isTopNode(node3) ? isAutoFocusAllowed(node3) ? checkParent(getParentNode(node3)) : false : true; +}; +var isAutoFocusAllowedCached = function(cache, node3) { + var cached = cache.get(node3); + if (cached !== void 0) { + return cached; + } + var result = isAutoFocusAllowedUncached(node3, isAutoFocusAllowedCached.bind(void 0, cache)); + cache.set(node3, result); + return result; +}; +var getDataset = function(node3) { + return node3.dataset; +}; +var isHTMLButtonElement = function(node3) { + return node3.tagName === "BUTTON"; +}; +var isHTMLInputElement = function(node3) { + return node3.tagName === "INPUT"; +}; +var isRadioElement = function(node3) { + return isHTMLInputElement(node3) && node3.type === "radio"; +}; +var notHiddenInput = function(node3) { + return !((isHTMLInputElement(node3) || isHTMLButtonElement(node3)) && (node3.type === "hidden" || node3.disabled)); +}; +var isAutoFocusAllowed = function(node3) { + var attribute = node3.getAttribute(FOCUS_NO_AUTOFOCUS); + return ![true, "true", ""].includes(attribute); +}; +var isGuard = function(node3) { + var _a8; + return Boolean(node3 && ((_a8 = getDataset(node3)) === null || _a8 === void 0 ? void 0 : _a8.focusGuard)); +}; +var isNotAGuard = function(node3) { + return !isGuard(node3); +}; +var isDefined2 = function(x) { + return Boolean(x); +}; + +// node_modules/focus-lock/dist/es2015/utils/tabOrder.js +var tabSort = function(a, b) { + var aTab = Math.max(0, a.tabIndex); + var bTab = Math.max(0, b.tabIndex); + var tabDiff = aTab - bTab; + var indexDiff = a.index - b.index; + if (tabDiff) { + if (!aTab) { + return 1; + } + if (!bTab) { + return -1; + } + } + return tabDiff || indexDiff; +}; +var getTabIndex = function(node3) { + if (node3.tabIndex < 0) { + if (!node3.hasAttribute("tabindex")) { + return 0; + } + } + return node3.tabIndex; +}; +var orderByTabIndex = function(nodes, filterNegative, keepGuards) { + return toArray(nodes).map(function(node3, index) { + var tabIndex = getTabIndex(node3); + return { + node: node3, + index, + tabIndex: keepGuards && tabIndex === -1 ? (node3.dataset || {}).focusGuard ? 0 : -1 : tabIndex + }; + }).filter(function(data) { + return !filterNegative || data.tabIndex >= 0; + }).sort(tabSort); +}; + +// node_modules/focus-lock/dist/es2015/utils/tabbables.js +var tabbables = [ + "button:enabled", + "select:enabled", + "textarea:enabled", + "input:enabled", + // elements with explicit roles will also use explicit tabindex + // '[role="button"]', + "a[href]", + "area[href]", + "summary", + "iframe", + "object", + "embed", + "audio[controls]", + "video[controls]", + "[tabindex]", + "[contenteditable]", + "[autofocus]" +]; + +// node_modules/focus-lock/dist/es2015/utils/tabUtils.js +var queryTabbables = tabbables.join(","); +var queryGuardTabbables = "".concat(queryTabbables, ", [data-focus-guard]"); +var getFocusablesWithShadowDom = function(parent, withGuards) { + return toArray((parent.shadowRoot || parent).children).reduce(function(acc, child) { + return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child)); + }, []); +}; +var getFocusablesWithIFrame = function(parent, withGuards) { + var _a8; + if (parent instanceof HTMLIFrameElement && ((_a8 = parent.contentDocument) === null || _a8 === void 0 ? void 0 : _a8.body)) { + return getFocusables([parent.contentDocument.body], withGuards); + } + return [parent]; +}; +var getFocusables = function(parents, withGuards) { + return parents.reduce(function(acc, parent) { + var _a8; + var focusableWithShadowDom = getFocusablesWithShadowDom(parent, withGuards); + var focusableWithIframes = (_a8 = []).concat.apply(_a8, focusableWithShadowDom.map(function(node3) { + return getFocusablesWithIFrame(node3, withGuards); + })); + return acc.concat( + // add all tabbables inside and within shadow DOMs in DOM order + focusableWithIframes, + // add if node is tabbable itself + parent.parentNode ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function(node3) { + return node3 === parent; + }) : [] + ); + }, []); +}; +var getParentAutofocusables = function(parent) { + var parentFocus = parent.querySelectorAll("[".concat(FOCUS_AUTO, "]")); + return toArray(parentFocus).map(function(node3) { + return getFocusables([node3]); + }).reduce(function(acc, nodes) { + return acc.concat(nodes); + }, []); +}; + +// node_modules/focus-lock/dist/es2015/utils/DOMutils.js +var filterFocusable = function(nodes, visibilityCache) { + return toArray(nodes).filter(function(node3) { + return isVisibleCached(visibilityCache, node3); + }).filter(function(node3) { + return notHiddenInput(node3); + }); +}; +var filterAutoFocusable = function(nodes, cache) { + if (cache === void 0) { + cache = /* @__PURE__ */ new Map(); + } + return toArray(nodes).filter(function(node3) { + return isAutoFocusAllowedCached(cache, node3); + }); +}; +var getTabbableNodes = function(topNodes, visibilityCache, withGuards) { + return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards); +}; +var getFocusableNodes = function(topNodes, visibilityCache) { + return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false); +}; +var parentAutofocusables = function(topNode, visibilityCache) { + return filterFocusable(getParentAutofocusables(topNode), visibilityCache); +}; +var contains3 = function(scope, element) { + if (scope.shadowRoot) { + return contains3(scope.shadowRoot, element); + } else { + if (Object.getPrototypeOf(scope).contains !== void 0 && Object.getPrototypeOf(scope).contains.call(scope, element)) { + return true; + } + return toArray(scope.children).some(function(child) { + var _a8; + if (child instanceof HTMLIFrameElement) { + var iframeBody = (_a8 = child.contentDocument) === null || _a8 === void 0 ? void 0 : _a8.body; + if (iframeBody) { + return contains3(iframeBody, element); + } + return false; + } + return contains3(child, element); + }); + } +}; + +// node_modules/focus-lock/dist/es2015/utils/all-affected.js +var filterNested = function(nodes) { + var contained = /* @__PURE__ */ new Set(); + var l = nodes.length; + for (var i = 0; i < l; i += 1) { + for (var j = i + 1; j < l; j += 1) { + var position3 = nodes[i].compareDocumentPosition(nodes[j]); + if ((position3 & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) { + contained.add(j); + } + if ((position3 & Node.DOCUMENT_POSITION_CONTAINS) > 0) { + contained.add(i); + } + } + } + return nodes.filter(function(_, index) { + return !contained.has(index); + }); +}; +var getTopParent = function(node3) { + return node3.parentNode ? getTopParent(node3.parentNode) : node3; +}; +var getAllAffectedNodes = function(node3) { + var nodes = asArray(node3); + return nodes.filter(Boolean).reduce(function(acc, currentNode) { + var group = currentNode.getAttribute(FOCUS_GROUP); + acc.push.apply(acc, group ? filterNested(toArray(getTopParent(currentNode).querySelectorAll("[".concat(FOCUS_GROUP, '="').concat(group, '"]:not([').concat(FOCUS_DISABLED, '="disabled"])')))) : [currentNode]); + return acc; + }, []); +}; + +// node_modules/focus-lock/dist/es2015/utils/safe.js +var safeProbe = function(cb) { + try { + return cb(); + } catch (e) { + return void 0; + } +}; + +// node_modules/focus-lock/dist/es2015/utils/getActiveElement.js +var getActiveElement2 = function(inDocument) { + if (inDocument === void 0) { + inDocument = document; + } + if (!inDocument || !inDocument.activeElement) { + return void 0; + } + var activeElement = inDocument.activeElement; + return activeElement.shadowRoot ? getActiveElement2(activeElement.shadowRoot) : activeElement instanceof HTMLIFrameElement && safeProbe(function() { + return activeElement.contentWindow.document; + }) ? getActiveElement2(activeElement.contentWindow.document) : activeElement; +}; + +// node_modules/focus-lock/dist/es2015/focusInside.js +var focusInFrame = function(frame3, activeElement) { + return frame3 === activeElement; +}; +var focusInsideIframe = function(topNode, activeElement) { + return Boolean(toArray(topNode.querySelectorAll("iframe")).some(function(node3) { + return focusInFrame(node3, activeElement); + })); +}; +var focusInside = function(topNode, activeElement) { + if (activeElement === void 0) { + activeElement = getActiveElement2(getFirst(topNode).ownerDocument); + } + if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) { + return false; + } + return getAllAffectedNodes(topNode).some(function(node3) { + return contains3(node3, activeElement) || focusInsideIframe(node3, activeElement); + }); +}; + +// node_modules/focus-lock/dist/es2015/focusIsHidden.js +var focusIsHidden = function(inDocument) { + if (inDocument === void 0) { + inDocument = document; + } + var activeElement = getActiveElement2(inDocument); + if (!activeElement) { + return false; + } + return toArray(inDocument.querySelectorAll("[".concat(FOCUS_ALLOW, "]"))).some(function(node3) { + return contains3(node3, activeElement); + }); +}; + +// node_modules/focus-lock/dist/es2015/utils/correctFocus.js +var findSelectedRadio = function(node3, nodes) { + return nodes.filter(isRadioElement).filter(function(el) { + return el.name === node3.name; + }).filter(function(el) { + return el.checked; + })[0] || node3; +}; +var correctNode = function(node3, nodes) { + if (isRadioElement(node3) && node3.name) { + return findSelectedRadio(node3, nodes); + } + return node3; +}; +var correctNodes = function(nodes) { + var resultSet = /* @__PURE__ */ new Set(); + nodes.forEach(function(node3) { + return resultSet.add(correctNode(node3, nodes)); + }); + return nodes.filter(function(node3) { + return resultSet.has(node3); + }); +}; + +// node_modules/focus-lock/dist/es2015/utils/firstFocus.js +var pickFirstFocus = function(nodes) { + if (nodes[0] && nodes.length > 1) { + return correctNode(nodes[0], nodes); + } + return nodes[0]; +}; +var pickFocusable = function(nodes, node3) { + return nodes.indexOf(correctNode(node3, nodes)); +}; + +// node_modules/focus-lock/dist/es2015/solver.js +var NEW_FOCUS = "NEW_FOCUS"; +var newFocus = function(innerNodes, innerTabbables, outerNodes, activeElement, lastNode) { + var cnt = innerNodes.length; + var firstFocus = innerNodes[0]; + var lastFocus = innerNodes[cnt - 1]; + var isOnGuard = isGuard(activeElement); + if (activeElement && innerNodes.indexOf(activeElement) >= 0) { + return void 0; + } + var activeIndex = activeElement !== void 0 ? outerNodes.indexOf(activeElement) : -1; + var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex; + var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1; + if (activeIndex === -1) { + if (lastNodeInside !== -1) { + return lastNodeInside; + } + return NEW_FOCUS; + } + if (lastNodeInside === -1) { + return NEW_FOCUS; + } + var indexDiff = activeIndex - lastIndex; + var firstNodeIndex = outerNodes.indexOf(firstFocus); + var lastNodeIndex = outerNodes.indexOf(lastFocus); + var correctedNodes = correctNodes(outerNodes); + var correctedIndex = activeElement !== void 0 ? correctedNodes.indexOf(activeElement) : -1; + var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex); + if (!indexDiff && lastNodeInside >= 0) { + return lastNodeInside; + } + if (innerTabbables.length === 0) { + return lastNodeInside; + } + var returnFirstNode = pickFocusable(innerNodes, innerTabbables[0]); + var returnLastNode = pickFocusable(innerNodes, innerTabbables[innerTabbables.length - 1]); + if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) { + return returnLastNode; + } + if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) { + return returnFirstNode; + } + if (indexDiff && Math.abs(correctedIndexDiff) > 1) { + return lastNodeInside; + } + if (activeIndex <= firstNodeIndex) { + return returnLastNode; + } + if (activeIndex > lastNodeIndex) { + return returnFirstNode; + } + if (indexDiff) { + if (Math.abs(indexDiff) > 1) { + return lastNodeInside; + } + return (cnt + lastNodeInside + indexDiff) % cnt; + } + return void 0; +}; + +// node_modules/focus-lock/dist/es2015/utils/auto-focus.js +var findAutoFocused = function(autoFocusables) { + return function(node3) { + var _a8; + var autofocus = (_a8 = getDataset(node3)) === null || _a8 === void 0 ? void 0 : _a8.autofocus; + return ( + // @ts-expect-error + node3.autofocus || // + autofocus !== void 0 && autofocus !== "false" || // + autoFocusables.indexOf(node3) >= 0 + ); + }; +}; +var pickAutofocus = function(nodesIndexes, orderedNodes, groups) { + var nodes = nodesIndexes.map(function(_a8) { + var node3 = _a8.node; + return node3; + }); + var autoFocusable = filterAutoFocusable(nodes.filter(findAutoFocused(groups))); + if (autoFocusable && autoFocusable.length) { + return pickFirstFocus(autoFocusable); + } + return pickFirstFocus(filterAutoFocusable(orderedNodes)); +}; + +// node_modules/focus-lock/dist/es2015/utils/parenting.js +var getParents = function(node3, parents) { + if (parents === void 0) { + parents = []; + } + parents.push(node3); + if (node3.parentNode) { + getParents(node3.parentNode.host || node3.parentNode, parents); + } + return parents; +}; +var getCommonParent = function(nodeA, nodeB) { + var parentsA = getParents(nodeA); + var parentsB = getParents(nodeB); + for (var i = 0; i < parentsA.length; i += 1) { + var currentParent = parentsA[i]; + if (parentsB.indexOf(currentParent) >= 0) { + return currentParent; + } + } + return false; +}; +var getTopCommonParent = function(baseActiveElement, leftEntry, rightEntries) { + var activeElements = asArray(baseActiveElement); + var leftEntries = asArray(leftEntry); + var activeElement = activeElements[0]; + var topCommon = false; + leftEntries.filter(Boolean).forEach(function(entry) { + topCommon = getCommonParent(topCommon || entry, entry) || topCommon; + rightEntries.filter(Boolean).forEach(function(subEntry) { + var common = getCommonParent(activeElement, subEntry); + if (common) { + if (!topCommon || contains3(common, topCommon)) { + topCommon = common; + } else { + topCommon = getCommonParent(common, topCommon); + } + } + }); + }); + return topCommon; +}; +var allParentAutofocusables = function(entries, visibilityCache) { + return entries.reduce(function(acc, node3) { + return acc.concat(parentAutofocusables(node3, visibilityCache)); + }, []); +}; + +// node_modules/focus-lock/dist/es2015/focusSolver.js +var reorderNodes = function(srcNodes, dstNodes) { + var remap = /* @__PURE__ */ new Map(); + dstNodes.forEach(function(entity) { + return remap.set(entity.node, entity); + }); + return srcNodes.map(function(node3) { + return remap.get(node3); + }).filter(isDefined2); +}; +var focusSolver = function(topNode, lastNode) { + var activeElement = getActiveElement2(asArray(topNode).length > 0 ? document : getFirst(topNode).ownerDocument); + var entries = getAllAffectedNodes(topNode).filter(isNotAGuard); + var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries); + var visibilityCache = /* @__PURE__ */ new Map(); + var anyFocusable = getFocusableNodes(entries, visibilityCache); + var innerElements = anyFocusable.filter(function(_a8) { + var node3 = _a8.node; + return isNotAGuard(node3); + }); + if (!innerElements[0]) { + return void 0; + } + var outerNodes = getFocusableNodes([commonParent], visibilityCache).map(function(_a8) { + var node3 = _a8.node; + return node3; + }); + var orderedInnerElements = reorderNodes(outerNodes, innerElements); + var innerFocusables = orderedInnerElements.map(function(_a8) { + var node3 = _a8.node; + return node3; + }); + var innerTabbable = orderedInnerElements.filter(function(_a8) { + var tabIndex = _a8.tabIndex; + return tabIndex >= 0; + }).map(function(_a8) { + var node3 = _a8.node; + return node3; + }); + var newId = newFocus(innerFocusables, innerTabbable, outerNodes, activeElement, lastNode); + if (newId === NEW_FOCUS) { + var focusNode = ( + // first try only tabbable, and the fallback to all focusable, as long as at least one element should be picked for focus + pickAutofocus(anyFocusable, innerTabbable, allParentAutofocusables(entries, visibilityCache)) || pickAutofocus(anyFocusable, innerFocusables, allParentAutofocusables(entries, visibilityCache)) + ); + if (focusNode) { + return { node: focusNode }; + } else { + console.warn("focus-lock: cannot find any node to move focus into"); + return void 0; + } + } + if (newId === void 0) { + return newId; + } + return orderedInnerElements[newId]; +}; + +// node_modules/focus-lock/dist/es2015/focusables.js +var expandFocusableNodes = function(topNode) { + var entries = getAllAffectedNodes(topNode).filter(isNotAGuard); + var commonParent = getTopCommonParent(topNode, topNode, entries); + var outerNodes = orderByTabIndex(getFocusables([commonParent], true), true, true); + var innerElements = getFocusables(entries, false); + return outerNodes.map(function(_a8) { + var node3 = _a8.node, index = _a8.index; + return { + node: node3, + index, + lockItem: innerElements.indexOf(node3) >= 0, + guard: isGuard(node3) + }; + }); +}; + +// node_modules/focus-lock/dist/es2015/commands.js +var focusOn = function(target, focusOptions) { + if (!target) { + return; + } + if ("focus" in target) { + target.focus(focusOptions); + } + if ("contentWindow" in target && target.contentWindow) { + target.contentWindow.focus(); + } +}; + +// node_modules/focus-lock/dist/es2015/moveFocusInside.js +var guardCount = 0; +var lockDisabled = false; +var moveFocusInside = function(topNode, lastNode, options) { + if (options === void 0) { + options = {}; + } + var focusable = focusSolver(topNode, lastNode); + if (lockDisabled) { + return; + } + if (focusable) { + if (guardCount > 2) { + console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"); + lockDisabled = true; + setTimeout(function() { + lockDisabled = false; + }, 1); + return; + } + guardCount++; + focusOn(focusable.node, options.focusOptions); + guardCount--; + } +}; + +// node_modules/focus-lock/dist/es2015/return-focus.js +function weakRef(value) { + if (!value) + return null; + if (typeof WeakRef === "undefined") { + return function() { + return value || null; + }; + } + var w = value ? new WeakRef(value) : null; + return function() { + return (w === null || w === void 0 ? void 0 : w.deref()) || null; + }; +} +var recordElementLocation = function(element) { + if (!element) { + return null; + } + var stack = []; + var currentElement = element; + while (currentElement && currentElement !== document.body) { + stack.push({ + current: weakRef(currentElement), + parent: weakRef(currentElement.parentElement), + left: weakRef(currentElement.previousElementSibling), + right: weakRef(currentElement.nextElementSibling) + }); + currentElement = currentElement.parentElement; + } + return { + element: weakRef(element), + stack, + ownerDocument: element.ownerDocument + }; +}; +var restoreFocusTo = function(location) { + var _a8, _b5, _c3, _d3, _e3; + if (!location) { + return void 0; + } + var stack = location.stack, ownerDocument = location.ownerDocument; + var visibilityCache = /* @__PURE__ */ new Map(); + for (var _i = 0, stack_1 = stack; _i < stack_1.length; _i++) { + var line2 = stack_1[_i]; + var parent_1 = (_a8 = line2.parent) === null || _a8 === void 0 ? void 0 : _a8.call(line2); + if (parent_1 && ownerDocument.contains(parent_1)) { + var left = (_b5 = line2.left) === null || _b5 === void 0 ? void 0 : _b5.call(line2); + var savedCurrent = line2.current(); + var current = parent_1.contains(savedCurrent) ? savedCurrent : void 0; + var right = (_c3 = line2.right) === null || _c3 === void 0 ? void 0 : _c3.call(line2); + var focusables = getTabbableNodes([parent_1], visibilityCache); + var aim = ( + // that is element itself + (_e3 = (_d3 = current !== null && current !== void 0 ? current : ( + // or something in it's place + left === null || left === void 0 ? void 0 : left.nextElementSibling + )) !== null && _d3 !== void 0 ? _d3 : ( + // or somebody to the right, still close enough + right + )) !== null && _e3 !== void 0 ? _e3 : ( + // or somebody to the left, something? + left + ) + ); + while (aim) { + for (var _f3 = 0, focusables_1 = focusables; _f3 < focusables_1.length; _f3++) { + var focusable = focusables_1[_f3]; + if (aim === null || aim === void 0 ? void 0 : aim.contains(focusable.node)) { + return focusable.node; + } + } + aim = aim.nextElementSibling; + } + if (focusables.length) { + return focusables[0].node; + } + } + } + return void 0; +}; +var captureFocusRestore = function(targetElement) { + var location = recordElementLocation(targetElement); + return function() { + return restoreFocusTo(location); + }; +}; + +// node_modules/focus-lock/dist/es2015/sibling.js +var getRelativeFocusable = function(element, scope, useTabbables) { + if (!element || !scope) { + console.error("no element or scope given"); + return {}; + } + var shards = asArray(scope); + if (shards.every(function(shard) { + return !contains3(shard, element); + })) { + console.error("Active element is not contained in the scope"); + return {}; + } + var focusables = useTabbables ? getTabbableNodes(shards, /* @__PURE__ */ new Map()) : getFocusableNodes(shards, /* @__PURE__ */ new Map()); + var current = focusables.findIndex(function(_a8) { + var node3 = _a8.node; + return node3 === element; + }); + if (current === -1) { + return void 0; + } + return { + prev: focusables[current - 1], + next: focusables[current + 1], + first: focusables[0], + last: focusables[focusables.length - 1] + }; +}; +var getBoundary = function(shards, useTabbables) { + var set = useTabbables ? getTabbableNodes(asArray(shards), /* @__PURE__ */ new Map()) : getFocusableNodes(asArray(shards), /* @__PURE__ */ new Map()); + return { + first: set[0], + last: set[set.length - 1] + }; +}; +var defaultOptions = function(options) { + return Object.assign({ + scope: document.body, + cycle: true, + onlyTabbable: true + }, options); +}; +var moveFocus = function(fromElement, options, cb) { + if (options === void 0) { + options = {}; + } + var newOptions = defaultOptions(options); + var solution = getRelativeFocusable(fromElement, newOptions.scope, newOptions.onlyTabbable); + if (!solution) { + return; + } + var target = cb(solution, newOptions.cycle); + if (target) { + focusOn(target.node, newOptions.focusOptions); + } +}; +var focusNextElement = function(fromElement, options) { + if (options === void 0) { + options = {}; + } + moveFocus(fromElement, options, function(_a8, cycle) { + var next2 = _a8.next, first = _a8.first; + return next2 || cycle && first; + }); +}; +var focusPrevElement = function(fromElement, options) { + if (options === void 0) { + options = {}; + } + moveFocus(fromElement, options, function(_a8, cycle) { + var prev2 = _a8.prev, last = _a8.last; + return prev2 || cycle && last; + }); +}; +var pickBoundary = function(scope, options, what) { + var _a8; + var boundary = getBoundary(scope, (_a8 = options.onlyTabbable) !== null && _a8 !== void 0 ? _a8 : true); + var node3 = boundary[what]; + if (node3) { + focusOn(node3.node, options.focusOptions); + } +}; +var focusFirstElement = function(scope, options) { + if (options === void 0) { + options = {}; + } + pickBoundary(scope, options, "first"); +}; +var focusLastElement = function(scope, options) { + if (options === void 0) { + options = {}; + } + pickBoundary(scope, options, "last"); +}; + +// node_modules/react-focus-lock/dist/es2015/util.js +function deferAction(action) { + setTimeout(action, 1); +} +var inlineProp = function inlineProp2(name, value) { + var obj = {}; + obj[name] = value; + return obj; +}; +var extractRef = function extractRef2(ref) { + return ref && "current" in ref ? ref.current : ref; +}; + +// node_modules/react-focus-lock/dist/es2015/Trap.js +var focusOnBody = function focusOnBody2() { + return document && document.activeElement === document.body; +}; +var isFreeFocus = function isFreeFocus2() { + return focusOnBody() || focusIsHidden(); +}; +var lastActiveTrap = null; +var lastActiveFocus = null; +var lastPortaledElement = null; +var focusWasOutsideWindow = false; +var defaultWhitelist = function defaultWhitelist2() { + return true; +}; +var focusWhitelisted = function focusWhitelisted2(activeElement) { + return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement); +}; +var recordPortal = function recordPortal2(observerNode, portaledElement) { + lastPortaledElement = { + observerNode, + portaledElement + }; +}; +var focusIsPortaledPair = function focusIsPortaledPair2(element) { + return lastPortaledElement && lastPortaledElement.portaledElement === element; +}; +function autoGuard(startIndex, end, step, allNodes) { + var lastGuard = null; + var i = startIndex; + do { + var item = allNodes[i]; + if (item.guard) { + if (item.node.dataset.focusAutoGuard) { + lastGuard = item; + } + } else if (item.lockItem) { + if (i !== startIndex) { + return; + } + lastGuard = null; + } else { + break; + } + } while ((i += step) !== end); + if (lastGuard) { + lastGuard.node.tabIndex = 0; + } +} +var focusWasOutside = function focusWasOutside2(crossFrameOption) { + if (crossFrameOption) { + return Boolean(focusWasOutsideWindow); + } + return focusWasOutsideWindow === "meanwhile"; +}; +var checkInHost = function checkInHost2(check, el, boundary) { + return el && (el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) || el.parentNode && checkInHost2(check, el.parentNode, boundary)); +}; +var withinHost = function withinHost2(activeElement, workingArea) { + return workingArea.some(function(area) { + return checkInHost(activeElement, area, area); + }); +}; +var activateTrap = function activateTrap2() { + var result = false; + if (lastActiveTrap) { + var _lastActiveTrap = lastActiveTrap, observed = _lastActiveTrap.observed, persistentFocus = _lastActiveTrap.persistentFocus, autoFocus = _lastActiveTrap.autoFocus, shards = _lastActiveTrap.shards, crossFrame = _lastActiveTrap.crossFrame, focusOptions = _lastActiveTrap.focusOptions; + var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement; + var activeElement = document && document.activeElement; + if (workingNode) { + var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean)); + if (!activeElement || focusWhitelisted(activeElement)) { + if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) { + if (workingNode && !(focusInside(workingArea) || activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) { + if (document && !lastActiveFocus && activeElement && !autoFocus) { + if (activeElement.blur) { + activeElement.blur(); + } + document.body.focus(); + } else { + result = moveFocusInside(workingArea, lastActiveFocus, { + focusOptions + }); + lastPortaledElement = {}; + } + } + focusWasOutsideWindow = false; + lastActiveFocus = document && document.activeElement; + } + } + if (document && activeElement !== document.activeElement && document.querySelector("[data-focus-auto-guard]")) { + var newActiveElement = document && document.activeElement; + var allNodes = expandFocusableNodes(workingArea); + var focusedIndex = allNodes.map(function(_ref2) { + var node3 = _ref2.node; + return node3; + }).indexOf(newActiveElement); + if (focusedIndex > -1) { + allNodes.filter(function(_ref2) { + var guard2 = _ref2.guard, node3 = _ref2.node; + return guard2 && node3.dataset.focusAutoGuard; + }).forEach(function(_ref3) { + var node3 = _ref3.node; + return node3.removeAttribute("tabIndex"); + }); + autoGuard(focusedIndex, allNodes.length, 1, allNodes); + autoGuard(focusedIndex, -1, -1, allNodes); + } + } + } + } + return result; +}; +var onTrap = function onTrap2(event) { + if (activateTrap() && event) { + event.stopPropagation(); + event.preventDefault(); + } +}; +var onBlur = function onBlur2() { + return deferAction(activateTrap); +}; +var onFocus = function onFocus2(event) { + var source = event.target; + var currentNode = event.currentTarget; + if (!currentNode.contains(source)) { + recordPortal(currentNode, source); + } +}; +var FocusWatcher = function FocusWatcher2() { + return null; +}; +var FocusTrap = function FocusTrap2(_ref4) { + var children = _ref4.children; + return React16.createElement("div", { + onBlur, + onFocus + }, children); +}; +FocusTrap.propTypes = true ? { + children: import_prop_types3.default.node.isRequired +} : {}; +var onWindowBlur2 = function onWindowBlur3() { + focusWasOutsideWindow = "just"; + deferAction(function() { + focusWasOutsideWindow = "meanwhile"; + }); +}; +var attachHandler = function attachHandler2() { + document.addEventListener("focusin", onTrap); + document.addEventListener("focusout", onBlur); + window.addEventListener("blur", onWindowBlur2); +}; +var detachHandler = function detachHandler2() { + document.removeEventListener("focusin", onTrap); + document.removeEventListener("focusout", onBlur); + window.removeEventListener("blur", onWindowBlur2); +}; +function reducePropsToState(propsList) { + return propsList.filter(function(_ref5) { + var disabled = _ref5.disabled; + return !disabled; + }); +} +var focusLockAPI = { + moveFocusInside, + focusInside, + focusNextElement, + focusPrevElement, + focusFirstElement, + focusLastElement, + captureFocusRestore +}; +function handleStateChangeOnClient(traps) { + var trap = traps.slice(-1)[0]; + if (trap && !lastActiveTrap) { + attachHandler(); + } + var lastTrap = lastActiveTrap; + var sameTrap = lastTrap && trap && trap.id === lastTrap.id; + lastActiveTrap = trap; + if (lastTrap && !sameTrap) { + lastTrap.onDeactivation(); + if (!traps.filter(function(_ref6) { + var id3 = _ref6.id; + return id3 === lastTrap.id; + }).length) { + lastTrap.returnFocus(!trap); + } + } + if (trap) { + lastActiveFocus = null; + if (!sameTrap || lastTrap.observed !== trap.observed) { + trap.onActivation(focusLockAPI); + } + activateTrap(true); + deferAction(activateTrap); + } else { + detachHandler(); + lastActiveFocus = null; + } +} +mediumFocus.assignSyncMedium(onFocus); +mediumBlur.assignMedium(onBlur); +mediumEffect.assignMedium(function(cb) { + return cb(focusLockAPI); +}); +var Trap_default = index_es_default(reducePropsToState, handleStateChangeOnClient)(FocusWatcher); + +// node_modules/react-focus-lock/dist/es2015/Combination.js +var FocusLockCombination = React17.forwardRef(function FocusLockUICombination(props, ref) { + return React17.createElement(Lock_default, _extends({ + sideCar: Trap_default, + ref + }, props)); +}); +var _ref = Lock_default.propTypes || {}; +var sideCar = _ref.sideCar; +var propTypes = _objectWithoutPropertiesLoose(_ref, ["sideCar"]); +FocusLockCombination.propTypes = true ? propTypes : {}; +var Combination_default = FocusLockCombination; + +// node_modules/react-focus-lock/dist/es2015/AutoFocusInside.js +var React18 = __toESM(require_react()); +var import_prop_types4 = __toESM(require_prop_types()); +var AutoFocusInside = function AutoFocusInside2(_ref2) { + var _ref$disabled = _ref2.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, children = _ref2.children, _ref$className = _ref2.className, className = _ref$className === void 0 ? void 0 : _ref$className; + return React18.createElement("div", _extends({}, inlineProp(FOCUS_AUTO, !disabled), { + className + }), children); +}; +AutoFocusInside.propTypes = true ? { + children: import_prop_types4.default.node.isRequired, + disabled: import_prop_types4.default.bool, + className: import_prop_types4.default.string +} : {}; + +// node_modules/react-focus-lock/dist/es2015/MoveFocusInside.js +var React19 = __toESM(require_react()); +var import_prop_types5 = __toESM(require_prop_types()); +var useFocusInside = function useFocusInside2(observedRef) { + React19.useEffect(function() { + var enabled = true; + mediumEffect.useMedium(function(car) { + var observed = observedRef && observedRef.current; + if (enabled && observed) { + if (!car.focusInside(observed)) { + car.moveFocusInside(observed, null); + } + } + }); + return function() { + enabled = false; + }; + }, [observedRef]); +}; +function MoveFocusInside(_ref2) { + var _ref$disabled = _ref2.disabled, isDisabled3 = _ref$disabled === void 0 ? false : _ref$disabled, className = _ref2.className, children = _ref2.children; + var ref = React19.useRef(null); + useFocusInside(isDisabled3 ? void 0 : ref); + return React19.createElement("div", _extends({}, inlineProp(FOCUS_AUTO, !isDisabled3), { + ref, + className + }), children); +} +MoveFocusInside.propTypes = true ? { + children: import_prop_types5.default.node.isRequired, + disabled: import_prop_types5.default.bool, + className: import_prop_types5.default.string +} : {}; + +// node_modules/react-focus-lock/dist/es2015/FreeFocusInside.js +var React20 = __toESM(require_react()); +var import_prop_types6 = __toESM(require_prop_types()); +var FreeFocusInside = function FreeFocusInside2(_ref2) { + var children = _ref2.children, className = _ref2.className; + return React20.createElement("div", _extends({}, inlineProp(FOCUS_ALLOW, true), { + className + }), children); +}; +FreeFocusInside.propTypes = true ? { + children: import_prop_types6.default.node.isRequired, + className: import_prop_types6.default.string +} : {}; + +// node_modules/react-focus-lock/dist/es2015/use-focus-scope.js +var import_react114 = __toESM(require_react()); + +// node_modules/react-focus-lock/dist/es2015/use-focus-state.js +var import_react115 = __toESM(require_react()); + +// node_modules/react-focus-lock/dist/es2015/nano-events.js +var createNanoEvents = function createNanoEvents2() { + return { + emit: function emit(event) { + 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, callbacks = this.events[event] || [], length2 = callbacks.length; i < length2; i++) { + callbacks[i].apply(callbacks, args); + } + }, + events: {}, + on: function on(event, cb) { + var _this$events, _this = this; + ((_this$events = this.events)[event] || (_this$events[event] = [])).push(cb); + return function() { + var _this$events$event; + _this.events[event] = (_this$events$event = _this.events[event]) == null ? void 0 : _this$events$event.filter(function(i) { + return cb !== i; + }); + }; + } + }; +}; + +// node_modules/react-focus-lock/dist/es2015/use-focus-state.js +var mainbus = createNanoEvents(); + +// node_modules/react-focus-lock/dist/es2015/index.js +var es2015_default = Combination_default; + +// node_modules/@chakra-ui/dom-utils/dist/chunk-3XANSPY5.mjs +function isElement3(el) { + return el != null && typeof el == "object" && "nodeType" in el && el.nodeType === Node.ELEMENT_NODE; +} +function isHTMLElement2(el) { + var _a8; + if (!isElement3(el)) + return false; + const win = (_a8 = el.ownerDocument.defaultView) != null ? _a8 : window; + return el instanceof win.HTMLElement; +} +function getOwnerWindow2(node3) { + var _a8, _b5; + return (_b5 = (_a8 = getOwnerDocument2(node3)) == null ? void 0 : _a8.defaultView) != null ? _b5 : window; +} +function getOwnerDocument2(node3) { + return isElement3(node3) ? node3.ownerDocument : document; +} +function getActiveElement3(node3) { + return getOwnerDocument2(node3).activeElement; +} + +// node_modules/@chakra-ui/dom-utils/dist/chunk-4WEUWBTD.mjs +function isScrollParent(el) { + const win = el.ownerDocument.defaultView || window; + const { overflow, overflowX, overflowY } = win.getComputedStyle(el); + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); +} +function getParent(el) { + if (el.localName === "html") + return el; + return el.assignedSlot || el.parentElement || el.ownerDocument.documentElement; +} +function getScrollParent(el) { + if (["html", "body", "#document"].includes(el.localName)) { + return el.ownerDocument.body; + } + if (isHTMLElement2(el) && isScrollParent(el)) { + return el; + } + return getScrollParent(getParent(el)); +} + +// node_modules/@chakra-ui/dom-utils/dist/chunk-ROURZMX4.mjs +var hasTabIndex2 = (element) => element.hasAttribute("tabindex"); +var hasNegativeTabIndex2 = (element) => hasTabIndex2(element) && element.tabIndex === -1; +function isDisabled2(element) { + return Boolean(element.getAttribute("disabled")) === true || Boolean(element.getAttribute("aria-disabled")) === true; +} +function isHidden2(element) { + if (element.parentElement && isHidden2(element.parentElement)) + return true; + return element.hidden; +} +function isContentEditable2(element) { + const value = element.getAttribute("contenteditable"); + return value !== "false" && value != null; +} +function isFocusable2(element) { + if (!isHTMLElement2(element) || isHidden2(element) || isDisabled2(element)) { + return false; + } + const { localName } = element; + const focusableTags = ["input", "select", "textarea", "button"]; + if (focusableTags.indexOf(localName) >= 0) + return true; + const others2 = { + a: () => element.hasAttribute("href"), + audio: () => element.hasAttribute("controls"), + video: () => element.hasAttribute("controls") + }; + if (localName in others2) { + return others2[localName](); + } + if (isContentEditable2(element)) + return true; + return hasTabIndex2(element); +} +function isTabbable2(element) { + if (!element) + return false; + return isHTMLElement2(element) && isFocusable2(element) && !hasNegativeTabIndex2(element); +} + +// node_modules/@chakra-ui/dom-utils/dist/index.mjs +var focusableElList2 = [ + "input:not(:disabled):not([disabled])", + "select:not(:disabled):not([disabled])", + "textarea:not(:disabled):not([disabled])", + "embed", + "iframe", + "object", + "a[href]", + "area[href]", + "button:not(:disabled):not([disabled])", + "[tabindex]", + "audio[controls]", + "video[controls]", + "*[tabindex]:not([aria-disabled])", + "*[contenteditable]" +]; +var focusableElSelector2 = focusableElList2.join(); +var isVisible2 = (el) => el.offsetWidth > 0 && el.offsetHeight > 0; +function getAllFocusable2(container2) { + const focusableEls = Array.from( + container2.querySelectorAll(focusableElSelector2) + ); + focusableEls.unshift(container2); + return focusableEls.filter((el) => isFocusable2(el) && isVisible2(el)); +} + +// node_modules/@chakra-ui/focus-lock/dist/chunk-UU5OHSNF.mjs +var import_react116 = __toESM(require_react(), 1); +var import_jsx_runtime77 = __toESM(require_jsx_runtime(), 1); +var _a7; +var FocusTrap3 = (_a7 = es2015_default.default) != null ? _a7 : es2015_default; +var FocusLock2 = (props) => { + const { + initialFocusRef, + finalFocusRef, + contentRef, + restoreFocus, + children, + isDisabled: isDisabled3, + autoFocus, + persistentFocus, + lockFocusAcrossFrames + } = props; + const onActivation = (0, import_react116.useCallback)(() => { + if (initialFocusRef == null ? void 0 : initialFocusRef.current) { + initialFocusRef.current.focus(); + } else if (contentRef == null ? void 0 : contentRef.current) { + const focusables = getAllFocusable2(contentRef.current); + if (focusables.length === 0) { + requestAnimationFrame(() => { + var _a24; + (_a24 = contentRef.current) == null ? void 0 : _a24.focus(); + }); + } + } + }, [initialFocusRef, contentRef]); + const onDeactivation = (0, import_react116.useCallback)(() => { + var _a24; + (_a24 = finalFocusRef == null ? void 0 : finalFocusRef.current) == null ? void 0 : _a24.focus(); + }, [finalFocusRef]); + const returnFocus = restoreFocus && !finalFocusRef; + return (0, import_jsx_runtime77.jsx)( + FocusTrap3, + { + crossFrame: lockFocusAcrossFrames, + persistentFocus, + autoFocus, + disabled: isDisabled3, + onActivation, + onDeactivation, + returnFocus, + children + } + ); +}; +FocusLock2.displayName = "FocusLock"; + +// node_modules/@chakra-ui/hooks/dist/chunk-6SQFIFNP.mjs +var import_react117 = __toESM(require_react(), 1); +function usePrevious(value) { + const ref = (0, import_react117.useRef)(); + (0, import_react117.useEffect)(() => { + ref.current = value; + }, [value]); + return ref.current; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-YSKACL7R.mjs +var import_react118 = __toESM(require_react(), 1); +function isPrintableCharacter(event) { + const { key } = event; + return key.length === 1 || key.length > 1 && /[^a-zA-Z0-9]/.test(key); +} +function useShortcut(props = {}) { + const { timeout = 300, preventDefault = () => true } = props; + const [keys2, setKeys] = (0, import_react118.useState)([]); + const timeoutRef = (0, import_react118.useRef)(); + const flush = () => { + if (timeoutRef.current) { + clearTimeout(timeoutRef.current); + timeoutRef.current = null; + } + }; + const clearKeysAfterDelay = () => { + flush(); + timeoutRef.current = setTimeout(() => { + setKeys([]); + timeoutRef.current = null; + }, timeout); + }; + (0, import_react118.useEffect)(() => flush, []); + function onKeyDown(fn) { + return (event) => { + if (event.key === "Backspace") { + const keysCopy = [...keys2]; + keysCopy.pop(); + setKeys(keysCopy); + return; + } + if (isPrintableCharacter(event)) { + const keysCopy = keys2.concat(event.key); + if (preventDefault(event)) { + event.preventDefault(); + event.stopPropagation(); + } + setKeys(keysCopy); + fn(keysCopy.join("")); + clearKeysAfterDelay(); + } + }; + } + return onKeyDown; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-724WJZW4.mjs +var import_react119 = __toESM(require_react(), 1); +var useSafeLayoutEffect3 = isBrowser3 ? import_react119.useLayoutEffect : import_react119.useEffect; + +// node_modules/@chakra-ui/hooks/dist/chunk-KA2477BY.mjs +var import_react120 = __toESM(require_react(), 1); +function useCallbackRef3(fn, deps = []) { + const ref = (0, import_react120.useRef)(fn); + useSafeLayoutEffect3(() => { + ref.current = fn; + }); + return (0, import_react120.useCallback)((...args) => { + var _a8; + return (_a8 = ref.current) == null ? void 0 : _a8.call(ref, ...args); + }, deps); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-HMTAETMO.mjs +var import_react121 = __toESM(require_react(), 1); +function useTimeout2(callback, delay2) { + const fn = useCallbackRef3(callback); + (0, import_react121.useEffect)(() => { + if (delay2 == null) + return void 0; + let timeoutId = null; + timeoutId = window.setTimeout(() => { + fn(); + }, delay2); + return () => { + if (timeoutId) { + window.clearTimeout(timeoutId); + } + }; + }, [delay2, fn]); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-W4SX2OS5.mjs +var import_react122 = __toESM(require_react(), 1); +function useWhyDidYouUpdate(name, props) { + const previousProps = (0, import_react122.useRef)(); + (0, import_react122.useEffect)(() => { + if (previousProps.current) { + const allKeys = Object.keys({ ...previousProps.current, ...props }); + const changesObj = {}; + allKeys.forEach((key) => { + if (previousProps.current[key] !== props[key]) { + changesObj[key] = { + from: previousProps.current[key], + to: props[key] + }; + } + }); + if (Object.keys(changesObj).length) { + console.log("[why-did-you-update]", name, changesObj); + } + } + previousProps.current = props; + }); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-GVIR6Q3W.mjs +var import_react123 = __toESM(require_react(), 1); +function useInterval(callback, delay2) { + const fn = useCallbackRef3(callback); + (0, import_react123.useEffect)(() => { + let intervalId = null; + const tick = () => fn(); + if (delay2 !== null) { + intervalId = window.setInterval(tick, delay2); + } + return () => { + if (intervalId) { + window.clearInterval(intervalId); + } + }; + }, [delay2, fn]); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-3VAWNCU2.mjs +var import_react124 = __toESM(require_react(), 1); +function useLatestRef(value) { + const ref = (0, import_react124.useRef)(null); + ref.current = value; + return ref; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-AZVKQZKI.mjs +var import_react125 = __toESM(require_react(), 1); +function assignRef4(ref, value) { + if (ref == null) + return; + if (typeof ref === "function") { + ref(value); + return; + } + try { + ref.current = value; + } catch (error2) { + throw new Error(`Cannot assign value '${value}' to ref '${ref}'`); + } +} +function useMergeRefs3(...refs) { + return (0, import_react125.useMemo)(() => { + if (refs.every((ref) => ref == null)) { + return null; + } + return (node3) => { + refs.forEach((ref) => { + if (ref) + assignRef4(ref, node3); + }); + }; + }, refs); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-7JEV5YKL.mjs +var import_react126 = __toESM(require_react(), 1); +function useEventListener2(event, handler, env2, options) { + const listener = useCallbackRef3(handler); + (0, import_react126.useEffect)(() => { + var _a8; + const node3 = (_a8 = runIfFn3(env2)) != null ? _a8 : document; + if (!handler) { + return; + } + node3.addEventListener(event, listener, options); + return () => { + node3.removeEventListener(event, listener, options); + }; + }, [event, env2, options, listener, handler]); + return () => { + var _a8; + const node3 = (_a8 = runIfFn3(env2)) != null ? _a8 : document; + node3.removeEventListener(event, listener, options); + }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-LMHOK4JG.mjs +var import_react127 = __toESM(require_react(), 1); +function useMouseDownRef(shouldListen = true) { + const mouseDownRef = (0, import_react127.useRef)(); + useEventListener2("mousedown", (event) => { + if (shouldListen) { + mouseDownRef.current = event.target; + } + }); + return mouseDownRef; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-R5W6LHQW.mjs +var import_react128 = __toESM(require_react(), 1); +function useOutsideClick(props) { + const { ref, handler, enabled = true } = props; + const savedHandler = useCallbackRef3(handler); + const stateRef = (0, import_react128.useRef)({ + isPointerDown: false, + ignoreEmulatedMouseEvents: false + }); + const state2 = stateRef.current; + (0, import_react128.useEffect)(() => { + if (!enabled) + return; + const onPointerDown = (e) => { + if (isValidEvent(e, ref)) { + state2.isPointerDown = true; + } + }; + const onMouseUp = (event) => { + if (state2.ignoreEmulatedMouseEvents) { + state2.ignoreEmulatedMouseEvents = false; + return; + } + if (state2.isPointerDown && handler && isValidEvent(event, ref)) { + state2.isPointerDown = false; + savedHandler(event); + } + }; + const onTouchEnd = (event) => { + state2.ignoreEmulatedMouseEvents = true; + if (handler && state2.isPointerDown && isValidEvent(event, ref)) { + state2.isPointerDown = false; + savedHandler(event); + } + }; + const doc = getOwnerDocument(ref.current); + doc.addEventListener("mousedown", onPointerDown, true); + doc.addEventListener("mouseup", onMouseUp, true); + doc.addEventListener("touchstart", onPointerDown, true); + doc.addEventListener("touchend", onTouchEnd, true); + return () => { + doc.removeEventListener("mousedown", onPointerDown, true); + doc.removeEventListener("mouseup", onMouseUp, true); + doc.removeEventListener("touchstart", onPointerDown, true); + doc.removeEventListener("touchend", onTouchEnd, true); + }; + }, [handler, ref, savedHandler, state2, enabled]); +} +function isValidEvent(event, ref) { + var _a8; + const target = event.target; + if (target) { + const doc = getOwnerDocument(target); + if (!doc.contains(target)) + return false; + } + return !((_a8 = ref.current) == null ? void 0 : _a8.contains(target)); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-ZCYNKCF5.mjs +function usePointerEvent(env2, eventName, handler, options) { + return useEventListener2( + getPointerEventName(eventName), + wrapPointerEventHandler(handler, eventName === "pointerdown"), + env2, + options + ); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-NGVRPZ6W.mjs +var import_react129 = __toESM(require_react(), 1); +function useUnmountEffect2(fn, deps = []) { + return (0, import_react129.useEffect)( + () => () => fn(), + // eslint-disable-next-line react-hooks/exhaustive-deps + deps + ); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-77SN3XBT.mjs +var import_react130 = __toESM(require_react(), 1); +function usePanGesture(ref, props) { + const { + onPan, + onPanStart, + onPanEnd, + onPanSessionStart, + onPanSessionEnd, + threshold + } = props; + const hasPanEvents = Boolean( + onPan || onPanStart || onPanEnd || onPanSessionStart || onPanSessionEnd + ); + const panSession = (0, import_react130.useRef)(null); + const handlers2 = { + onSessionStart: onPanSessionStart, + onSessionEnd: onPanSessionEnd, + onStart: onPanStart, + onMove: onPan, + onEnd(event, info) { + panSession.current = null; + onPanEnd == null ? void 0 : onPanEnd(event, info); + } + }; + (0, import_react130.useEffect)(() => { + var _a8; + (_a8 = panSession.current) == null ? void 0 : _a8.updateHandlers(handlers2); + }); + function onPointerDown(event) { + panSession.current = new PanSession(event, handlers2, threshold); + } + usePointerEvent( + () => ref.current, + "pointerdown", + hasPanEvents ? onPointerDown : noop2 + ); + useUnmountEffect2(() => { + var _a8; + (_a8 = panSession.current) == null ? void 0 : _a8.end(); + panSession.current = null; + }); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-6B2YUEGK.mjs +var import_react131 = __toESM(require_react(), 1); +function useId6(idProp, prefix4) { + const id3 = (0, import_react131.useId)(); + return (0, import_react131.useMemo)( + () => idProp || [prefix4, id3].filter(Boolean).join("-"), + [idProp, prefix4, id3] + ); +} +function useIds(idProp, ...prefixes) { + const id3 = useId6(idProp); + return (0, import_react131.useMemo)(() => { + return prefixes.map((prefix4) => `${prefix4}-${id3}`); + }, [id3, prefixes]); +} +function useOptionalPart(partId) { + const [id3, setId] = (0, import_react131.useState)(null); + const ref = (0, import_react131.useCallback)( + (node3) => { + setId(node3 ? partId : null); + }, + [partId] + ); + return { ref, id: id3, isRendered: Boolean(id3) }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-7JSBRQFI.mjs +var import_react132 = __toESM(require_react(), 1); +function useControllableProp(prop, state2) { + const isControlled = prop !== void 0; + const value = isControlled && typeof prop !== "undefined" ? prop : state2; + return [isControlled, value]; +} +function useControllableState2(props) { + const { + value: valueProp, + defaultValue, + onChange, + shouldUpdate = (prev2, next2) => prev2 !== next2 + } = props; + const onChangeProp = useCallbackRef3(onChange); + const shouldUpdateProp = useCallbackRef3(shouldUpdate); + const [valueState, setValue] = (0, import_react132.useState)(defaultValue); + const isControlled = valueProp !== void 0; + const value = isControlled ? valueProp : valueState; + const updateValue = (0, import_react132.useCallback)( + (next2) => { + const nextValue = runIfFn3(next2, value); + if (!shouldUpdateProp(value, nextValue)) { + return; + } + if (!isControlled) { + setValue(nextValue); + } + onChangeProp(nextValue); + }, + [isControlled, onChangeProp, value, shouldUpdateProp] + ); + return [value, updateValue]; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-7JBTTEVG.mjs +var import_react133 = __toESM(require_react(), 1); +function useDisclosure(props = {}) { + const { + onClose: onCloseProp, + onOpen: onOpenProp, + isOpen: isOpenProp, + id: idProp + } = props; + const onOpenPropCallbackRef = useCallbackRef3(onOpenProp); + const onClosePropCallbackRef = useCallbackRef3(onCloseProp); + const [isOpenState, setIsOpen] = (0, import_react133.useState)(props.defaultIsOpen || false); + const [isControlled, isOpen] = useControllableProp(isOpenProp, isOpenState); + const id3 = useId6(idProp, "disclosure"); + const onClose = (0, import_react133.useCallback)(() => { + if (!isControlled) { + setIsOpen(false); + } + onClosePropCallbackRef == null ? void 0 : onClosePropCallbackRef(); + }, [isControlled, onClosePropCallbackRef]); + const onOpen = (0, import_react133.useCallback)(() => { + if (!isControlled) { + setIsOpen(true); + } + onOpenPropCallbackRef == null ? void 0 : onOpenPropCallbackRef(); + }, [isControlled, onOpenPropCallbackRef]); + const onToggle = (0, import_react133.useCallback)(() => { + const action = isOpen ? onClose : onOpen; + action(); + }, [isOpen, onOpen, onClose]); + return { + isOpen: !!isOpen, + onOpen, + onClose, + onToggle, + isControlled, + getButtonProps: (props2 = {}) => ({ + ...props2, + "aria-expanded": isOpen, + "aria-controls": id3, + onClick: callAllHandlers2(props2.onClick, onToggle) + }), + getDisclosureProps: (props2 = {}) => ({ + ...props2, + hidden: !isOpen, + id: id3 + }) + }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-QNRG6N65.mjs +var import_react134 = __toESM(require_react(), 1); +function useEventListenerMap() { + const listeners = (0, import_react134.useRef)(/* @__PURE__ */ new Map()); + const currentListeners = listeners.current; + const add3 = (0, import_react134.useCallback)((el, type, listener, options) => { + const pointerEventListener = wrapPointerEventHandler( + listener, + type === "pointerdown" + ); + listeners.current.set(listener, { + __listener: pointerEventListener, + type: getPointerEventName(type), + el, + options + }); + el.addEventListener(type, pointerEventListener, options); + }, []); + const remove = (0, import_react134.useCallback)( + (el, type, listener, options) => { + const { __listener: pointerEventListener } = listeners.current.get(listener); + el.removeEventListener(type, pointerEventListener, options); + listeners.current.delete(pointerEventListener); + }, + [] + ); + (0, import_react134.useEffect)( + () => () => { + currentListeners.forEach((value, key) => { + remove(value.el, value.type, key, value.options); + }); + }, + [remove, currentListeners] + ); + return { add: add3, remove }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-6WEF4DIO.mjs +var import_react135 = __toESM(require_react(), 1); +var useUpdateEffect2 = (effect2, deps) => { + const renderCycleRef = (0, import_react135.useRef)(false); + const effectCycleRef = (0, import_react135.useRef)(false); + (0, import_react135.useEffect)(() => { + const isMounted = renderCycleRef.current; + const shouldRun = isMounted && effectCycleRef.current; + if (shouldRun) { + return effect2(); + } + effectCycleRef.current = true; + }, deps); + (0, import_react135.useEffect)(() => { + renderCycleRef.current = true; + return () => { + renderCycleRef.current = false; + }; + }, []); +}; + +// node_modules/@chakra-ui/hooks/dist/chunk-LAJNVC3F.mjs +function useFocusEffect(ref, options) { + const { shouldFocus, preventScroll } = options; + useUpdateEffect2(() => { + const node3 = ref.current; + if (!node3 || !shouldFocus) + return; + if (!hasFocusWithin(node3)) { + focus(node3, { preventScroll, nextTick: true }); + } + }, [shouldFocus, ref, preventScroll]); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-4INTB4VC.mjs +function preventReturnFocus(containerRef) { + const el = containerRef.current; + if (!el) + return false; + const activeElement = getActiveElement(el); + if (!activeElement) + return false; + if (contains(el, activeElement)) + return false; + if (isTabbable(activeElement)) + return true; + return false; +} +function useFocusOnHide(containerRef, options) { + const { shouldFocus: shouldFocusProp, visible, focusRef } = options; + const shouldFocus = shouldFocusProp && !visible; + useUpdateEffect2(() => { + if (!shouldFocus) + return; + if (preventReturnFocus(containerRef)) { + return; + } + const el = (focusRef == null ? void 0 : focusRef.current) || containerRef.current; + if (el) { + focus(el, { nextTick: true }); + } + }, [shouldFocus, containerRef, focusRef]); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-CUYKOI3H.mjs +function useFocusOnPointerDown2(props) { + const { ref, elements, enabled } = props; + const isSafari2 = detectBrowser("Safari"); + const doc = () => getOwnerDocument(ref.current); + usePointerEvent(doc, "pointerdown", (event) => { + if (!isSafari2 || !enabled) + return; + const target = event.target; + const els = elements != null ? elements : [ref]; + const isValidTarget = els.some((elementOrRef) => { + const el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef; + return contains(el, target); + }); + if (!isActiveElement(target) && isValidTarget) { + event.preventDefault(); + focus(target); + } + }); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-IQENJQQ5.mjs +var import_react136 = __toESM(require_react(), 1); +var defaultOptions2 = { + preventScroll: true, + shouldFocus: false +}; +function useFocusOnShow(target, options = defaultOptions2) { + const { focusRef, preventScroll, shouldFocus, visible } = options; + const element = isRefObject(target) ? target.current : target; + const autoFocusValue = shouldFocus && visible; + const autoFocusRef = (0, import_react136.useRef)(autoFocusValue); + const lastVisibleRef = (0, import_react136.useRef)(visible); + useSafeLayoutEffect3(() => { + if (!lastVisibleRef.current && visible) { + autoFocusRef.current = autoFocusValue; + } + lastVisibleRef.current = visible; + }, [visible, autoFocusValue]); + const onFocus3 = (0, import_react136.useCallback)(() => { + if (!visible || !element || !autoFocusRef.current) + return; + autoFocusRef.current = false; + if (contains(element, document.activeElement)) + return; + if (focusRef == null ? void 0 : focusRef.current) { + focus(focusRef.current, { preventScroll, nextTick: true }); + } else { + const tabbableEls = getAllFocusable(element); + if (tabbableEls.length > 0) { + focus(tabbableEls[0], { preventScroll, nextTick: true }); + } + } + }, [visible, preventScroll, element, focusRef]); + useUpdateEffect2(() => { + onFocus3(); + }, [onFocus3]); + useEventListener2("transitionend", onFocus3, element); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-TJQCN7SC.mjs +var import_react137 = __toESM(require_react(), 1); +function useForceUpdate2() { + const unloadingRef = (0, import_react137.useRef)(false); + const [count, setCount] = (0, import_react137.useState)(0); + useUnmountEffect2(() => { + unloadingRef.current = true; + }); + return (0, import_react137.useCallback)(() => { + if (!unloadingRef.current) { + setCount(count + 1); + } + }, [count]); +} + +// node_modules/@chakra-ui/hooks/dist/chunk-ATO3JZNW.mjs +var import_react138 = __toESM(require_react(), 1); +function useAnimationState(props) { + const { isOpen, ref } = props; + const [mounted, setMounted] = (0, import_react138.useState)(isOpen); + const [once2, setOnce] = (0, import_react138.useState)(false); + (0, import_react138.useEffect)(() => { + if (!once2) { + setMounted(isOpen); + setOnce(true); + } + }, [isOpen, once2, mounted]); + useEventListener2( + "animationend", + () => { + setMounted(isOpen); + }, + () => ref.current + ); + const hidden = isOpen ? false : !mounted; + return { + present: !hidden, + onComplete() { + var _a8; + const win = getOwnerWindow(ref.current); + const evt = new win.CustomEvent("animationend", { bubbles: true }); + (_a8 = ref.current) == null ? void 0 : _a8.dispatchEvent(evt); + } + }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-BBVTFCMB.mjs +var import_react139 = __toESM(require_react(), 1); +function useBoolean(initialState2 = false) { + const [value, setValue] = (0, import_react139.useState)(initialState2); + const callbacks = (0, import_react139.useMemo)( + () => ({ + on: () => setValue(true), + off: () => setValue(false), + toggle: () => setValue((prev2) => !prev2) + }), + [] + ); + return [value, callbacks]; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-KYYEOW6S.mjs +var import_react140 = __toESM(require_react(), 1); +var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1); +function useClipboard(value, optionsOrTimeout = {}) { + const [hasCopied, setHasCopied] = (0, import_react140.useState)(false); + const [valueState, setValueState] = (0, import_react140.useState)(value); + (0, import_react140.useEffect)(() => setValueState(value), [value]); + const { timeout = 1500, ...copyOptions } = typeof optionsOrTimeout === "number" ? { timeout: optionsOrTimeout } : optionsOrTimeout; + const onCopy = (0, import_react140.useCallback)(() => { + const didCopy = (0, import_copy_to_clipboard.default)(valueState, copyOptions); + setHasCopied(didCopy); + }, [valueState, copyOptions]); + (0, import_react140.useEffect)(() => { + let timeoutId = null; + if (hasCopied) { + timeoutId = window.setTimeout(() => { + setHasCopied(false); + }, timeout); + } + return () => { + if (timeoutId) { + window.clearTimeout(timeoutId); + } + }; + }, [timeout, hasCopied]); + return { + value: valueState, + setValue: setValueState, + onCopy, + hasCopied + }; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-QP32JBMJ.mjs +var import_react141 = __toESM(require_react(), 1); +function useConst(init) { + const ref = (0, import_react141.useRef)(null); + if (ref.current === null) { + ref.current = typeof init === "function" ? init() : init; + } + return ref.current; +} + +// node_modules/@chakra-ui/hooks/dist/chunk-S7MFKWQB.mjs +var import_react142 = __toESM(require_react(), 1); +function useDimensions(ref, observe) { + const [dimensions, setDimensions] = (0, import_react142.useState)(null); + const rafId = (0, import_react142.useRef)(); + useSafeLayoutEffect3(() => { + function measure() { + const node3 = ref.current; + if (!node3) + return; + rafId.current = requestAnimationFrame(() => { + const boxModel = getBox(node3); + setDimensions(boxModel); + }); + } + measure(); + if (observe) { + window.addEventListener("resize", measure); + window.addEventListener("scroll", measure); + } + return () => { + if (observe) { + window.removeEventListener("resize", measure); + window.removeEventListener("scroll", measure); + } + if (rafId.current) { + cancelAnimationFrame(rafId.current); + } + }; + }, [observe]); + return dimensions; +} + +// node_modules/@chakra-ui/input/dist/chunk-FKYN3ZGE.mjs +var import_react143 = __toESM(require_react(), 1); +var import_jsx_runtime78 = __toESM(require_jsx_runtime(), 1); +var [InputGroupStylesProvider, useInputGroupStyles] = createContext2({ + name: `InputGroupStylesContext`, + errorMessage: `useInputGroupStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var InputGroup = forwardRef3( + function InputGroup2(props, ref) { + const styles2 = useMultiStyleConfig("Input", props); + const { children, className, ...rest } = omitThemingProps(props); + const _className = cx("chakra-input__group", className); + const groupStyles = {}; + const validChildren = getValidChildren2(children); + const input = styles2.field; + validChildren.forEach((child) => { + var _a8, _b5; + if (!styles2) + return; + if (input && child.type.id === "InputLeftElement") { + groupStyles.paddingStart = (_a8 = input.height) != null ? _a8 : input.h; + } + if (input && child.type.id === "InputRightElement") { + groupStyles.paddingEnd = (_b5 = input.height) != null ? _b5 : input.h; + } + if (child.type.id === "InputRightAddon") { + groupStyles.borderEndRadius = 0; + } + if (child.type.id === "InputLeftAddon") { + groupStyles.borderStartRadius = 0; + } + }); + const clones = validChildren.map((child) => { + var _a8, _b5; + const theming = compact({ + size: ((_a8 = child.props) == null ? void 0 : _a8.size) || props.size, + variant: ((_b5 = child.props) == null ? void 0 : _b5.variant) || props.variant + }); + return child.type.id !== "Input" ? (0, import_react143.cloneElement)(child, theming) : (0, import_react143.cloneElement)(child, Object.assign(theming, groupStyles, child.props)); + }); + return (0, import_jsx_runtime78.jsx)( + chakra.div, + { + className: _className, + ref, + __css: { + width: "100%", + display: "flex", + position: "relative", + // Parts of inputs override z-index to ensure that they stack correctly on each other + // Create a new stacking context so that these overrides don't leak out and conflict with other z-indexes + isolation: "isolate", + ...styles2.group + }, + "data-group": true, + ...rest, + children: (0, import_jsx_runtime78.jsx)(InputGroupStylesProvider, { value: styles2, children: clones }) + } + ); + } +); +InputGroup.displayName = "InputGroup"; + +// node_modules/@chakra-ui/input/dist/chunk-ADBZ7YHX.mjs +var import_jsx_runtime79 = __toESM(require_jsx_runtime(), 1); +var placements = { + left: { + marginEnd: "-1px", + borderEndRadius: 0, + borderEndColor: "transparent" + }, + right: { + marginStart: "-1px", + borderStartRadius: 0, + borderStartColor: "transparent" + } +}; +var StyledAddon = chakra("div", { + baseStyle: { + flex: "0 0 auto", + width: "auto", + display: "flex", + alignItems: "center", + whiteSpace: "nowrap" + } +}); +var InputAddon = forwardRef3( + function InputAddon2(props, ref) { + var _a8; + const { placement = "left", ...rest } = props; + const placementStyles = (_a8 = placements[placement]) != null ? _a8 : {}; + const styles2 = useInputGroupStyles(); + return (0, import_jsx_runtime79.jsx)( + StyledAddon, + { + ref, + ...rest, + __css: { + ...styles2.addon, + ...placementStyles + } + } + ); + } +); +InputAddon.displayName = "InputAddon"; +var InputLeftAddon = forwardRef3( + function InputLeftAddon2(props, ref) { + return (0, import_jsx_runtime79.jsx)( + InputAddon, + { + ref, + placement: "left", + ...props, + className: cx("chakra-input__left-addon", props.className) + } + ); + } +); +InputLeftAddon.displayName = "InputLeftAddon"; +InputLeftAddon.id = "InputLeftAddon"; +var InputRightAddon = forwardRef3( + function InputRightAddon2(props, ref) { + return (0, import_jsx_runtime79.jsx)( + InputAddon, + { + ref, + placement: "right", + ...props, + className: cx("chakra-input__right-addon", props.className) + } + ); + } +); +InputRightAddon.displayName = "InputRightAddon"; +InputRightAddon.id = "InputRightAddon"; + +// node_modules/@chakra-ui/input/dist/chunk-2ZHRCML3.mjs +var import_jsx_runtime80 = __toESM(require_jsx_runtime(), 1); +var StyledInputElement = chakra("div", { + baseStyle: { + display: "flex", + alignItems: "center", + justifyContent: "center", + position: "absolute", + top: "0", + zIndex: 2 + } +}); +var InputElement = forwardRef3(function InputElement2(props, ref) { + var _a8, _b5; + const { placement = "left", ...rest } = props; + const styles2 = useInputGroupStyles(); + const input = styles2.field; + const attr = placement === "left" ? "insetStart" : "insetEnd"; + const elementStyles = { + [attr]: "0", + width: (_a8 = input == null ? void 0 : input.height) != null ? _a8 : input == null ? void 0 : input.h, + height: (_b5 = input == null ? void 0 : input.height) != null ? _b5 : input == null ? void 0 : input.h, + fontSize: input == null ? void 0 : input.fontSize, + ...styles2.element + }; + return (0, import_jsx_runtime80.jsx)(StyledInputElement, { ref, __css: elementStyles, ...rest }); +}); +InputElement.id = "InputElement"; +InputElement.displayName = "InputElement"; +var InputLeftElement = forwardRef3( + function InputLeftElement2(props, ref) { + const { className, ...rest } = props; + const _className = cx("chakra-input__left-element", className); + return (0, import_jsx_runtime80.jsx)( + InputElement, + { + ref, + placement: "left", + className: _className, + ...rest + } + ); + } +); +InputLeftElement.id = "InputLeftElement"; +InputLeftElement.displayName = "InputLeftElement"; +var InputRightElement = forwardRef3( + function InputRightElement2(props, ref) { + const { className, ...rest } = props; + const _className = cx("chakra-input__right-element", className); + return (0, import_jsx_runtime80.jsx)( + InputElement, + { + ref, + placement: "right", + className: _className, + ...rest + } + ); + } +); +InputRightElement.id = "InputRightElement"; +InputRightElement.displayName = "InputRightElement"; + +// node_modules/@chakra-ui/input/dist/chunk-6CVSDS6C.mjs +var import_jsx_runtime81 = __toESM(require_jsx_runtime(), 1); +var Input = forwardRef3(function Input2(props, ref) { + const { htmlSize, ...rest } = props; + const styles2 = useMultiStyleConfig("Input", rest); + const ownProps = omitThemingProps(rest); + const input = useFormControl(ownProps); + const _className = cx("chakra-input", props.className); + return (0, import_jsx_runtime81.jsx)( + chakra.input, + { + size: htmlSize, + ...input, + __css: styles2.field, + ref, + className: _className + } + ); +}); +Input.displayName = "Input"; +Input.id = "Input"; + +// node_modules/@chakra-ui/layout/dist/chunk-K7XRJ7NL.mjs +var import_jsx_runtime82 = __toESM(require_jsx_runtime(), 1); +var Link = forwardRef3(function Link2(props, ref) { + const styles2 = useStyleConfig("Link", props); + const { className, isExternal, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime82.jsx)( + chakra.a, + { + target: isExternal ? "_blank" : void 0, + rel: isExternal ? "noopener" : void 0, + ref, + className: cx("chakra-link", className), + ...rest, + __css: styles2 + } + ); +}); +Link.displayName = "Link"; + +// node_modules/@chakra-ui/layout/dist/chunk-46CXQZ4E.mjs +var import_jsx_runtime83 = __toESM(require_jsx_runtime(), 1); +var [ListStylesProvider, useListStyles] = createContext2({ + name: `ListStylesContext`, + errorMessage: `useListStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var List = forwardRef3(function List2(props, ref) { + const styles2 = useMultiStyleConfig("List", props); + const { + children, + styleType = "none", + stylePosition, + spacing: spacing2, + ...rest + } = omitThemingProps(props); + const validChildren = getValidChildren2(children); + const selector = "& > *:not(style) ~ *:not(style)"; + const spacingStyle = spacing2 ? { [selector]: { mt: spacing2 } } : {}; + return (0, import_jsx_runtime83.jsx)(ListStylesProvider, { value: styles2, children: (0, import_jsx_runtime83.jsx)( + chakra.ul, + { + ref, + listStyleType: styleType, + listStylePosition: stylePosition, + role: "list", + __css: { ...styles2.container, ...spacingStyle }, + ...rest, + children: validChildren + } + ) }); +}); +List.displayName = "List"; +var OrderedList = forwardRef3((props, ref) => { + const { as, ...rest } = props; + return (0, import_jsx_runtime83.jsx)(List, { ref, as: "ol", styleType: "decimal", marginStart: "1em", ...rest }); +}); +OrderedList.displayName = "OrderedList"; +var UnorderedList = forwardRef3(function UnorderedList2(props, ref) { + const { as, ...rest } = props; + return (0, import_jsx_runtime83.jsx)(List, { ref, as: "ul", styleType: "initial", marginStart: "1em", ...rest }); +}); +UnorderedList.displayName = "UnorderedList"; +var ListItem = forwardRef3(function ListItem2(props, ref) { + const styles2 = useListStyles(); + return (0, import_jsx_runtime83.jsx)(chakra.li, { ref, ...props, __css: styles2.item }); +}); +ListItem.displayName = "ListItem"; +var ListIcon = forwardRef3(function ListIcon2(props, ref) { + const styles2 = useListStyles(); + return (0, import_jsx_runtime83.jsx)(Icon, { ref, role: "presentation", ...props, __css: styles2.icon }); +}); +ListIcon.displayName = "ListIcon"; + +// node_modules/@chakra-ui/layout/dist/chunk-JARCRF6W.mjs +var import_jsx_runtime84 = __toESM(require_jsx_runtime(), 1); +var Grid = forwardRef3(function Grid2(props, ref) { + const { + templateAreas, + gap, + rowGap, + columnGap, + column: column2, + row, + autoFlow, + autoRows, + templateRows, + autoColumns, + templateColumns, + ...rest + } = props; + const styles2 = { + display: "grid", + gridTemplateAreas: templateAreas, + gridGap: gap, + gridRowGap: rowGap, + gridColumnGap: columnGap, + gridAutoColumns: autoColumns, + gridColumn: column2, + gridRow: row, + gridAutoFlow: autoFlow, + gridAutoRows: autoRows, + gridTemplateRows: templateRows, + gridTemplateColumns: templateColumns + }; + return (0, import_jsx_runtime84.jsx)(chakra.div, { ref, __css: styles2, ...rest }); +}); +Grid.displayName = "Grid"; + +// node_modules/@chakra-ui/breakpoint-utils/dist/chunk-G72KV6MB.mjs +var breakpoints3 = Object.freeze([ + "base", + "sm", + "md", + "lg", + "xl", + "2xl" +]); +function mapResponsive2(prop, mapper) { + if (Array.isArray(prop)) { + return prop.map((item) => item === null ? null : mapper(item)); + } + if (isObject(prop)) { + return Object.keys(prop).reduce((result, key) => { + result[key] = mapper(prop[key]); + return result; + }, {}); + } + if (prop != null) { + return mapper(prop); + } + return null; +} +function arrayToObjectNotation2(values, bps = breakpoints3) { + const result = {}; + values.forEach((value, index) => { + const key = bps[index]; + if (value == null) + return; + result[key] = value; + }); + return result; +} + +// node_modules/@chakra-ui/layout/dist/chunk-NEK3OOAM.mjs +var import_jsx_runtime85 = __toESM(require_jsx_runtime(), 1); +var SimpleGrid = forwardRef3( + function SimpleGrid2(props, ref) { + const { columns, spacingX, spacingY, spacing: spacing2, minChildWidth, ...rest } = props; + const theme2 = useTheme2(); + const templateColumns = minChildWidth ? widthToColumns(minChildWidth, theme2) : countToColumns(columns); + return (0, import_jsx_runtime85.jsx)( + Grid, + { + ref, + gap: spacing2, + columnGap: spacingX, + rowGap: spacingY, + templateColumns, + ...rest + } + ); + } +); +SimpleGrid.displayName = "SimpleGrid"; +function toPx(n) { + return typeof n === "number" ? `${n}px` : n; +} +function widthToColumns(width, theme2) { + return mapResponsive2(width, (value) => { + const _value = getToken("sizes", value, toPx(value))(theme2); + return value === null ? null : `repeat(auto-fit, minmax(${_value}, 1fr))`; + }); +} +function countToColumns(count) { + return mapResponsive2( + count, + (value) => value === null ? null : `repeat(${value}, minmax(0, 1fr))` + ); +} + +// node_modules/@chakra-ui/layout/dist/chunk-BL2ZZSHG.mjs +var Spacer = chakra("div", { + baseStyle: { + flex: 1, + justifySelf: "stretch", + alignSelf: "stretch" + } +}); +Spacer.displayName = "Spacer"; + +// node_modules/@chakra-ui/layout/dist/chunk-2OOHT3W5.mjs +var import_jsx_runtime86 = __toESM(require_jsx_runtime(), 1); +var Text = forwardRef3(function Text2(props, ref) { + const styles2 = useStyleConfig("Text", props); + const { className, align, decoration, casing, ...rest } = omitThemingProps(props); + const aliasedProps = compact({ + textAlign: props.align, + textDecoration: props.decoration, + textTransform: props.casing + }); + return (0, import_jsx_runtime86.jsx)( + chakra.p, + { + ref, + className: cx("chakra-text", props.className), + ...aliasedProps, + ...rest, + __css: styles2 + } + ); +}); +Text.displayName = "Text"; + +// node_modules/@chakra-ui/layout/dist/chunk-7ELO524Q.mjs +var import_react144 = __toESM(require_react(), 1); +var import_jsx_runtime87 = __toESM(require_jsx_runtime(), 1); +var Wrap = forwardRef3(function Wrap2(props, ref) { + const { + spacing: spacing2 = "0.5rem", + spacingX, + spacingY, + children, + justify, + direction: direction2, + align, + className, + shouldWrapChildren, + ...rest + } = props; + const _children = (0, import_react144.useMemo)( + () => shouldWrapChildren ? import_react144.Children.map(children, (child, index) => (0, import_jsx_runtime87.jsx)(WrapItem, { children: child }, index)) : children, + [children, shouldWrapChildren] + ); + return (0, import_jsx_runtime87.jsx)(chakra.div, { ref, className: cx("chakra-wrap", className), ...rest, children: (0, import_jsx_runtime87.jsx)( + chakra.ul, + { + className: "chakra-wrap__list", + __css: { + display: "flex", + flexWrap: "wrap", + justifyContent: justify, + alignItems: align, + flexDirection: direction2, + listStyleType: "none", + gap: spacing2, + columnGap: spacingX, + rowGap: spacingY, + padding: "0" + }, + children: _children + } + ) }); +}); +Wrap.displayName = "Wrap"; +var WrapItem = forwardRef3(function WrapItem2(props, ref) { + const { className, ...rest } = props; + return (0, import_jsx_runtime87.jsx)( + chakra.li, + { + ref, + __css: { display: "flex", alignItems: "flex-start" }, + className: cx("chakra-wrap__listitem", className), + ...rest + } + ); +}); +WrapItem.displayName = "WrapItem"; + +// node_modules/@chakra-ui/layout/dist/chunk-KTD65HY5.mjs +var import_jsx_runtime88 = __toESM(require_jsx_runtime(), 1); +var StackDivider = (props) => (0, import_jsx_runtime88.jsx)( + chakra.div, + { + className: "chakra-stack__divider", + ...props, + __css: { + ...props["__css"], + borderWidth: 0, + alignSelf: "stretch", + borderColor: "inherit", + width: "auto", + height: "auto" + } + } +); +StackDivider.displayName = "StackDivider"; + +// node_modules/@chakra-ui/layout/dist/chunk-ZFQCCYWD.mjs +var import_jsx_runtime89 = __toESM(require_jsx_runtime(), 1); +var StackItem = (props) => (0, import_jsx_runtime89.jsx)( + chakra.div, + { + className: "chakra-stack__item", + ...props, + __css: { + display: "inline-block", + flex: "0 0 auto", + minWidth: 0, + ...props["__css"] + } + } +); +StackItem.displayName = "StackItem"; + +// node_modules/@chakra-ui/layout/dist/chunk-5VJV6UNA.mjs +function getDividerStyles(options) { + const { spacing: spacing2, direction: direction2 } = options; + const dividerStyles = { + column: { + my: spacing2, + mx: 0, + borderLeftWidth: 0, + borderBottomWidth: "1px" + }, + "column-reverse": { + my: spacing2, + mx: 0, + borderLeftWidth: 0, + borderBottomWidth: "1px" + }, + row: { + mx: spacing2, + my: 0, + borderLeftWidth: "1px", + borderBottomWidth: 0 + }, + "row-reverse": { + mx: spacing2, + my: 0, + borderLeftWidth: "1px", + borderBottomWidth: 0 + } + }; + return { + "&": mapResponsive2( + direction2, + (value) => dividerStyles[value] + ) + }; +} + +// node_modules/@chakra-ui/layout/dist/chunk-ZHMYA64R.mjs +var import_react145 = __toESM(require_react(), 1); +var import_jsx_runtime90 = __toESM(require_jsx_runtime(), 1); +var Stack = forwardRef3((props, ref) => { + const { + isInline, + direction: directionProp, + align, + justify, + spacing: spacing2 = "0.5rem", + wrap: wrap5, + children, + divider, + className, + shouldWrapChildren, + ...rest + } = props; + const direction2 = isInline ? "row" : directionProp != null ? directionProp : "column"; + const dividerStyle = (0, import_react145.useMemo)( + () => getDividerStyles({ spacing: spacing2, direction: direction2 }), + [spacing2, direction2] + ); + const hasDivider = !!divider; + const shouldUseChildren = !shouldWrapChildren && !hasDivider; + const clones = (0, import_react145.useMemo)(() => { + const validChildren = getValidChildren2(children); + return shouldUseChildren ? validChildren : validChildren.map((child, index) => { + const key = typeof child.key !== "undefined" ? child.key : index; + const isLast = index + 1 === validChildren.length; + const wrappedChild = (0, import_jsx_runtime90.jsx)(StackItem, { children: child }, key); + const _child = shouldWrapChildren ? wrappedChild : child; + if (!hasDivider) + return _child; + const clonedDivider = (0, import_react145.cloneElement)( + divider, + { + __css: dividerStyle + } + ); + const _divider = isLast ? null : clonedDivider; + return (0, import_jsx_runtime90.jsxs)(import_react145.Fragment, { children: [ + _child, + _divider + ] }, key); + }); + }, [ + divider, + dividerStyle, + hasDivider, + shouldUseChildren, + shouldWrapChildren, + children + ]); + const _className = cx("chakra-stack", className); + return (0, import_jsx_runtime90.jsx)( + chakra.div, + { + ref, + display: "flex", + alignItems: align, + justifyContent: justify, + flexDirection: direction2, + flexWrap: wrap5, + gap: hasDivider ? void 0 : spacing2, + className: _className, + ...rest, + children: clones + } + ); +}); +Stack.displayName = "Stack"; + +// node_modules/@chakra-ui/layout/dist/chunk-NTCQBYKE.mjs +var import_jsx_runtime91 = __toESM(require_jsx_runtime(), 1); +var VStack = forwardRef3((props, ref) => (0, import_jsx_runtime91.jsx)(Stack, { align: "center", ...props, direction: "column", ref })); +VStack.displayName = "VStack"; + +// node_modules/@chakra-ui/layout/dist/chunk-3ASUQ6PA.mjs +var import_jsx_runtime92 = __toESM(require_jsx_runtime(), 1); +var HStack = forwardRef3((props, ref) => (0, import_jsx_runtime92.jsx)(Stack, { align: "center", ...props, direction: "row", ref })); +HStack.displayName = "HStack"; + +// node_modules/@chakra-ui/layout/dist/chunk-ZPFGWTBB.mjs +var import_jsx_runtime93 = __toESM(require_jsx_runtime(), 1); +function spanFn(span) { + return mapResponsive2( + span, + (value) => value === "auto" ? "auto" : `span ${value}/span ${value}` + ); +} +var GridItem = forwardRef3(function GridItem2(props, ref) { + const { + area, + colSpan, + colStart, + colEnd, + rowEnd, + rowSpan, + rowStart, + ...rest + } = props; + const styles2 = compact({ + gridArea: area, + gridColumn: spanFn(colSpan), + gridRow: spanFn(rowSpan), + gridColumnStart: colStart, + gridColumnEnd: colEnd, + gridRowStart: rowStart, + gridRowEnd: rowEnd + }); + return (0, import_jsx_runtime93.jsx)(chakra.div, { ref, __css: styles2, ...rest }); +}); +GridItem.displayName = "GridItem"; + +// node_modules/@chakra-ui/layout/dist/chunk-7OLJDQMT.mjs +var import_jsx_runtime94 = __toESM(require_jsx_runtime(), 1); +var Heading = forwardRef3(function Heading2(props, ref) { + const styles2 = useStyleConfig("Heading", props); + const { className, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime94.jsx)( + chakra.h2, + { + ref, + className: cx("chakra-heading", props.className), + ...rest, + __css: styles2 + } + ); +}); +Heading.displayName = "Heading"; + +// node_modules/@chakra-ui/layout/dist/chunk-PULVB27S.mjs +var import_jsx_runtime95 = __toESM(require_jsx_runtime(), 1); +var Box = chakra("div"); +Box.displayName = "Box"; +var Square = forwardRef3(function Square2(props, ref) { + const { size: size2, centerContent = true, ...rest } = props; + const styles2 = centerContent ? { display: "flex", alignItems: "center", justifyContent: "center" } : {}; + return (0, import_jsx_runtime95.jsx)( + Box, + { + ref, + boxSize: size2, + __css: { + ...styles2, + flexShrink: 0, + flexGrow: 0 + }, + ...rest + } + ); +}); +Square.displayName = "Square"; +var Circle = forwardRef3(function Circle2(props, ref) { + const { size: size2, ...rest } = props; + return (0, import_jsx_runtime95.jsx)(Square, { size: size2, ref, borderRadius: "9999px", ...rest }); +}); +Circle.displayName = "Circle"; + +// node_modules/@chakra-ui/layout/dist/chunk-6WNMSZKB.mjs +var import_react146 = __toESM(require_react(), 1); +var import_jsx_runtime96 = __toESM(require_jsx_runtime(), 1); +var escapeRegexp = (term) => term.replace(/[|\\{}()[\]^$+*?.-]/g, (char2) => `\\${char2}`); +function buildRegex(query) { + const _query = query.filter((text) => text.length !== 0).map((text) => escapeRegexp(text.trim())); + if (!_query.length) { + return null; + } + return new RegExp(`(${_query.join("|")})`, "ig"); +} +function highlightWords({ text, query }) { + const regex = buildRegex(Array.isArray(query) ? query : [query]); + if (!regex) { + return [{ text, match: false }]; + } + const result = text.split(regex).filter(Boolean); + return result.map((str) => ({ text: str, match: regex.test(str) })); +} +function useHighlight(props) { + const { text, query } = props; + return (0, import_react146.useMemo)(() => highlightWords({ text, query }), [text, query]); +} +var Mark = forwardRef3(function Mark2(props, ref) { + const styles2 = useStyleConfig("Mark", props); + const ownProps = omitThemingProps(props); + return (0, import_jsx_runtime96.jsx)( + Box, + { + ref, + ...ownProps, + as: "mark", + __css: { bg: "transparent", whiteSpace: "nowrap", ...styles2 } + } + ); +}); +function Highlight(props) { + const { children, query, styles: styles2 } = props; + if (typeof children !== "string") { + throw new Error("The children prop of Highlight must be a string"); + } + const chunks = useHighlight({ query, text: children }); + return (0, import_jsx_runtime96.jsx)(import_jsx_runtime96.Fragment, { children: chunks.map((chunk2, index) => { + return chunk2.match ? (0, import_jsx_runtime96.jsx)(Mark, { sx: styles2, children: chunk2.text }, index) : (0, import_jsx_runtime96.jsx)(import_react146.Fragment, { children: chunk2.text }, index); + }) }); +} + +// node_modules/@chakra-ui/layout/dist/chunk-FDDFQHXZ.mjs +var import_react147 = __toESM(require_react(), 1); +var import_jsx_runtime97 = __toESM(require_jsx_runtime(), 1); +var Indicator = forwardRef3(function Indicator2(props, ref) { + const { + offsetX, + offsetY, + offset = "0", + placement = "top-end", + ...rest + } = props; + const styles2 = (0, import_react147.useMemo)( + () => ({ + display: "inline-flex", + justifyContent: "center", + alignItems: "center", + position: "absolute", + insetBlockStart: mapResponsive2(placement, (v) => { + const [side] = v.split("-"); + const map = { + top: offsetY != null ? offsetY : offset, + middle: "50%", + bottom: "auto" + }; + return map[side]; + }), + insetBlockEnd: mapResponsive2(placement, (v) => { + const [side] = v.split("-"); + const map = { + top: "auto", + middle: "50%", + bottom: offsetY != null ? offsetY : offset + }; + return map[side]; + }), + insetStart: mapResponsive2(placement, (v) => { + const [, align] = v.split("-"); + const map = { + start: offsetX != null ? offsetX : offset, + center: "50%", + end: "auto" + }; + return map[align]; + }), + insetEnd: mapResponsive2(placement, (v) => { + const [, align] = v.split("-"); + const map = { + start: "auto", + center: "50%", + end: offsetX != null ? offsetX : offset + }; + return map[align]; + }), + translate: mapResponsive2(placement, (v) => { + const [side, align] = v.split("-"); + const mapX = { start: "-50%", center: "-50%", end: "50%" }; + const mapY = { top: "-50%", middle: "-50%", bottom: "50%" }; + return `${mapX[align]} ${mapY[side]}`; + }) + }), + [offset, offsetX, offsetY, placement] + ); + return (0, import_jsx_runtime97.jsx)(chakra.div, { ref, __css: styles2, ...rest }); +}); + +// node_modules/@chakra-ui/layout/dist/chunk-EBIU6VW7.mjs +var import_jsx_runtime98 = __toESM(require_jsx_runtime(), 1); +var Kbd = forwardRef3(function Kbd2(props, ref) { + const styles2 = useStyleConfig("Kbd", props); + const { className, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime98.jsx)( + chakra.kbd, + { + ref, + className: cx("chakra-kbd", className), + ...rest, + __css: { + fontFamily: "mono", + ...styles2 + } + } + ); +}); +Kbd.displayName = "Kbd"; + +// node_modules/@chakra-ui/layout/dist/chunk-NRJBSIIZ.mjs +var import_jsx_runtime99 = __toESM(require_jsx_runtime(), 1); +var LinkOverlay = forwardRef3( + function LinkOverlay2(props, ref) { + const { isExternal, target, rel, className, ...rest } = props; + return (0, import_jsx_runtime99.jsx)( + chakra.a, + { + ...rest, + ref, + className: cx("chakra-linkbox__overlay", className), + rel: isExternal ? "noopener noreferrer" : rel, + target: isExternal ? "_blank" : target, + __css: { + position: "static", + "&::before": { + content: "''", + cursor: "inherit", + display: "block", + position: "absolute", + top: 0, + left: 0, + zIndex: 0, + width: "100%", + height: "100%" + } + } + } + ); + } +); +var LinkBox = forwardRef3(function LinkBox2(props, ref) { + const { className, ...rest } = props; + return (0, import_jsx_runtime99.jsx)( + chakra.div, + { + ref, + position: "relative", + ...rest, + className: cx("chakra-linkbox", className), + __css: { + /* Elevate the links and abbreviations up */ + "a[href]:not(.chakra-linkbox__overlay), abbr[title]": { + position: "relative", + zIndex: 1 + } + } + } + ); +}); + +// node_modules/@chakra-ui/layout/dist/chunk-ZVFRDZZY.mjs +var import_react148 = __toESM(require_react(), 1); +var import_jsx_runtime100 = __toESM(require_jsx_runtime(), 1); +var AspectRatio = forwardRef3(function(props, ref) { + const { ratio = 4 / 3, children, className, ...rest } = props; + const child = import_react148.Children.only(children); + const _className = cx("chakra-aspect-ratio", className); + return (0, import_jsx_runtime100.jsx)( + chakra.div, + { + ref, + position: "relative", + className: _className, + _before: { + height: 0, + content: `""`, + display: "block", + paddingBottom: mapResponsive2(ratio, (r2) => `${1 / r2 * 100}%`) + }, + __css: { + "& > *:not(style)": { + overflow: "hidden", + position: "absolute", + top: "0", + right: "0", + bottom: "0", + left: "0", + display: "flex", + justifyContent: "center", + alignItems: "center", + width: "100%", + height: "100%" + }, + "& > img, & > video": { + objectFit: "cover" + } + }, + ...rest, + children: child + } + ); +}); +AspectRatio.displayName = "AspectRatio"; + +// node_modules/@chakra-ui/layout/dist/chunk-Z6RXEUPO.mjs +var import_jsx_runtime101 = __toESM(require_jsx_runtime(), 1); +var Badge = forwardRef3(function Badge2(props, ref) { + const styles2 = useStyleConfig("Badge", props); + const { className, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime101.jsx)( + chakra.span, + { + ref, + className: cx("chakra-badge", props.className), + ...rest, + __css: { + display: "inline-block", + whiteSpace: "nowrap", + verticalAlign: "middle", + ...styles2 + } + } + ); +}); +Badge.displayName = "Badge"; + +// node_modules/@chakra-ui/layout/dist/chunk-FAWTVNS3.mjs +var import_jsx_runtime102 = __toESM(require_jsx_runtime(), 1); +var Center = chakra("div", { + baseStyle: { + display: "flex", + alignItems: "center", + justifyContent: "center" + } +}); +Center.displayName = "Center"; +var centerStyles = { + horizontal: { + insetStart: "50%", + transform: "translateX(-50%)" + }, + vertical: { + top: "50%", + transform: "translateY(-50%)" + }, + both: { + insetStart: "50%", + top: "50%", + transform: "translate(-50%, -50%)" + } +}; +var AbsoluteCenter = forwardRef3( + function AbsoluteCenter2(props, ref) { + const { axis = "both", ...rest } = props; + return (0, import_jsx_runtime102.jsx)( + chakra.div, + { + ref, + __css: centerStyles[axis], + ...rest, + position: "absolute" + } + ); + } +); + +// node_modules/@chakra-ui/layout/dist/chunk-LZZHVJFG.mjs +var import_jsx_runtime103 = __toESM(require_jsx_runtime(), 1); +var Code = forwardRef3(function Code2(props, ref) { + const styles2 = useStyleConfig("Code", props); + const { className, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime103.jsx)( + chakra.code, + { + ref, + className: cx("chakra-code", props.className), + ...rest, + __css: { + display: "inline-block", + ...styles2 + } + } + ); +}); +Code.displayName = "Code"; + +// node_modules/@chakra-ui/layout/dist/chunk-5MKCW436.mjs +var import_jsx_runtime104 = __toESM(require_jsx_runtime(), 1); +var Container2 = forwardRef3(function Container22(props, ref) { + const { className, centerContent, ...rest } = omitThemingProps(props); + const styles2 = useStyleConfig("Container", props); + return (0, import_jsx_runtime104.jsx)( + chakra.div, + { + ref, + className: cx("chakra-container", className), + ...rest, + __css: { + ...styles2, + ...centerContent && { + display: "flex", + flexDirection: "column", + alignItems: "center" + } + } + } + ); +}); +Container2.displayName = "Container"; + +// node_modules/@chakra-ui/layout/dist/chunk-W7WUSNWJ.mjs +var import_jsx_runtime105 = __toESM(require_jsx_runtime(), 1); +var Divider = forwardRef3(function Divider2(props, ref) { + const { + borderLeftWidth, + borderBottomWidth, + borderTopWidth, + borderRightWidth, + borderWidth, + borderStyle, + borderColor, + ...styles2 + } = useStyleConfig("Divider", props); + const { + className, + orientation = "horizontal", + __css, + ...rest + } = omitThemingProps(props); + const dividerStyles = { + vertical: { + borderLeftWidth: borderLeftWidth || borderRightWidth || borderWidth || "1px", + height: "100%" + }, + horizontal: { + borderBottomWidth: borderBottomWidth || borderTopWidth || borderWidth || "1px", + width: "100%" + } + }; + return (0, import_jsx_runtime105.jsx)( + chakra.hr, + { + ref, + "aria-orientation": orientation, + ...rest, + __css: { + ...styles2, + border: "0", + borderColor, + borderStyle, + ...dividerStyles[orientation], + ...__css + }, + className: cx("chakra-divider", className) + } + ); +}); +Divider.displayName = "Divider"; + +// node_modules/@chakra-ui/layout/dist/chunk-KRPLQIP4.mjs +var import_jsx_runtime106 = __toESM(require_jsx_runtime(), 1); +var Flex = forwardRef3(function Flex2(props, ref) { + const { direction: direction2, align, justify, wrap: wrap5, basis, grow, shrink: shrink3, ...rest } = props; + const styles2 = { + display: "flex", + flexDirection: direction2, + alignItems: align, + justifyContent: justify, + flexWrap: wrap5, + flexBasis: basis, + flexGrow: grow, + flexShrink: shrink3 + }; + return (0, import_jsx_runtime106.jsx)(chakra.div, { ref, __css: styles2, ...rest }); +}); +Flex.displayName = "Flex"; + +// node_modules/@chakra-ui/media-query/dist/chunk-57I6FYPZ.mjs +var import_react149 = __toESM(require_react(), 1); +function useMediaQuery(query, options = {}) { + const { ssr = true, fallback } = options; + const { getWindow } = useEnvironment(); + const queries = Array.isArray(query) ? query : [query]; + let fallbackValues = Array.isArray(fallback) ? fallback : [fallback]; + fallbackValues = fallbackValues.filter((v) => v != null); + const [value, setValue] = (0, import_react149.useState)(() => { + return queries.map((query2, index) => ({ + media: query2, + matches: ssr ? !!fallbackValues[index] : getWindow().matchMedia(query2).matches + })); + }); + (0, import_react149.useEffect)(() => { + const win = getWindow(); + setValue( + queries.map((query2) => ({ + media: query2, + matches: win.matchMedia(query2).matches + })) + ); + const mql = queries.map((query2) => win.matchMedia(query2)); + const handler = (evt) => { + setValue((prev2) => { + return prev2.slice().map((item) => { + if (item.media === evt.media) + return { ...item, matches: evt.matches }; + return item; + }); + }); + }; + mql.forEach((mql2) => { + if (typeof mql2.addListener === "function") { + mql2.addListener(handler); + } else { + mql2.addEventListener("change", handler); + } + }); + return () => { + mql.forEach((mql2) => { + if (typeof mql2.removeListener === "function") { + mql2.removeListener(handler); + } else { + mql2.removeEventListener("change", handler); + } + }); + }; + }, [getWindow]); + return value.map((item) => item.matches); +} + +// node_modules/@chakra-ui/media-query/dist/chunk-Q2OSBGYW.mjs +function Visibility(props) { + const { breakpoint, hide, children, ssr } = props; + const [show] = useMediaQuery(breakpoint, { ssr }); + const isVisible3 = hide ? !show : show; + const rendered = isVisible3 ? children : null; + return rendered; +} + +// node_modules/@chakra-ui/media-query/dist/chunk-OYHRTWD2.mjs +var getBreakpoint = (theme2, value) => { + var _a8, _b5; + return (_b5 = (_a8 = theme2 == null ? void 0 : theme2.breakpoints) == null ? void 0 : _a8[value]) != null ? _b5 : value; +}; +function useQuery(props) { + const { breakpoint = "", below, above } = props; + const theme2 = useTheme2(); + const bpBelow = getBreakpoint(theme2, below); + const bpAbove = getBreakpoint(theme2, above); + let query = breakpoint; + if (bpBelow) { + query = `(max-width: ${bpBelow})`; + } else if (bpAbove) { + query = `(min-width: ${bpAbove})`; + } + return query; +} + +// node_modules/@chakra-ui/media-query/dist/chunk-E2LBHKJ2.mjs +var import_jsx_runtime107 = __toESM(require_jsx_runtime(), 1); +function Hide(props) { + const { children, ssr } = props; + const query = useQuery(props); + return (0, import_jsx_runtime107.jsx)(Visibility, { breakpoint: query, hide: true, ssr, children }); +} +Hide.displayName = "Hide"; + +// node_modules/@chakra-ui/media-query/dist/chunk-6RI7LWPK.mjs +function usePrefersReducedMotion(options) { + const [prefersReducedMotion2] = useMediaQuery( + "(prefers-reduced-motion: reduce)", + options + ); + return prefersReducedMotion2; +} +function useColorModePreference(options) { + const [isLight2, isDark2] = useMediaQuery( + ["(prefers-color-scheme: light)", "(prefers-color-scheme: dark)"], + options + ); + if (isLight2) + return "light"; + if (isDark2) + return "dark"; + return void 0; +} + +// node_modules/@chakra-ui/media-query/dist/chunk-VXCSBZ7K.mjs +var import_jsx_runtime108 = __toESM(require_jsx_runtime(), 1); +function Show(props) { + const { children, ssr } = props; + const query = useQuery(props); + return (0, import_jsx_runtime108.jsx)(Visibility, { breakpoint: query, ssr, children }); +} +Show.displayName = "Show"; + +// node_modules/@chakra-ui/media-query/dist/chunk-C53CKZDP.mjs +function getClosestValue(values, breakpoint, breakpoints4 = breakpoints3) { + let index = Object.keys(values).indexOf(breakpoint); + if (index !== -1) { + return values[breakpoint]; + } + let stopIndex = breakpoints4.indexOf(breakpoint); + while (stopIndex >= 0) { + const key = breakpoints4[stopIndex]; + if (values.hasOwnProperty(key)) { + index = stopIndex; + break; + } + stopIndex -= 1; + } + if (index !== -1) { + const key = breakpoints4[index]; + return values[key]; + } + return void 0; +} + +// node_modules/@chakra-ui/media-query/dist/chunk-6KW5I77S.mjs +function useBreakpoint(arg) { + var _a8, _b5; + const opts = isObject(arg) ? arg : { fallback: arg != null ? arg : "base" }; + const theme2 = useTheme2(); + const breakpoints4 = theme2.__breakpoints.details.map( + ({ minMaxQuery, breakpoint }) => ({ + breakpoint, + query: minMaxQuery.replace("@media screen and ", "") + }) + ); + const fallback = breakpoints4.map((bp) => bp.breakpoint === opts.fallback); + const values = useMediaQuery( + breakpoints4.map((bp) => bp.query), + { fallback, ssr: opts.ssr } + ); + const index = values.findIndex((value) => value == true); + return (_b5 = (_a8 = breakpoints4[index]) == null ? void 0 : _a8.breakpoint) != null ? _b5 : opts.fallback; +} + +// node_modules/@chakra-ui/media-query/dist/chunk-KC77MHL3.mjs +function useBreakpointValue(values, arg) { + var _a8; + const opts = isObject(arg) ? arg : { fallback: arg != null ? arg : "base" }; + const breakpoint = useBreakpoint(opts); + const theme2 = useTheme2(); + if (!breakpoint) + return; + const breakpoints4 = Array.from(((_a8 = theme2.__breakpoints) == null ? void 0 : _a8.keys) || []); + const obj = Array.isArray(values) ? Object.fromEntries( + Object.entries(arrayToObjectNotation2(values, breakpoints4)).map( + ([key, value]) => [key, value] + ) + ) : values; + return getClosestValue(obj, breakpoint, breakpoints4); +} + +// node_modules/@chakra-ui/menu/dist/chunk-YSKACL7R.mjs +var import_react150 = __toESM(require_react(), 1); +function isPrintableCharacter2(event) { + const { key } = event; + return key.length === 1 || key.length > 1 && /[^a-zA-Z0-9]/.test(key); +} +function useShortcut2(props = {}) { + const { timeout = 300, preventDefault = () => true } = props; + const [keys2, setKeys] = (0, import_react150.useState)([]); + const timeoutRef = (0, import_react150.useRef)(); + const flush = () => { + if (timeoutRef.current) { + clearTimeout(timeoutRef.current); + timeoutRef.current = null; + } + }; + const clearKeysAfterDelay = () => { + flush(); + timeoutRef.current = setTimeout(() => { + setKeys([]); + timeoutRef.current = null; + }, timeout); + }; + (0, import_react150.useEffect)(() => flush, []); + function onKeyDown(fn) { + return (event) => { + if (event.key === "Backspace") { + const keysCopy = [...keys2]; + keysCopy.pop(); + setKeys(keysCopy); + return; + } + if (isPrintableCharacter2(event)) { + const keysCopy = keys2.concat(event.key); + if (preventDefault(event)) { + event.preventDefault(); + event.stopPropagation(); + } + setKeys(keysCopy); + fn(keysCopy.join("")); + clearKeysAfterDelay(); + } + }; + } + return onKeyDown; +} + +// node_modules/@chakra-ui/menu/dist/chunk-BWUXSGSJ.mjs +function getNextItemFromSearch2(items, searchString, itemToString, currentItem) { + if (searchString == null) { + return currentItem; + } + if (!currentItem) { + const foundItem = items.find( + (item) => itemToString(item).toLowerCase().startsWith(searchString.toLowerCase()) + ); + return foundItem; + } + const matchingItems = items.filter( + (item) => itemToString(item).toLowerCase().startsWith(searchString.toLowerCase()) + ); + if (matchingItems.length > 0) { + let nextIndex; + if (matchingItems.includes(currentItem)) { + const currentIndex = matchingItems.indexOf(currentItem); + nextIndex = currentIndex + 1; + if (nextIndex === matchingItems.length) { + nextIndex = 0; + } + return matchingItems[nextIndex]; + } + nextIndex = items.indexOf(matchingItems[0]); + return items[nextIndex]; + } + return currentItem; +} + +// node_modules/@chakra-ui/clickable/dist/chunk-VDSXRTOE.mjs +var import_react151 = __toESM(require_react(), 1); +function useEventListeners() { + const listeners = (0, import_react151.useRef)(/* @__PURE__ */ new Map()); + const currentListeners = listeners.current; + const add3 = (0, import_react151.useCallback)((el, type, listener, options) => { + listeners.current.set(listener, { type, el, options }); + el.addEventListener(type, listener, options); + }, []); + const remove = (0, import_react151.useCallback)( + (el, type, listener, options) => { + el.removeEventListener(type, listener, options); + listeners.current.delete(listener); + }, + [] + ); + (0, import_react151.useEffect)( + () => () => { + currentListeners.forEach((value, key) => { + remove(value.el, value.type, key, value.options); + }); + }, + [remove, currentListeners] + ); + return { add: add3, remove }; +} + +// node_modules/@chakra-ui/clickable/dist/chunk-AXLEE3EK.mjs +var import_react152 = __toESM(require_react(), 1); +function isValidElement6(event) { + const element = event.target; + const { tagName, isContentEditable: isContentEditable3 } = element; + return tagName !== "INPUT" && tagName !== "TEXTAREA" && isContentEditable3 !== true; +} +function useClickable(props = {}) { + const { + ref: htmlRef, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + clickOnEnter = true, + clickOnSpace = true, + onMouseDown, + onMouseUp, + onClick, + onKeyDown, + onKeyUp, + tabIndex: tabIndexProp, + onMouseOver, + onMouseLeave, + ...htmlProps + } = props; + const [isButton, setIsButton] = (0, import_react152.useState)(true); + const [isPressed, setIsPressed] = (0, import_react152.useState)(false); + const listeners = useEventListeners(); + const refCallback = (node3) => { + if (!node3) + return; + if (node3.tagName !== "BUTTON") { + setIsButton(false); + } + }; + const tabIndex = isButton ? tabIndexProp : tabIndexProp || 0; + const trulyDisabled = isDisabled3 && !isFocusable3; + const handleClick = (0, import_react152.useCallback)( + (event) => { + if (isDisabled3) { + event.stopPropagation(); + event.preventDefault(); + return; + } + const self2 = event.currentTarget; + self2.focus(); + onClick == null ? void 0 : onClick(event); + }, + [isDisabled3, onClick] + ); + const onDocumentKeyUp = (0, import_react152.useCallback)( + (e) => { + if (isPressed && isValidElement6(e)) { + e.preventDefault(); + e.stopPropagation(); + setIsPressed(false); + listeners.remove(document, "keyup", onDocumentKeyUp, false); + } + }, + [isPressed, listeners] + ); + const handleKeyDown = (0, import_react152.useCallback)( + (event) => { + onKeyDown == null ? void 0 : onKeyDown(event); + if (isDisabled3 || event.defaultPrevented || event.metaKey) { + return; + } + if (!isValidElement6(event.nativeEvent) || isButton) + return; + const shouldClickOnEnter = clickOnEnter && event.key === "Enter"; + const shouldClickOnSpace = clickOnSpace && event.key === " "; + if (shouldClickOnSpace) { + event.preventDefault(); + setIsPressed(true); + } + if (shouldClickOnEnter) { + event.preventDefault(); + const self2 = event.currentTarget; + self2.click(); + } + listeners.add(document, "keyup", onDocumentKeyUp, false); + }, + [ + isDisabled3, + isButton, + onKeyDown, + clickOnEnter, + clickOnSpace, + listeners, + onDocumentKeyUp + ] + ); + const handleKeyUp = (0, import_react152.useCallback)( + (event) => { + onKeyUp == null ? void 0 : onKeyUp(event); + if (isDisabled3 || event.defaultPrevented || event.metaKey) + return; + if (!isValidElement6(event.nativeEvent) || isButton) + return; + const shouldClickOnSpace = clickOnSpace && event.key === " "; + if (shouldClickOnSpace) { + event.preventDefault(); + setIsPressed(false); + const self2 = event.currentTarget; + self2.click(); + } + }, + [clickOnSpace, isButton, isDisabled3, onKeyUp] + ); + const onDocumentMouseUp = (0, import_react152.useCallback)( + (event) => { + if (event.button !== 0) + return; + setIsPressed(false); + listeners.remove(document, "mouseup", onDocumentMouseUp, false); + }, + [listeners] + ); + const handleMouseDown = (0, import_react152.useCallback)( + (event) => { + if (event.button !== 0) + return; + if (isDisabled3) { + event.stopPropagation(); + event.preventDefault(); + return; + } + if (!isButton) { + setIsPressed(true); + } + const target = event.currentTarget; + target.focus({ preventScroll: true }); + listeners.add(document, "mouseup", onDocumentMouseUp, false); + onMouseDown == null ? void 0 : onMouseDown(event); + }, + [isDisabled3, isButton, onMouseDown, listeners, onDocumentMouseUp] + ); + const handleMouseUp = (0, import_react152.useCallback)( + (event) => { + if (event.button !== 0) + return; + if (!isButton) { + setIsPressed(false); + } + onMouseUp == null ? void 0 : onMouseUp(event); + }, + [onMouseUp, isButton] + ); + const handleMouseOver = (0, import_react152.useCallback)( + (event) => { + if (isDisabled3) { + event.preventDefault(); + return; + } + onMouseOver == null ? void 0 : onMouseOver(event); + }, + [isDisabled3, onMouseOver] + ); + const handleMouseLeave = (0, import_react152.useCallback)( + (event) => { + if (isPressed) { + event.preventDefault(); + setIsPressed(false); + } + onMouseLeave == null ? void 0 : onMouseLeave(event); + }, + [isPressed, onMouseLeave] + ); + const ref = mergeRefs2(htmlRef, refCallback); + if (isButton) { + return { + ...htmlProps, + ref, + type: "button", + "aria-disabled": trulyDisabled ? void 0 : isDisabled3, + disabled: trulyDisabled, + onClick: handleClick, + onMouseDown, + onMouseUp, + onKeyUp, + onKeyDown, + onMouseOver, + onMouseLeave + }; + } + return { + ...htmlProps, + ref, + role: "button", + "data-active": dataAttr(isPressed), + "aria-disabled": isDisabled3 ? "true" : void 0, + tabIndex: trulyDisabled ? void 0 : tabIndex, + onClick: handleClick, + onMouseDown: handleMouseDown, + onMouseUp: handleMouseUp, + onKeyUp: handleKeyUp, + onKeyDown: handleKeyDown, + onMouseOver: handleMouseOver, + onMouseLeave: handleMouseLeave + }; +} + +// node_modules/@chakra-ui/react-use-focus-effect/dist/index.mjs +var import_react153 = __toESM(require_react(), 1); +function preventReturnFocus2(containerRef) { + const el = containerRef.current; + if (!el) + return false; + const activeElement = getActiveElement3(el); + if (!activeElement) + return false; + if (el.contains(activeElement)) + return false; + if (isTabbable2(activeElement)) + return true; + return false; +} +function useFocusOnHide2(containerRef, options) { + const { shouldFocus: shouldFocusProp, visible, focusRef } = options; + const shouldFocus = shouldFocusProp && !visible; + useUpdateEffect(() => { + if (!shouldFocus) + return; + if (preventReturnFocus2(containerRef)) { + return; + } + const el = (focusRef == null ? void 0 : focusRef.current) || containerRef.current; + let rafId; + if (el) { + rafId = requestAnimationFrame(() => { + el.focus({ preventScroll: true }); + }); + return () => { + cancelAnimationFrame(rafId); + }; + } + }, [shouldFocus, containerRef, focusRef]); +} +var defaultOptions3 = { + preventScroll: true, + shouldFocus: false +}; +function useFocusOnShow2(target, options = defaultOptions3) { + const { focusRef, preventScroll, shouldFocus, visible } = options; + const element = isRefObject4(target) ? target.current : target; + const autoFocusValue = shouldFocus && visible; + const autoFocusRef = (0, import_react153.useRef)(autoFocusValue); + const lastVisibleRef = (0, import_react153.useRef)(visible); + useSafeLayoutEffect(() => { + if (!lastVisibleRef.current && visible) { + autoFocusRef.current = autoFocusValue; + } + lastVisibleRef.current = visible; + }, [visible, autoFocusValue]); + const onFocus3 = (0, import_react153.useCallback)(() => { + if (!visible || !element || !autoFocusRef.current) + return; + autoFocusRef.current = false; + if (element.contains(document.activeElement)) + return; + if (focusRef == null ? void 0 : focusRef.current) { + requestAnimationFrame(() => { + var _a8; + (_a8 = focusRef.current) == null ? void 0 : _a8.focus({ preventScroll }); + }); + } else { + const tabbableEls = getAllFocusable2(element); + if (tabbableEls.length > 0) { + requestAnimationFrame(() => { + tabbableEls[0].focus({ preventScroll }); + }); + } + } + }, [visible, preventScroll, element, focusRef]); + useUpdateEffect(() => { + onFocus3(); + }, [onFocus3]); + useEventListener(element, "transitionend", onFocus3); +} +function isRefObject4(val) { + return "current" in val; +} + +// node_modules/@chakra-ui/popper/dist/chunk-6WT2JRWX.mjs +var toVar2 = (value, fallback) => ({ + var: value, + varRef: fallback ? `var(${value}, ${fallback})` : `var(${value})` +}); +var cssVars = { + arrowShadowColor: toVar2("--popper-arrow-shadow-color"), + arrowSize: toVar2("--popper-arrow-size", "8px"), + arrowSizeHalf: toVar2("--popper-arrow-size-half"), + arrowBg: toVar2("--popper-arrow-bg"), + transformOrigin: toVar2("--popper-transform-origin"), + arrowOffset: toVar2("--popper-arrow-offset") +}; +function getBoxShadow(placement) { + if (placement.includes("top")) + return `1px 1px 0px 0 var(--popper-arrow-shadow-color)`; + if (placement.includes("bottom")) + return `-1px -1px 0px 0 var(--popper-arrow-shadow-color)`; + if (placement.includes("right")) + return `-1px 1px 0px 0 var(--popper-arrow-shadow-color)`; + if (placement.includes("left")) + return `1px -1px 0px 0 var(--popper-arrow-shadow-color)`; +} +var transforms = { + top: "bottom center", + "top-start": "bottom left", + "top-end": "bottom right", + bottom: "top center", + "bottom-start": "top left", + "bottom-end": "top right", + left: "right center", + "left-start": "right top", + "left-end": "right bottom", + right: "left center", + "right-start": "left top", + "right-end": "left bottom" +}; +var toTransformOrigin = (placement) => transforms[placement]; +var defaultEventListeners = { + scroll: true, + resize: true +}; +function getEventListenerOptions(value) { + let eventListeners; + if (typeof value === "object") { + eventListeners = { + enabled: true, + options: { ...defaultEventListeners, ...value } + }; + } else { + eventListeners = { + enabled: value, + options: defaultEventListeners + }; + } + return eventListeners; +} + +// node_modules/@chakra-ui/popper/dist/chunk-P4KPSAOW.mjs +var matchWidth = { + name: "matchWidth", + enabled: true, + phase: "beforeWrite", + requires: ["computeStyles"], + fn: ({ state: state2 }) => { + state2.styles.popper.width = `${state2.rects.reference.width}px`; + }, + effect: ({ state: state2 }) => () => { + const reference = state2.elements.reference; + state2.elements.popper.style.width = `${reference.offsetWidth}px`; + } +}; +var transformOrigin = { + name: "transformOrigin", + enabled: true, + phase: "write", + fn: ({ state: state2 }) => { + setTransformOrigin(state2); + }, + effect: ({ state: state2 }) => () => { + setTransformOrigin(state2); + } +}; +var setTransformOrigin = (state2) => { + state2.elements.popper.style.setProperty( + cssVars.transformOrigin.var, + toTransformOrigin(state2.placement) + ); +}; +var positionArrow = { + name: "positionArrow", + enabled: true, + phase: "afterWrite", + fn: ({ state: state2 }) => { + setArrowStyles(state2); + } +}; +var setArrowStyles = (state2) => { + var _a8; + if (!state2.placement) + return; + const overrides = getArrowStyle(state2.placement); + if (((_a8 = state2.elements) == null ? void 0 : _a8.arrow) && overrides) { + Object.assign(state2.elements.arrow.style, { + [overrides.property]: overrides.value, + width: cssVars.arrowSize.varRef, + height: cssVars.arrowSize.varRef, + zIndex: -1 + }); + const vars2 = { + [cssVars.arrowSizeHalf.var]: `calc(${cssVars.arrowSize.varRef} / 2 - 1px)`, + [cssVars.arrowOffset.var]: `calc(${cssVars.arrowSizeHalf.varRef} * -1)` + }; + for (const property in vars2) { + state2.elements.arrow.style.setProperty(property, vars2[property]); + } + } +}; +var getArrowStyle = (placement) => { + if (placement.startsWith("top")) { + return { property: "bottom", value: cssVars.arrowOffset.varRef }; + } + if (placement.startsWith("bottom")) { + return { property: "top", value: cssVars.arrowOffset.varRef }; + } + if (placement.startsWith("left")) { + return { property: "right", value: cssVars.arrowOffset.varRef }; + } + if (placement.startsWith("right")) { + return { property: "left", value: cssVars.arrowOffset.varRef }; + } +}; +var innerArrow = { + name: "innerArrow", + enabled: true, + phase: "main", + requires: ["arrow"], + fn: ({ state: state2 }) => { + setInnerArrowStyles(state2); + }, + effect: ({ state: state2 }) => () => { + setInnerArrowStyles(state2); + } +}; +var setInnerArrowStyles = (state2) => { + if (!state2.elements.arrow) + return; + const inner = state2.elements.arrow.querySelector( + "[data-popper-arrow-inner]" + ); + if (!inner) + return; + const boxShadow = getBoxShadow(state2.placement); + if (boxShadow) { + inner.style.setProperty("--popper-arrow-default-shadow", boxShadow); + } + Object.assign(inner.style, { + transform: "rotate(45deg)", + background: cssVars.arrowBg.varRef, + top: 0, + left: 0, + width: "100%", + height: "100%", + position: "absolute", + zIndex: "inherit", + boxShadow: `var(--popper-arrow-shadow, var(--popper-arrow-default-shadow))` + }); +}; + +// node_modules/@chakra-ui/popper/dist/chunk-AUJXXV3B.mjs +var logicals = { + "start-start": { ltr: "left-start", rtl: "right-start" }, + "start-end": { ltr: "left-end", rtl: "right-end" }, + "end-start": { ltr: "right-start", rtl: "left-start" }, + "end-end": { ltr: "right-end", rtl: "left-end" }, + start: { ltr: "left", rtl: "right" }, + end: { ltr: "right", rtl: "left" } +}; +var opposites = { + "auto-start": "auto-end", + "auto-end": "auto-start", + "top-start": "top-end", + "top-end": "top-start", + "bottom-start": "bottom-end", + "bottom-end": "bottom-start" +}; +function getPopperPlacement(placement, dir = "ltr") { + var _a8, _b5; + const value = ((_a8 = logicals[placement]) == null ? void 0 : _a8[dir]) || placement; + if (dir === "ltr") + return value; + return (_b5 = opposites[placement]) != null ? _b5 : value; +} + +// node_modules/@chakra-ui/popper/dist/chunk-LUYFNC5G.mjs +var import_react154 = __toESM(require_react(), 1); +function usePopper(props = {}) { + const { + enabled = true, + modifiers, + placement: placementProp = "bottom", + strategy = "absolute", + arrowPadding = 8, + eventListeners = true, + offset, + gutter = 8, + flip = true, + boundary = "clippingParents", + preventOverflow = true, + matchWidth: matchWidth2, + direction: direction2 = "ltr" + } = props; + const reference = (0, import_react154.useRef)(null); + const popper = (0, import_react154.useRef)(null); + const instance = (0, import_react154.useRef)(null); + const placement = getPopperPlacement(placementProp, direction2); + const cleanup = (0, import_react154.useRef)(() => { + }); + const setupPopper = (0, import_react154.useCallback)(() => { + var _a8; + if (!enabled || !reference.current || !popper.current) + return; + (_a8 = cleanup.current) == null ? void 0 : _a8.call(cleanup); + instance.current = createPopper(reference.current, popper.current, { + placement, + modifiers: [ + innerArrow, + positionArrow, + transformOrigin, + { + ...matchWidth, + enabled: !!matchWidth2 + }, + { + name: "eventListeners", + ...getEventListenerOptions(eventListeners) + }, + { + name: "arrow", + options: { padding: arrowPadding } + }, + { + name: "offset", + options: { + offset: offset != null ? offset : [0, gutter] + } + }, + { + name: "flip", + enabled: !!flip, + options: { padding: 8 } + }, + { + name: "preventOverflow", + enabled: !!preventOverflow, + options: { boundary } + }, + // allow users override internal modifiers + ...modifiers != null ? modifiers : [] + ], + strategy + }); + instance.current.forceUpdate(); + cleanup.current = instance.current.destroy; + }, [ + placement, + enabled, + modifiers, + matchWidth2, + eventListeners, + arrowPadding, + offset, + gutter, + flip, + preventOverflow, + boundary, + strategy + ]); + (0, import_react154.useEffect)(() => { + return () => { + var _a8; + if (!reference.current && !popper.current) { + (_a8 = instance.current) == null ? void 0 : _a8.destroy(); + instance.current = null; + } + }; + }, []); + const referenceRef = (0, import_react154.useCallback)( + (node3) => { + reference.current = node3; + setupPopper(); + }, + [setupPopper] + ); + const getReferenceProps = (0, import_react154.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + ref: mergeRefs2(referenceRef, ref) + }), + [referenceRef] + ); + const popperRef = (0, import_react154.useCallback)( + (node3) => { + popper.current = node3; + setupPopper(); + }, + [setupPopper] + ); + const getPopperProps = (0, import_react154.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + ref: mergeRefs2(popperRef, ref), + style: { + ...props2.style, + position: strategy, + minWidth: matchWidth2 ? void 0 : "max-content", + inset: "0 auto auto 0" + } + }), + [strategy, popperRef, matchWidth2] + ); + const getArrowProps = (0, import_react154.useCallback)((props2 = {}, ref = null) => { + const { size: size2, shadowColor, bg, style, ...rest } = props2; + return { + ...rest, + ref, + "data-popper-arrow": "", + style: getArrowStyle2(props2) + }; + }, []); + const getArrowInnerProps = (0, import_react154.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + ref, + "data-popper-arrow-inner": "" + }), + [] + ); + return { + update() { + var _a8; + (_a8 = instance.current) == null ? void 0 : _a8.update(); + }, + forceUpdate() { + var _a8; + (_a8 = instance.current) == null ? void 0 : _a8.forceUpdate(); + }, + transformOrigin: cssVars.transformOrigin.varRef, + referenceRef, + popperRef, + getPopperProps, + getArrowProps, + getArrowInnerProps, + getReferenceProps + }; +} +function getArrowStyle2(props) { + const { size: size2, shadowColor, bg, style } = props; + const computedStyle = { ...style, position: "absolute" }; + if (size2) { + computedStyle["--popper-arrow-size"] = size2; + } + if (shadowColor) { + computedStyle["--popper-arrow-shadow-color"] = shadowColor; + } + if (bg) { + computedStyle["--popper-arrow-bg"] = bg; + } + return computedStyle; +} + +// node_modules/@chakra-ui/react-use-disclosure/dist/index.mjs +var import_react155 = __toESM(require_react(), 1); +function useDisclosure2(props = {}) { + const { + onClose: onCloseProp, + onOpen: onOpenProp, + isOpen: isOpenProp, + id: idProp + } = props; + const handleOpen = useCallbackRef(onOpenProp); + const handleClose = useCallbackRef(onCloseProp); + const [isOpenState, setIsOpen] = (0, import_react155.useState)(props.defaultIsOpen || false); + const isOpen = isOpenProp !== void 0 ? isOpenProp : isOpenState; + const isControlled = isOpenProp !== void 0; + const uid = (0, import_react155.useId)(); + const id3 = idProp != null ? idProp : `disclosure-${uid}`; + const onClose = (0, import_react155.useCallback)(() => { + if (!isControlled) { + setIsOpen(false); + } + handleClose == null ? void 0 : handleClose(); + }, [isControlled, handleClose]); + const onOpen = (0, import_react155.useCallback)(() => { + if (!isControlled) { + setIsOpen(true); + } + handleOpen == null ? void 0 : handleOpen(); + }, [isControlled, handleOpen]); + const onToggle = (0, import_react155.useCallback)(() => { + if (isOpen) { + onClose(); + } else { + onOpen(); + } + }, [isOpen, onOpen, onClose]); + function getButtonProps(props2 = {}) { + return { + ...props2, + "aria-expanded": isOpen, + "aria-controls": id3, + onClick(event) { + var _a8; + (_a8 = props2.onClick) == null ? void 0 : _a8.call(props2, event); + onToggle(); + } + }; + } + function getDisclosureProps(props2 = {}) { + return { + ...props2, + hidden: !isOpen, + id: id3 + }; + } + return { + isOpen, + onOpen, + onClose, + onToggle, + isControlled, + getButtonProps, + getDisclosureProps + }; +} + +// node_modules/@chakra-ui/react-use-outside-click/dist/index.mjs +var import_react156 = __toESM(require_react(), 1); +function useOutsideClick2(props) { + const { ref, handler, enabled = true } = props; + const savedHandler = useCallbackRef(handler); + const stateRef = (0, import_react156.useRef)({ + isPointerDown: false, + ignoreEmulatedMouseEvents: false + }); + const state2 = stateRef.current; + (0, import_react156.useEffect)(() => { + if (!enabled) + return; + const onPointerDown = (e) => { + if (isValidEvent2(e, ref)) { + state2.isPointerDown = true; + } + }; + const onMouseUp = (event) => { + if (state2.ignoreEmulatedMouseEvents) { + state2.ignoreEmulatedMouseEvents = false; + return; + } + if (state2.isPointerDown && handler && isValidEvent2(event, ref)) { + state2.isPointerDown = false; + savedHandler(event); + } + }; + const onTouchEnd = (event) => { + state2.ignoreEmulatedMouseEvents = true; + if (handler && state2.isPointerDown && isValidEvent2(event, ref)) { + state2.isPointerDown = false; + savedHandler(event); + } + }; + const doc = getOwnerDocument3(ref.current); + doc.addEventListener("mousedown", onPointerDown, true); + doc.addEventListener("mouseup", onMouseUp, true); + doc.addEventListener("touchstart", onPointerDown, true); + doc.addEventListener("touchend", onTouchEnd, true); + return () => { + doc.removeEventListener("mousedown", onPointerDown, true); + doc.removeEventListener("mouseup", onMouseUp, true); + doc.removeEventListener("touchstart", onPointerDown, true); + doc.removeEventListener("touchend", onTouchEnd, true); + }; + }, [handler, ref, savedHandler, state2, enabled]); +} +function isValidEvent2(event, ref) { + var _a8; + const target = event.target; + if (target) { + const doc = getOwnerDocument3(target); + if (!doc.contains(target)) + return false; + } + return !((_a8 = ref.current) == null ? void 0 : _a8.contains(target)); +} +function getOwnerDocument3(node3) { + var _a8; + return (_a8 = node3 == null ? void 0 : node3.ownerDocument) != null ? _a8 : document; +} + +// node_modules/@chakra-ui/react-use-animation-state/dist/index.mjs +var import_react157 = __toESM(require_react(), 1); +function useAnimationState2(props) { + const { isOpen, ref } = props; + const [mounted, setMounted] = (0, import_react157.useState)(isOpen); + const [once2, setOnce] = (0, import_react157.useState)(false); + (0, import_react157.useEffect)(() => { + if (!once2) { + setMounted(isOpen); + setOnce(true); + } + }, [isOpen, once2, mounted]); + useEventListener( + () => ref.current, + "animationend", + () => { + setMounted(isOpen); + } + ); + const hidden = isOpen ? false : !mounted; + return { + present: !hidden, + onComplete() { + var _a8; + const win = getOwnerWindow2(ref.current); + const evt = new win.CustomEvent("animationend", { bubbles: true }); + (_a8 = ref.current) == null ? void 0 : _a8.dispatchEvent(evt); + } + }; +} + +// node_modules/@chakra-ui/lazy-utils/dist/index.mjs +function lazyDisclosure(options) { + const { wasSelected, enabled, isSelected, mode: mode2 = "unmount" } = options; + if (!enabled) + return true; + if (isSelected) + return true; + if (mode2 === "keepMounted" && wasSelected) + return true; + return false; +} + +// node_modules/@chakra-ui/menu/dist/chunk-SANI5SUM.mjs +var import_react158 = __toESM(require_react(), 1); +var [ + MenuDescendantsProvider, + useMenuDescendantsContext, + useMenuDescendants, + useMenuDescendant +] = createDescendantContext(); +var [MenuProvider, useMenuContext] = createContext2({ + strict: false, + name: "MenuContext" +}); +function useIds2(idProp, ...prefixes) { + const reactId = (0, import_react158.useId)(); + const id3 = idProp || reactId; + return (0, import_react158.useMemo)(() => { + return prefixes.map((prefix4) => `${prefix4}-${id3}`); + }, [id3, prefixes]); +} +function getOwnerDocument4(node3) { + var _a8; + return (_a8 = node3 == null ? void 0 : node3.ownerDocument) != null ? _a8 : document; +} +function isActiveElement3(element) { + const doc = getOwnerDocument4(element); + return doc.activeElement === element; +} +function useMenu(props = {}) { + const { + id: id3, + closeOnSelect = true, + closeOnBlur = true, + initialFocusRef, + autoSelect = true, + isLazy, + isOpen: isOpenProp, + defaultIsOpen, + onClose: onCloseProp, + onOpen: onOpenProp, + placement = "bottom-start", + lazyBehavior = "unmount", + direction: direction2, + computePositionOnMount = false, + ...popperProps + } = props; + const menuRef = (0, import_react158.useRef)(null); + const buttonRef = (0, import_react158.useRef)(null); + const descendants = useMenuDescendants(); + const focusMenu = (0, import_react158.useCallback)(() => { + requestAnimationFrame(() => { + var _a8; + (_a8 = menuRef.current) == null ? void 0 : _a8.focus({ preventScroll: false }); + }); + }, []); + const focusFirstItem = (0, import_react158.useCallback)(() => { + const id22 = setTimeout(() => { + var _a8; + if (initialFocusRef) { + (_a8 = initialFocusRef.current) == null ? void 0 : _a8.focus(); + } else { + const first = descendants.firstEnabled(); + if (first) + setFocusedIndex(first.index); + } + }); + timeoutIds.current.add(id22); + }, [descendants, initialFocusRef]); + const focusLastItem = (0, import_react158.useCallback)(() => { + const id22 = setTimeout(() => { + const last = descendants.lastEnabled(); + if (last) + setFocusedIndex(last.index); + }); + timeoutIds.current.add(id22); + }, [descendants]); + const onOpenInternal = (0, import_react158.useCallback)(() => { + onOpenProp == null ? void 0 : onOpenProp(); + if (autoSelect) { + focusFirstItem(); + } else { + focusMenu(); + } + }, [autoSelect, focusFirstItem, focusMenu, onOpenProp]); + const { isOpen, onOpen, onClose, onToggle } = useDisclosure2({ + isOpen: isOpenProp, + defaultIsOpen, + onClose: onCloseProp, + onOpen: onOpenInternal + }); + useOutsideClick2({ + enabled: isOpen && closeOnBlur, + ref: menuRef, + handler: (event) => { + var _a8; + if (!((_a8 = buttonRef.current) == null ? void 0 : _a8.contains(event.target))) { + onClose(); + } + } + }); + const popper = usePopper({ + ...popperProps, + enabled: isOpen || computePositionOnMount, + placement, + direction: direction2 + }); + const [focusedIndex, setFocusedIndex] = (0, import_react158.useState)(-1); + useUpdateEffect(() => { + if (!isOpen) { + setFocusedIndex(-1); + } + }, [isOpen]); + useFocusOnHide2(menuRef, { + focusRef: buttonRef, + visible: isOpen, + shouldFocus: true + }); + const animationState = useAnimationState2({ isOpen, ref: menuRef }); + const [buttonId, menuId] = useIds2(id3, `menu-button`, `menu-list`); + const openAndFocusMenu = (0, import_react158.useCallback)(() => { + onOpen(); + focusMenu(); + }, [onOpen, focusMenu]); + const timeoutIds = (0, import_react158.useRef)(/* @__PURE__ */ new Set([])); + (0, import_react158.useEffect)(() => { + const ids = timeoutIds.current; + return () => { + ids.forEach((id22) => clearTimeout(id22)); + ids.clear(); + }; + }, []); + const openAndFocusFirstItem = (0, import_react158.useCallback)(() => { + onOpen(); + focusFirstItem(); + }, [focusFirstItem, onOpen]); + const openAndFocusLastItem = (0, import_react158.useCallback)(() => { + onOpen(); + focusLastItem(); + }, [onOpen, focusLastItem]); + const refocus = (0, import_react158.useCallback)(() => { + var _a8, _b5; + const doc = getOwnerDocument4(menuRef.current); + const hasFocusWithin3 = (_a8 = menuRef.current) == null ? void 0 : _a8.contains(doc.activeElement); + const shouldRefocus = isOpen && !hasFocusWithin3; + if (!shouldRefocus) + return; + const node3 = (_b5 = descendants.item(focusedIndex)) == null ? void 0 : _b5.node; + node3 == null ? void 0 : node3.focus({ preventScroll: true }); + }, [isOpen, focusedIndex, descendants]); + const rafId = (0, import_react158.useRef)(null); + return { + openAndFocusMenu, + openAndFocusFirstItem, + openAndFocusLastItem, + onTransitionEnd: refocus, + unstable__animationState: animationState, + descendants, + popper, + buttonId, + menuId, + forceUpdate: popper.forceUpdate, + orientation: "vertical", + isOpen, + onToggle, + onOpen, + onClose, + menuRef, + buttonRef, + focusedIndex, + closeOnSelect, + closeOnBlur, + autoSelect, + setFocusedIndex, + isLazy, + lazyBehavior, + initialFocusRef, + rafId + }; +} +function useMenuButton(props = {}, externalRef = null) { + const menu = useMenuContext(); + const { onToggle, popper, openAndFocusFirstItem, openAndFocusLastItem } = menu; + const onKeyDown = (0, import_react158.useCallback)( + (event) => { + const eventKey = event.key; + const keyMap = { + Enter: openAndFocusFirstItem, + ArrowDown: openAndFocusFirstItem, + ArrowUp: openAndFocusLastItem + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + event.stopPropagation(); + action(event); + } + }, + [openAndFocusFirstItem, openAndFocusLastItem] + ); + return { + ...props, + ref: mergeRefs2(menu.buttonRef, externalRef, popper.referenceRef), + id: menu.buttonId, + "data-active": dataAttr(menu.isOpen), + "aria-expanded": menu.isOpen, + "aria-haspopup": "menu", + "aria-controls": menu.menuId, + onClick: callAllHandlers(props.onClick, onToggle), + onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown) + }; +} +function isTargetMenuItem(target) { + var _a8; + return isHTMLElement3(target) && !!((_a8 = target == null ? void 0 : target.getAttribute("role")) == null ? void 0 : _a8.startsWith("menuitem")); +} +function useMenuList(props = {}, ref = null) { + const menu = useMenuContext(); + if (!menu) { + throw new Error( + `useMenuContext: context is undefined. Seems you forgot to wrap component within ` + ); + } + const { + focusedIndex, + setFocusedIndex, + menuRef, + isOpen, + onClose, + menuId, + isLazy, + lazyBehavior, + unstable__animationState: animated + } = menu; + const descendants = useMenuDescendantsContext(); + const createTypeaheadHandler = useShortcut2({ + preventDefault: (event) => event.key !== " " && isTargetMenuItem(event.target) + }); + const onKeyDown = (0, import_react158.useCallback)( + (event) => { + if (!event.currentTarget.contains(event.target)) + return; + const eventKey = event.key; + const keyMap = { + Tab: (event2) => event2.preventDefault(), + Escape: onClose, + ArrowDown: () => { + const next2 = descendants.nextEnabled(focusedIndex); + if (next2) + setFocusedIndex(next2.index); + }, + ArrowUp: () => { + const prev2 = descendants.prevEnabled(focusedIndex); + if (prev2) + setFocusedIndex(prev2.index); + } + }; + const fn = keyMap[eventKey]; + if (fn) { + event.preventDefault(); + fn(event); + return; + } + const onTypeahead = createTypeaheadHandler((character2) => { + const nextItem = getNextItemFromSearch2( + descendants.values(), + character2, + (item) => { + var _a8, _b5; + return (_b5 = (_a8 = item == null ? void 0 : item.node) == null ? void 0 : _a8.textContent) != null ? _b5 : ""; + }, + descendants.item(focusedIndex) + ); + if (nextItem) { + const index = descendants.indexOf(nextItem.node); + setFocusedIndex(index); + } + }); + if (isTargetMenuItem(event.target)) { + onTypeahead(event); + } + }, + [ + descendants, + focusedIndex, + createTypeaheadHandler, + onClose, + setFocusedIndex + ] + ); + const hasBeenOpened = (0, import_react158.useRef)(false); + if (isOpen) { + hasBeenOpened.current = true; + } + const shouldRenderChildren = lazyDisclosure({ + wasSelected: hasBeenOpened.current, + enabled: isLazy, + mode: lazyBehavior, + isSelected: animated.present + }); + return { + ...props, + ref: mergeRefs2(menuRef, ref), + children: shouldRenderChildren ? props.children : null, + tabIndex: -1, + role: "menu", + id: menuId, + style: { + ...props.style, + transformOrigin: "var(--popper-transform-origin)" + }, + "aria-orientation": "vertical", + onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown) + }; +} +function useMenuPositioner(props = {}) { + const { popper, isOpen } = useMenuContext(); + return popper.getPopperProps({ + ...props, + style: { + visibility: isOpen ? "visible" : "hidden", + ...props.style + } + }); +} +function useMenuItem(props = {}, externalRef = null) { + const { + onMouseEnter: onMouseEnterProp, + onMouseMove: onMouseMoveProp, + onMouseLeave: onMouseLeaveProp, + onClick: onClickProp, + onFocus: onFocusProp, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + closeOnSelect, + type: typeProp, + ...htmlProps + } = props; + const menu = useMenuContext(); + const { + setFocusedIndex, + focusedIndex, + closeOnSelect: menuCloseOnSelect, + onClose, + menuRef, + isOpen, + menuId, + rafId + } = menu; + const ref = (0, import_react158.useRef)(null); + const id3 = `${menuId}-menuitem-${(0, import_react158.useId)()}`; + const { index, register } = useMenuDescendant({ + disabled: isDisabled3 && !isFocusable3 + }); + const onMouseEnter = (0, import_react158.useCallback)( + (event) => { + onMouseEnterProp == null ? void 0 : onMouseEnterProp(event); + if (isDisabled3) + return; + setFocusedIndex(index); + }, + [setFocusedIndex, index, isDisabled3, onMouseEnterProp] + ); + const onMouseMove = (0, import_react158.useCallback)( + (event) => { + onMouseMoveProp == null ? void 0 : onMouseMoveProp(event); + if (ref.current && !isActiveElement3(ref.current)) { + onMouseEnter(event); + } + }, + [onMouseEnter, onMouseMoveProp] + ); + const onMouseLeave = (0, import_react158.useCallback)( + (event) => { + onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event); + if (isDisabled3) + return; + setFocusedIndex(-1); + }, + [setFocusedIndex, isDisabled3, onMouseLeaveProp] + ); + const onClick = (0, import_react158.useCallback)( + (event) => { + onClickProp == null ? void 0 : onClickProp(event); + if (!isTargetMenuItem(event.currentTarget)) + return; + if (closeOnSelect != null ? closeOnSelect : menuCloseOnSelect) { + onClose(); + } + }, + [onClose, onClickProp, menuCloseOnSelect, closeOnSelect] + ); + const onFocus3 = (0, import_react158.useCallback)( + (event) => { + onFocusProp == null ? void 0 : onFocusProp(event); + setFocusedIndex(index); + }, + [setFocusedIndex, onFocusProp, index] + ); + const isFocused = index === focusedIndex; + const trulyDisabled = isDisabled3 && !isFocusable3; + useUpdateEffect(() => { + if (!isOpen) + return; + if (isFocused && !trulyDisabled && ref.current) { + if (rafId.current) { + cancelAnimationFrame(rafId.current); + } + rafId.current = requestAnimationFrame(() => { + var _a8; + (_a8 = ref.current) == null ? void 0 : _a8.focus({ preventScroll: true }); + rafId.current = null; + }); + } else if (menuRef.current && !isActiveElement3(menuRef.current)) { + menuRef.current.focus({ preventScroll: true }); + } + return () => { + if (rafId.current) { + cancelAnimationFrame(rafId.current); + } + }; + }, [isFocused, trulyDisabled, menuRef, isOpen]); + const clickableProps = useClickable({ + onClick, + onFocus: onFocus3, + onMouseEnter, + onMouseMove, + onMouseLeave, + ref: mergeRefs2(register, ref, externalRef), + isDisabled: isDisabled3, + isFocusable: isFocusable3 + }); + return { + ...htmlProps, + ...clickableProps, + type: typeProp != null ? typeProp : clickableProps.type, + id: id3, + role: "menuitem", + tabIndex: isFocused ? 0 : -1 + }; +} +function useMenuOption(props = {}, ref = null) { + const { type = "radio", isChecked, ...rest } = props; + const ownProps = useMenuItem(rest, ref); + return { + ...ownProps, + role: `menuitem${type}`, + "aria-checked": isChecked + }; +} +function useMenuOptionGroup(props = {}) { + const { + children, + type = "radio", + value: valueProp, + defaultValue, + onChange: onChangeProp, + ...htmlProps + } = props; + const isRadio = type === "radio"; + const fallback = isRadio ? "" : []; + const [value, setValue] = useControllableState({ + defaultValue: defaultValue != null ? defaultValue : fallback, + value: valueProp, + onChange: onChangeProp + }); + const onChange = (0, import_react158.useCallback)( + (selectedValue) => { + if (type === "radio" && typeof value === "string") { + setValue(selectedValue); + } + if (type === "checkbox" && Array.isArray(value)) { + const nextValue = value.includes(selectedValue) ? value.filter((item) => item !== selectedValue) : value.concat(selectedValue); + setValue(nextValue); + } + }, + [value, setValue, type] + ); + const validChildren = getValidChildren2(children); + const clones = validChildren.map((child) => { + if (child.type.id !== "MenuItemOption") + return child; + const onClick = (event) => { + var _a8, _b5; + onChange(child.props.value); + (_b5 = (_a8 = child.props).onClick) == null ? void 0 : _b5.call(_a8, event); + }; + const isChecked = type === "radio" ? child.props.value === value : value.includes(child.props.value); + return (0, import_react158.cloneElement)(child, { + type, + onClick, + isChecked + }); + }); + return { + ...htmlProps, + children: clones + }; +} +function useMenuState() { + const { isOpen, onClose } = useMenuContext(); + return { isOpen, onClose }; +} +function isHTMLElement3(el) { + var _a8; + if (!isElement4(el)) + return false; + const win = (_a8 = el.ownerDocument.defaultView) != null ? _a8 : window; + return el instanceof win.HTMLElement; +} +function isElement4(el) { + return el != null && typeof el == "object" && "nodeType" in el && el.nodeType === Node.ELEMENT_NODE; +} + +// node_modules/@chakra-ui/menu/dist/chunk-UZJ3TPNQ.mjs +var import_react159 = __toESM(require_react(), 1); +var import_jsx_runtime109 = __toESM(require_jsx_runtime(), 1); +var [MenuStylesProvider, useMenuStyles] = createContext2({ + name: `MenuStylesContext`, + errorMessage: `useMenuStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var Menu = (props) => { + const { children } = props; + const styles2 = useMultiStyleConfig("Menu", props); + const ownProps = omitThemingProps(props); + const { direction: direction2 } = useTheme2(); + const { descendants, ...ctx } = useMenu({ ...ownProps, direction: direction2 }); + const context = (0, import_react159.useMemo)(() => ctx, [ctx]); + const { isOpen, onClose, forceUpdate } = context; + return (0, import_jsx_runtime109.jsx)(MenuDescendantsProvider, { value: descendants, children: (0, import_jsx_runtime109.jsx)(MenuProvider, { value: context, children: (0, import_jsx_runtime109.jsx)(MenuStylesProvider, { value: styles2, children: runIfFn(children, { isOpen, onClose, forceUpdate }) }) }) }); +}; +Menu.displayName = "Menu"; + +// node_modules/@chakra-ui/menu/dist/chunk-4CNGLKYX.mjs +var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1); +var MenuCommand = forwardRef3( + (props, ref) => { + const styles2 = useMenuStyles(); + return (0, import_jsx_runtime110.jsx)( + chakra.span, + { + ref, + ...props, + __css: styles2.command, + className: "chakra-menu__command" + } + ); + } +); +MenuCommand.displayName = "MenuCommand"; + +// node_modules/@chakra-ui/menu/dist/chunk-M565QO7N.mjs +var import_react160 = __toESM(require_react(), 1); +var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1); +var StyledMenuItem = forwardRef3( + (props, ref) => { + const { type, ...rest } = props; + const styles2 = useMenuStyles(); + const btnType = rest.as || type ? type != null ? type : void 0 : "button"; + const buttonStyles = (0, import_react160.useMemo)( + () => ({ + textDecoration: "none", + color: "inherit", + userSelect: "none", + display: "flex", + width: "100%", + alignItems: "center", + textAlign: "start", + flex: "0 0 auto", + outline: 0, + ...styles2.item + }), + [styles2.item] + ); + return (0, import_jsx_runtime111.jsx)(chakra.button, { ref, type: btnType, ...rest, __css: buttonStyles }); + } +); + +// node_modules/@chakra-ui/menu/dist/chunk-HB6KBUMZ.mjs +var import_react161 = __toESM(require_react(), 1); +var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1); +var MenuIcon = (props) => { + const { className, children, ...rest } = props; + const styles2 = useMenuStyles(); + const child = import_react161.Children.only(children); + const clone = (0, import_react161.isValidElement)(child) ? (0, import_react161.cloneElement)(child, { + focusable: "false", + "aria-hidden": true, + className: cx("chakra-menu__icon", child.props.className) + }) : null; + const _className = cx("chakra-menu__icon-wrapper", className); + return (0, import_jsx_runtime112.jsx)(chakra.span, { className: _className, ...rest, __css: styles2.icon, children: clone }); +}; +MenuIcon.displayName = "MenuIcon"; + +// node_modules/@chakra-ui/menu/dist/chunk-5TWLKMYI.mjs +var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1); +var MenuItem = forwardRef3((props, ref) => { + const { + icon, + iconSpacing: iconSpacing2 = "0.75rem", + command, + commandSpacing = "0.75rem", + children, + ...rest + } = props; + const menuitemProps = useMenuItem(rest, ref); + const shouldWrap = icon || command; + const _children = shouldWrap ? (0, import_jsx_runtime113.jsx)("span", { style: { pointerEvents: "none", flex: 1 }, children }) : children; + return (0, import_jsx_runtime113.jsxs)( + StyledMenuItem, + { + ...menuitemProps, + className: cx("chakra-menu__menuitem", menuitemProps.className), + children: [ + icon && (0, import_jsx_runtime113.jsx)(MenuIcon, { fontSize: "0.8em", marginEnd: iconSpacing2, children: icon }), + _children, + command && (0, import_jsx_runtime113.jsx)(MenuCommand, { marginStart: commandSpacing, children: command }) + ] + } + ); +}); +MenuItem.displayName = "MenuItem"; + +// node_modules/@chakra-ui/menu/dist/chunk-6MF6NSK4.mjs +var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1); +var motionVariants = { + enter: { + visibility: "visible", + opacity: 1, + scale: 1, + transition: { + duration: 0.2, + ease: [0.4, 0, 0.2, 1] + } + }, + exit: { + transitionEnd: { + visibility: "hidden" + }, + opacity: 0, + scale: 0.8, + transition: { + duration: 0.1, + easings: "easeOut" + } + } +}; +var MenuTransition = chakra(motion.div); +var MenuList = forwardRef3(function MenuList2(props, ref) { + var _a8, _b5; + const { rootProps, motionProps, ...rest } = props; + const { + isOpen, + onTransitionEnd, + unstable__animationState: animated + } = useMenuContext(); + const listProps = useMenuList(rest, ref); + const positionerProps = useMenuPositioner(rootProps); + const styles2 = useMenuStyles(); + return (0, import_jsx_runtime114.jsx)( + chakra.div, + { + ...positionerProps, + __css: { zIndex: (_b5 = props.zIndex) != null ? _b5 : (_a8 = styles2.list) == null ? void 0 : _a8.zIndex }, + children: (0, import_jsx_runtime114.jsx)( + MenuTransition, + { + variants: motionVariants, + initial: false, + animate: isOpen ? "enter" : "exit", + __css: { outline: 0, ...styles2.list }, + ...motionProps, + className: cx("chakra-menu__menu-list", listProps.className), + ...listProps, + onUpdate: onTransitionEnd, + onAnimationComplete: callAll( + animated.onComplete, + listProps.onAnimationComplete + ) + } + ) + } + ); +}); +MenuList.displayName = "MenuList"; + +// node_modules/@chakra-ui/menu/dist/chunk-PTXXWAJU.mjs +var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1); +var MenuGroup = forwardRef3((props, ref) => { + const { title, children, className, ...rest } = props; + const _className = cx("chakra-menu__group__title", className); + const styles2 = useMenuStyles(); + return (0, import_jsx_runtime115.jsxs)("div", { ref, className: "chakra-menu__group", role: "group", children: [ + title && (0, import_jsx_runtime115.jsx)(chakra.p, { className: _className, ...rest, __css: styles2.groupTitle, children: title }), + children + ] }); +}); +MenuGroup.displayName = "MenuGroup"; + +// node_modules/@chakra-ui/menu/dist/chunk-IOKLOFVX.mjs +var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1); +var MenuOptionGroup = (props) => { + const { className, title, ...rest } = props; + const ownProps = useMenuOptionGroup(rest); + return (0, import_jsx_runtime116.jsx)( + MenuGroup, + { + title, + className: cx("chakra-menu__option-group", className), + ...ownProps + } + ); +}; +MenuOptionGroup.displayName = "MenuOptionGroup"; + +// node_modules/@chakra-ui/menu/dist/chunk-Z3VR2BFQ.mjs +var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1); +var StyledMenuButton = forwardRef3((props, ref) => { + const styles2 = useMenuStyles(); + return (0, import_jsx_runtime117.jsx)( + chakra.button, + { + ref, + ...props, + __css: { + display: "inline-flex", + appearance: "none", + alignItems: "center", + outline: 0, + ...styles2.button + } + } + ); +}); +var MenuButton = forwardRef3( + (props, ref) => { + const { children, as: As, ...rest } = props; + const buttonProps = useMenuButton(rest, ref); + const Element2 = As || StyledMenuButton; + return (0, import_jsx_runtime117.jsx)( + Element2, + { + ...buttonProps, + className: cx("chakra-menu__menu-button", props.className), + children: (0, import_jsx_runtime117.jsx)( + chakra.span, + { + __css: { pointerEvents: "none", flex: "1 1 auto", minW: 0 }, + children: props.children + } + ) + } + ); + } +); +MenuButton.displayName = "MenuButton"; + +// node_modules/@chakra-ui/menu/dist/chunk-H43S3DLB.mjs +var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1); +var MenuDivider = (props) => { + const { className, ...rest } = props; + const styles2 = useMenuStyles(); + return (0, import_jsx_runtime118.jsx)( + chakra.hr, + { + "aria-orientation": "horizontal", + className: cx("chakra-menu__divider", className), + ...rest, + __css: styles2.divider + } + ); +}; +MenuDivider.displayName = "MenuDivider"; + +// node_modules/@chakra-ui/menu/dist/chunk-B3RAGXFV.mjs +var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1); +var CheckIcon3 = (props) => (0, import_jsx_runtime119.jsx)("svg", { viewBox: "0 0 14 14", width: "1em", height: "1em", ...props, children: (0, import_jsx_runtime119.jsx)( + "polygon", + { + fill: "currentColor", + points: "5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039" + } +) }); +var MenuItemOption = forwardRef3( + (props, ref) => { + const { icon, iconSpacing: iconSpacing2 = "0.75rem", ...rest } = props; + const optionProps = useMenuOption(rest, ref); + return (0, import_jsx_runtime119.jsxs)( + StyledMenuItem, + { + ...optionProps, + className: cx("chakra-menu__menuitem-option", rest.className), + children: [ + icon !== null && (0, import_jsx_runtime119.jsx)( + MenuIcon, + { + fontSize: "0.8em", + marginEnd: iconSpacing2, + opacity: props.isChecked ? 1 : 0, + children: icon || (0, import_jsx_runtime119.jsx)(CheckIcon3, {}) + } + ), + (0, import_jsx_runtime119.jsx)("span", { style: { flex: 1 }, children: optionProps.children }) + ] + } + ); + } +); +MenuItemOption.id = "MenuItemOption"; +MenuItemOption.displayName = "MenuItemOption"; + +// node_modules/@chakra-ui/modal/dist/chunk-7NUJBCEL.mjs +var import_react162 = __toESM(require_react(), 1); +var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1); +var transitions = { + slideInBottom: { + ...slideFadeConfig, + custom: { offsetY: 16, reverse: true } + }, + slideInRight: { + ...slideFadeConfig, + custom: { offsetX: 16, reverse: true } + }, + slideInTop: { + ...slideFadeConfig, + custom: { offsetY: -16, reverse: true } + }, + slideInLeft: { + ...slideFadeConfig, + custom: { offsetX: -16, reverse: true } + }, + scale: { + ...scaleFadeConfig, + custom: { initialScale: 0.95, reverse: true } + }, + none: {} +}; +var MotionSection = chakra(motion.section); +var getMotionProps = (preset) => { + return transitions[preset || "none"]; +}; +var ModalTransition = (0, import_react162.forwardRef)( + (props, ref) => { + const { preset, motionProps = getMotionProps(preset), ...rest } = props; + return (0, import_jsx_runtime120.jsx)(MotionSection, { ref, ...motionProps, ...rest }); + } +); +ModalTransition.displayName = "ModalTransition"; + +// node_modules/@chakra-ui/modal/dist/chunk-5WQ4PXEV.mjs +var __defProp3 = Object.defineProperty; +var __defNormalProp3 = (obj, key, value) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField3 = (obj, key, value) => { + __defNormalProp3(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// node_modules/@chakra-ui/modal/dist/chunk-CYRBRIA2.mjs +var import_react163 = __toESM(require_react(), 1); +var ModalManager = class { + constructor() { + __publicField3(this, "modals"); + this.modals = /* @__PURE__ */ new Map(); + } + add(modal) { + this.modals.set(modal, this.modals.size + 1); + return this.modals.size; + } + remove(modal) { + this.modals.delete(modal); + } + isTopModal(modal) { + if (!modal) + return false; + return this.modals.get(modal) === this.modals.size; + } +}; +var modalManager = new ModalManager(); +function useModalManager(ref, isOpen) { + const [index, setIndex] = (0, import_react163.useState)(0); + (0, import_react163.useEffect)(() => { + const node3 = ref.current; + if (!node3) + return; + if (isOpen) { + const index2 = modalManager.add(node3); + setIndex(index2); + } + return () => { + modalManager.remove(node3); + setIndex(0); + }; + }, [isOpen, ref]); + return index; +} + +// node_modules/aria-hidden/dist/es2015/index.js +var getDefaultParent = function(originalTarget) { + if (typeof document === "undefined") { + return null; + } + var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget; + return sampleTarget.ownerDocument.body; +}; +var counterMap = /* @__PURE__ */ new WeakMap(); +var uncontrolledNodes = /* @__PURE__ */ new WeakMap(); +var markerMap = {}; +var lockCount = 0; +var unwrapHost = function(node3) { + return node3 && (node3.host || unwrapHost(node3.parentNode)); +}; +var correctTargets = function(parent, targets) { + return targets.map(function(target) { + if (parent.contains(target)) { + return target; + } + var correctedTarget = unwrapHost(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); + }); +}; +var applyAttributeToOthers = function(originalTarget, parentNode, markerName, controlAttribute) { + var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]); + if (!markerMap[markerName]) { + markerMap[markerName] = /* @__PURE__ */ new WeakMap(); + } + var markerCounter = markerMap[markerName]; + var hiddenNodes = []; + var elementsToKeep = /* @__PURE__ */ new Set(); + var elementsToStop = new Set(targets); + var keep = function(el) { + if (!el || elementsToKeep.has(el)) { + return; + } + elementsToKeep.add(el); + keep(el.parentNode); + }; + targets.forEach(keep); + var deep = function(parent) { + if (!parent || elementsToStop.has(parent)) { + return; + } + Array.prototype.forEach.call(parent.children, function(node3) { + if (elementsToKeep.has(node3)) { + deep(node3); + } else { + try { + var attr = node3.getAttribute(controlAttribute); + var alreadyHidden = attr !== null && attr !== "false"; + var counterValue = (counterMap.get(node3) || 0) + 1; + var markerValue = (markerCounter.get(node3) || 0) + 1; + counterMap.set(node3, counterValue); + markerCounter.set(node3, markerValue); + hiddenNodes.push(node3); + if (counterValue === 1 && alreadyHidden) { + uncontrolledNodes.set(node3, true); + } + if (markerValue === 1) { + node3.setAttribute(markerName, "true"); + } + if (!alreadyHidden) { + node3.setAttribute(controlAttribute, "true"); + } + } catch (e) { + console.error("aria-hidden: cannot operate on ", node3, e); + } + } + }); + }; + deep(parentNode); + elementsToKeep.clear(); + lockCount++; + return function() { + hiddenNodes.forEach(function(node3) { + var counterValue = counterMap.get(node3) - 1; + var markerValue = markerCounter.get(node3) - 1; + counterMap.set(node3, counterValue); + markerCounter.set(node3, markerValue); + if (!counterValue) { + if (!uncontrolledNodes.has(node3)) { + node3.removeAttribute(controlAttribute); + } + uncontrolledNodes.delete(node3); + } + if (!markerValue) { + node3.removeAttribute(markerName); + } + }); + lockCount--; + if (!lockCount) { + counterMap = /* @__PURE__ */ new WeakMap(); + counterMap = /* @__PURE__ */ new WeakMap(); + uncontrolledNodes = /* @__PURE__ */ new WeakMap(); + markerMap = {}; + } + }; +}; +var hideOthers = 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 applyAttributeToOthers(targets, activeParentNode, markerName, "aria-hidden"); +}; + +// node_modules/@chakra-ui/modal/dist/chunk-TJ2Q5ITW.mjs +var import_react164 = __toESM(require_react(), 1); +function useModal(props) { + const { + isOpen, + onClose, + id: id3, + closeOnOverlayClick = true, + closeOnEsc = true, + useInert = true, + onOverlayClick: onOverlayClickProp, + onEsc + } = props; + const dialogRef = (0, import_react164.useRef)(null); + const overlayRef = (0, import_react164.useRef)(null); + const [dialogId, headerId, bodyId] = useIds3( + id3, + `chakra-modal`, + `chakra-modal--header`, + `chakra-modal--body` + ); + useAriaHidden(dialogRef, isOpen && useInert); + const index = useModalManager(dialogRef, isOpen); + const mouseDownTarget = (0, import_react164.useRef)(null); + const onMouseDown = (0, import_react164.useCallback)((event) => { + mouseDownTarget.current = event.target; + }, []); + const onKeyDown = (0, import_react164.useCallback)( + (event) => { + if (event.key === "Escape") { + event.stopPropagation(); + if (closeOnEsc) { + onClose == null ? void 0 : onClose(); + } + onEsc == null ? void 0 : onEsc(); + } + }, + [closeOnEsc, onClose, onEsc] + ); + const [headerMounted, setHeaderMounted] = (0, import_react164.useState)(false); + const [bodyMounted, setBodyMounted] = (0, import_react164.useState)(false); + const getDialogProps = (0, import_react164.useCallback)( + (props2 = {}, ref = null) => ({ + role: "dialog", + ...props2, + ref: mergeRefs2(ref, dialogRef), + id: dialogId, + tabIndex: -1, + "aria-modal": true, + "aria-labelledby": headerMounted ? headerId : void 0, + "aria-describedby": bodyMounted ? bodyId : void 0, + onClick: callAllHandlers( + props2.onClick, + (event) => event.stopPropagation() + ) + }), + [bodyId, bodyMounted, dialogId, headerId, headerMounted] + ); + const onOverlayClick = (0, import_react164.useCallback)( + (event) => { + event.stopPropagation(); + if (mouseDownTarget.current !== event.target) + return; + if (!modalManager.isTopModal(dialogRef.current)) + return; + if (closeOnOverlayClick) { + onClose == null ? void 0 : onClose(); + } + onOverlayClickProp == null ? void 0 : onOverlayClickProp(); + }, + [onClose, closeOnOverlayClick, onOverlayClickProp] + ); + const getDialogContainerProps = (0, import_react164.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + ref: mergeRefs2(ref, overlayRef), + onClick: callAllHandlers(props2.onClick, onOverlayClick), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown), + onMouseDown: callAllHandlers(props2.onMouseDown, onMouseDown) + }), + [onKeyDown, onMouseDown, onOverlayClick] + ); + return { + isOpen, + onClose, + headerId, + bodyId, + setBodyMounted, + setHeaderMounted, + dialogRef, + overlayRef, + getDialogProps, + getDialogContainerProps, + index + }; +} +function useAriaHidden(ref, shouldHide) { + const currentElement = ref.current; + (0, import_react164.useEffect)(() => { + if (!ref.current || !shouldHide) + return void 0; + return hideOthers(ref.current); + }, [shouldHide, ref, currentElement]); +} +function useIds3(idProp, ...prefixes) { + const reactId = (0, import_react164.useId)(); + const id3 = idProp || reactId; + return (0, import_react164.useMemo)(() => { + return prefixes.map((prefix4) => `${prefix4}-${id3}`); + }, [id3, prefixes]); +} + +// node_modules/@chakra-ui/modal/dist/chunk-MSA2NPQT.mjs +var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1); +var [ModalStylesProvider, useModalStyles] = createContext2({ + name: `ModalStylesContext`, + errorMessage: `useModalStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var [ModalContextProvider, useModalContext] = createContext2({ + strict: true, + name: "ModalContext", + errorMessage: "useModalContext: `context` is undefined. Seems you forgot to wrap modal components in ``" +}); +var Modal = (props) => { + const modalProps = { + scrollBehavior: "outside", + autoFocus: true, + trapFocus: true, + returnFocusOnClose: true, + blockScrollOnMount: true, + allowPinchZoom: false, + motionPreset: "scale", + lockFocusAcrossFrames: true, + ...props + }; + const { + portalProps, + children, + autoFocus, + trapFocus, + initialFocusRef, + finalFocusRef, + returnFocusOnClose, + blockScrollOnMount, + allowPinchZoom, + preserveScrollBarGap, + motionPreset, + lockFocusAcrossFrames, + onCloseComplete + } = modalProps; + const styles2 = useMultiStyleConfig("Modal", modalProps); + const modal = useModal(modalProps); + const context = { + ...modal, + autoFocus, + trapFocus, + initialFocusRef, + finalFocusRef, + returnFocusOnClose, + blockScrollOnMount, + allowPinchZoom, + preserveScrollBarGap, + motionPreset, + lockFocusAcrossFrames + }; + return (0, import_jsx_runtime121.jsx)(ModalContextProvider, { value: context, children: (0, import_jsx_runtime121.jsx)(ModalStylesProvider, { value: styles2, children: (0, import_jsx_runtime121.jsx)(AnimatePresence, { onExitComplete: onCloseComplete, children: context.isOpen && (0, import_jsx_runtime121.jsx)(Portal, { ...portalProps, children }) }) }) }); +}; +Modal.displayName = "Modal"; + +// node_modules/@chakra-ui/modal/dist/chunk-NABYTFTG.mjs +var import_react165 = __toESM(require_react(), 1); + +// node_modules/react-remove-scroll/dist/es2015/Combination.js +var React25 = __toESM(require_react()); + +// node_modules/react-remove-scroll/dist/es2015/UI.js +var React21 = __toESM(require_react()); + +// node_modules/react-remove-scroll-bar/dist/es2015/constants.js +var zeroRightClassName = "right-scroll-bar-position"; +var fullWidthClassName = "width-before-scroll-bar"; +var noScrollbarsClassName = "with-scroll-bars-hidden"; +var removedBarSizeVariable = "--removed-body-scroll-bar-size"; + +// node_modules/react-remove-scroll/dist/es2015/medium.js +var effectCar = createSidecarMedium(); + +// node_modules/react-remove-scroll/dist/es2015/UI.js +var nothing = function() { + return; +}; +var RemoveScroll = React21.forwardRef(function(props, parentRef) { + var ref = React21.useRef(null); + var _a8 = React21.useState({ + onScrollCapture: nothing, + onWheelCapture: nothing, + onTouchMoveCapture: nothing + }), callbacks = _a8[0], setCallbacks = _a8[1]; + var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar2 = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b5 = props.as, Container3 = _b5 === void 0 ? "div" : _b5, gapMode = props.gapMode, rest = __rest(props, ["forwardProps", "children", "className", "removeScrollBar", "enabled", "shards", "sideCar", "noIsolation", "inert", "allowPinchZoom", "as", "gapMode"]); + var SideCar2 = sideCar2; + var containerRef = useMergeRefs2([ref, parentRef]); + var containerProps = __assign(__assign({}, rest), callbacks); + return React21.createElement( + React21.Fragment, + null, + enabled && React21.createElement(SideCar2, { sideCar: effectCar, removeScrollBar, shards, noIsolation, inert, setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode }), + forwardProps ? React21.cloneElement(React21.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef })) : React21.createElement(Container3, __assign({}, containerProps, { className, ref: containerRef }), children) + ); +}); +RemoveScroll.defaultProps = { + enabled: true, + removeScrollBar: true, + inert: false +}; +RemoveScroll.classNames = { + fullWidth: fullWidthClassName, + zeroRight: zeroRightClassName +}; + +// node_modules/react-remove-scroll/dist/es2015/SideEffect.js +var React24 = __toESM(require_react()); + +// node_modules/react-remove-scroll-bar/dist/es2015/component.js +var React23 = __toESM(require_react()); + +// node_modules/react-style-singleton/dist/es2015/hook.js +var React22 = __toESM(require_react()); + +// node_modules/get-nonce/dist/es2015/index.js +var currentNonce; +var getNonce = function() { + if (currentNonce) { + return currentNonce; + } + if (typeof __webpack_nonce__ !== "undefined") { + return __webpack_nonce__; + } + return void 0; +}; + +// node_modules/react-style-singleton/dist/es2015/singleton.js +function makeStyleTag() { + if (!document) + return null; + var tag = document.createElement("style"); + tag.type = "text/css"; + var nonce = getNonce(); + if (nonce) { + tag.setAttribute("nonce", nonce); + } + return tag; +} +function injectStyles(tag, css4) { + if (tag.styleSheet) { + tag.styleSheet.cssText = css4; + } else { + tag.appendChild(document.createTextNode(css4)); + } +} +function insertStyleTag(tag) { + var head = document.head || document.getElementsByTagName("head")[0]; + head.appendChild(tag); +} +var stylesheetSingleton = function() { + var counter2 = 0; + var stylesheet = null; + return { + add: function(style) { + if (counter2 == 0) { + if (stylesheet = makeStyleTag()) { + injectStyles(stylesheet, style); + insertStyleTag(stylesheet); + } + } + counter2++; + }, + remove: function() { + counter2--; + if (!counter2 && stylesheet) { + stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet); + stylesheet = null; + } + } + }; +}; + +// node_modules/react-style-singleton/dist/es2015/hook.js +var styleHookSingleton = function() { + var sheet = stylesheetSingleton(); + return function(styles2, isDynamic) { + React22.useEffect(function() { + sheet.add(styles2); + return function() { + sheet.remove(); + }; + }, [styles2 && isDynamic]); + }; +}; + +// node_modules/react-style-singleton/dist/es2015/component.js +var styleSingleton = function() { + var useStyle2 = styleHookSingleton(); + var Sheet = function(_a8) { + var styles2 = _a8.styles, dynamic = _a8.dynamic; + useStyle2(styles2, dynamic); + return null; + }; + return Sheet; +}; + +// node_modules/react-remove-scroll-bar/dist/es2015/utils.js +var zeroGap = { + left: 0, + top: 0, + right: 0, + gap: 0 +}; +var parse5 = function(x) { + return parseInt(x || "", 10) || 0; +}; +var getOffset = 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 [parse5(left), parse5(top), parse5(right)]; +}; +var getGapWidth = function(gapMode) { + if (gapMode === void 0) { + gapMode = "margin"; + } + if (typeof window === "undefined") { + return 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]) + }; +}; + +// node_modules/react-remove-scroll-bar/dist/es2015/component.js +var Style = styleSingleton(); +var lockAttribute = "data-scroll-locked"; +var getStyles = function(_a8, allowRelative, gapMode, important) { + var left = _a8.left, top = _a8.top, right = _a8.right, gap = _a8.gap; + if (gapMode === void 0) { + gapMode = "margin"; + } + return "\n .".concat(noScrollbarsClassName, " {\n overflow: hidden ").concat(important, ";\n padding-right: ").concat(gap, "px ").concat(important, ";\n }\n body[").concat(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(zeroRightClassName, " {\n right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " {\n margin-right: ").concat(gap, "px ").concat(important, ";\n }\n \n .").concat(zeroRightClassName, " .").concat(zeroRightClassName, " {\n right: 0 ").concat(important, ";\n }\n \n .").concat(fullWidthClassName, " .").concat(fullWidthClassName, " {\n margin-right: 0 ").concat(important, ";\n }\n \n body[").concat(lockAttribute, "] {\n ").concat(removedBarSizeVariable, ": ").concat(gap, "px;\n }\n"); +}; +var getCurrentUseCounter = function() { + var counter2 = parseInt(document.body.getAttribute(lockAttribute) || "0", 10); + return isFinite(counter2) ? counter2 : 0; +}; +var useLockAttribute = function() { + React23.useEffect(function() { + document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString()); + return function() { + var newCounter = getCurrentUseCounter() - 1; + if (newCounter <= 0) { + document.body.removeAttribute(lockAttribute); + } else { + document.body.setAttribute(lockAttribute, newCounter.toString()); + } + }; + }, []); +}; +var RemoveScrollBar = function(_a8) { + var noRelative = _a8.noRelative, noImportant = _a8.noImportant, _b5 = _a8.gapMode, gapMode = _b5 === void 0 ? "margin" : _b5; + useLockAttribute(); + var gap = React23.useMemo(function() { + return getGapWidth(gapMode); + }, [gapMode]); + return React23.createElement(Style, { styles: getStyles(gap, !noRelative, gapMode, !noImportant ? "!important" : "") }); +}; + +// node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +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; +var nonPassive = passiveSupported ? { passive: false } : false; + +// node_modules/react-remove-scroll/dist/es2015/handleScroll.js +var alwaysContainsScroll = function(node3) { + return node3.tagName === "TEXTAREA"; +}; +var elementCanBeScrolled = function(node3, overflow) { + if (!(node3 instanceof Element)) { + return false; + } + var styles2 = window.getComputedStyle(node3); + return ( + // not-not-scrollable + styles2[overflow] !== "hidden" && // contains scroll inside self + !(styles2.overflowY === styles2.overflowX && !alwaysContainsScroll(node3) && styles2[overflow] === "visible") + ); +}; +var elementCouldBeVScrolled = function(node3) { + return elementCanBeScrolled(node3, "overflowY"); +}; +var elementCouldBeHScrolled = function(node3) { + return elementCanBeScrolled(node3, "overflowX"); +}; +var locationCouldBeScrolled = function(axis, node3) { + var ownerDocument = node3.ownerDocument; + var current = node3; + do { + if (typeof ShadowRoot !== "undefined" && current instanceof ShadowRoot) { + current = current.host; + } + var isScrollable = elementCouldBeScrolled(axis, current); + if (isScrollable) { + var _a8 = getScrollVariables(axis, current), scrollHeight = _a8[1], clientHeight = _a8[2]; + if (scrollHeight > clientHeight) { + return true; + } + } + current = current.parentNode; + } while (current && current !== ownerDocument.body); + return false; +}; +var getVScrollVariables = function(_a8) { + var scrollTop = _a8.scrollTop, scrollHeight = _a8.scrollHeight, clientHeight = _a8.clientHeight; + return [ + scrollTop, + scrollHeight, + clientHeight + ]; +}; +var getHScrollVariables = function(_a8) { + var scrollLeft = _a8.scrollLeft, scrollWidth = _a8.scrollWidth, clientWidth = _a8.clientWidth; + return [ + scrollLeft, + scrollWidth, + clientWidth + ]; +}; +var elementCouldBeScrolled = function(axis, node3) { + return axis === "v" ? elementCouldBeVScrolled(node3) : elementCouldBeHScrolled(node3); +}; +var getScrollVariables = function(axis, node3) { + return axis === "v" ? getVScrollVariables(node3) : getHScrollVariables(node3); +}; +var getDirectionFactor = function(axis, direction2) { + return axis === "h" && direction2 === "rtl" ? -1 : 1; +}; +var handleScroll = 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 _a8 = getScrollVariables(axis, target), position3 = _a8[0], scroll_1 = _a8[1], capacity = _a8[2]; + var elementScroll = scroll_1 - capacity - directionFactor * position3; + if (position3 || elementScroll) { + if (elementCouldBeScrolled(axis, target)) { + availableScroll += elementScroll; + availableScrollTop += position3; + } + } + if (target instanceof ShadowRoot) { + target = target.host; + } else { + target = target.parentNode; + } + } while ( + // portaled content + !targetInLock && target !== document.body || // self content + targetInLock && (endTarget.contains(target) || endTarget === target) + ); + if (isDeltaPositive && (noOverscroll && Math.abs(availableScroll) < 1 || !noOverscroll && delta > availableScroll)) { + shouldCancelScroll = true; + } else if (!isDeltaPositive && (noOverscroll && Math.abs(availableScrollTop) < 1 || !noOverscroll && -delta > availableScrollTop)) { + shouldCancelScroll = true; + } + return shouldCancelScroll; +}; + +// node_modules/react-remove-scroll/dist/es2015/SideEffect.js +var getTouchXY = function(event) { + return "changedTouches" in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0]; +}; +var getDeltaXY = function(event) { + return [event.deltaX, event.deltaY]; +}; +var extractRef3 = function(ref) { + return ref && "current" in ref ? ref.current : ref; +}; +var deltaCompare = function(x, y) { + return x[0] === y[0] && x[1] === y[1]; +}; +var generateStyle = function(id3) { + return "\n .block-interactivity-".concat(id3, " {pointer-events: none;}\n .allow-interactivity-").concat(id3, " {pointer-events: all;}\n"); +}; +var idCounter = 0; +var lockStack = []; +function RemoveScrollSideCar(props) { + var shouldPreventQueue = React24.useRef([]); + var touchStartRef = React24.useRef([0, 0]); + var activeAxis = React24.useRef(); + var id3 = React24.useState(idCounter++)[0]; + var Style2 = React24.useState(styleSingleton)[0]; + var lastProps = React24.useRef(props); + React24.useEffect(function() { + lastProps.current = props; + }, [props]); + React24.useEffect(function() { + if (props.inert) { + document.body.classList.add("block-interactivity-".concat(id3)); + var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef3), true).filter(Boolean); + allow_1.forEach(function(el) { + return el.classList.add("allow-interactivity-".concat(id3)); + }); + return function() { + document.body.classList.remove("block-interactivity-".concat(id3)); + allow_1.forEach(function(el) { + return el.classList.remove("allow-interactivity-".concat(id3)); + }); + }; + } + return; + }, [props.inert, props.lockRef.current, props.shards]); + var shouldCancelEvent = React24.useCallback(function(event, parent) { + if ("touches" in event && event.touches.length === 2) { + return !lastProps.current.allowPinchZoom; + } + var touch = 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 = locationCouldBeScrolled(moveDirection, target); + if (!canBeScrolledInMainDirection) { + return true; + } + if (canBeScrolledInMainDirection) { + currentAxis = moveDirection; + } else { + currentAxis = moveDirection === "v" ? "h" : "v"; + canBeScrolledInMainDirection = 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 handleScroll(cancelingAxis, parent, event, cancelingAxis === "h" ? deltaX : deltaY, true); + }, []); + var shouldPrevent = React24.useCallback(function(_event) { + var event = _event; + if (!lockStack.length || lockStack[lockStack.length - 1] !== Style2) { + return; + } + var delta = "deltaY" in event ? getDeltaXY(event) : getTouchXY(event); + var sourceEvent = shouldPreventQueue.current.filter(function(e) { + return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); + })[0]; + if (sourceEvent && sourceEvent.should) { + if (event.cancelable) { + event.preventDefault(); + } + return; + } + if (!sourceEvent) { + var shardNodes = (lastProps.current.shards || []).map(extractRef3).filter(Boolean).filter(function(node3) { + return node3.contains(event.target); + }); + var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation; + if (shouldStop) { + if (event.cancelable) { + event.preventDefault(); + } + } + } + }, []); + var shouldCancel = React24.useCallback(function(name, delta, target, should) { + var event = { name, delta, target, should, shadowParent: getOutermostShadowParent(target) }; + shouldPreventQueue.current.push(event); + setTimeout(function() { + shouldPreventQueue.current = shouldPreventQueue.current.filter(function(e) { + return e !== event; + }); + }, 1); + }, []); + var scrollTouchStart = React24.useCallback(function(event) { + touchStartRef.current = getTouchXY(event); + activeAxis.current = void 0; + }, []); + var scrollWheel = React24.useCallback(function(event) { + shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); + }, []); + var scrollTouchMove = React24.useCallback(function(event) { + shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current)); + }, []); + React24.useEffect(function() { + lockStack.push(Style2); + props.setCallbacks({ + onScrollCapture: scrollWheel, + onWheelCapture: scrollWheel, + onTouchMoveCapture: scrollTouchMove + }); + document.addEventListener("wheel", shouldPrevent, nonPassive); + document.addEventListener("touchmove", shouldPrevent, nonPassive); + document.addEventListener("touchstart", scrollTouchStart, nonPassive); + return function() { + lockStack = lockStack.filter(function(inst) { + return inst !== Style2; + }); + document.removeEventListener("wheel", shouldPrevent, nonPassive); + document.removeEventListener("touchmove", shouldPrevent, nonPassive); + document.removeEventListener("touchstart", scrollTouchStart, nonPassive); + }; + }, []); + var removeScrollBar = props.removeScrollBar, inert = props.inert; + return React24.createElement( + React24.Fragment, + null, + inert ? React24.createElement(Style2, { styles: generateStyle(id3) }) : null, + removeScrollBar ? React24.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null + ); +} +function getOutermostShadowParent(node3) { + var shadowParent = null; + while (node3 !== null) { + if (node3 instanceof ShadowRoot) { + shadowParent = node3.host; + node3 = node3.host; + } + node3 = node3.parentNode; + } + return shadowParent; +} + +// node_modules/react-remove-scroll/dist/es2015/sidecar.js +var sidecar_default = exportSidecar(effectCar, RemoveScrollSideCar); + +// node_modules/react-remove-scroll/dist/es2015/Combination.js +var ReactRemoveScroll = React25.forwardRef(function(props, ref) { + return React25.createElement(RemoveScroll, __assign({}, props, { ref, sideCar: sidecar_default })); +}); +ReactRemoveScroll.classNames = RemoveScroll.classNames; +var Combination_default2 = ReactRemoveScroll; + +// node_modules/@chakra-ui/modal/dist/chunk-NABYTFTG.mjs +var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1); +function ModalFocusScope(props) { + const { + autoFocus, + trapFocus, + dialogRef, + initialFocusRef, + blockScrollOnMount, + allowPinchZoom, + finalFocusRef, + returnFocusOnClose, + preserveScrollBarGap, + lockFocusAcrossFrames, + isOpen + } = useModalContext(); + const [isPresent2, safeToRemove] = usePresence(); + (0, import_react165.useEffect)(() => { + if (!isPresent2 && safeToRemove) { + setTimeout(safeToRemove); + } + }, [isPresent2, safeToRemove]); + const index = useModalManager(dialogRef, isOpen); + return (0, import_jsx_runtime122.jsx)( + FocusLock2, + { + autoFocus, + isDisabled: !trapFocus, + initialFocusRef, + finalFocusRef, + restoreFocus: returnFocusOnClose, + contentRef: dialogRef, + lockFocusAcrossFrames, + children: (0, import_jsx_runtime122.jsx)( + Combination_default2, + { + removeScrollBar: !preserveScrollBarGap, + allowPinchZoom, + enabled: index === 1 && blockScrollOnMount, + forwardProps: true, + children: props.children + } + ) + } + ); +} + +// node_modules/@chakra-ui/modal/dist/chunk-EL2VKIZQ.mjs +var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1); +var ModalContent = forwardRef3( + (props, ref) => { + const { + className, + children, + containerProps: rootProps, + motionProps, + ...rest + } = props; + const { getDialogProps, getDialogContainerProps } = useModalContext(); + const dialogProps = getDialogProps(rest, ref); + const containerProps = getDialogContainerProps(rootProps); + const _className = cx("chakra-modal__content", className); + const styles2 = useModalStyles(); + const dialogStyles = { + display: "flex", + flexDirection: "column", + position: "relative", + width: "100%", + outline: 0, + ...styles2.dialog + }; + const dialogContainerStyles = { + display: "flex", + width: "100vw", + height: "$100vh", + position: "fixed", + left: 0, + top: 0, + ...styles2.dialogContainer + }; + const { motionPreset } = useModalContext(); + return (0, import_jsx_runtime123.jsx)(ModalFocusScope, { children: (0, import_jsx_runtime123.jsx)( + chakra.div, + { + ...containerProps, + className: "chakra-modal__content-container", + tabIndex: -1, + __css: dialogContainerStyles, + children: (0, import_jsx_runtime123.jsx)( + ModalTransition, + { + preset: motionPreset, + motionProps, + className: _className, + ...dialogProps, + __css: dialogStyles, + children + } + ) + } + ) }); + } +); +ModalContent.displayName = "ModalContent"; + +// node_modules/@chakra-ui/modal/dist/chunk-FQDHE43W.mjs +var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1); +function AlertDialog(props) { + const { leastDestructiveRef, ...rest } = props; + return (0, import_jsx_runtime124.jsx)(Modal, { ...rest, initialFocusRef: leastDestructiveRef }); +} +var AlertDialogContent = forwardRef3( + (props, ref) => (0, import_jsx_runtime124.jsx)(ModalContent, { ref, role: "alertdialog", ...props }) +); + +// node_modules/@chakra-ui/modal/dist/chunk-MCHDHFCQ.mjs +var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1); +var [DrawerContextProvider, useDrawerContext] = createContext2(); +var placementMap2 = { + start: { ltr: "left", rtl: "right" }, + end: { ltr: "right", rtl: "left" } +}; +function getDrawerPlacement(placement, dir) { + var _a8, _b5; + if (!placement) + return; + return (_b5 = (_a8 = placementMap2[placement]) == null ? void 0 : _a8[dir]) != null ? _b5 : placement; +} +function Drawer(props) { + var _a8; + const { + isOpen, + onClose, + placement: placementProp = "right", + children, + ...rest + } = props; + const theme2 = useTheme2(); + const drawerStyleConfig = (_a8 = theme2.components) == null ? void 0 : _a8.Drawer; + const placement = getDrawerPlacement(placementProp, theme2.direction); + return (0, import_jsx_runtime125.jsx)(DrawerContextProvider, { value: { placement }, children: (0, import_jsx_runtime125.jsx)( + Modal, + { + isOpen, + onClose, + styleConfig: drawerStyleConfig, + ...rest, + children + } + ) }); +} + +// node_modules/@chakra-ui/modal/dist/chunk-65IR7CTH.mjs +var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1); +var MotionDiv = chakra(Slide); +var DrawerContent = forwardRef3( + (props, ref) => { + const { + className, + children, + motionProps, + containerProps: rootProps, + ...rest + } = props; + const { getDialogProps, getDialogContainerProps, isOpen } = useModalContext(); + const dialogProps = getDialogProps(rest, ref); + const containerProps = getDialogContainerProps(rootProps); + const _className = cx("chakra-modal__content", className); + const styles2 = useModalStyles(); + const dialogStyles = { + display: "flex", + flexDirection: "column", + position: "relative", + width: "100%", + outline: 0, + ...styles2.dialog + }; + const dialogContainerStyles = { + display: "flex", + width: "100vw", + height: "$100vh", + position: "fixed", + left: 0, + top: 0, + ...styles2.dialogContainer + }; + const { placement } = useDrawerContext(); + return (0, import_jsx_runtime126.jsx)(ModalFocusScope, { children: (0, import_jsx_runtime126.jsx)( + chakra.div, + { + ...containerProps, + className: "chakra-modal__content-container", + __css: dialogContainerStyles, + children: (0, import_jsx_runtime126.jsx)( + MotionDiv, + { + motionProps, + direction: placement, + in: isOpen, + className: _className, + ...dialogProps, + __css: dialogStyles, + children + } + ) + } + ) }); + } +); +DrawerContent.displayName = "DrawerContent"; + +// node_modules/@chakra-ui/modal/dist/chunk-RAWN7VJ3.mjs +var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1); +var ModalFooter = forwardRef3( + (props, ref) => { + const { className, ...rest } = props; + const _className = cx("chakra-modal__footer", className); + const styles2 = useModalStyles(); + const footerStyles = { + display: "flex", + alignItems: "center", + justifyContent: "flex-end", + ...styles2.footer + }; + return (0, import_jsx_runtime127.jsx)( + chakra.footer, + { + ref, + ...rest, + __css: footerStyles, + className: _className + } + ); + } +); +ModalFooter.displayName = "ModalFooter"; + +// node_modules/@chakra-ui/modal/dist/chunk-5FG5SY5K.mjs +var import_react166 = __toESM(require_react(), 1); +var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1); +var ModalHeader = forwardRef3( + (props, ref) => { + const { className, ...rest } = props; + const { headerId, setHeaderMounted } = useModalContext(); + (0, import_react166.useEffect)(() => { + setHeaderMounted(true); + return () => setHeaderMounted(false); + }, [setHeaderMounted]); + const _className = cx("chakra-modal__header", className); + const styles2 = useModalStyles(); + const headerStyles = { + flex: 0, + ...styles2.header + }; + return (0, import_jsx_runtime128.jsx)( + chakra.header, + { + ref, + className: _className, + id: headerId, + ...rest, + __css: headerStyles + } + ); + } +); +ModalHeader.displayName = "ModalHeader"; + +// node_modules/@chakra-ui/modal/dist/chunk-JQMJHPZH.mjs +var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1); +var MotionDiv2 = chakra(motion.div); +var ModalOverlay = forwardRef3( + (props, ref) => { + const { className, transition: transition3, motionProps: _motionProps, ...rest } = props; + const _className = cx("chakra-modal__overlay", className); + const styles2 = useModalStyles(); + const overlayStyle = { + pos: "fixed", + left: "0", + top: "0", + w: "100vw", + h: "100vh", + ...styles2.overlay + }; + const { motionPreset } = useModalContext(); + const defaultMotionProps = motionPreset === "none" ? {} : fadeConfig; + const motionProps = _motionProps || defaultMotionProps; + return (0, import_jsx_runtime129.jsx)( + MotionDiv2, + { + ...motionProps, + __css: overlayStyle, + ref, + className: _className, + ...rest + } + ); + } +); +ModalOverlay.displayName = "ModalOverlay"; + +// node_modules/@chakra-ui/modal/dist/chunk-OFOVX77R.mjs +var import_react167 = __toESM(require_react(), 1); +var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1); +var ModalBody = forwardRef3((props, ref) => { + const { className, ...rest } = props; + const { bodyId, setBodyMounted } = useModalContext(); + (0, import_react167.useEffect)(() => { + setBodyMounted(true); + return () => setBodyMounted(false); + }, [setBodyMounted]); + const _className = cx("chakra-modal__body", className); + const styles2 = useModalStyles(); + return (0, import_jsx_runtime130.jsx)( + chakra.div, + { + ref, + className: _className, + id: bodyId, + ...rest, + __css: styles2.body + } + ); +}); +ModalBody.displayName = "ModalBody"; + +// node_modules/@chakra-ui/modal/dist/chunk-4FCEGNGT.mjs +var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1); +var ModalCloseButton = forwardRef3( + (props, ref) => { + const { onClick, className, ...rest } = props; + const { onClose } = useModalContext(); + const _className = cx("chakra-modal__close-btn", className); + const styles2 = useModalStyles(); + return (0, import_jsx_runtime131.jsx)( + CloseButton, + { + ref, + __css: styles2.closeButton, + className: _className, + onClick: callAllHandlers(onClick, (event) => { + event.stopPropagation(); + onClose(); + }), + ...rest + } + ); + } +); +ModalCloseButton.displayName = "ModalCloseButton"; + +// node_modules/@chakra-ui/number-input/dist/chunk-KWODBCCW.mjs +var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1); +var TriangleDownIcon = (props) => (0, import_jsx_runtime132.jsx)(Icon, { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime132.jsx)( + "path", + { + fill: "currentColor", + d: "M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z" + } +) }); +var TriangleUpIcon = (props) => (0, import_jsx_runtime132.jsx)(Icon, { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime132.jsx)( + "path", + { + fill: "currentColor", + d: "M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z" + } +) }); + +// node_modules/@chakra-ui/number-input/dist/chunk-2PMVP26D.mjs +var import_react168 = __toESM(require_react(), 1); +function useAttributeObserver(ref, attributes, fn, enabled) { + (0, import_react168.useEffect)(() => { + var _a8; + if (!ref.current || !enabled) + return; + const win = (_a8 = ref.current.ownerDocument.defaultView) != null ? _a8 : window; + const attrs = Array.isArray(attributes) ? attributes : [attributes]; + const obs = new win.MutationObserver((changes) => { + for (const change of changes) { + if (change.type === "attributes" && change.attributeName && attrs.includes(change.attributeName)) { + fn(change); + } + } + }); + obs.observe(ref.current, { attributes: true, attributeFilter: attrs }); + return () => obs.disconnect(); + }); +} + +// node_modules/@chakra-ui/react-use-interval/dist/index.mjs +var import_react169 = __toESM(require_react(), 1); +function useInterval2(callback, delay2) { + const fn = useCallbackRef(callback); + (0, import_react169.useEffect)(() => { + let intervalId = null; + const tick = () => fn(); + if (delay2 !== null) { + intervalId = window.setInterval(tick, delay2); + } + return () => { + if (intervalId) { + window.clearInterval(intervalId); + } + }; + }, [delay2, fn]); +} + +// node_modules/@chakra-ui/number-input/dist/chunk-366L2ZDN.mjs +var import_react170 = __toESM(require_react(), 1); +var CONTINUOUS_CHANGE_INTERVAL = 50; +var CONTINUOUS_CHANGE_DELAY = 300; +function useSpinner(increment, decrement) { + const [isSpinning, setIsSpinning] = (0, import_react170.useState)(false); + const [action, setAction] = (0, import_react170.useState)(null); + const [runOnce, setRunOnce] = (0, import_react170.useState)(true); + const timeoutRef = (0, import_react170.useRef)(null); + const removeTimeout = () => clearTimeout(timeoutRef.current); + useInterval2( + () => { + if (action === "increment") { + increment(); + } + if (action === "decrement") { + decrement(); + } + }, + isSpinning ? CONTINUOUS_CHANGE_INTERVAL : null + ); + const up = (0, import_react170.useCallback)(() => { + if (runOnce) { + increment(); + } + timeoutRef.current = setTimeout(() => { + setRunOnce(false); + setIsSpinning(true); + setAction("increment"); + }, CONTINUOUS_CHANGE_DELAY); + }, [increment, runOnce]); + const down = (0, import_react170.useCallback)(() => { + if (runOnce) { + decrement(); + } + timeoutRef.current = setTimeout(() => { + setRunOnce(false); + setIsSpinning(true); + setAction("decrement"); + }, CONTINUOUS_CHANGE_DELAY); + }, [decrement, runOnce]); + const stop = (0, import_react170.useCallback)(() => { + setRunOnce(true); + setIsSpinning(false); + removeTimeout(); + }, []); + (0, import_react170.useEffect)(() => { + return () => removeTimeout(); + }, []); + return { up, down, stop, isSpinning }; +} + +// node_modules/@chakra-ui/number-input/dist/chunk-4ZJMWFQT.mjs +var import_react171 = __toESM(require_react(), 1); +var FLOATING_POINT_REGEX = /^[Ee0-9+\-.]$/; +function isFloatingPointNumericCharacter(character2) { + return FLOATING_POINT_REGEX.test(character2); +} +function isValidNumericKeyboardEvent(event, isValid) { + if (event.key == null) + return true; + const isModifierKey = event.ctrlKey || event.altKey || event.metaKey; + const isSingleCharacterKey = event.key.length === 1; + if (!isSingleCharacterKey || isModifierKey) + return true; + return isValid(event.key); +} +function useNumberInput(props = {}) { + const { + focusInputOnChange = true, + clampValueOnBlur = true, + keepWithinRange = true, + min = Number.MIN_SAFE_INTEGER, + max = Number.MAX_SAFE_INTEGER, + step: stepProp = 1, + isReadOnly, + isDisabled: isDisabled3, + isRequired, + isInvalid, + pattern = "[0-9]*(.[0-9]+)?", + inputMode = "decimal", + allowMouseWheel, + id: id3, + onChange: _, + precision, + name, + "aria-describedby": ariaDescBy, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + onFocus: onFocusProp, + onBlur: onBlurProp, + onInvalid: onInvalidProp, + getAriaValueText: getAriaValueTextProp, + isValidCharacter: isValidCharacterProp, + format: formatValue, + parse: parseValue, + ...htmlProps + } = props; + const onFocus3 = useCallbackRef(onFocusProp); + const onBlur3 = useCallbackRef(onBlurProp); + const onInvalid = useCallbackRef(onInvalidProp); + const isValidCharacter = useCallbackRef( + isValidCharacterProp != null ? isValidCharacterProp : isFloatingPointNumericCharacter + ); + const getAriaValueText = useCallbackRef(getAriaValueTextProp); + const counter2 = useCounter(props); + const { + update: updateFn, + increment: incrementFn, + decrement: decrementFn + } = counter2; + const [isFocused, setFocused] = (0, import_react171.useState)(false); + const isInteractive = !(isReadOnly || isDisabled3); + const inputRef = (0, import_react171.useRef)(null); + const inputSelectionRef = (0, import_react171.useRef)(null); + const incrementButtonRef = (0, import_react171.useRef)(null); + const decrementButtonRef = (0, import_react171.useRef)(null); + const sanitize2 = (0, import_react171.useCallback)( + (value) => value.split("").filter(isValidCharacter).join(""), + [isValidCharacter] + ); + const parse6 = (0, import_react171.useCallback)( + (value) => { + var _a8; + return (_a8 = parseValue == null ? void 0 : parseValue(value)) != null ? _a8 : value; + }, + [parseValue] + ); + const format = (0, import_react171.useCallback)( + (value) => { + var _a8; + return ((_a8 = formatValue == null ? void 0 : formatValue(value)) != null ? _a8 : value).toString(); + }, + [formatValue] + ); + useUpdateEffect(() => { + if (counter2.valueAsNumber > max) { + onInvalid == null ? void 0 : onInvalid("rangeOverflow", format(counter2.value), counter2.valueAsNumber); + } else if (counter2.valueAsNumber < min) { + onInvalid == null ? void 0 : onInvalid("rangeOverflow", format(counter2.value), counter2.valueAsNumber); + } + }, [counter2.valueAsNumber, counter2.value, format, onInvalid]); + useSafeLayoutEffect(() => { + if (!inputRef.current) + return; + const notInSync = inputRef.current.value != counter2.value; + if (notInSync) { + const parsedInput = parse6(inputRef.current.value); + counter2.setValue(sanitize2(parsedInput)); + } + }, [parse6, sanitize2]); + const increment = (0, import_react171.useCallback)( + (step = stepProp) => { + if (isInteractive) { + incrementFn(step); + } + }, + [incrementFn, isInteractive, stepProp] + ); + const decrement = (0, import_react171.useCallback)( + (step = stepProp) => { + if (isInteractive) { + decrementFn(step); + } + }, + [decrementFn, isInteractive, stepProp] + ); + const spinner = useSpinner(increment, decrement); + useAttributeObserver( + incrementButtonRef, + "disabled", + spinner.stop, + spinner.isSpinning + ); + useAttributeObserver( + decrementButtonRef, + "disabled", + spinner.stop, + spinner.isSpinning + ); + const onChange = (0, import_react171.useCallback)( + (event) => { + const evt = event.nativeEvent; + if (evt.isComposing) + return; + const parsedInput = parse6(event.currentTarget.value); + updateFn(sanitize2(parsedInput)); + inputSelectionRef.current = { + start: event.currentTarget.selectionStart, + end: event.currentTarget.selectionEnd + }; + }, + [updateFn, sanitize2, parse6] + ); + const _onFocus = (0, import_react171.useCallback)( + (event) => { + var _a8, _b5, _c3; + onFocus3 == null ? void 0 : onFocus3(event); + if (!inputSelectionRef.current) + return; + event.target.selectionStart = (_b5 = inputSelectionRef.current.start) != null ? _b5 : (_a8 = event.currentTarget.value) == null ? void 0 : _a8.length; + event.currentTarget.selectionEnd = (_c3 = inputSelectionRef.current.end) != null ? _c3 : event.currentTarget.selectionStart; + }, + [onFocus3] + ); + const onKeyDown = (0, import_react171.useCallback)( + (event) => { + if (event.nativeEvent.isComposing) + return; + if (!isValidNumericKeyboardEvent(event, isValidCharacter)) { + event.preventDefault(); + } + const stepFactor = getStepFactor(event) * stepProp; + const eventKey = event.key; + const keyMap = { + ArrowUp: () => increment(stepFactor), + ArrowDown: () => decrement(stepFactor), + Home: () => updateFn(min), + End: () => updateFn(max) + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + action(event); + } + }, + [isValidCharacter, stepProp, increment, decrement, updateFn, min, max] + ); + const getStepFactor = (event) => { + let ratio = 1; + if (event.metaKey || event.ctrlKey) { + ratio = 0.1; + } + if (event.shiftKey) { + ratio = 10; + } + return ratio; + }; + const ariaValueText = (0, import_react171.useMemo)(() => { + const text = getAriaValueText == null ? void 0 : getAriaValueText(counter2.value); + if (text != null) + return text; + const defaultText = counter2.value.toString(); + return !defaultText ? void 0 : defaultText; + }, [counter2.value, getAriaValueText]); + const validateAndClamp = (0, import_react171.useCallback)(() => { + let next2 = counter2.value; + if (counter2.value === "") + return; + const valueStartsWithE = /^[eE]/.test(counter2.value.toString()); + if (valueStartsWithE) { + counter2.setValue(""); + } else { + if (counter2.valueAsNumber < min) { + next2 = min; + } + if (counter2.valueAsNumber > max) { + next2 = max; + } + counter2.cast(next2); + } + }, [counter2, max, min]); + const onInputBlur = (0, import_react171.useCallback)(() => { + setFocused(false); + if (clampValueOnBlur) { + validateAndClamp(); + } + }, [clampValueOnBlur, setFocused, validateAndClamp]); + const focusInput = (0, import_react171.useCallback)(() => { + if (focusInputOnChange) { + requestAnimationFrame(() => { + var _a8; + (_a8 = inputRef.current) == null ? void 0 : _a8.focus(); + }); + } + }, [focusInputOnChange]); + const spinUp = (0, import_react171.useCallback)( + (event) => { + event.preventDefault(); + spinner.up(); + focusInput(); + }, + [focusInput, spinner] + ); + const spinDown = (0, import_react171.useCallback)( + (event) => { + event.preventDefault(); + spinner.down(); + focusInput(); + }, + [focusInput, spinner] + ); + useEventListener( + () => inputRef.current, + "wheel", + (event) => { + var _a8, _b5; + const doc = (_b5 = (_a8 = inputRef.current) == null ? void 0 : _a8.ownerDocument) != null ? _b5 : document; + const isInputFocused = doc.activeElement === inputRef.current; + if (!allowMouseWheel || !isInputFocused) + return; + event.preventDefault(); + const stepFactor = getStepFactor(event) * stepProp; + const direction2 = Math.sign(event.deltaY); + if (direction2 === -1) { + increment(stepFactor); + } else if (direction2 === 1) { + decrement(stepFactor); + } + }, + { passive: false } + ); + const getIncrementButtonProps = (0, import_react171.useCallback)( + (props2 = {}, ref = null) => { + const disabled = isDisabled3 || keepWithinRange && counter2.isAtMax; + return { + ...props2, + ref: mergeRefs2(ref, incrementButtonRef), + role: "button", + tabIndex: -1, + onPointerDown: callAllHandlers(props2.onPointerDown, (event) => { + if (event.button !== 0 || disabled) + return; + spinUp(event); + }), + onPointerLeave: callAllHandlers(props2.onPointerLeave, spinner.stop), + onPointerUp: callAllHandlers(props2.onPointerUp, spinner.stop), + disabled, + "aria-disabled": ariaAttr(disabled) + }; + }, + [counter2.isAtMax, keepWithinRange, spinUp, spinner.stop, isDisabled3] + ); + const getDecrementButtonProps = (0, import_react171.useCallback)( + (props2 = {}, ref = null) => { + const disabled = isDisabled3 || keepWithinRange && counter2.isAtMin; + return { + ...props2, + ref: mergeRefs2(ref, decrementButtonRef), + role: "button", + tabIndex: -1, + onPointerDown: callAllHandlers(props2.onPointerDown, (event) => { + if (event.button !== 0 || disabled) + return; + spinDown(event); + }), + onPointerLeave: callAllHandlers(props2.onPointerLeave, spinner.stop), + onPointerUp: callAllHandlers(props2.onPointerUp, spinner.stop), + disabled, + "aria-disabled": ariaAttr(disabled) + }; + }, + [counter2.isAtMin, keepWithinRange, spinDown, spinner.stop, isDisabled3] + ); + const getInputProps = (0, import_react171.useCallback)( + (props2 = {}, ref = null) => { + var _a8, _b5, _c3, _d3; + return { + name, + inputMode, + type: "text", + pattern, + "aria-labelledby": ariaLabelledBy, + "aria-label": ariaLabel, + "aria-describedby": ariaDescBy, + id: id3, + disabled: isDisabled3, + ...props2, + readOnly: (_a8 = props2.readOnly) != null ? _a8 : isReadOnly, + "aria-readonly": (_b5 = props2.readOnly) != null ? _b5 : isReadOnly, + "aria-required": (_c3 = props2.required) != null ? _c3 : isRequired, + required: (_d3 = props2.required) != null ? _d3 : isRequired, + ref: mergeRefs2(inputRef, ref), + value: format(counter2.value), + role: "spinbutton", + "aria-valuemin": min, + "aria-valuemax": max, + "aria-valuenow": Number.isNaN(counter2.valueAsNumber) ? void 0 : counter2.valueAsNumber, + "aria-invalid": ariaAttr(isInvalid != null ? isInvalid : counter2.isOutOfRange), + "aria-valuetext": ariaValueText, + autoComplete: "off", + autoCorrect: "off", + onChange: callAllHandlers(props2.onChange, onChange), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown), + onFocus: callAllHandlers( + props2.onFocus, + _onFocus, + () => setFocused(true) + ), + onBlur: callAllHandlers(props2.onBlur, onBlur3, onInputBlur) + }; + }, + [ + name, + inputMode, + pattern, + ariaLabelledBy, + ariaLabel, + format, + ariaDescBy, + id3, + isDisabled3, + isRequired, + isReadOnly, + isInvalid, + counter2.value, + counter2.valueAsNumber, + counter2.isOutOfRange, + min, + max, + ariaValueText, + onChange, + onKeyDown, + _onFocus, + onBlur3, + onInputBlur + ] + ); + return { + value: format(counter2.value), + valueAsNumber: counter2.valueAsNumber, + isFocused, + isDisabled: isDisabled3, + isReadOnly, + getIncrementButtonProps, + getDecrementButtonProps, + getInputProps, + htmlProps + }; +} + +// node_modules/@chakra-ui/number-input/dist/chunk-2JJX6TVY.mjs +var import_react172 = __toESM(require_react(), 1); +var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1); +var [NumberInputStylesProvider, useNumberInputStyles] = createContext2({ + name: `NumberInputStylesContext`, + errorMessage: `useNumberInputStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var [NumberInputProvider, useNumberInputContext] = createContext2({ + name: "NumberInputContext", + errorMessage: "useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within " +}); +var NumberInput = forwardRef3( + function NumberInput2(props, ref) { + const styles2 = useMultiStyleConfig("NumberInput", props); + const ownProps = omitThemingProps(props); + const controlProps = useFormControlProps(ownProps); + const { htmlProps, ...context } = useNumberInput(controlProps); + const ctx = (0, import_react172.useMemo)(() => context, [context]); + return (0, import_jsx_runtime133.jsx)(NumberInputProvider, { value: ctx, children: (0, import_jsx_runtime133.jsx)(NumberInputStylesProvider, { value: styles2, children: (0, import_jsx_runtime133.jsx)( + chakra.div, + { + ...htmlProps, + ref, + className: cx("chakra-numberinput", props.className), + __css: { + position: "relative", + zIndex: 0, + ...styles2.root + } + } + ) }) }); + } +); +NumberInput.displayName = "NumberInput"; +var NumberInputStepper = forwardRef3( + function NumberInputStepper2(props, ref) { + const styles2 = useNumberInputStyles(); + return (0, import_jsx_runtime133.jsx)( + chakra.div, + { + "aria-hidden": true, + ref, + ...props, + __css: { + display: "flex", + flexDirection: "column", + position: "absolute", + top: "0", + insetEnd: "0px", + margin: "1px", + height: "calc(100% - 2px)", + zIndex: 1, + ...styles2.stepperGroup + } + } + ); + } +); +NumberInputStepper.displayName = "NumberInputStepper"; +var NumberInputField = forwardRef3( + function NumberInputField2(props, ref) { + const { getInputProps } = useNumberInputContext(); + const input = getInputProps(props, ref); + const styles2 = useNumberInputStyles(); + return (0, import_jsx_runtime133.jsx)( + chakra.input, + { + ...input, + className: cx("chakra-numberinput__field", props.className), + __css: { + width: "100%", + ...styles2.field + } + } + ); + } +); +NumberInputField.displayName = "NumberInputField"; +var StyledStepper = chakra("div", { + baseStyle: { + display: "flex", + justifyContent: "center", + alignItems: "center", + flex: 1, + transitionProperty: "common", + transitionDuration: "normal", + userSelect: "none", + cursor: "pointer", + lineHeight: "normal" + } +}); +var NumberDecrementStepper = forwardRef3(function NumberDecrementStepper2(props, ref) { + var _a8; + const styles2 = useNumberInputStyles(); + const { getDecrementButtonProps } = useNumberInputContext(); + const decrement = getDecrementButtonProps(props, ref); + return (0, import_jsx_runtime133.jsx)(StyledStepper, { ...decrement, __css: styles2.stepper, children: (_a8 = props.children) != null ? _a8 : (0, import_jsx_runtime133.jsx)(TriangleDownIcon, {}) }); +}); +NumberDecrementStepper.displayName = "NumberDecrementStepper"; +var NumberIncrementStepper = forwardRef3(function NumberIncrementStepper2(props, ref) { + var _a8; + const { getIncrementButtonProps } = useNumberInputContext(); + const increment = getIncrementButtonProps(props, ref); + const styles2 = useNumberInputStyles(); + return (0, import_jsx_runtime133.jsx)(StyledStepper, { ...increment, __css: styles2.stepper, children: (_a8 = props.children) != null ? _a8 : (0, import_jsx_runtime133.jsx)(TriangleUpIcon, {}) }); +}); +NumberIncrementStepper.displayName = "NumberIncrementStepper"; + +// node_modules/@chakra-ui/pin-input/dist/chunk-7FMJRAMH.mjs +var import_react173 = __toESM(require_react(), 1); +var [ + PinInputDescendantsProvider, + usePinInputDescendantsContext, + usePinInputDescendants, + usePinInputDescendant +] = createDescendantContext(); +var [PinInputProvider, usePinInputContext] = createContext2({ + name: "PinInputContext", + errorMessage: "usePinInputContext: `context` is undefined. Seems you forgot to all pin input fields within ``" +}); +var toArray2 = (value) => value == null ? void 0 : value.split(""); +function validate(value, type) { + const NUMERIC_REGEX = /^[0-9]+$/; + const ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9]+$/i; + const regex = type === "alphanumeric" ? ALPHA_NUMERIC_REGEX : NUMERIC_REGEX; + return regex.test(value); +} +function usePinInput(props = {}) { + const { + autoFocus, + value, + defaultValue, + onChange, + onComplete, + placeholder = "○", + manageFocus = true, + otp = false, + id: idProp, + isDisabled: isDisabled3, + isInvalid, + type = "number", + mask + } = props; + const uuid = (0, import_react173.useId)(); + const id3 = idProp != null ? idProp : `pin-input-${uuid}`; + const descendants = usePinInputDescendants(); + const [moveFocus2, setMoveFocus] = (0, import_react173.useState)(true); + const [focusedIndex, setFocusedIndex] = (0, import_react173.useState)(-1); + const [values, setValues] = useControllableState({ + defaultValue: toArray2(defaultValue) || [], + value: toArray2(value), + onChange: (values2) => onChange == null ? void 0 : onChange(values2.join("")) + }); + (0, import_react173.useEffect)(() => { + if (autoFocus) { + const first = descendants.first(); + if (first) { + requestAnimationFrame(() => { + first.node.focus(); + }); + } + } + }, [descendants]); + const focusNext = (0, import_react173.useCallback)( + (index) => { + if (!moveFocus2 || !manageFocus) + return; + const next2 = descendants.next(index, false); + if (next2) { + requestAnimationFrame(() => { + next2.node.focus(); + }); + } + }, + [descendants, moveFocus2, manageFocus] + ); + const setValue = (0, import_react173.useCallback)( + (value2, index, handleFocus = true) => { + const nextValues = [...values]; + nextValues[index] = value2; + setValues(nextValues); + const isComplete = value2 !== "" && nextValues.length === descendants.count() && nextValues.every( + (inputValue) => inputValue != null && inputValue !== "" + ); + if (isComplete) { + onComplete == null ? void 0 : onComplete(nextValues.join("")); + } else { + if (handleFocus) + focusNext(index); + } + }, + [values, setValues, focusNext, onComplete, descendants] + ); + const clear = (0, import_react173.useCallback)(() => { + var _a8; + const values2 = Array(descendants.count()).fill(""); + setValues(values2); + const first = descendants.first(); + (_a8 = first == null ? void 0 : first.node) == null ? void 0 : _a8.focus(); + }, [descendants, setValues]); + const getNextValue = (0, import_react173.useCallback)((value2, eventValue) => { + let nextValue = eventValue; + if ((value2 == null ? void 0 : value2.length) > 0) { + if (value2[0] === eventValue.charAt(0)) { + nextValue = eventValue.charAt(1); + } else if (value2[0] === eventValue.charAt(1)) { + nextValue = eventValue.charAt(0); + } + } + return nextValue; + }, []); + const getInputProps = (0, import_react173.useCallback)( + (props2) => { + const { index, ...rest } = props2; + const onChange2 = (event) => { + const eventValue = event.target.value; + const currentValue = values[index]; + const nextValue = getNextValue(currentValue, eventValue); + if (nextValue === "") { + setValue("", index); + return; + } + if (eventValue.length > 2) { + if (validate(eventValue, type)) { + const nextValue2 = eventValue.split("").filter((_, index2) => index2 < descendants.count()); + setValues(nextValue2); + if (nextValue2.length === descendants.count()) { + onComplete == null ? void 0 : onComplete(nextValue2.join("")); + } + } + } else { + if (validate(nextValue, type)) { + setValue(nextValue, index); + } + setMoveFocus(true); + } + }; + const onKeyDown = (event) => { + var _a8; + if (event.key === "Backspace" && manageFocus) { + if (event.target.value === "") { + const prevInput = descendants.prev(index, false); + if (prevInput) { + setValue("", index - 1, false); + (_a8 = prevInput.node) == null ? void 0 : _a8.focus(); + setMoveFocus(true); + } + } else { + setMoveFocus(false); + } + } + }; + const onFocus3 = () => { + setFocusedIndex(index); + }; + const onBlur3 = () => { + setFocusedIndex(-1); + }; + const hasFocus = focusedIndex === index; + const inputType = type === "number" ? "tel" : "text"; + return { + "aria-label": "Please enter your pin code", + inputMode: type === "number" ? "numeric" : "text", + type: mask ? "password" : inputType, + ...rest, + id: `${id3}-${index}`, + disabled: isDisabled3, + "aria-invalid": ariaAttr(isInvalid), + onChange: callAllHandlers(rest.onChange, onChange2), + onKeyDown: callAllHandlers(rest.onKeyDown, onKeyDown), + onFocus: callAllHandlers(rest.onFocus, onFocus3), + onBlur: callAllHandlers(rest.onBlur, onBlur3), + value: values[index] || "", + autoComplete: otp ? "one-time-code" : "off", + placeholder: hasFocus ? "" : placeholder + }; + }, + [ + descendants, + focusedIndex, + getNextValue, + id3, + isDisabled3, + mask, + isInvalid, + manageFocus, + onComplete, + otp, + placeholder, + setValue, + setValues, + type, + values + ] + ); + return { + // prop getter + getInputProps, + // state + id: id3, + descendants, + values, + // actions + setValue, + setValues, + clear + }; +} +function usePinInputField(props = {}, ref = null) { + const { getInputProps } = usePinInputContext(); + const { index, register } = usePinInputDescendant(); + return getInputProps({ + ...props, + ref: mergeRefs2(register, ref), + index + }); +} + +// node_modules/@chakra-ui/pin-input/dist/chunk-I5V4ORUK.mjs +var import_react174 = __toESM(require_react(), 1); +var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1); +function PinInput(props) { + const styles2 = useStyleConfig("PinInput", props); + const { children, ...rest } = omitThemingProps(props); + const { descendants, ...context } = usePinInput(rest); + const clones = getValidChildren2(children).map( + (child) => (0, import_react174.cloneElement)(child, { __css: styles2 }) + ); + return (0, import_jsx_runtime134.jsx)(PinInputDescendantsProvider, { value: descendants, children: (0, import_jsx_runtime134.jsx)(PinInputProvider, { value: context, children: clones }) }); +} +PinInput.displayName = "PinInput"; +var PinInputField = forwardRef3( + function PinInputField2(props, ref) { + const inputProps = usePinInputField(props, ref); + return (0, import_jsx_runtime134.jsx)( + chakra.input, + { + ...inputProps, + className: cx("chakra-pin-input", props.className) + } + ); + } +); +PinInputField.displayName = "PinInputField"; + +// node_modules/@chakra-ui/popover/dist/chunk-Z3POGKNI.mjs +var [PopoverProvider, usePopoverContext] = createContext2({ + name: "PopoverContext", + errorMessage: "usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within ``" +}); +var [PopoverStylesProvider, usePopoverStyles] = createContext2({ + name: `PopoverStylesContext`, + errorMessage: `usePopoverStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); + +// node_modules/@chakra-ui/popover/dist/chunk-DHS7LAGW.mjs +var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1); +var PopoverHeader = forwardRef3( + function PopoverHeader2(props, ref) { + const { getHeaderProps } = usePopoverContext(); + const styles2 = usePopoverStyles(); + return (0, import_jsx_runtime135.jsx)( + chakra.header, + { + ...getHeaderProps(props, ref), + className: cx("chakra-popover__header", props.className), + __css: styles2.header + } + ); + } +); +PopoverHeader.displayName = "PopoverHeader"; + +// node_modules/@chakra-ui/popover/dist/chunk-OFUG2FGD.mjs +var import_react175 = __toESM(require_react(), 1); +function PopoverTrigger(props) { + const child = import_react175.Children.only(props.children); + const { getTriggerProps } = usePopoverContext(); + return (0, import_react175.cloneElement)(child, getTriggerProps(child.props, child.ref)); +} +PopoverTrigger.displayName = "PopoverTrigger"; + +// node_modules/@chakra-ui/popover/dist/chunk-A566ERKI.mjs +var import_react176 = __toESM(require_react(), 1); +var TRIGGER = { + click: "click", + hover: "hover" +}; +function usePopover(props = {}) { + const { + closeOnBlur = true, + closeOnEsc = true, + initialFocusRef, + id: id3, + returnFocusOnClose = true, + autoFocus = true, + arrowSize, + arrowShadowColor, + trigger: trigger2 = TRIGGER.click, + openDelay = 200, + closeDelay = 200, + isLazy, + lazyBehavior = "unmount", + computePositionOnMount, + ...popperProps + } = props; + const { isOpen, onClose, onOpen, onToggle } = useDisclosure2(props); + const anchorRef = (0, import_react176.useRef)(null); + const triggerRef = (0, import_react176.useRef)(null); + const popoverRef = (0, import_react176.useRef)(null); + const isHoveringRef = (0, import_react176.useRef)(false); + const hasBeenOpened = (0, import_react176.useRef)(false); + if (isOpen) { + hasBeenOpened.current = true; + } + const [hasHeader, setHasHeader] = (0, import_react176.useState)(false); + const [hasBody, setHasBody] = (0, import_react176.useState)(false); + const uuid = (0, import_react176.useId)(); + const uid = id3 != null ? id3 : uuid; + const [triggerId, popoverId, headerId, bodyId] = [ + "popover-trigger", + "popover-content", + "popover-header", + "popover-body" + ].map((id22) => `${id22}-${uid}`); + const { + referenceRef, + getArrowProps, + getPopperProps, + getArrowInnerProps, + forceUpdate + } = usePopper({ + ...popperProps, + enabled: isOpen || !!computePositionOnMount + }); + const animated = useAnimationState2({ isOpen, ref: popoverRef }); + useFocusOnPointerDown({ + enabled: isOpen, + ref: triggerRef + }); + useFocusOnHide2(popoverRef, { + focusRef: triggerRef, + visible: isOpen, + shouldFocus: returnFocusOnClose && trigger2 === TRIGGER.click + }); + useFocusOnShow2(popoverRef, { + focusRef: initialFocusRef, + visible: isOpen, + shouldFocus: autoFocus && trigger2 === TRIGGER.click + }); + const shouldRenderChildren = lazyDisclosure({ + wasSelected: hasBeenOpened.current, + enabled: isLazy, + mode: lazyBehavior, + isSelected: animated.present + }); + const getPopoverProps = (0, import_react176.useCallback)( + (props2 = {}, _ref2 = null) => { + const popoverProps = { + ...props2, + style: { + ...props2.style, + transformOrigin: cssVars.transformOrigin.varRef, + [cssVars.arrowSize.var]: arrowSize ? `${arrowSize}px` : void 0, + [cssVars.arrowShadowColor.var]: arrowShadowColor + }, + ref: mergeRefs2(popoverRef, _ref2), + children: shouldRenderChildren ? props2.children : null, + id: popoverId, + tabIndex: -1, + role: "dialog", + onKeyDown: callAllHandlers(props2.onKeyDown, (event) => { + if (closeOnEsc && event.key === "Escape") { + onClose(); + } + }), + onBlur: callAllHandlers(props2.onBlur, (event) => { + const relatedTarget = getRelatedTarget2(event); + const targetIsPopover = contains5(popoverRef.current, relatedTarget); + const targetIsTrigger = contains5(triggerRef.current, relatedTarget); + const isValidBlur = !targetIsPopover && !targetIsTrigger; + if (isOpen && closeOnBlur && isValidBlur) { + onClose(); + } + }), + "aria-labelledby": hasHeader ? headerId : void 0, + "aria-describedby": hasBody ? bodyId : void 0 + }; + if (trigger2 === TRIGGER.hover) { + popoverProps.role = "tooltip"; + popoverProps.onMouseEnter = callAllHandlers(props2.onMouseEnter, () => { + isHoveringRef.current = true; + }); + popoverProps.onMouseLeave = callAllHandlers( + props2.onMouseLeave, + (event) => { + if (event.nativeEvent.relatedTarget === null) { + return; + } + isHoveringRef.current = false; + setTimeout(() => onClose(), closeDelay); + } + ); + } + return popoverProps; + }, + [ + shouldRenderChildren, + popoverId, + hasHeader, + headerId, + hasBody, + bodyId, + trigger2, + closeOnEsc, + onClose, + isOpen, + closeOnBlur, + closeDelay, + arrowShadowColor, + arrowSize + ] + ); + const getPopoverPositionerProps = (0, import_react176.useCallback)( + (props2 = {}, forwardedRef = null) => getPopperProps( + { + ...props2, + style: { + visibility: isOpen ? "visible" : "hidden", + ...props2.style + } + }, + forwardedRef + ), + [isOpen, getPopperProps] + ); + const getAnchorProps = (0, import_react176.useCallback)( + (props2, _ref2 = null) => { + return { + ...props2, + // If anchor is rendered, it is used as reference. + ref: mergeRefs2(_ref2, anchorRef, referenceRef) + }; + }, + [anchorRef, referenceRef] + ); + const openTimeout = (0, import_react176.useRef)(); + const closeTimeout = (0, import_react176.useRef)(); + const maybeReferenceRef = (0, import_react176.useCallback)( + (node3) => { + if (anchorRef.current == null) { + referenceRef(node3); + } + }, + [referenceRef] + ); + const getTriggerProps = (0, import_react176.useCallback)( + (props2 = {}, _ref2 = null) => { + const triggerProps = { + ...props2, + ref: mergeRefs2(triggerRef, _ref2, maybeReferenceRef), + id: triggerId, + "aria-haspopup": "dialog", + "aria-expanded": isOpen, + "aria-controls": popoverId + }; + if (trigger2 === TRIGGER.click) { + triggerProps.onClick = callAllHandlers(props2.onClick, onToggle); + } + if (trigger2 === TRIGGER.hover) { + triggerProps.onFocus = callAllHandlers(props2.onFocus, () => { + if (openTimeout.current === void 0) { + onOpen(); + } + }); + triggerProps.onBlur = callAllHandlers(props2.onBlur, (event) => { + const relatedTarget = getRelatedTarget2(event); + const isValidBlur = !contains5(popoverRef.current, relatedTarget); + if (isOpen && closeOnBlur && isValidBlur) { + onClose(); + } + }); + triggerProps.onKeyDown = callAllHandlers(props2.onKeyDown, (event) => { + if (event.key === "Escape") { + onClose(); + } + }); + triggerProps.onMouseEnter = callAllHandlers(props2.onMouseEnter, () => { + isHoveringRef.current = true; + openTimeout.current = window.setTimeout(() => onOpen(), openDelay); + }); + triggerProps.onMouseLeave = callAllHandlers(props2.onMouseLeave, () => { + isHoveringRef.current = false; + if (openTimeout.current) { + clearTimeout(openTimeout.current); + openTimeout.current = void 0; + } + closeTimeout.current = window.setTimeout(() => { + if (isHoveringRef.current === false) { + onClose(); + } + }, closeDelay); + }); + } + return triggerProps; + }, + [ + triggerId, + isOpen, + popoverId, + trigger2, + maybeReferenceRef, + onToggle, + onOpen, + closeOnBlur, + onClose, + openDelay, + closeDelay + ] + ); + (0, import_react176.useEffect)(() => { + return () => { + if (openTimeout.current) { + clearTimeout(openTimeout.current); + } + if (closeTimeout.current) { + clearTimeout(closeTimeout.current); + } + }; + }, []); + const getHeaderProps = (0, import_react176.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + id: headerId, + ref: mergeRefs2(ref, (node3) => { + setHasHeader(!!node3); + }) + }), + [headerId] + ); + const getBodyProps = (0, import_react176.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + id: bodyId, + ref: mergeRefs2(ref, (node3) => { + setHasBody(!!node3); + }) + }), + [bodyId] + ); + return { + forceUpdate, + isOpen, + onAnimationComplete: animated.onComplete, + onClose, + getAnchorProps, + getArrowProps, + getArrowInnerProps, + getPopoverPositionerProps, + getPopoverProps, + getTriggerProps, + getHeaderProps, + getBodyProps + }; +} +function contains5(parent, child) { + return parent === child || (parent == null ? void 0 : parent.contains(child)); +} +function getRelatedTarget2(event) { + var _a8; + const activeEl = event.currentTarget.ownerDocument.activeElement; + return (_a8 = event.relatedTarget) != null ? _a8 : activeEl; +} + +// node_modules/@chakra-ui/popover/dist/chunk-3WRTUQ76.mjs +var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1); +function Popover(props) { + const styles2 = useMultiStyleConfig("Popover", props); + const { children, ...rest } = omitThemingProps(props); + const theme2 = useTheme2(); + const context = usePopover({ ...rest, direction: theme2.direction }); + return (0, import_jsx_runtime136.jsx)(PopoverProvider, { value: context, children: (0, import_jsx_runtime136.jsx)(PopoverStylesProvider, { value: styles2, children: runIfFn(children, { + isOpen: context.isOpen, + onClose: context.onClose, + forceUpdate: context.forceUpdate + }) }) }); +} +Popover.displayName = "Popover"; + +// node_modules/@chakra-ui/popover/dist/chunk-DY5QRMBO.mjs +var import_react177 = __toESM(require_react(), 1); +function PopoverAnchor(props) { + const child = import_react177.Children.only(props.children); + const { getAnchorProps } = usePopoverContext(); + return (0, import_react177.cloneElement)(child, getAnchorProps(child.props, child.ref)); +} +PopoverAnchor.displayName = "PopoverAnchor"; + +// node_modules/@chakra-ui/popover/dist/chunk-TL4BBA7T.mjs +var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1); +var resolveVar = (scale3, value) => value ? `${scale3}.${value}, ${value}` : void 0; +function PopoverArrow(props) { + var _a8; + const { bg, bgColor, backgroundColor, shadow, boxShadow, shadowColor } = props; + const { getArrowProps, getArrowInnerProps } = usePopoverContext(); + const styles2 = usePopoverStyles(); + const arrowBg = (_a8 = bg != null ? bg : bgColor) != null ? _a8 : backgroundColor; + const arrowShadow = shadow != null ? shadow : boxShadow; + return (0, import_jsx_runtime137.jsx)( + chakra.div, + { + ...getArrowProps(), + className: "chakra-popover__arrow-positioner", + children: (0, import_jsx_runtime137.jsx)( + chakra.div, + { + className: cx("chakra-popover__arrow", props.className), + ...getArrowInnerProps(props), + __css: { + "--popper-arrow-shadow-color": resolveVar("colors", shadowColor), + "--popper-arrow-bg": resolveVar("colors", arrowBg), + "--popper-arrow-shadow": resolveVar("shadows", arrowShadow), + ...styles2.arrow + } + } + ) + } + ); +} +PopoverArrow.displayName = "PopoverArrow"; + +// node_modules/@chakra-ui/popover/dist/chunk-RLMGYZLY.mjs +var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1); +var PopoverBody = forwardRef3( + function PopoverBody2(props, ref) { + const { getBodyProps } = usePopoverContext(); + const styles2 = usePopoverStyles(); + return (0, import_jsx_runtime138.jsx)( + chakra.div, + { + ...getBodyProps(props, ref), + className: cx("chakra-popover__body", props.className), + __css: styles2.body + } + ); + } +); +PopoverBody.displayName = "PopoverBody"; + +// node_modules/@chakra-ui/popover/dist/chunk-JKY3EM6P.mjs +var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1); +var PopoverCloseButton = forwardRef3( + function PopoverCloseButton2(props, ref) { + const { onClose } = usePopoverContext(); + const styles2 = usePopoverStyles(); + return (0, import_jsx_runtime139.jsx)( + CloseButton, + { + size: "sm", + onClick: onClose, + className: cx("chakra-popover__close-btn", props.className), + __css: styles2.closeButton, + ref, + ...props + } + ); + } +); +PopoverCloseButton.displayName = "PopoverCloseButton"; + +// node_modules/@chakra-ui/popover/dist/chunk-F4GPNG57.mjs +var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1); +function mergeVariants(variants18) { + if (!variants18) + return; + return { + enter: { + ...variants18.enter, + visibility: "visible" + }, + exit: { + ...variants18.exit, + transitionEnd: { + visibility: "hidden" + } + } + }; +} +var scaleFade = { + exit: { + opacity: 0, + scale: 0.95, + transition: { + duration: 0.1, + ease: [0.4, 0, 1, 1] + } + }, + enter: { + scale: 1, + opacity: 1, + transition: { + duration: 0.15, + ease: [0, 0, 0.2, 1] + } + } +}; +var MotionSection2 = chakra(motion.section); +var PopoverTransition = forwardRef3(function PopoverTransition2(props, ref) { + const { variants: variants18 = scaleFade, ...rest } = props; + const { isOpen } = usePopoverContext(); + return (0, import_jsx_runtime140.jsx)( + MotionSection2, + { + ref, + variants: mergeVariants(variants18), + initial: false, + animate: isOpen ? "enter" : "exit", + ...rest + } + ); +}); +PopoverTransition.displayName = "PopoverTransition"; + +// node_modules/@chakra-ui/popover/dist/chunk-24I2HV4N.mjs +var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1); +var PopoverContent = forwardRef3( + function PopoverContent2(props, ref) { + const { rootProps, motionProps, ...contentProps } = props; + const { getPopoverProps, getPopoverPositionerProps, onAnimationComplete } = usePopoverContext(); + const styles2 = usePopoverStyles(); + const contentStyles = { + position: "relative", + display: "flex", + flexDirection: "column", + ...styles2.content + }; + return (0, import_jsx_runtime141.jsx)( + chakra.div, + { + ...getPopoverPositionerProps(rootProps), + __css: styles2.popper, + className: "chakra-popover__popper", + children: (0, import_jsx_runtime141.jsx)( + PopoverTransition, + { + ...motionProps, + ...getPopoverProps(contentProps, ref), + onAnimationComplete: callAll( + onAnimationComplete, + contentProps.onAnimationComplete + ), + className: cx("chakra-popover__content", props.className), + __css: contentStyles + } + ) + } + ); + } +); +PopoverContent.displayName = "PopoverContent"; + +// node_modules/@chakra-ui/popover/dist/chunk-R6BA5JLS.mjs +var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1); +function PopoverFooter(props) { + const styles2 = usePopoverStyles(); + return (0, import_jsx_runtime142.jsx)( + chakra.footer, + { + ...props, + className: cx("chakra-popover__footer", props.className), + __css: styles2.footer + } + ); +} +PopoverFooter.displayName = "PopoverFooter"; + +// node_modules/@chakra-ui/progress/dist/chunk-QQ2FLD7A.mjs +var CircularProgressLabel = chakra("div", { + baseStyle: { + fontSize: "0.24em", + top: "50%", + left: "50%", + width: "100%", + textAlign: "center", + position: "absolute", + transform: "translate(-50%, -50%)" + } +}); +CircularProgressLabel.displayName = "CircularProgressLabel"; + +// node_modules/@chakra-ui/progress/dist/chunk-7CG3L4JY.mjs +var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1); +var Circle3 = (props) => (0, import_jsx_runtime143.jsx)(chakra.circle, { cx: 50, cy: 50, r: 42, fill: "transparent", ...props }); +Circle3.displayName = "Circle"; + +// node_modules/@chakra-ui/progress/dist/chunk-TXZFUZNG.mjs +function valueToPercent3(value, min, max) { + return (value - min) * 100 / (max - min); +} +var spin2 = keyframes({ + "0%": { + strokeDasharray: "1, 400", + strokeDashoffset: "0" + }, + "50%": { + strokeDasharray: "400, 400", + strokeDashoffset: "-100" + }, + "100%": { + strokeDasharray: "400, 400", + strokeDashoffset: "-260" + } +}); +var rotate = keyframes({ + "0%": { + transform: "rotate(0deg)" + }, + "100%": { + transform: "rotate(360deg)" + } +}); +var progress2 = keyframes({ + "0%": { left: "-40%" }, + "100%": { left: "100%" } +}); +var stripe = keyframes({ + from: { backgroundPosition: "1rem 0" }, + to: { backgroundPosition: "0 0" } +}); +function getProgressProps(options) { + const { + value = 0, + min, + max, + valueText, + getValueText: getValueText2, + isIndeterminate, + role = "progressbar" + } = options; + const percent2 = valueToPercent3(value, min, max); + const getAriaValueText = () => { + if (value == null) + return void 0; + return typeof getValueText2 === "function" ? getValueText2(value, percent2) : valueText; + }; + return { + bind: { + "data-indeterminate": isIndeterminate ? "" : void 0, + "aria-valuemax": max, + "aria-valuemin": min, + "aria-valuenow": isIndeterminate ? void 0 : value, + "aria-valuetext": getAriaValueText(), + role + }, + percent: percent2, + value + }; +} + +// node_modules/@chakra-ui/progress/dist/chunk-EMKK5VRD.mjs +var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1); +var Shape = (props) => { + const { size: size2, isIndeterminate, ...rest } = props; + return (0, import_jsx_runtime144.jsx)( + chakra.svg, + { + viewBox: "0 0 100 100", + __css: { + width: size2, + height: size2, + animation: isIndeterminate ? `${rotate} 2s linear infinite` : void 0 + }, + ...rest + } + ); +}; +Shape.displayName = "Shape"; + +// node_modules/@chakra-ui/progress/dist/chunk-Q6Q7I7E5.mjs +var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1); +var CircularProgress = forwardRef3( + (props, ref) => { + var _a8; + const { + size: size2 = "48px", + max = 100, + min = 0, + valueText, + getValueText: getValueText2, + value, + capIsRound, + children, + thickness = "10px", + color: color3 = "#0078d4", + trackColor = "#edebe9", + isIndeterminate, + ...rest + } = props; + const progress3 = getProgressProps({ + min, + max, + value, + valueText, + getValueText: getValueText2, + isIndeterminate + }); + const determinant = isIndeterminate ? void 0 : ((_a8 = progress3.percent) != null ? _a8 : 0) * 2.64; + const strokeDasharray = determinant == null ? void 0 : `${determinant} ${264 - determinant}`; + const indicatorProps = isIndeterminate ? { + css: { animation: `${spin2} 1.5s linear infinite` } + } : { + strokeDashoffset: 66, + strokeDasharray, + transitionProperty: "stroke-dasharray, stroke", + transitionDuration: "0.6s", + transitionTimingFunction: "ease" + }; + const rootStyles2 = { + display: "inline-block", + position: "relative", + verticalAlign: "middle", + fontSize: size2 + }; + return (0, import_jsx_runtime145.jsxs)( + chakra.div, + { + ref, + className: "chakra-progress", + ...progress3.bind, + ...rest, + __css: rootStyles2, + children: [ + (0, import_jsx_runtime145.jsxs)(Shape, { size: size2, isIndeterminate, children: [ + (0, import_jsx_runtime145.jsx)( + Circle3, + { + stroke: trackColor, + strokeWidth: thickness, + className: "chakra-progress__track" + } + ), + (0, import_jsx_runtime145.jsx)( + Circle3, + { + stroke: color3, + strokeWidth: thickness, + className: "chakra-progress__indicator", + strokeLinecap: capIsRound ? "round" : void 0, + opacity: progress3.value === 0 && !isIndeterminate ? 0 : void 0, + ...indicatorProps + } + ) + ] }), + children + ] + } + ); + } +); +CircularProgress.displayName = "CircularProgress"; + +// node_modules/@chakra-ui/progress/dist/chunk-BZDCPGYF.mjs +var import_jsx_runtime146 = __toESM(require_jsx_runtime(), 1); +var [ProgressStylesProvider, useProgressStyles] = createContext2({ + name: `ProgressStylesContext`, + errorMessage: `useProgressStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var ProgressFilledTrack = forwardRef3( + (props, ref) => { + const { min, max, value, isIndeterminate, role, ...rest } = props; + const progress22 = getProgressProps({ + value, + min, + max, + isIndeterminate, + role + }); + const styles2 = useProgressStyles(); + const trackStyles = { + height: "100%", + ...styles2.filledTrack + }; + return (0, import_jsx_runtime146.jsx)( + chakra.div, + { + ref, + style: { width: `${progress22.percent}%`, ...rest.style }, + ...progress22.bind, + ...rest, + __css: trackStyles + } + ); + } +); +var Progress = forwardRef3((props, ref) => { + var _a8; + const { + value, + min = 0, + max = 100, + hasStripe, + isAnimated, + children, + borderRadius: propBorderRadius, + isIndeterminate, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + "aria-valuetext": ariaValueText, + title, + role, + ...rest + } = omitThemingProps(props); + const styles2 = useMultiStyleConfig("Progress", props); + const borderRadius = propBorderRadius != null ? propBorderRadius : (_a8 = styles2.track) == null ? void 0 : _a8.borderRadius; + const stripeAnimation = { animation: `${stripe} 1s linear infinite` }; + const shouldAddStripe = !isIndeterminate && hasStripe; + const shouldAnimateStripe = shouldAddStripe && isAnimated; + const css4 = { + ...shouldAnimateStripe && stripeAnimation, + ...isIndeterminate && { + position: "absolute", + willChange: "left", + minWidth: "50%", + animation: `${progress2} 1s ease infinite normal none running` + } + }; + const trackStyles = { + overflow: "hidden", + position: "relative", + ...styles2.track + }; + return (0, import_jsx_runtime146.jsx)( + chakra.div, + { + ref, + borderRadius, + __css: trackStyles, + ...rest, + children: (0, import_jsx_runtime146.jsxs)(ProgressStylesProvider, { value: styles2, children: [ + (0, import_jsx_runtime146.jsx)( + ProgressFilledTrack, + { + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + "aria-valuetext": ariaValueText, + min, + max, + value, + isIndeterminate, + css: css4, + borderRadius, + title, + role + } + ), + children + ] }) + } + ); +}); +Progress.displayName = "Progress"; + +// node_modules/@chakra-ui/progress/dist/chunk-TDPOTVYR.mjs +var import_jsx_runtime147 = __toESM(require_jsx_runtime(), 1); +var ProgressLabel = (props) => { + const styles2 = useProgressStyles(); + const labelStyles = { + top: "50%", + left: "50%", + width: "100%", + textAlign: "center", + position: "absolute", + transform: "translate(-50%, -50%)", + ...styles2.label + }; + return (0, import_jsx_runtime147.jsx)(chakra.div, { ...props, __css: labelStyles }); +}; +ProgressLabel.displayName = "ProgressLabel"; + +// node_modules/@chakra-ui/radio/dist/chunk-Q56JAA3U.mjs +var import_react178 = __toESM(require_react(), 1); +function isInputEvent3(value) { + return value && isObject(value) && isObject(value.target); +} +function useRadioGroup(props = {}) { + const { + onChange: onChangeProp, + value: valueProp, + defaultValue, + name: nameProp, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + isNative, + ...htmlProps + } = props; + const [valueState, setValue] = (0, import_react178.useState)(defaultValue || ""); + const isControlled = typeof valueProp !== "undefined"; + const value = isControlled ? valueProp : valueState; + const ref = (0, import_react178.useRef)(null); + const focus2 = (0, import_react178.useCallback)(() => { + const rootNode = ref.current; + if (!rootNode) + return; + let query = `input:not(:disabled):checked`; + const firstEnabledAndCheckedInput = rootNode.querySelector( + query + ); + if (firstEnabledAndCheckedInput) { + firstEnabledAndCheckedInput.focus(); + return; + } + query = `input:not(:disabled)`; + const firstEnabledInput = rootNode.querySelector(query); + firstEnabledInput == null ? void 0 : firstEnabledInput.focus(); + }, []); + const uuid = (0, import_react178.useId)(); + const fallbackName = `radio-${uuid}`; + const name = nameProp || fallbackName; + const onChange = (0, import_react178.useCallback)( + (eventOrValue) => { + const nextValue = isInputEvent3(eventOrValue) ? eventOrValue.target.value : eventOrValue; + if (!isControlled) { + setValue(nextValue); + } + onChangeProp == null ? void 0 : onChangeProp(String(nextValue)); + }, + [onChangeProp, isControlled] + ); + const getRootProps = (0, import_react178.useCallback)( + (props2 = {}, forwardedRef = null) => ({ + ...props2, + ref: mergeRefs2(forwardedRef, ref), + role: "radiogroup" + }), + [] + ); + const getRadioProps = (0, import_react178.useCallback)( + (props2 = {}, ref2 = null) => { + const checkedKey = isNative ? "checked" : "isChecked"; + return { + ...props2, + ref: ref2, + name, + [checkedKey]: value != null ? props2.value === value : void 0, + onChange(event) { + onChange(event); + }, + "data-radiogroup": true + }; + }, + [isNative, name, onChange, value] + ); + return { + getRootProps, + getRadioProps, + name, + ref, + focus: focus2, + setValue, + value, + onChange, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + htmlProps + }; +} + +// node_modules/@chakra-ui/radio/dist/chunk-FESYGSQT.mjs +var import_react179 = __toESM(require_react(), 1); +var import_jsx_runtime148 = __toESM(require_jsx_runtime(), 1); +var [RadioGroupProvider, useRadioGroupContext] = createContext2({ + name: "RadioGroupContext", + strict: false +}); +var RadioGroup = forwardRef3((props, ref) => { + const { + colorScheme, + size: size2, + variant, + children, + className, + isDisabled: isDisabled3, + isFocusable: isFocusable3, + ...rest + } = props; + const { value, onChange, getRootProps, name, htmlProps } = useRadioGroup(rest); + const group = (0, import_react179.useMemo)( + () => ({ + name, + size: size2, + onChange, + colorScheme, + value, + variant, + isDisabled: isDisabled3, + isFocusable: isFocusable3 + }), + [ + name, + size2, + onChange, + colorScheme, + value, + variant, + isDisabled3, + isFocusable3 + ] + ); + return (0, import_jsx_runtime148.jsx)(RadioGroupProvider, { value: group, children: (0, import_jsx_runtime148.jsx)( + chakra.div, + { + ...getRootProps(htmlProps, ref), + className: cx("chakra-radio-group", className), + children + } + ) }); +}); +RadioGroup.displayName = "RadioGroup"; + +// node_modules/@chakra-ui/radio/dist/chunk-2WQJ2JCV.mjs +var import_react180 = __toESM(require_react(), 1); +var visuallyHiddenStyle2 = { + border: "0", + clip: "rect(0, 0, 0, 0)", + height: "1px", + width: "1px", + margin: "-1px", + padding: "0", + overflow: "hidden", + whiteSpace: "nowrap", + position: "absolute" +}; +function useRadio(props = {}) { + const { + defaultChecked, + isChecked: isCheckedProp, + isFocusable: isFocusable3, + isDisabled: isDisabledProp, + isReadOnly: isReadOnlyProp, + isRequired: isRequiredProp, + onChange, + isInvalid: isInvalidProp, + name, + value, + id: idProp, + "data-radiogroup": dataRadioGroup, + "aria-describedby": ariaDescribedBy, + ...htmlProps + } = props; + const uuid = `radio-${(0, import_react180.useId)()}`; + const formControl = useFormControlContext(); + const group = useRadioGroupContext(); + const isWithinRadioGroup = !!group || !!dataRadioGroup; + const isWithinFormControl = !!formControl; + let id3 = isWithinFormControl && !isWithinRadioGroup ? formControl.id : uuid; + id3 = idProp != null ? idProp : id3; + const isDisabled3 = isDisabledProp != null ? isDisabledProp : formControl == null ? void 0 : formControl.isDisabled; + const isReadOnly = isReadOnlyProp != null ? isReadOnlyProp : formControl == null ? void 0 : formControl.isReadOnly; + const isRequired = isRequiredProp != null ? isRequiredProp : formControl == null ? void 0 : formControl.isRequired; + const isInvalid = isInvalidProp != null ? isInvalidProp : formControl == null ? void 0 : formControl.isInvalid; + const [isFocusVisible2, setIsFocusVisible] = (0, import_react180.useState)(false); + const [isFocused, setFocused] = (0, import_react180.useState)(false); + const [isHovered, setHovering] = (0, import_react180.useState)(false); + const [isActive, setActive] = (0, import_react180.useState)(false); + const [isCheckedState, setChecked] = (0, import_react180.useState)(Boolean(defaultChecked)); + const isControlled = typeof isCheckedProp !== "undefined"; + const isChecked = isControlled ? isCheckedProp : isCheckedState; + (0, import_react180.useEffect)(() => { + return trackFocusVisible(setIsFocusVisible); + }, []); + const handleChange = (0, import_react180.useCallback)( + (event) => { + if (isReadOnly || isDisabled3) { + event.preventDefault(); + return; + } + if (!isControlled) { + setChecked(event.target.checked); + } + onChange == null ? void 0 : onChange(event); + }, + [isControlled, isDisabled3, isReadOnly, onChange] + ); + const onKeyDown = (0, import_react180.useCallback)( + (event) => { + if (event.key === " ") { + setActive(true); + } + }, + [setActive] + ); + const onKeyUp = (0, import_react180.useCallback)( + (event) => { + if (event.key === " ") { + setActive(false); + } + }, + [setActive] + ); + const getRadioProps = (0, import_react180.useCallback)( + (props2 = {}, ref = null) => ({ + ...props2, + ref, + "data-active": dataAttr(isActive), + "data-hover": dataAttr(isHovered), + "data-disabled": dataAttr(isDisabled3), + "data-invalid": dataAttr(isInvalid), + "data-checked": dataAttr(isChecked), + "data-focus": dataAttr(isFocused), + "data-focus-visible": dataAttr(isFocused && isFocusVisible2), + "data-readonly": dataAttr(isReadOnly), + "aria-hidden": true, + onMouseDown: callAllHandlers(props2.onMouseDown, () => setActive(true)), + onMouseUp: callAllHandlers(props2.onMouseUp, () => setActive(false)), + onMouseEnter: callAllHandlers( + props2.onMouseEnter, + () => setHovering(true) + ), + onMouseLeave: callAllHandlers( + props2.onMouseLeave, + () => setHovering(false) + ) + }), + [ + isActive, + isHovered, + isDisabled3, + isInvalid, + isChecked, + isFocused, + isReadOnly, + isFocusVisible2 + ] + ); + const { onFocus: onFocus3, onBlur: onBlur3 } = formControl != null ? formControl : {}; + const getInputProps = (0, import_react180.useCallback)( + (props2 = {}, ref = null) => { + const trulyDisabled = isDisabled3 && !isFocusable3; + return { + ...props2, + id: id3, + ref, + type: "radio", + name, + value, + onChange: callAllHandlers(props2.onChange, handleChange), + onBlur: callAllHandlers( + onBlur3, + props2.onBlur, + () => setFocused(false) + ), + onFocus: callAllHandlers( + onFocus3, + props2.onFocus, + () => setFocused(true) + ), + onKeyDown: callAllHandlers(props2.onKeyDown, onKeyDown), + onKeyUp: callAllHandlers(props2.onKeyUp, onKeyUp), + checked: isChecked, + disabled: trulyDisabled, + readOnly: isReadOnly, + required: isRequired, + "aria-invalid": ariaAttr(isInvalid), + "aria-disabled": ariaAttr(trulyDisabled), + "aria-required": ariaAttr(isRequired), + "data-readonly": dataAttr(isReadOnly), + "aria-describedby": ariaDescribedBy, + style: visuallyHiddenStyle2 + }; + }, + [ + isDisabled3, + isFocusable3, + id3, + name, + value, + handleChange, + onBlur3, + onFocus3, + onKeyDown, + onKeyUp, + isChecked, + isReadOnly, + isRequired, + isInvalid, + ariaDescribedBy + ] + ); + const getLabelProps = (props2 = {}, ref = null) => ({ + ...props2, + ref, + onMouseDown: callAllHandlers(props2.onMouseDown, stopEvent2), + "data-disabled": dataAttr(isDisabled3), + "data-checked": dataAttr(isChecked), + "data-invalid": dataAttr(isInvalid) + }); + const getRootProps = (props2, ref = null) => ({ + ...props2, + ref, + "data-disabled": dataAttr(isDisabled3), + "data-checked": dataAttr(isChecked), + "data-invalid": dataAttr(isInvalid) + }); + const state2 = { + isInvalid, + isFocused, + isChecked, + isActive, + isHovered, + isDisabled: isDisabled3, + isReadOnly, + isRequired + }; + return { + state: state2, + /** + * @deprecated - use `getRadioProps` instead + */ + getCheckboxProps: getRadioProps, + getRadioProps, + getInputProps, + getLabelProps, + getRootProps, + htmlProps + }; +} +function stopEvent2(event) { + event.preventDefault(); + event.stopPropagation(); +} + +// node_modules/@chakra-ui/radio/dist/chunk-RDF2AYID.mjs +var import_jsx_runtime149 = __toESM(require_jsx_runtime(), 1); +function split3(object2, keys2) { + const picked = {}; + const omitted2 = {}; + for (const [key, value] of Object.entries(object2)) { + if (keys2.includes(key)) + picked[key] = value; + else + omitted2[key] = value; + } + return [picked, omitted2]; +} +var Radio = forwardRef3((props, ref) => { + var _a8; + const group = useRadioGroupContext(); + const { onChange: onChangeProp, value: valueProp } = props; + const styles2 = useMultiStyleConfig("Radio", { ...group, ...props }); + const ownProps = omitThemingProps(props); + const { + spacing: spacing2 = "0.5rem", + children, + isDisabled: isDisabled3 = group == null ? void 0 : group.isDisabled, + isFocusable: isFocusable3 = group == null ? void 0 : group.isFocusable, + inputProps: htmlInputProps, + ...rest + } = ownProps; + let isChecked = props.isChecked; + if ((group == null ? void 0 : group.value) != null && valueProp != null) { + isChecked = group.value === valueProp; + } + let onChange = onChangeProp; + if ((group == null ? void 0 : group.onChange) && valueProp != null) { + onChange = callAll(group.onChange, onChangeProp); + } + const name = (_a8 = props == null ? void 0 : props.name) != null ? _a8 : group == null ? void 0 : group.name; + const { + getInputProps, + getCheckboxProps, + getLabelProps, + getRootProps, + htmlProps + } = useRadio({ + ...rest, + isChecked, + isFocusable: isFocusable3, + isDisabled: isDisabled3, + onChange, + name + }); + const [layoutProps, otherProps] = split3(htmlProps, layoutPropNames); + const checkboxProps = getCheckboxProps(otherProps); + const inputProps = getInputProps(htmlInputProps, ref); + const labelProps = getLabelProps(); + const rootProps = Object.assign({}, layoutProps, getRootProps()); + const rootStyles2 = { + display: "inline-flex", + alignItems: "center", + verticalAlign: "top", + cursor: "pointer", + position: "relative", + ...styles2.container + }; + const checkboxStyles = { + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + flexShrink: 0, + ...styles2.control + }; + const labelStyles = { + userSelect: "none", + marginStart: spacing2, + ...styles2.label + }; + return (0, import_jsx_runtime149.jsxs)(chakra.label, { className: "chakra-radio", ...rootProps, __css: rootStyles2, children: [ + (0, import_jsx_runtime149.jsx)("input", { className: "chakra-radio__input", ...inputProps }), + (0, import_jsx_runtime149.jsx)( + chakra.span, + { + className: "chakra-radio__control", + ...checkboxProps, + __css: checkboxStyles + } + ), + children && (0, import_jsx_runtime149.jsx)( + chakra.span, + { + className: "chakra-radio__label", + ...labelProps, + __css: labelStyles, + children + } + ) + ] }); +}); +Radio.displayName = "Radio"; + +// node_modules/@chakra-ui/select/dist/chunk-C6OUXMED.mjs +var import_jsx_runtime150 = __toESM(require_jsx_runtime(), 1); +var SelectField = forwardRef3( + function SelectField2(props, ref) { + const { children, placeholder, className, ...rest } = props; + return (0, import_jsx_runtime150.jsxs)( + chakra.select, + { + ...rest, + ref, + className: cx("chakra-select", className), + children: [ + placeholder && (0, import_jsx_runtime150.jsx)("option", { value: "", children: placeholder }), + children + ] + } + ); + } +); +SelectField.displayName = "SelectField"; + +// node_modules/@chakra-ui/select/dist/chunk-3RSXBRAN.mjs +var import_react181 = __toESM(require_react(), 1); +var import_jsx_runtime151 = __toESM(require_jsx_runtime(), 1); +function split4(object2, keys2) { + const picked = {}; + const omitted2 = {}; + for (const [key, value] of Object.entries(object2)) { + if (keys2.includes(key)) + picked[key] = value; + else + omitted2[key] = value; + } + return [picked, omitted2]; +} +var Select = forwardRef3((props, ref) => { + var _a8; + const styles2 = useMultiStyleConfig("Select", props); + const { + rootProps, + placeholder, + icon, + color: color3, + height, + h, + minH, + minHeight, + iconColor, + iconSize, + ...rest + } = omitThemingProps(props); + const [layoutProps, otherProps] = split4(rest, layoutPropNames); + const ownProps = useFormControl(otherProps); + const rootStyles2 = { + width: "100%", + height: "fit-content", + position: "relative", + color: color3 + }; + const fieldStyles = { + paddingEnd: "2rem", + ...styles2.field, + _focus: { + zIndex: "unset", + ...(_a8 = styles2.field) == null ? void 0 : _a8["_focus"] + } + }; + return (0, import_jsx_runtime151.jsxs)( + chakra.div, + { + className: "chakra-select__wrapper", + __css: rootStyles2, + ...layoutProps, + ...rootProps, + children: [ + (0, import_jsx_runtime151.jsx)( + SelectField, + { + ref, + height: h != null ? h : height, + minH: minH != null ? minH : minHeight, + placeholder, + ...ownProps, + __css: fieldStyles, + children: props.children + } + ), + (0, import_jsx_runtime151.jsx)( + SelectIcon, + { + "data-disabled": dataAttr(ownProps.disabled), + ...(iconColor || color3) && { color: iconColor || color3 }, + __css: styles2.icon, + ...iconSize && { fontSize: iconSize }, + children: icon + } + ) + ] + } + ); +}); +Select.displayName = "Select"; +var DefaultIcon = (props) => (0, import_jsx_runtime151.jsx)("svg", { viewBox: "0 0 24 24", ...props, children: (0, import_jsx_runtime151.jsx)( + "path", + { + fill: "currentColor", + d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z" + } +) }); +var IconWrapper = chakra("div", { + baseStyle: { + position: "absolute", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + pointerEvents: "none", + top: "50%", + transform: "translateY(-50%)" + } +}); +var SelectIcon = (props) => { + const { children = (0, import_jsx_runtime151.jsx)(DefaultIcon, {}), ...rest } = props; + const clone = (0, import_react181.cloneElement)(children, { + role: "presentation", + className: "chakra-select__icon", + focusable: false, + "aria-hidden": true, + // force icon to adhere to `IconWrapper` styles + style: { + width: "1em", + height: "1em", + color: "currentColor" + } + }); + return (0, import_jsx_runtime151.jsx)(IconWrapper, { ...rest, className: "chakra-select__icon-wrapper", children: (0, import_react181.isValidElement)(children) ? clone : null }); +}; +SelectIcon.displayName = "SelectIcon"; + +// node_modules/@chakra-ui/skeleton/dist/chunk-AASO4CLC.mjs +var import_react182 = __toESM(require_react(), 1); +function useIsFirstRender() { + const isFirstRender = (0, import_react182.useRef)(true); + (0, import_react182.useEffect)(() => { + isFirstRender.current = false; + }, []); + return isFirstRender.current; +} + +// node_modules/@chakra-ui/react-use-previous/dist/index.mjs +var import_react183 = __toESM(require_react(), 1); +function usePrevious2(value) { + const ref = (0, import_react183.useRef)(); + (0, import_react183.useEffect)(() => { + ref.current = value; + }, [value]); + return ref.current; +} + +// node_modules/@chakra-ui/skeleton/dist/chunk-GOJLRND4.mjs +var import_jsx_runtime152 = __toESM(require_jsx_runtime(), 1); +var StyledSkeleton = chakra("div", { + baseStyle: { + boxShadow: "none", + backgroundClip: "padding-box", + cursor: "default", + color: "transparent", + pointerEvents: "none", + userSelect: "none", + "&::before, &::after, *": { + visibility: "hidden" + } + } +}); +var $startColor2 = cssVar("skeleton-start-color"); +var $endColor2 = cssVar("skeleton-end-color"); +var fade = keyframes({ + from: { opacity: 0 }, + to: { opacity: 1 } +}); +var bgFade = keyframes({ + from: { + borderColor: $startColor2.reference, + background: $startColor2.reference + }, + to: { + borderColor: $endColor2.reference, + background: $endColor2.reference + } +}); +var Skeleton = forwardRef3((props, ref) => { + const skeletonProps = { + ...props, + fadeDuration: typeof props.fadeDuration === "number" ? props.fadeDuration : 0.4, + speed: typeof props.speed === "number" ? props.speed : 0.8 + }; + const styles2 = useStyleConfig("Skeleton", skeletonProps); + const isFirstRender = useIsFirstRender(); + const { + startColor = "", + endColor = "", + isLoaded, + fadeDuration, + speed, + className, + fitContent, + ...rest + } = omitThemingProps(skeletonProps); + const [startColorVar, endColorVar] = useToken("colors", [ + startColor, + endColor + ]); + const wasPreviouslyLoaded = usePrevious2(isLoaded); + const _className = cx("chakra-skeleton", className); + const cssVarStyles = { + ...startColorVar && { [$startColor2.variable]: startColorVar }, + ...endColorVar && { [$endColor2.variable]: endColorVar } + }; + if (isLoaded) { + const animation = isFirstRender || wasPreviouslyLoaded ? "none" : `${fade} ${fadeDuration}s`; + return (0, import_jsx_runtime152.jsx)( + chakra.div, + { + ref, + className: _className, + __css: { animation }, + ...rest + } + ); + } + return (0, import_jsx_runtime152.jsx)( + StyledSkeleton, + { + ref, + className: _className, + ...rest, + __css: { + width: fitContent ? "fit-content" : void 0, + ...styles2, + ...cssVarStyles, + _dark: { ...styles2["_dark"], ...cssVarStyles }, + animation: `${speed}s linear infinite alternate ${bgFade}` + } + } + ); +}); +Skeleton.displayName = "Skeleton"; + +// node_modules/@chakra-ui/skeleton/dist/chunk-W7A7QDAK.mjs +var import_jsx_runtime153 = __toESM(require_jsx_runtime(), 1); +var SkeletonCircle = ({ + size: size2 = "2rem", + ...rest +}) => (0, import_jsx_runtime153.jsx)(Skeleton, { borderRadius: "full", boxSize: size2, ...rest }); +SkeletonCircle.displayName = "SkeletonCircle"; + +// node_modules/@chakra-ui/skeleton/dist/chunk-IYS4KVU2.mjs +var import_jsx_runtime154 = __toESM(require_jsx_runtime(), 1); +function range(count) { + return Array(count).fill(1).map((_, index) => index + 1); +} +var defaultNoOfLines = 3; +var SkeletonText = (props) => { + const { + noOfLines = defaultNoOfLines, + spacing: spacing2 = "0.5rem", + skeletonHeight = "0.5rem", + className, + startColor, + endColor, + isLoaded, + fadeDuration, + speed, + variant, + size: size2, + colorScheme, + children, + ...rest + } = props; + const noOfLinesValue = useBreakpointValue( + typeof noOfLines === "number" ? [noOfLines] : noOfLines + ) || defaultNoOfLines; + const numbers = range(noOfLinesValue); + const getWidth = (index) => { + if (noOfLinesValue > 1) { + return index === numbers.length ? "80%" : "100%"; + } + return "100%"; + }; + const _className = cx("chakra-skeleton__group", className); + return (0, import_jsx_runtime154.jsx)(chakra.div, { className: _className, ...rest, children: numbers.map((number2, index) => { + if (isLoaded && index > 0) { + return null; + } + const sizeProps = isLoaded ? null : { + mb: number2 === numbers.length ? "0" : spacing2, + width: getWidth(number2), + height: skeletonHeight + }; + return (0, import_jsx_runtime154.jsx)( + Skeleton, + { + startColor, + endColor, + isLoaded, + fadeDuration, + speed, + variant, + size: size2, + colorScheme, + ...sizeProps, + // allows animating the children + children: index === 0 ? children : void 0 + }, + numbers.length.toString() + number2 + ); + }) }); +}; +SkeletonText.displayName = "SkeletonText"; + +// node_modules/@chakra-ui/skip-nav/dist/chunk-IZODFAGU.mjs +var import_jsx_runtime155 = __toESM(require_jsx_runtime(), 1); +var fallbackId = "chakra-skip-nav"; +function getStyles2(styles2) { + return { + userSelect: "none", + border: "0", + height: "1px", + width: "1px", + margin: "-1px", + padding: "0", + outline: "0", + overflow: "hidden", + position: "absolute", + clip: "rect(0 0 0 0)", + ...styles2, + _focus: { + clip: "auto", + width: "auto", + height: "auto", + ...styles2["_focus"] + } + }; +} +var SkipNavLink = forwardRef3( + function SkipNavLink2(props, ref) { + const styles2 = useStyleConfig("SkipLink", props); + const { id: id3 = fallbackId, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime155.jsx)(chakra.a, { ...rest, ref, href: `#${id3}`, __css: getStyles2(styles2) }); + } +); +SkipNavLink.displayName = "SkipNavLink"; +var SkipNavContent = forwardRef3( + function SkipNavContent2(props, ref) { + const { id: id3 = fallbackId, ...rest } = props; + return (0, import_jsx_runtime155.jsx)( + chakra.div, + { + ref, + id: id3, + tabIndex: -1, + style: { outline: 0 }, + ...rest + } + ); + } +); +SkipNavContent.displayName = "SkipNavContent"; + +// node_modules/@chakra-ui/slider/dist/chunk-DX64QB22.mjs +var dataAttr3 = (condition) => condition ? "" : void 0; +var ariaAttr3 = (condition) => condition ? true : void 0; +var cx3 = (...classNames2) => classNames2.filter(Boolean).join(" "); +function callAllHandlers3(...fns) { + return function func2(event) { + fns.some((fn) => { + fn == null ? void 0 : fn(event); + return event == null ? void 0 : event.defaultPrevented; + }); + }; +} + +// node_modules/@chakra-ui/slider/dist/chunk-E23N4XEN.mjs +function getIds(id3) { + return { + root: `slider-root-${id3}`, + getThumb: (i) => `slider-thumb-${id3}-${i}`, + getInput: (i) => `slider-input-${id3}-${i}`, + track: `slider-track-${id3}`, + innerTrack: `slider-filled-track-${id3}`, + getMarker: (i) => `slider-marker-${id3}-${i}`, + output: `slider-output-${id3}` + }; +} +function orient2(options) { + const { orientation, vertical, horizontal } = options; + return orientation === "vertical" ? vertical : horizontal; +} +var zeroSize = { width: 0, height: 0 }; +var normalize3 = (a) => a || zeroSize; +function getStyles3(options) { + const { orientation, thumbPercents, thumbRects, isReversed } = options; + const getThumbStyle = (i) => { + var _a8; + const rect = (_a8 = thumbRects[i]) != null ? _a8 : zeroSize; + return { + position: "absolute", + userSelect: "none", + WebkitUserSelect: "none", + MozUserSelect: "none", + msUserSelect: "none", + touchAction: "none", + ...orient2({ + orientation, + vertical: { + bottom: `calc(${thumbPercents[i]}% - ${rect.height / 2}px)` + }, + horizontal: { + left: `calc(${thumbPercents[i]}% - ${rect.width / 2}px)` + } + }) + }; + }; + const size2 = orientation === "vertical" ? thumbRects.reduce( + (a, b) => normalize3(a).height > normalize3(b).height ? a : b, + zeroSize + ) : thumbRects.reduce( + (a, b) => normalize3(a).width > normalize3(b).width ? a : b, + zeroSize + ); + const rootStyle = { + position: "relative", + touchAction: "none", + WebkitTapHighlightColor: "rgba(0,0,0,0)", + userSelect: "none", + outline: 0, + ...orient2({ + orientation, + vertical: size2 ? { + paddingLeft: size2.width / 2, + paddingRight: size2.width / 2 + } : {}, + horizontal: size2 ? { + paddingTop: size2.height / 2, + paddingBottom: size2.height / 2 + } : {} + }) + }; + const trackStyle = { + position: "absolute", + ...orient2({ + orientation, + vertical: { + left: "50%", + transform: "translateX(-50%)", + height: "100%" + }, + horizontal: { + top: "50%", + transform: "translateY(-50%)", + width: "100%" + } + }) + }; + const isSingleThumb = thumbPercents.length === 1; + const fallback = [0, isReversed ? 100 - thumbPercents[0] : thumbPercents[0]]; + const range2 = isSingleThumb ? fallback : thumbPercents; + let start = range2[0]; + if (!isSingleThumb && isReversed) { + start = 100 - start; + } + const percent2 = Math.abs(range2[range2.length - 1] - range2[0]); + const innerTrackStyle = { + ...trackStyle, + ...orient2({ + orientation, + vertical: isReversed ? { height: `${percent2}%`, top: `${start}%` } : { height: `${percent2}%`, bottom: `${start}%` }, + horizontal: isReversed ? { width: `${percent2}%`, right: `${start}%` } : { width: `${percent2}%`, left: `${start}%` } + }) + }; + return { trackStyle, innerTrackStyle, rootStyle, getThumbStyle }; +} +function getIsReversed(options) { + const { isReversed, direction: direction2, orientation } = options; + if (direction2 === "ltr" || orientation === "vertical") { + return isReversed; + } + return !isReversed; +} + +// node_modules/@chakra-ui/event-utils/dist/chunk-6K7SS4J6.mjs +function addDomEvent3(target, eventName, handler, options) { + target.addEventListener(eventName, handler, options); + return () => { + target.removeEventListener(eventName, handler, options); + }; +} + +// node_modules/@chakra-ui/event-utils/dist/chunk-B7KYFEHM.mjs +function isMouseEvent2(event) { + const win = getEventWindow3(event); + if (typeof win.PointerEvent !== "undefined" && event instanceof win.PointerEvent) { + return !!(event.pointerType === "mouse"); + } + return event instanceof win.MouseEvent; +} +function isTouchEvent2(event) { + const hasTouches = !!event.touches; + return hasTouches; +} +function isMultiTouchEvent2(event) { + return isTouchEvent2(event) && event.touches.length > 1; +} +function getEventWindow3(event) { + var _a8; + return (_a8 = event.view) != null ? _a8 : window; +} + +// node_modules/@chakra-ui/event-utils/dist/chunk-6FBKF3LK.mjs +function pointFromTouch2(e, type = "page") { + const point = e.touches[0] || e.changedTouches[0]; + return { x: point[`${type}X`], y: point[`${type}Y`] }; +} +function pointFromMouse2(point, type = "page") { + return { + x: point[`${type}X`], + y: point[`${type}Y`] + }; +} +function getEventPoint(event, type = "page") { + return isTouchEvent2(event) ? pointFromTouch2(event, type) : pointFromMouse2(event, type); +} + +// node_modules/@chakra-ui/event-utils/dist/chunk-KDLSVIYE.mjs +function filter3(cb) { + return (event) => { + const isMouse = isMouseEvent2(event); + if (!isMouse || isMouse && event.button === 0) { + cb(event); + } + }; +} +function wrap4(cb, filterPrimary = false) { + function listener(event) { + cb(event, { point: getEventPoint(event) }); + } + const fn = filterPrimary ? filter3(listener) : listener; + return fn; +} +function addPointerEvent3(target, type, cb, options) { + return addDomEvent3(target, type, wrap4(cb, type === "pointerdown"), options); +} + +// node_modules/@chakra-ui/react-use-pan-event/dist/chunk-Z2LY7B4S.mjs +var __defProp4 = Object.defineProperty; +var __defNormalProp4 = (obj, key, value) => key in obj ? __defProp4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField4 = (obj, key, value) => { + __defNormalProp4(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +var PanEvent = class { + constructor(event, handlers2, threshold) { + __publicField4(this, "history", []); + __publicField4(this, "startEvent", null); + __publicField4(this, "lastEvent", null); + __publicField4(this, "lastEventInfo", null); + __publicField4(this, "handlers", {}); + __publicField4(this, "removeListeners", () => { + }); + __publicField4(this, "threshold", 3); + __publicField4(this, "win"); + __publicField4(this, "updatePoint", () => { + if (!(this.lastEvent && this.lastEventInfo)) + return; + const info2 = getPanInfo3(this.lastEventInfo, this.history); + const isPanStarted = this.startEvent !== null; + const isDistancePastThreshold = distance3(info2.offset, { x: 0, y: 0 }) >= this.threshold; + if (!isPanStarted && !isDistancePastThreshold) + return; + const { timestamp: timestamp2 } = getFrameData(); + this.history.push({ ...info2.point, timestamp: timestamp2 }); + const { onStart, onMove } = this.handlers; + if (!isPanStarted) { + onStart == null ? void 0 : onStart(this.lastEvent, info2); + this.startEvent = this.lastEvent; + } + onMove == null ? void 0 : onMove(this.lastEvent, info2); + }); + __publicField4(this, "onPointerMove", (event2, info2) => { + this.lastEvent = event2; + this.lastEventInfo = info2; + es_default.update(this.updatePoint, true); + }); + __publicField4(this, "onPointerUp", (event2, info2) => { + const panInfo = getPanInfo3(info2, this.history); + const { onEnd, onSessionEnd } = this.handlers; + onSessionEnd == null ? void 0 : onSessionEnd(event2, panInfo); + this.end(); + if (!onEnd || !this.startEvent) + return; + onEnd == null ? void 0 : onEnd(event2, panInfo); + }); + var _a8; + this.win = (_a8 = event.view) != null ? _a8 : window; + if (isMultiTouchEvent2(event)) + return; + this.handlers = handlers2; + if (threshold) { + this.threshold = threshold; + } + event.stopPropagation(); + event.preventDefault(); + const info = { point: getEventPoint(event) }; + const { timestamp } = getFrameData(); + this.history = [{ ...info.point, timestamp }]; + const { onSessionStart } = handlers2; + onSessionStart == null ? void 0 : onSessionStart(event, getPanInfo3(info, this.history)); + this.removeListeners = pipe6( + addPointerEvent3(this.win, "pointermove", this.onPointerMove), + addPointerEvent3(this.win, "pointerup", this.onPointerUp), + addPointerEvent3(this.win, "pointercancel", this.onPointerUp) + ); + } + updateHandlers(handlers2) { + this.handlers = handlers2; + } + end() { + var _a8; + (_a8 = this.removeListeners) == null ? void 0 : _a8.call(this); + cancelSync.update(this.updatePoint); + } +}; +function subtract4(a, b) { + return { x: a.x - b.x, y: a.y - b.y }; +} +function getPanInfo3(info, history) { + return { + point: info.point, + delta: subtract4(info.point, history[history.length - 1]), + offset: subtract4(info.point, history[0]), + velocity: getVelocity3(history, 0.1) + }; +} +var toMilliseconds2 = (v) => v * 1e3; +function getVelocity3(history, timeDelta) { + if (history.length < 2) { + return { x: 0, y: 0 }; + } + let i = history.length - 1; + let timestampedPoint = null; + const lastPoint = history[history.length - 1]; + while (i >= 0) { + timestampedPoint = history[i]; + if (lastPoint.timestamp - timestampedPoint.timestamp > toMilliseconds2(timeDelta)) { + break; + } + i--; + } + if (!timestampedPoint) { + return { x: 0, y: 0 }; + } + const time2 = (lastPoint.timestamp - timestampedPoint.timestamp) / 1e3; + if (time2 === 0) { + return { x: 0, y: 0 }; + } + const currentVelocity = { + x: (lastPoint.x - timestampedPoint.x) / time2, + y: (lastPoint.y - timestampedPoint.y) / time2 + }; + if (currentVelocity.x === Infinity) { + currentVelocity.x = 0; + } + if (currentVelocity.y === Infinity) { + currentVelocity.y = 0; + } + return currentVelocity; +} +function pipe6(...fns) { + return (v) => fns.reduce((a, b) => b(a), v); +} +function distance1D2(a, b) { + return Math.abs(a - b); +} +function isPoint2(point) { + return "x" in point && "y" in point; +} +function distance3(a, b) { + if (typeof a === "number" && typeof b === "number") { + return distance1D2(a, b); + } + if (isPoint2(a) && isPoint2(b)) { + const xDelta = distance1D2(a.x, b.x); + const yDelta = distance1D2(a.y, b.y); + return Math.sqrt(xDelta ** 2 + yDelta ** 2); + } + return 0; +} + +// node_modules/@chakra-ui/react-use-latest-ref/dist/index.mjs +var import_react184 = __toESM(require_react(), 1); +function useLatestRef2(value) { + const ref = (0, import_react184.useRef)(null); + ref.current = value; + return ref; +} + +// node_modules/@chakra-ui/react-use-pan-event/dist/chunk-AQIKOOGA.mjs +var import_react185 = __toESM(require_react(), 1); +function usePanEvent(ref, options) { + const { + onPan, + onPanStart, + onPanEnd, + onPanSessionStart, + onPanSessionEnd, + threshold + } = options; + const hasPanEvents = Boolean( + onPan || onPanStart || onPanEnd || onPanSessionStart || onPanSessionEnd + ); + const panSession = (0, import_react185.useRef)(null); + const handlersRef = useLatestRef2({ + onSessionStart: onPanSessionStart, + onSessionEnd: onPanSessionEnd, + onStart: onPanStart, + onMove: onPan, + onEnd(event, info) { + panSession.current = null; + onPanEnd == null ? void 0 : onPanEnd(event, info); + } + }); + (0, import_react185.useEffect)(() => { + var _a8; + (_a8 = panSession.current) == null ? void 0 : _a8.updateHandlers(handlersRef.current); + }); + (0, import_react185.useEffect)(() => { + const node3 = ref.current; + if (!node3 || !hasPanEvents) + return; + function onPointerDown(event) { + panSession.current = new PanEvent(event, handlersRef.current, threshold); + } + return addPointerEvent3(node3, "pointerdown", onPointerDown); + }, [ref, hasPanEvents, handlersRef, threshold]); + (0, import_react185.useEffect)(() => { + return () => { + var _a8; + (_a8 = panSession.current) == null ? void 0 : _a8.end(); + panSession.current = null; + }; + }, []); +} + +// node_modules/@chakra-ui/slider/dist/chunk-K3MZ7A5P.mjs +var import_react187 = __toESM(require_react(), 1); + +// node_modules/@zag-js/element-size/dist/track-size.mjs +function trackElementSize(element, callback) { + if (!element) { + callback(void 0); + return; + } + callback({ width: element.offsetWidth, height: element.offsetHeight }); + const win = element.ownerDocument.defaultView ?? window; + const observer = new win.ResizeObserver((entries) => { + if (!Array.isArray(entries) || !entries.length) + return; + const [entry] = entries; + let width; + let height; + if ("borderBoxSize" in entry) { + const borderSizeEntry = entry["borderBoxSize"]; + const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry; + width = borderSize["inlineSize"]; + height = borderSize["blockSize"]; + } else { + width = element.offsetWidth; + height = element.offsetHeight; + } + callback({ width, height }); + }); + observer.observe(element, { box: "border-box" }); + return () => observer.unobserve(element); +} + +// node_modules/@chakra-ui/react-use-size/dist/index.mjs +var import_react186 = __toESM(require_react(), 1); +var useSafeLayoutEffect4 = Boolean(globalThis == null ? void 0 : globalThis.document) ? import_react186.useLayoutEffect : import_react186.useEffect; +function trackMutation(el, cb) { + var _a8, _b5; + if (!el || !el.parentElement) + return; + const win = (_b5 = (_a8 = el.ownerDocument) == null ? void 0 : _a8.defaultView) != null ? _b5 : window; + const observer = new win.MutationObserver(() => { + cb(); + }); + observer.observe(el.parentElement, { childList: true }); + return () => { + observer.disconnect(); + }; +} +function useSizes({ + getNodes, + observeMutation = true +}) { + const [sizes24, setSizes] = (0, import_react186.useState)([]); + const [count, setCount] = (0, import_react186.useState)(0); + useSafeLayoutEffect4(() => { + const elements = getNodes(); + const cleanups = elements.map( + (element, index) => trackElementSize(element, (size2) => { + setSizes((sizes25) => { + return [ + ...sizes25.slice(0, index), + size2, + ...sizes25.slice(index + 1) + ]; + }); + }) + ); + if (observeMutation) { + const firstNode = elements[0]; + cleanups.push( + trackMutation(firstNode, () => { + setCount((count2) => count2 + 1); + }) + ); + } + return () => { + cleanups.forEach((cleanup) => { + cleanup == null ? void 0 : cleanup(); + }); + }; + }, [count]); + return sizes24; +} +function isRef(ref) { + return typeof ref === "object" && ref !== null && "current" in ref; +} +function useSize(subject) { + const [size2] = useSizes({ + observeMutation: false, + getNodes() { + const node3 = isRef(subject) ? subject.current : subject; + return [node3]; + } + }); + return size2; +} + +// node_modules/@chakra-ui/slider/dist/chunk-K3MZ7A5P.mjs +function useRangeSlider(props) { + const { + min = 0, + max = 100, + onChange, + value: valueProp, + defaultValue, + isReversed: isReversedProp, + direction: direction2 = "ltr", + orientation = "horizontal", + id: idProp, + isDisabled: isDisabled3, + isReadOnly, + onChangeStart: onChangeStartProp, + onChangeEnd: onChangeEndProp, + step = 1, + getAriaValueText: getAriaValueTextProp, + "aria-valuetext": ariaValueText, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + name, + focusThumbOnChange = true, + minStepsBetweenThumbs = 0, + ...htmlProps + } = props; + const onChangeStart = useCallbackRef(onChangeStartProp); + const onChangeEnd = useCallbackRef(onChangeEndProp); + const getAriaValueText = useCallbackRef(getAriaValueTextProp); + const isReversed = getIsReversed({ + isReversed: isReversedProp, + direction: direction2, + orientation + }); + const [valueState, setValue] = useControllableState({ + value: valueProp, + defaultValue: defaultValue != null ? defaultValue : [25, 75], + onChange + }); + if (!Array.isArray(valueState)) { + throw new TypeError( + `[range-slider] You passed an invalid value for \`value\` or \`defaultValue\`, expected \`Array\` but got \`${typeof valueState}\`` + ); + } + const [isDragging, setDragging] = (0, import_react187.useState)(false); + const [isFocused, setFocused] = (0, import_react187.useState)(false); + const [activeIndex, setActiveIndex] = (0, import_react187.useState)(-1); + const isInteractive = !(isDisabled3 || isReadOnly); + const initialValue = (0, import_react187.useRef)(valueState); + const value = valueState.map((val) => clampValue2(val, min, max)); + const spacing2 = minStepsBetweenThumbs * step; + const valueBounds = getValueBounds(value, min, max, spacing2); + const stateRef = (0, import_react187.useRef)({ + eventSource: null, + value: [], + valueBounds: [] + }); + stateRef.current.value = value; + stateRef.current.valueBounds = valueBounds; + const reversedValue = value.map((val) => max - val + min); + const thumbValues = isReversed ? reversedValue : value; + const thumbPercents = thumbValues.map((val) => valueToPercent2(val, min, max)); + const isVertical = orientation === "vertical"; + const trackRef = (0, import_react187.useRef)(null); + const rootRef = (0, import_react187.useRef)(null); + const thumbRects = useSizes({ + getNodes() { + const rootNode = rootRef.current; + const thumbNodes = rootNode == null ? void 0 : rootNode.querySelectorAll("[role=slider]"); + return thumbNodes ? Array.from(thumbNodes) : []; + } + }); + const reactId = (0, import_react187.useId)(); + const uuid = idProp != null ? idProp : reactId; + const ids = getIds(uuid); + const getValueFromPointer = (0, import_react187.useCallback)( + (event) => { + var _a8, _b5; + if (!trackRef.current) + return; + stateRef.current.eventSource = "pointer"; + const rect = trackRef.current.getBoundingClientRect(); + const { clientX, clientY } = (_b5 = (_a8 = event.touches) == null ? void 0 : _a8[0]) != null ? _b5 : event; + const diff = isVertical ? rect.bottom - clientY : clientX - rect.left; + const length2 = isVertical ? rect.height : rect.width; + let percent2 = diff / length2; + if (isReversed) + percent2 = 1 - percent2; + return percentToValue2(percent2, min, max); + }, + [isVertical, isReversed, max, min] + ); + const tenSteps = (max - min) / 10; + const oneStep = step || (max - min) / 100; + const actions = (0, import_react187.useMemo)( + () => ({ + setValueAtIndex(index, val) { + if (!isInteractive) + return; + const bounds = stateRef.current.valueBounds[index]; + val = parseFloat(roundValueToStep2(val, bounds.min, oneStep)); + val = clampValue2(val, bounds.min, bounds.max); + const next2 = [...stateRef.current.value]; + next2[index] = val; + setValue(next2); + }, + setActiveIndex, + stepUp(index, step2 = oneStep) { + const valueAtIndex = stateRef.current.value[index]; + const next2 = isReversed ? valueAtIndex - step2 : valueAtIndex + step2; + actions.setValueAtIndex(index, next2); + }, + stepDown(index, step2 = oneStep) { + const valueAtIndex = stateRef.current.value[index]; + const next2 = isReversed ? valueAtIndex + step2 : valueAtIndex - step2; + actions.setValueAtIndex(index, next2); + }, + reset() { + setValue(initialValue.current); + } + }), + [oneStep, isReversed, setValue, isInteractive] + ); + const onKeyDown = (0, import_react187.useCallback)( + (event) => { + const eventKey = event.key; + const keyMap = { + ArrowRight: () => actions.stepUp(activeIndex), + ArrowUp: () => actions.stepUp(activeIndex), + ArrowLeft: () => actions.stepDown(activeIndex), + ArrowDown: () => actions.stepDown(activeIndex), + PageUp: () => actions.stepUp(activeIndex, tenSteps), + PageDown: () => actions.stepDown(activeIndex, tenSteps), + Home: () => { + const { min: value2 } = valueBounds[activeIndex]; + actions.setValueAtIndex(activeIndex, value2); + }, + End: () => { + const { max: value2 } = valueBounds[activeIndex]; + actions.setValueAtIndex(activeIndex, value2); + } + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + event.stopPropagation(); + action(event); + stateRef.current.eventSource = "keyboard"; + } + }, + [actions, activeIndex, tenSteps, valueBounds] + ); + const { getThumbStyle, rootStyle, trackStyle, innerTrackStyle } = (0, import_react187.useMemo)( + () => getStyles3({ + isReversed, + orientation, + thumbRects, + thumbPercents + }), + [isReversed, orientation, thumbPercents, thumbRects] + ); + const focusThumb = (0, import_react187.useCallback)( + (index) => { + var _a8; + const idx = index != null ? index : activeIndex; + if (idx !== -1 && focusThumbOnChange) { + const id3 = ids.getThumb(idx); + const thumb = (_a8 = rootRef.current) == null ? void 0 : _a8.ownerDocument.getElementById(id3); + if (thumb) { + setTimeout(() => thumb.focus()); + } + } + }, + [focusThumbOnChange, activeIndex, ids] + ); + useUpdateEffect(() => { + if (stateRef.current.eventSource === "keyboard") { + onChangeEnd == null ? void 0 : onChangeEnd(stateRef.current.value); + } + }, [value, onChangeEnd]); + const onPanSessionStart = (event) => { + const pointValue = getValueFromPointer(event) || 0; + const distances = stateRef.current.value.map( + (val) => Math.abs(val - pointValue) + ); + const closest2 = Math.min(...distances); + let index = distances.indexOf(closest2); + const thumbsAtPosition = distances.filter( + (distance4) => distance4 === closest2 + ); + const isThumbStacked = thumbsAtPosition.length > 1; + if (isThumbStacked && pointValue > stateRef.current.value[index]) { + index = index + thumbsAtPosition.length - 1; + } + setActiveIndex(index); + actions.setValueAtIndex(index, pointValue); + focusThumb(index); + }; + const onPan = (event) => { + if (activeIndex == -1) + return; + const pointValue = getValueFromPointer(event) || 0; + setActiveIndex(activeIndex); + actions.setValueAtIndex(activeIndex, pointValue); + focusThumb(activeIndex); + }; + usePanEvent(rootRef, { + onPanSessionStart(event) { + if (!isInteractive) + return; + setDragging(true); + onPanSessionStart(event); + onChangeStart == null ? void 0 : onChangeStart(stateRef.current.value); + }, + onPanSessionEnd() { + if (!isInteractive) + return; + setDragging(false); + onChangeEnd == null ? void 0 : onChangeEnd(stateRef.current.value); + }, + onPan(event) { + if (!isInteractive) + return; + onPan(event); + } + }); + const getRootProps = (0, import_react187.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ...htmlProps, + id: ids.root, + ref: mergeRefs2(ref, rootRef), + tabIndex: -1, + "aria-disabled": ariaAttr3(isDisabled3), + "data-focused": dataAttr3(isFocused), + style: { ...props2.style, ...rootStyle } + }; + }, + [htmlProps, isDisabled3, isFocused, rootStyle, ids] + ); + const getTrackProps = (0, import_react187.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref: mergeRefs2(ref, trackRef), + id: ids.track, + "data-disabled": dataAttr3(isDisabled3), + style: { ...props2.style, ...trackStyle } + }; + }, + [isDisabled3, trackStyle, ids] + ); + const getInnerTrackProps = (0, import_react187.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref, + id: ids.innerTrack, + style: { + ...props2.style, + ...innerTrackStyle + } + }; + }, + [innerTrackStyle, ids] + ); + const getThumbProps = (0, import_react187.useCallback)( + (props2, ref = null) => { + var _a8; + const { index, ...rest } = props2; + const valueAtIndex = value[index]; + if (valueAtIndex == null) { + throw new TypeError( + `[range-slider > thumb] Cannot find value at index \`${index}\`. The \`value\` or \`defaultValue\` length is : ${value.length}` + ); + } + const bounds = valueBounds[index]; + return { + ...rest, + ref, + role: "slider", + tabIndex: isInteractive ? 0 : void 0, + id: ids.getThumb(index), + "data-active": dataAttr3(isDragging && activeIndex === index), + "aria-valuetext": (_a8 = getAriaValueText == null ? void 0 : getAriaValueText(valueAtIndex)) != null ? _a8 : ariaValueText == null ? void 0 : ariaValueText[index], + "aria-valuemin": bounds.min, + "aria-valuemax": bounds.max, + "aria-valuenow": valueAtIndex, + "aria-orientation": orientation, + "aria-disabled": ariaAttr3(isDisabled3), + "aria-readonly": ariaAttr3(isReadOnly), + "aria-label": ariaLabel == null ? void 0 : ariaLabel[index], + "aria-labelledby": (ariaLabel == null ? void 0 : ariaLabel[index]) ? void 0 : ariaLabelledBy == null ? void 0 : ariaLabelledBy[index], + style: { ...props2.style, ...getThumbStyle(index) }, + onKeyDown: callAllHandlers3(props2.onKeyDown, onKeyDown), + onFocus: callAllHandlers3(props2.onFocus, () => { + setFocused(true); + setActiveIndex(index); + }), + onBlur: callAllHandlers3(props2.onBlur, () => { + setFocused(false); + setActiveIndex(-1); + }) + }; + }, + [ + ids, + value, + valueBounds, + isInteractive, + isDragging, + activeIndex, + getAriaValueText, + ariaValueText, + orientation, + isDisabled3, + isReadOnly, + ariaLabel, + ariaLabelledBy, + getThumbStyle, + onKeyDown, + setFocused + ] + ); + const getOutputProps = (0, import_react187.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref, + id: ids.output, + htmlFor: value.map((v, i) => ids.getThumb(i)).join(" "), + "aria-live": "off" + }; + }, + [ids, value] + ); + const getMarkerProps = (0, import_react187.useCallback)( + (props2, ref = null) => { + const { value: v, ...rest } = props2; + const isInRange = !(v < min || v > max); + const isHighlighted = v >= value[0] && v <= value[value.length - 1]; + let percent2 = valueToPercent2(v, min, max); + percent2 = isReversed ? 100 - percent2 : percent2; + const markerStyle = { + position: "absolute", + pointerEvents: "none", + ...orient2({ + orientation, + vertical: { bottom: `${percent2}%` }, + horizontal: { left: `${percent2}%` } + }) + }; + return { + ...rest, + ref, + id: ids.getMarker(props2.value), + role: "presentation", + "aria-hidden": true, + "data-disabled": dataAttr3(isDisabled3), + "data-invalid": dataAttr3(!isInRange), + "data-highlighted": dataAttr3(isHighlighted), + style: { + ...props2.style, + ...markerStyle + } + }; + }, + [isDisabled3, isReversed, max, min, orientation, value, ids] + ); + const getInputProps = (0, import_react187.useCallback)( + (props2, ref = null) => { + const { index, ...rest } = props2; + return { + ...rest, + ref, + id: ids.getInput(index), + type: "hidden", + value: value[index], + name: Array.isArray(name) ? name[index] : `${name}-${index}` + }; + }, + [name, value, ids] + ); + const state2 = { + value, + isFocused, + isDragging, + getThumbPercent: (index) => thumbPercents[index], + getThumbMinValue: (index) => valueBounds[index].min, + getThumbMaxValue: (index) => valueBounds[index].max + }; + return { + state: state2, + actions, + getRootProps, + getTrackProps, + getInnerTrackProps, + getThumbProps, + getMarkerProps, + getInputProps, + getOutputProps + }; +} +function getValueBounds(arr, min, max, spacing2) { + return arr.map((v, i) => { + const _min = i === 0 ? min : arr[i - 1] + spacing2; + const _max = i === arr.length - 1 ? max : arr[i + 1] - spacing2; + return { min: _min, max: _max }; + }); +} + +// node_modules/@chakra-ui/slider/dist/chunk-RD3HQFPG.mjs +var import_react188 = __toESM(require_react(), 1); +var import_jsx_runtime156 = __toESM(require_jsx_runtime(), 1); +var [RangeSliderProvider, useRangeSliderContext] = createContext2({ + name: "SliderContext", + errorMessage: "useSliderContext: `context` is undefined. Seems you forgot to wrap all slider components within " +}); +var [RangeSliderStylesProvider, useRangeSliderStyles] = createContext2({ + name: `RangeSliderStylesContext`, + errorMessage: `useRangeSliderStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var RangeSlider = forwardRef3( + function RangeSlider2(props, ref) { + const sliderProps = { + orientation: "horizontal", + ...props + }; + const styles2 = useMultiStyleConfig("Slider", sliderProps); + const ownProps = omitThemingProps(sliderProps); + const { direction: direction2 } = useTheme2(); + ownProps.direction = direction2; + const { getRootProps, ...context } = useRangeSlider(ownProps); + const ctx = (0, import_react188.useMemo)( + () => ({ ...context, name: sliderProps.name }), + [context, sliderProps.name] + ); + return (0, import_jsx_runtime156.jsx)(RangeSliderProvider, { value: ctx, children: (0, import_jsx_runtime156.jsx)(RangeSliderStylesProvider, { value: styles2, children: (0, import_jsx_runtime156.jsx)( + chakra.div, + { + ...getRootProps({}, ref), + className: "chakra-slider", + __css: styles2.container, + children: sliderProps.children + } + ) }) }); + } +); +RangeSlider.displayName = "RangeSlider"; +var RangeSliderThumb = forwardRef3( + function RangeSliderThumb2(props, ref) { + const { getThumbProps, getInputProps, name } = useRangeSliderContext(); + const styles2 = useRangeSliderStyles(); + const thumbProps = getThumbProps(props, ref); + return (0, import_jsx_runtime156.jsxs)( + chakra.div, + { + ...thumbProps, + className: cx3("chakra-slider__thumb", props.className), + __css: styles2.thumb, + children: [ + thumbProps.children, + name && (0, import_jsx_runtime156.jsx)("input", { ...getInputProps({ index: props.index }) }) + ] + } + ); + } +); +RangeSliderThumb.displayName = "RangeSliderThumb"; +var RangeSliderTrack = forwardRef3( + function RangeSliderTrack2(props, ref) { + const { getTrackProps } = useRangeSliderContext(); + const styles2 = useRangeSliderStyles(); + const trackProps = getTrackProps(props, ref); + return (0, import_jsx_runtime156.jsx)( + chakra.div, + { + ...trackProps, + className: cx3("chakra-slider__track", props.className), + __css: styles2.track, + "data-testid": "chakra-range-slider-track" + } + ); + } +); +RangeSliderTrack.displayName = "RangeSliderTrack"; +var RangeSliderFilledTrack = forwardRef3(function RangeSliderFilledTrack2(props, ref) { + const { getInnerTrackProps } = useRangeSliderContext(); + const styles2 = useRangeSliderStyles(); + const trackProps = getInnerTrackProps(props, ref); + return (0, import_jsx_runtime156.jsx)( + chakra.div, + { + ...trackProps, + className: "chakra-slider__filled-track", + __css: styles2.filledTrack + } + ); +}); +RangeSliderFilledTrack.displayName = "RangeSliderFilledTrack"; +var RangeSliderMark = forwardRef3( + function RangeSliderMark2(props, ref) { + const { getMarkerProps } = useRangeSliderContext(); + const styles2 = useRangeSliderStyles(); + const markProps = getMarkerProps(props, ref); + return (0, import_jsx_runtime156.jsx)( + chakra.div, + { + ...markProps, + className: cx3("chakra-slider__marker", props.className), + __css: styles2.mark + } + ); + } +); +RangeSliderMark.displayName = "RangeSliderMark"; + +// node_modules/@chakra-ui/slider/dist/chunk-45OCWRAV.mjs +var import_react189 = __toESM(require_react(), 1); +function useSlider(props) { + var _a8; + const { + min = 0, + max = 100, + onChange, + value: valueProp, + defaultValue, + isReversed: isReversedProp, + direction: direction2 = "ltr", + orientation = "horizontal", + id: idProp, + isDisabled: isDisabled3, + isReadOnly, + onChangeStart: onChangeStartProp, + onChangeEnd: onChangeEndProp, + step = 1, + getAriaValueText: getAriaValueTextProp, + "aria-valuetext": ariaValueText, + "aria-label": ariaLabel, + "aria-labelledby": ariaLabelledBy, + name, + focusThumbOnChange = true, + ...htmlProps + } = props; + const onChangeStart = useCallbackRef(onChangeStartProp); + const onChangeEnd = useCallbackRef(onChangeEndProp); + const getAriaValueText = useCallbackRef(getAriaValueTextProp); + const isReversed = getIsReversed({ + isReversed: isReversedProp, + direction: direction2, + orientation + }); + const [computedValue, setValue] = useControllableState({ + value: valueProp, + defaultValue: defaultValue != null ? defaultValue : getDefaultValue(min, max), + onChange + }); + const [isDragging, setDragging] = (0, import_react189.useState)(false); + const [isFocused, setFocused] = (0, import_react189.useState)(false); + const isInteractive = !(isDisabled3 || isReadOnly); + const tenSteps = (max - min) / 10; + const oneStep = step || (max - min) / 100; + const value = clampValue2(computedValue, min, max); + const reversedValue = max - value + min; + const trackValue = isReversed ? reversedValue : value; + const thumbPercent = valueToPercent2(trackValue, min, max); + const isVertical = orientation === "vertical"; + const stateRef = useLatestRef2({ + min, + max, + step, + isDisabled: isDisabled3, + value, + isInteractive, + isReversed, + isVertical, + eventSource: null, + focusThumbOnChange, + orientation + }); + const trackRef = (0, import_react189.useRef)(null); + const thumbRef = (0, import_react189.useRef)(null); + const rootRef = (0, import_react189.useRef)(null); + const reactId = (0, import_react189.useId)(); + const uuid = idProp != null ? idProp : reactId; + const [thumbId, trackId] = [`slider-thumb-${uuid}`, `slider-track-${uuid}`]; + const getValueFromPointer = (0, import_react189.useCallback)( + (event) => { + var _a24, _b5; + if (!trackRef.current) + return; + const state22 = stateRef.current; + state22.eventSource = "pointer"; + const trackRect = trackRef.current.getBoundingClientRect(); + const { clientX, clientY } = (_b5 = (_a24 = event.touches) == null ? void 0 : _a24[0]) != null ? _b5 : event; + const diff = isVertical ? trackRect.bottom - clientY : clientX - trackRect.left; + const length2 = isVertical ? trackRect.height : trackRect.width; + let percent2 = diff / length2; + if (isReversed) { + percent2 = 1 - percent2; + } + let nextValue = percentToValue2(percent2, state22.min, state22.max); + if (state22.step) { + nextValue = parseFloat( + roundValueToStep2(nextValue, state22.min, state22.step) + ); + } + nextValue = clampValue2(nextValue, state22.min, state22.max); + return nextValue; + }, + [isVertical, isReversed, stateRef] + ); + const constrain = (0, import_react189.useCallback)( + (value2) => { + const state22 = stateRef.current; + if (!state22.isInteractive) + return; + value2 = parseFloat(roundValueToStep2(value2, state22.min, oneStep)); + value2 = clampValue2(value2, state22.min, state22.max); + setValue(value2); + }, + [oneStep, setValue, stateRef] + ); + const actions = (0, import_react189.useMemo)( + () => ({ + stepUp(step2 = oneStep) { + const next2 = isReversed ? value - step2 : value + step2; + constrain(next2); + }, + stepDown(step2 = oneStep) { + const next2 = isReversed ? value + step2 : value - step2; + constrain(next2); + }, + reset() { + constrain(defaultValue || 0); + }, + stepTo(value2) { + constrain(value2); + } + }), + [constrain, isReversed, value, oneStep, defaultValue] + ); + const onKeyDown = (0, import_react189.useCallback)( + (event) => { + const state22 = stateRef.current; + const keyMap = { + ArrowRight: () => actions.stepUp(), + ArrowUp: () => actions.stepUp(), + ArrowLeft: () => actions.stepDown(), + ArrowDown: () => actions.stepDown(), + PageUp: () => actions.stepUp(tenSteps), + PageDown: () => actions.stepDown(tenSteps), + Home: () => constrain(state22.min), + End: () => constrain(state22.max) + }; + const action = keyMap[event.key]; + if (action) { + event.preventDefault(); + event.stopPropagation(); + action(event); + state22.eventSource = "keyboard"; + } + }, + [actions, constrain, tenSteps, stateRef] + ); + const valueText = (_a8 = getAriaValueText == null ? void 0 : getAriaValueText(value)) != null ? _a8 : ariaValueText; + const thumbSize = useSize(thumbRef); + const { getThumbStyle, rootStyle, trackStyle, innerTrackStyle } = (0, import_react189.useMemo)(() => { + const state22 = stateRef.current; + const thumbRect = thumbSize != null ? thumbSize : { width: 0, height: 0 }; + return getStyles3({ + isReversed, + orientation: state22.orientation, + thumbRects: [thumbRect], + thumbPercents: [thumbPercent] + }); + }, [isReversed, thumbSize, thumbPercent, stateRef]); + const focusThumb = (0, import_react189.useCallback)(() => { + const state22 = stateRef.current; + if (state22.focusThumbOnChange) { + setTimeout(() => { + var _a24; + return (_a24 = thumbRef.current) == null ? void 0 : _a24.focus(); + }); + } + }, [stateRef]); + useUpdateEffect(() => { + const state22 = stateRef.current; + focusThumb(); + if (state22.eventSource === "keyboard") { + onChangeEnd == null ? void 0 : onChangeEnd(state22.value); + } + }, [value, onChangeEnd]); + function setValueFromPointer(event) { + const nextValue = getValueFromPointer(event); + if (nextValue != null && nextValue !== stateRef.current.value) { + setValue(nextValue); + } + } + usePanEvent(rootRef, { + onPanSessionStart(event) { + const state22 = stateRef.current; + if (!state22.isInteractive) + return; + setDragging(true); + focusThumb(); + setValueFromPointer(event); + onChangeStart == null ? void 0 : onChangeStart(state22.value); + }, + onPanSessionEnd() { + const state22 = stateRef.current; + if (!state22.isInteractive) + return; + setDragging(false); + onChangeEnd == null ? void 0 : onChangeEnd(state22.value); + }, + onPan(event) { + const state22 = stateRef.current; + if (!state22.isInteractive) + return; + setValueFromPointer(event); + } + }); + const getRootProps = (0, import_react189.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ...htmlProps, + ref: mergeRefs2(ref, rootRef), + tabIndex: -1, + "aria-disabled": ariaAttr3(isDisabled3), + "data-focused": dataAttr3(isFocused), + style: { + ...props2.style, + ...rootStyle + } + }; + }, + [htmlProps, isDisabled3, isFocused, rootStyle] + ); + const getTrackProps = (0, import_react189.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref: mergeRefs2(ref, trackRef), + id: trackId, + "data-disabled": dataAttr3(isDisabled3), + style: { + ...props2.style, + ...trackStyle + } + }; + }, + [isDisabled3, trackId, trackStyle] + ); + const getInnerTrackProps = (0, import_react189.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref, + style: { + ...props2.style, + ...innerTrackStyle + } + }; + }, + [innerTrackStyle] + ); + const getThumbProps = (0, import_react189.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref: mergeRefs2(ref, thumbRef), + role: "slider", + tabIndex: isInteractive ? 0 : void 0, + id: thumbId, + "data-active": dataAttr3(isDragging), + "aria-valuetext": valueText, + "aria-valuemin": min, + "aria-valuemax": max, + "aria-valuenow": value, + "aria-orientation": orientation, + "aria-disabled": ariaAttr3(isDisabled3), + "aria-readonly": ariaAttr3(isReadOnly), + "aria-label": ariaLabel, + "aria-labelledby": ariaLabel ? void 0 : ariaLabelledBy, + style: { + ...props2.style, + ...getThumbStyle(0) + }, + onKeyDown: callAllHandlers3(props2.onKeyDown, onKeyDown), + onFocus: callAllHandlers3(props2.onFocus, () => setFocused(true)), + onBlur: callAllHandlers3(props2.onBlur, () => setFocused(false)) + }; + }, + [ + isInteractive, + thumbId, + isDragging, + valueText, + min, + max, + value, + orientation, + isDisabled3, + isReadOnly, + ariaLabel, + ariaLabelledBy, + getThumbStyle, + onKeyDown + ] + ); + const getMarkerProps = (0, import_react189.useCallback)( + (props2, ref = null) => { + const isInRange = !(props2.value < min || props2.value > max); + const isHighlighted = value >= props2.value; + const markerPercent = valueToPercent2(props2.value, min, max); + const markerStyle = { + position: "absolute", + pointerEvents: "none", + ...orient3({ + orientation, + vertical: { + bottom: isReversed ? `${100 - markerPercent}%` : `${markerPercent}%` + }, + horizontal: { + left: isReversed ? `${100 - markerPercent}%` : `${markerPercent}%` + } + }) + }; + return { + ...props2, + ref, + role: "presentation", + "aria-hidden": true, + "data-disabled": dataAttr3(isDisabled3), + "data-invalid": dataAttr3(!isInRange), + "data-highlighted": dataAttr3(isHighlighted), + style: { + ...props2.style, + ...markerStyle + } + }; + }, + [isDisabled3, isReversed, max, min, orientation, value] + ); + const getInputProps = (0, import_react189.useCallback)( + (props2 = {}, ref = null) => { + return { + ...props2, + ref, + type: "hidden", + value, + name + }; + }, + [name, value] + ); + const state2 = { value, isFocused, isDragging }; + return { + state: state2, + actions, + getRootProps, + getTrackProps, + getInnerTrackProps, + getThumbProps, + getMarkerProps, + getInputProps + }; +} +function orient3(options) { + const { orientation, vertical, horizontal } = options; + return orientation === "vertical" ? vertical : horizontal; +} +function getDefaultValue(min, max) { + return max < min ? min : min + (max - min) / 2; +} + +// node_modules/@chakra-ui/slider/dist/chunk-6KSEUUNN.mjs +var import_jsx_runtime157 = __toESM(require_jsx_runtime(), 1); +var [SliderProvider, useSliderContext] = createContext2({ + name: "SliderContext", + hookName: "useSliderContext", + providerName: "" +}); +var [SliderStylesProvider, useSliderStyles] = createContext2({ + name: `SliderStylesContext`, + hookName: `useSliderStyles`, + providerName: "" +}); +var Slider = forwardRef3((props, ref) => { + var _a8; + const sliderProps = { + ...props, + orientation: (_a8 = props == null ? void 0 : props.orientation) != null ? _a8 : "horizontal" + }; + const styles2 = useMultiStyleConfig("Slider", sliderProps); + const ownProps = omitThemingProps(sliderProps); + const { direction: direction2 } = useTheme2(); + ownProps.direction = direction2; + const { getInputProps, getRootProps, ...context } = useSlider(ownProps); + const rootProps = getRootProps(); + const inputProps = getInputProps({}, ref); + return (0, import_jsx_runtime157.jsx)(SliderProvider, { value: context, children: (0, import_jsx_runtime157.jsx)(SliderStylesProvider, { value: styles2, children: (0, import_jsx_runtime157.jsxs)( + chakra.div, + { + ...rootProps, + className: cx3("chakra-slider", sliderProps.className), + __css: styles2.container, + children: [ + sliderProps.children, + (0, import_jsx_runtime157.jsx)("input", { ...inputProps }) + ] + } + ) }) }); +}); +Slider.displayName = "Slider"; +var SliderThumb = forwardRef3((props, ref) => { + const { getThumbProps } = useSliderContext(); + const styles2 = useSliderStyles(); + const thumbProps = getThumbProps(props, ref); + return (0, import_jsx_runtime157.jsx)( + chakra.div, + { + ...thumbProps, + className: cx3("chakra-slider__thumb", props.className), + __css: styles2.thumb + } + ); +}); +SliderThumb.displayName = "SliderThumb"; +var SliderTrack = forwardRef3((props, ref) => { + const { getTrackProps } = useSliderContext(); + const styles2 = useSliderStyles(); + const trackProps = getTrackProps(props, ref); + return (0, import_jsx_runtime157.jsx)( + chakra.div, + { + ...trackProps, + className: cx3("chakra-slider__track", props.className), + __css: styles2.track + } + ); +}); +SliderTrack.displayName = "SliderTrack"; +var SliderFilledTrack = forwardRef3( + (props, ref) => { + const { getInnerTrackProps } = useSliderContext(); + const styles2 = useSliderStyles(); + const trackProps = getInnerTrackProps(props, ref); + return (0, import_jsx_runtime157.jsx)( + chakra.div, + { + ...trackProps, + className: cx3("chakra-slider__filled-track", props.className), + __css: styles2.filledTrack + } + ); + } +); +SliderFilledTrack.displayName = "SliderFilledTrack"; +var SliderMark = forwardRef3((props, ref) => { + const { getMarkerProps } = useSliderContext(); + const styles2 = useSliderStyles(); + const markProps = getMarkerProps(props, ref); + return (0, import_jsx_runtime157.jsx)( + chakra.div, + { + ...markProps, + className: cx3("chakra-slider__marker", props.className), + __css: styles2.mark + } + ); +}); +SliderMark.displayName = "SliderMark"; + +// node_modules/@chakra-ui/stat/dist/chunk-W64KV3Y7.mjs +var import_jsx_runtime158 = __toESM(require_jsx_runtime(), 1); +var [StatStylesProvider, useStatStyles] = createContext2({ + name: `StatStylesContext`, + errorMessage: `useStatStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var Stat = forwardRef3(function Stat2(props, ref) { + const styles2 = useMultiStyleConfig("Stat", props); + const statStyles = { + position: "relative", + flex: "1 1 0%", + ...styles2.container + }; + const { className, children, ...rest } = omitThemingProps(props); + return (0, import_jsx_runtime158.jsx)(StatStylesProvider, { value: styles2, children: (0, import_jsx_runtime158.jsx)( + chakra.div, + { + ref, + ...rest, + className: cx("chakra-stat", className), + __css: statStyles, + children: (0, import_jsx_runtime158.jsx)("dl", { children }) + } + ) }); +}); +Stat.displayName = "Stat"; + +// node_modules/@chakra-ui/stat/dist/chunk-ZKKHYQWO.mjs +var import_jsx_runtime159 = __toESM(require_jsx_runtime(), 1); +var StatDownArrow = (props) => (0, import_jsx_runtime159.jsx)(Icon, { color: "red.400", ...props, children: (0, import_jsx_runtime159.jsx)( + "path", + { + fill: "currentColor", + d: "M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z" + } +) }); +StatDownArrow.displayName = "StatDownArrow"; +function StatUpArrow(props) { + return (0, import_jsx_runtime159.jsx)(Icon, { color: "green.400", ...props, children: (0, import_jsx_runtime159.jsx)( + "path", + { + fill: "currentColor", + d: "M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z" + } + ) }); +} +StatUpArrow.displayName = "StatUpArrow"; +function StatArrow(props) { + const { type, "aria-label": ariaLabel, ...rest } = props; + const styles2 = useStatStyles(); + const BaseIcon = type === "increase" ? StatUpArrow : StatDownArrow; + const defaultAriaLabel = type === "increase" ? "increased by" : "decreased by"; + const label = ariaLabel || defaultAriaLabel; + return (0, import_jsx_runtime159.jsxs)(import_jsx_runtime159.Fragment, { children: [ + (0, import_jsx_runtime159.jsx)(chakra.span, { srOnly: true, children: label }), + (0, import_jsx_runtime159.jsx)(BaseIcon, { "aria-hidden": true, ...rest, __css: styles2.icon }) + ] }); +} +StatArrow.displayName = "StatArrow"; + +// node_modules/@chakra-ui/stat/dist/chunk-BSQ2CXML.mjs +var import_jsx_runtime160 = __toESM(require_jsx_runtime(), 1); +var StatGroup = forwardRef3(function StatGroup2(props, ref) { + return (0, import_jsx_runtime160.jsx)( + chakra.div, + { + ...props, + ref, + role: "group", + className: cx("chakra-stat__group", props.className), + __css: { + display: "flex", + flexWrap: "wrap", + justifyContent: "space-around", + alignItems: "flex-start" + } + } + ); +}); +StatGroup.displayName = "StatGroup"; + +// node_modules/@chakra-ui/stat/dist/chunk-RMNGYPBK.mjs +var import_jsx_runtime161 = __toESM(require_jsx_runtime(), 1); +var StatHelpText = forwardRef3( + function StatHelpText2(props, ref) { + const styles2 = useStatStyles(); + return (0, import_jsx_runtime161.jsx)( + chakra.dd, + { + ref, + ...props, + className: cx("chakra-stat__help-text", props.className), + __css: styles2.helpText + } + ); + } +); +StatHelpText.displayName = "StatHelpText"; + +// node_modules/@chakra-ui/stat/dist/chunk-Z457NQVE.mjs +var import_jsx_runtime162 = __toESM(require_jsx_runtime(), 1); +var StatLabel = forwardRef3(function StatLabel2(props, ref) { + const styles2 = useStatStyles(); + return (0, import_jsx_runtime162.jsx)( + chakra.dt, + { + ref, + ...props, + className: cx("chakra-stat__label", props.className), + __css: styles2.label + } + ); +}); +StatLabel.displayName = "StatLabel"; + +// node_modules/@chakra-ui/stat/dist/chunk-GF2QC326.mjs +var import_jsx_runtime163 = __toESM(require_jsx_runtime(), 1); +var StatNumber = forwardRef3(function StatNumber2(props, ref) { + const styles2 = useStatStyles(); + return (0, import_jsx_runtime163.jsx)( + chakra.dd, + { + ref, + ...props, + className: cx("chakra-stat__number", props.className), + __css: { + ...styles2.number, + fontFeatureSettings: "pnum", + fontVariantNumeric: "proportional-nums" + } + } + ); +}); +StatNumber.displayName = "StatNumber"; + +// node_modules/@chakra-ui/stepper/dist/chunk-5JULEEQD.mjs +var [StepContextProvider, useStepContext] = createContext2( + { name: "StepContext" } +); +var [StepperStylesProvider, useStepperStyles] = createStylesContext("Stepper"); + +// node_modules/@chakra-ui/stepper/dist/chunk-D2YOVTOT.mjs +var import_jsx_runtime164 = __toESM(require_jsx_runtime(), 1); +var StepTitle = forwardRef3(function StepTitle2(props, ref) { + const { status } = useStepContext(); + const styles2 = useStepperStyles(); + return (0, import_jsx_runtime164.jsx)( + chakra.h3, + { + ref, + "data-status": status, + ...props, + __css: styles2.title, + className: cx("chakra-step__title", props.className) + } + ); +}); + +// node_modules/@chakra-ui/stepper/dist/chunk-V5KO42CT.mjs +var import_jsx_runtime165 = __toESM(require_jsx_runtime(), 1); +var Step = forwardRef3(function Step2(props, ref) { + const { orientation, status, showLastSeparator } = useStepContext(); + const styles2 = useStepperStyles(); + return (0, import_jsx_runtime165.jsx)( + chakra.div, + { + ref, + "data-status": status, + "data-orientation": orientation, + "data-stretch": dataAttr(showLastSeparator), + __css: styles2.step, + ...props, + className: cx("chakra-step", props.className) + } + ); +}); + +// node_modules/@chakra-ui/stepper/dist/chunk-3CJ44H2L.mjs +var import_react190 = __toESM(require_react(), 1); +var import_jsx_runtime166 = __toESM(require_jsx_runtime(), 1); +var Stepper = forwardRef3(function Stepper2(props, ref) { + const styles2 = useMultiStyleConfig("Stepper", props); + const { + children, + index, + orientation = "horizontal", + showLastSeparator = false, + ...restProps + } = omitThemingProps(props); + const stepElements = import_react190.Children.toArray(children); + const stepCount = stepElements.length; + function getStatus(step) { + if (step < index) + return "complete"; + if (step > index) + return "incomplete"; + return "active"; + } + return (0, import_jsx_runtime166.jsx)( + chakra.div, + { + ref, + "aria-label": "Progress", + "data-orientation": orientation, + ...restProps, + __css: styles2.stepper, + className: cx("chakra-stepper", props.className), + children: (0, import_jsx_runtime166.jsx)(StepperStylesProvider, { value: styles2, children: stepElements.map((child, index2) => (0, import_jsx_runtime166.jsx)( + StepContextProvider, + { + value: { + index: index2, + status: getStatus(index2), + orientation, + showLastSeparator, + count: stepCount, + isFirst: index2 === 0, + isLast: index2 === stepCount - 1 + }, + children: child + }, + index2 + )) }) + } + ); +}); + +// node_modules/@chakra-ui/stepper/dist/chunk-YK2WH7TU.mjs +var import_react191 = __toESM(require_react(), 1); +function useSteps(props = {}) { + const { index = 0, count } = props; + const [activeStep, setActiveStep] = (0, import_react191.useState)(index); + const maxStep = typeof count === "number" ? count - 1 : 0; + const activeStepPercent = activeStep / maxStep; + return { + activeStep, + setActiveStep, + activeStepPercent, + isActiveStep(step) { + return step === activeStep; + }, + isCompleteStep(step) { + return step < activeStep; + }, + isIncompleteStep(step) { + return step > activeStep; + }, + getStatus(step) { + if (step < activeStep) + return "complete"; + if (step > activeStep) + return "incomplete"; + return "active"; + }, + goToNext() { + setActiveStep((step) => { + return typeof count === "number" ? Math.min(count, step + 1) : step + 1; + }); + }, + goToPrevious() { + setActiveStep((step) => Math.max(0, step - 1)); + } + }; +} + +// node_modules/@chakra-ui/stepper/dist/chunk-TT4IEOBJ.mjs +var import_jsx_runtime167 = __toESM(require_jsx_runtime(), 1); +var StepDescription = forwardRef3(function StepDescription2(props, ref) { + const { status } = useStepContext(); + const styles2 = useStepperStyles(); + return (0, import_jsx_runtime167.jsx)( + chakra.p, + { + ref, + "data-status": status, + ...props, + className: cx("chakra-step__description", props.className), + __css: styles2.description + } + ); +}); + +// node_modules/@chakra-ui/stepper/dist/chunk-ZVCNMXD3.mjs +var import_jsx_runtime168 = __toESM(require_jsx_runtime(), 1); +function StepStatus(props) { + const { complete, incomplete, active } = props; + const context = useStepContext(); + let render = null; + switch (context.status) { + case "complete": + render = runIfFn(complete, context); + break; + case "incomplete": + render = runIfFn(incomplete, context); + break; + case "active": + render = runIfFn(active, context); + break; + } + return render ? (0, import_jsx_runtime168.jsx)(import_jsx_runtime168.Fragment, { children: render }) : null; +} + +// node_modules/@chakra-ui/stepper/dist/chunk-BHFVWI2H.mjs +var import_jsx_runtime169 = __toESM(require_jsx_runtime(), 1); +function CheckIcon4(props) { + return (0, import_jsx_runtime169.jsx)( + "svg", + { + stroke: "currentColor", + fill: "currentColor", + strokeWidth: "0", + viewBox: "0 0 20 20", + "aria-hidden": "true", + height: "1em", + width: "1em", + ...props, + children: (0, import_jsx_runtime169.jsx)( + "path", + { + fillRule: "evenodd", + d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", + clipRule: "evenodd" + } + ) + } + ); +} + +// node_modules/@chakra-ui/stepper/dist/chunk-2EGA5JYM.mjs +var import_jsx_runtime170 = __toESM(require_jsx_runtime(), 1); +function StepIcon(props) { + const { status } = useStepContext(); + const styles2 = useStepperStyles(); + const icon = status === "complete" ? CheckIcon4 : void 0; + return (0, import_jsx_runtime170.jsx)( + Icon, + { + as: icon, + __css: styles2.icon, + ...props, + className: cx("chakra-step__icon", props.className) + } + ); +} + +// node_modules/@chakra-ui/stepper/dist/chunk-D3AI6OO6.mjs +var import_jsx_runtime171 = __toESM(require_jsx_runtime(), 1); +var StepNumber = forwardRef3(function StepNumber2(props, ref) { + const { children, ...restProps } = props; + const { status, index } = useStepContext(); + const styles2 = useStepperStyles(); + return (0, import_jsx_runtime171.jsx)( + chakra.div, + { + ref, + "data-status": status, + __css: styles2.number, + ...restProps, + className: cx("chakra-step__number", props.className), + children: children || index + 1 + } + ); +}); + +// node_modules/@chakra-ui/stepper/dist/chunk-4LPX3T3V.mjs +var import_jsx_runtime172 = __toESM(require_jsx_runtime(), 1); +function StepIndicator(props) { + const { status } = useStepContext(); + const styles2 = useStepperStyles(); + return (0, import_jsx_runtime172.jsx)( + chakra.div, + { + "data-status": status, + ...props, + __css: styles2.indicator, + className: cx("chakra-step__indicator", props.className) + } + ); +} +function StepIndicatorContent() { + return (0, import_jsx_runtime172.jsx)( + StepStatus, + { + complete: (0, import_jsx_runtime172.jsx)(StepIcon, {}), + incomplete: (0, import_jsx_runtime172.jsx)(StepNumber, {}), + active: (0, import_jsx_runtime172.jsx)(StepNumber, {}) + } + ); +} + +// node_modules/@chakra-ui/stepper/dist/chunk-ZAW7TYJD.mjs +var import_jsx_runtime173 = __toESM(require_jsx_runtime(), 1); +var StepSeparator = forwardRef3(function StepSeparator2(props, ref) { + const { orientation, status, isLast, showLastSeparator } = useStepContext(); + const styles2 = useStepperStyles(); + if (isLast && !showLastSeparator) + return null; + return (0, import_jsx_runtime173.jsx)( + chakra.div, + { + ref, + role: "separator", + "data-orientation": orientation, + "data-status": status, + __css: styles2.separator, + ...props, + className: cx("chakra-step__separator", props.className) + } + ); +}); + +// node_modules/@chakra-ui/switch/dist/chunk-VTV6N5LE.mjs +var import_react192 = __toESM(require_react(), 1); +var import_jsx_runtime174 = __toESM(require_jsx_runtime(), 1); +var Switch = forwardRef3(function Switch2(props, ref) { + const styles2 = useMultiStyleConfig("Switch", props); + const { spacing: spacing2 = "0.5rem", children, ...ownProps } = omitThemingProps(props); + const { + getIndicatorProps, + getInputProps, + getCheckboxProps, + getRootProps, + getLabelProps + } = useCheckbox(ownProps); + const containerStyles = (0, import_react192.useMemo)( + () => ({ + display: "inline-block", + position: "relative", + verticalAlign: "middle", + lineHeight: 0, + ...styles2.container + }), + [styles2.container] + ); + const trackStyles = (0, import_react192.useMemo)( + () => ({ + display: "inline-flex", + flexShrink: 0, + justifyContent: "flex-start", + boxSizing: "content-box", + cursor: "pointer", + ...styles2.track + }), + [styles2.track] + ); + const labelStyles = (0, import_react192.useMemo)( + () => ({ + userSelect: "none", + marginStart: spacing2, + ...styles2.label + }), + [spacing2, styles2.label] + ); + return (0, import_jsx_runtime174.jsxs)( + chakra.label, + { + ...getRootProps(), + className: cx("chakra-switch", props.className), + __css: containerStyles, + children: [ + (0, import_jsx_runtime174.jsx)("input", { className: "chakra-switch__input", ...getInputProps({}, ref) }), + (0, import_jsx_runtime174.jsx)( + chakra.span, + { + ...getCheckboxProps(), + className: "chakra-switch__track", + __css: trackStyles, + children: (0, import_jsx_runtime174.jsx)( + chakra.span, + { + __css: styles2.thumb, + className: "chakra-switch__thumb", + ...getIndicatorProps() + } + ) + } + ), + children && (0, import_jsx_runtime174.jsx)( + chakra.span, + { + className: "chakra-switch__label", + ...getLabelProps(), + __css: labelStyles, + children + } + ) + ] + } + ); +}); +Switch.displayName = "Switch"; + +// node_modules/@chakra-ui/table/dist/chunk-GEJVU65N.mjs +var import_jsx_runtime175 = __toESM(require_jsx_runtime(), 1); +var [TableStylesProvider, useTableStyles] = createContext2({ + name: `TableStylesContext`, + errorMessage: `useTableStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var Table = forwardRef3((props, ref) => { + const styles2 = useMultiStyleConfig("Table", props); + const { className, layout: layout3, ...tableProps } = omitThemingProps(props); + return (0, import_jsx_runtime175.jsx)(TableStylesProvider, { value: styles2, children: (0, import_jsx_runtime175.jsx)( + chakra.table, + { + ref, + __css: { tableLayout: layout3, ...styles2.table }, + className: cx("chakra-table", className), + ...tableProps + } + ) }); +}); +Table.displayName = "Table"; + +// node_modules/@chakra-ui/table/dist/chunk-DRZNIHMG.mjs +var import_jsx_runtime176 = __toESM(require_jsx_runtime(), 1); +var Thead = forwardRef3((props, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime176.jsx)(chakra.thead, { ...props, ref, __css: styles2.thead }); +}); + +// node_modules/@chakra-ui/table/dist/chunk-GIQFRSD6.mjs +var import_jsx_runtime177 = __toESM(require_jsx_runtime(), 1); +var Tr = forwardRef3((props, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime177.jsx)(chakra.tr, { ...props, ref, __css: styles2.tr }); +}); + +// node_modules/@chakra-ui/table/dist/chunk-V3K6UINC.mjs +var import_jsx_runtime178 = __toESM(require_jsx_runtime(), 1); +var TableCaption = forwardRef3( + (props, ref) => { + const { placement = "bottom", ...rest } = props; + const styles2 = useTableStyles(); + return (0, import_jsx_runtime178.jsx)( + chakra.caption, + { + ...rest, + ref, + __css: { + ...styles2.caption, + captionSide: placement + } + } + ); + } +); +TableCaption.displayName = "TableCaption"; + +// node_modules/@chakra-ui/table/dist/chunk-OA6OURRG.mjs +var import_jsx_runtime179 = __toESM(require_jsx_runtime(), 1); +var TableContainer = forwardRef3( + (props, ref) => { + var _a8; + const { overflow, overflowX, className, ...rest } = props; + return (0, import_jsx_runtime179.jsx)( + chakra.div, + { + ref, + className: cx("chakra-table__container", className), + ...rest, + __css: { + display: "block", + whiteSpace: "nowrap", + WebkitOverflowScrolling: "touch", + overflowX: (_a8 = overflow != null ? overflow : overflowX) != null ? _a8 : "auto", + overflowY: "hidden", + maxWidth: "100%" + } + } + ); + } +); + +// node_modules/@chakra-ui/table/dist/chunk-J4QO5GAJ.mjs +var import_jsx_runtime180 = __toESM(require_jsx_runtime(), 1); +var Tbody = forwardRef3((props, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime180.jsx)(chakra.tbody, { ...props, ref, __css: styles2.tbody }); +}); + +// node_modules/@chakra-ui/table/dist/chunk-T2WCTPDH.mjs +var import_jsx_runtime181 = __toESM(require_jsx_runtime(), 1); +var Td = forwardRef3( + ({ isNumeric: isNumeric3, ...rest }, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime181.jsx)( + chakra.td, + { + ...rest, + ref, + __css: styles2.td, + "data-is-numeric": isNumeric3 + } + ); + } +); + +// node_modules/@chakra-ui/table/dist/chunk-B5H2YLEF.mjs +var import_jsx_runtime182 = __toESM(require_jsx_runtime(), 1); +var Tfoot = forwardRef3((props, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime182.jsx)(chakra.tfoot, { ...props, ref, __css: styles2.tfoot }); +}); + +// node_modules/@chakra-ui/table/dist/chunk-MGVPL3OH.mjs +var import_jsx_runtime183 = __toESM(require_jsx_runtime(), 1); +var Th = forwardRef3( + ({ isNumeric: isNumeric3, ...rest }, ref) => { + const styles2 = useTableStyles(); + return (0, import_jsx_runtime183.jsx)( + chakra.th, + { + ...rest, + ref, + __css: styles2.th, + "data-is-numeric": isNumeric3 + } + ); + } +); + +// node_modules/@chakra-ui/tabs/dist/chunk-NXSBASJ3.mjs +var import_react193 = __toESM(require_react(), 1); +var [ + TabsDescendantsProvider, + useTabsDescendantsContext, + useTabsDescendants, + useTabsDescendant +] = createDescendantContext(); +function useTabs(props) { + var _a8; + const { + defaultIndex, + onChange, + index, + isManual, + isLazy, + lazyBehavior = "unmount", + orientation = "horizontal", + direction: direction2 = "ltr", + ...htmlProps + } = props; + const [focusedIndex, setFocusedIndex] = (0, import_react193.useState)(defaultIndex != null ? defaultIndex : 0); + const [selectedIndex, setSelectedIndex] = useControllableState({ + defaultValue: defaultIndex != null ? defaultIndex : 0, + value: index, + onChange + }); + (0, import_react193.useEffect)(() => { + if (index != null) { + setFocusedIndex(index); + } + }, [index]); + const descendants = useTabsDescendants(); + const uuid = (0, import_react193.useId)(); + const uid = (_a8 = props.id) != null ? _a8 : uuid; + const id3 = `tabs-${uid}`; + return { + id: id3, + selectedIndex, + focusedIndex, + setSelectedIndex, + setFocusedIndex, + isManual, + isLazy, + lazyBehavior, + orientation, + descendants, + direction: direction2, + htmlProps + }; +} +var [TabsProvider, useTabsContext] = createContext2({ + name: "TabsContext", + errorMessage: "useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within " +}); +function useTabList(props) { + const { focusedIndex, orientation, direction: direction2 } = useTabsContext(); + const descendants = useTabsDescendantsContext(); + const onKeyDown = (0, import_react193.useCallback)( + (event) => { + const nextTab = () => { + var _a8; + const next2 = descendants.nextEnabled(focusedIndex); + if (next2) + (_a8 = next2.node) == null ? void 0 : _a8.focus(); + }; + const prevTab = () => { + var _a8; + const prev2 = descendants.prevEnabled(focusedIndex); + if (prev2) + (_a8 = prev2.node) == null ? void 0 : _a8.focus(); + }; + const firstTab = () => { + var _a8; + const first = descendants.firstEnabled(); + if (first) + (_a8 = first.node) == null ? void 0 : _a8.focus(); + }; + const lastTab = () => { + var _a8; + const last = descendants.lastEnabled(); + if (last) + (_a8 = last.node) == null ? void 0 : _a8.focus(); + }; + const isHorizontal = orientation === "horizontal"; + const isVertical = orientation === "vertical"; + const eventKey = event.key; + const ArrowStart = direction2 === "ltr" ? "ArrowLeft" : "ArrowRight"; + const ArrowEnd = direction2 === "ltr" ? "ArrowRight" : "ArrowLeft"; + const keyMap = { + [ArrowStart]: () => isHorizontal && prevTab(), + [ArrowEnd]: () => isHorizontal && nextTab(), + ArrowDown: () => isVertical && nextTab(), + ArrowUp: () => isVertical && prevTab(), + Home: firstTab, + End: lastTab + }; + const action = keyMap[eventKey]; + if (action) { + event.preventDefault(); + action(event); + } + }, + [descendants, focusedIndex, orientation, direction2] + ); + return { + ...props, + role: "tablist", + "aria-orientation": orientation, + onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown) + }; +} +function useTab(props) { + const { isDisabled: isDisabled3 = false, isFocusable: isFocusable3 = false, ...htmlProps } = props; + const { setSelectedIndex, isManual, id: id3, setFocusedIndex, selectedIndex } = useTabsContext(); + const { index, register } = useTabsDescendant({ + disabled: isDisabled3 && !isFocusable3 + }); + const isSelected = index === selectedIndex; + const onClick = () => { + setSelectedIndex(index); + }; + const onFocus3 = () => { + setFocusedIndex(index); + const isDisabledButFocusable = isDisabled3 && isFocusable3; + const shouldSelect = !isManual && !isDisabledButFocusable; + if (shouldSelect) { + setSelectedIndex(index); + } + }; + const clickableProps = useClickable({ + ...htmlProps, + ref: mergeRefs2(register, props.ref), + isDisabled: isDisabled3, + isFocusable: isFocusable3, + onClick: callAllHandlers(props.onClick, onClick) + }); + const type = "button"; + return { + ...clickableProps, + id: makeTabId(id3, index), + role: "tab", + tabIndex: isSelected ? 0 : -1, + type, + "aria-selected": isSelected, + "aria-controls": makeTabPanelId(id3, index), + onFocus: isDisabled3 ? void 0 : callAllHandlers(props.onFocus, onFocus3) + }; +} +var [TabPanelProvider, useTabPanelContext] = createContext2({}); +function useTabPanels(props) { + const context = useTabsContext(); + const { id: id3, selectedIndex } = context; + const validChildren = getValidChildren2(props.children); + const children = validChildren.map( + (child, index) => (0, import_react193.createElement)( + TabPanelProvider, + { + key: index, + value: { + isSelected: index === selectedIndex, + id: makeTabPanelId(id3, index), + tabId: makeTabId(id3, index), + selectedIndex + } + }, + child + ) + ); + return { ...props, children }; +} +function useTabPanel(props) { + const { children, ...htmlProps } = props; + const { isLazy, lazyBehavior } = useTabsContext(); + const { isSelected, id: id3, tabId } = useTabPanelContext(); + const hasBeenSelected = (0, import_react193.useRef)(false); + if (isSelected) { + hasBeenSelected.current = true; + } + const shouldRenderChildren = lazyDisclosure({ + wasSelected: hasBeenSelected.current, + isSelected, + enabled: isLazy, + mode: lazyBehavior + }); + return { + // Puts the tabpanel in the page `Tab` sequence. + tabIndex: 0, + ...htmlProps, + children: shouldRenderChildren ? children : null, + role: "tabpanel", + "aria-labelledby": tabId, + hidden: !isSelected, + id: id3 + }; +} +function useTabIndicator() { + const context = useTabsContext(); + const descendants = useTabsDescendantsContext(); + const { selectedIndex, orientation } = context; + const isHorizontal = orientation === "horizontal"; + const isVertical = orientation === "vertical"; + const [rect, setRect] = (0, import_react193.useState)(() => { + if (isHorizontal) + return { left: 0, width: 0 }; + if (isVertical) + return { top: 0, height: 0 }; + return void 0; + }); + const [hasMeasured, setHasMeasured] = (0, import_react193.useState)(false); + useSafeLayoutEffect(() => { + if (selectedIndex == null) + return; + const tab = descendants.item(selectedIndex); + if (tab == null) + return; + if (isHorizontal) { + setRect({ left: tab.node.offsetLeft, width: tab.node.offsetWidth }); + } + if (isVertical) { + setRect({ top: tab.node.offsetTop, height: tab.node.offsetHeight }); + } + const id3 = requestAnimationFrame(() => { + setHasMeasured(true); + }); + return () => { + if (id3) { + cancelAnimationFrame(id3); + } + }; + }, [selectedIndex, isHorizontal, isVertical, descendants]); + return { + position: "absolute", + transitionProperty: "left, right, top, bottom, height, width", + transitionDuration: hasMeasured ? "200ms" : "0ms", + transitionTimingFunction: "cubic-bezier(0, 0, 0.2, 1)", + ...rect + }; +} +function makeTabId(id3, index) { + return `${id3}--tab-${index}`; +} +function makeTabPanelId(id3, index) { + return `${id3}--tabpanel-${index}`; +} + +// node_modules/@chakra-ui/tabs/dist/chunk-GTRZJDIL.mjs +var import_react194 = __toESM(require_react(), 1); +var import_jsx_runtime184 = __toESM(require_jsx_runtime(), 1); +var [TabsStylesProvider, useTabsStyles] = createContext2({ + name: `TabsStylesContext`, + errorMessage: `useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var Tabs = forwardRef3(function Tabs2(props, ref) { + const styles2 = useMultiStyleConfig("Tabs", props); + const { children, className, ...rest } = omitThemingProps(props); + const { htmlProps, descendants, ...ctx } = useTabs(rest); + const context = (0, import_react194.useMemo)(() => ctx, [ctx]); + const { isFitted: _, ...rootProps } = htmlProps; + const tabsStyles = { + position: "relative", + ...styles2.root + }; + return (0, import_jsx_runtime184.jsx)(TabsDescendantsProvider, { value: descendants, children: (0, import_jsx_runtime184.jsx)(TabsProvider, { value: context, children: (0, import_jsx_runtime184.jsx)(TabsStylesProvider, { value: styles2, children: (0, import_jsx_runtime184.jsx)( + chakra.div, + { + className: cx("chakra-tabs", className), + ref, + ...rootProps, + __css: tabsStyles, + children + } + ) }) }) }); +}); +Tabs.displayName = "Tabs"; + +// node_modules/@chakra-ui/tabs/dist/chunk-XYXC6MAF.mjs +var import_jsx_runtime185 = __toESM(require_jsx_runtime(), 1); +var TabIndicator = forwardRef3( + function TabIndicator2(props, ref) { + const indicatorStyle = useTabIndicator(); + const style = { + ...props.style, + ...indicatorStyle + }; + const styles2 = useTabsStyles(); + return (0, import_jsx_runtime185.jsx)( + chakra.div, + { + ref, + ...props, + className: cx("chakra-tabs__tab-indicator", props.className), + style, + __css: styles2.indicator + } + ); + } +); +TabIndicator.displayName = "TabIndicator"; + +// node_modules/@chakra-ui/tabs/dist/chunk-BXDFYXZJ.mjs +var import_jsx_runtime186 = __toESM(require_jsx_runtime(), 1); +var TabList = forwardRef3(function TabList2(props, ref) { + const tablistProps = useTabList({ ...props, ref }); + const styles2 = useTabsStyles(); + const tablistStyles = { + display: "flex", + ...styles2.tablist + }; + return (0, import_jsx_runtime186.jsx)( + chakra.div, + { + ...tablistProps, + className: cx("chakra-tabs__tablist", props.className), + __css: tablistStyles + } + ); +}); +TabList.displayName = "TabList"; + +// node_modules/@chakra-ui/tabs/dist/chunk-KGTDXOFZ.mjs +var import_jsx_runtime187 = __toESM(require_jsx_runtime(), 1); +var TabPanel = forwardRef3(function TabPanel2(props, ref) { + const panelProps = useTabPanel({ ...props, ref }); + const styles2 = useTabsStyles(); + return (0, import_jsx_runtime187.jsx)( + chakra.div, + { + outline: "0", + ...panelProps, + className: cx("chakra-tabs__tab-panel", props.className), + __css: styles2.tabpanel + } + ); +}); +TabPanel.displayName = "TabPanel"; + +// node_modules/@chakra-ui/tabs/dist/chunk-4YMKQ5D4.mjs +var import_jsx_runtime188 = __toESM(require_jsx_runtime(), 1); +var TabPanels = forwardRef3(function TabPanels2(props, ref) { + const panelsProps = useTabPanels(props); + const styles2 = useTabsStyles(); + return (0, import_jsx_runtime188.jsx)( + chakra.div, + { + ...panelsProps, + width: "100%", + ref, + className: cx("chakra-tabs__tab-panels", props.className), + __css: styles2.tabpanels + } + ); +}); +TabPanels.displayName = "TabPanels"; + +// node_modules/@chakra-ui/tabs/dist/chunk-IAXSQ4X2.mjs +var import_jsx_runtime189 = __toESM(require_jsx_runtime(), 1); +var Tab = forwardRef3(function Tab2(props, ref) { + const styles2 = useTabsStyles(); + const tabProps = useTab({ ...props, ref }); + const tabStyles = { + outline: "0", + display: "flex", + alignItems: "center", + justifyContent: "center", + ...styles2.tab + }; + return (0, import_jsx_runtime189.jsx)( + chakra.button, + { + ...tabProps, + className: cx("chakra-tabs__tab", props.className), + __css: tabStyles + } + ); +}); +Tab.displayName = "Tab"; + +// node_modules/@chakra-ui/tag/dist/chunk-RPO2WXNL.mjs +var import_jsx_runtime190 = __toESM(require_jsx_runtime(), 1); +var [TagStylesProvider, useTagStyles] = createContext2({ + name: `TagStylesContext`, + errorMessage: `useTagStyles returned is 'undefined'. Seems you forgot to wrap the components in "" ` +}); +var Tag = forwardRef3((props, ref) => { + const styles2 = useMultiStyleConfig("Tag", props); + const ownProps = omitThemingProps(props); + const containerStyles = { + display: "inline-flex", + verticalAlign: "top", + alignItems: "center", + maxWidth: "100%", + ...styles2.container + }; + return (0, import_jsx_runtime190.jsx)(TagStylesProvider, { value: styles2, children: (0, import_jsx_runtime190.jsx)(chakra.span, { ref, ...ownProps, __css: containerStyles }) }); +}); +Tag.displayName = "Tag"; +var TagLabel = forwardRef3((props, ref) => { + const styles2 = useTagStyles(); + return (0, import_jsx_runtime190.jsx)(chakra.span, { ref, noOfLines: 1, ...props, __css: styles2.label }); +}); +TagLabel.displayName = "TagLabel"; +var TagLeftIcon = forwardRef3((props, ref) => (0, import_jsx_runtime190.jsx)(Icon, { ref, verticalAlign: "top", marginEnd: "0.5rem", ...props })); +TagLeftIcon.displayName = "TagLeftIcon"; +var TagRightIcon = forwardRef3((props, ref) => (0, import_jsx_runtime190.jsx)(Icon, { ref, verticalAlign: "top", marginStart: "0.5rem", ...props })); +TagRightIcon.displayName = "TagRightIcon"; +var TagCloseIcon = (props) => (0, import_jsx_runtime190.jsx)(Icon, { verticalAlign: "inherit", viewBox: "0 0 512 512", ...props, children: (0, import_jsx_runtime190.jsx)( + "path", + { + fill: "currentColor", + d: "M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z" + } +) }); +TagCloseIcon.displayName = "TagCloseIcon"; +var TagCloseButton = forwardRef3( + (props, ref) => { + const { isDisabled: isDisabled3, children, ...rest } = props; + const styles2 = useTagStyles(); + const btnStyles = { + display: "flex", + alignItems: "center", + justifyContent: "center", + outline: "0", + ...styles2.closeButton + }; + return (0, import_jsx_runtime190.jsx)( + chakra.button, + { + ref, + "aria-label": "close", + ...rest, + type: "button", + disabled: isDisabled3, + __css: btnStyles, + children: children || (0, import_jsx_runtime190.jsx)(TagCloseIcon, {}) + } + ); + } +); +TagCloseButton.displayName = "TagCloseButton"; + +// node_modules/@chakra-ui/textarea/dist/chunk-4IH3O7BJ.mjs +var import_jsx_runtime191 = __toESM(require_jsx_runtime(), 1); +function omit6(object2, keysToOmit = []) { + const clone = Object.assign({}, object2); + for (const key of keysToOmit) { + if (key in clone) { + delete clone[key]; + } + } + return clone; +} +var omitted = ["h", "minH", "height", "minHeight"]; +var Textarea = forwardRef3((props, ref) => { + const styles2 = useStyleConfig("Textarea", props); + const { className, rows, ...rest } = omitThemingProps(props); + const textareaProps = useFormControl(rest); + const textareaStyles = rows ? omit6(styles2, omitted) : styles2; + return (0, import_jsx_runtime191.jsx)( + chakra.textarea, + { + ref, + rows, + ...textareaProps, + className: cx("chakra-textarea", className), + __css: textareaStyles + } + ); +}); +Textarea.displayName = "Textarea"; + +// node_modules/@chakra-ui/tooltip/dist/chunk-XRZH7COS.mjs +var scale2 = { + exit: { + scale: 0.85, + opacity: 0, + transition: { + opacity: { duration: 0.15, easings: "easeInOut" }, + scale: { duration: 0.2, easings: "easeInOut" } + } + }, + enter: { + scale: 1, + opacity: 1, + transition: { + opacity: { easings: "easeOut", duration: 0.2 }, + scale: { duration: 0.2, ease: [0.175, 0.885, 0.4, 1.1] } + } + } +}; + +// node_modules/@chakra-ui/tooltip/dist/chunk-P7BNLW77.mjs +var import_react195 = __toESM(require_react(), 1); +var getDoc = (ref) => { + var _a8; + return ((_a8 = ref.current) == null ? void 0 : _a8.ownerDocument) || document; +}; +var getWin = (ref) => { + var _a8, _b5; + return ((_b5 = (_a8 = ref.current) == null ? void 0 : _a8.ownerDocument) == null ? void 0 : _b5.defaultView) || window; +}; +function useTooltip(props = {}) { + const { + openDelay = 0, + closeDelay = 0, + closeOnClick = true, + closeOnMouseDown, + closeOnScroll, + closeOnPointerDown = closeOnMouseDown, + closeOnEsc = true, + onOpen: onOpenProp, + onClose: onCloseProp, + placement, + id: id3, + isOpen: isOpenProp, + defaultIsOpen, + arrowSize = 10, + arrowShadowColor, + arrowPadding, + modifiers, + isDisabled: isDisabled3, + gutter, + offset, + direction: direction2, + ...htmlProps + } = props; + const { isOpen, onOpen, onClose } = useDisclosure2({ + isOpen: isOpenProp, + defaultIsOpen, + onOpen: onOpenProp, + onClose: onCloseProp + }); + const { referenceRef, getPopperProps, getArrowInnerProps, getArrowProps } = usePopper({ + enabled: isOpen, + placement, + arrowPadding, + modifiers, + gutter, + offset, + direction: direction2 + }); + const uuid = (0, import_react195.useId)(); + const uid = id3 != null ? id3 : uuid; + const tooltipId = `tooltip-${uid}`; + const ref = (0, import_react195.useRef)(null); + const enterTimeout = (0, import_react195.useRef)(); + const clearEnterTimeout = (0, import_react195.useCallback)(() => { + if (enterTimeout.current) { + clearTimeout(enterTimeout.current); + enterTimeout.current = void 0; + } + }, []); + const exitTimeout = (0, import_react195.useRef)(); + const clearExitTimeout = (0, import_react195.useCallback)(() => { + if (exitTimeout.current) { + clearTimeout(exitTimeout.current); + exitTimeout.current = void 0; + } + }, []); + const closeNow = (0, import_react195.useCallback)(() => { + clearExitTimeout(); + onClose(); + }, [onClose, clearExitTimeout]); + const dispatchCloseEvent = useCloseEvent(ref, closeNow); + const openWithDelay = (0, import_react195.useCallback)(() => { + if (!isDisabled3 && !enterTimeout.current) { + if (isOpen) + dispatchCloseEvent(); + const win = getWin(ref); + enterTimeout.current = win.setTimeout(onOpen, openDelay); + } + }, [dispatchCloseEvent, isDisabled3, isOpen, onOpen, openDelay]); + const closeWithDelay = (0, import_react195.useCallback)(() => { + clearEnterTimeout(); + const win = getWin(ref); + exitTimeout.current = win.setTimeout(closeNow, closeDelay); + }, [closeDelay, closeNow, clearEnterTimeout]); + const onClick = (0, import_react195.useCallback)(() => { + if (isOpen && closeOnClick) { + closeWithDelay(); + } + }, [closeOnClick, closeWithDelay, isOpen]); + const onPointerDown = (0, import_react195.useCallback)(() => { + if (isOpen && closeOnPointerDown) { + closeWithDelay(); + } + }, [closeOnPointerDown, closeWithDelay, isOpen]); + const onKeyDown = (0, import_react195.useCallback)( + (event) => { + if (isOpen && event.key === "Escape") { + closeWithDelay(); + } + }, + [isOpen, closeWithDelay] + ); + useEventListener( + () => getDoc(ref), + "keydown", + closeOnEsc ? onKeyDown : void 0 + ); + useEventListener( + () => { + if (!closeOnScroll) + return null; + const node3 = ref.current; + if (!node3) + return null; + const scrollParent = getScrollParent(node3); + return scrollParent.localName === "body" ? getWin(ref) : scrollParent; + }, + "scroll", + () => { + if (isOpen && closeOnScroll) { + closeNow(); + } + }, + { passive: true, capture: true } + ); + (0, import_react195.useEffect)(() => { + if (!isDisabled3) + return; + clearEnterTimeout(); + if (isOpen) + onClose(); + }, [isDisabled3, isOpen, onClose, clearEnterTimeout]); + (0, import_react195.useEffect)(() => { + return () => { + clearEnterTimeout(); + clearExitTimeout(); + }; + }, [clearEnterTimeout, clearExitTimeout]); + useEventListener(() => ref.current, "pointerleave", closeWithDelay); + const getTriggerProps = (0, import_react195.useCallback)( + (props2 = {}, _ref2 = null) => { + const triggerProps = { + ...props2, + ref: mergeRefs2(ref, _ref2, referenceRef), + onPointerEnter: callAllHandlers(props2.onPointerEnter, (e) => { + if (e.pointerType === "touch") + return; + openWithDelay(); + }), + onClick: callAllHandlers(props2.onClick, onClick), + onPointerDown: callAllHandlers(props2.onPointerDown, onPointerDown), + onFocus: callAllHandlers(props2.onFocus, openWithDelay), + onBlur: callAllHandlers(props2.onBlur, closeWithDelay), + "aria-describedby": isOpen ? tooltipId : void 0 + }; + return triggerProps; + }, + [ + openWithDelay, + closeWithDelay, + onPointerDown, + isOpen, + tooltipId, + onClick, + referenceRef + ] + ); + const getTooltipPositionerProps = (0, import_react195.useCallback)( + (props2 = {}, forwardedRef = null) => getPopperProps( + { + ...props2, + style: { + ...props2.style, + [cssVars.arrowSize.var]: arrowSize ? `${arrowSize}px` : void 0, + [cssVars.arrowShadowColor.var]: arrowShadowColor + } + }, + forwardedRef + ), + [getPopperProps, arrowSize, arrowShadowColor] + ); + const getTooltipProps = (0, import_react195.useCallback)( + (props2 = {}, ref2 = null) => { + const styles2 = { + ...props2.style, + position: "relative", + transformOrigin: cssVars.transformOrigin.varRef + }; + return { + ref: ref2, + ...htmlProps, + ...props2, + id: tooltipId, + role: "tooltip", + style: styles2 + }; + }, + [htmlProps, tooltipId] + ); + return { + isOpen, + show: openWithDelay, + hide: closeWithDelay, + getTriggerProps, + getTooltipProps, + getTooltipPositionerProps, + getArrowProps, + getArrowInnerProps + }; +} +var closeEventName = "chakra-ui:close-tooltip"; +function useCloseEvent(ref, close) { + (0, import_react195.useEffect)(() => { + const doc = getDoc(ref); + doc.addEventListener(closeEventName, close); + return () => doc.removeEventListener(closeEventName, close); + }, [close, ref]); + return () => { + const doc = getDoc(ref); + const win = getWin(ref); + doc.dispatchEvent(new win.CustomEvent(closeEventName)); + }; +} + +// node_modules/@chakra-ui/tooltip/dist/chunk-TK6VMDNP.mjs +var import_react196 = __toESM(require_react(), 1); +var import_jsx_runtime192 = __toESM(require_jsx_runtime(), 1); +function omit7(object2, keysToOmit = []) { + const clone = Object.assign({}, object2); + for (const key of keysToOmit) { + if (key in clone) { + delete clone[key]; + } + } + return clone; +} +function pick4(object2, keysToPick) { + const result = {}; + for (const key of keysToPick) { + if (key in object2) { + result[key] = object2[key]; + } + } + return result; +} +var MotionDiv3 = chakra(motion.div); +var Tooltip = forwardRef3((props, ref) => { + var _a8, _b5; + const styles2 = useStyleConfig("Tooltip", props); + const ownProps = omitThemingProps(props); + const theme2 = useTheme2(); + const { + children, + label, + shouldWrapChildren, + "aria-label": ariaLabel, + hasArrow, + bg, + portalProps, + background: background2, + backgroundColor, + bgColor, + motionProps, + ...rest + } = ownProps; + const userDefinedBg = (_b5 = (_a8 = background2 != null ? background2 : backgroundColor) != null ? _a8 : bg) != null ? _b5 : bgColor; + if (userDefinedBg) { + styles2.bg = userDefinedBg; + const bgVar = getCSSVar(theme2, "colors", userDefinedBg); + styles2[cssVars.arrowBg.var] = bgVar; + } + const tooltip = useTooltip({ ...rest, direction: theme2.direction }); + const shouldWrap = typeof children === "string" || shouldWrapChildren; + let trigger2; + if (shouldWrap) { + trigger2 = (0, import_jsx_runtime192.jsx)( + chakra.span, + { + display: "inline-block", + tabIndex: 0, + ...tooltip.getTriggerProps(), + children + } + ); + } else { + const child = import_react196.Children.only(children); + trigger2 = (0, import_react196.cloneElement)( + child, + tooltip.getTriggerProps(child.props, child.ref) + ); + } + const hasAriaLabel = !!ariaLabel; + const _tooltipProps = tooltip.getTooltipProps({}, ref); + const tooltipProps = hasAriaLabel ? omit7(_tooltipProps, ["role", "id"]) : _tooltipProps; + const srOnlyProps = pick4(_tooltipProps, ["role", "id"]); + if (!label) { + return (0, import_jsx_runtime192.jsx)(import_jsx_runtime192.Fragment, { children }); + } + return (0, import_jsx_runtime192.jsxs)(import_jsx_runtime192.Fragment, { children: [ + trigger2, + (0, import_jsx_runtime192.jsx)(AnimatePresence, { children: tooltip.isOpen && (0, import_jsx_runtime192.jsx)(Portal, { ...portalProps, children: (0, import_jsx_runtime192.jsx)( + chakra.div, + { + ...tooltip.getTooltipPositionerProps(), + __css: { + zIndex: styles2.zIndex, + pointerEvents: "none" + }, + children: (0, import_jsx_runtime192.jsxs)( + MotionDiv3, + { + variants: scale2, + initial: "exit", + animate: "enter", + exit: "exit", + ...motionProps, + ...tooltipProps, + __css: styles2, + children: [ + label, + hasAriaLabel && (0, import_jsx_runtime192.jsx)(chakra.span, { srOnly: true, ...srOnlyProps, children: ariaLabel }), + hasArrow && (0, import_jsx_runtime192.jsx)( + chakra.div, + { + "data-popper-arrow": true, + className: "chakra-tooltip__arrow-wrapper", + children: (0, import_jsx_runtime192.jsx)( + chakra.div, + { + "data-popper-arrow-inner": true, + className: "chakra-tooltip__arrow", + __css: { bg: styles2.bg } + } + ) + } + ) + ] + } + ) + } + ) }) }) + ] }); +}); +Tooltip.displayName = "Tooltip"; +export { + AbsoluteCenter, + Accordion, + AccordionButton, + AccordionIcon, + AccordionItem, + AccordionPanel, + AccordionProvider, + Alert, + AlertDescription, + AlertDialog, + ModalBody as AlertDialogBody, + ModalCloseButton as AlertDialogCloseButton, + AlertDialogContent, + ModalFooter as AlertDialogFooter, + ModalHeader as AlertDialogHeader, + ModalOverlay as AlertDialogOverlay, + AlertIcon, + AlertTitle, + AspectRatio, + Avatar, + AvatarBadge, + AvatarGroup, + Badge, + Box, + Breadcrumb, + BreadcrumbItem, + BreadcrumbLink, + BreadcrumbSeparator, + Button, + ButtonGroup, + ButtonSpinner, + CSSPolyfill, + CSSReset, + CSSVars, + Card, + CardBody, + CardFooter, + CardHeader, + Center, + ChakraBaseProvider, + ChakraProvider2 as ChakraProvider, + Checkbox, + CheckboxGroup, + CheckboxIcon, + Circle, + CircularProgress, + CircularProgressLabel, + CloseButton, + Code, + Collapse, + ColorModeContext, + ColorModeProvider, + ColorModeScript, + Container2 as Container, + ControlBox, + DarkMode, + Divider, + Drawer, + ModalBody as DrawerBody, + ModalCloseButton as DrawerCloseButton, + DrawerContent, + ModalFooter as DrawerFooter, + ModalHeader as DrawerHeader, + ModalOverlay as DrawerOverlay, + TRANSITION_EASINGS as EASINGS, + Editable, + EditableInput, + EditablePreview, + EditableTextarea, + EnvironmentProvider, + Fade, + Flex, + FocusLock2 as FocusLock, + FormControl, + FormErrorIcon, + FormErrorMessage, + FormHelperText, + FormLabel, + GenericAvatarIcon, + GlobalStyle, + Grid, + GridItem, + HStack, + Heading, + Hide, + Highlight, + Icon, + IconButton, + Image2 as Image, + Img, + Indicator, + Input, + InputAddon, + InputGroup, + InputLeftAddon, + InputLeftElement, + InputRightAddon, + InputRightElement, + Kbd, + LightMode, + Link, + LinkBox, + LinkOverlay, + List, + ListIcon, + ListItem, + Mark, + Menu, + MenuButton, + MenuCommand, + MenuDescendantsProvider, + MenuDivider, + MenuGroup, + MenuIcon, + MenuItem, + MenuItemOption, + MenuList, + MenuOptionGroup, + MenuProvider, + Modal, + ModalBody, + ModalCloseButton, + ModalContent, + ModalContextProvider, + ModalFocusScope, + ModalFooter, + ModalHeader, + ModalOverlay, + NumberDecrementStepper, + NumberIncrementStepper, + NumberInput, + NumberInputField, + NumberInputStepper, + OrderedList, + PinInput, + PinInputDescendantsProvider, + PinInputField, + PinInputProvider, + Popover, + PopoverAnchor, + PopoverArrow, + PopoverBody, + PopoverCloseButton, + PopoverContent, + PopoverFooter, + PopoverHeader, + PopoverTrigger, + Portal, + PortalManager, + Progress, + ProgressLabel, + Radio, + RadioGroup, + RangeSlider, + RangeSliderFilledTrack, + RangeSliderMark, + RangeSliderProvider, + RangeSliderThumb, + RangeSliderTrack, + RequiredIndicator, + ScaleFade, + Select, + SelectField, + Show, + SimpleGrid, + Skeleton, + SkeletonCircle, + SkeletonText, + SkipNavContent, + SkipNavLink, + Slide, + SlideFade, + Slider, + SliderFilledTrack, + SliderMark, + SliderProvider, + SliderThumb, + SliderTrack, + Spacer, + Spinner, + Square, + Stack, + StackDivider, + StackItem, + Stat, + StatArrow, + StatDownArrow, + StatGroup, + StatHelpText, + StatLabel, + StatNumber, + StatUpArrow, + Step, + StepDescription, + StepIcon, + StepIndicator, + StepIndicatorContent, + StepNumber, + StepSeparator, + StepStatus, + StepTitle, + Stepper, + StylesProvider, + Switch, + Tab, + TabIndicator, + TabList, + TabPanel, + TabPanels, + Table, + TableCaption, + TableContainer, + Tabs, + TabsDescendantsProvider, + TabsProvider, + Tag, + TagCloseButton, + TagLabel, + TagLeftIcon, + TagRightIcon, + Tbody, + Td, + Text, + Textarea, + Tfoot, + Th, + Thead, + ThemeProvider3 as ThemeProvider, + Toast, + ToastOptionProvider, + ToastProvider, + Tooltip, + Tr, + UnorderedList, + VStack, + VisuallyHidden, + VisuallyHiddenInput, + Wrap, + WrapItem, + addPrefix, + assignRef4 as assignRef, + background, + baseTheme, + border, + calc, + chakra, + color, + cookieStorageManager, + cookieStorageManagerSSR, + createCookieStorageManager, + createIcon, + createLocalStorageManager, + createMultiStyleConfigHelpers, + createRenderToast, + createStandaloneToast, + createStylesContext, + createToastFn, + css3 as css, + cssVar, + defineCssVars, + defineStyle, + defineStyleConfig, + effect, + extendBaseTheme, + extendTheme, + fadeConfig, + filter, + flattenTokens, + flexbox, + forwardRef3 as forwardRef, + getCSSVar, + getCss, + getScriptSrc, + getSlideTransition, + getToastPlacement, + getToken, + grid, + interactivity, + isChakraTheme, + isStyleProp, + keyframes, + layout, + layoutPropNames, + list, + localStorageManager, + mergeThemeOverride, + omitThemingProps, + others, + cssVars as popperCSSVars, + position2 as position, + propNames, + pseudoPropNames, + pseudoSelectors, + requiredChakraThemeKeys, + resolveStyleConfig, + ring, + scaleFadeConfig, + scroll, + shouldForwardProp, + slideFadeConfig, + space, + styled, + systemProps, + textDecoration, + theme, + toCSSObject, + toCSSVar, + toVarDefinition, + toVarReference, + tokenToCSSVar, + transform, + transition, + typography, + useAccordion, + useAccordionContext, + useAccordionItem, + useAccordionItemState, + useAccordionStyles, + useAlertStyles, + useAnimationState, + useAvatarStyles, + useBoolean, + useBreadcrumbStyles, + useBreakpoint, + useBreakpointValue, + useButtonGroup, + useCallbackRef3 as useCallbackRef, + useCardStyles, + useChakra, + useCheckbox, + useCheckboxGroup, + useClipboard, + useColorMode, + useColorModePreference, + useColorModeValue, + useComponentStyles__unstable, + useConst, + useControllableProp, + useControllableState2 as useControllableState, + useCounter, + useDimensions, + useDisclosure, + useDrawerContext, + useEditable, + useEditableContext, + useEditableControls, + useEditableState, + useEditableStyles, + useEnvironment, + useEventListener2 as useEventListener, + useEventListenerMap, + useFocusEffect, + useFocusOnHide, + useFocusOnPointerDown2 as useFocusOnPointerDown, + useFocusOnShow, + useForceUpdate2 as useForceUpdate, + useFormControl, + useFormControlContext, + useFormControlProps, + useFormControlStyles, + useFormErrorStyles, + useHighlight, + useId6 as useId, + useIds, + useImage, + useInputGroupStyles, + useInterval, + useLatestRef, + useListStyles, + useMediaQuery, + useMenu, + useMenuButton, + useMenuContext, + useMenuDescendant, + useMenuDescendants, + useMenuDescendantsContext, + useMenuItem, + useMenuList, + useMenuOption, + useMenuOptionGroup, + useMenuPositioner, + useMenuState, + useMenuStyles, + useMergeRefs3 as useMergeRefs, + useModal, + useModalContext, + useModalManager, + useModalStyles, + useMouseDownRef, + useMultiStyleConfig, + useNumberInput, + useNumberInputStyles, + useOptionalPart, + useOutsideClick, + usePanGesture, + usePinInput, + usePinInputContext, + usePinInputField, + usePointerEvent, + usePopover, + usePopoverContext, + usePopoverStyles, + usePopper, + usePortalManager, + usePrefersReducedMotion, + usePrevious, + useProgressStyles, + useQuery, + useRadio, + useRadioGroup, + useRadioGroupContext, + useRangeSlider, + useRangeSliderContext, + useRangeSliderStyles, + useSafeLayoutEffect3 as useSafeLayoutEffect, + useShortcut, + useSlider, + useSliderContext, + useSliderStyles, + useStatStyles, + useStepContext, + useStepperStyles, + useSteps, + useStyleConfig, + useStyles, + useTab, + useTabIndicator, + useTabList, + useTabPanel, + useTabPanels, + useTableStyles, + useTabs, + useTabsContext, + useTabsDescendant, + useTabsDescendants, + useTabsDescendantsContext, + useTabsStyles, + useTagStyles, + useTheme2 as useTheme, + useTimeout2 as useTimeout, + useToast, + useToken, + useTooltip, + useUnmountEffect2 as useUnmountEffect, + useUpdateEffect2 as useUpdateEffect, + useWhyDidYouUpdate, + visuallyHiddenStyle, + withDefaultColorScheme, + withDefaultProps, + withDefaultSize, + withDefaultVariant, + withDelay +}; +/*! Bundled license information: + +react-is/cjs/react-is.development.js: + (** @license React v16.13.1 + * react-is.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. + *) + +react/cjs/react-jsx-runtime.development.js: + (** + * @license React + * react-jsx-runtime.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. + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) +*/ +//# sourceMappingURL=@chakra-ui_react.js.map diff --git a/.vite/deps/@chakra-ui_react.js.map b/.vite/deps/@chakra-ui_react.js.map new file mode 100644 index 0000000..df19a42 --- /dev/null +++ b/.vite/deps/@chakra-ui_react.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js", "../../node_modules/react-is/cjs/react-is.development.js", "../../node_modules/react-is/index.js", "../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js", "../../node_modules/react/cjs/react-jsx-runtime.development.js", "../../node_modules/react/jsx-runtime.js", "../../node_modules/lodash.mergewith/index.js", "../../node_modules/react-fast-compare/index.js", "../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js", "../../node_modules/object-assign/index.js", "../../node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../node_modules/prop-types/lib/has.js", "../../node_modules/prop-types/checkPropTypes.js", "../../node_modules/prop-types/factoryWithTypeCheckers.js", "../../node_modules/prop-types/index.js", "../../node_modules/toggle-selection/index.js", "../../node_modules/copy-to-clipboard/index.js", "../../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js", "../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js", "../../node_modules/stylis/src/Enum.js", "../../node_modules/stylis/src/Utility.js", "../../node_modules/stylis/src/Tokenizer.js", "../../node_modules/stylis/src/Parser.js", "../../node_modules/stylis/src/Serializer.js", "../../node_modules/stylis/src/Middleware.js", "../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js", "../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js", "../../node_modules/@babel/runtime/helpers/esm/extends.js", "../../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js", "../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js", "../../node_modules/@emotion/hash/dist/emotion-hash.esm.js", "../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js", "../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js", "../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js", "../../node_modules/@emotion/react/dist/emotion-react.browser.esm.js", "../../node_modules/@chakra-ui/css-reset/src/css-reset.tsx", "../../node_modules/@chakra-ui/react-context/src/index.ts", "../../node_modules/@chakra-ui/portal/src/portal-manager.tsx", "../../node_modules/@chakra-ui/react-use-safe-layout-effect/src/index.ts", "../../node_modules/@chakra-ui/portal/src/portal.tsx", "../../node_modules/@chakra-ui/system/src/use-theme.ts", "../../node_modules/@chakra-ui/color-mode/src/color-mode-context.ts", "../../node_modules/@chakra-ui/color-mode/src/color-mode.utils.ts", "../../node_modules/@chakra-ui/color-mode/src/storage-manager.ts", "../../node_modules/@chakra-ui/color-mode/src/color-mode-provider.tsx", "../../node_modules/@chakra-ui/color-mode/src/color-mode-script.tsx", "../../node_modules/@chakra-ui/system/src/hooks.ts", "../../node_modules/@chakra-ui/shared-utils/dist/index.mjs", "../../node_modules/@chakra-ui/styled-system/dist/index.mjs", "../../node_modules/@chakra-ui/theme/src/utils/is-chakra-theme.ts", "../../node_modules/@chakra-ui/theme/src/foundations/transition.ts", "../../node_modules/@chakra-ui/theme/src/foundations/z-index.ts", "../../node_modules/@chakra-ui/theme/src/foundations/borders.ts", "../../node_modules/@chakra-ui/theme/src/foundations/breakpoints.ts", "../../node_modules/@chakra-ui/theme/src/foundations/colors.ts", "../../node_modules/@chakra-ui/theme/src/foundations/radius.ts", "../../node_modules/@chakra-ui/theme/src/foundations/shadows.ts", "../../node_modules/@chakra-ui/theme/src/foundations/blur.ts", "../../node_modules/@chakra-ui/theme/src/foundations/typography.ts", "../../node_modules/@chakra-ui/theme/src/foundations/spacing.ts", "../../node_modules/@chakra-ui/theme/src/foundations/sizes.ts", "../../node_modules/@chakra-ui/theme/src/foundations/index.ts", "../../node_modules/@chakra-ui/theme/src/components/stepper.ts", "../../node_modules/@chakra-ui/anatomy/src/anatomy.ts", "../../node_modules/@chakra-ui/anatomy/src/components.ts", "../../node_modules/color2k/src/guard.ts", "../../node_modules/color2k/src/ColorError.ts", "../../node_modules/color2k/src/parseToRgba.ts", "../../node_modules/color2k/src/parseToHsla.ts", "../../node_modules/color2k/src/hsla.ts", "../../node_modules/color2k/src/adjustHue.ts", "../../node_modules/color2k/src/darken.ts", "../../node_modules/color2k/src/desaturate.ts", "../../node_modules/color2k/src/getLuminance.ts", "../../node_modules/color2k/src/getContrast.ts", "../../node_modules/color2k/src/rgba.ts", "../../node_modules/color2k/src/mix.ts", "../../node_modules/color2k/src/getScale.ts", "../../node_modules/color2k/src/hasBadContrast.ts", "../../node_modules/color2k/src/lighten.ts", "../../node_modules/color2k/src/transparentize.ts", "../../node_modules/color2k/src/opacify.ts", "../../node_modules/color2k/src/readableColorIsBlack.ts", "../../node_modules/color2k/src/readableColor.ts", "../../node_modules/color2k/src/saturate.ts", "../../node_modules/color2k/src/toHex.ts", "../../node_modules/color2k/src/toRgba.ts", "../../node_modules/color2k/src/toHsla.ts", "../../node_modules/@chakra-ui/theme-tools/src/color.ts", "../../node_modules/.pnpm/dlv@1.1.3/node_modules/dlv/index.js", "../../node_modules/@chakra-ui/theme-tools/src/component.ts", "../../node_modules/@chakra-ui/theme-tools/src/css-calc.ts", "../../node_modules/@chakra-ui/theme-tools/src/css-var.ts", "../../node_modules/@chakra-ui/theme/src/components/switch.ts", "../../node_modules/@chakra-ui/theme/src/components/table.ts", "../../node_modules/@chakra-ui/theme/src/components/tabs.ts", "../../node_modules/@chakra-ui/theme/src/components/badge.ts", "../../node_modules/@chakra-ui/theme/src/components/tag.ts", "../../node_modules/@chakra-ui/theme/src/components/input.ts", "../../node_modules/@chakra-ui/theme/src/components/textarea.ts", "../../node_modules/@chakra-ui/theme/src/components/tooltip.ts", "../../node_modules/@chakra-ui/theme/src/components/progress.ts", "../../node_modules/@chakra-ui/theme/src/utils/run-if-fn.ts", "../../node_modules/@chakra-ui/theme/src/components/checkbox.ts", "../../node_modules/@chakra-ui/theme/src/components/radio.ts", "../../node_modules/@chakra-ui/theme/src/components/select.ts", "../../node_modules/@chakra-ui/theme/src/components/skeleton.ts", "../../node_modules/@chakra-ui/theme/src/components/skip-link.ts", "../../node_modules/@chakra-ui/theme/src/components/slider.ts", "../../node_modules/@chakra-ui/theme/src/components/spinner.ts", "../../node_modules/@chakra-ui/theme/src/components/stat.ts", "../../node_modules/@chakra-ui/theme/src/components/kbd.ts", "../../node_modules/@chakra-ui/theme/src/components/link.ts", "../../node_modules/@chakra-ui/theme/src/components/list.ts", "../../node_modules/@chakra-ui/theme/src/components/menu.ts", "../../node_modules/@chakra-ui/theme/src/components/modal.ts", "../../node_modules/@chakra-ui/theme/src/components/number-input.ts", "../../node_modules/@chakra-ui/theme/src/components/pin-input.ts", "../../node_modules/@chakra-ui/theme/src/components/popover.ts", "../../node_modules/@chakra-ui/theme/src/components/drawer.ts", "../../node_modules/@chakra-ui/theme/src/components/editable.ts", "../../node_modules/@chakra-ui/theme/src/components/form-control.ts", "../../node_modules/@chakra-ui/theme/src/components/form-error.ts", "../../node_modules/@chakra-ui/theme/src/components/form-label.ts", "../../node_modules/@chakra-ui/theme/src/components/heading.ts", "../../node_modules/@chakra-ui/theme/src/components/breadcrumb.ts", "../../node_modules/@chakra-ui/theme/src/components/button.ts", "../../node_modules/@chakra-ui/theme/src/components/card.ts", "../../node_modules/@chakra-ui/theme/src/components/close-button.ts", "../../node_modules/@chakra-ui/theme/src/components/code.ts", "../../node_modules/@chakra-ui/theme/src/components/container.ts", "../../node_modules/@chakra-ui/theme/src/components/divider.ts", "../../node_modules/@chakra-ui/theme/src/components/accordion.ts", "../../node_modules/@chakra-ui/theme/src/components/alert.ts", "../../node_modules/@chakra-ui/theme/src/components/avatar.ts", "../../node_modules/@chakra-ui/theme/src/components/index.ts", "../../node_modules/@chakra-ui/theme/src/semantic-tokens.ts", "../../node_modules/@chakra-ui/theme/src/styles.ts", "../../node_modules/@chakra-ui/theme/src/index.ts", "../../node_modules/@chakra-ui/theme-utils/dist/chunk-LIR5QAZY.mjs", "../../node_modules/@chakra-ui/theme-utils/dist/chunk-7FV6Z5GW.mjs", "../../node_modules/@chakra-ui/theme-utils/dist/chunk-5IM46G4H.mjs", "../../node_modules/@chakra-ui/theme-utils/dist/chunk-5UFXUR4J.mjs", "../../node_modules/@chakra-ui/theme-utils/dist/chunk-PE3QADR6.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-O3SWHQEE.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-DGFLLHTM.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-YTQ3XZ3T.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-Y5FGD7DM.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-M3TFMUOL.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-YAFHXCR4.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-LCE7F24A.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-NHABU752.mjs", "../../node_modules/framesync/dist/es/on-next-frame.mjs", "../../node_modules/framesync/dist/es/create-render-step.mjs", "../../node_modules/framesync/dist/es/index.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-SV3JYFGC.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-FGAEJGLB.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-P6S57EDQ.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-5LUSIWEA.mjs", "../../node_modules/@chakra-ui/utils/dist/chunk-QKXRP2IX.mjs", "../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js", "../../node_modules/css-box-model/dist/css-box-model.esm.js", "../../node_modules/@chakra-ui/system/src/use-style-config.ts", "../../node_modules/@chakra-ui/system/src/should-forward-prop.ts", "../../node_modules/@chakra-ui/object-utils/dist/chunk-OLTBUDV5.mjs", "../../node_modules/@chakra-ui/object-utils/dist/chunk-R3DH46PF.mjs", "../../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js", "../../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js", "../../node_modules/@chakra-ui/system/src/system.ts", "../../node_modules/@chakra-ui/system/src/factory.ts", "../../node_modules/@chakra-ui/system/src/forward-ref.tsx", "../../node_modules/@chakra-ui/react-utils/dist/chunk-IH2MM24A.mjs", "../../node_modules/@chakra-ui/react-utils/dist/chunk-ITIKTQWJ.mjs", "../../node_modules/@chakra-ui/system/src/providers.tsx", "../../node_modules/@chakra-ui/react-env/src/env.tsx", "../../node_modules/@chakra-ui/provider/src/chakra-provider.tsx", "../../node_modules/@chakra-ui/toast/src/toast.utils.ts", "../../node_modules/@chakra-ui/react-use-timeout/src/index.ts", "../../node_modules/@chakra-ui/react-use-callback-ref/src/index.ts", "../../node_modules/@chakra-ui/react-use-update-effect/src/index.ts", "../../node_modules/framer-motion/dist/es/motion/index.mjs", "../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs", "../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs", "../../node_modules/framer-motion/dist/es/context/PresenceContext.mjs", "../../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs", "../../node_modules/framer-motion/dist/es/utils/is-browser.mjs", "../../node_modules/framer-motion/dist/es/context/LazyContext.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs", "../../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs", "../../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs", "../../node_modules/framer-motion/dist/es/frameloop/render-step.mjs", "../../node_modules/framer-motion/dist/es/frameloop/batcher.mjs", "../../node_modules/framer-motion/dist/es/frameloop/microtask.mjs", "../../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs", "../../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs", "../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs", "../../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs", "../../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs", "../../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs", "../../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs", "../../node_modules/framer-motion/dist/es/motion/features/definitions.mjs", "../../node_modules/framer-motion/dist/es/motion/features/load-features.mjs", "../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs", "../../node_modules/framer-motion/dist/es/utils/noop.mjs", "../../node_modules/framer-motion/dist/es/utils/errors.mjs", "../../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs", "../../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs", "../../node_modules/framer-motion/dist/es/render/dom/use-render.mjs", "../../node_modules/framer-motion/dist/es/render/html/use-props.mjs", "../../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs", "../../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs", "../../node_modules/framer-motion/dist/es/utils/clamp.mjs", "../../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs", "../../node_modules/framer-motion/dist/es/value/types/utils.mjs", "../../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs", "../../node_modules/framer-motion/dist/es/render/svg/use-props.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/render.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs", "../../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs", "../../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs", "../../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs", "../../node_modules/framer-motion/dist/es/utils/use-constant.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs", "../../node_modules/framer-motion/dist/es/utils/resolve-value.mjs", "../../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs", "../../node_modules/framer-motion/dist/es/frameloop/frame.mjs", "../../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs", "../../node_modules/framer-motion/dist/es/render/html/config-motion.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs", "../../node_modules/framer-motion/dist/es/events/add-dom-event.mjs", "../../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs", "../../node_modules/framer-motion/dist/es/events/event-info.mjs", "../../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs", "../../node_modules/framer-motion/dist/es/utils/pipe.mjs", "../../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs", "../../node_modules/framer-motion/dist/es/motion/features/Feature.mjs", "../../node_modules/framer-motion/dist/es/gestures/hover.mjs", "../../node_modules/framer-motion/dist/es/gestures/focus.mjs", "../../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs", "../../node_modules/framer-motion/dist/es/gestures/press.mjs", "../../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs", "../../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs", "../../node_modules/framer-motion/dist/es/motion/features/gestures.mjs", "../../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs", "../../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs", "../../node_modules/framer-motion/dist/es/utils/time-conversion.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs", "../../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs", "../../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs", "../../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs", "../../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs", "../../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs", "../../node_modules/framer-motion/dist/es/value/types/color/utils.mjs", "../../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs", "../../node_modules/framer-motion/dist/es/value/types/color/hex.mjs", "../../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs", "../../node_modules/framer-motion/dist/es/value/types/color/index.mjs", "../../node_modules/framer-motion/dist/es/value/types/complex/index.mjs", "../../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs", "../../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs", "../../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs", "../../node_modules/framer-motion/dist/es/utils/memo.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs", "../../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs", "../../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs", "../../node_modules/framer-motion/dist/es/easing/ease.mjs", "../../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs", "../../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs", "../../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs", "../../node_modules/framer-motion/dist/es/easing/circ.mjs", "../../node_modules/framer-motion/dist/es/easing/back.mjs", "../../node_modules/framer-motion/dist/es/easing/anticipate.mjs", "../../node_modules/framer-motion/dist/es/easing/utils/map.mjs", "../../node_modules/framer-motion/dist/es/utils/progress.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/number.mjs", "../../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/color.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/complex.mjs", "../../node_modules/framer-motion/dist/es/utils/mix/index.mjs", "../../node_modules/framer-motion/dist/es/utils/interpolate.mjs", "../../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs", "../../node_modules/framer-motion/dist/es/utils/offsets/default.mjs", "../../node_modules/framer-motion/dist/es/utils/offsets/time.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs", "../../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs", "../../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs", "../../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs", "../../node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs", "../../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs", "../../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs", "../../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs", "../../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs", "../../node_modules/framer-motion/dist/es/utils/array.mjs", "../../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs", "../../node_modules/framer-motion/dist/es/utils/warn-once.mjs", "../../node_modules/framer-motion/dist/es/value/index.mjs", "../../node_modules/framer-motion/dist/es/render/utils/setters.mjs", "../../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs", "../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs", "../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs", "../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs", "../../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs", "../../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs", "../../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs", "../../node_modules/framer-motion/dist/es/motion/features/animations.mjs", "../../node_modules/framer-motion/dist/es/utils/distance.mjs", "../../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs", "../../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/models.mjs", "../../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs", "../../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs", "../../node_modules/framer-motion/dist/es/projection/utils/measure.mjs", "../../node_modules/framer-motion/dist/es/utils/get-context-window.mjs", "../../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs", "../../node_modules/framer-motion/dist/es/gestures/drag/index.mjs", "../../node_modules/framer-motion/dist/es/gestures/pan/index.mjs", "../../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs", "../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs", "../../node_modules/framer-motion/dist/es/projection/node/state.mjs", "../../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs", "../../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs", "../../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs", "../../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs", "../../node_modules/framer-motion/dist/es/projection/shared/stack.mjs", "../../node_modules/framer-motion/dist/es/projection/styles/transform.mjs", "../../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs", "../../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs", "../../node_modules/framer-motion/dist/es/utils/delay.mjs", "../../node_modules/framer-motion/dist/es/debug/record.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs", "../../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs", "../../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs", "../../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs", "../../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs", "../../node_modules/framer-motion/dist/es/motion/features/drag.mjs", "../../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs", "../../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs", "../../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs", "../../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs", "../../node_modules/framer-motion/dist/es/render/store.mjs", "../../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs", "../../node_modules/framer-motion/dist/es/render/VisualElement.mjs", "../../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs", "../../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs", "../../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs", "../../node_modules/framer-motion/dist/es/motion/features/layout.mjs", "../../node_modules/framer-motion/dist/es/render/dom/motion.mjs", "../../node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs", "../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs", "../../node_modules/framer-motion/dist/es/utils/use-force-update.mjs", "../../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs", "../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs", "../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs", "../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs", "../../node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs", "../../node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs", "../../node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs", "../../node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs", "../../node_modules/framer-motion/dist/es/components/Reorder/Group.mjs", "../../node_modules/framer-motion/dist/es/context/ReorderContext.mjs", "../../node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs", "../../node_modules/framer-motion/dist/es/components/Reorder/Item.mjs", "../../node_modules/framer-motion/dist/es/value/use-motion-value.mjs", "../../node_modules/framer-motion/dist/es/utils/transform.mjs", "../../node_modules/framer-motion/dist/es/value/use-combine-values.mjs", "../../node_modules/framer-motion/dist/es/value/use-computed.mjs", "../../node_modules/framer-motion/dist/es/value/use-transform.mjs", "../../node_modules/framer-motion/dist/es/render/dom/features-animation.mjs", "../../node_modules/framer-motion/dist/es/render/dom/features-max.mjs", "../../node_modules/framer-motion/dist/es/value/use-spring.mjs", "../../node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs", "../../node_modules/framer-motion/dist/es/value/use-scroll.mjs", "../../node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs", "../../node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs", "../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs", "../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs", "../../node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs", "../../node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs", "../../node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs", "../../node_modules/framer-motion/dist/es/utils/wrap.mjs", "../../node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs", "../../node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs", "../../node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs", "../../node_modules/framer-motion/dist/es/animation/sequence/create.mjs", "../../node_modules/framer-motion/dist/es/animation/animate.mjs", "../../node_modules/framer-motion/dist/es/utils/use-cycle.mjs", "../../node_modules/framer-motion/dist/es/utils/use-in-view.mjs", "../../node_modules/framer-motion/dist/es/events/use-dom-event.mjs", "../../node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs", "../../node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs", "../../node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs", "../../node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs", "../../node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs", "../../node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs", "../../node_modules/@chakra-ui/toast/src/toast.component.tsx", "../../node_modules/@chakra-ui/toast/src/toast.placement.ts", "../../node_modules/@chakra-ui/icon/src/icon.tsx", "../../node_modules/@chakra-ui/icon/src/create-icon.tsx", "../../node_modules/@chakra-ui/alert/src/icons.tsx", "../../node_modules/@chakra-ui/spinner/src/spinner.tsx", "../../node_modules/@chakra-ui/alert/src/alert-context.ts", "../../node_modules/@chakra-ui/alert/src/alert-description.tsx", "../../node_modules/@chakra-ui/alert/src/alert-icon.tsx", "../../node_modules/@chakra-ui/alert/src/alert-title.tsx", "../../node_modules/@chakra-ui/alert/src/alert.tsx", "../../node_modules/@chakra-ui/close-button/src/close-button.tsx", "../../node_modules/@chakra-ui/toast/src/toast.tsx", "../../node_modules/@chakra-ui/toast/src/toast.store.ts", "../../node_modules/@chakra-ui/toast/src/toast.provider.tsx", "../../node_modules/@chakra-ui/toast/src/use-toast.tsx", "../../node_modules/@chakra-ui/toast/src/create-standalone-toast.tsx", "../../node_modules/@chakra-ui/react/src/chakra-provider.tsx", "../../node_modules/@chakra-ui/descendant/src/utils.ts", "../../node_modules/@chakra-ui/descendant/src/descendant.ts", "../../node_modules/@chakra-ui/react-use-merge-refs/src/index.ts", "../../node_modules/@chakra-ui/descendant/src/use-descendant.ts", "../../node_modules/@chakra-ui/accordion/src/accordion-context.ts", "../../node_modules/@chakra-ui/accordion/src/accordion-button.tsx", "../../node_modules/@chakra-ui/react-use-controllable-state/src/index.ts", "../../node_modules/@chakra-ui/accordion/src/use-accordion.ts", "../../node_modules/@chakra-ui/accordion/src/accordion-icon.tsx", "../../node_modules/@chakra-ui/accordion/src/accordion-item.tsx", "../../node_modules/@chakra-ui/transition/src/transition-utils.ts", "../../node_modules/@chakra-ui/transition/src/collapse.tsx", "../../node_modules/@chakra-ui/transition/src/fade.tsx", "../../node_modules/@chakra-ui/transition/src/scale-fade.tsx", "../../node_modules/@chakra-ui/transition/src/slide-fade.tsx", "../../node_modules/@chakra-ui/transition/src/slide.tsx", "../../node_modules/@chakra-ui/accordion/src/accordion-panel.tsx", "../../node_modules/@chakra-ui/accordion/src/accordion.tsx", "../../node_modules/@chakra-ui/accordion/src/use-accordion-item-state.ts", "../../node_modules/@chakra-ui/avatar/src/avatar-context.tsx", "../../node_modules/@chakra-ui/avatar/src/avatar-badge.tsx", "../../node_modules/@chakra-ui/avatar/src/avatar-name.tsx", "../../node_modules/@chakra-ui/avatar/src/generic-avatar-icon.tsx", "../../node_modules/@chakra-ui/image/src/native-image.tsx", "../../node_modules/@chakra-ui/image/src/use-image.ts", "../../node_modules/@chakra-ui/image/src/image.tsx", "../../node_modules/utilities/object-utils/src/omit.ts", "../../node_modules/@chakra-ui/image/src/img.tsx", "../../node_modules/@chakra-ui/avatar/src/avatar-image.tsx", "../../node_modules/@chakra-ui/avatar/src/avatar.tsx", "../../node_modules/@chakra-ui/react-children-utils/dist/index.mjs", "../../node_modules/@chakra-ui/avatar/src/avatar-group.tsx", "../../node_modules/utilities/object-utils/src/compact.ts", "../../node_modules/@chakra-ui/breadcrumb/src/breadcrumb-context.ts", "../../node_modules/@chakra-ui/breadcrumb/src/breadcrumb-link.tsx", "../../node_modules/@chakra-ui/breadcrumb/src/breadcrumb-separator.tsx", "../../node_modules/@chakra-ui/breadcrumb/src/breadcrumb-item.tsx", "../../node_modules/@chakra-ui/breadcrumb/src/breadcrumb.tsx", "../../node_modules/@chakra-ui/button/src/button-context.ts", "../../node_modules/@chakra-ui/button/src/button-group.tsx", "../../node_modules/@chakra-ui/button/src/use-button-type.tsx", "../../node_modules/@chakra-ui/button/src/button-icon.tsx", "../../node_modules/@chakra-ui/button/src/button-spinner.tsx", "../../node_modules/@chakra-ui/button/src/button.tsx", "../../node_modules/@chakra-ui/button/src/icon-button.tsx", "../../node_modules/@chakra-ui/card/src/card-context.tsx", "../../node_modules/@chakra-ui/card/src/card-body.tsx", "../../node_modules/@chakra-ui/card/src/card-footer.tsx", "../../node_modules/@chakra-ui/card/src/card-header.tsx", "../../node_modules/@chakra-ui/card/src/card.tsx", "../../node_modules/@chakra-ui/checkbox/src/checkbox-context.ts", "../../node_modules/@chakra-ui/checkbox/src/use-checkbox-group.ts", "../../node_modules/@chakra-ui/checkbox/src/checkbox-group.tsx", "../../node_modules/@chakra-ui/checkbox/src/use-initial-animation-state.tsx", "../../node_modules/@chakra-ui/checkbox/src/checkbox-icon.tsx", "../../node_modules/@chakra-ui/form-control/src/form-control.tsx", "../../node_modules/@chakra-ui/form-control/src/form-error.tsx", "../../node_modules/@chakra-ui/form-control/src/form-label.tsx", "../../node_modules/@chakra-ui/form-control/src/use-form-control.ts", "../../node_modules/@chakra-ui/visually-hidden/src/visually-hidden.style.ts", "../../node_modules/@chakra-ui/visually-hidden/src/visually-hidden.tsx", "../../node_modules/@zag-js/dom-query/src/attrs.ts", "../../node_modules/@zag-js/dom-query/src/is-html-element.ts", "../../node_modules/@zag-js/dom-query/src/contains.ts", "../../node_modules/@zag-js/dom-query/src/create-scope.ts", "../../node_modules/@zag-js/dom-query/src/env.ts", "../../node_modules/@zag-js/dom-query/src/get-active-element.ts", "../../node_modules/@zag-js/dom-query/src/get-by-id.ts", "../../node_modules/@zag-js/dom-query/src/get-by-text.ts", "../../node_modules/@zag-js/dom-query/src/get-by-typeahead.ts", "../../node_modules/@zag-js/dom-query/src/get-computed-style.ts", "../../node_modules/@zag-js/dom-query/src/get-event-target.ts", "../../node_modules/@zag-js/dom-query/src/get-scroll-parent.ts", "../../node_modules/@zag-js/dom-query/src/is-editable-element.ts", "../../node_modules/@zag-js/dom-query/src/platform.ts", "../../node_modules/@zag-js/dom-query/src/query.ts", "../../node_modules/@zag-js/dom-query/src/raf.ts", "../../node_modules/@zag-js/dom-query/src/index.ts", "../../node_modules/@zag-js/focus-visible/src/index.ts", "../../node_modules/@chakra-ui/checkbox/src/use-checkbox.ts", "../../node_modules/utilities/object-utils/src/omit.ts", "../../node_modules/@chakra-ui/checkbox/src/checkbox.tsx", "../../node_modules/@chakra-ui/control-box/src/control-box.tsx", "../../node_modules/@chakra-ui/number-utils/dist/index.mjs", "../../node_modules/@chakra-ui/counter/src/use-counter.ts", "../../node_modules/@chakra-ui/editable/src/editable-context.ts", "../../node_modules/@chakra-ui/editable/src/use-editable-state.tsx", "../../node_modules/@chakra-ui/editable/src/shared.ts", "../../node_modules/@chakra-ui/editable/src/editable-input.tsx", "../../node_modules/@chakra-ui/editable/src/editable-preview.tsx", "../../node_modules/@chakra-ui/editable/src/editable-textarea.tsx", "../../node_modules/@chakra-ui/react-use-event-listener/src/index.ts", "../../node_modules/@chakra-ui/react-use-focus-on-pointer-down/src/index.ts", "../../node_modules/@chakra-ui/editable/src/use-editable.ts", "../../node_modules/@chakra-ui/editable/src/editable.tsx", "../../node_modules/@chakra-ui/editable/src/use-editable-controls.tsx", "../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js", "../../node_modules/react-focus-lock/dist/es2015/Combination.js", "../../node_modules/react-focus-lock/dist/es2015/Lock.js", "../../node_modules/focus-lock/dist/es2015/constants.js", "../../node_modules/use-callback-ref/dist/es2015/assignRef.js", "../../node_modules/use-callback-ref/dist/es2015/useRef.js", "../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js", "../../node_modules/react-focus-lock/dist/es2015/FocusGuard.js", "../../node_modules/tslib/tslib.es6.mjs", "../../node_modules/use-sidecar/dist/es2015/hoc.js", "../../node_modules/use-sidecar/dist/es2015/hook.js", "../../node_modules/use-sidecar/dist/es2015/medium.js", "../../node_modules/use-sidecar/dist/es2015/renderProp.js", "../../node_modules/use-sidecar/dist/es2015/exports.js", "../../node_modules/react-focus-lock/dist/es2015/medium.js", "../../node_modules/react-focus-lock/dist/es2015/scope.js", "../../node_modules/react-focus-lock/dist/es2015/Trap.js", "../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js", "../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js", "../../node_modules/@babel/runtime/helpers/esm/typeof.js", "../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js", "../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", "../../node_modules/@babel/runtime/helpers/esm/defineProperty.js", "../../node_modules/react-clientside-effect/lib/index.es.js", "../../node_modules/focus-lock/dist/es2015/utils/array.js", "../../node_modules/focus-lock/dist/es2015/utils/is.js", "../../node_modules/focus-lock/dist/es2015/utils/tabOrder.js", "../../node_modules/focus-lock/dist/es2015/utils/tabbables.js", "../../node_modules/focus-lock/dist/es2015/utils/tabUtils.js", "../../node_modules/focus-lock/dist/es2015/utils/DOMutils.js", "../../node_modules/focus-lock/dist/es2015/utils/all-affected.js", "../../node_modules/focus-lock/dist/es2015/utils/safe.js", "../../node_modules/focus-lock/dist/es2015/utils/getActiveElement.js", "../../node_modules/focus-lock/dist/es2015/focusInside.js", "../../node_modules/focus-lock/dist/es2015/focusIsHidden.js", "../../node_modules/focus-lock/dist/es2015/utils/correctFocus.js", "../../node_modules/focus-lock/dist/es2015/utils/firstFocus.js", "../../node_modules/focus-lock/dist/es2015/solver.js", "../../node_modules/focus-lock/dist/es2015/utils/auto-focus.js", "../../node_modules/focus-lock/dist/es2015/utils/parenting.js", "../../node_modules/focus-lock/dist/es2015/focusSolver.js", "../../node_modules/focus-lock/dist/es2015/focusables.js", "../../node_modules/focus-lock/dist/es2015/commands.js", "../../node_modules/focus-lock/dist/es2015/moveFocusInside.js", "../../node_modules/focus-lock/dist/es2015/return-focus.js", "../../node_modules/focus-lock/dist/es2015/sibling.js", "../../node_modules/react-focus-lock/dist/es2015/util.js", "../../node_modules/react-focus-lock/dist/es2015/AutoFocusInside.js", "../../node_modules/react-focus-lock/dist/es2015/MoveFocusInside.js", "../../node_modules/react-focus-lock/dist/es2015/FreeFocusInside.js", "../../node_modules/react-focus-lock/dist/es2015/use-focus-scope.js", "../../node_modules/react-focus-lock/dist/es2015/use-focus-state.js", "../../node_modules/react-focus-lock/dist/es2015/nano-events.js", "../../node_modules/react-focus-lock/dist/es2015/index.js", "../../node_modules/@chakra-ui/dom-utils/dist/chunk-3XANSPY5.mjs", "../../node_modules/@chakra-ui/dom-utils/dist/chunk-4WEUWBTD.mjs", "../../node_modules/@chakra-ui/dom-utils/dist/chunk-ROURZMX4.mjs", "../../node_modules/@chakra-ui/dom-utils/dist/index.mjs", "../../node_modules/@chakra-ui/focus-lock/src/focus-lock.tsx", "../../node_modules/@chakra-ui/hooks/src/use-previous.ts", "../../node_modules/@chakra-ui/hooks/src/use-shortcut.ts", "../../node_modules/@chakra-ui/hooks/src/use-safe-layout-effect.ts", "../../node_modules/@chakra-ui/hooks/src/use-callback-ref.ts", "../../node_modules/@chakra-ui/hooks/src/use-timeout.ts", "../../node_modules/@chakra-ui/hooks/src/use-why-update.ts", "../../node_modules/@chakra-ui/hooks/src/use-interval.ts", "../../node_modules/@chakra-ui/hooks/src/use-latest-ref.ts", "../../node_modules/@chakra-ui/hooks/src/use-merge-refs.ts", "../../node_modules/@chakra-ui/hooks/src/use-event-listener.ts", "../../node_modules/@chakra-ui/hooks/src/use-mouse-down-ref.ts", "../../node_modules/@chakra-ui/hooks/src/use-outside-click.ts", "../../node_modules/@chakra-ui/hooks/src/use-pointer-event.ts", "../../node_modules/@chakra-ui/hooks/src/use-unmount-effect.ts", "../../node_modules/@chakra-ui/hooks/src/use-pan-gesture.ts", "../../node_modules/@chakra-ui/hooks/src/use-id.ts", "../../node_modules/@chakra-ui/hooks/src/use-controllable.ts", "../../node_modules/@chakra-ui/hooks/src/use-disclosure.ts", "../../node_modules/@chakra-ui/hooks/src/use-event-listener-map.ts", "../../node_modules/@chakra-ui/hooks/src/use-update-effect.ts", "../../node_modules/@chakra-ui/hooks/src/use-focus-effect.ts", "../../node_modules/@chakra-ui/hooks/src/use-focus-on-hide.ts", "../../node_modules/@chakra-ui/hooks/src/use-focus-on-pointerdown.ts", "../../node_modules/@chakra-ui/hooks/src/use-focus-on-show.ts", "../../node_modules/@chakra-ui/hooks/src/use-force-update.ts", "../../node_modules/@chakra-ui/hooks/src/use-animation-state.ts", "../../node_modules/@chakra-ui/hooks/src/use-boolean.ts", "../../node_modules/@chakra-ui/hooks/src/use-clipboard.ts", "../../node_modules/@chakra-ui/hooks/src/use-const.ts", "../../node_modules/@chakra-ui/hooks/src/use-dimensions.ts", "../../node_modules/@chakra-ui/input/src/input-group.tsx", "../../node_modules/@chakra-ui/input/src/input-addon.tsx", "../../node_modules/@chakra-ui/input/src/input-element.tsx", "../../node_modules/@chakra-ui/input/src/input.tsx", "../../node_modules/@chakra-ui/layout/src/link.tsx", "../../node_modules/@chakra-ui/layout/src/list.tsx", "../../node_modules/@chakra-ui/layout/src/grid.tsx", "../../node_modules/@chakra-ui/breakpoint-utils/dist/chunk-G72KV6MB.mjs", "../../node_modules/@chakra-ui/layout/src/simple-grid.tsx", "../../node_modules/@chakra-ui/layout/src/spacer.tsx", "../../node_modules/@chakra-ui/layout/src/text.tsx", "../../node_modules/@chakra-ui/layout/src/wrap.tsx", "../../node_modules/@chakra-ui/layout/src/stack/stack-divider.tsx", "../../node_modules/@chakra-ui/layout/src/stack/stack-item.tsx", "../../node_modules/@chakra-ui/layout/src/stack/stack.utils.tsx", "../../node_modules/@chakra-ui/layout/src/stack/stack.tsx", "../../node_modules/@chakra-ui/layout/src/stack/v-stack.tsx", "../../node_modules/@chakra-ui/layout/src/stack/h-stack.tsx", "../../node_modules/@chakra-ui/layout/src/grid-item.tsx", "../../node_modules/@chakra-ui/layout/src/heading.tsx", "../../node_modules/@chakra-ui/layout/src/box.tsx", "../../node_modules/@chakra-ui/layout/src/highlight.tsx", "../../node_modules/@chakra-ui/layout/src/indicator.tsx", "../../node_modules/@chakra-ui/layout/src/kbd.tsx", "../../node_modules/@chakra-ui/layout/src/link-box.tsx", "../../node_modules/@chakra-ui/layout/src/aspect-ratio.tsx", "../../node_modules/@chakra-ui/layout/src/badge.tsx", "../../node_modules/@chakra-ui/layout/src/center.tsx", "../../node_modules/@chakra-ui/layout/src/code.tsx", "../../node_modules/@chakra-ui/layout/src/container.tsx", "../../node_modules/@chakra-ui/layout/src/divider.tsx", "../../node_modules/@chakra-ui/layout/src/flex.tsx", "../../node_modules/@chakra-ui/media-query/src/use-media-query.ts", "../../node_modules/@chakra-ui/media-query/src/visibility.tsx", "../../node_modules/@chakra-ui/media-query/src/media-query.tsx", "../../node_modules/@chakra-ui/media-query/src/hide.tsx", "../../node_modules/@chakra-ui/media-query/src/media-query.hook.ts", "../../node_modules/@chakra-ui/media-query/src/show.tsx", "../../node_modules/@chakra-ui/media-query/src/media-query.utils.ts", "../../node_modules/@chakra-ui/media-query/src/use-breakpoint.ts", "../../node_modules/@chakra-ui/media-query/src/use-breakpoint-value.ts", "../../node_modules/@chakra-ui/menu/src/use-shortcut.ts", "../../node_modules/@chakra-ui/menu/src/get-next-item-from-search.ts", "../../node_modules/@chakra-ui/clickable/src/use-event-listeners.ts", "../../node_modules/@chakra-ui/clickable/src/use-clickable.ts", "../../node_modules/@chakra-ui/react-use-focus-effect/src/index.ts", "../../node_modules/@chakra-ui/popper/src/utils.ts", "../../node_modules/@chakra-ui/popper/src/modifiers.ts", "../../node_modules/@chakra-ui/popper/src/popper.placement.ts", "../../node_modules/@chakra-ui/popper/src/use-popper.ts", "../../node_modules/@chakra-ui/react-use-disclosure/src/index.ts", "../../node_modules/@chakra-ui/react-use-outside-click/src/index.ts", "../../node_modules/@chakra-ui/react-use-animation-state/src/index.ts", "../../node_modules/@chakra-ui/lazy-utils/dist/index.mjs", "../../node_modules/@chakra-ui/menu/src/use-menu.ts", "../../node_modules/@chakra-ui/menu/src/menu.tsx", "../../node_modules/@chakra-ui/menu/src/menu-command.tsx", "../../node_modules/@chakra-ui/menu/src/styled-menu-item.tsx", "../../node_modules/@chakra-ui/menu/src/menu-icon.tsx", "../../node_modules/@chakra-ui/menu/src/menu-item.tsx", "../../node_modules/@chakra-ui/menu/src/menu-list.tsx", "../../node_modules/@chakra-ui/menu/src/menu-group.tsx", "../../node_modules/@chakra-ui/menu/src/menu-option-group.tsx", "../../node_modules/@chakra-ui/menu/src/menu-button.tsx", "../../node_modules/@chakra-ui/menu/src/menu-divider.tsx", "../../node_modules/@chakra-ui/menu/src/menu-item-option.tsx", "../../node_modules/@chakra-ui/modal/src/modal-transition.tsx", "../../node_modules/@chakra-ui/modal/dist/chunk-5WQ4PXEV.mjs", "../../node_modules/@chakra-ui/modal/src/modal-manager.ts", "../../node_modules/aria-hidden/dist/es2015/index.js", "../../node_modules/@chakra-ui/modal/src/use-modal.ts", "../../node_modules/@chakra-ui/modal/src/modal.tsx", "../../node_modules/@chakra-ui/modal/src/modal-focus.tsx", "../../node_modules/react-remove-scroll/dist/es2015/Combination.js", "../../node_modules/react-remove-scroll/dist/es2015/UI.js", "../../node_modules/react-remove-scroll-bar/dist/es2015/constants.js", "../../node_modules/react-remove-scroll/dist/es2015/medium.js", "../../node_modules/react-remove-scroll/dist/es2015/SideEffect.js", "../../node_modules/react-remove-scroll-bar/dist/es2015/component.js", "../../node_modules/react-style-singleton/dist/es2015/hook.js", "../../node_modules/get-nonce/dist/es2015/index.js", "../../node_modules/react-style-singleton/dist/es2015/singleton.js", "../../node_modules/react-style-singleton/dist/es2015/component.js", "../../node_modules/react-remove-scroll-bar/dist/es2015/utils.js", "../../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js", "../../node_modules/react-remove-scroll/dist/es2015/handleScroll.js", "../../node_modules/react-remove-scroll/dist/es2015/sidecar.js", "../../node_modules/@chakra-ui/modal/src/modal-content.tsx", "../../node_modules/@chakra-ui/modal/src/alert-dialog.tsx", "../../node_modules/@chakra-ui/modal/src/drawer.tsx", "../../node_modules/@chakra-ui/modal/src/drawer-content.tsx", "../../node_modules/@chakra-ui/modal/src/modal-footer.tsx", "../../node_modules/@chakra-ui/modal/src/modal-header.tsx", "../../node_modules/@chakra-ui/modal/src/modal-overlay.tsx", "../../node_modules/@chakra-ui/modal/src/modal-body.tsx", "../../node_modules/@chakra-ui/modal/src/modal-close-button.tsx", "../../node_modules/@chakra-ui/number-input/src/icons.tsx", "../../node_modules/@chakra-ui/number-input/src/use-attr-observer.ts", "../../node_modules/@chakra-ui/react-use-interval/src/index.ts", "../../node_modules/@chakra-ui/number-input/src/use-spinner.ts", "../../node_modules/@chakra-ui/number-input/src/use-number-input.ts", "../../node_modules/@chakra-ui/number-input/src/number-input.tsx", "../../node_modules/@chakra-ui/pin-input/src/use-pin-input.ts", "../../node_modules/@chakra-ui/pin-input/src/pin-input.tsx", "../../node_modules/@chakra-ui/popover/src/popover-context.ts", "../../node_modules/@chakra-ui/popover/src/popover-header.tsx", "../../node_modules/@chakra-ui/popover/src/popover-trigger.tsx", "../../node_modules/@chakra-ui/popover/src/use-popover.ts", "../../node_modules/@chakra-ui/popover/src/popover.tsx", "../../node_modules/@chakra-ui/popover/src/popover-anchor.tsx", "../../node_modules/@chakra-ui/popover/src/popover-arrow.tsx", "../../node_modules/@chakra-ui/popover/src/popover-body.tsx", "../../node_modules/@chakra-ui/popover/src/popover-close-button.tsx", "../../node_modules/@chakra-ui/popover/src/popover-transition.tsx", "../../node_modules/@chakra-ui/popover/src/popover-content.tsx", "../../node_modules/@chakra-ui/popover/src/popover-footer.tsx", "../../node_modules/@chakra-ui/progress/src/circular-progress-label.tsx", "../../node_modules/@chakra-ui/progress/src/circle.tsx", "../../node_modules/@chakra-ui/progress/src/progress.utils.tsx", "../../node_modules/@chakra-ui/progress/src/shape.tsx", "../../node_modules/@chakra-ui/progress/src/circular-progress.tsx", "../../node_modules/@chakra-ui/progress/src/progress.tsx", "../../node_modules/@chakra-ui/progress/src/progress-label.tsx", "../../node_modules/@chakra-ui/radio/src/use-radio-group.ts", "../../node_modules/@chakra-ui/radio/src/radio-group.tsx", "../../node_modules/@chakra-ui/radio/src/use-radio.ts", "../../node_modules/@chakra-ui/visually-hidden/src/visually-hidden.style.ts", "../../node_modules/@chakra-ui/radio/src/radio.tsx", "../../node_modules/utilities/object-utils/src/split.ts", "../../node_modules/@chakra-ui/select/src/select-field.tsx", "../../node_modules/@chakra-ui/select/src/select.tsx", "../../node_modules/utilities/object-utils/src/split.ts", "../../node_modules/@chakra-ui/skeleton/src/use-is-first-render.ts", "../../node_modules/@chakra-ui/react-use-previous/src/index.ts", "../../node_modules/@chakra-ui/skeleton/src/skeleton.tsx", "../../node_modules/@chakra-ui/skeleton/src/skeleton-circle.tsx", "../../node_modules/@chakra-ui/skeleton/src/skeleton-text.tsx", "../../node_modules/@chakra-ui/skip-nav/src/skip-nav.tsx", "../../node_modules/legacy/utils/src/dom.ts", "../../node_modules/legacy/utils/src/function.ts", "../../node_modules/@chakra-ui/slider/src/slider-utils.ts", "../../node_modules/@chakra-ui/event-utils/dist/chunk-6K7SS4J6.mjs", "../../node_modules/@chakra-ui/event-utils/dist/chunk-B7KYFEHM.mjs", "../../node_modules/@chakra-ui/event-utils/dist/chunk-6FBKF3LK.mjs", "../../node_modules/@chakra-ui/event-utils/dist/chunk-KDLSVIYE.mjs", "../../node_modules/@chakra-ui/react-use-pan-event/src/pan-event.ts", "../../node_modules/@chakra-ui/react-use-latest-ref/src/index.ts", "../../node_modules/@chakra-ui/react-use-pan-event/src/use-pan-event.ts", "../../node_modules/@chakra-ui/slider/src/use-range-slider.ts", "../../node_modules/@zag-js/element-size/dist/track-size.mjs", "../../node_modules/@chakra-ui/react-use-size/src/index.ts", "../../node_modules/@chakra-ui/slider/src/range-slider.tsx", "../../node_modules/@chakra-ui/slider/src/use-slider.ts", "../../node_modules/@chakra-ui/slider/src/slider.tsx", "../../node_modules/@chakra-ui/stat/src/stat.tsx", "../../node_modules/@chakra-ui/stat/src/stat-arrow.tsx", "../../node_modules/@chakra-ui/stat/src/stat-group.tsx", "../../node_modules/@chakra-ui/stat/src/stat-help-text.tsx", "../../node_modules/@chakra-ui/stat/src/stat-label.tsx", "../../node_modules/@chakra-ui/stat/src/stat-number.tsx", "../../node_modules/@chakra-ui/stepper/src/step-context.tsx", "../../node_modules/@chakra-ui/stepper/src/step-title.tsx", "../../node_modules/@chakra-ui/stepper/src/step.tsx", "../../node_modules/@chakra-ui/stepper/src/stepper.tsx", "../../node_modules/@chakra-ui/stepper/src/use-steps.ts", "../../node_modules/@chakra-ui/stepper/src/step-description.tsx", "../../node_modules/@chakra-ui/stepper/src/step-status.tsx", "../../node_modules/@chakra-ui/stepper/src/icons.tsx", "../../node_modules/@chakra-ui/stepper/src/step-icon.tsx", "../../node_modules/@chakra-ui/stepper/src/step-number.tsx", "../../node_modules/@chakra-ui/stepper/src/step-indicator.tsx", "../../node_modules/@chakra-ui/stepper/src/step-separator.tsx", "../../node_modules/@chakra-ui/switch/src/switch.tsx", "../../node_modules/@chakra-ui/table/src/table.tsx", "../../node_modules/@chakra-ui/table/src/thead.tsx", "../../node_modules/@chakra-ui/table/src/tr.tsx", "../../node_modules/@chakra-ui/table/src/table-caption.tsx", "../../node_modules/@chakra-ui/table/src/table-container.tsx", "../../node_modules/@chakra-ui/table/src/tbody.tsx", "../../node_modules/@chakra-ui/table/src/td.tsx", "../../node_modules/@chakra-ui/table/src/tfooter.tsx", "../../node_modules/@chakra-ui/table/src/th.tsx", "../../node_modules/@chakra-ui/tabs/src/use-tabs.ts", "../../node_modules/@chakra-ui/tabs/src/tabs.tsx", "../../node_modules/@chakra-ui/tabs/src/tab-indicator.tsx", "../../node_modules/@chakra-ui/tabs/src/tab-list.tsx", "../../node_modules/@chakra-ui/tabs/src/tab-panel.tsx", "../../node_modules/@chakra-ui/tabs/src/tab-panels.tsx", "../../node_modules/@chakra-ui/tabs/src/tab.tsx", "../../node_modules/@chakra-ui/tag/src/tag.tsx", "../../node_modules/@chakra-ui/textarea/src/textarea.tsx", "../../node_modules/utilities/object-utils/src/omit.ts", "../../node_modules/@chakra-ui/tooltip/src/tooltip.transition.tsx", "../../node_modules/@chakra-ui/tooltip/src/use-tooltip.ts", "../../node_modules/@chakra-ui/tooltip/src/tooltip.tsx", "../../node_modules/utilities/object-utils/src/omit.ts", "../../node_modules/utilities/object-utils/src/pick.ts"], + "sourcesContent": ["function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n", "/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n", "'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n", "/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('')) {\n _frame = _frame.replace('', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie.
\n // or
). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n //
, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\n", "/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n", "import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n", "/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n", "module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n", "\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n", "import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwn = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n", "/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n", "export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n", "/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n", "import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n", "import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n", "import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n", "import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n", "var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport { weakMemoize as default };\n", "import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n", "function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };", "import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport { hoistNonReactStatics as default };\n", "var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n", "/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n", "var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n", "import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n", "import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n", "import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-43c6fea0.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-43c6fea0.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.4\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.3\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.2\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n", "import { Global } from \"@emotion/react\"\n\nconst css = String.raw\n\nconst vhPolyfill = css`\n :root,\n :host {\n --chakra-vh: 100vh;\n }\n\n @supports (height: -webkit-fill-available) {\n :root,\n :host {\n --chakra-vh: -webkit-fill-available;\n }\n }\n\n @supports (height: -moz-fill-available) {\n :root,\n :host {\n --chakra-vh: -moz-fill-available;\n }\n }\n\n @supports (height: 100dvh) {\n :root,\n :host {\n --chakra-vh: 100dvh;\n }\n }\n`\n\nexport const CSSPolyfill = () => \n\nexport type CSSResetProps = {\n /**\n * The selector to scope the css reset styles to.\n */\n scope?: string\n}\n\nexport const CSSReset = ({ scope = \"\" }: CSSResetProps) => (\n \n)\n\nexport default CSSReset\n", "import {\n createContext as createReactContext,\n useContext as useReactContext,\n} from \"react\"\n\nexport interface CreateContextOptions {\n strict?: boolean\n hookName?: string\n providerName?: string\n errorMessage?: string\n name?: string\n defaultValue?: T\n}\n\nexport type CreateContextReturn = [\n React.Provider,\n () => T,\n React.Context,\n]\n\nfunction getErrorMessage(hook: string, provider: string) {\n return `${hook} returned \\`undefined\\`. Seems you forgot to wrap component within ${provider}`\n}\n\nexport function createContext(options: CreateContextOptions = {}) {\n const {\n name,\n strict = true,\n hookName = \"useContext\",\n providerName = \"Provider\",\n errorMessage,\n defaultValue,\n } = options\n\n const Context = createReactContext(defaultValue)\n\n Context.displayName = name\n\n function useContext() {\n const context = useReactContext(Context)\n\n if (!context && strict) {\n const error = new Error(\n errorMessage ?? getErrorMessage(hookName, providerName),\n )\n error.name = \"ContextError\"\n Error.captureStackTrace?.(error, useContext)\n throw error\n }\n\n return context\n }\n\n return [Context.Provider, useContext, Context] as CreateContextReturn\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\n\ninterface PortalManagerContext {\n zIndex?: number\n}\n\nconst [PortalManagerContextProvider, usePortalManager] =\n createContext({\n strict: false,\n name: \"PortalManagerContext\",\n })\n\nexport { usePortalManager }\n\nexport interface PortalManagerProps {\n children?: React.ReactNode\n /**\n * [Z-Index war] If your has multiple elements\n * with z-index clashing, you might need to apply a z-index to the Portal manager\n */\n zIndex?: number\n}\n\nexport function PortalManager(props: PortalManagerProps) {\n const { children, zIndex } = props\n return (\n \n {children}\n \n )\n}\n\nPortalManager.displayName = \"PortalManager\"\n", "import { useEffect, useLayoutEffect } from \"react\"\n\nexport const useSafeLayoutEffect = Boolean(globalThis?.document)\n ? useLayoutEffect\n : useEffect\n", "import { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport { createPortal } from \"react-dom\"\nimport { usePortalManager } from \"./portal-manager\"\nimport { useEffect, useMemo, useRef, useState } from \"react\"\n\ntype PortalContext = HTMLDivElement | null\n\nconst [PortalContextProvider, usePortalContext] = createContext({\n strict: false,\n name: \"PortalContext\",\n})\n\nconst PORTAL_CLASSNAME = \"chakra-portal\"\nconst PORTAL_SELECTOR = `.chakra-portal`\n\nconst Container = (props: React.PropsWithChildren<{ zIndex: number }>) => (\n \n {props.children}\n
\n)\n\n/**\n * Portal that uses `document.body` as container\n */\nconst DefaultPortal = (\n props: React.PropsWithChildren<{ appendToParentPortal?: boolean }>,\n) => {\n const { appendToParentPortal, children } = props\n\n const [tempNode, setTempNode] = useState(null)\n const portal = useRef(null)\n\n const [, forceUpdate] = useState({})\n useEffect(() => forceUpdate({}), [])\n\n const parentPortal = usePortalContext()\n const manager = usePortalManager()\n\n useSafeLayoutEffect(() => {\n if (!tempNode) return\n\n const doc = tempNode.ownerDocument\n const host = appendToParentPortal ? parentPortal ?? doc.body : doc.body\n\n if (!host) return\n\n portal.current = doc.createElement(\"div\")\n portal.current.className = PORTAL_CLASSNAME\n\n host.appendChild(portal.current)\n forceUpdate({})\n\n const portalNode = portal.current\n return () => {\n if (host.contains(portalNode)) {\n host.removeChild(portalNode)\n }\n }\n }, [tempNode])\n\n const _children = manager?.zIndex ? (\n {children}\n ) : (\n children\n )\n\n return portal.current ? (\n createPortal(\n \n {_children}\n ,\n portal.current,\n )\n ) : (\n {\n if (el) setTempNode(el)\n }}\n />\n )\n}\n\ninterface ContainerPortalProps extends React.PropsWithChildren<{}> {\n containerRef: React.RefObject\n /**\n * @default false\n */\n appendToParentPortal?: boolean\n}\n\n/**\n * Portal that uses a custom container\n */\nconst ContainerPortal = (props: ContainerPortalProps) => {\n const { children, containerRef, appendToParentPortal } = props\n const containerEl = containerRef.current\n const host =\n containerEl ?? (typeof window !== \"undefined\" ? document.body : undefined)\n\n const portal = useMemo(() => {\n const node = containerEl?.ownerDocument.createElement(\"div\")\n if (node) node.className = PORTAL_CLASSNAME\n return node\n }, [containerEl])\n\n const [, forceUpdate] = useState({})\n useSafeLayoutEffect(() => forceUpdate({}), [])\n\n useSafeLayoutEffect(() => {\n if (!portal || !host) return\n host.appendChild(portal)\n return () => {\n host.removeChild(portal)\n }\n }, [portal, host])\n\n if (host && portal) {\n return createPortal(\n \n {children}\n ,\n portal,\n )\n }\n\n return null\n}\n\nexport interface PortalProps {\n /**\n * The `ref` to the component where the portal will be attached to.\n */\n containerRef?: React.RefObject\n /**\n * The content or node you'll like to portal\n */\n children: React.ReactNode\n /**\n * If `true`, the portal will check if it is within a parent portal\n * and append itself to the parent's portal node.\n * This provides nesting for portals.\n *\n * If `false`, the portal will always append to `document.body`\n * regardless of nesting. It is used to opt out of portal nesting.\n *\n * @default true\n */\n appendToParentPortal?: boolean\n}\n\n/**\n * Portal\n *\n * Declarative component used to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * @see Docs https://chakra-ui.com/portal\n */\n\nexport function Portal(props: PortalProps) {\n const portalProps: PortalProps = {\n appendToParentPortal: true,\n ...props,\n }\n\n const { containerRef, ...rest } = portalProps\n return containerRef ? (\n \n ) : (\n \n )\n}\n\nPortal.className = PORTAL_CLASSNAME\nPortal.selector = PORTAL_SELECTOR\n\nPortal.displayName = \"Portal\"\n", "import { WithCSSVar } from \"@chakra-ui/styled-system\"\nimport { Dict } from \"@chakra-ui/utils\"\nimport { ThemeContext } from \"@emotion/react\"\nimport { useContext } from \"react\"\n\n/**\n * `useTheme` is a custom hook used to get the theme object from context.\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-theme\n */\nexport function useTheme() {\n const theme = useContext(\n ThemeContext as unknown as React.Context,\n )\n if (!theme) {\n throw Error(\n \"useTheme: `theme` is undefined. Seems you forgot to wrap your app in `` or ``\",\n )\n }\n\n return theme as WithCSSVar\n}\n", "import { createContext, useContext } from \"react\"\nimport { ColorModeContextType } from \"./color-mode-types\"\n\nexport const ColorModeContext = createContext({} as ColorModeContextType)\n\nColorModeContext.displayName = \"ColorModeContext\"\n\n/**\n * React hook that reads from `ColorModeProvider` context\n * Returns the color mode and function to toggle it\n */\nexport function useColorMode() {\n const context = useContext(ColorModeContext)\n if (context === undefined) {\n throw new Error(\"useColorMode must be used within a ColorModeProvider\")\n }\n return context\n}\n\n/**\n * Change value based on color mode.\n *\n * @param light the light mode value\n * @param dark the dark mode value\n *\n * @example\n *\n * ```js\n * const Icon = useColorModeValue(MoonIcon, SunIcon)\n * ```\n */\nexport function useColorModeValue(\n light: TLight,\n dark: TDark,\n) {\n const { colorMode } = useColorMode()\n return colorMode === \"dark\" ? dark : light\n}\n", "import { ColorMode } from \"./color-mode-types\"\n\nconst classNames = {\n light: \"chakra-ui-light\",\n dark: \"chakra-ui-dark\",\n}\n\ntype UtilOptions = {\n preventTransition?: boolean\n}\n\nexport function getColorModeUtils(options: UtilOptions = {}) {\n const { preventTransition = true } = options\n\n const utils = {\n setDataset: (value: ColorMode) => {\n const cleanup = preventTransition ? utils.preventTransition() : undefined\n document.documentElement.dataset.theme = value\n document.documentElement.style.colorScheme = value\n cleanup?.()\n },\n setClassName(dark: boolean) {\n document.body.classList.add(dark ? classNames.dark : classNames.light)\n document.body.classList.remove(dark ? classNames.light : classNames.dark)\n },\n query() {\n return window.matchMedia(\"(prefers-color-scheme: dark)\")\n },\n getSystemTheme(fallback?: ColorMode) {\n const dark = utils.query().matches ?? fallback === \"dark\"\n return dark ? \"dark\" : \"light\"\n },\n addListener(fn: (cm: ColorMode) => unknown) {\n const mql = utils.query()\n const listener = (e: MediaQueryListEvent) => {\n fn(e.matches ? \"dark\" : \"light\")\n }\n\n if (typeof mql.addListener === \"function\") mql.addListener(listener)\n else mql.addEventListener(\"change\", listener)\n\n return () => {\n if (typeof mql.removeListener === \"function\")\n mql.removeListener(listener)\n else mql.removeEventListener(\"change\", listener)\n }\n },\n preventTransition() {\n const css = document.createElement(\"style\")\n css.appendChild(\n document.createTextNode(\n `*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`,\n ),\n )\n document.head.appendChild(css)\n\n return () => {\n // force a reflow\n ;(() => window.getComputedStyle(document.body))()\n\n // wait for next tick\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n document.head.removeChild(css)\n })\n })\n }\n },\n }\n\n return utils\n}\n", "import { ColorMode } from \"./color-mode-types\"\n\nexport const STORAGE_KEY = \"chakra-ui-color-mode\"\n\ntype MaybeColorMode = ColorMode | undefined\n\nexport interface StorageManager {\n type: \"cookie\" | \"localStorage\"\n ssr?: boolean\n get(init?: ColorMode): MaybeColorMode\n set(value: ColorMode | \"system\"): void\n}\n\nexport function createLocalStorageManager(key: string): StorageManager {\n return {\n ssr: false,\n type: \"localStorage\",\n get(init?) {\n if (!globalThis?.document) return init\n let value: any\n try {\n value = localStorage.getItem(key) || init\n } catch (e) {\n // no op\n }\n\n return value || init\n },\n set(value) {\n try {\n localStorage.setItem(key, value)\n } catch (e) {\n // no op\n }\n },\n }\n}\n\nexport const localStorageManager = createLocalStorageManager(STORAGE_KEY)\n\nfunction parseCookie(cookie: string, key: string): MaybeColorMode {\n const match = cookie.match(new RegExp(`(^| )${key}=([^;]+)`))\n return match?.[2] as MaybeColorMode\n}\n\nexport function createCookieStorageManager(\n key: string,\n cookie?: string,\n): StorageManager {\n return {\n ssr: !!cookie,\n type: \"cookie\",\n get(init?): MaybeColorMode {\n if (cookie) return parseCookie(cookie, key)\n if (!globalThis?.document) return init\n return parseCookie(document.cookie, key) || init\n },\n set(value) {\n document.cookie = `${key}=${value}; max-age=31536000; path=/`\n },\n }\n}\n\nexport const cookieStorageManager = createCookieStorageManager(STORAGE_KEY)\n\nexport const cookieStorageManagerSSR = (cookie: string) =>\n createCookieStorageManager(STORAGE_KEY, cookie)\n", "import { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useCallback, useEffect, useMemo, useState } from \"react\"\nimport { ColorModeContext } from \"./color-mode-context\"\nimport {\n ColorMode,\n ColorModeContextType,\n ColorModeOptions,\n} from \"./color-mode-types\"\nimport { getColorModeUtils } from \"./color-mode.utils\"\nimport { localStorageManager, StorageManager } from \"./storage-manager\"\n\nconst noop = () => {}\n\nexport interface ColorModeProviderProps {\n value?: ColorMode\n children?: React.ReactNode\n options?: ColorModeOptions\n colorModeManager?: StorageManager\n}\n\nfunction getTheme(manager: StorageManager, fallback?: ColorMode) {\n return manager.type === \"cookie\" && manager.ssr\n ? manager.get(fallback)\n : fallback\n}\n\n/**\n * Provides context for the color mode based on config in `theme`\n * Returns the color mode and function to toggle the color mode\n */\nexport function ColorModeProvider(props: ColorModeProviderProps) {\n const {\n value,\n children,\n options: {\n useSystemColorMode,\n initialColorMode,\n disableTransitionOnChange,\n } = {},\n colorModeManager = localStorageManager,\n } = props\n\n const defaultColorMode = initialColorMode === \"dark\" ? \"dark\" : \"light\"\n\n const [colorMode, rawSetColorMode] = useState(() =>\n getTheme(colorModeManager, defaultColorMode),\n )\n\n const [resolvedColorMode, setResolvedColorMode] = useState(() =>\n getTheme(colorModeManager),\n )\n\n const { getSystemTheme, setClassName, setDataset, addListener } = useMemo(\n () => getColorModeUtils({ preventTransition: disableTransitionOnChange }),\n [disableTransitionOnChange],\n )\n\n const resolvedValue =\n initialColorMode === \"system\" && !colorMode ? resolvedColorMode : colorMode\n\n const setColorMode = useCallback(\n (value: ColorMode | \"system\") => {\n //\n const resolved = value === \"system\" ? getSystemTheme() : value\n rawSetColorMode(resolved)\n\n setClassName(resolved === \"dark\")\n setDataset(resolved)\n\n colorModeManager.set(resolved)\n },\n [colorModeManager, getSystemTheme, setClassName, setDataset],\n )\n\n useSafeLayoutEffect(() => {\n if (initialColorMode === \"system\") {\n setResolvedColorMode(getSystemTheme())\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n const managerValue = colorModeManager.get()\n\n if (managerValue) {\n setColorMode(managerValue)\n return\n }\n\n if (initialColorMode === \"system\") {\n setColorMode(\"system\")\n return\n }\n\n setColorMode(defaultColorMode)\n }, [colorModeManager, defaultColorMode, initialColorMode, setColorMode])\n\n const toggleColorMode = useCallback(() => {\n setColorMode(resolvedValue === \"dark\" ? \"light\" : \"dark\")\n }, [resolvedValue, setColorMode])\n\n useEffect(() => {\n if (!useSystemColorMode) return\n return addListener(setColorMode)\n }, [useSystemColorMode, addListener, setColorMode])\n\n // presence of `value` indicates a controlled context\n const context = useMemo(\n () => ({\n colorMode: value ?? (resolvedValue as ColorMode),\n toggleColorMode: value ? noop : toggleColorMode,\n setColorMode: value ? noop : setColorMode,\n forced: value !== undefined,\n }),\n [resolvedValue, toggleColorMode, setColorMode, value],\n )\n\n return (\n \n {children}\n \n )\n}\n\nColorModeProvider.displayName = \"ColorModeProvider\"\n\n/**\n * Locks the color mode to `dark`, without any way to change it.\n */\nexport function DarkMode(props: React.PropsWithChildren<{}>) {\n const context = useMemo(\n () => ({\n colorMode: \"dark\",\n toggleColorMode: noop,\n setColorMode: noop,\n forced: true,\n }),\n [],\n )\n\n return \n}\n\nDarkMode.displayName = \"DarkMode\"\n\n/**\n * Locks the color mode to `light` without any way to change it.\n */\nexport function LightMode(props: React.PropsWithChildren<{}>) {\n const context = useMemo(\n () => ({\n colorMode: \"light\",\n toggleColorMode: noop,\n setColorMode: noop,\n forced: true,\n }),\n [],\n )\n\n return \n}\n\nLightMode.displayName = \"LightMode\"\n", "export type ColorModeScriptProps = {\n type?: \"localStorage\" | \"cookie\"\n initialColorMode?: \"light\" | \"dark\" | \"system\"\n storageKey?: string\n nonce?: string\n}\n\nconst VALID_VALUES = new Set([\"dark\", \"light\", \"system\"])\n\n/**\n * runtime safe-guard against invalid color mode values\n */\nfunction normalize(initialColorMode: \"light\" | \"dark\" | \"system\") {\n let value = initialColorMode\n if (!VALID_VALUES.has(value)) value = \"light\"\n return value\n}\n\nexport function getScriptSrc(props: ColorModeScriptProps = {}) {\n const {\n initialColorMode = \"light\",\n type = \"localStorage\",\n storageKey: key = \"chakra-ui-color-mode\",\n } = props\n\n // runtime safe-guard against invalid color mode values\n const init = normalize(initialColorMode)\n\n const isCookie = type === \"cookie\"\n\n const cookieScript = `(function(){try{var a=function(o){var l=\"(prefers-color-scheme: dark)\",v=window.matchMedia(l).matches?\"dark\":\"light\",e=o===\"system\"?v:o,d=document.documentElement,m=document.body,i=\"chakra-ui-light\",n=\"chakra-ui-dark\",s=e===\"dark\";return m.classList.add(s?n:i),m.classList.remove(s?i:n),d.style.colorScheme=e,d.dataset.theme=e,e},u=a,h=\"${init}\",r=\"${key}\",t=document.cookie.match(new RegExp(\"(^| )\".concat(r,\"=([^;]+)\"))),c=t?t[2]:null;c?a(c):document.cookie=\"\".concat(r,\"=\").concat(a(h),\"; max-age=31536000; path=/\")}catch(a){}})();\n `\n\n const localStorageScript = `(function(){try{var a=function(c){var v=\"(prefers-color-scheme: dark)\",h=window.matchMedia(v).matches?\"dark\":\"light\",r=c===\"system\"?h:c,o=document.documentElement,s=document.body,l=\"chakra-ui-light\",d=\"chakra-ui-dark\",i=r===\"dark\";return s.classList.add(i?d:l),s.classList.remove(i?l:d),o.style.colorScheme=r,o.dataset.theme=r,r},n=a,m=\"${init}\",e=\"${key}\",t=localStorage.getItem(e);t?a(t):localStorage.setItem(e,a(m))}catch(a){}})();\n `\n\n const fn = isCookie ? cookieScript : localStorageScript\n return `!${fn}`.trim()\n}\n\nexport function ColorModeScript(props: ColorModeScriptProps = {}) {\n const { nonce } = props\n\n return (\n \n )\n}\n", "import { useColorMode } from \"@chakra-ui/color-mode\"\nimport { Dict, StringOrNumber } from \"@chakra-ui/utils\"\nimport { useTheme } from \"./use-theme\"\n\nexport function useChakra() {\n const colorModeResult = useColorMode()\n const theme = useTheme() as T\n return { ...colorModeResult, theme }\n}\n\nfunction getBreakpointValue(\n theme: Dict,\n value: T,\n fallback: any,\n) {\n if (value == null) return value\n const getValue = (val: T) => theme.__breakpoints?.asArray?.[val]\n return getValue(value) ?? getValue(fallback) ?? fallback\n}\n\nfunction getTokenValue(\n theme: Dict,\n value: T,\n fallback: any,\n) {\n if (value == null) return value\n const getValue = (val: T) => theme.__cssMap?.[val]?.value\n return getValue(value) ?? getValue(fallback) ?? fallback\n}\n\n/**\n * `useToken` is a custom hook used to resolve design tokens from the theme.\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-token\n */\nexport function useToken(\n scale: string,\n token: T,\n fallback?: T,\n) {\n const theme = useTheme()\n return getToken(scale, token, fallback)(theme)\n}\n\nexport function getToken(\n scale: string,\n token: T,\n fallback?: T,\n): (theme: Dict) => T {\n const _token = Array.isArray(token) ? token : [token]\n const _fallback = Array.isArray(fallback) ? fallback : [fallback]\n return (theme: Dict) => {\n const fallbackArr = _fallback.filter(Boolean) as T[]\n const result = _token.map((token, index) => {\n if (scale === \"breakpoints\") {\n return getBreakpointValue(theme, token, fallbackArr[index] ?? token)\n }\n const path = `${scale}.${token}`\n return getTokenValue(theme, path, fallbackArr[index] ?? token)\n })\n return Array.isArray(token) ? result : result[0]\n }\n}\n", "// src/index.ts\nvar cx = (...classNames) => classNames.filter(Boolean).join(\" \");\nfunction isDev() {\n return process.env.NODE_ENV !== \"production\";\n}\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !Array.isArray(value);\n}\nvar warn = (options) => {\n const { condition, message } = options;\n if (condition && isDev()) {\n console.warn(message);\n }\n};\nfunction runIfFn(valueOrFn, ...args) {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\nvar isFunction = (value) => typeof value === \"function\";\nvar dataAttr = (condition) => condition ? \"\" : void 0;\nvar ariaAttr = (condition) => condition ? true : void 0;\nfunction callAllHandlers(...fns) {\n return function func(event) {\n fns.some((fn) => {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll(...fns) {\n return function mergedFn(arg) {\n fns.forEach((fn) => {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nexport {\n ariaAttr,\n callAll,\n callAllHandlers,\n cx,\n dataAttr,\n isObject,\n runIfFn,\n warn\n};\n", "// src/utils/create-transform.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nvar isImportant = (value) => /!(important)?$/.test(value);\nvar withoutImportant = (value) => typeof value === \"string\" ? value.replace(/!(important)?$/, \"\").trim() : value;\nvar tokenToCSSVar = (scale, value) => (theme) => {\n const valueStr = String(value);\n const important = isImportant(valueStr);\n const valueWithoutImportant = withoutImportant(valueStr);\n const key = scale ? `${scale}.${valueWithoutImportant}` : valueWithoutImportant;\n let transformed = isObject(theme.__cssMap) && key in theme.__cssMap ? theme.__cssMap[key].varRef : value;\n transformed = withoutImportant(transformed);\n return important ? `${transformed} !important` : transformed;\n};\nfunction createTransform(options) {\n const { scale, transform: transform2, compose } = options;\n const fn = (value, theme) => {\n var _a;\n const _value = tokenToCSSVar(scale, value)(theme);\n let result = (_a = transform2 == null ? void 0 : transform2(_value, theme)) != null ? _a : _value;\n if (compose) {\n result = compose(result, theme);\n }\n return result;\n };\n return fn;\n}\n\n// src/utils/pipe.ts\nvar pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);\n\n// src/utils/prop-config.ts\nfunction toConfig(scale, transform2) {\n return (property) => {\n const result = { property, scale };\n result.transform = createTransform({\n scale,\n transform: transform2\n });\n return result;\n };\n}\nvar getRtl = ({ rtl, ltr }) => (theme) => theme.direction === \"rtl\" ? rtl : ltr;\nfunction logical(options) {\n const { property, scale, transform: transform2 } = options;\n return {\n scale,\n property: getRtl(property),\n transform: scale ? createTransform({\n scale,\n compose: transform2\n }) : transform2\n };\n}\n\n// src/utils/templates.ts\nvar transformTemplate = [\n \"rotate(var(--chakra-rotate, 0))\",\n \"scaleX(var(--chakra-scale-x, 1))\",\n \"scaleY(var(--chakra-scale-y, 1))\",\n \"skewX(var(--chakra-skew-x, 0))\",\n \"skewY(var(--chakra-skew-y, 0))\"\n];\nfunction getTransformTemplate() {\n return [\n \"translateX(var(--chakra-translate-x, 0))\",\n \"translateY(var(--chakra-translate-y, 0))\",\n ...transformTemplate\n ].join(\" \");\n}\nfunction getTransformGpuTemplate() {\n return [\n \"translate3d(var(--chakra-translate-x, 0), var(--chakra-translate-y, 0), 0)\",\n ...transformTemplate\n ].join(\" \");\n}\nvar filterTemplate = {\n \"--chakra-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-drop-shadow\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n filter: [\n \"var(--chakra-blur)\",\n \"var(--chakra-brightness)\",\n \"var(--chakra-contrast)\",\n \"var(--chakra-grayscale)\",\n \"var(--chakra-hue-rotate)\",\n \"var(--chakra-invert)\",\n \"var(--chakra-saturate)\",\n \"var(--chakra-sepia)\",\n \"var(--chakra-drop-shadow)\"\n ].join(\" \")\n};\nvar backdropFilterTemplate = {\n backdropFilter: [\n \"var(--chakra-backdrop-blur)\",\n \"var(--chakra-backdrop-brightness)\",\n \"var(--chakra-backdrop-contrast)\",\n \"var(--chakra-backdrop-grayscale)\",\n \"var(--chakra-backdrop-hue-rotate)\",\n \"var(--chakra-backdrop-invert)\",\n \"var(--chakra-backdrop-opacity)\",\n \"var(--chakra-backdrop-saturate)\",\n \"var(--chakra-backdrop-sepia)\"\n ].join(\" \"),\n \"--chakra-backdrop-blur\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-brightness\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-contrast\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-grayscale\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-hue-rotate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-invert\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-opacity\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-saturate\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-backdrop-sepia\": \"var(--chakra-empty,/*!*/ /*!*/)\"\n};\nfunction getRingTemplate(value) {\n return {\n \"--chakra-ring-offset-shadow\": `var(--chakra-ring-inset) 0 0 0 var(--chakra-ring-offset-width) var(--chakra-ring-offset-color)`,\n \"--chakra-ring-shadow\": `var(--chakra-ring-inset) 0 0 0 calc(var(--chakra-ring-width) + var(--chakra-ring-offset-width)) var(--chakra-ring-color)`,\n \"--chakra-ring-width\": value,\n boxShadow: [\n `var(--chakra-ring-offset-shadow)`,\n `var(--chakra-ring-shadow)`,\n `var(--chakra-shadow, 0 0 #0000)`\n ].join(\", \")\n };\n}\nvar flexDirectionTemplate = {\n \"row-reverse\": {\n space: \"--chakra-space-x-reverse\",\n divide: \"--chakra-divide-x-reverse\"\n },\n \"column-reverse\": {\n space: \"--chakra-space-y-reverse\",\n divide: \"--chakra-divide-y-reverse\"\n }\n};\n\n// src/utils/parse-gradient.ts\nvar directionMap = {\n \"to-t\": \"to top\",\n \"to-tr\": \"to top right\",\n \"to-r\": \"to right\",\n \"to-br\": \"to bottom right\",\n \"to-b\": \"to bottom\",\n \"to-bl\": \"to bottom left\",\n \"to-l\": \"to left\",\n \"to-tl\": \"to top left\"\n};\nvar valueSet = new Set(Object.values(directionMap));\nvar globalSet = /* @__PURE__ */ new Set([\n \"none\",\n \"-moz-initial\",\n \"inherit\",\n \"initial\",\n \"revert\",\n \"unset\"\n]);\nvar trimSpace = (str) => str.trim();\nfunction parseGradient(value, theme) {\n if (value == null || globalSet.has(value))\n return value;\n const prevent = isCSSFunction(value) || globalSet.has(value);\n if (!prevent)\n return `url('${value}')`;\n const regex = /(^[a-z-A-Z]+)\\((.*)\\)/g;\n const results = regex.exec(value);\n const type = results == null ? void 0 : results[1];\n const values = results == null ? void 0 : results[2];\n if (!type || !values)\n return value;\n const _type = type.includes(\"-gradient\") ? type : `${type}-gradient`;\n const [maybeDirection, ...stops] = values.split(\",\").map(trimSpace).filter(Boolean);\n if ((stops == null ? void 0 : stops.length) === 0)\n return value;\n const direction = maybeDirection in directionMap ? directionMap[maybeDirection] : maybeDirection;\n stops.unshift(direction);\n const _values = stops.map((stop) => {\n if (valueSet.has(stop))\n return stop;\n const firstStop = stop.indexOf(\" \");\n const [_color, _stop] = firstStop !== -1 ? [stop.substr(0, firstStop), stop.substr(firstStop + 1)] : [stop];\n const _stopOrFunc = isCSSFunction(_stop) ? _stop : _stop && _stop.split(\" \");\n const key = `colors.${_color}`;\n const color2 = key in theme.__cssMap ? theme.__cssMap[key].varRef : _color;\n return _stopOrFunc ? [\n color2,\n ...Array.isArray(_stopOrFunc) ? _stopOrFunc : [_stopOrFunc]\n ].join(\" \") : color2;\n });\n return `${_type}(${_values.join(\", \")})`;\n}\nvar isCSSFunction = (value) => {\n return typeof value === \"string\" && value.includes(\"(\") && value.includes(\")\");\n};\nvar gradientTransform = (value, theme) => parseGradient(value, theme != null ? theme : {});\n\n// src/utils/transform-functions.ts\nfunction isCssVar(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nvar analyzeCSSValue = (value) => {\n const num = parseFloat(value.toString());\n const unit = value.toString().replace(String(num), \"\");\n return { unitless: !unit, value: num, unit };\n};\nvar wrap = (str) => (value) => `${str}(${value})`;\nvar transformFunctions = {\n filter(value) {\n return value !== \"auto\" ? value : filterTemplate;\n },\n backdropFilter(value) {\n return value !== \"auto\" ? value : backdropFilterTemplate;\n },\n ring(value) {\n return getRingTemplate(transformFunctions.px(value));\n },\n bgClip(value) {\n return value === \"text\" ? { color: \"transparent\", backgroundClip: \"text\" } : { backgroundClip: value };\n },\n transform(value) {\n if (value === \"auto\")\n return getTransformTemplate();\n if (value === \"auto-gpu\")\n return getTransformGpuTemplate();\n return value;\n },\n vh(value) {\n return value === \"$100vh\" ? \"var(--chakra-vh)\" : value;\n },\n px(value) {\n if (value == null)\n return value;\n const { unitless } = analyzeCSSValue(value);\n return unitless || typeof value === \"number\" ? `${value}px` : value;\n },\n fraction(value) {\n return !(typeof value === \"number\") || value > 1 ? value : `${value * 100}%`;\n },\n float(value, theme) {\n const map = { left: \"right\", right: \"left\" };\n return theme.direction === \"rtl\" ? map[value] : value;\n },\n degree(value) {\n if (isCssVar(value) || value == null)\n return value;\n const unitless = typeof value === \"string\" && !value.endsWith(\"deg\");\n return typeof value === \"number\" || unitless ? `${value}deg` : value;\n },\n gradient: gradientTransform,\n blur: wrap(\"blur\"),\n opacity: wrap(\"opacity\"),\n brightness: wrap(\"brightness\"),\n contrast: wrap(\"contrast\"),\n dropShadow: wrap(\"drop-shadow\"),\n grayscale: wrap(\"grayscale\"),\n hueRotate: (value) => wrap(\"hue-rotate\")(transformFunctions.degree(value)),\n invert: wrap(\"invert\"),\n saturate: wrap(\"saturate\"),\n sepia: wrap(\"sepia\"),\n bgImage(value) {\n if (value == null)\n return value;\n const prevent = isCSSFunction(value) || globalSet.has(value);\n return !prevent ? `url(${value})` : value;\n },\n outline(value) {\n const isNoneOrZero = String(value) === \"0\" || String(value) === \"none\";\n return value !== null && isNoneOrZero ? { outline: \"2px solid transparent\", outlineOffset: \"2px\" } : { outline: value };\n },\n flexDirection(value) {\n var _a;\n const { space: space2, divide: divide2 } = (_a = flexDirectionTemplate[value]) != null ? _a : {};\n const result = { flexDirection: value };\n if (space2)\n result[space2] = 1;\n if (divide2)\n result[divide2] = 1;\n return result;\n }\n};\n\n// src/utils/index.ts\nvar t = {\n borderWidths: toConfig(\"borderWidths\"),\n borderStyles: toConfig(\"borderStyles\"),\n colors: toConfig(\"colors\"),\n borders: toConfig(\"borders\"),\n gradients: toConfig(\"gradients\", transformFunctions.gradient),\n radii: toConfig(\"radii\", transformFunctions.px),\n space: toConfig(\"space\", pipe(transformFunctions.vh, transformFunctions.px)),\n spaceT: toConfig(\"space\", pipe(transformFunctions.vh, transformFunctions.px)),\n degreeT(property) {\n return { property, transform: transformFunctions.degree };\n },\n prop(property, scale, transform2) {\n return {\n property,\n scale,\n ...scale && {\n transform: createTransform({ scale, transform: transform2 })\n }\n };\n },\n propT(property, transform2) {\n return { property, transform: transform2 };\n },\n sizes: toConfig(\"sizes\", pipe(transformFunctions.vh, transformFunctions.px)),\n sizesT: toConfig(\"sizes\", pipe(transformFunctions.vh, transformFunctions.fraction)),\n shadows: toConfig(\"shadows\"),\n logical,\n blur: toConfig(\"blur\", transformFunctions.blur)\n};\n\n// src/config/background.ts\nvar background = {\n background: t.colors(\"background\"),\n backgroundColor: t.colors(\"backgroundColor\"),\n backgroundImage: t.gradients(\"backgroundImage\"),\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundAttachment: true,\n backgroundClip: { transform: transformFunctions.bgClip },\n bgSize: t.prop(\"backgroundSize\"),\n bgPosition: t.prop(\"backgroundPosition\"),\n bg: t.colors(\"background\"),\n bgColor: t.colors(\"backgroundColor\"),\n bgPos: t.prop(\"backgroundPosition\"),\n bgRepeat: t.prop(\"backgroundRepeat\"),\n bgAttachment: t.prop(\"backgroundAttachment\"),\n bgGradient: t.gradients(\"backgroundImage\"),\n bgClip: { transform: transformFunctions.bgClip }\n};\nObject.assign(background, {\n bgImage: background.backgroundImage,\n bgImg: background.backgroundImage\n});\n\n// src/config/border.ts\nvar border = {\n border: t.borders(\"border\"),\n borderWidth: t.borderWidths(\"borderWidth\"),\n borderStyle: t.borderStyles(\"borderStyle\"),\n borderColor: t.colors(\"borderColor\"),\n borderRadius: t.radii(\"borderRadius\"),\n borderTop: t.borders(\"borderTop\"),\n borderBlockStart: t.borders(\"borderBlockStart\"),\n borderTopLeftRadius: t.radii(\"borderTopLeftRadius\"),\n borderStartStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderTopLeftRadius\",\n rtl: \"borderTopRightRadius\"\n }\n }),\n borderEndStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderBottomLeftRadius\",\n rtl: \"borderBottomRightRadius\"\n }\n }),\n borderTopRightRadius: t.radii(\"borderTopRightRadius\"),\n borderStartEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderTopRightRadius\",\n rtl: \"borderTopLeftRadius\"\n }\n }),\n borderEndEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: \"borderBottomRightRadius\",\n rtl: \"borderBottomLeftRadius\"\n }\n }),\n borderRight: t.borders(\"borderRight\"),\n borderInlineEnd: t.borders(\"borderInlineEnd\"),\n borderBottom: t.borders(\"borderBottom\"),\n borderBlockEnd: t.borders(\"borderBlockEnd\"),\n borderBottomLeftRadius: t.radii(\"borderBottomLeftRadius\"),\n borderBottomRightRadius: t.radii(\"borderBottomRightRadius\"),\n borderLeft: t.borders(\"borderLeft\"),\n borderInlineStart: {\n property: \"borderInlineStart\",\n scale: \"borders\"\n },\n borderInlineStartRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"],\n rtl: [\"borderTopRightRadius\", \"borderBottomRightRadius\"]\n }\n }),\n borderInlineEndRadius: t.logical({\n scale: \"radii\",\n property: {\n ltr: [\"borderTopRightRadius\", \"borderBottomRightRadius\"],\n rtl: [\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]\n }\n }),\n borderX: t.borders([\"borderLeft\", \"borderRight\"]),\n borderInline: t.borders(\"borderInline\"),\n borderY: t.borders([\"borderTop\", \"borderBottom\"]),\n borderBlock: t.borders(\"borderBlock\"),\n borderTopWidth: t.borderWidths(\"borderTopWidth\"),\n borderBlockStartWidth: t.borderWidths(\"borderBlockStartWidth\"),\n borderTopColor: t.colors(\"borderTopColor\"),\n borderBlockStartColor: t.colors(\"borderBlockStartColor\"),\n borderTopStyle: t.borderStyles(\"borderTopStyle\"),\n borderBlockStartStyle: t.borderStyles(\"borderBlockStartStyle\"),\n borderBottomWidth: t.borderWidths(\"borderBottomWidth\"),\n borderBlockEndWidth: t.borderWidths(\"borderBlockEndWidth\"),\n borderBottomColor: t.colors(\"borderBottomColor\"),\n borderBlockEndColor: t.colors(\"borderBlockEndColor\"),\n borderBottomStyle: t.borderStyles(\"borderBottomStyle\"),\n borderBlockEndStyle: t.borderStyles(\"borderBlockEndStyle\"),\n borderLeftWidth: t.borderWidths(\"borderLeftWidth\"),\n borderInlineStartWidth: t.borderWidths(\"borderInlineStartWidth\"),\n borderLeftColor: t.colors(\"borderLeftColor\"),\n borderInlineStartColor: t.colors(\"borderInlineStartColor\"),\n borderLeftStyle: t.borderStyles(\"borderLeftStyle\"),\n borderInlineStartStyle: t.borderStyles(\"borderInlineStartStyle\"),\n borderRightWidth: t.borderWidths(\"borderRightWidth\"),\n borderInlineEndWidth: t.borderWidths(\"borderInlineEndWidth\"),\n borderRightColor: t.colors(\"borderRightColor\"),\n borderInlineEndColor: t.colors(\"borderInlineEndColor\"),\n borderRightStyle: t.borderStyles(\"borderRightStyle\"),\n borderInlineEndStyle: t.borderStyles(\"borderInlineEndStyle\"),\n borderTopRadius: t.radii([\"borderTopLeftRadius\", \"borderTopRightRadius\"]),\n borderBottomRadius: t.radii([\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\"\n ]),\n borderLeftRadius: t.radii([\"borderTopLeftRadius\", \"borderBottomLeftRadius\"]),\n borderRightRadius: t.radii([\n \"borderTopRightRadius\",\n \"borderBottomRightRadius\"\n ])\n};\nObject.assign(border, {\n rounded: border.borderRadius,\n roundedTop: border.borderTopRadius,\n roundedTopLeft: border.borderTopLeftRadius,\n roundedTopRight: border.borderTopRightRadius,\n roundedTopStart: border.borderStartStartRadius,\n roundedTopEnd: border.borderStartEndRadius,\n roundedBottom: border.borderBottomRadius,\n roundedBottomLeft: border.borderBottomLeftRadius,\n roundedBottomRight: border.borderBottomRightRadius,\n roundedBottomStart: border.borderEndStartRadius,\n roundedBottomEnd: border.borderEndEndRadius,\n roundedLeft: border.borderLeftRadius,\n roundedRight: border.borderRightRadius,\n roundedStart: border.borderInlineStartRadius,\n roundedEnd: border.borderInlineEndRadius,\n borderStart: border.borderInlineStart,\n borderEnd: border.borderInlineEnd,\n borderTopStartRadius: border.borderStartStartRadius,\n borderTopEndRadius: border.borderStartEndRadius,\n borderBottomStartRadius: border.borderEndStartRadius,\n borderBottomEndRadius: border.borderEndEndRadius,\n borderStartRadius: border.borderInlineStartRadius,\n borderEndRadius: border.borderInlineEndRadius,\n borderStartWidth: border.borderInlineStartWidth,\n borderEndWidth: border.borderInlineEndWidth,\n borderStartColor: border.borderInlineStartColor,\n borderEndColor: border.borderInlineEndColor,\n borderStartStyle: border.borderInlineStartStyle,\n borderEndStyle: border.borderInlineEndStyle\n});\n\n// src/config/color.ts\nvar color = {\n color: t.colors(\"color\"),\n textColor: t.colors(\"color\"),\n fill: t.colors(\"fill\"),\n stroke: t.colors(\"stroke\")\n};\n\n// src/config/effect.ts\nvar effect = {\n boxShadow: t.shadows(\"boxShadow\"),\n mixBlendMode: true,\n blendMode: t.prop(\"mixBlendMode\"),\n backgroundBlendMode: true,\n bgBlendMode: t.prop(\"backgroundBlendMode\"),\n opacity: true\n};\nObject.assign(effect, {\n shadow: effect.boxShadow\n});\n\n// src/config/filter.ts\nvar filter = {\n filter: { transform: transformFunctions.filter },\n blur: t.blur(\"--chakra-blur\"),\n brightness: t.propT(\"--chakra-brightness\", transformFunctions.brightness),\n contrast: t.propT(\"--chakra-contrast\", transformFunctions.contrast),\n hueRotate: t.propT(\"--chakra-hue-rotate\", transformFunctions.hueRotate),\n invert: t.propT(\"--chakra-invert\", transformFunctions.invert),\n saturate: t.propT(\"--chakra-saturate\", transformFunctions.saturate),\n dropShadow: t.propT(\"--chakra-drop-shadow\", transformFunctions.dropShadow),\n backdropFilter: { transform: transformFunctions.backdropFilter },\n backdropBlur: t.blur(\"--chakra-backdrop-blur\"),\n backdropBrightness: t.propT(\n \"--chakra-backdrop-brightness\",\n transformFunctions.brightness\n ),\n backdropContrast: t.propT(\"--chakra-backdrop-contrast\", transformFunctions.contrast),\n backdropHueRotate: t.propT(\n \"--chakra-backdrop-hue-rotate\",\n transformFunctions.hueRotate\n ),\n backdropInvert: t.propT(\"--chakra-backdrop-invert\", transformFunctions.invert),\n backdropSaturate: t.propT(\"--chakra-backdrop-saturate\", transformFunctions.saturate)\n};\n\n// src/config/flexbox.ts\nvar flexbox = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: { transform: transformFunctions.flexDirection },\n flex: true,\n flexFlow: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: t.sizes(\"flexBasis\"),\n justifySelf: true,\n alignSelf: true,\n order: true,\n placeItems: true,\n placeContent: true,\n placeSelf: true,\n gap: t.space(\"gap\"),\n rowGap: t.space(\"rowGap\"),\n columnGap: t.space(\"columnGap\")\n};\nObject.assign(flexbox, {\n flexDir: flexbox.flexDirection\n});\n\n// src/config/grid.ts\nvar grid = {\n gridGap: t.space(\"gridGap\"),\n gridColumnGap: t.space(\"gridColumnGap\"),\n gridRowGap: t.space(\"gridRowGap\"),\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridColumnStart: true,\n gridColumnEnd: true,\n gridRowStart: true,\n gridRowEnd: true,\n gridAutoRows: true,\n gridTemplate: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\n\n// src/config/interactivity.ts\nvar interactivity = {\n appearance: true,\n cursor: true,\n resize: true,\n userSelect: true,\n pointerEvents: true,\n outline: { transform: transformFunctions.outline },\n outlineOffset: true,\n outlineColor: t.colors(\"outlineColor\")\n};\n\n// src/config/layout.ts\nvar layout = {\n width: t.sizesT(\"width\"),\n inlineSize: t.sizesT(\"inlineSize\"),\n height: t.sizes(\"height\"),\n blockSize: t.sizes(\"blockSize\"),\n boxSize: t.sizes([\"width\", \"height\"]),\n minWidth: t.sizes(\"minWidth\"),\n minInlineSize: t.sizes(\"minInlineSize\"),\n minHeight: t.sizes(\"minHeight\"),\n minBlockSize: t.sizes(\"minBlockSize\"),\n maxWidth: t.sizes(\"maxWidth\"),\n maxInlineSize: t.sizes(\"maxInlineSize\"),\n maxHeight: t.sizes(\"maxHeight\"),\n maxBlockSize: t.sizes(\"maxBlockSize\"),\n overflow: true,\n overflowX: true,\n overflowY: true,\n overscrollBehavior: true,\n overscrollBehaviorX: true,\n overscrollBehaviorY: true,\n display: true,\n aspectRatio: true,\n hideFrom: {\n scale: \"breakpoints\",\n transform: (value, theme) => {\n var _a, _b, _c;\n const breakpoint = (_c = (_b = (_a = theme.__breakpoints) == null ? void 0 : _a.get(value)) == null ? void 0 : _b.minW) != null ? _c : value;\n const mq = `@media screen and (min-width: ${breakpoint})`;\n return { [mq]: { display: \"none\" } };\n }\n },\n hideBelow: {\n scale: \"breakpoints\",\n transform: (value, theme) => {\n var _a, _b, _c;\n const breakpoint = (_c = (_b = (_a = theme.__breakpoints) == null ? void 0 : _a.get(value)) == null ? void 0 : _b._minW) != null ? _c : value;\n const mq = `@media screen and (max-width: ${breakpoint})`;\n return { [mq]: { display: \"none\" } };\n }\n },\n verticalAlign: true,\n boxSizing: true,\n boxDecorationBreak: true,\n float: t.propT(\"float\", transformFunctions.float),\n objectFit: true,\n objectPosition: true,\n visibility: true,\n isolation: true\n};\nObject.assign(layout, {\n w: layout.width,\n h: layout.height,\n minW: layout.minWidth,\n maxW: layout.maxWidth,\n minH: layout.minHeight,\n maxH: layout.maxHeight,\n overscroll: layout.overscrollBehavior,\n overscrollX: layout.overscrollBehaviorX,\n overscrollY: layout.overscrollBehaviorY\n});\n\n// src/config/list.ts\nvar list = {\n listStyleType: true,\n listStylePosition: true,\n listStylePos: t.prop(\"listStylePosition\"),\n listStyleImage: true,\n listStyleImg: t.prop(\"listStyleImage\")\n};\n\n// src/get.ts\nfunction get(obj, path, fallback, index) {\n const key = typeof path === \"string\" ? path.split(\".\") : [path];\n for (index = 0; index < key.length; index += 1) {\n if (!obj)\n break;\n obj = obj[key[index]];\n }\n return obj === void 0 ? fallback : obj;\n}\nvar memoize = (fn) => {\n const cache = /* @__PURE__ */ new WeakMap();\n const memoizedFn = (obj, path, fallback, index) => {\n if (typeof obj === \"undefined\") {\n return fn(obj, path, fallback);\n }\n if (!cache.has(obj)) {\n cache.set(obj, /* @__PURE__ */ new Map());\n }\n const map = cache.get(obj);\n if (map.has(path)) {\n return map.get(path);\n }\n const value = fn(obj, path, fallback, index);\n map.set(path, value);\n return value;\n };\n return memoizedFn;\n};\nvar memoizedGet = memoize(get);\n\n// src/config/others.ts\nvar srOnly = {\n border: \"0px\",\n clip: \"rect(0, 0, 0, 0)\",\n width: \"1px\",\n height: \"1px\",\n margin: \"-1px\",\n padding: \"0px\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\"\n};\nvar srFocusable = {\n position: \"static\",\n width: \"auto\",\n height: \"auto\",\n clip: \"auto\",\n padding: \"0\",\n margin: \"0\",\n overflow: \"visible\",\n whiteSpace: \"normal\"\n};\nvar getWithPriority = (theme, key, styles) => {\n const result = {};\n const obj = memoizedGet(theme, key, {});\n for (const prop in obj) {\n const isInStyles = prop in styles && styles[prop] != null;\n if (!isInStyles)\n result[prop] = obj[prop];\n }\n return result;\n};\nvar others = {\n srOnly: {\n transform(value) {\n if (value === true)\n return srOnly;\n if (value === \"focusable\")\n return srFocusable;\n return {};\n }\n },\n layerStyle: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, `layerStyles.${value}`, styles)\n },\n textStyle: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, `textStyles.${value}`, styles)\n },\n apply: {\n processResult: true,\n transform: (value, theme, styles) => getWithPriority(theme, value, styles)\n }\n};\n\n// src/config/position.ts\nvar position = {\n position: true,\n pos: t.prop(\"position\"),\n zIndex: t.prop(\"zIndex\", \"zIndices\"),\n inset: t.spaceT(\"inset\"),\n insetX: t.spaceT([\"left\", \"right\"]),\n insetInline: t.spaceT(\"insetInline\"),\n insetY: t.spaceT([\"top\", \"bottom\"]),\n insetBlock: t.spaceT(\"insetBlock\"),\n top: t.spaceT(\"top\"),\n insetBlockStart: t.spaceT(\"insetBlockStart\"),\n bottom: t.spaceT(\"bottom\"),\n insetBlockEnd: t.spaceT(\"insetBlockEnd\"),\n left: t.spaceT(\"left\"),\n insetInlineStart: t.logical({\n scale: \"space\",\n property: { ltr: \"left\", rtl: \"right\" }\n }),\n right: t.spaceT(\"right\"),\n insetInlineEnd: t.logical({\n scale: \"space\",\n property: { ltr: \"right\", rtl: \"left\" }\n })\n};\nObject.assign(position, {\n insetStart: position.insetInlineStart,\n insetEnd: position.insetInlineEnd\n});\n\n// src/config/ring.ts\nvar ring = {\n ring: { transform: transformFunctions.ring },\n ringColor: t.colors(\"--chakra-ring-color\"),\n ringOffset: t.prop(\"--chakra-ring-offset-width\"),\n ringOffsetColor: t.colors(\"--chakra-ring-offset-color\"),\n ringInset: t.prop(\"--chakra-ring-inset\")\n};\n\n// src/config/space.ts\nvar space = {\n margin: t.spaceT(\"margin\"),\n marginTop: t.spaceT(\"marginTop\"),\n marginBlockStart: t.spaceT(\"marginBlockStart\"),\n marginRight: t.spaceT(\"marginRight\"),\n marginInlineEnd: t.spaceT(\"marginInlineEnd\"),\n marginBottom: t.spaceT(\"marginBottom\"),\n marginBlockEnd: t.spaceT(\"marginBlockEnd\"),\n marginLeft: t.spaceT(\"marginLeft\"),\n marginInlineStart: t.spaceT(\"marginInlineStart\"),\n marginX: t.spaceT([\"marginInlineStart\", \"marginInlineEnd\"]),\n marginInline: t.spaceT(\"marginInline\"),\n marginY: t.spaceT([\"marginTop\", \"marginBottom\"]),\n marginBlock: t.spaceT(\"marginBlock\"),\n padding: t.space(\"padding\"),\n paddingTop: t.space(\"paddingTop\"),\n paddingBlockStart: t.space(\"paddingBlockStart\"),\n paddingRight: t.space(\"paddingRight\"),\n paddingBottom: t.space(\"paddingBottom\"),\n paddingBlockEnd: t.space(\"paddingBlockEnd\"),\n paddingLeft: t.space(\"paddingLeft\"),\n paddingInlineStart: t.space(\"paddingInlineStart\"),\n paddingInlineEnd: t.space(\"paddingInlineEnd\"),\n paddingX: t.space([\"paddingInlineStart\", \"paddingInlineEnd\"]),\n paddingInline: t.space(\"paddingInline\"),\n paddingY: t.space([\"paddingTop\", \"paddingBottom\"]),\n paddingBlock: t.space(\"paddingBlock\")\n};\nObject.assign(space, {\n m: space.margin,\n mt: space.marginTop,\n mr: space.marginRight,\n me: space.marginInlineEnd,\n marginEnd: space.marginInlineEnd,\n mb: space.marginBottom,\n ml: space.marginLeft,\n ms: space.marginInlineStart,\n marginStart: space.marginInlineStart,\n mx: space.marginX,\n my: space.marginY,\n p: space.padding,\n pt: space.paddingTop,\n py: space.paddingY,\n px: space.paddingX,\n pb: space.paddingBottom,\n pl: space.paddingLeft,\n ps: space.paddingInlineStart,\n paddingStart: space.paddingInlineStart,\n pr: space.paddingRight,\n pe: space.paddingInlineEnd,\n paddingEnd: space.paddingInlineEnd\n});\n\n// src/config/text-decoration.ts\nvar textDecoration = {\n textDecorationColor: t.colors(\"textDecorationColor\"),\n textDecoration: true,\n textDecor: { property: \"textDecoration\" },\n textDecorationLine: true,\n textDecorationStyle: true,\n textDecorationThickness: true,\n textUnderlineOffset: true,\n textShadow: t.shadows(\"textShadow\")\n};\n\n// src/config/transform.ts\nvar transform = {\n clipPath: true,\n transform: t.propT(\"transform\", transformFunctions.transform),\n transformOrigin: true,\n translateX: t.spaceT(\"--chakra-translate-x\"),\n translateY: t.spaceT(\"--chakra-translate-y\"),\n skewX: t.degreeT(\"--chakra-skew-x\"),\n skewY: t.degreeT(\"--chakra-skew-y\"),\n scaleX: t.prop(\"--chakra-scale-x\"),\n scaleY: t.prop(\"--chakra-scale-y\"),\n scale: t.prop([\"--chakra-scale-x\", \"--chakra-scale-y\"]),\n rotate: t.degreeT(\"--chakra-rotate\")\n};\n\n// src/config/transition.ts\nvar transition = {\n transition: true,\n transitionDelay: true,\n animation: true,\n willChange: true,\n transitionDuration: t.prop(\"transitionDuration\", \"transition.duration\"),\n transitionProperty: t.prop(\"transitionProperty\", \"transition.property\"),\n transitionTimingFunction: t.prop(\n \"transitionTimingFunction\",\n \"transition.easing\"\n )\n};\n\n// src/config/typography.ts\nvar typography = {\n fontFamily: t.prop(\"fontFamily\", \"fonts\"),\n fontSize: t.prop(\"fontSize\", \"fontSizes\", transformFunctions.px),\n fontWeight: t.prop(\"fontWeight\", \"fontWeights\"),\n lineHeight: t.prop(\"lineHeight\", \"lineHeights\"),\n letterSpacing: t.prop(\"letterSpacing\", \"letterSpacings\"),\n textAlign: true,\n fontStyle: true,\n textIndent: true,\n wordBreak: true,\n overflowWrap: true,\n textOverflow: true,\n textTransform: true,\n whiteSpace: true,\n isTruncated: {\n transform(value) {\n if (value === true) {\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n };\n }\n }\n },\n noOfLines: {\n static: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n //@ts-ignore\n WebkitLineClamp: \"var(--chakra-line-clamp)\"\n },\n property: \"--chakra-line-clamp\"\n }\n};\n\n// src/config/scroll.ts\nvar scroll = {\n scrollBehavior: true,\n scrollSnapAlign: true,\n scrollSnapStop: true,\n scrollSnapType: true,\n // scroll margin\n scrollMargin: t.spaceT(\"scrollMargin\"),\n scrollMarginTop: t.spaceT(\"scrollMarginTop\"),\n scrollMarginBottom: t.spaceT(\"scrollMarginBottom\"),\n scrollMarginLeft: t.spaceT(\"scrollMarginLeft\"),\n scrollMarginRight: t.spaceT(\"scrollMarginRight\"),\n scrollMarginX: t.spaceT([\"scrollMarginLeft\", \"scrollMarginRight\"]),\n scrollMarginY: t.spaceT([\"scrollMarginTop\", \"scrollMarginBottom\"]),\n // scroll padding\n scrollPadding: t.spaceT(\"scrollPadding\"),\n scrollPaddingTop: t.spaceT(\"scrollPaddingTop\"),\n scrollPaddingBottom: t.spaceT(\"scrollPaddingBottom\"),\n scrollPaddingLeft: t.spaceT(\"scrollPaddingLeft\"),\n scrollPaddingRight: t.spaceT(\"scrollPaddingRight\"),\n scrollPaddingX: t.spaceT([\"scrollPaddingLeft\", \"scrollPaddingRight\"]),\n scrollPaddingY: t.spaceT([\"scrollPaddingTop\", \"scrollPaddingBottom\"])\n};\n\n// src/create-theme-vars/calc.ts\nimport { isObject as isObject2 } from \"@chakra-ui/shared-utils\";\nfunction resolveReference(operand) {\n if (isObject2(operand) && operand.reference) {\n return operand.reference;\n }\n return String(operand);\n}\nvar toExpression = (operator, ...operands) => operands.map(resolveReference).join(` ${operator} `).replace(/calc/g, \"\");\nvar add = (...operands) => `calc(${toExpression(\"+\", ...operands)})`;\nvar subtract = (...operands) => `calc(${toExpression(\"-\", ...operands)})`;\nvar multiply = (...operands) => `calc(${toExpression(\"*\", ...operands)})`;\nvar divide = (...operands) => `calc(${toExpression(\"/\", ...operands)})`;\nvar negate = (x) => {\n const value = resolveReference(x);\n if (value != null && !Number.isNaN(parseFloat(value))) {\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`;\n }\n return multiply(value, -1);\n};\nvar calc = Object.assign(\n (x) => ({\n add: (...operands) => calc(add(x, ...operands)),\n subtract: (...operands) => calc(subtract(x, ...operands)),\n multiply: (...operands) => calc(multiply(x, ...operands)),\n divide: (...operands) => calc(divide(x, ...operands)),\n negate: () => calc(negate(x)),\n toString: () => x.toString()\n }),\n {\n add,\n subtract,\n multiply,\n divide,\n negate\n }\n);\n\n// src/create-theme-vars/css-var.ts\nfunction replaceWhiteSpace(value, replaceValue = \"-\") {\n return value.replace(/\\s+/g, replaceValue);\n}\nfunction escape(value) {\n const valueStr = replaceWhiteSpace(value.toString());\n return escapeSymbol(escapeDot(valueStr));\n}\nfunction escapeDot(value) {\n if (value.includes(\"\\\\.\"))\n return value;\n const isDecimal = !Number.isInteger(parseFloat(value.toString()));\n return isDecimal ? value.replace(\".\", `\\\\.`) : value;\n}\nfunction escapeSymbol(value) {\n return value.replace(/[!-,/:-@[-^`{-~]/g, \"\\\\$&\");\n}\nfunction addPrefix(value, prefix = \"\") {\n return [prefix, value].filter(Boolean).join(\"-\");\n}\nfunction toVarReference(name, fallback) {\n return `var(${name}${fallback ? `, ${fallback}` : \"\"})`;\n}\nfunction toVarDefinition(value, prefix = \"\") {\n return escape(`--${addPrefix(value, prefix)}`);\n}\nfunction cssVar(name, fallback, cssVarPrefix) {\n const cssVariable = toVarDefinition(name, cssVarPrefix);\n return {\n variable: cssVariable,\n reference: toVarReference(cssVariable, fallback)\n };\n}\nfunction defineCssVars(scope, keys2) {\n const vars = {};\n for (const key of keys2) {\n if (Array.isArray(key)) {\n const [name, fallback] = key;\n vars[name] = cssVar(`${scope}-${name}`, fallback);\n continue;\n }\n vars[key] = cssVar(`${scope}-${key}`);\n }\n return vars;\n}\n\n// ../../utilities/breakpoint-utils/src/breakpoint.ts\nimport { isObject as isObject3 } from \"@chakra-ui/shared-utils\";\nfunction getLastItem(array) {\n const length = array == null ? 0 : array.length;\n return length ? array[length - 1] : void 0;\n}\nfunction analyzeCSSValue2(value) {\n const num = parseFloat(value.toString());\n const unit = value.toString().replace(String(num), \"\");\n return { unitless: !unit, value: num, unit };\n}\nfunction px(value) {\n if (value == null)\n return value;\n const { unitless } = analyzeCSSValue2(value);\n return unitless || typeof value === \"number\" ? `${value}px` : value;\n}\nvar sortByBreakpointValue = (a, b) => parseInt(a[1], 10) > parseInt(b[1], 10) ? 1 : -1;\nvar sortBps = (breakpoints) => Object.fromEntries(Object.entries(breakpoints).sort(sortByBreakpointValue));\nfunction normalize(breakpoints) {\n const sorted = sortBps(breakpoints);\n return Object.assign(Object.values(sorted), sorted);\n}\nfunction keys(breakpoints) {\n const value = Object.keys(sortBps(breakpoints));\n return new Set(value);\n}\nfunction subtract2(value) {\n var _a;\n if (!value)\n return value;\n value = (_a = px(value)) != null ? _a : value;\n const OFFSET = -0.02;\n return typeof value === \"number\" ? `${value + OFFSET}` : value.replace(/(\\d+\\.?\\d*)/u, (m) => `${parseFloat(m) + OFFSET}`);\n}\nfunction toMediaQueryString(min, max) {\n const query = [\"@media screen\"];\n if (min)\n query.push(\"and\", `(min-width: ${px(min)})`);\n if (max)\n query.push(\"and\", `(max-width: ${px(max)})`);\n return query.join(\" \");\n}\nfunction analyzeBreakpoints(breakpoints) {\n var _a;\n if (!breakpoints)\n return null;\n breakpoints.base = (_a = breakpoints.base) != null ? _a : \"0px\";\n const normalized = normalize(breakpoints);\n const queries = Object.entries(breakpoints).sort(sortByBreakpointValue).map(([breakpoint, minW], index, entry) => {\n var _a2;\n let [, maxW] = (_a2 = entry[index + 1]) != null ? _a2 : [];\n maxW = parseFloat(maxW) > 0 ? subtract2(maxW) : void 0;\n return {\n _minW: subtract2(minW),\n breakpoint,\n minW,\n maxW,\n maxWQuery: toMediaQueryString(null, maxW),\n minWQuery: toMediaQueryString(minW),\n minMaxQuery: toMediaQueryString(minW, maxW)\n };\n });\n const _keys = keys(breakpoints);\n const _keysArr = Array.from(_keys.values());\n return {\n keys: _keys,\n normalized,\n isResponsive(test) {\n const keys2 = Object.keys(test);\n return keys2.length > 0 && keys2.every((key) => _keys.has(key));\n },\n asObject: sortBps(breakpoints),\n asArray: normalize(breakpoints),\n details: queries,\n get(key) {\n return queries.find((q) => q.breakpoint === key);\n },\n media: [\n null,\n ...normalized.map((minW) => toMediaQueryString(minW)).slice(1)\n ],\n /**\n * Converts the object responsive syntax to array syntax\n *\n * @example\n * toArrayValue({ base: 1, sm: 2, md: 3 }) // => [1, 2, 3]\n */\n toArrayValue(test) {\n if (!isObject3(test)) {\n throw new Error(\"toArrayValue: value must be an object\");\n }\n const result = _keysArr.map((bp) => {\n var _a2;\n return (_a2 = test[bp]) != null ? _a2 : null;\n });\n while (getLastItem(result) === null) {\n result.pop();\n }\n return result;\n },\n /**\n * Converts the array responsive syntax to object syntax\n *\n * @example\n * toObjectValue([1, 2, 3]) // => { base: 1, sm: 2, md: 3 }\n */\n toObjectValue(test) {\n if (!Array.isArray(test)) {\n throw new Error(\"toObjectValue: value must be an array\");\n }\n return test.reduce((acc, value, index) => {\n const key = _keysArr[index];\n if (key != null && value != null)\n acc[key] = value;\n return acc;\n }, {});\n }\n };\n}\n\n// src/create-theme-vars/create-theme-vars.ts\nimport { isObject as isObject4 } from \"@chakra-ui/shared-utils\";\n\n// src/pseudos.ts\nvar state = {\n hover: (str, post) => `${str}:hover ${post}, ${str}[data-hover] ${post}`,\n focus: (str, post) => `${str}:focus ${post}, ${str}[data-focus] ${post}`,\n focusVisible: (str, post) => `${str}:focus-visible ${post}`,\n focusWithin: (str, post) => `${str}:focus-within ${post}`,\n active: (str, post) => `${str}:active ${post}, ${str}[data-active] ${post}`,\n disabled: (str, post) => `${str}:disabled ${post}, ${str}[data-disabled] ${post}`,\n invalid: (str, post) => `${str}:invalid ${post}, ${str}[data-invalid] ${post}`,\n checked: (str, post) => `${str}:checked ${post}, ${str}[data-checked] ${post}`,\n indeterminate: (str, post) => `${str}:indeterminate ${post}, ${str}[aria-checked=mixed] ${post}, ${str}[data-indeterminate] ${post}`,\n readOnly: (str, post) => `${str}:read-only ${post}, ${str}[readonly] ${post}, ${str}[data-read-only] ${post}`,\n expanded: (str, post) => `${str}:read-only ${post}, ${str}[aria-expanded=true] ${post}, ${str}[data-expanded] ${post}`,\n placeholderShown: (str, post) => `${str}:placeholder-shown ${post}`\n};\nvar toGroup = (fn) => merge((v) => fn(v, \"&\"), \"[role=group]\", \"[data-group]\", \".group\");\nvar toPeer = (fn) => merge((v) => fn(v, \"~ &\"), \"[data-peer]\", \".peer\");\nvar merge = (fn, ...selectors) => selectors.map(fn).join(\", \");\nvar pseudoSelectors = {\n /**\n * Styles for CSS selector `&:hover`\n */\n _hover: \"&:hover, &[data-hover]\",\n /**\n * Styles for CSS Selector `&:active`\n */\n _active: \"&:active, &[data-active]\",\n /**\n * Styles for CSS selector `&:focus`\n *\n */\n _focus: \"&:focus, &[data-focus]\",\n /**\n * Styles for the highlighted state.\n */\n _highlighted: \"&[data-highlighted]\",\n /**\n * Styles to apply when a child of this element has received focus\n * - CSS Selector `&:focus-within`\n */\n _focusWithin: \"&:focus-within\",\n /**\n * Styles to apply when this element has received focus via tabbing\n * - CSS Selector `&:focus-visible`\n */\n _focusVisible: \"&:focus-visible, &[data-focus-visible]\",\n /**\n * Styles to apply when this element is disabled. The passed styles are applied to these CSS selectors:\n * - `&[aria-disabled=true]`\n * - `&:disabled`\n * - `&[data-disabled]`\n * - `&[disabled]`\n */\n _disabled: \"&:disabled, &[disabled], &[aria-disabled=true], &[data-disabled]\",\n /**\n * Styles for CSS Selector `&:readonly`\n */\n _readOnly: \"&[aria-readonly=true], &[readonly], &[data-readonly]\",\n /**\n * Styles for CSS selector `&::before`\n *\n * NOTE:When using this, ensure the `content` is wrapped in a backtick.\n * @example\n * ```jsx\n * \n * ```\n */\n _before: \"&::before\",\n /**\n * Styles for CSS selector `&::after`\n *\n * NOTE:When using this, ensure the `content` is wrapped in a backtick.\n * @example\n * ```jsx\n * \n * ```\n */\n _after: \"&::after\",\n /**\n * Styles for CSS selector `&:empty`\n */\n _empty: \"&:empty\",\n /**\n * Styles to apply when the ARIA attribute `aria-expanded` is `true`\n * - CSS selector `&[aria-expanded=true]`\n */\n _expanded: \"&[aria-expanded=true], &[data-expanded]\",\n /**\n * Styles to apply when the ARIA attribute `aria-checked` is `true`\n * - CSS selector `&[aria-checked=true]`\n */\n _checked: \"&[aria-checked=true], &[data-checked]\",\n /**\n * Styles to apply when the ARIA attribute `aria-grabbed` is `true`\n * - CSS selector `&[aria-grabbed=true]`\n */\n _grabbed: \"&[aria-grabbed=true], &[data-grabbed]\",\n /**\n * Styles for CSS Selector `&[aria-pressed=true]`\n * Typically used to style the current \"pressed\" state of toggle buttons\n */\n _pressed: \"&[aria-pressed=true], &[data-pressed]\",\n /**\n * Styles to apply when the ARIA attribute `aria-invalid` is `true`\n * - CSS selector `&[aria-invalid=true]`\n */\n _invalid: \"&[aria-invalid=true], &[data-invalid]\",\n /**\n * Styles for the valid state\n * - CSS selector `&[data-valid], &[data-state=valid]`\n */\n _valid: \"&[data-valid], &[data-state=valid]\",\n /**\n * Styles for CSS Selector `&[aria-busy=true]` or `&[data-loading=true]`.\n * Useful for styling loading states\n */\n _loading: \"&[data-loading], &[aria-busy=true]\",\n /**\n * Styles to apply when the ARIA attribute `aria-selected` is `true`\n *\n * - CSS selector `&[aria-selected=true]`\n */\n _selected: \"&[aria-selected=true], &[data-selected]\",\n /**\n * Styles for CSS Selector `[hidden=true]`\n */\n _hidden: \"&[hidden], &[data-hidden]\",\n /**\n * Styles for CSS Selector `&:-webkit-autofill`\n */\n _autofill: \"&:-webkit-autofill\",\n /**\n * Styles for CSS Selector `&:nth-child(even)`\n */\n _even: \"&:nth-of-type(even)\",\n /**\n * Styles for CSS Selector `&:nth-child(odd)`\n */\n _odd: \"&:nth-of-type(odd)\",\n /**\n * Styles for CSS Selector `&:first-of-type`\n */\n _first: \"&:first-of-type\",\n /**\n * Styles for CSS selector `&::first-letter`\n *\n * NOTE: This selector is only applied for block-level elements and not preceded by an image or table.\n * @example\n * ```jsx\n * Once upon a time\n * ```\n */\n _firstLetter: \"&::first-letter\",\n /**\n * Styles for CSS Selector `&:last-of-type`\n */\n _last: \"&:last-of-type\",\n /**\n * Styles for CSS Selector `&:not(:first-of-type)`\n */\n _notFirst: \"&:not(:first-of-type)\",\n /**\n * Styles for CSS Selector `&:not(:last-of-type)`\n */\n _notLast: \"&:not(:last-of-type)\",\n /**\n * Styles for CSS Selector `&:visited`\n */\n _visited: \"&:visited\",\n /**\n * Used to style the active link in a navigation\n * Styles for CSS Selector `&[aria-current=page]`\n */\n _activeLink: \"&[aria-current=page]\",\n /**\n * Used to style the current step within a process\n * Styles for CSS Selector `&[aria-current=step]`\n */\n _activeStep: \"&[aria-current=step]\",\n /**\n * Styles to apply when the ARIA attribute `aria-checked` is `mixed`\n * - CSS selector `&[aria-checked=mixed]`\n */\n _indeterminate: \"&:indeterminate, &[aria-checked=mixed], &[data-indeterminate]\",\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is hovered\n */\n _groupHover: toGroup(state.hover),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is hovered\n */\n _peerHover: toPeer(state.hover),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is focused\n */\n _groupFocus: toGroup(state.focus),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is focused\n */\n _peerFocus: toPeer(state.focus),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` has visible focus\n */\n _groupFocusVisible: toGroup(state.focusVisible),\n /**\n * Styles to apply when a sibling element with `.peer`or `data-peer` has visible focus\n */\n _peerFocusVisible: toPeer(state.focusVisible),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is active\n */\n _groupActive: toGroup(state.active),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is active\n */\n _peerActive: toPeer(state.active),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is disabled\n */\n _groupDisabled: toGroup(state.disabled),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is disabled\n */\n _peerDisabled: toPeer(state.disabled),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is invalid\n */\n _groupInvalid: toGroup(state.invalid),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is invalid\n */\n _peerInvalid: toPeer(state.invalid),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` is checked\n */\n _groupChecked: toGroup(state.checked),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` is checked\n */\n _peerChecked: toPeer(state.checked),\n /**\n * Styles to apply when a parent element with `.group`, `data-group` or `role=group` has focus within\n */\n _groupFocusWithin: toGroup(state.focusWithin),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` has focus within\n */\n _peerFocusWithin: toPeer(state.focusWithin),\n /**\n * Styles to apply when a sibling element with `.peer` or `data-peer` has placeholder shown\n */\n _peerPlaceholderShown: toPeer(state.placeholderShown),\n /**\n * Styles for CSS Selector `&::placeholder`.\n */\n _placeholder: \"&::placeholder\",\n /**\n * Styles for CSS Selector `&:placeholder-shown`.\n */\n _placeholderShown: \"&:placeholder-shown\",\n /**\n * Styles for CSS Selector `&:fullscreen`.\n */\n _fullScreen: \"&:fullscreen\",\n /**\n * Styles for CSS Selector `&::selection`\n */\n _selection: \"&::selection\",\n /**\n * Styles for CSS Selector `[dir=rtl] &`\n * It is applied when a parent element or this element has `dir=\"rtl\"`\n */\n _rtl: \"[dir=rtl] &, &[dir=rtl]\",\n /**\n * Styles for CSS Selector `[dir=ltr] &`\n * It is applied when a parent element or this element has `dir=\"ltr\"`\n */\n _ltr: \"[dir=ltr] &, &[dir=ltr]\",\n /**\n * Styles for CSS Selector `@media (prefers-color-scheme: dark)`\n * It is used when the user has requested the system use a light or dark color theme.\n */\n _mediaDark: \"@media (prefers-color-scheme: dark)\",\n /**\n * Styles for CSS Selector `@media (prefers-reduced-motion: reduce)`\n * It is used when the user has requested the system to reduce the amount of animations.\n */\n _mediaReduceMotion: \"@media (prefers-reduced-motion: reduce)\",\n /**\n * Styles for when `data-theme` is applied to any parent of\n * this component or element.\n */\n _dark: \".chakra-ui-dark &:not([data-theme]),[data-theme=dark] &:not([data-theme]),&[data-theme=dark]\",\n /**\n * Styles for when `data-theme` is applied to any parent of\n * this component or element.\n */\n _light: \".chakra-ui-light &:not([data-theme]),[data-theme=light] &:not([data-theme]),&[data-theme=light]\",\n /**\n * Styles for the CSS Selector `&[data-orientation=horizontal]`\n */\n _horizontal: \"&[data-orientation=horizontal]\",\n /**\n * Styles for the CSS Selector `&[data-orientation=vertical]`\n */\n _vertical: \"&[data-orientation=vertical]\"\n};\nvar pseudoPropNames = Object.keys(\n pseudoSelectors\n);\n\n// src/create-theme-vars/create-theme-vars.ts\nimport mergeWith from \"lodash.mergewith\";\nfunction tokenToCssVar(token, prefix) {\n return cssVar(String(token).replace(/\\./g, \"-\"), void 0, prefix);\n}\nfunction createThemeVars(flatTokens, options) {\n let cssVars = {};\n const cssMap = {};\n for (const [token, tokenValue] of Object.entries(flatTokens)) {\n const { isSemantic, value } = tokenValue;\n const { variable, reference } = tokenToCssVar(token, options == null ? void 0 : options.cssVarPrefix);\n if (!isSemantic) {\n if (token.startsWith(\"space\")) {\n const keys2 = token.split(\".\");\n const [firstKey, ...referenceKeys] = keys2;\n const negativeLookupKey = `${firstKey}.-${referenceKeys.join(\".\")}`;\n const negativeValue = calc.negate(value);\n const negatedReference = calc.negate(reference);\n cssMap[negativeLookupKey] = {\n value: negativeValue,\n var: variable,\n varRef: negatedReference\n };\n }\n cssVars[variable] = value;\n cssMap[token] = {\n value,\n var: variable,\n varRef: reference\n };\n continue;\n }\n const lookupToken = (maybeToken) => {\n const scale = String(token).split(\".\")[0];\n const withScale = [scale, maybeToken].join(\".\");\n const resolvedTokenValue = flatTokens[withScale];\n if (!resolvedTokenValue)\n return maybeToken;\n const { reference: reference2 } = tokenToCssVar(withScale, options == null ? void 0 : options.cssVarPrefix);\n return reference2;\n };\n const normalizedValue = isObject4(value) ? value : { default: value };\n cssVars = mergeWith(\n cssVars,\n Object.entries(normalizedValue).reduce(\n (acc, [conditionAlias, conditionValue]) => {\n var _a, _b;\n if (!conditionValue)\n return acc;\n const tokenReference = lookupToken(`${conditionValue}`);\n if (conditionAlias === \"default\") {\n acc[variable] = tokenReference;\n return acc;\n }\n const conditionSelector = (_b = (_a = pseudoSelectors) == null ? void 0 : _a[conditionAlias]) != null ? _b : conditionAlias;\n acc[conditionSelector] = { [variable]: tokenReference };\n return acc;\n },\n {}\n )\n );\n cssMap[token] = {\n value: reference,\n var: variable,\n varRef: reference\n };\n }\n return {\n cssVars,\n cssMap\n };\n}\n\n// ../../utilities/object-utils/src/omit.ts\nfunction omit(object, keysToOmit = []) {\n const clone = Object.assign({}, object);\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key];\n }\n }\n return clone;\n}\n\n// ../../utilities/object-utils/src/pick.ts\nfunction pick(object, keysToPick) {\n const result = {};\n for (const key of keysToPick) {\n if (key in object) {\n result[key] = object[key];\n }\n }\n return result;\n}\n\n// ../../utilities/object-utils/src/walk-object.ts\nfunction isObject5(value) {\n return typeof value === \"object\" && value != null && !Array.isArray(value);\n}\nfunction walkObject(target, predicate, options = {}) {\n const { stop, getKey } = options;\n function inner(value, path = []) {\n var _a;\n if (isObject5(value) || Array.isArray(value)) {\n const result = {};\n for (const [prop, child] of Object.entries(value)) {\n const key = (_a = getKey == null ? void 0 : getKey(prop)) != null ? _a : prop;\n const childPath = [...path, key];\n if (stop == null ? void 0 : stop(value, childPath)) {\n return predicate(value, path);\n }\n result[key] = inner(child, childPath);\n }\n return result;\n }\n return predicate(value, path);\n }\n return inner(target);\n}\n\n// src/create-theme-vars/theme-tokens.ts\nvar tokens = [\n \"colors\",\n \"borders\",\n \"borderWidths\",\n \"borderStyles\",\n \"fonts\",\n \"fontSizes\",\n \"fontWeights\",\n \"gradients\",\n \"letterSpacings\",\n \"lineHeights\",\n \"radii\",\n \"space\",\n \"shadows\",\n \"sizes\",\n \"zIndices\",\n \"transition\",\n \"blur\",\n \"breakpoints\"\n];\nfunction extractTokens(theme) {\n const _tokens = tokens;\n return pick(theme, _tokens);\n}\nfunction extractSemanticTokens(theme) {\n return theme.semanticTokens;\n}\nfunction omitVars(rawTheme) {\n const { __cssMap, __cssVars, __breakpoints, ...cleanTheme } = rawTheme;\n return cleanTheme;\n}\n\n// src/create-theme-vars/flatten-tokens.ts\nvar isSemanticCondition = (key) => pseudoPropNames.includes(key) || \"default\" === key;\nfunction flattenTokens({\n tokens: tokens2,\n semanticTokens\n}) {\n const result = {};\n walkObject(tokens2, (value, path) => {\n if (value == null)\n return;\n result[path.join(\".\")] = { isSemantic: false, value };\n });\n walkObject(\n semanticTokens,\n (value, path) => {\n if (value == null)\n return;\n result[path.join(\".\")] = { isSemantic: true, value };\n },\n {\n stop: (value) => Object.keys(value).every(isSemanticCondition)\n }\n );\n return result;\n}\n\n// src/create-theme-vars/to-css-var.ts\nfunction toCSSVar(rawTheme) {\n var _a;\n const theme = omitVars(rawTheme);\n const tokens2 = extractTokens(theme);\n const semanticTokens = extractSemanticTokens(theme);\n const flatTokens = flattenTokens({ tokens: tokens2, semanticTokens });\n const cssVarPrefix = (_a = theme.config) == null ? void 0 : _a.cssVarPrefix;\n const {\n /**\n * This is more like a dictionary of tokens users will type `green.500`,\n * and their equivalent css variable.\n */\n cssMap,\n /**\n * The extracted css variables will be stored here, and used in\n * the emotion's component to attach variables to `:root`\n */\n cssVars\n } = createThemeVars(flatTokens, { cssVarPrefix });\n const defaultCssVars = {\n \"--chakra-ring-inset\": \"var(--chakra-empty,/*!*/ /*!*/)\",\n \"--chakra-ring-offset-width\": \"0px\",\n \"--chakra-ring-offset-color\": \"#fff\",\n \"--chakra-ring-color\": \"rgba(66, 153, 225, 0.6)\",\n \"--chakra-ring-offset-shadow\": \"0 0 #0000\",\n \"--chakra-ring-shadow\": \"0 0 #0000\",\n \"--chakra-space-x-reverse\": \"0\",\n \"--chakra-space-y-reverse\": \"0\"\n };\n Object.assign(theme, {\n __cssVars: { ...defaultCssVars, ...cssVars },\n __cssMap: cssMap,\n __breakpoints: analyzeBreakpoints(theme.breakpoints)\n });\n return theme;\n}\n\n// src/css.ts\nimport { isObject as isObject7, runIfFn as runIfFn2 } from \"@chakra-ui/shared-utils\";\nimport mergeWith3 from \"lodash.mergewith\";\n\n// src/system.ts\nimport mergeWith2 from \"lodash.mergewith\";\nvar systemProps = mergeWith2(\n {},\n background,\n border,\n color,\n flexbox,\n layout,\n filter,\n ring,\n interactivity,\n grid,\n others,\n position,\n effect,\n space,\n scroll,\n typography,\n textDecoration,\n transform,\n list,\n transition\n);\nvar layoutSystem = Object.assign({}, space, layout, flexbox, grid, position);\nvar layoutPropNames = Object.keys(\n layoutSystem\n);\nvar propNames = [...Object.keys(systemProps), ...pseudoPropNames];\nvar styleProps = { ...systemProps, ...pseudoSelectors };\nvar isStyleProp = (prop) => prop in styleProps;\n\n// src/utils/expand-responsive.ts\nimport { isObject as isObject6, runIfFn } from \"@chakra-ui/shared-utils\";\nvar expandResponsive = (styles) => (theme) => {\n if (!theme.__breakpoints)\n return styles;\n const { isResponsive, toArrayValue, media: medias } = theme.__breakpoints;\n const computedStyles = {};\n for (const key in styles) {\n let value = runIfFn(styles[key], theme);\n if (value == null)\n continue;\n value = isObject6(value) && isResponsive(value) ? toArrayValue(value) : value;\n if (!Array.isArray(value)) {\n computedStyles[key] = value;\n continue;\n }\n const queries = value.slice(0, medias.length).length;\n for (let index = 0; index < queries; index += 1) {\n const media = medias == null ? void 0 : medias[index];\n if (!media) {\n computedStyles[key] = value[index];\n continue;\n }\n computedStyles[media] = computedStyles[media] || {};\n if (value[index] == null) {\n continue;\n }\n computedStyles[media][key] = value[index];\n }\n }\n return computedStyles;\n};\n\n// src/utils/split-by-comma.ts\nfunction splitByComma(value) {\n const chunks = [];\n let chunk = \"\";\n let inParens = false;\n for (let i = 0; i < value.length; i++) {\n const char = value[i];\n if (char === \"(\") {\n inParens = true;\n chunk += char;\n } else if (char === \")\") {\n inParens = false;\n chunk += char;\n } else if (char === \",\" && !inParens) {\n chunks.push(chunk);\n chunk = \"\";\n } else {\n chunk += char;\n }\n }\n chunk = chunk.trim();\n if (chunk) {\n chunks.push(chunk);\n }\n return chunks;\n}\n\n// src/css.ts\nfunction isCssVar2(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nvar isCSSVariableTokenValue = (key, value) => key.startsWith(\"--\") && typeof value === \"string\" && !isCssVar2(value);\nvar resolveTokenValue = (theme, value) => {\n var _a, _b;\n if (value == null)\n return value;\n const getVar = (val) => {\n var _a2, _b2;\n return (_b2 = (_a2 = theme.__cssMap) == null ? void 0 : _a2[val]) == null ? void 0 : _b2.varRef;\n };\n const getValue = (val) => {\n var _a2;\n return (_a2 = getVar(val)) != null ? _a2 : val;\n };\n const [tokenValue, fallbackValue] = splitByComma(value);\n value = (_b = (_a = getVar(tokenValue)) != null ? _a : getValue(fallbackValue)) != null ? _b : getValue(value);\n return value;\n};\nfunction getCss(options) {\n const { configs = {}, pseudos = {}, theme } = options;\n const css2 = (stylesOrFn, nested = false) => {\n var _a, _b, _c;\n const _styles = runIfFn2(stylesOrFn, theme);\n const styles = expandResponsive(_styles)(theme);\n let computedStyles = {};\n for (let key in styles) {\n const valueOrFn = styles[key];\n let value = runIfFn2(valueOrFn, theme);\n if (key in pseudos) {\n key = pseudos[key];\n }\n if (isCSSVariableTokenValue(key, value)) {\n value = resolveTokenValue(theme, value);\n }\n let config = configs[key];\n if (config === true) {\n config = { property: key };\n }\n if (isObject7(value)) {\n computedStyles[key] = (_a = computedStyles[key]) != null ? _a : {};\n computedStyles[key] = mergeWith3(\n {},\n computedStyles[key],\n css2(value, true)\n );\n continue;\n }\n let rawValue = (_c = (_b = config == null ? void 0 : config.transform) == null ? void 0 : _b.call(config, value, theme, _styles)) != null ? _c : value;\n rawValue = (config == null ? void 0 : config.processResult) ? css2(rawValue, true) : rawValue;\n const configProperty = runIfFn2(config == null ? void 0 : config.property, theme);\n if (!nested && (config == null ? void 0 : config.static)) {\n const staticStyles = runIfFn2(config.static, theme);\n computedStyles = mergeWith3({}, computedStyles, staticStyles);\n }\n if (configProperty && Array.isArray(configProperty)) {\n for (const property of configProperty) {\n computedStyles[property] = rawValue;\n }\n continue;\n }\n if (configProperty) {\n if (configProperty === \"&\" && isObject7(rawValue)) {\n computedStyles = mergeWith3({}, computedStyles, rawValue);\n } else {\n computedStyles[configProperty] = rawValue;\n }\n continue;\n }\n if (isObject7(rawValue)) {\n computedStyles = mergeWith3({}, computedStyles, rawValue);\n continue;\n }\n computedStyles[key] = rawValue;\n }\n return computedStyles;\n };\n return css2;\n}\nvar css = (styles) => (theme) => {\n const cssFn = getCss({\n theme,\n pseudos: pseudoSelectors,\n configs: systemProps\n });\n return cssFn(styles);\n};\n\n// src/define-styles.ts\nfunction defineStyle(styles) {\n return styles;\n}\nfunction defineStyleConfig(config) {\n return config;\n}\nfunction createMultiStyleConfigHelpers(parts) {\n return {\n definePartsStyle(config) {\n return config;\n },\n defineMultiStyleConfig(config) {\n return { parts, ...config };\n }\n };\n}\n\n// src/style-config.ts\nimport { runIfFn as runIfFn3, isObject as isObject8 } from \"@chakra-ui/shared-utils\";\nimport mergeWith4 from \"lodash.mergewith\";\nfunction normalize2(value, toArray) {\n if (Array.isArray(value))\n return value;\n if (isObject8(value))\n return toArray(value);\n if (value != null)\n return [value];\n}\nfunction getNextIndex(values, i) {\n for (let j = i + 1; j < values.length; j++) {\n if (values[j] != null)\n return j;\n }\n return -1;\n}\nfunction createResolver(theme) {\n const breakpointUtil = theme.__breakpoints;\n return function resolver(config, prop, value, props) {\n var _a, _b;\n if (!breakpointUtil)\n return;\n const result = {};\n const normalized = normalize2(value, breakpointUtil.toArrayValue);\n if (!normalized)\n return result;\n const len = normalized.length;\n const isSingle = len === 1;\n const isMultipart = !!config.parts;\n for (let i = 0; i < len; i++) {\n const key = breakpointUtil.details[i];\n const nextKey = breakpointUtil.details[getNextIndex(normalized, i)];\n const query = toMediaQueryString(key.minW, nextKey == null ? void 0 : nextKey._minW);\n const styles = runIfFn3((_a = config[prop]) == null ? void 0 : _a[normalized[i]], props);\n if (!styles)\n continue;\n if (isMultipart) {\n (_b = config.parts) == null ? void 0 : _b.forEach((part) => {\n mergeWith4(result, {\n [part]: isSingle ? styles[part] : { [query]: styles[part] }\n });\n });\n continue;\n }\n if (!isMultipart) {\n if (isSingle)\n mergeWith4(result, styles);\n else\n result[query] = styles;\n continue;\n }\n result[query] = styles;\n }\n return result;\n };\n}\nfunction resolveStyleConfig(config) {\n return (props) => {\n var _a;\n const { variant, size, theme } = props;\n const recipe = createResolver(theme);\n return mergeWith4(\n {},\n runIfFn3((_a = config.baseStyle) != null ? _a : {}, props),\n recipe(config, \"sizes\", size, props),\n recipe(config, \"variants\", variant, props)\n );\n };\n}\n\n// src/get-css-var.ts\nfunction getCSSVar(theme, scale, value) {\n var _a, _b, _c;\n return (_c = (_b = (_a = theme.__cssMap) == null ? void 0 : _a[`${scale}.${value}`]) == null ? void 0 : _b.varRef) != null ? _c : value;\n}\n\n// src/theming-props.ts\nfunction omitThemingProps(props) {\n return omit(props, [\"styleConfig\", \"size\", \"variant\", \"colorScheme\"]);\n}\nexport {\n addPrefix,\n background,\n border,\n calc,\n color,\n createMultiStyleConfigHelpers,\n css,\n cssVar,\n defineCssVars,\n defineStyle,\n defineStyleConfig,\n effect,\n filter,\n flattenTokens,\n flexbox,\n getCSSVar,\n getCss,\n grid,\n interactivity,\n isStyleProp,\n layout,\n layoutPropNames,\n list,\n omitThemingProps,\n others,\n position,\n propNames,\n pseudoPropNames,\n pseudoSelectors,\n resolveStyleConfig,\n ring,\n scroll,\n space,\n systemProps,\n textDecoration,\n toCSSVar,\n toVarDefinition,\n toVarReference,\n tokenToCSSVar,\n transform,\n transition,\n typography\n};\n", "import { isObject } from \"@chakra-ui/shared-utils\"\nimport type { ChakraTheme } from \"../theme.types\"\n\nexport const requiredChakraThemeKeys: (keyof ChakraTheme)[] = [\n \"borders\",\n \"breakpoints\",\n \"colors\",\n \"components\",\n \"config\",\n \"direction\",\n \"fonts\",\n \"fontSizes\",\n \"fontWeights\",\n \"letterSpacings\",\n \"lineHeights\",\n \"radii\",\n \"shadows\",\n \"sizes\",\n \"space\",\n \"styles\",\n \"transition\",\n \"zIndices\",\n]\n\nexport function isChakraTheme(unit: unknown): unit is ChakraTheme {\n if (!isObject(unit)) {\n return false\n }\n\n return requiredChakraThemeKeys.every((propertyName) =>\n Object.prototype.hasOwnProperty.call(unit, propertyName),\n )\n}\n", "const transitionProperty = {\n common:\n \"background-color, border-color, color, fill, stroke, opacity, box-shadow, transform\",\n colors: \"background-color, border-color, color, fill, stroke\",\n dimensions: \"width, height\",\n position: \"left, right, top, bottom\",\n background: \"background-color, background-image, background-position\",\n}\n\nconst transitionTimingFunction = {\n \"ease-in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"ease-out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n \"ease-in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n}\n\nconst transitionDuration = {\n \"ultra-fast\": \"50ms\",\n faster: \"100ms\",\n fast: \"150ms\",\n normal: \"200ms\",\n slow: \"300ms\",\n slower: \"400ms\",\n \"ultra-slow\": \"500ms\",\n}\n\nconst transition = {\n property: transitionProperty,\n easing: transitionTimingFunction,\n duration: transitionDuration,\n}\n\nexport default transition\n", "const zIndices = {\n hide: -1,\n auto: \"auto\",\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n}\n\nexport default zIndices\n", "const borders = {\n none: 0,\n \"1px\": \"1px solid\",\n \"2px\": \"2px solid\",\n \"4px\": \"4px solid\",\n \"8px\": \"8px solid\",\n}\n\nexport default borders\n", "const breakpoints = {\n base: \"0em\",\n sm: \"30em\",\n md: \"48em\",\n lg: \"62em\",\n xl: \"80em\",\n \"2xl\": \"96em\",\n}\n\nexport default breakpoints\n", "const colors = {\n transparent: \"transparent\",\n current: \"currentColor\",\n black: \"#000000\",\n white: \"#FFFFFF\",\n\n whiteAlpha: {\n 50: \"rgba(255, 255, 255, 0.04)\",\n 100: \"rgba(255, 255, 255, 0.06)\",\n 200: \"rgba(255, 255, 255, 0.08)\",\n 300: \"rgba(255, 255, 255, 0.16)\",\n 400: \"rgba(255, 255, 255, 0.24)\",\n 500: \"rgba(255, 255, 255, 0.36)\",\n 600: \"rgba(255, 255, 255, 0.48)\",\n 700: \"rgba(255, 255, 255, 0.64)\",\n 800: \"rgba(255, 255, 255, 0.80)\",\n 900: \"rgba(255, 255, 255, 0.92)\",\n },\n\n blackAlpha: {\n 50: \"rgba(0, 0, 0, 0.04)\",\n 100: \"rgba(0, 0, 0, 0.06)\",\n 200: \"rgba(0, 0, 0, 0.08)\",\n 300: \"rgba(0, 0, 0, 0.16)\",\n 400: \"rgba(0, 0, 0, 0.24)\",\n 500: \"rgba(0, 0, 0, 0.36)\",\n 600: \"rgba(0, 0, 0, 0.48)\",\n 700: \"rgba(0, 0, 0, 0.64)\",\n 800: \"rgba(0, 0, 0, 0.80)\",\n 900: \"rgba(0, 0, 0, 0.92)\",\n },\n\n gray: {\n 50: \"#F7FAFC\",\n 100: \"#EDF2F7\",\n 200: \"#E2E8F0\",\n 300: \"#CBD5E0\",\n 400: \"#A0AEC0\",\n 500: \"#718096\",\n 600: \"#4A5568\",\n 700: \"#2D3748\",\n 800: \"#1A202C\",\n 900: \"#171923\",\n },\n\n red: {\n 50: \"#FFF5F5\",\n 100: \"#FED7D7\",\n 200: \"#FEB2B2\",\n 300: \"#FC8181\",\n 400: \"#F56565\",\n 500: \"#E53E3E\",\n 600: \"#C53030\",\n 700: \"#9B2C2C\",\n 800: \"#822727\",\n 900: \"#63171B\",\n },\n\n orange: {\n 50: \"#FFFAF0\",\n 100: \"#FEEBC8\",\n 200: \"#FBD38D\",\n 300: \"#F6AD55\",\n 400: \"#ED8936\",\n 500: \"#DD6B20\",\n 600: \"#C05621\",\n 700: \"#9C4221\",\n 800: \"#7B341E\",\n 900: \"#652B19\",\n },\n\n yellow: {\n 50: \"#FFFFF0\",\n 100: \"#FEFCBF\",\n 200: \"#FAF089\",\n 300: \"#F6E05E\",\n 400: \"#ECC94B\",\n 500: \"#D69E2E\",\n 600: \"#B7791F\",\n 700: \"#975A16\",\n 800: \"#744210\",\n 900: \"#5F370E\",\n },\n\n green: {\n 50: \"#F0FFF4\",\n 100: \"#C6F6D5\",\n 200: \"#9AE6B4\",\n 300: \"#68D391\",\n 400: \"#48BB78\",\n 500: \"#38A169\",\n 600: \"#2F855A\",\n 700: \"#276749\",\n 800: \"#22543D\",\n 900: \"#1C4532\",\n },\n\n teal: {\n 50: \"#E6FFFA\",\n 100: \"#B2F5EA\",\n 200: \"#81E6D9\",\n 300: \"#4FD1C5\",\n 400: \"#38B2AC\",\n 500: \"#319795\",\n 600: \"#2C7A7B\",\n 700: \"#285E61\",\n 800: \"#234E52\",\n 900: \"#1D4044\",\n },\n\n blue: {\n 50: \"#ebf8ff\",\n 100: \"#bee3f8\",\n 200: \"#90cdf4\",\n 300: \"#63b3ed\",\n 400: \"#4299e1\",\n 500: \"#3182ce\",\n 600: \"#2b6cb0\",\n 700: \"#2c5282\",\n 800: \"#2a4365\",\n 900: \"#1A365D\",\n },\n\n cyan: {\n 50: \"#EDFDFD\",\n 100: \"#C4F1F9\",\n 200: \"#9DECF9\",\n 300: \"#76E4F7\",\n 400: \"#0BC5EA\",\n 500: \"#00B5D8\",\n 600: \"#00A3C4\",\n 700: \"#0987A0\",\n 800: \"#086F83\",\n 900: \"#065666\",\n },\n\n purple: {\n 50: \"#FAF5FF\",\n 100: \"#E9D8FD\",\n 200: \"#D6BCFA\",\n 300: \"#B794F4\",\n 400: \"#9F7AEA\",\n 500: \"#805AD5\",\n 600: \"#6B46C1\",\n 700: \"#553C9A\",\n 800: \"#44337A\",\n 900: \"#322659\",\n },\n\n pink: {\n 50: \"#FFF5F7\",\n 100: \"#FED7E2\",\n 200: \"#FBB6CE\",\n 300: \"#F687B3\",\n 400: \"#ED64A6\",\n 500: \"#D53F8C\",\n 600: \"#B83280\",\n 700: \"#97266D\",\n 800: \"#702459\",\n 900: \"#521B41\",\n },\n\n linkedin: {\n 50: \"#E8F4F9\",\n 100: \"#CFEDFB\",\n 200: \"#9BDAF3\",\n 300: \"#68C7EC\",\n 400: \"#34B3E4\",\n 500: \"#00A0DC\",\n 600: \"#008CC9\",\n 700: \"#0077B5\",\n 800: \"#005E93\",\n 900: \"#004471\",\n },\n\n facebook: {\n 50: \"#E8F4F9\",\n 100: \"#D9DEE9\",\n 200: \"#B7C2DA\",\n 300: \"#6482C0\",\n 400: \"#4267B2\",\n 500: \"#385898\",\n 600: \"#314E89\",\n 700: \"#29487D\",\n 800: \"#223B67\",\n 900: \"#1E355B\",\n },\n\n messenger: {\n 50: \"#D0E6FF\",\n 100: \"#B9DAFF\",\n 200: \"#A2CDFF\",\n 300: \"#7AB8FF\",\n 400: \"#2E90FF\",\n 500: \"#0078FF\",\n 600: \"#0063D1\",\n 700: \"#0052AC\",\n 800: \"#003C7E\",\n 900: \"#002C5C\",\n },\n\n whatsapp: {\n 50: \"#dffeec\",\n 100: \"#b9f5d0\",\n 200: \"#90edb3\",\n 300: \"#65e495\",\n 400: \"#3cdd78\",\n 500: \"#22c35e\",\n 600: \"#179848\",\n 700: \"#0c6c33\",\n 800: \"#01421c\",\n 900: \"#001803\",\n },\n\n twitter: {\n 50: \"#E5F4FD\",\n 100: \"#C8E9FB\",\n 200: \"#A8DCFA\",\n 300: \"#83CDF7\",\n 400: \"#57BBF5\",\n 500: \"#1DA1F2\",\n 600: \"#1A94DA\",\n 700: \"#1681BF\",\n 800: \"#136B9E\",\n 900: \"#0D4D71\",\n },\n\n telegram: {\n 50: \"#E3F2F9\",\n 100: \"#C5E4F3\",\n 200: \"#A2D4EC\",\n 300: \"#7AC1E4\",\n 400: \"#47A9DA\",\n 500: \"#0088CC\",\n 600: \"#007AB8\",\n 700: \"#006BA1\",\n 800: \"#005885\",\n 900: \"#003F5E\",\n },\n}\n\nexport default colors\n", "const radii = {\n none: \"0\",\n sm: \"0.125rem\",\n base: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n}\n\nexport default radii\n", "const shadows = {\n xs: \"0 0 0 1px rgba(0, 0, 0, 0.05)\",\n sm: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n base: \"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)\",\n md: \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\n lg: \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\n xl: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n \"2xl\": \"0 25px 50px -12px rgba(0, 0, 0, 0.25)\",\n outline: \"0 0 0 3px rgba(66, 153, 225, 0.6)\",\n inner: \"inset 0 2px 4px 0 rgba(0,0,0,0.06)\",\n none: \"none\",\n \"dark-lg\":\n \"rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px\",\n}\n\nexport default shadows\n", "const blur = {\n none: 0,\n sm: \"4px\",\n base: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\",\n}\n\nexport default blur\n", "const typography = {\n letterSpacings: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n },\n\n lineHeights: {\n normal: \"normal\",\n none: 1,\n shorter: 1.25,\n short: 1.375,\n base: 1.5,\n tall: 1.625,\n taller: \"2\",\n \"3\": \".75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"7\": \"1.75rem\",\n \"8\": \"2rem\",\n \"9\": \"2.25rem\",\n \"10\": \"2.5rem\",\n },\n\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n },\n\n fonts: {\n heading: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n body: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n mono: `SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace`,\n },\n\n fontSizes: {\n \"3xs\": \"0.45rem\",\n \"2xs\": \"0.625rem\",\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n md: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\",\n },\n}\n\nexport default typography\n", "export const spacing = {\n px: \"1px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\",\n}\n", "import { spacing } from \"./spacing\"\n\nconst largeSizes = {\n max: \"max-content\",\n min: \"min-content\",\n full: \"100%\",\n \"3xs\": \"14rem\",\n \"2xs\": \"16rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n \"8xl\": \"90rem\",\n prose: \"60ch\",\n}\n\nconst container = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n}\n\nconst sizes = {\n ...spacing,\n ...largeSizes,\n container,\n}\n\nexport default sizes\n", "import borders from \"./borders\"\nimport breakpoints from \"./breakpoints\"\nimport colors from \"./colors\"\nimport radii from \"./radius\"\nimport shadows from \"./shadows\"\nimport sizes from \"./sizes\"\nimport { spacing } from \"./spacing\"\nimport transition from \"./transition\"\nimport typography from \"./typography\"\nimport zIndices from \"./z-index\"\nimport blur from \"./blur\"\n\nexport const foundations = {\n breakpoints,\n zIndices,\n radii,\n blur,\n colors,\n ...typography,\n sizes,\n shadows,\n space: spacing,\n borders,\n transition,\n}\n", "import { createMultiStyleConfigHelpers, cssVar } from \"@chakra-ui/styled-system\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers([\n \"stepper\",\n \"step\",\n \"title\",\n \"description\",\n \"indicator\",\n \"separator\",\n \"icon\",\n \"number\",\n ])\n\nconst $size = cssVar(\"stepper-indicator-size\")\nconst $iconSize = cssVar(\"stepper-icon-size\")\nconst $titleFontSize = cssVar(\"stepper-title-font-size\")\nconst $descFontSize = cssVar(\"stepper-description-font-size\")\nconst $accentColor = cssVar(\"stepper-accent-color\")\n\nconst baseStyle = definePartsStyle(({ colorScheme: c }) => ({\n stepper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: \"4\",\n \"&[data-orientation=vertical]\": {\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n },\n \"&[data-orientation=horizontal]\": {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n [$accentColor.variable]: `colors.${c}.500`,\n _dark: {\n [$accentColor.variable]: `colors.${c}.200`,\n },\n },\n title: {\n fontSize: $titleFontSize.reference,\n fontWeight: \"medium\",\n },\n description: {\n fontSize: $descFontSize.reference,\n color: \"chakra-subtle-text\",\n },\n number: {\n fontSize: $titleFontSize.reference,\n },\n step: {\n flexShrink: 0,\n position: \"relative\",\n display: \"flex\",\n gap: \"2\",\n \"&[data-orientation=horizontal]\": {\n alignItems: \"center\",\n },\n flex: \"1\",\n \"&:last-of-type:not([data-stretch])\": {\n flex: \"initial\",\n },\n },\n icon: {\n flexShrink: 0,\n width: $iconSize.reference,\n height: $iconSize.reference,\n },\n indicator: {\n flexShrink: 0,\n borderRadius: \"full\",\n width: $size.reference,\n height: $size.reference,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"&[data-status=active]\": {\n borderWidth: \"2px\",\n borderColor: $accentColor.reference,\n },\n \"&[data-status=complete]\": {\n bg: $accentColor.reference,\n color: \"chakra-inverse-text\",\n },\n \"&[data-status=incomplete]\": {\n borderWidth: \"2px\",\n },\n },\n separator: {\n bg: \"chakra-border-color\",\n flex: \"1\",\n \"&[data-status=complete]\": {\n bg: $accentColor.reference,\n },\n \"&[data-orientation=horizontal]\": {\n width: \"100%\",\n height: \"2px\",\n marginStart: \"2\",\n },\n \"&[data-orientation=vertical]\": {\n width: \"2px\",\n position: \"absolute\",\n height: \"100%\",\n maxHeight: `calc(100% - ${$size.reference} - 8px)`,\n top: `calc(${$size.reference} + 4px)`,\n insetStart: `calc(${$size.reference} / 2 - 1px)`,\n },\n },\n}))\n\nexport const stepperTheme = defineMultiStyleConfig({\n baseStyle,\n sizes: {\n xs: definePartsStyle({\n stepper: {\n [$size.variable]: \"sizes.4\",\n [$iconSize.variable]: \"sizes.3\",\n [$titleFontSize.variable]: \"fontSizes.xs\",\n [$descFontSize.variable]: \"fontSizes.xs\",\n },\n }),\n sm: definePartsStyle({\n stepper: {\n [$size.variable]: \"sizes.6\",\n [$iconSize.variable]: \"sizes.4\",\n [$titleFontSize.variable]: \"fontSizes.sm\",\n [$descFontSize.variable]: \"fontSizes.xs\",\n },\n }),\n md: definePartsStyle({\n stepper: {\n [$size.variable]: \"sizes.8\",\n [$iconSize.variable]: \"sizes.5\",\n [$titleFontSize.variable]: \"fontSizes.md\",\n [$descFontSize.variable]: \"fontSizes.sm\",\n },\n }),\n lg: definePartsStyle({\n stepper: {\n [$size.variable]: \"sizes.10\",\n [$iconSize.variable]: \"sizes.6\",\n [$titleFontSize.variable]: \"fontSizes.lg\",\n [$descFontSize.variable]: \"fontSizes.md\",\n },\n }),\n },\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "/**\n * Used to define the anatomy/parts of a component in a way that provides\n * a consistent API for `className`, css selector and `theming`.\n */\nexport function anatomy(\n name: string,\n map = {} as Record,\n): Anatomy {\n let called = false\n\n /**\n * Prevents user from calling `.parts` multiple times.\n * It should only be called once.\n */\n function assert() {\n if (!called) {\n called = true\n return\n }\n\n throw new Error(\n \"[anatomy] .part(...) should only be called once. Did you mean to use .extend(...) ?\",\n )\n }\n\n /**\n * Add the core parts of the components\n */\n function parts(...values: V[]) {\n assert()\n for (const part of values) {\n ;(map as any)[part] = toPart(part)\n }\n return anatomy(name, map) as unknown as Omit, \"parts\">\n }\n\n /**\n * Extend the component anatomy to includes new parts\n */\n function extend(...parts: U[]) {\n for (const part of parts) {\n if (part in map) continue\n ;(map as any)[part] = toPart(part)\n }\n return anatomy(name, map) as unknown as Omit, \"parts\">\n }\n\n /**\n * Get all selectors for the component anatomy\n */\n function selectors() {\n const value = Object.fromEntries(\n Object.entries(map).map(([key, part]) => [key, (part as any).selector]),\n )\n return value as Record\n }\n\n /**\n * Get all classNames for the component anatomy\n */\n function classnames() {\n const value = Object.fromEntries(\n Object.entries(map).map(([key, part]) => [key, (part as any).className]),\n )\n return value as Record\n }\n\n /**\n * Creates the part object for the given part\n */\n function toPart(part: string) {\n const el = [\"container\", \"root\"].includes(part ?? \"\")\n ? [name]\n : [name, part]\n const attr = el.filter(Boolean).join(\"__\")\n const className = `chakra-${attr}`\n\n const partObj = {\n className,\n selector: `.${className}`,\n toString: () => part,\n }\n\n return partObj as typeof partObj & string\n }\n\n /**\n * Used to get the derived type of the anatomy\n */\n const __type = {} as T\n\n return {\n parts,\n toPart,\n extend,\n selectors,\n classnames,\n get keys(): T[] {\n return Object.keys(map) as T[]\n },\n __type,\n }\n}\n\ntype Part = {\n className: string\n selector: string\n toString: () => string\n}\n\ntype Anatomy = {\n parts: (...values: V[]) => Omit, \"parts\">\n toPart: (part: string) => Part\n extend: (...parts: U[]) => Omit, \"parts\">\n selectors: () => Record\n classnames: () => Record\n keys: T[]\n __type: T\n}\n", "import { anatomy } from \"./anatomy\"\n\n/**\n * **Accordion anatomy**\n * - Root: the root container of the accordion\n * - Container: the accordion item contains the button and panel\n * - Button: the button is the trigger for the panel\n * - Panel: the panel is the content of the accordion item\n * - Icon: the expanded/collapsed icon\n */\nexport const accordionAnatomy = anatomy(\"accordion\")\n .parts(\"root\", \"container\", \"button\", \"panel\")\n .extend(\"icon\")\n\n/**\n * **Alert anatomy**\n * - Title: the alert's title\n * - Description: the alert's description\n * - Icon: the alert's icon\n */\nexport const alertAnatomy = anatomy(\"alert\")\n .parts(\"title\", \"description\", \"container\")\n .extend(\"icon\", \"spinner\")\n\n/**\n * **Avatar anatomy**\n * - Container: the container for the avatar\n * - Label: the avatar initials text\n * - Excess Label: the label or text that represents excess avatar count.\n * Typically used in avatar groups.\n * - Group: the container for the avatar group\n */\nexport const avatarAnatomy = anatomy(\"avatar\")\n .parts(\"label\", \"badge\", \"container\")\n .extend(\"excessLabel\", \"group\")\n\n/**\n * **Breadcrumb anatomy**\n * - Item: the container for a breadcrumb item\n * - Link: the element that represents the breadcrumb link\n * - Container: the container for the breadcrumb items\n * - Separator: the separator between breadcrumb items\n */\nexport const breadcrumbAnatomy = anatomy(\"breadcrumb\")\n .parts(\"link\", \"item\", \"container\")\n .extend(\"separator\")\n\nexport const buttonAnatomy = anatomy(\"button\").parts()\n\nexport const checkboxAnatomy = anatomy(\"checkbox\")\n .parts(\"control\", \"icon\", \"container\")\n .extend(\"label\")\n\nexport const circularProgressAnatomy = anatomy(\"progress\")\n .parts(\"track\", \"filledTrack\")\n .extend(\"label\")\n\nexport const drawerAnatomy = anatomy(\"drawer\")\n .parts(\"overlay\", \"dialogContainer\", \"dialog\")\n .extend(\"header\", \"closeButton\", \"body\", \"footer\")\n\nexport const editableAnatomy = anatomy(\"editable\").parts(\n \"preview\",\n \"input\",\n \"textarea\",\n)\n\nexport const formAnatomy = anatomy(\"form\").parts(\n \"container\",\n \"requiredIndicator\",\n \"helperText\",\n)\n\nexport const formErrorAnatomy = anatomy(\"formError\").parts(\"text\", \"icon\")\n\nexport const inputAnatomy = anatomy(\"input\").parts(\n \"addon\",\n \"field\",\n \"element\",\n \"group\",\n)\n\nexport const listAnatomy = anatomy(\"list\").parts(\"container\", \"item\", \"icon\")\n\nexport const menuAnatomy = anatomy(\"menu\")\n .parts(\"button\", \"list\", \"item\")\n .extend(\"groupTitle\", \"icon\", \"command\", \"divider\")\n\nexport const modalAnatomy = anatomy(\"modal\")\n .parts(\"overlay\", \"dialogContainer\", \"dialog\")\n .extend(\"header\", \"closeButton\", \"body\", \"footer\")\n\nexport const numberInputAnatomy = anatomy(\"numberinput\").parts(\n \"root\",\n \"field\",\n \"stepperGroup\",\n \"stepper\",\n)\n\nexport const pinInputAnatomy = anatomy(\"pininput\").parts(\"field\")\n\nexport const popoverAnatomy = anatomy(\"popover\")\n .parts(\"content\", \"header\", \"body\", \"footer\")\n .extend(\"popper\", \"arrow\", \"closeButton\")\n\nexport const progressAnatomy = anatomy(\"progress\").parts(\n \"label\",\n \"filledTrack\",\n \"track\",\n)\n\nexport const radioAnatomy = anatomy(\"radio\").parts(\n \"container\",\n \"control\",\n \"label\",\n)\n\nexport const selectAnatomy = anatomy(\"select\").parts(\"field\", \"icon\")\n\nexport const sliderAnatomy = anatomy(\"slider\").parts(\n \"container\",\n \"track\",\n \"thumb\",\n \"filledTrack\",\n \"mark\",\n)\n\nexport const statAnatomy = anatomy(\"stat\").parts(\n \"container\",\n \"label\",\n \"helpText\",\n \"number\",\n \"icon\",\n)\n\nexport const switchAnatomy = anatomy(\"switch\").parts(\n \"container\",\n \"track\",\n \"thumb\",\n \"label\",\n)\n\nexport const tableAnatomy = anatomy(\"table\").parts(\n \"table\",\n \"thead\",\n \"tbody\",\n \"tr\",\n \"th\",\n \"td\",\n \"tfoot\",\n \"caption\",\n)\n\nexport const tabsAnatomy = anatomy(\"tabs\").parts(\n \"root\",\n \"tab\",\n \"tablist\",\n \"tabpanel\",\n \"tabpanels\",\n \"indicator\",\n)\n\n/**\n * **Tag anatomy**\n * - Container: the container for the tag\n * - Label: the text content of the tag\n * - closeButton: the close button for the tag\n */\nexport const tagAnatomy = anatomy(\"tag\").parts(\n \"container\",\n \"label\",\n \"closeButton\",\n)\n\nexport const cardAnatomy = anatomy(\"card\").parts(\n \"container\",\n \"header\",\n \"body\",\n \"footer\",\n)\n\nexport const stepperAnatomy = anatomy(\"stepper\").parts(\n \"stepper\",\n \"step\",\n \"title\",\n \"description\",\n \"indicator\",\n \"separator\",\n \"icon\",\n \"number\",\n)\n", "/**\n * A simple guard function:\n *\n * ```js\n * Math.min(Math.max(low, value), high)\n * ```\n */\nfunction guard(low: number, high: number, value: number): number {\n return Math.min(Math.max(low, value), high);\n}\n\nexport default guard;\n", "class ColorError extends Error {\n constructor(color: string) {\n super(`Failed to parse color: \"${color}\"`);\n }\n}\n\nexport default ColorError;\n", "import guard from './guard';\nimport ColorError from './ColorError';\n\n/**\n * Parses a color into red, gree, blue, alpha parts\n *\n * @param color the input color. Can be a RGB, RBGA, HSL, HSLA, or named color\n */\nfunction parseToRgba(color: string): [number, number, number, number] {\n if (typeof color !== 'string') throw new ColorError(color);\n if (color.trim().toLowerCase() === 'transparent') return [0, 0, 0, 0];\n\n let normalizedColor = color.trim();\n normalizedColor = namedColorRegex.test(color) ? nameToHex(color) : color;\n\n const reducedHexMatch = reducedHexRegex.exec(normalizedColor);\n if (reducedHexMatch) {\n const arr = Array.from(reducedHexMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(r(x, 2), 16)),\n parseInt(r(arr[3] || 'f', 2), 16) / 255,\n ] as [number, number, number, number];\n }\n\n const hexMatch = hexRegex.exec(normalizedColor);\n if (hexMatch) {\n const arr = Array.from(hexMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(x, 16)),\n parseInt(arr[3] || 'ff', 16) / 255,\n ] as [number, number, number, number];\n }\n\n const rgbaMatch = rgbaRegex.exec(normalizedColor);\n if (rgbaMatch) {\n const arr = Array.from(rgbaMatch).slice(1);\n return [\n ...arr.slice(0, 3).map((x) => parseInt(x, 10)),\n parseFloat(arr[3] || '1'),\n ] as [number, number, number, number];\n }\n\n const hslaMatch = hslaRegex.exec(normalizedColor);\n if (hslaMatch) {\n const [h, s, l, a] = Array.from(hslaMatch).slice(1).map(parseFloat);\n if (guard(0, 100, s) !== s) throw new ColorError(color);\n if (guard(0, 100, l) !== l) throw new ColorError(color);\n return [...hslToRgb(h, s, l), Number.isNaN(a) ? 1 : a] as [\n number,\n number,\n number,\n number\n ];\n }\n\n throw new ColorError(color);\n}\n\nfunction hash(str: string) {\n let hash = 5381;\n let i = str.length;\n\n while (i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return (hash >>> 0) % 2341;\n}\n\nconst colorToInt = (x: string) => parseInt(x.replace(/_/g, ''), 36);\n\nconst compressedColorMap =\n '1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm'\n .split(' ')\n .reduce((acc, next) => {\n const key = colorToInt(next.substring(0, 3));\n const hex = colorToInt(next.substring(3)).toString(16);\n\n // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n let prefix = '';\n for (let i = 0; i < 6 - hex.length; i++) {\n prefix += '0';\n }\n\n acc[key] = `${prefix}${hex}`;\n return acc;\n }, {} as { [key: string]: string });\n\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n */\nfunction nameToHex(color: string): string {\n const normalizedColorName = color.toLowerCase().trim();\n const result = compressedColorMap[hash(normalizedColorName)];\n if (!result) throw new ColorError(color);\n return `#${result}`;\n}\n\nconst r = (str: string, amount: number) =>\n Array.from(Array(amount))\n .map(() => str)\n .join('');\n\nconst reducedHexRegex = new RegExp(`^#${r('([a-f0-9])', 3)}([a-f0-9])?$`, 'i');\nconst hexRegex = new RegExp(`^#${r('([a-f0-9]{2})', 3)}([a-f0-9]{2})?$`, 'i');\nconst rgbaRegex = new RegExp(\n `^rgba?\\\\(\\\\s*(\\\\d+)\\\\s*${r(\n ',\\\\s*(\\\\d+)\\\\s*',\n 2\n )}(?:,\\\\s*([\\\\d.]+))?\\\\s*\\\\)$`,\n 'i'\n);\nconst hslaRegex =\n /^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%\\s*,\\s*([\\d.]+)%(?:\\s*,\\s*([\\d.]+))?\\s*\\)$/i;\nconst namedColorRegex = /^[a-z]+$/i;\n\nconst roundColor = (color: number): number => {\n return Math.round(color * 255);\n};\n\nconst hslToRgb = (\n hue: number,\n saturation: number,\n lightness: number\n): [number, number, number] => {\n let l = lightness / 100;\n if (saturation === 0) {\n // achromatic\n return [l, l, l].map(roundColor) as [number, number, number];\n }\n\n // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n const huePrime = (((hue % 360) + 360) % 360) / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * (saturation / 100);\n const secondComponent = chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n let red = 0;\n let green = 0;\n let blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n const lightnessModification = l - chroma / 2;\n const finalRed = red + lightnessModification;\n const finalGreen = green + lightnessModification;\n const finalBlue = blue + lightnessModification;\n\n return [finalRed, finalGreen, finalBlue].map(roundColor) as [\n number,\n number,\n number\n ];\n};\n\nexport default parseToRgba;\n", "// taken from:\n// https://github.com/styled-components/polished/blob/a23a6a2bb26802b3d922d9c3b67bac3f3a54a310/src/internalHelpers/_rgbToHsl.js\nimport parseToRgba from './parseToRgba';\n\n/**\n * Parses a color in hue, saturation, lightness, and the alpha channel.\n *\n * Hue is a number between 0 and 360, saturation, lightness, and alpha are\n * decimal percentages between 0 and 1\n */\nfunction parseToHsla(color: string): [number, number, number, number] {\n const [red, green, blue, alpha] = parseToRgba(color).map((value, index) =>\n // 3rd index is alpha channel which is already normalized\n index === 3 ? value : value / 255\n );\n\n const max = Math.max(red, green, blue);\n const min = Math.min(red, green, blue);\n const lightness = (max + min) / 2;\n\n // achromatic\n if (max === min) return [0, 0, lightness, alpha];\n\n const delta = max - min;\n const saturation =\n lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n const hue =\n 60 *\n (red === max\n ? (green - blue) / delta + (green < blue ? 6 : 0)\n : green === max\n ? (blue - red) / delta + 2\n : (red - green) / delta + 4);\n\n return [hue, saturation, lightness, alpha];\n}\n\nexport default parseToHsla;\n", "import guard from './guard';\n\n/**\n * Takes in hsla parts and constructs an hsla string\n *\n * @param hue The color circle (from 0 to 360) - 0 (or 360) is red, 120 is green, 240 is blue\n * @param saturation Percentage of saturation, given as a decimal between 0 and 1\n * @param lightness Percentage of lightness, given as a decimal between 0 and 1\n * @param alpha Percentage of opacity, given as a decimal between 0 and 1\n */\nfunction hsla(\n hue: number,\n saturation: number,\n lightness: number,\n alpha: number\n): string {\n return `hsla(${(hue % 360).toFixed()}, ${guard(\n 0,\n 100,\n saturation * 100\n ).toFixed()}%, ${guard(0, 100, lightness * 100).toFixed()}%, ${parseFloat(\n guard(0, 1, alpha).toFixed(3)\n )})`;\n}\n\nexport default hsla;\n", "import parseToHsla from './parseToHsla';\nimport hsla from './hsla';\n\n/**\n * Adjusts the current hue of the color by the given degrees. Wraps around when\n * over 360.\n *\n * @param color input color\n * @param degrees degrees to adjust the input color, accepts degree integers\n * (0 - 360) and wraps around on overflow\n */\nfunction adjustHue(color: string, degrees: number): string {\n const [h, s, l, a] = parseToHsla(color);\n return hsla(h + degrees, s, l, a);\n}\n\nexport default adjustHue;\n", "import parseToHsla from './parseToHsla';\nimport hsla from './hsla';\n\n/**\n * Darkens using lightness. This is equivalent to subtracting the lightness\n * from the L in HSL.\n *\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\nfunction darken(color: string, amount: number): string {\n const [hue, saturation, lightness, alpha] = parseToHsla(color);\n return hsla(hue, saturation, lightness - amount, alpha);\n}\n\nexport default darken;\n", "import parseToHsla from './parseToHsla';\nimport hsla from './hsla';\n\n/**\n * Desaturates the input color by the given amount via subtracting from the `s`\n * in `hsla`.\n *\n * @param amount The amount to desaturate, given as a decimal between 0 and 1\n */\nfunction desaturate(color: string, amount: number): string {\n const [h, s, l, a] = parseToHsla(color);\n return hsla(h, s - amount, l, a);\n}\n\nexport default desaturate;\n", "import parseToRgba from './parseToRgba';\n// taken from:\n// https://github.com/styled-components/polished/blob/0764c982551b487469043acb56281b0358b3107b/src/color/getLuminance.js\n\n/**\n * Returns a number (float) representing the luminance of a color.\n */\nfunction getLuminance(color: string): number {\n if (color === 'transparent') return 0;\n\n function f(x: number) {\n const channel = x / 255;\n return channel <= 0.04045\n ? channel / 12.92\n : Math.pow(((channel + 0.055) / 1.055), 2.4);\n }\n\n const [r, g, b] = parseToRgba(color);\n return 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);\n}\n\nexport default getLuminance;\n", "// taken from:\n// https://github.com/styled-components/polished/blob/0764c982551b487469043acb56281b0358b3107b/src/color/getContrast.js\nimport getLuminance from './getLuminance';\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n */\nfunction getContrast(color1: string, color2: string): number {\n const luminance1 = getLuminance(color1);\n const luminance2 = getLuminance(color2);\n\n return luminance1 > luminance2\n ? (luminance1 + 0.05) / (luminance2 + 0.05)\n : (luminance2 + 0.05) / (luminance1 + 0.05);\n}\n\nexport default getContrast;\n", "import guard from './guard';\n\n/**\n * Takes in rgba parts and returns an rgba string\n *\n * @param red The amount of red in the red channel, given in a number between 0 and 255 inclusive\n * @param green The amount of green in the red channel, given in a number between 0 and 255 inclusive\n * @param blue The amount of blue in the red channel, given in a number between 0 and 255 inclusive\n * @param alpha Percentage of opacity, given as a decimal between 0 and 1\n */\nfunction rgba(red: number, green: number, blue: number, alpha: number): string {\n return `rgba(${guard(0, 255, red).toFixed()}, ${guard(\n 0,\n 255,\n green\n ).toFixed()}, ${guard(0, 255, blue).toFixed()}, ${parseFloat(\n guard(0, 1, alpha).toFixed(3)\n )})`;\n}\n\nexport default rgba;\n", "import parseToRgba from './parseToRgba';\nimport rgba from './rgba';\n\n/**\n * Mixes two colors together. Taken from sass's implementation.\n */\nfunction mix(color1: string, color2: string, weight: number): string {\n const normalize = (n: number, index: number) =>\n // 3rd index is alpha channel which is already normalized\n index === 3 ? n : n / 255;\n\n const [r1, g1, b1, a1] = parseToRgba(color1).map(normalize);\n const [r2, g2, b2, a2] = parseToRgba(color2).map(normalize);\n\n // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n const alphaDelta = a2 - a1;\n const normalizedWeight = weight * 2 - 1;\n const combinedWeight =\n normalizedWeight * alphaDelta === -1\n ? normalizedWeight\n : normalizedWeight + alphaDelta / (1 + normalizedWeight * alphaDelta);\n const weight2 = (combinedWeight + 1) / 2;\n const weight1 = 1 - weight2;\n\n const r = (r1 * weight1 + r2 * weight2) * 255;\n const g = (g1 * weight1 + g2 * weight2) * 255;\n const b = (b1 * weight1 + b2 * weight2) * 255;\n const a = a2 * weight + a1 * (1 - weight);\n\n return rgba(r, g, b, a);\n}\n\nexport default mix;\n", "import mix from './mix';\nimport guard from './guard';\n\n/**\n * Given a series colors, this function will return a `scale(x)` function that\n * accepts a percentage as a decimal between 0 and 1 and returns the color at\n * that percentage in the scale.\n *\n * ```js\n * const scale = getScale('red', 'yellow', 'green');\n * console.log(scale(0)); // rgba(255, 0, 0, 1)\n * console.log(scale(0.5)); // rgba(255, 255, 0, 1)\n * console.log(scale(1)); // rgba(0, 128, 0, 1)\n * ```\n *\n * If you'd like to limit the domain and range like chroma-js, we recommend\n * wrapping scale again.\n *\n * ```js\n * const _scale = getScale('red', 'yellow', 'green');\n * const scale = x => _scale(x / 100);\n *\n * console.log(scale(0)); // rgba(255, 0, 0, 1)\n * console.log(scale(50)); // rgba(255, 255, 0, 1)\n * console.log(scale(100)); // rgba(0, 128, 0, 1)\n * ```\n */\nfunction getScale(...colors: string[]): (n: number) => string {\n return (n) => {\n const lastIndex = colors.length - 1;\n const lowIndex = guard(0, lastIndex, Math.floor(n * lastIndex));\n const highIndex = guard(0, lastIndex, Math.ceil(n * lastIndex));\n\n const color1 = colors[lowIndex];\n const color2 = colors[highIndex];\n\n const unit = 1 / lastIndex;\n const weight = (n - unit * lowIndex) / unit;\n\n return mix(color1, color2, weight);\n };\n}\n\nexport default getScale;\n", "import getContrast from './getContrast';\n\nconst guidelines = {\n decorative: 1.5,\n readable: 3,\n aa: 4.5,\n aaa: 7,\n};\n\n/**\n * Returns whether or not a color has bad contrast against a background\n * according to a given standard.\n */\nfunction hasBadContrast(\n color: string,\n standard: 'decorative' | 'readable' | 'aa' | 'aaa' = 'aa',\n background: string = '#fff'\n): boolean {\n return getContrast(color, background) < guidelines[standard];\n}\n\nexport default hasBadContrast;\n", "import darken from './darken';\n/**\n * Lightens a color by a given amount. This is equivalent to\n * `darken(color, -amount)`\n *\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\nfunction lighten(color: string, amount: number): string {\n return darken(color, -amount);\n}\n\nexport default lighten;\n", "import parseToRgba from './parseToRgba';\nimport rgba from './rgba';\n\n/**\n * Takes in a color and makes it more transparent by convert to `rgba` and\n * decreasing the amount in the alpha channel.\n *\n * @param amount The amount to increase the transparency by, given as a decimal between 0 and 1\n */\nfunction transparentize(color: string, amount: number): string {\n const [r, g, b, a] = parseToRgba(color);\n return rgba(r, g, b, a - amount);\n}\n\nexport default transparentize;\n", "import transparentize from './transparentize';\n\n/**\n * Takes a color and un-transparentizes it. Equivalent to\n * `transparentize(color, -amount)`\n *\n * @param amount The amount to increase the opacity by, given as a decimal between 0 and 1\n */\nfunction opacify(color: string, amount: number): string {\n return transparentize(color, -amount);\n}\n\nexport default opacify;\n", "import getLuminance from './getLuminance';\n\n/**\n * An alternative function to `readableColor`. Returns whether or not the \n * readable color (i.e. the color to be place on top the input color) should be\n * black.\n */\nfunction readableColorIsBlack(color: string): boolean {\n return getLuminance(color) > 0.179;\n}\n\nexport default readableColorIsBlack;\n", "import readableColorIsBlack from './readableColorIsBlack';\n\n/**\n * Returns black or white for best contrast depending on the luminosity of the\n * given color.\n */\nfunction readableColor(color: string): string {\n return readableColorIsBlack(color) ? '#000' : '#fff';\n}\n\nexport default readableColor;\n", "import desaturate from './desaturate';\n\n/**\n * Saturates a color by converting it to `hsl` and increasing the saturation\n * amount. Equivalent to `desaturate(color, -amount)`\n * \n * @param color Input color\n * @param amount The amount to darken, given as a decimal between 0 and 1\n */\nfunction saturate(color: string, amount: number): string {\n return desaturate(color, -amount);\n}\n\nexport default saturate;\n", "import parseToRgba from './parseToRgba';\nimport guard from './guard';\n\n/**\n * Takes in any color and returns it as a hex code.\n */\nfunction toHex(color: string): string {\n const [r, g, b, a] = parseToRgba(color);\n\n let hex = (x: number) => {\n const h = guard(0, 255, x).toString(16);\n // NOTE: padStart could be used here but it breaks Node 6 compat\n // https://github.com/ricokahler/color2k/issues/351\n return h.length === 1 ? `0${h}` : h;\n };\n\n return `#${hex(r)}${hex(g)}${hex(b)}${a < 1 ? hex(Math.round(a * 255)) : ''}`;\n}\n\nexport default toHex;\n", "import parseToRgba from './parseToRgba';\nimport rgba from './rgba';\n\n/**\n * Takes in any color and returns it as an rgba string.\n */\nfunction toRgba(color: string): string {\n return rgba(...parseToRgba(color));\n}\n\nexport default toRgba;\n", "import parseToHsla from './parseToHsla';\nimport hsla from './hsla';\n\n/**\n * Takes in any color and returns it as an hsla string.\n */\nfunction toHsla(color: string): string {\n return hsla(...parseToHsla(color));\n}\n\nexport default toHsla;\n", "import { getCSSVar } from \"@chakra-ui/styled-system\"\nimport {\n toHex,\n parseToRgba,\n transparentize as setTransparency,\n mix,\n darken as reduceLightness,\n lighten as increaseLightness,\n getContrast,\n parseToHsla,\n hsla,\n getLuminance,\n} from \"color2k\"\n\nimport get from \"dlv\"\n\ntype Dict = { [key: string]: any }\nconst isEmptyObject = (obj: any) => Object.keys(obj).length === 0\n\n/**\n * Get the color raw value from theme\n * @param theme - the theme object\n * @param color - the color path (\"green.200\")\n * @param fallback - the fallback color\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const getColor = (theme: Dict, color: string, fallback?: string) => {\n const hex = get(theme, `colors.${color}`, color)\n try {\n toHex(hex)\n return hex\n } catch {\n // returning black to stay consistent with TinyColor behaviour so as to prevent breaking change\n return fallback ?? \"#000000\"\n }\n}\n\n/**\n * Get the color css variable from theme\n */\nexport const getColorVar = (theme: Dict, color: string, fallback?: string) => {\n return getCSSVar(theme, \"colors\", color) ?? fallback\n}\n\nconst getBrightness = (color: string) => {\n const [r, g, b] = parseToRgba(color)\n // http://www.w3.org/TR/AERT#color-contrast\n return (r * 299 + g * 587 + b * 114) / 1000\n}\n\n/**\n * Determines if the tone of given color is \"light\" or \"dark\"\n * @param color - the color in hex, rgb, or hsl\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const tone = (color: string) => (theme: Dict) => {\n const hex = getColor(theme, color)\n const brightness = getBrightness(hex)\n const isDark = brightness < 128\n return isDark ? \"dark\" : \"light\"\n}\n\n/**\n * Determines if a color tone is \"dark\"\n * @param color - the color in hex, rgb, or hsl\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const isDark = (color: string) => (theme: Dict) =>\n tone(color)(theme) === \"dark\"\n\n/**\n * Determines if a color tone is \"light\"\n * @param color - the color in hex, rgb, or hsl\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const isLight = (color: string) => (theme: Dict) =>\n tone(color)(theme) === \"light\"\n\n/**\n * Make a color transparent\n * @param color - the color in hex, rgb, or hsl\n * @param opacity - the amount of opacity the color should have (0-1)\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const transparentize =\n (color: string, opacity: number) => (theme: Dict) => {\n const raw = getColor(theme, color)\n return setTransparency(raw, 1 - opacity)\n }\n\n/**\n * Add white to a color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount white to add (0-100)\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const whiten = (color: string, amount: number) => (theme: Dict) => {\n const raw = getColor(theme, color)\n return toHex(mix(raw, \"#fff\", amount))\n}\n\n/**\n * Add black to a color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount black to add (0-100)\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const blacken = (color: string, amount: number) => (theme: Dict) => {\n const raw = getColor(theme, color)\n return toHex(mix(raw, \"#000\", amount / 100))\n}\n\n/**\n * Darken a specified color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount to darken (0-100)\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const darken = (color: string, amount: number) => (theme: Dict) => {\n const raw = getColor(theme, color)\n return toHex(reduceLightness(raw, amount / 100))\n}\n\n/**\n * Lighten a specified color\n * @param color - the color in hex, rgb, or hsl\n * @param amount - the amount to lighten (0-100)\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const lighten = (color: string, amount: number) => (theme: Dict) => {\n const raw = getColor(theme, color)\n toHex(increaseLightness(raw, amount / 100))\n}\n\n/**\n * Checks the contract ratio of between 2 colors,\n * based on the Web Content Accessibility Guidelines (Version 2.0).\n *\n * @param fg - the foreground or text color\n * @param bg - the background color\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const contrast = (fg: string, bg: string) => (theme: Dict) =>\n getContrast(getColor(theme, bg), getColor(theme, fg))\n\ninterface WCAG2Params {\n level?: \"AA\" | \"AAA\"\n size?: \"large\" | \"small\"\n}\n\n/**\n * Checks if a color meets the Web Content Accessibility\n * Guidelines (Version 2.0) for contrast ratio.\n *\n * @param textColor - the foreground or text color\n * @param bgColor - the background color\n * @param options\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const isAccessible =\n (textColor: string, bgColor: string, options?: WCAG2Params) =>\n (theme: Dict) =>\n isReadable(getColor(theme, bgColor), getColor(theme, textColor), options)\n\nexport function isReadable(\n color1: string,\n color2: string,\n wcag2: WCAG2Params = { level: \"AA\", size: \"small\" },\n): boolean {\n const readabilityLevel = readability(color1, color2)\n switch ((wcag2.level ?? \"AA\") + (wcag2.size ?? \"small\")) {\n case \"AAsmall\":\n case \"AAAlarge\":\n return readabilityLevel >= 4.5\n case \"AAlarge\":\n return readabilityLevel >= 3\n case \"AAAsmall\":\n return readabilityLevel >= 7\n default:\n return false\n }\n}\n\nexport function readability(color1: string, color2: string): number {\n return (\n (Math.max(getLuminance(color1), getLuminance(color2)) + 0.05) /\n (Math.min(getLuminance(color1), getLuminance(color2)) + 0.05)\n )\n}\n/**\n *\n * @deprecated This will be removed in the next major release.\n */\nexport const complementary = (color: string) => (theme: Dict) => {\n const raw = getColor(theme, color)\n const hsl = parseToHsla(raw)\n const complementHsl: [number, number, number, number] = Object.assign(hsl, [\n (hsl[0] + 180) % 360,\n ])\n return toHex(hsla(...complementHsl))\n}\n\nexport function generateStripe(\n size = \"1rem\",\n color = \"rgba(255, 255, 255, 0.15)\",\n) {\n return {\n backgroundImage: `linear-gradient(\n 45deg,\n ${color} 25%,\n transparent 25%,\n transparent 50%,\n ${color} 50%,\n ${color} 75%,\n transparent 75%,\n transparent\n )`,\n backgroundSize: `${size} ${size}`,\n }\n}\n\ninterface RandomColorOptions {\n /**\n * If passed, string will be used to generate\n * random color\n */\n string?: string\n /**\n * List of colors to pick from at random\n */\n colors?: string[]\n}\n\nconst randomHex = () =>\n `#${Math.floor(Math.random() * 0xffffff)\n .toString(16)\n .padEnd(6, \"0\")}`\n\nexport function randomColor(opts?: RandomColorOptions) {\n const fallback = randomHex()\n\n if (!opts || isEmptyObject(opts)) {\n return fallback\n }\n\n if (opts.string && opts.colors) {\n return randomColorFromList(opts.string, opts.colors)\n }\n\n if (opts.string && !opts.colors) {\n return randomColorFromString(opts.string)\n }\n\n if (opts.colors && !opts.string) {\n return randomFromList(opts.colors)\n }\n\n return fallback\n}\n\nfunction randomColorFromString(str: string) {\n let hash = 0\n if (str.length === 0) return hash.toString()\n for (let i = 0; i < str.length; i += 1) {\n hash = str.charCodeAt(i) + ((hash << 5) - hash)\n hash = hash & hash\n }\n let color = \"#\"\n for (let j = 0; j < 3; j += 1) {\n const value = (hash >> (j * 8)) & 255\n color += `00${value.toString(16)}`.substr(-2)\n }\n return color\n}\n\nfunction randomColorFromList(str: string, list: string[]) {\n let index = 0\n if (str.length === 0) return list[0]\n for (let i = 0; i < str.length; i += 1) {\n index = str.charCodeAt(i) + ((index << 5) - index)\n index = index & index\n }\n index = ((index % list.length) + list.length) % list.length\n return list[index]\n}\n\nfunction randomFromList(list: string[]) {\n return list[Math.floor(Math.random() * list.length)]\n}\n", "export default function dlv(obj, key, def, p, undef) {\n\tkey = key.split ? key.split('.') : key;\n\tfor (p = 0; p < key.length; p++) {\n\t\tobj = obj ? obj[key[p]] : undef;\n\t}\n\treturn obj === undef ? def : obj;\n}\n", "import type {\n SystemStyleObject,\n StyleFunctionProps,\n SystemStyleInterpolation,\n} from \"@chakra-ui/styled-system\"\n\nexport type {\n StyleConfig,\n MultiStyleConfig,\n SystemStyleObject,\n // StyleFunctionProps,\n SystemStyleFunction,\n SystemStyleInterpolation,\n PartsStyleObject,\n PartsStyleFunction,\n PartsStyleInterpolation,\n} from \"@chakra-ui/styled-system\"\n\n/* -----------------------------------------------------------------------------\n * Global Style object definitions\n * -----------------------------------------------------------------------------*/\n\nexport type GlobalStyleProps = StyleFunctionProps\n\nexport type GlobalStyles = {\n global?: SystemStyleInterpolation\n}\n\nexport type JSXElementStyles = {\n [K in keyof JSX.IntrinsicElements]?: SystemStyleObject\n}\n\nexport type Styles = GlobalStyles & JSXElementStyles\n\nexport function mode(light: T, dark: T) {\n return (props: Record | StyleFunctionProps) =>\n props.colorMode === \"dark\" ? dark : light\n}\n\nexport function orient(options: {\n orientation?: \"vertical\" | \"horizontal\"\n vertical: T\n horizontal: T\n}) {\n const { orientation, vertical, horizontal } = options\n if (!orientation) return {}\n return orientation === \"vertical\" ? vertical : horizontal\n}\n\nexport type { StyleFunctionProps }\n", "import { isObject } from \"@chakra-ui/shared-utils\"\nimport { CSSVar } from \"./css-var\"\n\nexport type Operand = string | number | CSSVar\ntype Operands = Operand[]\n\ntype Operator = \"+\" | \"-\" | \"*\" | \"/\"\n\nfunction toRef(operand: Operand): string {\n if (isObject(operand) && operand.reference) {\n return operand.reference\n }\n return String(operand)\n}\n\nconst toExpr = (operator: Operator, ...operands: Operands) =>\n operands.map(toRef).join(` ${operator} `).replace(/calc/g, \"\")\n\nconst add = (...operands: Operands) => `calc(${toExpr(\"+\", ...operands)})`\n\nconst subtract = (...operands: Operands) => `calc(${toExpr(\"-\", ...operands)})`\n\nconst multiply = (...operands: Operands) => `calc(${toExpr(\"*\", ...operands)})`\n\nconst divide = (...operands: Operands) => `calc(${toExpr(\"/\", ...operands)})`\n\nconst negate = (x: Operand) => {\n const value = toRef(x)\n\n if (value != null && !Number.isNaN(parseFloat(value))) {\n return String(value).startsWith(\"-\") ? String(value).slice(1) : `-${value}`\n }\n\n return multiply(value, -1)\n}\n\nexport interface CalcChain {\n add: (...operands: Operands) => CalcChain\n subtract: (...operands: Operands) => CalcChain\n multiply: (...operands: Operands) => CalcChain\n divide: (...operands: Operands) => CalcChain\n negate: () => CalcChain\n toString: () => string\n}\n\nexport const calc = Object.assign(\n (x: Operand): CalcChain => ({\n add: (...operands) => calc(add(x, ...operands)),\n subtract: (...operands) => calc(subtract(x, ...operands)),\n multiply: (...operands) => calc(multiply(x, ...operands)),\n divide: (...operands) => calc(divide(x, ...operands)),\n negate: () => calc(negate(x)),\n toString: () => x.toString(),\n }),\n {\n add,\n subtract,\n multiply,\n divide,\n negate,\n },\n)\n", "export function isDecimal(value: any) {\n return !Number.isInteger(parseFloat(value.toString()))\n}\n\nfunction replaceWhiteSpace(value: string, replaceValue = \"-\") {\n return value.replace(/\\s+/g, replaceValue)\n}\n\nfunction escape(value: string | number) {\n const valueStr = replaceWhiteSpace(value.toString())\n if (valueStr.includes(\"\\\\.\")) return value\n return isDecimal(value) ? valueStr.replace(\".\", `\\\\.`) : value\n}\n\nexport function addPrefix(value: string, prefix = \"\") {\n return [prefix, escape(value)].filter(Boolean).join(\"-\")\n}\n\nexport function toVarRef(name: string, fallback?: string) {\n return `var(${escape(name)}${fallback ? `, ${fallback}` : \"\"})`\n}\n\nexport function toVar(value: string, prefix = \"\") {\n return `--${addPrefix(value, prefix)}`\n}\n\nexport type CSSVar = {\n variable: string\n reference: string\n}\n\nexport type CSSVarOptions = {\n fallback?: string | CSSVar\n prefix?: string\n}\n\nexport function cssVar(name: string, options?: CSSVarOptions) {\n const cssVariable = toVar(name, options?.prefix)\n return {\n variable: cssVariable,\n reference: toVarRef(cssVariable, getFallback(options?.fallback)),\n }\n}\n\nfunction getFallback(fallback?: string | CSSVar) {\n if (typeof fallback === \"string\") return fallback\n return fallback?.reference\n}\n", "import { switchAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { calc, cssVar } from \"@chakra-ui/theme-tools\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $width = cssVar(\"switch-track-width\")\nconst $height = cssVar(\"switch-track-height\")\nconst $diff = cssVar(\"switch-track-diff\")\nconst diffValue = calc.subtract($width, $height)\nconst $translateX = cssVar(\"switch-thumb-x\")\nconst $bg = cssVar(\"switch-bg\")\n\nconst baseStyleTrack = defineStyle((props) => {\n const { colorScheme: c } = props\n\n return {\n borderRadius: \"full\",\n p: \"0.5\",\n width: [$width.reference],\n height: [$height.reference],\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n [$bg.variable]: \"colors.gray.300\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.400\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n _checked: {\n [$bg.variable]: `colors.${c}.500`,\n _dark: {\n [$bg.variable]: `colors.${c}.200`,\n },\n },\n bg: $bg.reference,\n }\n})\n\nconst baseStyleThumb = defineStyle({\n bg: \"white\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n borderRadius: \"inherit\",\n width: [$height.reference],\n height: [$height.reference],\n _checked: {\n transform: `translateX(${$translateX.reference})`,\n },\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n container: {\n [$diff.variable]: diffValue,\n [$translateX.variable]: $diff.reference,\n _rtl: {\n [$translateX.variable]: calc($diff).negate().toString(),\n },\n },\n track: baseStyleTrack(props),\n thumb: baseStyleThumb,\n}))\n\nconst sizes = {\n sm: definePartsStyle({\n container: {\n [$width.variable]: \"1.375rem\",\n [$height.variable]: \"sizes.3\",\n },\n }),\n md: definePartsStyle({\n container: {\n [$width.variable]: \"1.875rem\",\n [$height.variable]: \"sizes.4\",\n },\n }),\n lg: definePartsStyle({\n container: {\n [$width.variable]: \"2.875rem\",\n [$height.variable]: \"sizes.6\",\n },\n }),\n}\n\nexport const switchTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "import { tableAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { mode } from \"@chakra-ui/theme-tools\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyle = definePartsStyle({\n table: {\n fontVariantNumeric: \"lining-nums tabular-nums\",\n borderCollapse: \"collapse\",\n width: \"full\",\n },\n th: {\n fontFamily: \"heading\",\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n letterSpacing: \"wider\",\n textAlign: \"start\",\n },\n td: {\n textAlign: \"start\",\n },\n caption: {\n mt: 4,\n fontFamily: \"heading\",\n textAlign: \"center\",\n fontWeight: \"medium\",\n },\n})\n\nconst numericStyles = defineStyle({\n \"&[data-is-numeric=true]\": {\n textAlign: \"end\",\n },\n})\n\nconst variantSimple = definePartsStyle((props) => {\n const { colorScheme: c } = props\n\n return {\n th: {\n color: mode(\"gray.600\", \"gray.400\")(props),\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles,\n },\n td: {\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles,\n },\n caption: {\n color: mode(\"gray.600\", \"gray.100\")(props),\n },\n tfoot: {\n tr: {\n \"&:last-of-type\": {\n th: { borderBottomWidth: 0 },\n },\n },\n },\n }\n})\n\nconst variantStripe = definePartsStyle((props) => {\n const { colorScheme: c } = props\n\n return {\n th: {\n color: mode(\"gray.600\", \"gray.400\")(props),\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles,\n },\n td: {\n borderBottom: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n ...numericStyles,\n },\n caption: {\n color: mode(\"gray.600\", \"gray.100\")(props),\n },\n tbody: {\n tr: {\n \"&:nth-of-type(odd)\": {\n \"th, td\": {\n borderBottomWidth: \"1px\",\n borderColor: mode(`${c}.100`, `${c}.700`)(props),\n },\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props),\n },\n },\n },\n },\n tfoot: {\n tr: {\n \"&:last-of-type\": {\n th: { borderBottomWidth: 0 },\n },\n },\n },\n }\n})\n\nconst variants = {\n simple: variantSimple,\n striped: variantStripe,\n unstyled: defineStyle({}),\n}\n\nconst sizes = {\n sm: definePartsStyle({\n th: {\n px: \"4\",\n py: \"1\",\n lineHeight: \"4\",\n fontSize: \"xs\",\n },\n td: {\n px: \"4\",\n py: \"2\",\n fontSize: \"sm\",\n lineHeight: \"4\",\n },\n caption: {\n px: \"4\",\n py: \"2\",\n fontSize: \"xs\",\n },\n }),\n md: definePartsStyle({\n th: {\n px: \"6\",\n py: \"3\",\n lineHeight: \"4\",\n fontSize: \"xs\",\n },\n td: {\n px: \"6\",\n py: \"4\",\n lineHeight: \"5\",\n },\n caption: {\n px: \"6\",\n py: \"2\",\n fontSize: \"sm\",\n },\n }),\n lg: definePartsStyle({\n th: {\n px: \"8\",\n py: \"4\",\n lineHeight: \"5\",\n fontSize: \"sm\",\n },\n td: {\n px: \"8\",\n py: \"5\",\n lineHeight: \"6\",\n },\n caption: {\n px: \"6\",\n py: \"2\",\n fontSize: \"md\",\n },\n }),\n}\n\nexport const tableTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"simple\",\n size: \"md\",\n colorScheme: \"gray\",\n },\n})\n", "import { tabsAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { getColor } from \"@chakra-ui/theme-tools\"\n\nconst $fg = cssVar(\"tabs-color\")\nconst $bg = cssVar(\"tabs-bg\")\nconst $border = cssVar(\"tabs-border-color\")\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyleRoot = defineStyle((props) => {\n const { orientation } = props\n return {\n display: orientation === \"vertical\" ? \"flex\" : \"block\",\n }\n})\n\nconst baseStyleTab = defineStyle((props) => {\n const { isFitted } = props\n\n return {\n flex: isFitted ? 1 : undefined,\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _focusVisible: {\n zIndex: 1,\n boxShadow: \"outline\",\n },\n _disabled: {\n cursor: \"not-allowed\",\n opacity: 0.4,\n },\n }\n})\n\nconst baseStyleTablist = defineStyle((props) => {\n const { align = \"start\", orientation } = props\n\n const alignments: Record = {\n end: \"flex-end\",\n center: \"center\",\n start: \"flex-start\",\n }\n\n return {\n justifyContent: alignments[align],\n flexDirection: orientation === \"vertical\" ? \"column\" : \"row\",\n }\n})\n\nconst baseStyleTabpanel = defineStyle({\n p: 4,\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n root: baseStyleRoot(props),\n tab: baseStyleTab(props),\n tablist: baseStyleTablist(props),\n tabpanel: baseStyleTabpanel,\n}))\n\nconst sizes = {\n sm: definePartsStyle({\n tab: {\n py: 1,\n px: 4,\n fontSize: \"sm\",\n },\n }),\n md: definePartsStyle({\n tab: {\n fontSize: \"md\",\n py: 2,\n px: 4,\n },\n }),\n lg: definePartsStyle({\n tab: {\n fontSize: \"lg\",\n py: 3,\n px: 4,\n },\n }),\n}\n\nconst variantLine = definePartsStyle((props) => {\n const { colorScheme: c, orientation } = props\n const isVertical = orientation === \"vertical\"\n const borderProp = isVertical ? \"borderStart\" : \"borderBottom\"\n const marginProp = isVertical ? \"marginStart\" : \"marginBottom\"\n\n return {\n tablist: {\n [borderProp]: \"2px solid\",\n borderColor: \"inherit\",\n },\n tab: {\n [borderProp]: \"2px solid\",\n borderColor: \"transparent\",\n [marginProp]: \"-2px\",\n _selected: {\n [$fg.variable]: `colors.${c}.600`,\n _dark: {\n [$fg.variable]: `colors.${c}.300`,\n },\n borderColor: \"currentColor\",\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\",\n },\n },\n _disabled: {\n _active: { bg: \"none\" },\n },\n color: $fg.reference,\n bg: $bg.reference,\n },\n }\n})\n\nconst variantEnclosed = definePartsStyle((props) => {\n const { colorScheme: c } = props\n return {\n tab: {\n borderTopRadius: \"md\",\n border: \"1px solid\",\n borderColor: \"transparent\",\n mb: \"-1px\",\n [$border.variable]: \"transparent\",\n _selected: {\n [$fg.variable]: `colors.${c}.600`,\n [$border.variable]: `colors.white`,\n _dark: {\n [$fg.variable]: `colors.${c}.300`,\n [$border.variable]: `colors.gray.800`,\n },\n borderColor: \"inherit\",\n borderBottomColor: $border.reference,\n },\n color: $fg.reference,\n },\n tablist: {\n mb: \"-1px\",\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n },\n }\n})\n\nconst variantEnclosedColored = definePartsStyle((props) => {\n const { colorScheme: c } = props\n return {\n tab: {\n border: \"1px solid\",\n borderColor: \"inherit\",\n [$bg.variable]: \"colors.gray.50\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.50\",\n },\n mb: \"-1px\",\n _notLast: {\n marginEnd: \"-1px\",\n },\n _selected: {\n [$bg.variable]: \"colors.white\",\n [$fg.variable]: `colors.${c}.600`,\n _dark: {\n [$bg.variable]: \"colors.gray.800\",\n [$fg.variable]: `colors.${c}.300`,\n },\n borderColor: \"inherit\",\n borderTopColor: \"currentColor\",\n borderBottomColor: \"transparent\",\n },\n color: $fg.reference,\n bg: $bg.reference,\n },\n tablist: {\n mb: \"-1px\",\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n },\n }\n})\n\nconst variantSoftRounded = definePartsStyle((props) => {\n const { colorScheme: c, theme } = props\n return {\n tab: {\n borderRadius: \"full\",\n fontWeight: \"semibold\",\n color: \"gray.600\",\n _selected: {\n color: getColor(theme, `${c}.700`),\n bg: getColor(theme, `${c}.100`),\n },\n },\n }\n})\n\nconst variantSolidRounded = definePartsStyle((props) => {\n const { colorScheme: c } = props\n return {\n tab: {\n borderRadius: \"full\",\n fontWeight: \"semibold\",\n [$fg.variable]: \"colors.gray.600\",\n _dark: {\n [$fg.variable]: \"inherit\",\n },\n _selected: {\n [$fg.variable]: \"colors.white\",\n [$bg.variable]: `colors.${c}.600`,\n _dark: {\n [$fg.variable]: \"colors.gray.800\",\n [$bg.variable]: `colors.${c}.300`,\n },\n },\n color: $fg.reference,\n bg: $bg.reference,\n },\n }\n})\n\nconst variantUnstyled = definePartsStyle({})\n\nconst variants = {\n line: variantLine,\n enclosed: variantEnclosed,\n \"enclosed-colored\": variantEnclosedColored,\n \"soft-rounded\": variantSoftRounded,\n \"solid-rounded\": variantSolidRounded,\n unstyled: variantUnstyled,\n}\n\nexport const tabsTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"line\",\n colorScheme: \"blue\",\n },\n})\n", "import {\n defineCssVars,\n defineStyle,\n defineStyleConfig,\n} from \"@chakra-ui/styled-system\"\nimport { transparentize } from \"@chakra-ui/theme-tools\"\n\nconst vars = defineCssVars(\"badge\", [\"bg\", \"color\", \"shadow\"])\n\nconst baseStyle = defineStyle({\n px: 1,\n textTransform: \"uppercase\",\n fontSize: \"xs\",\n borderRadius: \"sm\",\n fontWeight: \"bold\",\n bg: vars.bg.reference,\n color: vars.color.reference,\n boxShadow: vars.shadow.reference,\n})\n\nconst variantSolid = defineStyle((props) => {\n const { colorScheme: c, theme } = props\n const dark = transparentize(`${c}.500`, 0.6)(theme)\n return {\n [vars.bg.variable]: `colors.${c}.500`,\n [vars.color.variable]: `colors.white`,\n _dark: {\n [vars.bg.variable]: dark,\n [vars.color.variable]: `colors.whiteAlpha.800`,\n },\n }\n})\n\nconst variantSubtle = defineStyle((props) => {\n const { colorScheme: c, theme } = props\n const darkBg = transparentize(`${c}.200`, 0.16)(theme)\n return {\n [vars.bg.variable]: `colors.${c}.100`,\n [vars.color.variable]: `colors.${c}.800`,\n _dark: {\n [vars.bg.variable]: darkBg,\n [vars.color.variable]: `colors.${c}.200`,\n },\n }\n})\n\nconst variantOutline = defineStyle((props) => {\n const { colorScheme: c, theme } = props\n const darkColor = transparentize(`${c}.200`, 0.8)(theme)\n return {\n [vars.color.variable]: `colors.${c}.500`,\n _dark: {\n [vars.color.variable]: darkColor,\n },\n [vars.shadow.variable]: `inset 0 0 0px 1px ${vars.color.reference}`,\n }\n})\n\nconst variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline,\n}\n\nexport const badgeTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"gray\",\n },\n})\n\nexport { vars as badgeVars }\n", "import { tagAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { badgeTheme, badgeVars } from \"./badge\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"tag-bg\")\nconst $color = cssVar(\"tag-color\")\nconst $shadow = cssVar(\"tag-shadow\")\nconst $minH = cssVar(\"tag-min-height\")\nconst $minW = cssVar(\"tag-min-width\")\nconst $fontSize = cssVar(\"tag-font-size\")\nconst $paddingX = cssVar(\"tag-padding-inline\")\n\nconst baseStyleContainer = defineStyle({\n fontWeight: \"medium\",\n lineHeight: 1.2,\n outline: 0,\n [$color.variable]: badgeVars.color.reference,\n [$bg.variable]: badgeVars.bg.reference,\n [$shadow.variable]: badgeVars.shadow.reference,\n color: $color.reference,\n bg: $bg.reference,\n boxShadow: $shadow.reference,\n borderRadius: \"md\",\n minH: $minH.reference,\n minW: $minW.reference,\n fontSize: $fontSize.reference,\n px: $paddingX.reference,\n _focusVisible: {\n [$shadow.variable]: \"shadows.outline\",\n },\n})\n\nconst baseStyleLabel = defineStyle({\n lineHeight: 1.2,\n overflow: \"visible\",\n})\n\nconst baseStyleCloseButton = defineStyle({\n fontSize: \"lg\",\n w: \"5\",\n h: \"5\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n borderRadius: \"full\",\n marginStart: \"1.5\",\n marginEnd: \"-1\",\n opacity: 0.5,\n _disabled: {\n opacity: 0.4,\n },\n _focusVisible: {\n boxShadow: \"outline\",\n bg: \"rgba(0, 0, 0, 0.14)\",\n },\n _hover: {\n opacity: 0.8,\n },\n _active: {\n opacity: 1,\n },\n})\n\nconst baseStyle = definePartsStyle({\n container: baseStyleContainer,\n label: baseStyleLabel,\n closeButton: baseStyleCloseButton,\n})\n\nconst sizes = {\n sm: definePartsStyle({\n container: {\n [$minH.variable]: \"sizes.5\",\n [$minW.variable]: \"sizes.5\",\n [$fontSize.variable]: \"fontSizes.xs\",\n [$paddingX.variable]: \"space.2\",\n },\n closeButton: {\n marginEnd: \"-2px\",\n marginStart: \"0.35rem\",\n },\n }),\n md: definePartsStyle({\n container: {\n [$minH.variable]: \"sizes.6\",\n [$minW.variable]: \"sizes.6\",\n [$fontSize.variable]: \"fontSizes.sm\",\n [$paddingX.variable]: \"space.2\",\n },\n }),\n lg: definePartsStyle({\n container: {\n [$minH.variable]: \"sizes.8\",\n [$minW.variable]: \"sizes.8\",\n [$fontSize.variable]: \"fontSizes.md\",\n [$paddingX.variable]: \"space.3\",\n },\n }),\n}\n\nconst variants = {\n subtle: definePartsStyle((props) => ({\n container: badgeTheme.variants?.subtle(props),\n })),\n solid: definePartsStyle((props) => ({\n container: badgeTheme.variants?.solid(props),\n })),\n outline: definePartsStyle((props) => ({\n container: badgeTheme.variants?.outline(props),\n })),\n}\n\nexport const tagTheme = defineMultiStyleConfig({\n variants,\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n variant: \"subtle\",\n colorScheme: \"gray\",\n },\n})\n", "import { inputAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { getColor, mode } from \"@chakra-ui/theme-tools\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $height = cssVar(\"input-height\")\nconst $fontSize = cssVar(\"input-font-size\")\nconst $padding = cssVar(\"input-padding\")\nconst $borderRadius = cssVar(\"input-border-radius\")\n\nconst baseStyle = definePartsStyle({\n addon: {\n height: $height.reference,\n fontSize: $fontSize.reference,\n px: $padding.reference,\n borderRadius: $borderRadius.reference,\n },\n field: {\n width: \"100%\",\n height: $height.reference,\n fontSize: $fontSize.reference,\n px: $padding.reference,\n borderRadius: $borderRadius.reference,\n minWidth: 0,\n outline: 0,\n position: \"relative\",\n appearance: \"none\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n },\n})\n\nconst size = {\n lg: defineStyle({\n [$fontSize.variable]: \"fontSizes.lg\",\n [$padding.variable]: \"space.4\",\n [$borderRadius.variable]: \"radii.md\",\n [$height.variable]: \"sizes.12\",\n }),\n md: defineStyle({\n [$fontSize.variable]: \"fontSizes.md\",\n [$padding.variable]: \"space.4\",\n [$borderRadius.variable]: \"radii.md\",\n [$height.variable]: \"sizes.10\",\n }),\n sm: defineStyle({\n [$fontSize.variable]: \"fontSizes.sm\",\n [$padding.variable]: \"space.3\",\n [$borderRadius.variable]: \"radii.sm\",\n [$height.variable]: \"sizes.8\",\n }),\n xs: defineStyle({\n [$fontSize.variable]: \"fontSizes.xs\",\n [$padding.variable]: \"space.2\",\n [$borderRadius.variable]: \"radii.sm\",\n [$height.variable]: \"sizes.6\",\n }),\n}\n\nconst sizes = {\n lg: definePartsStyle({\n field: size.lg,\n group: size.lg,\n }),\n md: definePartsStyle({\n field: size.md,\n group: size.md,\n }),\n sm: definePartsStyle({\n field: size.sm,\n group: size.sm,\n }),\n xs: definePartsStyle({\n field: size.xs,\n group: size.xs,\n }),\n}\n\nfunction getDefaults(props: Record) {\n const { focusBorderColor: fc, errorBorderColor: ec } = props\n return {\n focusBorderColor: fc || mode(\"blue.500\", \"blue.300\")(props),\n errorBorderColor: ec || mode(\"red.500\", \"red.300\")(props),\n }\n}\n\nconst variantOutline = definePartsStyle((props) => {\n const { theme } = props\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props)\n\n return {\n field: {\n border: \"1px solid\",\n borderColor: \"inherit\",\n bg: \"inherit\",\n _hover: {\n borderColor: mode(\"gray.300\", \"whiteAlpha.400\")(props),\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n boxShadow: `0 0 0 1px ${getColor(theme, ec)}`,\n },\n _focusVisible: {\n zIndex: 1,\n borderColor: getColor(theme, fc),\n boxShadow: `0 0 0 1px ${getColor(theme, fc)}`,\n },\n },\n addon: {\n border: \"1px solid\",\n borderColor: mode(\"inherit\", \"whiteAlpha.50\")(props),\n bg: mode(\"gray.100\", \"whiteAlpha.300\")(props),\n },\n }\n})\n\nconst variantFilled = definePartsStyle((props) => {\n const { theme } = props\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props)\n\n return {\n field: {\n border: \"2px solid\",\n borderColor: \"transparent\",\n bg: mode(\"gray.100\", \"whiteAlpha.50\")(props),\n _hover: {\n bg: mode(\"gray.200\", \"whiteAlpha.100\")(props),\n },\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n },\n _focusVisible: {\n bg: \"transparent\",\n borderColor: getColor(theme, fc),\n },\n },\n addon: {\n border: \"2px solid\",\n borderColor: \"transparent\",\n bg: mode(\"gray.100\", \"whiteAlpha.50\")(props),\n },\n }\n})\n\nconst variantFlushed = definePartsStyle((props) => {\n const { theme } = props\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props)\n\n return {\n field: {\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n borderRadius: \"0\",\n px: \"0\",\n bg: \"transparent\",\n _readOnly: {\n boxShadow: \"none !important\",\n userSelect: \"all\",\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n boxShadow: `0px 1px 0px 0px ${getColor(theme, ec)}`,\n },\n _focusVisible: {\n borderColor: getColor(theme, fc),\n boxShadow: `0px 1px 0px 0px ${getColor(theme, fc)}`,\n },\n },\n addon: {\n borderBottom: \"2px solid\",\n borderColor: \"inherit\",\n borderRadius: \"0\",\n px: \"0\",\n bg: \"transparent\",\n },\n }\n})\n\nconst variantUnstyled = definePartsStyle({\n field: {\n bg: \"transparent\",\n px: \"0\",\n height: \"auto\",\n },\n addon: {\n bg: \"transparent\",\n px: \"0\",\n height: \"auto\",\n },\n})\n\nconst variants = {\n outline: variantOutline,\n filled: variantFilled,\n flushed: variantFlushed,\n unstyled: variantUnstyled,\n}\n\nexport const inputTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"outline\",\n },\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { inputTheme } from \"./input\"\n\nconst baseStyle = defineStyle({\n ...inputTheme.baseStyle?.field,\n paddingY: \"2\",\n minHeight: \"20\",\n lineHeight: \"short\",\n verticalAlign: \"top\",\n})\n\nconst variants = {\n outline: defineStyle(\n (props) => inputTheme.variants?.outline(props).field ?? {},\n ),\n flushed: defineStyle(\n (props) => inputTheme.variants?.flushed(props).field ?? {},\n ),\n filled: defineStyle(\n (props) => inputTheme.variants?.filled(props).field ?? {},\n ),\n unstyled: inputTheme.variants?.unstyled.field ?? {},\n}\n\nconst sizes = {\n xs: inputTheme.sizes?.xs.field ?? {},\n sm: inputTheme.sizes?.sm.field ?? {},\n md: inputTheme.sizes?.md.field ?? {},\n lg: inputTheme.sizes?.lg.field ?? {},\n}\n\nexport const textareaTheme = defineStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: {\n size: \"md\",\n variant: \"outline\",\n },\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { cssVar } from \"@chakra-ui/theme-tools\"\n\nconst $bg = cssVar(\"tooltip-bg\")\nconst $fg = cssVar(\"tooltip-fg\")\nconst $arrowBg = cssVar(\"popper-arrow-bg\")\n\nconst baseStyle = defineStyle({\n bg: $bg.reference,\n color: $fg.reference,\n [$bg.variable]: \"colors.gray.700\",\n [$fg.variable]: \"colors.whiteAlpha.900\",\n _dark: {\n [$bg.variable]: \"colors.gray.300\",\n [$fg.variable]: \"colors.gray.900\",\n },\n [$arrowBg.variable]: $bg.reference,\n px: \"2\",\n py: \"0.5\",\n borderRadius: \"sm\",\n fontWeight: \"medium\",\n fontSize: \"sm\",\n boxShadow: \"md\",\n maxW: \"xs\",\n zIndex: \"tooltip\",\n})\n\nexport const tooltipTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { progressAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { generateStripe, getColor, mode } from \"@chakra-ui/theme-tools\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst filledStyle = defineStyle((props) => {\n const { colorScheme: c, theme: t, isIndeterminate, hasStripe } = props\n\n const stripeStyle = mode(\n generateStripe(),\n generateStripe(\"1rem\", \"rgba(0,0,0,0.1)\"),\n )(props)\n\n const bgColor = mode(`${c}.500`, `${c}.200`)(props)\n\n const gradient = `linear-gradient(\n to right,\n transparent 0%,\n ${getColor(t, bgColor)} 50%,\n transparent 100%\n )`\n\n const addStripe = !isIndeterminate && hasStripe\n\n return {\n ...(addStripe && stripeStyle),\n ...(isIndeterminate ? { bgImage: gradient } : { bgColor }),\n }\n})\n\nconst baseStyleLabel = defineStyle({\n lineHeight: \"1\",\n fontSize: \"0.25em\",\n fontWeight: \"bold\",\n color: \"white\",\n})\n\nconst baseStyleTrack = defineStyle((props) => {\n return {\n bg: mode(\"gray.100\", \"whiteAlpha.300\")(props),\n }\n})\n\nconst baseStyleFilledTrack = defineStyle((props) => {\n return {\n transitionProperty: \"common\",\n transitionDuration: \"slow\",\n ...filledStyle(props),\n }\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n label: baseStyleLabel,\n filledTrack: baseStyleFilledTrack(props),\n track: baseStyleTrack(props),\n}))\n\nconst sizes = {\n xs: definePartsStyle({\n track: { h: \"1\" },\n }),\n sm: definePartsStyle({\n track: { h: \"2\" },\n }),\n md: definePartsStyle({\n track: { h: \"3\" },\n }),\n lg: definePartsStyle({\n track: { h: \"4\" },\n }),\n}\n\nexport const progressTheme = defineMultiStyleConfig({\n sizes,\n baseStyle,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "const isFunction = (value: any): value is Function =>\n typeof value === \"function\"\n\nexport function runIfFn(\n valueOrFn: T | ((...fnArgs: U[]) => T),\n ...args: U[]\n): T {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn\n}\n", "import { checkboxAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { mode } from \"@chakra-ui/theme-tools\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $size = cssVar(\"checkbox-size\")\n\nconst baseStyleControl = defineStyle((props) => {\n const { colorScheme: c } = props\n\n return {\n w: $size.reference,\n h: $size.reference,\n transitionProperty: \"box-shadow\",\n transitionDuration: \"normal\",\n border: \"2px solid\",\n borderRadius: \"sm\",\n borderColor: \"inherit\",\n color: \"white\",\n\n _checked: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n borderColor: mode(`${c}.500`, `${c}.200`)(props),\n color: mode(\"white\", \"gray.900\")(props),\n\n _hover: {\n bg: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: mode(`${c}.600`, `${c}.300`)(props),\n },\n\n _disabled: {\n borderColor: mode(\"gray.200\", \"transparent\")(props),\n bg: mode(\"gray.200\", \"whiteAlpha.300\")(props),\n color: mode(\"gray.500\", \"whiteAlpha.500\")(props),\n },\n },\n\n _indeterminate: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n borderColor: mode(`${c}.500`, `${c}.200`)(props),\n color: mode(\"white\", \"gray.900\")(props),\n },\n\n _disabled: {\n bg: mode(\"gray.100\", \"whiteAlpha.100\")(props),\n borderColor: mode(\"gray.100\", \"transparent\")(props),\n },\n\n _focusVisible: {\n boxShadow: \"outline\",\n },\n\n _invalid: {\n borderColor: mode(\"red.500\", \"red.300\")(props),\n },\n }\n})\n\nconst baseStyleContainer = defineStyle({\n _disabled: { cursor: \"not-allowed\" },\n})\n\nconst baseStyleLabel = defineStyle({\n userSelect: \"none\",\n _disabled: { opacity: 0.4 },\n})\n\nconst baseStyleIcon = defineStyle({\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n icon: baseStyleIcon,\n container: baseStyleContainer,\n control: runIfFn(baseStyleControl, props),\n label: baseStyleLabel,\n}))\n\nconst sizes = {\n sm: definePartsStyle({\n control: { [$size.variable]: \"sizes.3\" },\n label: { fontSize: \"sm\" },\n icon: { fontSize: \"3xs\" },\n }),\n md: definePartsStyle({\n control: { [$size.variable]: \"sizes.4\" },\n label: { fontSize: \"md\" },\n icon: { fontSize: \"2xs\" },\n }),\n lg: definePartsStyle({\n control: { [$size.variable]: \"sizes.5\" },\n label: { fontSize: \"lg\" },\n icon: { fontSize: \"2xs\" },\n }),\n}\n\nexport const checkboxTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "import { radioAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { runIfFn } from \"../utils/run-if-fn\"\nimport { checkboxTheme } from \"./checkbox\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyleControl = defineStyle((props) => {\n const controlStyle = runIfFn(checkboxTheme.baseStyle, props)?.control\n\n return {\n ...controlStyle,\n borderRadius: \"full\",\n _checked: {\n ...controlStyle?.[\"_checked\"],\n _before: {\n content: `\"\"`,\n display: \"inline-block\",\n pos: \"relative\",\n w: \"50%\",\n h: \"50%\",\n borderRadius: \"50%\",\n bg: \"currentColor\",\n },\n },\n }\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n label: checkboxTheme.baseStyle?.(props).label,\n container: checkboxTheme.baseStyle?.(props).container,\n control: baseStyleControl(props),\n}))\n\nconst sizes = {\n md: definePartsStyle({\n control: { w: \"4\", h: \"4\" },\n label: { fontSize: \"md\" },\n }),\n lg: definePartsStyle({\n control: { w: \"5\", h: \"5\" },\n label: { fontSize: \"lg\" },\n }),\n sm: definePartsStyle({\n control: { width: \"3\", height: \"3\" },\n label: { fontSize: \"sm\" },\n }),\n}\n\nexport const radioTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "import { selectAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { inputTheme } from \"./input\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"select-bg\")\n\nconst baseStyleField = defineStyle({\n ...inputTheme.baseStyle?.field,\n appearance: \"none\",\n paddingBottom: \"1px\",\n lineHeight: \"normal\",\n bg: $bg.reference,\n [$bg.variable]: \"colors.white\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n },\n \"> option, > optgroup\": {\n bg: $bg.reference,\n },\n})\n\nconst baseStyleIcon = defineStyle({\n width: \"6\",\n height: \"100%\",\n insetEnd: \"2\",\n position: \"relative\",\n color: \"currentColor\",\n fontSize: \"xl\",\n _disabled: {\n opacity: 0.5,\n },\n})\n\nconst baseStyle = definePartsStyle({\n field: baseStyleField,\n icon: baseStyleIcon,\n})\n\nconst iconSpacing = defineStyle({\n paddingInlineEnd: \"8\",\n})\n\nconst sizes = {\n lg: {\n ...inputTheme.sizes?.lg,\n field: {\n ...inputTheme.sizes?.lg.field,\n ...iconSpacing,\n },\n },\n md: {\n ...inputTheme.sizes?.md,\n field: {\n ...inputTheme.sizes?.md.field,\n ...iconSpacing,\n },\n },\n sm: {\n ...inputTheme.sizes?.sm,\n field: {\n ...inputTheme.sizes?.sm.field,\n ...iconSpacing,\n },\n },\n xs: {\n ...inputTheme.sizes?.xs,\n field: {\n ...inputTheme.sizes?.xs.field,\n ...iconSpacing,\n },\n icon: {\n insetEnd: \"1\",\n },\n },\n}\n\nexport const selectTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants: inputTheme.variants,\n defaultProps: inputTheme.defaultProps,\n})\n", "import {\n cssVar,\n defineStyle,\n defineStyleConfig,\n} from \"@chakra-ui/styled-system\"\n\nconst $startColor = cssVar(\"skeleton-start-color\")\nconst $endColor = cssVar(\"skeleton-end-color\")\n\nconst baseStyle = defineStyle({\n [$startColor.variable]: \"colors.gray.100\",\n [$endColor.variable]: \"colors.gray.400\",\n _dark: {\n [$startColor.variable]: \"colors.gray.800\",\n [$endColor.variable]: \"colors.gray.600\",\n },\n background: $startColor.reference,\n borderColor: $endColor.reference,\n opacity: 0.7,\n borderRadius: \"sm\",\n})\n\nexport const skeletonTheme = defineStyleConfig({\n baseStyle,\n})\n", "import {\n cssVar,\n defineStyle,\n defineStyleConfig,\n} from \"@chakra-ui/styled-system\"\n\nconst $bg = cssVar(\"skip-link-bg\")\n\nconst baseStyle = defineStyle({\n borderRadius: \"md\",\n fontWeight: \"semibold\",\n _focusVisible: {\n boxShadow: \"outline\",\n padding: \"4\",\n position: \"fixed\",\n top: \"6\",\n insetStart: \"6\",\n [$bg.variable]: \"colors.white\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n },\n bg: $bg.reference,\n },\n})\n\nexport const skipLinkTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { sliderAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { orient } from \"@chakra-ui/theme-tools\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $thumbSize = cssVar(\"slider-thumb-size\")\nconst $trackSize = cssVar(\"slider-track-size\")\nconst $bg = cssVar(\"slider-bg\")\n\nconst baseStyleContainer = defineStyle((props) => {\n const { orientation } = props\n\n return {\n display: \"inline-block\",\n position: \"relative\",\n cursor: \"pointer\",\n _disabled: {\n opacity: 0.6,\n cursor: \"default\",\n pointerEvents: \"none\",\n },\n ...orient({\n orientation,\n vertical: { h: \"100%\" },\n horizontal: { w: \"100%\" },\n }),\n }\n})\n\nconst baseStyleTrack = defineStyle((props) => {\n const orientationStyles = orient({\n orientation: props.orientation,\n horizontal: { h: $trackSize.reference },\n vertical: { w: $trackSize.reference },\n })\n\n return {\n ...orientationStyles,\n overflow: \"hidden\",\n borderRadius: \"sm\",\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\",\n },\n _disabled: {\n [$bg.variable]: \"colors.gray.300\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\",\n },\n },\n bg: $bg.reference,\n }\n})\n\nconst baseStyleThumb = defineStyle((props) => {\n const { orientation } = props\n const orientationStyle = orient({\n orientation,\n vertical: {\n left: \"50%\",\n transform: `translateX(-50%)`,\n _active: {\n transform: `translateX(-50%) scale(1.15)`,\n },\n },\n horizontal: {\n top: \"50%\",\n transform: `translateY(-50%)`,\n _active: {\n transform: `translateY(-50%) scale(1.15)`,\n },\n },\n })\n\n return {\n ...orientationStyle,\n w: $thumbSize.reference,\n h: $thumbSize.reference,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n outline: 0,\n zIndex: 1,\n borderRadius: \"full\",\n bg: \"white\",\n boxShadow: \"base\",\n border: \"1px solid\",\n borderColor: \"transparent\",\n transitionProperty: \"transform\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _disabled: {\n bg: \"gray.300\",\n },\n }\n})\n\nconst baseStyleFilledTrack = defineStyle((props) => {\n const { colorScheme: c } = props\n\n return {\n width: \"inherit\",\n height: \"inherit\",\n [$bg.variable]: `colors.${c}.500`,\n _dark: {\n [$bg.variable]: `colors.${c}.200`,\n },\n bg: $bg.reference,\n }\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n container: baseStyleContainer(props),\n track: baseStyleTrack(props),\n thumb: baseStyleThumb(props),\n filledTrack: baseStyleFilledTrack(props),\n}))\n\nconst sizeLg = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.4`,\n [$trackSize.variable]: `sizes.1`,\n },\n})\n\nconst sizeMd = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.3.5`,\n [$trackSize.variable]: `sizes.1`,\n },\n})\n\nconst sizeSm = definePartsStyle({\n container: {\n [$thumbSize.variable]: `sizes.2.5`,\n [$trackSize.variable]: `sizes.0.5`,\n },\n})\n\nconst sizes = {\n lg: sizeLg,\n md: sizeMd,\n sm: sizeSm,\n}\n\nexport const sliderTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n colorScheme: \"blue\",\n },\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { cssVar } from \"@chakra-ui/theme-tools\"\n\nconst $size = cssVar(\"spinner-size\")\n\nconst baseStyle = defineStyle({\n width: [$size.reference],\n height: [$size.reference],\n})\n\nconst sizes = {\n xs: defineStyle({\n [$size.variable]: \"sizes.3\",\n }),\n sm: defineStyle({\n [$size.variable]: \"sizes.4\",\n }),\n md: defineStyle({\n [$size.variable]: \"sizes.6\",\n }),\n lg: defineStyle({\n [$size.variable]: \"sizes.8\",\n }),\n xl: defineStyle({\n [$size.variable]: \"sizes.12\",\n }),\n}\n\nexport const spinnerTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n },\n})\n", "import { statAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyleLabel = defineStyle({\n fontWeight: \"medium\",\n})\n\nconst baseStyleHelpText = defineStyle({\n opacity: 0.8,\n marginBottom: \"2\",\n})\n\nconst baseStyleNumber = defineStyle({\n verticalAlign: \"baseline\",\n fontWeight: \"semibold\",\n})\n\nconst baseStyleIcon = defineStyle({\n marginEnd: 1,\n w: \"3.5\",\n h: \"3.5\",\n verticalAlign: \"middle\",\n})\n\nconst baseStyle = definePartsStyle({\n container: {},\n label: baseStyleLabel,\n helpText: baseStyleHelpText,\n number: baseStyleNumber,\n icon: baseStyleIcon,\n})\n\nconst sizes = {\n md: definePartsStyle({\n label: { fontSize: \"sm\" },\n helpText: { fontSize: \"sm\" },\n number: { fontSize: \"2xl\" },\n }),\n}\n\nexport const statTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n },\n})\n", "import {\n cssVar,\n defineStyle,\n defineStyleConfig,\n} from \"@chakra-ui/styled-system\"\n\nconst $bg = cssVar(\"kbd-bg\")\n\nconst baseStyle = defineStyle({\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\",\n },\n bg: $bg.reference,\n borderRadius: \"md\",\n borderWidth: \"1px\",\n borderBottomWidth: \"3px\",\n fontSize: \"0.8em\",\n fontWeight: \"bold\",\n lineHeight: \"normal\",\n px: \"0.4em\",\n whiteSpace: \"nowrap\",\n})\n\nexport const kbdTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\n\nconst baseStyle = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n outline: \"none\",\n color: \"inherit\",\n _hover: {\n textDecoration: \"underline\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n})\n\nexport const linkTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { listAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyleIcon = defineStyle({\n marginEnd: \"2\",\n display: \"inline\",\n verticalAlign: \"text-bottom\",\n})\n\nconst baseStyle = definePartsStyle({\n icon: baseStyleIcon,\n})\n\nexport const listTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { menuAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"menu-bg\")\nconst $shadow = cssVar(\"menu-shadow\")\n\nconst baseStyleList = defineStyle({\n [$bg.variable]: \"#fff\",\n [$shadow.variable]: \"shadows.sm\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n [$shadow.variable]: \"shadows.dark-lg\",\n },\n color: \"inherit\",\n minW: \"3xs\",\n py: \"2\",\n zIndex: 1,\n borderRadius: \"md\",\n borderWidth: \"1px\",\n bg: $bg.reference,\n boxShadow: $shadow.reference,\n})\n\nconst baseStyleItem = defineStyle({\n py: \"1.5\",\n px: \"3\",\n transitionProperty: \"background\",\n transitionDuration: \"ultra-fast\",\n transitionTimingFunction: \"ease-in\",\n _focus: {\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\",\n },\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\",\n },\n },\n _expanded: {\n [$bg.variable]: \"colors.gray.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\",\n },\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n bg: $bg.reference,\n})\n\nconst baseStyleGroupTitle = defineStyle({\n mx: 4,\n my: 2,\n fontWeight: \"semibold\",\n fontSize: \"sm\",\n})\n\nconst baseStyleIcon = defineStyle({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n})\n\nconst baseStyleCommand = defineStyle({\n opacity: 0.6,\n})\n\nconst baseStyleDivider = defineStyle({\n border: 0,\n borderBottom: \"1px solid\",\n borderColor: \"inherit\",\n my: \"2\",\n opacity: 0.6,\n})\n\nconst baseStyleButton = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n})\n\nconst baseStyle = definePartsStyle({\n button: baseStyleButton,\n list: baseStyleList,\n item: baseStyleItem,\n groupTitle: baseStyleGroupTitle,\n icon: baseStyleIcon,\n command: baseStyleCommand,\n divider: baseStyleDivider,\n})\n\nexport const menuTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { modalAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"modal-bg\")\nconst $shadow = cssVar(\"modal-shadow\")\n\nconst baseStyleOverlay = defineStyle({\n bg: \"blackAlpha.600\",\n zIndex: \"modal\",\n})\n\nconst baseStyleDialogContainer = defineStyle((props) => {\n const { isCentered, scrollBehavior } = props\n\n return {\n display: \"flex\",\n zIndex: \"modal\",\n justifyContent: \"center\",\n alignItems: isCentered ? \"center\" : \"flex-start\",\n overflow: scrollBehavior === \"inside\" ? \"hidden\" : \"auto\",\n overscrollBehaviorY: \"none\",\n }\n})\n\nconst baseStyleDialog = defineStyle((props) => {\n const { isCentered, scrollBehavior } = props\n\n return {\n borderRadius: \"md\",\n color: \"inherit\",\n my: isCentered ? \"auto\" : \"16\",\n mx: isCentered ? \"auto\" : undefined,\n zIndex: \"modal\",\n maxH: scrollBehavior === \"inside\" ? \"calc(100% - 7.5rem)\" : undefined,\n [$bg.variable]: \"colors.white\",\n [$shadow.variable]: \"shadows.lg\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n [$shadow.variable]: \"shadows.dark-lg\",\n },\n bg: $bg.reference,\n boxShadow: $shadow.reference,\n }\n})\n\nconst baseStyleHeader = defineStyle({\n px: \"6\",\n py: \"4\",\n fontSize: \"xl\",\n fontWeight: \"semibold\",\n})\n\nconst baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n top: \"2\",\n insetEnd: \"3\",\n})\n\nconst baseStyleBody = defineStyle((props) => {\n const { scrollBehavior } = props\n return {\n px: \"6\",\n py: \"2\",\n flex: \"1\",\n overflow: scrollBehavior === \"inside\" ? \"auto\" : undefined,\n }\n})\n\nconst baseStyleFooter = defineStyle({\n px: \"6\",\n py: \"4\",\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n overlay: baseStyleOverlay,\n dialogContainer: runIfFn(baseStyleDialogContainer, props),\n dialog: runIfFn(baseStyleDialog, props),\n header: baseStyleHeader,\n closeButton: baseStyleCloseButton,\n body: runIfFn(baseStyleBody, props),\n footer: baseStyleFooter,\n}))\n\n/**\n * Since the `maxWidth` prop references theme.sizes internally,\n * we can leverage that to size our modals.\n */\nfunction getSize(value: string) {\n if (value === \"full\") {\n return definePartsStyle({\n dialog: {\n maxW: \"100vw\",\n minH: \"$100vh\",\n my: \"0\",\n borderRadius: \"0\",\n },\n })\n }\n return definePartsStyle({\n dialog: { maxW: value },\n })\n}\n\nconst sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"sm\"),\n md: getSize(\"md\"),\n lg: getSize(\"lg\"),\n xl: getSize(\"xl\"),\n \"2xl\": getSize(\"2xl\"),\n \"3xl\": getSize(\"3xl\"),\n \"4xl\": getSize(\"4xl\"),\n \"5xl\": getSize(\"5xl\"),\n \"6xl\": getSize(\"6xl\"),\n full: getSize(\"full\"),\n}\n\nexport const modalTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: { size: \"md\" },\n})\n", "import { numberInputAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { calc, cssVar } from \"@chakra-ui/theme-tools\"\nimport typography from \"../foundations/typography\"\nimport { inputTheme } from \"./input\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $stepperWidth = cssVar(\"number-input-stepper-width\")\n\nconst $inputPadding = cssVar(\"number-input-input-padding\")\nconst inputPaddingValue = calc($stepperWidth).add(\"0.5rem\").toString()\n\nconst $bg = cssVar(\"number-input-bg\")\nconst $fg = cssVar(\"number-input-color\")\nconst $border = cssVar(\"number-input-border-color\")\n\nconst baseStyleRoot = defineStyle({\n [$stepperWidth.variable]: \"sizes.6\",\n [$inputPadding.variable]: inputPaddingValue,\n})\n\nconst baseStyleField = defineStyle(\n (props) => runIfFn(inputTheme.baseStyle, props)?.field ?? {},\n)\n\nconst baseStyleStepperGroup = defineStyle({\n width: $stepperWidth.reference,\n})\n\nconst baseStyleStepper = defineStyle({\n borderStart: \"1px solid\",\n borderStartColor: $border.reference,\n color: $fg.reference,\n bg: $bg.reference,\n [$fg.variable]: \"colors.chakra-body-text\",\n [$border.variable]: \"colors.chakra-border-color\",\n _dark: {\n [$fg.variable]: \"colors.whiteAlpha.800\",\n [$border.variable]: \"colors.whiteAlpha.300\",\n },\n _active: {\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.300\",\n },\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n root: baseStyleRoot,\n field: runIfFn(baseStyleField, props) ?? {},\n stepperGroup: baseStyleStepperGroup,\n stepper: baseStyleStepper,\n}))\n\ntype FontSize = keyof typeof typography.fontSizes\n\nfunction getSize(size: FontSize) {\n //@ts-expect-error\n const sizeStyle = inputTheme.sizes?.[size]\n\n const radius: Partial> = {\n lg: \"md\",\n md: \"md\",\n sm: \"sm\",\n xs: \"sm\",\n }\n\n const _fontSize = (sizeStyle.field?.fontSize ?? \"md\") as FontSize\n const fontSize = typography.fontSizes[_fontSize]\n\n return definePartsStyle({\n field: {\n ...sizeStyle.field,\n paddingInlineEnd: $inputPadding.reference,\n verticalAlign: \"top\",\n },\n stepper: {\n fontSize: calc(fontSize).multiply(0.75).toString(),\n _first: {\n borderTopEndRadius: radius[size],\n },\n _last: {\n borderBottomEndRadius: radius[size],\n mt: \"-1px\",\n borderTopWidth: 1,\n },\n },\n })\n}\n\nconst sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"sm\"),\n md: getSize(\"md\"),\n lg: getSize(\"lg\"),\n}\n\nexport const numberInputTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n variants: inputTheme.variants,\n defaultProps: inputTheme.defaultProps,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { inputTheme } from \"./input\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst baseStyle = defineStyle({\n ...inputTheme.baseStyle?.field,\n textAlign: \"center\",\n})\n\nconst sizes = {\n lg: defineStyle({\n fontSize: \"lg\",\n w: 12,\n h: 12,\n borderRadius: \"md\",\n }),\n md: defineStyle({\n fontSize: \"md\",\n w: 10,\n h: 10,\n borderRadius: \"md\",\n }),\n sm: defineStyle({\n fontSize: \"sm\",\n w: 8,\n h: 8,\n borderRadius: \"sm\",\n }),\n xs: defineStyle({\n fontSize: \"xs\",\n w: 6,\n h: 6,\n borderRadius: \"sm\",\n }),\n}\n\nconst variants = {\n outline: defineStyle(\n (props) => runIfFn(inputTheme.variants?.outline, props)?.field ?? {},\n ),\n flushed: defineStyle(\n (props) => runIfFn(inputTheme.variants?.flushed, props)?.field ?? {},\n ),\n filled: defineStyle(\n (props) => runIfFn(inputTheme.variants?.filled, props)?.field ?? {},\n ),\n unstyled: inputTheme.variants?.unstyled.field ?? {},\n}\n\nexport const pinInputTheme = defineStyleConfig({\n baseStyle,\n sizes,\n variants,\n defaultProps: inputTheme.defaultProps,\n})\n", "import { popoverAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { cssVar } from \"@chakra-ui/theme-tools\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $popperBg = cssVar(\"popper-bg\")\nconst $arrowBg = cssVar(\"popper-arrow-bg\")\nconst $arrowShadowColor = cssVar(\"popper-arrow-shadow-color\")\n\nconst baseStylePopper = defineStyle({ zIndex: 10 })\n\nconst baseStyleContent = defineStyle({\n [$popperBg.variable]: `colors.white`,\n bg: $popperBg.reference,\n [$arrowBg.variable]: $popperBg.reference,\n [$arrowShadowColor.variable]: `colors.gray.200`,\n _dark: {\n [$popperBg.variable]: `colors.gray.700`,\n [$arrowShadowColor.variable]: `colors.whiteAlpha.300`,\n },\n width: \"xs\",\n border: \"1px solid\",\n borderColor: \"inherit\",\n borderRadius: \"md\",\n boxShadow: \"sm\",\n zIndex: \"inherit\",\n _focusVisible: {\n outline: 0,\n boxShadow: \"outline\",\n },\n})\n\nconst baseStyleHeader = defineStyle({\n px: 3,\n py: 2,\n borderBottomWidth: \"1px\",\n})\n\nconst baseStyleBody = defineStyle({\n px: 3,\n py: 2,\n})\n\nconst baseStyleFooter = defineStyle({\n px: 3,\n py: 2,\n borderTopWidth: \"1px\",\n})\n\nconst baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n borderRadius: \"md\",\n top: 1,\n insetEnd: 2,\n padding: 2,\n})\n\nconst baseStyle = definePartsStyle({\n popper: baseStylePopper,\n content: baseStyleContent,\n header: baseStyleHeader,\n body: baseStyleBody,\n footer: baseStyleFooter,\n closeButton: baseStyleCloseButton,\n})\n\nexport const popoverTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { drawerAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"drawer-bg\")\nconst $bs = cssVar(\"drawer-box-shadow\")\n\n/**\n * Since the `maxWidth` prop references theme.sizes internally,\n * we can leverage that to size our modals.\n */\nfunction getSize(value: string) {\n if (value === \"full\") {\n return definePartsStyle({\n dialog: { maxW: \"100vw\", h: \"100vh\" },\n })\n }\n return definePartsStyle({\n dialog: { maxW: value },\n })\n}\n\nconst baseStyleOverlay = defineStyle({\n bg: \"blackAlpha.600\",\n zIndex: \"modal\",\n})\n\nconst baseStyleDialogContainer = defineStyle({\n display: \"flex\",\n zIndex: \"modal\",\n justifyContent: \"center\",\n})\n\nconst baseStyleDialog = defineStyle((props) => {\n const { isFullHeight } = props\n\n return {\n ...(isFullHeight && { height: \"100vh\" }),\n zIndex: \"modal\",\n maxH: \"100vh\",\n color: \"inherit\",\n [$bg.variable]: \"colors.white\",\n [$bs.variable]: \"shadows.lg\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n [$bs.variable]: \"shadows.dark-lg\",\n },\n bg: $bg.reference,\n boxShadow: $bs.reference,\n }\n})\n\nconst baseStyleHeader = defineStyle({\n px: \"6\",\n py: \"4\",\n fontSize: \"xl\",\n fontWeight: \"semibold\",\n})\n\nconst baseStyleCloseButton = defineStyle({\n position: \"absolute\",\n top: \"2\",\n insetEnd: \"3\",\n})\n\nconst baseStyleBody = defineStyle({\n px: \"6\",\n py: \"2\",\n flex: \"1\",\n overflow: \"auto\",\n})\n\nconst baseStyleFooter = defineStyle({\n px: \"6\",\n py: \"4\",\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n overlay: baseStyleOverlay,\n dialogContainer: baseStyleDialogContainer,\n dialog: runIfFn(baseStyleDialog, props),\n header: baseStyleHeader,\n closeButton: baseStyleCloseButton,\n body: baseStyleBody,\n footer: baseStyleFooter,\n}))\n\nconst sizes = {\n xs: getSize(\"xs\"),\n sm: getSize(\"md\"),\n md: getSize(\"lg\"),\n lg: getSize(\"2xl\"),\n xl: getSize(\"4xl\"),\n full: getSize(\"full\"),\n}\n\nexport const drawerTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"xs\",\n },\n})\n", "import { editableAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStylePreview = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n})\n\nconst baseStyleInput = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n width: \"full\",\n _focusVisible: { boxShadow: \"outline\" },\n _placeholder: { opacity: 0.6 },\n})\n\nconst baseStyleTextarea = defineStyle({\n borderRadius: \"md\",\n py: \"1\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n width: \"full\",\n _focusVisible: { boxShadow: \"outline\" },\n _placeholder: { opacity: 0.6 },\n})\n\nconst baseStyle = definePartsStyle({\n preview: baseStylePreview,\n input: baseStyleInput,\n textarea: baseStyleTextarea,\n})\n\nexport const editableTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { formAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $fg = cssVar(\"form-control-color\")\n\nconst baseStyleRequiredIndicator = defineStyle({\n marginStart: \"1\",\n [$fg.variable]: \"colors.red.500\",\n _dark: {\n [$fg.variable]: \"colors.red.300\",\n },\n color: $fg.reference,\n})\n\nconst baseStyleHelperText = defineStyle({\n mt: \"2\",\n [$fg.variable]: \"colors.gray.600\",\n _dark: {\n [$fg.variable]: \"colors.whiteAlpha.600\",\n },\n color: $fg.reference,\n lineHeight: \"normal\",\n fontSize: \"sm\",\n})\n\nconst baseStyle = definePartsStyle({\n container: {\n width: \"100%\",\n position: \"relative\",\n },\n requiredIndicator: baseStyleRequiredIndicator,\n helperText: baseStyleHelperText,\n})\n\nexport const formTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { formErrorAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $fg = cssVar(\"form-error-color\")\n\nconst baseStyleText = defineStyle({\n [$fg.variable]: `colors.red.500`,\n _dark: {\n [$fg.variable]: `colors.red.300`,\n },\n color: $fg.reference,\n mt: \"2\",\n fontSize: \"sm\",\n lineHeight: \"normal\",\n})\n\nconst baseStyleIcon = defineStyle({\n marginEnd: \"0.5em\",\n [$fg.variable]: `colors.red.500`,\n _dark: {\n [$fg.variable]: `colors.red.300`,\n },\n color: $fg.reference,\n})\n\nconst baseStyle = definePartsStyle({\n text: baseStyleText,\n icon: baseStyleIcon,\n})\n\nexport const formErrorTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\n\nconst baseStyle = defineStyle({\n fontSize: \"md\",\n marginEnd: \"3\",\n mb: \"2\",\n fontWeight: \"medium\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n opacity: 1,\n _disabled: {\n opacity: 0.4,\n },\n})\n\nexport const formLabelTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\n\nconst baseStyle = defineStyle({\n fontFamily: \"heading\",\n fontWeight: \"bold\",\n})\n\nconst sizes = {\n \"4xl\": defineStyle({\n fontSize: [\"6xl\", null, \"7xl\"],\n lineHeight: 1,\n }),\n \"3xl\": defineStyle({\n fontSize: [\"5xl\", null, \"6xl\"],\n lineHeight: 1,\n }),\n \"2xl\": defineStyle({\n fontSize: [\"4xl\", null, \"5xl\"],\n lineHeight: [1.2, null, 1],\n }),\n xl: defineStyle({\n fontSize: [\"3xl\", null, \"4xl\"],\n lineHeight: [1.33, null, 1.2],\n }),\n lg: defineStyle({\n fontSize: [\"2xl\", null, \"3xl\"],\n lineHeight: [1.33, null, 1.2],\n }),\n md: defineStyle({\n fontSize: \"xl\",\n lineHeight: 1.2,\n }),\n sm: defineStyle({\n fontSize: \"md\",\n lineHeight: 1.2,\n }),\n xs: defineStyle({\n fontSize: \"sm\",\n lineHeight: 1.2,\n }),\n}\n\nexport const headingTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"xl\",\n },\n})\n", "import { breadcrumbAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { defineMultiStyleConfig, definePartsStyle } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $decor = cssVar(\"breadcrumb-link-decor\")\n\nconst baseStyleLink = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"fast\",\n transitionTimingFunction: \"ease-out\",\n outline: \"none\",\n color: \"inherit\",\n textDecoration: $decor.reference,\n [$decor.variable]: \"none\",\n \"&:not([aria-current=page])\": {\n cursor: \"pointer\",\n _hover: {\n [$decor.variable]: \"underline\",\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n },\n})\n\nconst baseStyle = definePartsStyle({\n link: baseStyleLink,\n})\n\nexport const breadcrumbTheme = defineMultiStyleConfig({\n baseStyle,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { mode, transparentize } from \"@chakra-ui/theme-tools\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst baseStyle = defineStyle({\n lineHeight: \"1.2\",\n borderRadius: \"md\",\n fontWeight: \"semibold\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n },\n _hover: {\n _disabled: {\n bg: \"initial\",\n },\n },\n})\n\nconst variantGhost = defineStyle((props) => {\n const { colorScheme: c, theme } = props\n\n if (c === \"gray\") {\n return {\n color: mode(`gray.800`, `whiteAlpha.900`)(props),\n _hover: {\n bg: mode(`gray.100`, `whiteAlpha.200`)(props),\n },\n _active: { bg: mode(`gray.200`, `whiteAlpha.300`)(props) },\n }\n }\n\n const darkHoverBg = transparentize(`${c}.200`, 0.12)(theme)\n const darkActiveBg = transparentize(`${c}.200`, 0.24)(theme)\n\n return {\n color: mode(`${c}.600`, `${c}.200`)(props),\n bg: \"transparent\",\n _hover: {\n bg: mode(`${c}.50`, darkHoverBg)(props),\n },\n _active: {\n bg: mode(`${c}.100`, darkActiveBg)(props),\n },\n }\n})\n\nconst variantOutline = defineStyle((props) => {\n const { colorScheme: c } = props\n const borderColor = mode(`gray.200`, `whiteAlpha.300`)(props)\n return {\n border: \"1px solid\",\n borderColor: c === \"gray\" ? borderColor : \"currentColor\",\n \".chakra-button__group[data-attached][data-orientation=horizontal] > &:not(:last-of-type)\":\n { marginEnd: \"-1px\" },\n \".chakra-button__group[data-attached][data-orientation=vertical] > &:not(:last-of-type)\":\n { marginBottom: \"-1px\" },\n ...runIfFn(variantGhost, props),\n }\n})\n\ntype AccessibleColor = {\n bg?: string\n color?: string\n hoverBg?: string\n activeBg?: string\n}\n\n/** Accessible color overrides for less accessible colors. */\nconst accessibleColorMap: { [key: string]: AccessibleColor } = {\n yellow: {\n bg: \"yellow.400\",\n color: \"black\",\n hoverBg: \"yellow.500\",\n activeBg: \"yellow.600\",\n },\n cyan: {\n bg: \"cyan.400\",\n color: \"black\",\n hoverBg: \"cyan.500\",\n activeBg: \"cyan.600\",\n },\n}\n\nconst variantSolid = defineStyle((props) => {\n const { colorScheme: c } = props\n\n if (c === \"gray\") {\n const bg = mode(`gray.100`, `whiteAlpha.200`)(props)\n\n return {\n bg,\n color: mode(`gray.800`, `whiteAlpha.900`)(props),\n _hover: {\n bg: mode(`gray.200`, `whiteAlpha.300`)(props),\n _disabled: {\n bg,\n },\n },\n _active: { bg: mode(`gray.300`, `whiteAlpha.400`)(props) },\n }\n }\n\n const {\n bg = `${c}.500`,\n color = \"white\",\n hoverBg = `${c}.600`,\n activeBg = `${c}.700`,\n } = accessibleColorMap[c] ?? {}\n\n const background = mode(bg, `${c}.200`)(props)\n\n return {\n bg: background,\n color: mode(color, `gray.800`)(props),\n _hover: {\n bg: mode(hoverBg, `${c}.300`)(props),\n _disabled: {\n bg: background,\n },\n },\n _active: { bg: mode(activeBg, `${c}.400`)(props) },\n }\n})\n\nconst variantLink = defineStyle((props) => {\n const { colorScheme: c } = props\n return {\n padding: 0,\n height: \"auto\",\n lineHeight: \"normal\",\n verticalAlign: \"baseline\",\n color: mode(`${c}.500`, `${c}.200`)(props),\n _hover: {\n textDecoration: \"underline\",\n _disabled: {\n textDecoration: \"none\",\n },\n },\n _active: {\n color: mode(`${c}.700`, `${c}.500`)(props),\n },\n }\n})\n\nconst variantUnstyled = defineStyle({\n bg: \"none\",\n color: \"inherit\",\n display: \"inline\",\n lineHeight: \"inherit\",\n m: \"0\",\n p: \"0\",\n})\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n link: variantLink,\n unstyled: variantUnstyled,\n}\n\nconst sizes = {\n lg: defineStyle({\n h: \"12\",\n minW: \"12\",\n fontSize: \"lg\",\n px: \"6\",\n }),\n md: defineStyle({\n h: \"10\",\n minW: \"10\",\n fontSize: \"md\",\n px: \"4\",\n }),\n sm: defineStyle({\n h: \"8\",\n minW: \"8\",\n fontSize: \"sm\",\n px: \"3\",\n }),\n xs: defineStyle({\n h: \"6\",\n minW: \"6\",\n fontSize: \"xs\",\n px: \"2\",\n }),\n}\n\nexport const buttonTheme = defineStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"solid\",\n size: \"md\",\n colorScheme: \"gray\",\n },\n})\n", "import { cardAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport { createMultiStyleConfigHelpers, cssVar } from \"@chakra-ui/styled-system\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $bg = cssVar(\"card-bg\")\nconst $padding = cssVar(\"card-padding\")\nconst $shadow = cssVar(\"card-shadow\")\nconst $radius = cssVar(\"card-radius\")\nconst $border = cssVar(\"card-border-width\", \"0\")\nconst $borderColor = cssVar(\"card-border-color\")\n\nconst baseStyle = definePartsStyle({\n container: {\n [$bg.variable]: \"colors.chakra-body-bg\",\n backgroundColor: $bg.reference,\n boxShadow: $shadow.reference,\n borderRadius: $radius.reference,\n color: \"chakra-body-text\",\n borderWidth: $border.reference,\n borderColor: $borderColor.reference,\n },\n body: {\n padding: $padding.reference,\n flex: \"1 1 0%\",\n },\n header: {\n padding: $padding.reference,\n },\n footer: {\n padding: $padding.reference,\n },\n})\n\nconst sizes = {\n sm: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.base\",\n [$padding.variable]: \"space.3\",\n },\n }),\n md: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.md\",\n [$padding.variable]: \"space.5\",\n },\n }),\n lg: definePartsStyle({\n container: {\n [$radius.variable]: \"radii.xl\",\n [$padding.variable]: \"space.7\",\n },\n }),\n}\n\nconst variants = {\n elevated: definePartsStyle({\n container: {\n [$shadow.variable]: \"shadows.base\",\n _dark: {\n [$bg.variable]: \"colors.gray.700\",\n },\n },\n }),\n outline: definePartsStyle({\n container: {\n [$border.variable]: \"1px\",\n [$borderColor.variable]: \"colors.chakra-border-color\",\n },\n }),\n filled: definePartsStyle({\n container: {\n [$bg.variable]: \"colors.chakra-subtle-bg\",\n },\n }),\n unstyled: {\n body: {\n [$padding.variable]: 0,\n },\n header: {\n [$padding.variable]: 0,\n },\n footer: {\n [$padding.variable]: 0,\n },\n },\n}\n\nexport const cardTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n sizes,\n defaultProps: {\n variant: \"elevated\",\n size: \"md\",\n },\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { cssVar } from \"@chakra-ui/theme-tools\"\n\nconst $size = cssVar(\"close-button-size\")\nconst $bg = cssVar(\"close-button-bg\")\n\nconst baseStyle = defineStyle({\n w: [$size.reference],\n h: [$size.reference],\n borderRadius: \"md\",\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n boxShadow: \"none\",\n },\n _hover: {\n [$bg.variable]: \"colors.blackAlpha.100\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.100\",\n },\n },\n _active: {\n [$bg.variable]: \"colors.blackAlpha.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.200\",\n },\n },\n _focusVisible: {\n boxShadow: \"outline\",\n },\n bg: $bg.reference,\n})\n\nconst sizes = {\n lg: defineStyle({\n [$size.variable]: \"sizes.10\",\n fontSize: \"md\",\n }),\n md: defineStyle({\n [$size.variable]: \"sizes.8\",\n fontSize: \"xs\",\n }),\n sm: defineStyle({\n [$size.variable]: \"sizes.6\",\n fontSize: \"2xs\",\n }),\n}\n\nexport const closeButtonTheme = defineStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n },\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\nimport { badgeTheme, badgeVars as vars } from \"./badge\"\n\nconst { variants, defaultProps } = badgeTheme\n\nconst baseStyle = defineStyle({\n fontFamily: \"mono\",\n fontSize: \"sm\",\n px: \"0.2em\",\n borderRadius: \"sm\",\n bg: vars.bg.reference,\n color: vars.color.reference,\n boxShadow: vars.shadow.reference,\n})\n\nexport const codeTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\n\nconst baseStyle = defineStyle({\n w: \"100%\",\n mx: \"auto\",\n maxW: \"prose\",\n px: \"4\",\n})\n\nexport const containerTheme = defineStyleConfig({\n baseStyle,\n})\n", "import { defineStyle, defineStyleConfig } from \"@chakra-ui/styled-system\"\n\nconst baseStyle = defineStyle({\n opacity: 0.6,\n borderColor: \"inherit\",\n})\n\nconst variantSolid = defineStyle({\n borderStyle: \"solid\",\n})\n\nconst variantDashed = defineStyle({\n borderStyle: \"dashed\",\n})\n\nconst variants = {\n solid: variantSolid,\n dashed: variantDashed,\n}\n\nexport const dividerTheme = defineStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"solid\",\n },\n})\n", "import { accordionAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst baseStyleContainer = defineStyle({\n borderTopWidth: \"1px\",\n borderColor: \"inherit\",\n _last: {\n borderBottomWidth: \"1px\",\n },\n})\n\nconst baseStyleButton = defineStyle({\n transitionProperty: \"common\",\n transitionDuration: \"normal\",\n fontSize: \"md\",\n _focusVisible: {\n boxShadow: \"outline\",\n },\n _hover: {\n bg: \"blackAlpha.50\",\n },\n _disabled: {\n opacity: 0.4,\n cursor: \"not-allowed\",\n },\n px: \"4\",\n py: \"2\",\n})\n\nconst baseStylePanel = defineStyle({\n pt: \"2\",\n px: \"4\",\n pb: \"5\",\n})\n\nconst baseStyleIcon = defineStyle({\n fontSize: \"1.25em\",\n})\n\nconst baseStyle = definePartsStyle({\n container: baseStyleContainer,\n button: baseStyleButton,\n panel: baseStylePanel,\n icon: baseStyleIcon,\n})\n\nexport const accordionTheme = defineMultiStyleConfig({ baseStyle })\n", "import { alertAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n StyleFunctionProps,\n} from \"@chakra-ui/styled-system\"\nimport { transparentize } from \"@chakra-ui/theme-tools\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $fg = cssVar(\"alert-fg\")\nconst $bg = cssVar(\"alert-bg\")\n\nconst baseStyle = definePartsStyle({\n container: {\n bg: $bg.reference,\n px: \"4\",\n py: \"3\",\n },\n title: {\n fontWeight: \"bold\",\n lineHeight: \"6\",\n marginEnd: \"2\",\n },\n description: {\n lineHeight: \"6\",\n },\n icon: {\n color: $fg.reference,\n flexShrink: 0,\n marginEnd: \"3\",\n w: \"5\",\n h: \"6\",\n },\n spinner: {\n color: $fg.reference,\n flexShrink: 0,\n marginEnd: \"3\",\n w: \"5\",\n h: \"5\",\n },\n})\n\nfunction getBg(props: StyleFunctionProps) {\n const { theme, colorScheme: c } = props\n const darkBg = transparentize(`${c}.200`, 0.16)(theme)\n return {\n light: `colors.${c}.100`,\n dark: darkBg,\n }\n}\n\nconst variantSubtle = definePartsStyle((props) => {\n const { colorScheme: c } = props\n const bg = getBg(props)\n return {\n container: {\n [$fg.variable]: `colors.${c}.600`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark,\n },\n },\n }\n})\n\nconst variantLeftAccent = definePartsStyle((props) => {\n const { colorScheme: c } = props\n const bg = getBg(props)\n return {\n container: {\n [$fg.variable]: `colors.${c}.600`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark,\n },\n paddingStart: \"3\",\n borderStartWidth: \"4px\",\n borderStartColor: $fg.reference,\n },\n }\n})\n\nconst variantTopAccent = definePartsStyle((props) => {\n const { colorScheme: c } = props\n const bg = getBg(props)\n return {\n container: {\n [$fg.variable]: `colors.${c}.600`,\n [$bg.variable]: bg.light,\n _dark: {\n [$fg.variable]: `colors.${c}.200`,\n [$bg.variable]: bg.dark,\n },\n pt: \"2\",\n borderTopWidth: \"4px\",\n borderTopColor: $fg.reference,\n },\n }\n})\n\nconst variantSolid = definePartsStyle((props) => {\n const { colorScheme: c } = props\n return {\n container: {\n [$fg.variable]: `colors.white`,\n [$bg.variable]: `colors.${c}.600`,\n _dark: {\n [$fg.variable]: `colors.gray.900`,\n [$bg.variable]: `colors.${c}.200`,\n },\n color: $fg.reference,\n },\n }\n})\n\nconst variants = {\n subtle: variantSubtle,\n \"left-accent\": variantLeftAccent,\n \"top-accent\": variantTopAccent,\n solid: variantSolid,\n}\n\nexport const alertTheme = defineMultiStyleConfig({\n baseStyle,\n variants,\n defaultProps: {\n variant: \"subtle\",\n colorScheme: \"blue\",\n },\n})\n", "import { avatarAnatomy as parts } from \"@chakra-ui/anatomy\"\nimport {\n createMultiStyleConfigHelpers,\n cssVar,\n defineStyle,\n} from \"@chakra-ui/styled-system\"\nimport { isDark, randomColor } from \"@chakra-ui/theme-tools\"\nimport themeSizes from \"../foundations/sizes\"\nimport { runIfFn } from \"../utils/run-if-fn\"\n\nconst { definePartsStyle, defineMultiStyleConfig } =\n createMultiStyleConfigHelpers(parts.keys)\n\nconst $border = cssVar(\"avatar-border-color\")\nconst $bg = cssVar(\"avatar-bg\")\nconst $fs = cssVar(\"avatar-font-size\")\nconst $size = cssVar(\"avatar-size\")\n\nconst baseStyleBadge = defineStyle({\n borderRadius: \"full\",\n border: \"0.2em solid\",\n borderColor: $border.reference,\n [$border.variable]: \"white\",\n _dark: {\n [$border.variable]: \"colors.gray.800\",\n },\n})\n\nconst baseStyleExcessLabel = defineStyle({\n bg: $bg.reference,\n fontSize: $fs.reference,\n width: $size.reference,\n height: $size.reference,\n lineHeight: \"1\",\n [$bg.variable]: \"colors.gray.200\",\n _dark: {\n [$bg.variable]: \"colors.whiteAlpha.400\",\n },\n})\n\nconst baseStyleContainer = defineStyle((props) => {\n const { name, theme } = props\n const bg = name ? randomColor({ string: name }) : \"colors.gray.400\"\n const isBgDark = isDark(bg)(theme)\n\n let color = \"white\"\n if (!isBgDark) color = \"gray.800\"\n\n return {\n bg: $bg.reference,\n fontSize: $fs.reference,\n color,\n borderColor: $border.reference,\n verticalAlign: \"top\",\n width: $size.reference,\n height: $size.reference,\n \"&:not([data-loaded])\": {\n [$bg.variable]: bg,\n },\n [$border.variable]: \"colors.white\",\n _dark: {\n [$border.variable]: \"colors.gray.800\",\n },\n }\n})\n\nconst baseStyleLabel = defineStyle({\n fontSize: $fs.reference,\n lineHeight: \"1\",\n})\n\nconst baseStyle = definePartsStyle((props) => ({\n badge: runIfFn(baseStyleBadge, props),\n excessLabel: runIfFn(baseStyleExcessLabel, props),\n container: runIfFn(baseStyleContainer, props),\n label: baseStyleLabel,\n}))\n\nfunction getSize(size: keyof typeof themeSizes | \"100%\") {\n const themeSize = size !== \"100%\" ? themeSizes[size] : undefined\n return definePartsStyle({\n container: {\n [$size.variable]: themeSize ?? size,\n [$fs.variable]: `calc(${themeSize ?? size} / 2.5)`,\n },\n excessLabel: {\n [$size.variable]: themeSize ?? size,\n [$fs.variable]: `calc(${themeSize ?? size} / 2.5)`,\n },\n })\n}\n\nconst sizes = {\n \"2xs\": getSize(4),\n xs: getSize(6),\n sm: getSize(8),\n md: getSize(12),\n lg: getSize(16),\n xl: getSize(24),\n \"2xl\": getSize(32),\n full: getSize(\"100%\"),\n}\n\nexport const avatarTheme = defineMultiStyleConfig({\n baseStyle,\n sizes,\n defaultProps: {\n size: \"md\",\n },\n})\n", "import { accordionTheme } from \"./accordion\"\nimport { alertTheme } from \"./alert\"\nimport { avatarTheme } from \"./avatar\"\nimport { badgeTheme } from \"./badge\"\nimport { breadcrumbTheme } from \"./breadcrumb\"\nimport { buttonTheme } from \"./button\"\nimport { cardTheme } from \"./card\"\nimport { checkboxTheme } from \"./checkbox\"\nimport { closeButtonTheme } from \"./close-button\"\nimport { codeTheme } from \"./code\"\nimport { containerTheme } from \"./container\"\nimport { dividerTheme } from \"./divider\"\nimport { drawerTheme } from \"./drawer\"\nimport { editableTheme } from \"./editable\"\nimport { formTheme } from \"./form-control\"\nimport { formErrorTheme } from \"./form-error\"\nimport { formLabelTheme } from \"./form-label\"\nimport { headingTheme } from \"./heading\"\nimport { inputTheme } from \"./input\"\nimport { kbdTheme } from \"./kbd\"\nimport { linkTheme } from \"./link\"\nimport { listTheme } from \"./list\"\nimport { menuTheme } from \"./menu\"\nimport { modalTheme } from \"./modal\"\nimport { numberInputTheme } from \"./number-input\"\nimport { pinInputTheme } from \"./pin-input\"\nimport { popoverTheme } from \"./popover\"\nimport { progressTheme } from \"./progress\"\nimport { radioTheme } from \"./radio\"\nimport { selectTheme } from \"./select\"\nimport { skeletonTheme } from \"./skeleton\"\nimport { skipLinkTheme } from \"./skip-link\"\nimport { sliderTheme } from \"./slider\"\nimport { spinnerTheme } from \"./spinner\"\nimport { statTheme } from \"./stat\"\nimport { stepperTheme } from \"./stepper\"\nimport { switchTheme } from \"./switch\"\nimport { tableTheme } from \"./table\"\nimport { tabsTheme } from \"./tabs\"\nimport { tagTheme } from \"./tag\"\nimport { textareaTheme } from \"./textarea\"\nimport { tooltipTheme } from \"./tooltip\"\n\nexport { accordionTheme as Accordion } from \"./accordion\"\nexport { alertTheme as Alert } from \"./alert\"\nexport { avatarTheme as Avatar } from \"./avatar\"\nexport { badgeTheme as Badge } from \"./badge\"\nexport { breadcrumbTheme as Breadcrumb } from \"./breadcrumb\"\nexport { buttonTheme as Button } from \"./button\"\nexport { checkboxTheme as Checkbox } from \"./checkbox\"\nexport { closeButtonTheme as CloseButton } from \"./close-button\"\nexport { codeTheme as Code } from \"./code\"\nexport { containerTheme as Container } from \"./container\"\nexport { dividerTheme as Divider } from \"./divider\"\nexport { drawerTheme as Drawer } from \"./drawer\"\nexport { editableTheme as Editable } from \"./editable\"\nexport { formTheme as Form } from \"./form-control\"\nexport { formErrorTheme as FormError } from \"./form-error\"\nexport { formLabelTheme as FormLabel } from \"./form-label\"\nexport { headingTheme as Heading } from \"./heading\"\nexport { inputTheme as Input } from \"./input\"\nexport { kbdTheme as Kbd } from \"./kbd\"\nexport { linkTheme as Link } from \"./link\"\nexport { listTheme as List } from \"./list\"\nexport { menuTheme as Menu } from \"./menu\"\nexport { modalTheme as Modal } from \"./modal\"\nexport { numberInputTheme as NumberInput } from \"./number-input\"\nexport { pinInputTheme as PinInput } from \"./pin-input\"\nexport { popoverTheme as Popover } from \"./popover\"\nexport { progressTheme as Progress } from \"./progress\"\nexport { radioTheme as Radio } from \"./radio\"\nexport { selectTheme as Select } from \"./select\"\nexport { skeletonTheme as Skeleton } from \"./skeleton\"\nexport { skipLinkTheme as SkipLink } from \"./skip-link\"\nexport { sliderTheme as Slider } from \"./slider\"\nexport { spinnerTheme as Spinner } from \"./spinner\"\nexport { statTheme as Stat } from \"./stat\"\nexport { stepperTheme as Stepper } from \"./stepper\"\nexport { switchTheme as Switch } from \"./switch\"\nexport { tableTheme as Table } from \"./table\"\nexport { tabsTheme as Tabs } from \"./tabs\"\nexport { tagTheme as Tag } from \"./tag\"\nexport { textareaTheme as Textarea } from \"./textarea\"\nexport { tooltipTheme as Tooltip } from \"./tooltip\"\n\nexport const components = {\n Accordion: accordionTheme,\n Alert: alertTheme,\n Avatar: avatarTheme,\n Badge: badgeTheme,\n Breadcrumb: breadcrumbTheme,\n Button: buttonTheme,\n Checkbox: checkboxTheme,\n CloseButton: closeButtonTheme,\n Code: codeTheme,\n Container: containerTheme,\n Divider: dividerTheme,\n Drawer: drawerTheme,\n Editable: editableTheme,\n Form: formTheme,\n FormError: formErrorTheme,\n FormLabel: formLabelTheme,\n Heading: headingTheme,\n Input: inputTheme,\n Kbd: kbdTheme,\n Link: linkTheme,\n List: listTheme,\n Menu: menuTheme,\n Modal: modalTheme,\n NumberInput: numberInputTheme,\n PinInput: pinInputTheme,\n Popover: popoverTheme,\n Progress: progressTheme,\n Radio: radioTheme,\n Select: selectTheme,\n Skeleton: skeletonTheme,\n SkipLink: skipLinkTheme,\n Slider: sliderTheme,\n Spinner: spinnerTheme,\n Stat: statTheme,\n Switch: switchTheme,\n Table: tableTheme,\n Tabs: tabsTheme,\n Tag: tagTheme,\n Textarea: textareaTheme,\n Tooltip: tooltipTheme,\n Card: cardTheme,\n Stepper: stepperTheme,\n}\n", "export const semanticTokens = {\n colors: {\n \"chakra-body-text\": { _light: \"gray.800\", _dark: \"whiteAlpha.900\" },\n \"chakra-body-bg\": { _light: \"white\", _dark: \"gray.800\" },\n \"chakra-border-color\": { _light: \"gray.200\", _dark: \"whiteAlpha.300\" },\n \"chakra-inverse-text\": { _light: \"white\", _dark: \"gray.800\" },\n \"chakra-subtle-bg\": { _light: \"gray.100\", _dark: \"gray.700\" },\n \"chakra-subtle-text\": { _light: \"gray.600\", _dark: \"gray.400\" },\n \"chakra-placeholder-color\": { _light: \"gray.500\", _dark: \"whiteAlpha.400\" },\n },\n}\n", "import { Styles } from \"@chakra-ui/theme-tools\"\n\nexport const styles: Styles = {\n global: {\n body: {\n fontFamily: \"body\",\n color: \"chakra-body-text\",\n bg: \"chakra-body-bg\",\n transitionProperty: \"background-color\",\n transitionDuration: \"normal\",\n lineHeight: \"base\",\n },\n \"*::placeholder\": {\n color: \"chakra-placeholder-color\",\n },\n \"*, *::before, &::after\": {\n borderColor: \"chakra-border-color\",\n },\n },\n}\n", "import { components } from \"./components\"\nimport { foundations } from \"./foundations\"\nimport { semanticTokens } from \"./semantic-tokens\"\nimport { styles } from \"./styles\"\nimport type { ThemeConfig, ThemeDirection } from \"./theme.types\"\n\nconst direction: ThemeDirection = \"ltr\"\n\nconst config: ThemeConfig = {\n useSystemColorMode: false,\n initialColorMode: \"light\",\n cssVarPrefix: \"chakra\",\n}\n\nexport const theme = {\n semanticTokens,\n direction,\n ...foundations,\n components,\n styles,\n config,\n}\n\nexport type Theme = typeof theme\n\nexport * from \"./theme.types\"\nexport * from \"./utils/is-chakra-theme\"\n\nexport const baseTheme = {\n semanticTokens,\n direction,\n components: {},\n ...foundations,\n styles,\n config,\n}\n", "// src/extend-theme.ts\nimport {\n theme,\n baseTheme,\n isChakraTheme\n} from \"@chakra-ui/theme\";\nimport mergeWith from \"lodash.mergewith\";\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction pipe(...fns) {\n return (v) => fns.reduce((a, b) => b(a), v);\n}\nvar createExtendTheme = (theme2) => {\n return function extendTheme2(...extensions) {\n let overrides = [...extensions];\n let activeTheme = extensions[extensions.length - 1];\n if (isChakraTheme(activeTheme) && // this ensures backward compatibility\n // previously only `extendTheme(override, activeTheme?)` was allowed\n overrides.length > 1) {\n overrides = overrides.slice(0, overrides.length - 1);\n } else {\n activeTheme = theme2;\n }\n return pipe(\n ...overrides.map(\n (extension) => (prevTheme) => isFunction(extension) ? extension(prevTheme) : mergeThemeOverride(prevTheme, extension)\n )\n )(activeTheme);\n };\n};\nvar extendTheme = createExtendTheme(theme);\nvar extendBaseTheme = createExtendTheme(baseTheme);\nfunction mergeThemeOverride(...overrides) {\n return mergeWith({}, ...overrides, mergeThemeCustomizer);\n}\nfunction mergeThemeCustomizer(source, override, key, object) {\n if ((isFunction(source) || isFunction(override)) && Object.prototype.hasOwnProperty.call(object, key)) {\n return (...args) => {\n const sourceValue = isFunction(source) ? source(...args) : source;\n const overrideValue = isFunction(override) ? override(...args) : override;\n return mergeWith({}, sourceValue, overrideValue, mergeThemeCustomizer);\n };\n }\n return void 0;\n}\n\nexport {\n extendTheme,\n extendBaseTheme,\n mergeThemeOverride\n};\n", "import {\n mergeThemeOverride\n} from \"./chunk-LIR5QAZY.mjs\";\n\n// src/theme-extensions/with-default-color-scheme.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nfunction withDefaultColorScheme({\n colorScheme,\n components\n}) {\n return (theme) => {\n let names = Object.keys(theme.components || {});\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n return mergeThemeOverride(theme, {\n components: Object.fromEntries(\n names.map((componentName) => {\n const withColorScheme = {\n defaultProps: {\n colorScheme\n }\n };\n return [componentName, withColorScheme];\n })\n )\n });\n };\n}\n\nexport {\n withDefaultColorScheme\n};\n", "import {\n mergeThemeOverride\n} from \"./chunk-LIR5QAZY.mjs\";\n\n// src/theme-extensions/with-default-size.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nfunction withDefaultSize({\n size,\n components\n}) {\n return (theme) => {\n let names = Object.keys(theme.components || {});\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n return mergeThemeOverride(theme, {\n components: Object.fromEntries(\n names.map((componentName) => {\n const withSize = {\n defaultProps: {\n size\n }\n };\n return [componentName, withSize];\n })\n )\n });\n };\n}\n\nexport {\n withDefaultSize\n};\n", "import {\n mergeThemeOverride\n} from \"./chunk-LIR5QAZY.mjs\";\n\n// src/theme-extensions/with-default-variant.ts\nimport { isObject } from \"@chakra-ui/shared-utils\";\nfunction withDefaultVariant({\n variant,\n components\n}) {\n return (theme) => {\n let names = Object.keys(theme.components || {});\n if (Array.isArray(components)) {\n names = components;\n } else if (isObject(components)) {\n names = Object.keys(components);\n }\n return mergeThemeOverride(theme, {\n components: Object.fromEntries(\n names.map((componentName) => {\n const withVariant = {\n defaultProps: {\n variant\n }\n };\n return [componentName, withVariant];\n })\n )\n });\n };\n}\n\nexport {\n withDefaultVariant\n};\n", "import {\n withDefaultColorScheme\n} from \"./chunk-7FV6Z5GW.mjs\";\nimport {\n withDefaultSize\n} from \"./chunk-5IM46G4H.mjs\";\nimport {\n withDefaultVariant\n} from \"./chunk-5UFXUR4J.mjs\";\nimport {\n mergeThemeOverride\n} from \"./chunk-LIR5QAZY.mjs\";\n\n// src/theme-extensions/with-default-props.ts\nfunction pipe(...fns) {\n return (v) => fns.reduce((a, b) => b(a), v);\n}\nfunction withDefaultProps({\n defaultProps: { colorScheme, variant, size },\n components\n}) {\n const identity = (t) => t;\n const fns = [\n colorScheme ? withDefaultColorScheme({ colorScheme, components }) : identity,\n size ? withDefaultSize({ size, components }) : identity,\n variant ? withDefaultVariant({ variant, components }) : identity\n ];\n return (theme) => mergeThemeOverride(pipe(...fns)(theme));\n}\n\nexport {\n withDefaultProps\n};\n", "// src/dom.ts\nfunction isElement(el) {\n return el != null && typeof el == \"object\" && \"nodeType\" in el && el.nodeType === Node.ELEMENT_NODE;\n}\nfunction isHTMLElement(el) {\n var _a;\n if (!isElement(el)) {\n return false;\n }\n const win = (_a = el.ownerDocument.defaultView) != null ? _a : window;\n return el instanceof win.HTMLElement;\n}\nfunction getOwnerWindow(node) {\n var _a, _b;\n return isElement(node) ? (_b = (_a = getOwnerDocument(node)) == null ? void 0 : _a.defaultView) != null ? _b : window : window;\n}\nfunction getOwnerDocument(node) {\n var _a;\n return isElement(node) ? (_a = node.ownerDocument) != null ? _a : document : document;\n}\nfunction getEventWindow(event) {\n var _a;\n return (_a = event.view) != null ? _a : window;\n}\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\nvar isBrowser = /* @__PURE__ */ canUseDOM();\nvar dataAttr = (condition) => condition ? \"\" : void 0;\nvar ariaAttr = (condition) => condition ? true : void 0;\nvar cx = (...classNames) => classNames.filter(Boolean).join(\" \");\nfunction getActiveElement(node) {\n const doc = getOwnerDocument(node);\n return doc == null ? void 0 : doc.activeElement;\n}\nfunction contains(parent, child) {\n if (!parent)\n return false;\n return parent === child || parent.contains(child);\n}\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return () => {\n target.removeEventListener(eventName, handler, options);\n };\n}\nfunction normalizeEventKey(event) {\n const { key, keyCode } = event;\n const isArrowKey = keyCode >= 37 && keyCode <= 40 && key.indexOf(\"Arrow\") !== 0;\n const eventKey = isArrowKey ? `Arrow${key}` : key;\n return eventKey;\n}\nfunction getRelatedTarget(event) {\n var _a, _b;\n const target = (_a = event.target) != null ? _a : event.currentTarget;\n const activeElement = getActiveElement(target);\n return (_b = event.relatedTarget) != null ? _b : activeElement;\n}\nfunction isRightClick(event) {\n return event.button !== 0;\n}\n\nexport {\n isElement,\n isHTMLElement,\n getOwnerWindow,\n getOwnerDocument,\n getEventWindow,\n canUseDOM,\n isBrowser,\n dataAttr,\n ariaAttr,\n cx,\n getActiveElement,\n contains,\n addDomEvent,\n normalizeEventKey,\n getRelatedTarget,\n isRightClick\n};\n", "import {\n isBrowser\n} from \"./chunk-O3SWHQEE.mjs\";\n\n// src/user-agent.ts\nfunction getUserAgentBrowser(navigator) {\n const { userAgent: ua, vendor } = navigator;\n const android = /(android)/i.test(ua);\n switch (true) {\n case /CriOS/.test(ua):\n return \"Chrome for iOS\";\n case /Edg\\//.test(ua):\n return \"Edge\";\n case (android && /Silk\\//.test(ua)):\n return \"Silk\";\n case (/Chrome/.test(ua) && /Google Inc/.test(vendor)):\n return \"Chrome\";\n case /Firefox\\/\\d+\\.\\d+$/.test(ua):\n return \"Firefox\";\n case android:\n return \"AOSP\";\n case /MSIE|Trident/.test(ua):\n return \"IE\";\n case (/Safari/.test(navigator.userAgent) && /Apple Computer/.test(ua)):\n return \"Safari\";\n case /AppleWebKit/.test(ua):\n return \"WebKit\";\n default:\n return null;\n }\n}\nfunction getUserAgentOS(navigator) {\n const { userAgent: ua, platform } = navigator;\n switch (true) {\n case /Android/.test(ua):\n return \"Android\";\n case /iPhone|iPad|iPod/.test(platform):\n return \"iOS\";\n case /Win/.test(platform):\n return \"Windows\";\n case /Mac/.test(platform):\n return \"Mac\";\n case /CrOS/.test(ua):\n return \"Chrome OS\";\n case /Firefox/.test(ua):\n return \"Firefox OS\";\n default:\n return null;\n }\n}\nfunction detectDeviceType(navigator) {\n const { userAgent: ua } = navigator;\n if (/(tablet)|(iPad)|(Nexus 9)/i.test(ua))\n return \"tablet\";\n if (/(mobi)/i.test(ua))\n return \"phone\";\n return \"desktop\";\n}\nfunction detectOS(os) {\n if (!isBrowser)\n return false;\n return getUserAgentOS(window.navigator) === os;\n}\nfunction detectBrowser(browser) {\n if (!isBrowser)\n return false;\n return getUserAgentBrowser(window.navigator) === browser;\n}\nfunction detectTouch() {\n if (!isBrowser)\n return false;\n return window.ontouchstart === null && window.ontouchmove === null && window.ontouchend === null;\n}\n\nexport {\n detectDeviceType,\n detectOS,\n detectBrowser,\n detectTouch\n};\n", "// src/object.ts\nimport { default as default2 } from \"lodash.mergewith\";\nfunction omit(object, keys) {\n const result = {};\n Object.keys(object).forEach((key) => {\n if (keys.includes(key))\n return;\n result[key] = object[key];\n });\n return result;\n}\nfunction pick(object, keys) {\n const result = {};\n keys.forEach((key) => {\n if (key in object) {\n result[key] = object[key];\n }\n });\n return result;\n}\nfunction split(object, keys) {\n const picked = {};\n const omitted = {};\n Object.keys(object).forEach((key) => {\n if (keys.includes(key)) {\n picked[key] = object[key];\n } else {\n omitted[key] = object[key];\n }\n });\n return [picked, omitted];\n}\nfunction get(obj, path, fallback, index) {\n const key = typeof path === \"string\" ? path.split(\".\") : [path];\n for (index = 0; index < key.length; index += 1) {\n if (!obj)\n break;\n obj = obj[key[index]];\n }\n return obj === void 0 ? fallback : obj;\n}\nvar memoize = (fn) => {\n const cache = /* @__PURE__ */ new WeakMap();\n const memoizedFn = (obj, path, fallback, index) => {\n if (typeof obj === \"undefined\") {\n return fn(obj, path, fallback);\n }\n if (!cache.has(obj)) {\n cache.set(obj, /* @__PURE__ */ new Map());\n }\n const map = cache.get(obj);\n if (map.has(path)) {\n return map.get(path);\n }\n const value = fn(obj, path, fallback, index);\n map.set(path, value);\n return value;\n };\n return memoizedFn;\n};\nvar memoizedGet = memoize(get);\nfunction getWithDefault(path, scale) {\n return memoizedGet(scale, path, path);\n}\nfunction objectFilter(object, fn) {\n const result = {};\n Object.keys(object).forEach((key) => {\n const value = object[key];\n const shouldPass = fn(value, key, object);\n if (shouldPass) {\n result[key] = value;\n }\n });\n return result;\n}\nvar filterUndefined = (object) => objectFilter(object, (val) => val !== null && val !== void 0);\nvar objectKeys = (obj) => Object.keys(obj);\nvar fromEntries = (entries) => entries.reduce((carry, [key, value]) => {\n carry[key] = value;\n return carry;\n}, {});\nvar getCSSVar = (theme, scale, value) => {\n var _a, _b, _c;\n return (_c = (_b = (_a = theme.__cssMap) == null ? void 0 : _a[`${scale}.${value}`]) == null ? void 0 : _b.varRef) != null ? _c : value;\n};\n\nexport {\n omit,\n pick,\n split,\n get,\n memoize,\n memoizedGet,\n getWithDefault,\n objectFilter,\n filterUndefined,\n objectKeys,\n fromEntries,\n getCSSVar,\n default2 as default\n};\n", "// src/assertion.ts\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isNotNumber(value) {\n return typeof value !== \"number\" || Number.isNaN(value) || !Number.isFinite(value);\n}\nfunction isNumeric(value) {\n return value != null && value - parseFloat(value) + 1 >= 0;\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isDefined(value) {\n return typeof value !== \"undefined\" && value !== void 0;\n}\nfunction isUndefined(value) {\n return typeof value === \"undefined\" || value === void 0;\n}\nfunction isObject(value) {\n const type = typeof value;\n return value != null && (type === \"object\" || type === \"function\") && !isArray(value);\n}\nfunction isEmptyObject(value) {\n return isObject(value) && Object.keys(value).length === 0;\n}\nfunction isNotEmptyObject(value) {\n return value && !isEmptyObject(value);\n}\nfunction isNull(value) {\n return value == null;\n}\nfunction isString(value) {\n return Object.prototype.toString.call(value) === \"[object String]\";\n}\nfunction isCssVar(value) {\n return /^var\\(--.+\\)$/.test(value);\n}\nfunction isEmpty(value) {\n if (isArray(value))\n return isEmptyArray(value);\n if (isObject(value))\n return isEmptyObject(value);\n if (value == null || value === \"\")\n return true;\n return false;\n}\nvar __DEV__ = process.env.NODE_ENV !== \"production\";\nvar __TEST__ = process.env.NODE_ENV === \"test\";\nfunction isRefObject(val) {\n return \"current\" in val;\n}\nfunction isInputEvent(value) {\n return value && isObject(value) && isObject(value.target);\n}\n\nexport {\n isNumber,\n isNotNumber,\n isNumeric,\n isArray,\n isEmptyArray,\n isFunction,\n isDefined,\n isUndefined,\n isObject,\n isEmptyObject,\n isNotEmptyObject,\n isNull,\n isString,\n isCssVar,\n isEmpty,\n __DEV__,\n __TEST__,\n isRefObject,\n isInputEvent\n};\n", "import {\n __DEV__,\n isFunction,\n isNumber\n} from \"./chunk-Y5FGD7DM.mjs\";\n\n// src/function.ts\nfunction runIfFn(valueOrFn, ...args) {\n return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;\n}\nfunction callAllHandlers(...fns) {\n return function func(event) {\n fns.some((fn) => {\n fn == null ? void 0 : fn(event);\n return event == null ? void 0 : event.defaultPrevented;\n });\n };\n}\nfunction callAll(...fns) {\n return function mergedFn(arg) {\n fns.forEach((fn) => {\n fn == null ? void 0 : fn(arg);\n });\n };\n}\nvar compose = (fn1, ...fns) => fns.reduce(\n (f1, f2) => (...args) => f1(f2(...args)),\n fn1\n);\nfunction once(fn) {\n let result;\n return function func(...args) {\n if (fn) {\n result = fn.apply(this, args);\n fn = null;\n }\n return result;\n };\n}\nvar noop = () => {\n};\nvar warn = /* @__PURE__ */ once((options) => () => {\n const { condition, message } = options;\n if (condition && __DEV__) {\n console.warn(message);\n }\n});\nvar error = /* @__PURE__ */ once((options) => () => {\n const { condition, message } = options;\n if (condition && __DEV__) {\n console.error(message);\n }\n});\nvar pipe = (...fns) => (v) => fns.reduce((a, b) => b(a), v);\nvar distance1D = (a, b) => Math.abs(a - b);\nvar isPoint = (point) => \"x\" in point && \"y\" in point;\nfunction distance(a, b) {\n if (isNumber(a) && isNumber(b)) {\n return distance1D(a, b);\n }\n if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n }\n return 0;\n}\n\nexport {\n runIfFn,\n callAllHandlers,\n callAll,\n compose,\n once,\n noop,\n warn,\n error,\n pipe,\n distance\n};\n", "import {\n warn\n} from \"./chunk-M3TFMUOL.mjs\";\nimport {\n isNotNumber\n} from \"./chunk-Y5FGD7DM.mjs\";\n\n// src/number.ts\nvar minSafeInteger = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar maxSafeInteger = Number.MAX_SAFE_INTEGER || 9007199254740991;\nfunction toNumber(value) {\n const num = parseFloat(value);\n return isNotNumber(num) ? 0 : num;\n}\nfunction toPrecision(value, precision) {\n let nextValue = toNumber(value);\n const scaleFactor = 10 ** (precision != null ? precision : 10);\n nextValue = Math.round(nextValue * scaleFactor) / scaleFactor;\n return precision ? nextValue.toFixed(precision) : nextValue.toString();\n}\nfunction countDecimalPlaces(value) {\n if (!Number.isFinite(value))\n return 0;\n let e = 1;\n let p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n}\nfunction valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction roundValueToStep(value, from, step) {\n const nextValue = Math.round((value - from) / step) * step + from;\n const precision = countDecimalPlaces(step);\n return toPrecision(nextValue, precision);\n}\nfunction clampValue(value, min, max) {\n if (value == null)\n return value;\n warn({\n condition: max < min,\n message: \"clamp: max cannot be less than min\"\n });\n return Math.min(Math.max(value, min), max);\n}\n\nexport {\n minSafeInteger,\n maxSafeInteger,\n toPrecision,\n countDecimalPlaces,\n valueToPercent,\n percentToValue,\n roundValueToStep,\n clampValue\n};\n", "import {\n addDomEvent,\n getEventWindow,\n isBrowser\n} from \"./chunk-O3SWHQEE.mjs\";\n\n// src/pointer-event.ts\nfunction isMouseEvent(event) {\n const win = getEventWindow(event);\n if (typeof win.PointerEvent !== \"undefined\" && event instanceof win.PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof win.MouseEvent;\n}\nfunction isTouchEvent(event) {\n const hasTouches = !!event.touches;\n return hasTouches;\n}\nfunction filterPrimaryPointer(eventHandler) {\n return (event) => {\n const win = getEventWindow(event);\n const isMouseEvent2 = event instanceof win.MouseEvent;\n const isPrimaryPointer = !isMouseEvent2 || isMouseEvent2 && event.button === 0;\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType = \"page\") {\n const primaryTouch = e.touches[0] || e.changedTouches[0];\n const point = primaryTouch || defaultPagePoint;\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`]\n };\n}\nfunction pointFromMouse(point, pointType = \"page\") {\n return {\n x: point[`${pointType}X`],\n y: point[`${pointType}Y`]\n };\n}\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: isTouchEvent(event) ? pointFromTouch(event, pointType) : pointFromMouse(event, pointType)\n };\n}\nfunction getViewportPointFromEvent(event) {\n return extractEventInfo(event, \"client\");\n}\nvar wrapPointerEventHandler = (handler, shouldFilterPrimaryPointer = false) => {\n const listener = (event) => handler(event, extractEventInfo(event));\n return shouldFilterPrimaryPointer ? filterPrimaryPointer(listener) : listener;\n};\nvar supportsPointerEvents = () => isBrowser && window.onpointerdown === null;\nvar supportsTouchEvents = () => isBrowser && window.ontouchstart === null;\nvar supportsMouseEvents = () => isBrowser && window.onmousedown === null;\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\"\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\"\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(\n target,\n getPointerEventName(eventName),\n wrapPointerEventHandler(handler, eventName === \"pointerdown\"),\n options\n );\n}\nfunction isMultiTouchEvent(event) {\n return isTouchEvent(event) && event.touches.length > 1;\n}\n\nexport {\n isMouseEvent,\n isTouchEvent,\n extractEventInfo,\n getViewportPointFromEvent,\n wrapPointerEventHandler,\n getPointerEventName,\n addPointerEvent,\n isMultiTouchEvent\n};\n", "var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\nexport {\n __publicField\n};\n", "const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n", "function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n", "import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n", "import {\n addPointerEvent,\n extractEventInfo,\n isMouseEvent,\n isMultiTouchEvent\n} from \"./chunk-LCE7F24A.mjs\";\nimport {\n getEventWindow\n} from \"./chunk-O3SWHQEE.mjs\";\nimport {\n distance,\n noop,\n pipe\n} from \"./chunk-M3TFMUOL.mjs\";\nimport {\n __publicField\n} from \"./chunk-NHABU752.mjs\";\n\n// src/pan-event.ts\nimport sync, { cancelSync, getFrameData } from \"framesync\";\nvar PanSession = class {\n constructor(event, handlers, threshold) {\n __publicField(this, \"history\", []);\n __publicField(this, \"startEvent\", null);\n __publicField(this, \"lastEvent\", null);\n __publicField(this, \"lastEventInfo\", null);\n __publicField(this, \"handlers\", {});\n __publicField(this, \"removeListeners\", noop);\n __publicField(this, \"threshold\", 3);\n __publicField(this, \"win\");\n __publicField(this, \"updatePoint\", () => {\n if (!(this.lastEvent && this.lastEventInfo))\n return;\n const info = getPanInfo(this.lastEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n const isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= this.threshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { timestamp } = getFrameData();\n this.history.push({ ...info.point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart == null ? void 0 : onStart(this.lastEvent, info);\n this.startEvent = this.lastEvent;\n }\n onMove == null ? void 0 : onMove(this.lastEvent, info);\n });\n __publicField(this, \"onPointerMove\", (event, info) => {\n this.lastEvent = event;\n this.lastEventInfo = info;\n if (isMouseEvent(event) && event.buttons === 0) {\n this.onPointerUp(event, info);\n return;\n }\n sync.update(this.updatePoint, true);\n });\n __publicField(this, \"onPointerUp\", (event, info) => {\n const panInfo = getPanInfo(info, this.history);\n const { onEnd, onSessionEnd } = this.handlers;\n onSessionEnd == null ? void 0 : onSessionEnd(event, panInfo);\n this.end();\n if (!onEnd || !this.startEvent)\n return;\n onEnd == null ? void 0 : onEnd(event, panInfo);\n });\n this.win = getEventWindow(event);\n if (isMultiTouchEvent(event))\n return;\n this.handlers = handlers;\n if (threshold) {\n this.threshold = threshold;\n }\n event.stopPropagation();\n event.preventDefault();\n const info = extractEventInfo(event);\n const { timestamp } = getFrameData();\n this.history = [{ ...info.point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart == null ? void 0 : onSessionStart(event, getPanInfo(info, this.history));\n this.removeListeners = pipe(\n addPointerEvent(this.win, \"pointermove\", this.onPointerMove),\n addPointerEvent(this.win, \"pointerup\", this.onPointerUp),\n addPointerEvent(this.win, \"pointercancel\", this.onPointerUp)\n );\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n var _a;\n (_a = this.removeListeners) == null ? void 0 : _a.call(this);\n cancelSync.update(this.updatePoint);\n }\n};\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction startPanPoint(history) {\n return history[0];\n}\nfunction lastPanPoint(history) {\n return history[history.length - 1];\n}\nfunction getPanInfo(info, history) {\n return {\n point: info.point,\n delta: subtractPoint(info.point, lastPanPoint(history)),\n offset: subtractPoint(info.point, startPanPoint(history)),\n velocity: getVelocity(history, 0.1)\n };\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nvar toMilliseconds = (seconds) => seconds * 1e3;\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp > toMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = (lastPoint.timestamp - timestampedPoint.timestamp) / 1e3;\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport {\n PanSession\n};\n", "import {\n objectKeys\n} from \"./chunk-YTQ3XZ3T.mjs\";\nimport {\n getLastItem\n} from \"./chunk-YTAYUX3P.mjs\";\nimport {\n isArray,\n isObject\n} from \"./chunk-Y5FGD7DM.mjs\";\n\n// src/responsive.ts\nvar breakpoints = Object.freeze([\n \"base\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"2xl\"\n]);\nfunction mapResponsive(prop, mapper) {\n if (isArray(prop)) {\n return prop.map((item) => {\n if (item === null) {\n return null;\n }\n return mapper(item);\n });\n }\n if (isObject(prop)) {\n return objectKeys(prop).reduce((result, key) => {\n result[key] = mapper(prop[key]);\n return result;\n }, {});\n }\n if (prop != null) {\n return mapper(prop);\n }\n return null;\n}\nfunction objectToArrayNotation(obj, bps = breakpoints) {\n const result = bps.map((br) => {\n var _a;\n return (_a = obj[br]) != null ? _a : null;\n });\n while (getLastItem(result) === null) {\n result.pop();\n }\n return result;\n}\nfunction arrayToObjectNotation(values, bps = breakpoints) {\n const result = {};\n values.forEach((value, index) => {\n const key = bps[index];\n if (value == null)\n return;\n result[key] = value;\n });\n return result;\n}\nfunction isResponsiveObjectLike(obj, bps = breakpoints) {\n const keys = Object.keys(obj);\n return keys.length > 0 && keys.every((key) => bps.includes(key));\n}\nvar isCustomBreakpoint = (maybeBreakpoint) => Number.isNaN(Number(maybeBreakpoint));\n\nexport {\n breakpoints,\n mapResponsive,\n objectToArrayNotation,\n arrayToObjectNotation,\n isResponsiveObjectLike,\n isCustomBreakpoint\n};\n", "import {\n getOwnerDocument,\n isHTMLElement\n} from \"./chunk-O3SWHQEE.mjs\";\n\n// src/tabbable.ts\nvar hasDisplayNone = (element) => window.getComputedStyle(element).display === \"none\";\nvar hasTabIndex = (element) => element.hasAttribute(\"tabindex\");\nvar hasNegativeTabIndex = (element) => hasTabIndex(element) && element.tabIndex === -1;\nfunction isDisabled(element) {\n return Boolean(element.getAttribute(\"disabled\")) === true || Boolean(element.getAttribute(\"aria-disabled\")) === true;\n}\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.localName === \"input\" && \"select\" in element;\n}\nfunction isActiveElement(element) {\n const doc = isHTMLElement(element) ? getOwnerDocument(element) : document;\n return doc.activeElement === element;\n}\nfunction hasFocusWithin(element) {\n if (!document.activeElement)\n return false;\n return element.contains(document.activeElement);\n}\nfunction isHidden(element) {\n if (element.parentElement && isHidden(element.parentElement))\n return true;\n return element.hidden;\n}\nfunction isContentEditable(element) {\n const value = element.getAttribute(\"contenteditable\");\n return value !== \"false\" && value != null;\n}\nfunction isFocusable(element) {\n if (!isHTMLElement(element) || isHidden(element) || isDisabled(element)) {\n return false;\n }\n const { localName } = element;\n const focusableTags = [\"input\", \"select\", \"textarea\", \"button\"];\n if (focusableTags.indexOf(localName) >= 0)\n return true;\n const others = {\n a: () => element.hasAttribute(\"href\"),\n audio: () => element.hasAttribute(\"controls\"),\n video: () => element.hasAttribute(\"controls\")\n };\n if (localName in others) {\n return others[localName]();\n }\n if (isContentEditable(element))\n return true;\n return hasTabIndex(element);\n}\nfunction isTabbable(element) {\n if (!element)\n return false;\n return isHTMLElement(element) && isFocusable(element) && !hasNegativeTabIndex(element);\n}\n\nexport {\n hasDisplayNone,\n hasTabIndex,\n hasNegativeTabIndex,\n isDisabled,\n isInputElement,\n isActiveElement,\n hasFocusWithin,\n isHidden,\n isContentEditable,\n isFocusable,\n isTabbable\n};\n", "import {\n isFocusable,\n isTabbable\n} from \"./chunk-P6S57EDQ.mjs\";\nimport {\n isHTMLElement\n} from \"./chunk-O3SWHQEE.mjs\";\n\n// src/dom-query.ts\nvar focusableElList = [\n \"input:not(:disabled):not([disabled])\",\n \"select:not(:disabled):not([disabled])\",\n \"textarea:not(:disabled):not([disabled])\",\n \"embed\",\n \"iframe\",\n \"object\",\n \"a[href]\",\n \"area[href]\",\n \"button:not(:disabled):not([disabled])\",\n \"[tabindex]\",\n \"audio[controls]\",\n \"video[controls]\",\n \"*[tabindex]:not([aria-disabled])\",\n \"*[contenteditable]\"\n];\nvar focusableElSelector = focusableElList.join();\nvar isVisible = (el) => el.offsetWidth > 0 && el.offsetHeight > 0;\nfunction getAllFocusable(container) {\n const focusableEls = Array.from(\n container.querySelectorAll(focusableElSelector)\n );\n focusableEls.unshift(container);\n return focusableEls.filter((el) => isFocusable(el) && isVisible(el));\n}\nfunction getFirstFocusable(container) {\n const allFocusable = getAllFocusable(container);\n return allFocusable.length ? allFocusable[0] : null;\n}\nfunction getAllTabbable(container, fallbackToFocusable) {\n const allFocusable = Array.from(\n container.querySelectorAll(focusableElSelector)\n );\n const allTabbable = allFocusable.filter(isTabbable);\n if (isTabbable(container)) {\n allTabbable.unshift(container);\n }\n if (!allTabbable.length && fallbackToFocusable) {\n return allFocusable;\n }\n return allTabbable;\n}\nfunction getFirstTabbableIn(container, fallbackToFocusable) {\n const [first] = getAllTabbable(container, fallbackToFocusable);\n return first || null;\n}\nfunction getLastTabbableIn(container, fallbackToFocusable) {\n const allTabbable = getAllTabbable(container, fallbackToFocusable);\n return allTabbable[allTabbable.length - 1] || null;\n}\nfunction getNextTabbable(container, fallbackToFocusable) {\n const allFocusable = getAllFocusable(container);\n const index = allFocusable.indexOf(document.activeElement);\n const slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\nfunction getPreviousTabbable(container, fallbackToFocusable) {\n const allFocusable = getAllFocusable(container).reverse();\n const index = allFocusable.indexOf(document.activeElement);\n const slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\nfunction focusNextTabbable(container, fallbackToFocusable) {\n const nextTabbable = getNextTabbable(container, fallbackToFocusable);\n if (nextTabbable && isHTMLElement(nextTabbable)) {\n nextTabbable.focus();\n }\n}\nfunction focusPreviousTabbable(container, fallbackToFocusable) {\n const previousTabbable = getPreviousTabbable(container, fallbackToFocusable);\n if (previousTabbable && isHTMLElement(previousTabbable)) {\n previousTabbable.focus();\n }\n}\nfunction matches(element, selectors) {\n if (\"matches\" in element)\n return element.matches(selectors);\n if (\"msMatchesSelector\" in element)\n return element.msMatchesSelector(selectors);\n return element.webkitMatchesSelector(selectors);\n}\nfunction closest(element, selectors) {\n if (\"closest\" in element)\n return element.closest(selectors);\n do {\n if (matches(element, selectors))\n return element;\n element = element.parentElement || element.parentNode;\n } while (element !== null && element.nodeType === 1);\n return null;\n}\n\nexport {\n getAllFocusable,\n getFirstFocusable,\n getAllTabbable,\n getFirstTabbableIn,\n getLastTabbableIn,\n getNextTabbable,\n getPreviousTabbable,\n focusNextTabbable,\n focusPreviousTabbable,\n closest\n};\n", "import {\n isActiveElement,\n isInputElement\n} from \"./chunk-P6S57EDQ.mjs\";\nimport {\n getOwnerDocument\n} from \"./chunk-O3SWHQEE.mjs\";\nimport {\n warn\n} from \"./chunk-M3TFMUOL.mjs\";\n\n// src/focus.ts\nfunction focus(element, options = {}) {\n const {\n isActive = isActiveElement,\n nextTick,\n preventScroll = true,\n selectTextIfInput = true\n } = options;\n if (!element || isActive(element))\n return -1;\n function triggerFocus() {\n if (!element) {\n warn({\n condition: true,\n message: \"[chakra-ui]: can't call focus() on `null` or `undefined` element\"\n });\n return;\n }\n if (supportsPreventScroll()) {\n element.focus({ preventScroll });\n } else {\n element.focus();\n if (preventScroll) {\n const scrollableElements = getScrollableElements(element);\n restoreScrollPosition(scrollableElements);\n }\n }\n if (selectTextIfInput) {\n if (isInputElement(element)) {\n element.select();\n } else if (\"setSelectionRange\" in element) {\n const el = element;\n el.setSelectionRange(el.value.length, el.value.length);\n }\n }\n }\n if (nextTick) {\n return requestAnimationFrame(triggerFocus);\n }\n triggerFocus();\n return -1;\n}\nvar supportsPreventScrollCached = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n const div = document.createElement(\"div\");\n div.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n }\n }\n return supportsPreventScrollCached;\n}\nfunction getScrollableElements(element) {\n var _a;\n const doc = getOwnerDocument(element);\n const win = (_a = doc.defaultView) != null ? _a : window;\n let parent = element.parentNode;\n const scrollableElements = [];\n const rootScrollingElement = doc.scrollingElement || doc.documentElement;\n while (parent instanceof win.HTMLElement && parent !== rootScrollingElement) {\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof win.HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n return scrollableElements;\n}\nfunction restoreScrollPosition(scrollableElements) {\n for (const { element, scrollTop, scrollLeft } of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\nexport {\n focus\n};\n", "var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n", "import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n", "import {\n resolveStyleConfig,\n SystemStyleObject,\n ThemingProps,\n} from \"@chakra-ui/styled-system\"\nimport { mergeThemeOverride } from \"@chakra-ui/theme-utils\"\nimport {\n Dict,\n filterUndefined,\n memoizedGet as get,\n mergeWith,\n omit,\n} from \"@chakra-ui/utils\"\nimport { useRef } from \"react\"\nimport isEqual from \"react-fast-compare\"\nimport { useChakra } from \"./hooks\"\n\ntype StylesRef = SystemStyleObject | Record\n\nfunction useStyleConfigImpl(\n themeKey: string | null,\n props: ThemingProps & Dict = {},\n) {\n const { styleConfig: styleConfigProp, ...rest } = props\n\n const { theme, colorMode } = useChakra()\n\n const themeStyleConfig = themeKey\n ? get(theme, `components.${themeKey}`)\n : undefined\n\n const styleConfig = styleConfigProp || themeStyleConfig\n\n const mergedProps = mergeWith(\n { theme, colorMode },\n styleConfig?.defaultProps ?? {},\n filterUndefined(omit(rest, [\"children\"])),\n )\n\n /**\n * Store the computed styles in a `ref` to avoid unneeded re-computation\n */\n const stylesRef = useRef({})\n\n if (styleConfig) {\n const getStyles = resolveStyleConfig(styleConfig)\n const styles = getStyles(mergedProps)\n\n const isStyleEqual = isEqual(stylesRef.current, styles)\n\n if (!isStyleEqual) {\n stylesRef.current = styles\n }\n }\n\n return stylesRef.current\n}\n\nexport function useStyleConfig(\n themeKey: string,\n props: ThemingProps & Dict = {},\n) {\n return useStyleConfigImpl(themeKey, props) as SystemStyleObject\n}\n\nexport function useMultiStyleConfig(\n themeKey: string,\n props: ThemingProps & Dict = {},\n) {\n return useStyleConfigImpl(themeKey, props) as Record<\n string,\n SystemStyleObject\n >\n}\n\ntype MultipartStyles = Record\n\nexport function useComponentStyles__unstable(\n themeKey: string,\n props: ThemingProps & { baseConfig: any },\n) {\n const { baseConfig, ...restProps } = props\n const { theme } = useChakra()\n\n const overrides = theme.components?.[themeKey]\n\n const styleConfig = overrides\n ? mergeThemeOverride(overrides, baseConfig)\n : baseConfig\n\n return useStyleConfigImpl(null, {\n ...restProps,\n styleConfig,\n }) as MultipartStyles\n}\n", "import { propNames } from \"@chakra-ui/styled-system\"\n\n/**\n * List of props for emotion to omit from DOM.\n * It mostly consists of Chakra props\n */\nconst allPropNames = new Set([\n ...propNames,\n \"textStyle\",\n \"layerStyle\",\n \"apply\",\n \"noOfLines\",\n \"focusBorderColor\",\n \"errorBorderColor\",\n \"as\",\n \"__css\",\n \"css\",\n \"sx\",\n])\n\n/**\n * htmlWidth and htmlHeight is used in the \n * component to support the native `width` and `height` attributes\n *\n * https://github.com/chakra-ui/chakra-ui/issues/149\n */\nconst validHTMLProps = new Set([\n \"htmlWidth\",\n \"htmlHeight\",\n \"htmlSize\",\n \"htmlTranslate\",\n])\n\nexport function shouldForwardProp(prop: string): boolean {\n return validHTMLProps.has(prop) || !allPropNames.has(prop)\n}\n", "// src/assign-after.ts\nfunction assignAfter(target, ...sources) {\n if (target == null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n const result = { ...target };\n for (const nextSource of sources) {\n if (nextSource == null)\n continue;\n for (const nextKey in nextSource) {\n if (!Object.prototype.hasOwnProperty.call(nextSource, nextKey))\n continue;\n if (nextKey in result)\n delete result[nextKey];\n result[nextKey] = nextSource[nextKey];\n }\n }\n return result;\n}\n\nexport {\n assignAfter\n};\n", "// src/compact.ts\nfunction compact(object) {\n const clone = Object.assign({}, object);\n for (let key in clone) {\n if (clone[key] === void 0)\n delete clone[key];\n }\n return clone;\n}\n\nexport {\n compact\n};\n", "import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n", "import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n", "import { useColorMode } from \"@chakra-ui/color-mode\"\nimport {\n css,\n isStyleProp,\n StyleProps,\n SystemStyleObject,\n} from \"@chakra-ui/styled-system\"\nimport { Dict, filterUndefined, objectFilter, runIfFn } from \"@chakra-ui/utils\"\nimport { assignAfter } from \"@chakra-ui/object-utils\"\nimport createStyled, { CSSObject, FunctionInterpolation } from \"@emotion/styled\"\nimport React from \"react\"\nimport { shouldForwardProp } from \"./should-forward-prop\"\nimport { As, ChakraComponent, ChakraProps, PropsOf } from \"./system.types\"\nimport { DOMElements } from \"./system.utils\"\n\nconst emotion_styled = ((createStyled as any).default ??\n createStyled) as typeof createStyled\n\ntype StyleResolverProps = SystemStyleObject & {\n __css?: SystemStyleObject\n sx?: SystemStyleObject\n theme: any\n css?: CSSObject\n}\n\ninterface GetStyleObject {\n (options: {\n baseStyle?:\n | SystemStyleObject\n | ((props: StyleResolverProps) => SystemStyleObject)\n }): FunctionInterpolation\n}\n\n/**\n * Style resolver function that manages how style props are merged\n * in combination with other possible ways of defining styles.\n *\n * For example, take a component defined this way:\n * ```jsx\n * \n * ```\n *\n * We want to manage the priority of the styles properly to prevent unwanted\n * behaviors. Right now, the `sx` prop has the highest priority so the resolved\n * fontSize will be `40px`\n */\nexport const toCSSObject: GetStyleObject =\n ({ baseStyle }) =>\n (props) => {\n const { theme, css: cssProp, __css, sx, ...rest } = props\n const styleProps = objectFilter(rest, (_, prop) => isStyleProp(prop))\n const finalBaseStyle = runIfFn(baseStyle, props)\n const finalStyles = assignAfter(\n {},\n __css,\n finalBaseStyle,\n filterUndefined(styleProps),\n sx,\n )\n const computedCSS = css(finalStyles)(props.theme)\n return cssProp ? [computedCSS, cssProp] : computedCSS\n }\n\nexport interface ChakraStyledOptions extends Dict {\n shouldForwardProp?(prop: string): boolean\n label?: string\n baseStyle?:\n | SystemStyleObject\n | ((props: StyleResolverProps) => SystemStyleObject)\n}\n\nexport function styled(\n component: T,\n options?: ChakraStyledOptions,\n) {\n const { baseStyle, ...styledOptions } = options ?? {}\n\n if (!styledOptions.shouldForwardProp) {\n styledOptions.shouldForwardProp = shouldForwardProp\n }\n\n const styleObject = toCSSObject({ baseStyle })\n const Component = emotion_styled(\n component as React.ComponentType,\n styledOptions,\n )(styleObject)\n\n const chakraComponent = React.forwardRef(function ChakraComponent(\n props,\n ref,\n ) {\n const { colorMode, forced } = useColorMode()\n return React.createElement(Component, {\n ref,\n \"data-theme\": forced ? colorMode : undefined,\n ...props,\n })\n })\n\n return chakraComponent as ChakraComponent\n}\n\nexport type HTMLChakraComponents = {\n [Tag in DOMElements]: ChakraComponent\n}\n\nexport type HTMLChakraProps = Omit<\n PropsOf,\n \"ref\" | keyof StyleProps\n> &\n ChakraProps & { as?: As }\n", "import { DOMElements } from \"./system.utils\"\nimport { ChakraStyledOptions, HTMLChakraComponents, styled } from \"./system\"\nimport { As, ChakraComponent } from \"./system.types\"\n\ntype ChakraFactory = {\n (\n component: T,\n options?: ChakraStyledOptions,\n ): ChakraComponent\n}\n\nfunction factory() {\n const cache = new Map>()\n\n return new Proxy(styled, {\n /**\n * @example\n * const Div = chakra(\"div\")\n * const WithChakra = chakra(AnotherComponent)\n */\n apply(target, thisArg, argArray: [DOMElements, ChakraStyledOptions]) {\n return styled(...argArray)\n },\n /**\n * @example\n * \n */\n get(_, element: DOMElements) {\n if (!cache.has(element)) {\n cache.set(element, styled(element))\n }\n return cache.get(element)\n },\n }) as ChakraFactory & HTMLChakraComponents\n}\n/**\n * The Chakra factory serves as an object of chakra enabled JSX elements,\n * and also a function that can be used to enable custom component receive chakra's style props.\n *\n * @see Docs https://chakra-ui.com/docs/styled-system/chakra-factory\n */\nexport const chakra = factory()\n", "/**\n * All credit goes to Chance (Reach UI), Haz (Reakit) and (fluentui)\n * for creating the base type definitions upon which we improved on\n */\nimport { forwardRef as forwardReactRef } from \"react\"\nimport { As, ComponentWithAs, PropsOf, RightJoinProps } from \"./system.types\"\n\nexport function forwardRef(\n component: React.ForwardRefRenderFunction<\n any,\n RightJoinProps, Props> & {\n as?: As\n }\n >,\n) {\n return forwardReactRef(component) as unknown as ComponentWithAs<\n Component,\n Props\n >\n}\n", "// src/children.ts\nimport { Children, isValidElement } from \"react\";\nfunction getValidChildren(children) {\n return Children.toArray(children).filter(\n (child) => isValidElement(child)\n );\n}\n\nexport {\n getValidChildren\n};\n", "// src/context.ts\nimport {\n createContext as createReactContext,\n useContext as useReactContext\n} from \"react\";\nfunction createContext(options = {}) {\n const {\n strict = true,\n errorMessage = \"useContext: `context` is undefined. Seems you forgot to wrap component within the Provider\",\n name\n } = options;\n const Context = createReactContext(void 0);\n Context.displayName = name;\n function useContext() {\n var _a;\n const context = useReactContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage);\n error.name = \"ContextError\";\n (_a = Error.captureStackTrace) == null ? void 0 : _a.call(Error, error, useContext);\n throw error;\n }\n return context;\n }\n return [\n Context.Provider,\n useContext,\n Context\n ];\n}\n\nexport {\n createContext\n};\n", "import { useColorMode } from \"@chakra-ui/color-mode\"\nimport { createContext, CreateContextReturn } from \"@chakra-ui/react-utils\"\nimport { css, toCSSVar, SystemStyleObject } from \"@chakra-ui/styled-system\"\nimport { memoizedGet as get, runIfFn } from \"@chakra-ui/utils\"\nimport {\n Global,\n Interpolation,\n ThemeProvider as EmotionThemeProvider,\n ThemeProviderProps as EmotionThemeProviderProps,\n} from \"@emotion/react\"\nimport { useMemo } from \"react\"\n\nexport interface ThemeProviderProps extends EmotionThemeProviderProps {\n cssVarsRoot?: string\n}\n\nexport function ThemeProvider(props: ThemeProviderProps): JSX.Element {\n const { cssVarsRoot, theme, children } = props\n const computedTheme = useMemo(() => toCSSVar(theme), [theme])\n return (\n \n \n {children}\n \n )\n}\n\nexport interface CSSVarsProps {\n /**\n * The element to attach the CSS custom properties to.\n * @default \":host, :root\"\n */\n root?: string\n}\n\nexport function CSSVars({ root = \":host, :root\" }: CSSVarsProps): JSX.Element {\n /**\n * Append color mode selector to allow semantic tokens to change according to the color mode\n */\n const selector = [root, `[data-theme]`].join(\",\")\n return ({ [selector]: theme.__cssVars })} />\n}\n\n/**\n * @deprecated - Prefer to use `createStylesContext` to provide better error messages\n *\n * @example\n *\n * ```jsx\n * import { createStylesContext } from \"@chakra-ui/react\"\n *\n * const [StylesProvider, useStyles] = createStylesContext(\"Component\")\n * ```\n */\nconst [StylesProvider, useStyles] = createContext<\n Record\n>({\n name: \"StylesContext\",\n errorMessage:\n \"useStyles: `styles` is undefined. Seems you forgot to wrap the components in `` \",\n})\n\nexport { StylesProvider, useStyles }\n\n/**\n * Helper function that creates context with a standardized errorMessage related to the component\n * @param componentName\n * @returns [StylesProvider, useStyles]\n */\nexport function createStylesContext(\n componentName: string,\n): CreateStyleContextReturn {\n return createContext>({\n name: `${componentName}StylesContext`,\n errorMessage: `useStyles: \"styles\" is undefined. Seems you forgot to wrap the components in \"<${componentName} />\" `,\n })\n}\n\nexport type CreateStyleContextReturn = CreateContextReturn<\n Record\n>\n\n/**\n * Applies styles defined in `theme.styles.global` globally\n * using emotion's `Global` component\n */\nexport function GlobalStyle(): JSX.Element {\n const { colorMode } = useColorMode()\n return (\n {\n const styleObjectOrFn = get(theme, \"styles.global\")\n const globalStyles = runIfFn(styleObjectOrFn, { theme, colorMode })\n if (!globalStyles) return undefined\n const styles = css(globalStyles)(theme)\n return styles as Interpolation<{}>\n }}\n />\n )\n}\n", "import { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { createContext, useContext, useMemo, useReducer, useRef } from \"react\"\n\ninterface Environment {\n getWindow: () => Window\n getDocument: () => Document\n}\n\nconst EnvironmentContext = createContext({\n getDocument() {\n return document\n },\n getWindow() {\n return window\n },\n})\n\nEnvironmentContext.displayName = \"EnvironmentContext\"\n\nexport function useEnvironment({ defer }: { defer?: boolean } = {}) {\n const [, forceUpdate] = useReducer((c) => c + 1, 0)\n\n useSafeLayoutEffect(() => {\n if (!defer) return\n forceUpdate()\n }, [defer])\n\n return useContext(EnvironmentContext)\n}\n\nexport interface EnvironmentProviderProps {\n children: React.ReactNode\n disabled?: boolean\n environment?: Environment\n}\n\nexport function EnvironmentProvider(props: EnvironmentProviderProps) {\n const { children, environment: environmentProp, disabled } = props\n const ref = useRef(null)\n\n const context = useMemo(() => {\n if (environmentProp) return environmentProp\n return {\n getDocument: () => ref.current?.ownerDocument ?? document,\n getWindow: () => ref.current?.ownerDocument.defaultView ?? window,\n }\n }, [environmentProp])\n\n const showSpan = !disabled || !environmentProp\n\n return (\n \n {children}\n {showSpan && \n )\n}\n\nEnvironmentProvider.displayName = \"EnvironmentProvider\"\n", "import { CSSReset, CSSPolyfill } from \"@chakra-ui/css-reset\"\nimport { PortalManager } from \"@chakra-ui/portal\"\nimport {\n ColorModeProvider,\n ColorModeProviderProps,\n GlobalStyle,\n ThemeProvider,\n ThemeProviderProps,\n} from \"@chakra-ui/system\"\nimport { Dict } from \"@chakra-ui/utils\"\nimport {\n EnvironmentProvider,\n EnvironmentProviderProps,\n} from \"@chakra-ui/react-env\"\n\nexport interface ChakraProviderProps\n extends Pick {\n /**\n * a theme. if omitted, uses the default theme provided by chakra\n */\n theme?: Dict\n /**\n * Common z-index to use for `Portal`\n *\n * @default undefined\n */\n portalZIndex?: number\n /**\n * If `true`, `CSSReset` component will be mounted to help\n * you reset browser styles\n *\n * @default true\n */\n resetCSS?: boolean\n /**\n * The selector to scope the css reset styles to.\n */\n resetScope?: string\n /**\n * manager to persist a users color mode preference in\n *\n * omit if you don't render server-side\n * for SSR: choose `cookieStorageManager`\n *\n * @default localStorageManager\n */\n colorModeManager?: ColorModeProviderProps[\"colorModeManager\"]\n /**\n * Your application content\n */\n children?: React.ReactNode\n /**\n * The environment (`window` and `document`) to be used by\n * all components and hooks.\n *\n * By default, we smartly determine the ownerDocument and defaultView\n * based on where `ChakraProvider` is rendered.\n */\n environment?: EnvironmentProviderProps[\"environment\"]\n /**\n * Disabled the use of automatic window and document detection.\n * This removed the injected `` element\n */\n disableEnvironment?: boolean\n /**\n * If `true`, Chakra will not mount the global styles defined in the theme.\n */\n disableGlobalStyle?: boolean\n}\n\n/**\n * The global provider that must be added to make all Chakra components\n * work correctly\n */\nexport const ChakraProvider: React.FC = (props) => {\n const {\n children,\n colorModeManager,\n portalZIndex,\n resetScope,\n resetCSS = true,\n theme = {},\n environment,\n cssVarsRoot,\n disableEnvironment,\n disableGlobalStyle,\n } = props\n\n const _children = (\n \n {children}\n \n )\n\n return (\n \n \n {resetCSS ? : }\n {!disableGlobalStyle && }\n {portalZIndex ? (\n {_children}\n ) : (\n _children\n )}\n \n \n )\n}\n", "import type { ToastPosition } from \"./toast.placement\"\nimport type { ToastId, ToastOptions, ToastState } from \"./toast.types\"\n\n/**\n * Given an array of toasts for a specific position.\n * It returns the toast that matches the `id` passed\n */\nexport const findById = (arr: ToastOptions[], id: ToastId) =>\n arr.find((toast) => toast.id === id)\n\n/**\n * Given the toast manager state, finds the toast that matches\n * the id and return its position and index\n */\nexport function findToast(toasts: ToastState, id: ToastId) {\n const position = getToastPosition(toasts, id)\n\n const index = position\n ? toasts[position].findIndex((toast) => toast.id === id)\n : -1\n\n return {\n position,\n index,\n }\n}\n\n/**\n * Given the toast manager state, finds the position of the toast that\n * matches the `id`\n */\nexport function getToastPosition(toasts: ToastState, id: ToastId) {\n for (const [position, values] of Object.entries(toasts)) {\n if (findById(values, id)) {\n return position as ToastPosition\n }\n }\n}\n\n/**\n * Given the toast manager state, checks if a specific toast is\n * still in the state, which means it is still visible on screen.\n */\nexport const isVisible = (toasts: ToastState, id: ToastId) =>\n !!getToastPosition(toasts, id)\n\n/**\n * Gets the styles to be applied to a toast's container\n * based on its position in the manager\n */\nexport function getToastStyle(position: ToastPosition): React.CSSProperties {\n const isRighty = position.includes(\"right\")\n const isLefty = position.includes(\"left\")\n\n let alignItems = \"center\"\n if (isRighty) alignItems = \"flex-end\"\n if (isLefty) alignItems = \"flex-start\"\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems,\n }\n}\n\n/**\n * Compute the style of a toast based on its position\n */\nexport function getToastListStyle(\n position: ToastPosition,\n): React.CSSProperties {\n const isTopOrBottom = position === \"top\" || position === \"bottom\"\n const margin = isTopOrBottom ? \"0 auto\" : undefined\n\n const top = position.includes(\"top\")\n ? \"env(safe-area-inset-top, 0px)\"\n : undefined\n const bottom = position.includes(\"bottom\")\n ? \"env(safe-area-inset-bottom, 0px)\"\n : undefined\n const right = !position.includes(\"left\")\n ? \"env(safe-area-inset-right, 0px)\"\n : undefined\n const left = !position.includes(\"right\")\n ? \"env(safe-area-inset-left, 0px)\"\n : undefined\n\n return {\n position: \"fixed\",\n zIndex: \"var(--toast-z-index, 5500)\",\n pointerEvents: \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n margin,\n top,\n bottom,\n right,\n left,\n }\n}\n", "import { useEffect } from \"react\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\n\n/**\n * React hook that provides a declarative `setTimeout`\n *\n * @param callback the callback to run after specified delay\n * @param delay the delay (in ms)\n */\nexport function useTimeout(\n callback: (...args: any[]) => void,\n delay: number | null,\n) {\n const fn = useCallbackRef(callback)\n\n useEffect(() => {\n if (delay == null) return undefined\n\n let timeoutId: number | null = null\n\n timeoutId = window.setTimeout(() => {\n fn()\n }, delay)\n\n return () => {\n if (timeoutId) {\n window.clearTimeout(timeoutId)\n }\n }\n }, [delay, fn])\n}\n", "import { useCallback, useEffect, useRef } from \"react\"\n\nexport function useCallbackRef any>(\n callback: T | undefined,\n deps: React.DependencyList = [],\n) {\n const callbackRef = useRef(callback)\n\n useEffect(() => {\n callbackRef.current = callback\n })\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(((...args) => callbackRef.current?.(...args)) as T, deps)\n}\n", "import { useEffect, useRef } from \"react\"\n\nexport function useUpdateEffect(\n callback: React.EffectCallback,\n deps: React.DependencyList,\n) {\n const renderCycleRef = useRef(false)\n const effectCycleRef = useRef(false)\n\n useEffect(() => {\n const mounted = renderCycleRef.current\n const run = mounted && effectCycleRef.current\n if (run) {\n return callback()\n }\n effectCycleRef.current = true\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps)\n\n useEffect(() => {\n renderCycleRef.current = true\n return () => {\n renderCycleRef.current = false\n }\n }, [])\n}\n", "import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { warning, invariant } from '../utils/errors.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props))\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createMotionComponent };\n", "import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n", "import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n", "import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nlet scheduleHandoffComplete = false;\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] &&\n !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n visualElement.updateFeatures();\n microtask.render(visualElement.render);\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n wantsHandoff.current = false;\n // This ensures all future calls to animateChanges() will run in useEffect\n if (!scheduleHandoffComplete) {\n scheduleHandoffComplete = true;\n queueMicrotask(completeHandoff);\n }\n }\n });\n return visualElement;\n}\nfunction completeHandoff() {\n window.HandoffComplete = true;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n scheduleRender: () => visualElement.scheduleRender(),\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n", "import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n", "import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n", "const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n", "import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n", "/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n", "import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n", "const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n", "class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (queue.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(frameData);\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n", "import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n }, {});\n const processStep = (stepId) => {\n steps[stepId].process(state);\n };\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n stepsOrder.forEach(processStep);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => stepsOrder.forEach((key) => steps[key].cancel(process));\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n", "import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n", "function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n", "import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n", "import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n", "import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n", "/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n", "function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n", "const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n", "import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n", "import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n", "const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n", "import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n", "import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n", "const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n", "const noop = (any) => any;\n\nexport { noop };\n", "import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n", "import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n", "/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n", "import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n", "import { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment\n ? { ...filteredProps, ...visualProps, ref }\n : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n", "import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n", "const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n", "/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n", "import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n", "const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n", "import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n", "const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst startsAsVariableToken = checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n", "/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n", "const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n", "import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n", "/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nexport { colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n", "import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n", "import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n", "import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n backgroundPositionX: px,\n backgroundPositionY: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n", "import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n", "const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n", "/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n", "import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n", "import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n", "import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n", "import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n", "import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n", "import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n", "const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n", "function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n", "/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n", "import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n", "import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n", "import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n", "import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n", "function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n", "import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n", "const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n", "import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n", "import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n", "import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n", "import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n", "import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n", "import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n", "function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n", "const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n", "import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[`${pointType}X`],\n y: event[`${pointType}Y`],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n", "import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n", "/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n", "function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n", "class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n", "import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = isActive ? \"pointerenter\" : \"pointerleave\";\n const callbackName = isActive ? \"onHoverStart\" : \"onHoverEnd\";\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n const callback = props[callbackName];\n if (callback) {\n frame.postRender(() => callback(event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n", "import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n", "/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n", "import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n const handler = !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel\n : onTap;\n if (handler) {\n frame.update(() => handler(endEvent, endInfo));\n }\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, {\n passive: !(props.onTap || props[\"onPointerUp\"]),\n });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), {\n passive: !(props.onTapCancel ||\n props[\"onPointerCancel\"]),\n });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.postRender(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.postRender(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.postRender(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, {\n passive: !(props.onTapStart ||\n props[\"onPointerStart\"]),\n });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n", "/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n", "import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n", "import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n", "function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n", "import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n", "/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n", "import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n", "/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return (transition[key] ||\n transition[\"default\"] ||\n transition);\n}\n\nexport { getValueTransition, isTransitionDefined };\n", "const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n", "const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n", "import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n", "/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n", "import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n", "/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n", "import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n", "import { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalKeys, positionalValues, removeNonTranslationalTransform };\n", "/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n", "/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n", "import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n", "import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n", "import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n", "import { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n", "import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n", "import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n", "import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n", "import { color } from '../color/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n", "import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n", "import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n", "import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n", "import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n", "import { isNone } from '../../animation/utils/is-none.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { positionalKeys, isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue) {\n super(unresolvedKeyframes, onComplete, name, motionValue, motionValue === null || motionValue === void 0 ? void 0 : motionValue.owner, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n", "function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n", "import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n", "import { warning } from '../../../utils/errors.mjs';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return hasKeyframesChanged(keyframes) || (type === \"spring\" && velocity);\n}\n\nexport { canAnimate };\n", "import { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n", "/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n", "import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n", "import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n", "import { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n", "import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n", "import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n", "import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n", "const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n", "// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n", "// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n", "import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n", "import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n", "import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n", "import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n", "/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n", "/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n", "// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n", "function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n", "import { mixNumber } from './number.mjs';\nimport { warning } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n", "const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n", "import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n", "import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n", "import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n", "import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n", "import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n", "function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n", "import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n", "/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n", "import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n", "import { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { calcGeneratorDuration } from '../generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor({ KeyframeResolver: KeyframeResolver$1 = KeyframeResolver, ...options }) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n this.state = \"idle\";\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n };\n const { name, motionValue, keyframes } = this.options;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n if (name && motionValue && motionValue.owner) {\n this.resolver = motionValue.owner.resolveKeyframes(keyframes, onResolved, name, motionValue);\n }\n else {\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue);\n }\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime || this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n", "const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n", "import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && easing in supportedWaapiEasing) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasingWithDefault(easing) {\n return (mapEasingToNativeEasing(easing) ||\n supportedWaapiEasing.easeOut);\n}\nfunction mapEasingToNativeEasing(easing) {\n if (!easing) {\n return undefined;\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map(mapEasingToNativeEasingWithDefault);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n", "import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n", "import { time } from '../../frameloop/sync-time.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { memo } from '../../utils/memo.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { animateStyle } from './waapi/index.mjs';\nimport { isWaapiSupportedEasing } from './waapi/easing.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return (options.type === \"spring\" ||\n options.name === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease));\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = animateStyle(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = time.now();\n if (this.pendingTimeline) {\n animation.timeline = this.pendingTimeline;\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n animation.timeline = timeline;\n animation.onfinish = null;\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n", "import { frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nfunction observeTimeline(update, timeline) {\n let prevProgress;\n const onFrame = () => {\n const { currentTime } = timeline;\n const percentage = currentTime === null ? 0 : currentTime.value;\n const progress = percentage / 100;\n if (prevProgress !== progress) {\n update(progress);\n }\n prevProgress = progress;\n };\n frame.update(onFrame, true);\n return () => cancelFrame(onFrame);\n}\n\nexport { observeTimeline };\n", "import { memo } from '../../../utils/memo.mjs';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n", "import { observeTimeline } from '../render/dom/scroll/observe.mjs';\nimport { supportsScrollTimeline } from '../render/dom/scroll/supports.mjs';\n\nclass GroupPlaybackControls {\n constructor(animations) {\n // Bound to accomodate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n then(onResolve, onReject) {\n return Promise.all(this.animations).then(onResolve).catch(onReject);\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline) {\n const cancelAll = this.animations.map((animation) => {\n if (supportsScrollTimeline() && animation.attachTimeline) {\n animation.attachTimeline(timeline);\n }\n else {\n animation.pause();\n return observeTimeline((progress) => {\n animation.time = animation.duration * progress;\n }, timeline);\n }\n });\n return () => {\n cancelAll.forEach((cancelTimeline, i) => {\n if (cancelTimeline)\n cancelTimeline();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { GroupPlaybackControls };\n", "import { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\nimport { GroupPlaybackControls } from '../GroupPlaybackControls.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n // We still want to return some animation controls here rather\n // than returning undefined\n return new GroupPlaybackControls([]);\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n", "import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n", "function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n", "import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n", "const warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n", "import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.2.11\";\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n", "import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n", "import { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.getProps()[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n", "import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/transitions.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.HandoffAppearAnimations) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n if (elapsed !== null) {\n valueTransition.elapsed = elapsed;\n isHandoff = true;\n }\n }\n }\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n", "import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n", "import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n frame.postRender(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n });\n}\n\nexport { animateVisualElement };\n", "import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n */\n if (shouldAnimateType && (!isInherited || handledRemovedValues)) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n", "import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n var _a;\n this.node.animationState.reset();\n (_a = this.unmountControls) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n\nexport { AnimationFeature };\n", "import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n", "import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n", "const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n", "import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n", "import { mixNumber } from '../../utils/mix/number.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n", "import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n", "const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n", "function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n", "/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n", "function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n", "import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const instance = node.instance;\n if (instance &&\n instance.style &&\n instance.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n", "import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n", "// Fixes https://github.com/framer/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n", "import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.postRender(() => onDragStart(event, info));\n }\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n", "import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n", "import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.postRender(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n", "import { jsx } from 'react/jsx-runtime';\nimport { useContext, Component } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { microtask } from '../../../frameloop/microtask.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (jsx(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n", "import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n", "/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n", "import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n", "import { mixNumber } from '../../utils/mix/number.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n", "import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n", "/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n", "import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n", "import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction boxEqualsRounded(a, b) {\n return (Math.round(a.x.min) === Math.round(b.x.min) &&\n Math.round(a.x.max) === Math.round(b.x.max) &&\n Math.round(a.y.min) === Math.round(b.y.min) &&\n Math.round(a.y.max) === Math.round(b.y.max));\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, boxEqualsRounded, isDeltaZero };\n", "import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n", "function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n", "const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n", "import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n", "import { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n", "function record(data) {\n if (window.MotionDebug) {\n window.MotionDebug.record(data);\n }\n}\n\nexport { record };\n", "function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n", "import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n", "import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { record } from '../../debug/record.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { getOptimisedAppearId } from '../../animation/optimized-appear/get-appear-id.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\n/**\n * Use a mutable data object for debug data so as to not create a new\n * object every frame.\n */\nconst projectionFrameData = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction isOptimisedAppearTree(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return false;\n const { visualElement } = projectionNode.options;\n if (!visualElement) {\n return false;\n }\n else if (getOptimisedAppearId(visualElement)) {\n return true;\n }\n else if (projectionNode.parent &&\n !projectionNode.parent.hasCheckedOptimisedAppear) {\n return isOptimisedAppearTree(projectionNode.parent);\n }\n else {\n return false;\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n projectionFrameData.totalNodes =\n projectionFrameData.resolvedTargetDeltas =\n projectionFrameData.recalculatedProjection =\n 0;\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n record(projectionFrameData);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.HandoffCancelAllAnimations &&\n isOptimisedAppearTree(this)) {\n window.HandoffCancelAllAnimations();\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty || this.shouldResetTransform;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n projectionFrameData.resolvedTargetDeltas++;\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.projectionTransform) {\n this.projectionDelta = createDelta();\n this.projectionTransform = \"none\";\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n projectionFrameData.recalculatedProjection++;\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.scheduleRender && this.options.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n projectionFrameData.totalNodes++;\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n", "import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n", "import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n", "import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n", "import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n enableHardwareAcceleration: true,\n });\n};\n\nexport { createDomVisualElement };\n", "// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n", "import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n", "import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.2.11\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.2.11 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n", "const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n", "import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n", "import { createBox } from '../projection/geometry/models.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n this.resolveKeyframes = (keyframes, \n // We use an onComplete callback here rather than a Promise as a Promise\n // resolution is a microtask and we want to retain the ability to force\n // the resolution of keyframes synchronously.\n onComplete, name, value) => {\n return new this.KeyframeResolver(keyframes, onComplete, name, value, this);\n };\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => frame.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n", "import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n}\n\nexport { DOMVisualElement };\n", "import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n", "import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n", "import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n", "import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\n\nconst preloadedFeatures = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, preloadedFeatures, createDomVisualElement));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n", "import { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\n\n/**\n * @public\n */\nconst m = createMotionProxy(createDomMotionConfig);\n\nexport { m };\n", "import { jsx, Fragment } from 'react/jsx-runtime';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (jsx(Fragment, { children: childrenToRender.map((child) => (jsx(PresenceChild, { isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)))) }));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (jsx(PresenceChild, { isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (jsx(PresenceChild, { isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (jsx(Fragment, { children: exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child)) }));\n};\n\nexport { AnimatePresence };\n", "import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n", "import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n", "import { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? [Math.random()] : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = jsx(PopChild, { isPresent: isPresent, children: children });\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n", "import { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n", "import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n", "import { jsx } from 'react/jsx-runtime';\nimport { useContext, useMemo } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { loadExternalIsValidProp } from '../../render/dom/utils/filter-props.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\n\n/**\n * `MotionConfig` is used to set configuration options for all children `motion` components.\n *\n * ```jsx\n * import { motion, MotionConfig } from \"framer-motion\"\n *\n * export function App() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction MotionConfig({ children, isValidProp, ...config }) {\n isValidProp && loadExternalIsValidProp(isValidProp);\n /**\n * Inherit props from any parent MotionConfig components\n */\n config = { ...useContext(MotionConfigContext), ...config };\n /**\n * Don't allow isStatic to change between renders as it affects how many hooks\n * motion components fire.\n */\n config.isStatic = useConstant(() => config.isStatic);\n /**\n * Creating a new config context object will re-render every `motion` component\n * every time it renders. So we only want to create a new one sparingly.\n */\n const context = useMemo(() => config, [JSON.stringify(config.transition), config.transformPagePoint, config.reducedMotion]);\n return (jsx(MotionConfigContext.Provider, { value: context, children: children }));\n}\n\nexport { MotionConfig };\n", "import { jsx } from 'react/jsx-runtime';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/load-features.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimation } from \"framer-motion\"\n *\n * function App() {\n * return (\n * \n * \n * \n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * import('./path/to/domAnimation')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion({ children, features, strict = false }) {\n const [, setIsLoaded] = useState(!isLazyBundle(features));\n const loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n const { renderer, ...loadedFeatures } = features;\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(() => {\n if (isLazyBundle(features)) {\n features().then(({ renderer, ...loadedFeatures }) => {\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (jsx(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict }, children: children }));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n", "import { jsx } from 'react/jsx-runtime';\nimport { useContext, useRef, useMemo } from 'react';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { DeprecatedLayoutGroupContext } from '../../context/DeprecatedLayoutGroupContext.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { nodeGroup } from '../../projection/node/group.mjs';\n\nconst shouldInheritGroup = (inherit) => inherit === true;\nconst shouldInheritId = (inherit) => shouldInheritGroup(inherit === true) || inherit === \"id\";\nconst LayoutGroup = ({ children, id, inherit = true }) => {\n const layoutGroupContext = useContext(LayoutGroupContext);\n const deprecatedLayoutGroupContext = useContext(DeprecatedLayoutGroupContext);\n const [forceRender, key] = useForceUpdate();\n const context = useRef(null);\n const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext;\n if (context.current === null) {\n if (shouldInheritId(inherit) && upstreamId) {\n id = id ? upstreamId + \"-\" + id : upstreamId;\n }\n context.current = {\n id,\n group: shouldInheritGroup(inherit)\n ? layoutGroupContext.group || nodeGroup()\n : nodeGroup(),\n };\n }\n const memoizedContext = useMemo(() => ({ ...context.current, forceRender }), [key]);\n return (jsx(LayoutGroupContext.Provider, { value: memoizedContext, children: children }));\n};\n\nexport { LayoutGroup };\n", "import { createContext } from 'react';\n\n/**\n * Note: Still used by components generated by old versions of Framer\n *\n * @deprecated\n */\nconst DeprecatedLayoutGroupContext = createContext(null);\n\nexport { DeprecatedLayoutGroupContext };\n", "import { jsx } from 'react/jsx-runtime';\nimport { invariant } from '../../utils/errors.mjs';\nimport { forwardRef, useRef, useEffect } from 'react';\nimport { ReorderContext } from '../../context/ReorderContext.mjs';\nimport { motion } from '../../render/dom/motion.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { checkReorder } from './utils/check-reorder.mjs';\n\nfunction ReorderGroup({ children, as = \"ul\", axis = \"y\", onReorder, values, ...props }, externalRef) {\n const Component = useConstant(() => motion(as));\n const order = [];\n const isReordering = useRef(false);\n invariant(Boolean(values), \"Reorder.Group must be provided a values prop\");\n const context = {\n axis,\n registerItem: (value, layout) => {\n // If the entry was already added, update it rather than adding it again\n const idx = order.findIndex((entry) => value === entry.value);\n if (idx !== -1) {\n order[idx].layout = layout[axis];\n }\n else {\n order.push({ value: value, layout: layout[axis] });\n }\n order.sort(compareMin);\n },\n updateOrder: (item, offset, velocity) => {\n if (isReordering.current)\n return;\n const newOrder = checkReorder(order, item, offset, velocity);\n if (order !== newOrder) {\n isReordering.current = true;\n onReorder(newOrder\n .map(getValue)\n .filter((value) => values.indexOf(value) !== -1));\n }\n },\n };\n useEffect(() => {\n isReordering.current = false;\n });\n return (jsx(Component, { ...props, ref: externalRef, ignoreStrict: true, children: jsx(ReorderContext.Provider, { value: context, children: children }) }));\n}\nconst Group = forwardRef(ReorderGroup);\nfunction getValue(item) {\n return item.value;\n}\nfunction compareMin(a, b) {\n return a.layout.min - b.layout.min;\n}\n\nexport { Group, ReorderGroup };\n", "import { createContext } from 'react';\n\nconst ReorderContext = createContext(null);\n\nexport { ReorderContext };\n", "import { moveItem } from '../../../utils/array.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\nfunction checkReorder(order, value, offset, velocity) {\n if (!velocity)\n return order;\n const index = order.findIndex((item) => item.value === value);\n if (index === -1)\n return order;\n const nextOffset = velocity > 0 ? 1 : -1;\n const nextItem = order[index + nextOffset];\n if (!nextItem)\n return order;\n const item = order[index];\n const nextLayout = nextItem.layout;\n const nextItemCenter = mixNumber(nextLayout.min, nextLayout.max, 0.5);\n if ((nextOffset === 1 && item.layout.max + offset > nextItemCenter) ||\n (nextOffset === -1 && item.layout.min + offset < nextItemCenter)) {\n return moveItem(order, index, index + nextOffset);\n }\n return order;\n}\n\nexport { checkReorder };\n", "import { jsx } from 'react/jsx-runtime';\nimport { invariant } from '../../utils/errors.mjs';\nimport { forwardRef, useContext } from 'react';\nimport { ReorderContext } from '../../context/ReorderContext.mjs';\nimport { motion } from '../../render/dom/motion.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useMotionValue } from '../../value/use-motion-value.mjs';\nimport { useTransform } from '../../value/use-transform.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction useDefaultMotionValue(value, defaultValue = 0) {\n return isMotionValue(value) ? value : useMotionValue(defaultValue);\n}\nfunction ReorderItem({ children, style = {}, value, as = \"li\", onDrag, layout = true, ...props }, externalRef) {\n const Component = useConstant(() => motion(as));\n const context = useContext(ReorderContext);\n const point = {\n x: useDefaultMotionValue(style.x),\n y: useDefaultMotionValue(style.y),\n };\n const zIndex = useTransform([point.x, point.y], ([latestX, latestY]) => latestX || latestY ? 1 : \"unset\");\n invariant(Boolean(context), \"Reorder.Item must be a child of Reorder.Group\");\n const { axis, registerItem, updateOrder } = context;\n return (jsx(Component, { drag: axis, ...props, dragSnapToOrigin: true, style: { ...style, x: point.x, y: point.y, zIndex }, layout: layout, onDrag: (event, gesturePoint) => {\n const { velocity } = gesturePoint;\n velocity[axis] &&\n updateOrder(value, point[axis].get(), velocity[axis]);\n onDrag && onDrag(event, gesturePoint);\n }, onLayoutMeasure: (measured) => registerItem(value, measured), ref: externalRef, ignoreStrict: true, children: children }));\n}\nconst Item = forwardRef(ReorderItem);\n\nexport { Item, ReorderItem };\n", "import { useContext, useState, useEffect } from 'react';\nimport { motionValue } from './index.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n * const scale = useMotionValue(1)\n *\n * return \n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n const value = useConstant(() => motionValue(initial));\n /**\n * If this motion value is being used in static mode, like on\n * the Framer canvas, force components to rerender when the motion\n * value is updated.\n */\n const { isStatic } = useContext(MotionConfigContext);\n if (isStatic) {\n const [, setLatest] = useState(initial);\n useEffect(() => value.on(\"change\", setLatest), []);\n }\n return value;\n}\n\nexport { useMotionValue };\n", "import { interpolate } from './interpolate.mjs';\n\nconst isCustomValueType = (v) => {\n return v && typeof v === \"object\" && v.mix;\n};\nconst getMixer = (v) => (isCustomValueType(v) ? v.mix : undefined);\nfunction transform(...args) {\n const useImmediate = !Array.isArray(args[0]);\n const argOffset = useImmediate ? 0 : -1;\n const inputValue = args[0 + argOffset];\n const inputRange = args[1 + argOffset];\n const outputRange = args[2 + argOffset];\n const options = args[3 + argOffset];\n const interpolator = interpolate(inputRange, outputRange, {\n mixer: getMixer(outputRange[0]),\n ...options,\n });\n return useImmediate ? interpolator(inputValue) : interpolator;\n}\n\nexport { transform };\n", "import { useMotionValue } from './use-motion-value.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nimport { cancelFrame, frame } from '../frameloop/frame.mjs';\n\nfunction useCombineMotionValues(values, combineValues) {\n /**\n * Initialise the returned motion value. This remains the same between renders.\n */\n const value = useMotionValue(combineValues());\n /**\n * Create a function that will update the template motion value with the latest values.\n * This is pre-bound so whenever a motion value updates it can schedule its\n * execution in Framesync. If it's already been scheduled it won't be fired twice\n * in a single frame.\n */\n const updateValue = () => value.set(combineValues());\n /**\n * Synchronously update the motion value with the latest values during the render.\n * This ensures that within a React render, the styles applied to the DOM are up-to-date.\n */\n updateValue();\n /**\n * Subscribe to all motion values found within the template. Whenever any of them change,\n * schedule an update.\n */\n useIsomorphicLayoutEffect(() => {\n const scheduleUpdate = () => frame.preRender(updateValue, false, true);\n const subscriptions = values.map((v) => v.on(\"change\", scheduleUpdate));\n return () => {\n subscriptions.forEach((unsubscribe) => unsubscribe());\n cancelFrame(updateValue);\n };\n });\n return value;\n}\n\nexport { useCombineMotionValues };\n", "import { collectMotionValues } from './index.mjs';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\n\nfunction useComputed(compute) {\n /**\n * Open session of collectMotionValues. Any MotionValue that calls get()\n * will be saved into this array.\n */\n collectMotionValues.current = [];\n compute();\n const value = useCombineMotionValues(collectMotionValues.current, compute);\n /**\n * Synchronously close session of collectMotionValues.\n */\n collectMotionValues.current = undefined;\n return value;\n}\n\nexport { useComputed };\n", "import { transform } from '../utils/transform.mjs';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useComputed } from './use-computed.mjs';\n\nfunction useTransform(input, inputRangeOrTransformer, outputRange, options) {\n if (typeof input === \"function\") {\n return useComputed(input);\n }\n const transformer = typeof inputRangeOrTransformer === \"function\"\n ? inputRangeOrTransformer\n : transform(inputRangeOrTransformer, outputRange, options);\n return Array.isArray(input)\n ? useListTransform(input, transformer)\n : useListTransform([input], ([latest]) => transformer(latest));\n}\nfunction useListTransform(values, transformer) {\n const latest = useConstant(() => []);\n return useCombineMotionValues(values, () => {\n latest.length = 0;\n const numValues = values.length;\n for (let i = 0; i < numValues; i++) {\n latest[i] = values[i].get();\n }\n return transformer(latest);\n });\n}\n\nexport { useTransform };\n", "import { animations } from '../../motion/features/animations.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\n\n/**\n * @public\n */\nconst domAnimation = {\n renderer: createDomVisualElement,\n ...animations,\n ...gestureAnimations,\n};\n\nexport { domAnimation };\n", "import { drag } from '../../motion/features/drag.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\nimport { domAnimation } from './features-animation.mjs';\n\n/**\n * @public\n */\nconst domMax = {\n ...domAnimation,\n ...drag,\n ...layout,\n};\n\nexport { domMax };\n", "import { useContext, useRef, useInsertionEffect } from 'react';\nimport { isMotionValue } from './utils/is-motion-value.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nimport { animateValue } from '../animation/animators/MainThreadAnimation.mjs';\nimport { frame, frameData } from '../frameloop/frame.mjs';\n\n/**\n * Creates a `MotionValue` that, when `set`, will use a spring animation to animate to its new state.\n *\n * It can either work as a stand-alone `MotionValue` by initialising it with a value, or as a subscriber\n * to another `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useSpring(0, { stiffness: 300 })\n * const y = useSpring(x, { damping: 10 })\n * ```\n *\n * @param inputValue - `MotionValue` or number. If provided a `MotionValue`, when the input `MotionValue` changes, the created `MotionValue` will spring towards that value.\n * @param springConfig - Configuration options for the spring.\n * @returns `MotionValue`\n *\n * @public\n */\nfunction useSpring(source, config = {}) {\n const { isStatic } = useContext(MotionConfigContext);\n const activeSpringAnimation = useRef(null);\n const value = useMotionValue(isMotionValue(source) ? source.get() : source);\n const latestValue = useRef(value.get());\n const latestSetter = useRef(() => { });\n const startAnimation = () => {\n /**\n * If the previous animation hasn't had the chance to even render a frame, render it now.\n */\n const animation = activeSpringAnimation.current;\n if (animation && animation.time === 0) {\n animation.sample(frameData.delta);\n }\n stopAnimation();\n activeSpringAnimation.current = animateValue({\n keyframes: [value.get(), latestValue.current],\n velocity: value.getVelocity(),\n type: \"spring\",\n restDelta: 0.001,\n restSpeed: 0.01,\n ...config,\n onUpdate: latestSetter.current,\n });\n };\n const stopAnimation = () => {\n if (activeSpringAnimation.current) {\n activeSpringAnimation.current.stop();\n }\n };\n useInsertionEffect(() => {\n return value.attach((v, set) => {\n /**\n * A more hollistic approach to this might be to use isStatic to fix VisualElement animations\n * at that level, but this will work for now\n */\n if (isStatic)\n return set(v);\n latestValue.current = v;\n latestSetter.current = set;\n frame.update(startAnimation);\n return value.get();\n }, stopAnimation);\n }, [JSON.stringify(config)]);\n useIsomorphicLayoutEffect(() => {\n if (isMotionValue(source)) {\n return source.on(\"change\", (v) => value.set(parseFloat(v)));\n }\n }, [value]);\n return value;\n}\n\nexport { useSpring };\n", "import { useInsertionEffect } from 'react';\n\nfunction useMotionValueEvent(value, event, callback) {\n /**\n * useInsertionEffect will create subscriptions before any other\n * effects will run. Effects run upwards through the tree so it\n * can be that binding a useLayoutEffect higher up the tree can\n * miss changes from lower down the tree.\n */\n useInsertionEffect(() => value.on(event, callback), [value, event, callback]);\n}\n\nexport { useMotionValueEvent };\n", "import { motionValue } from './index.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useEffect } from 'react';\nimport { warning } from '../utils/errors.mjs';\nimport { scrollInfo } from '../render/dom/scroll/track.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\n\nfunction refWarning(name, ref) {\n warning(Boolean(!ref || ref.current), `You have defined a ${name} options but the provided ref is not yet hydrated, probably because it's defined higher up the tree. Try calling useScroll() in the same component as the ref, or setting its \\`layoutEffect: false\\` option.`);\n}\nconst createScrollMotionValues = () => ({\n scrollX: motionValue(0),\n scrollY: motionValue(0),\n scrollXProgress: motionValue(0),\n scrollYProgress: motionValue(0),\n});\nfunction useScroll({ container, target, layoutEffect = true, ...options } = {}) {\n const values = useConstant(createScrollMotionValues);\n const useLifecycleEffect = layoutEffect\n ? useIsomorphicLayoutEffect\n : useEffect;\n useLifecycleEffect(() => {\n refWarning(\"target\", target);\n refWarning(\"container\", container);\n return scrollInfo(({ x, y }) => {\n values.scrollX.set(x.current);\n values.scrollXProgress.set(x.progress);\n values.scrollY.set(y.current);\n values.scrollYProgress.set(y.progress);\n }, {\n ...options,\n container: (container === null || container === void 0 ? void 0 : container.current) || undefined,\n target: (target === null || target === void 0 ? void 0 : target.current) || undefined,\n });\n }, [container, target, JSON.stringify(options.offset)]);\n return values;\n}\n\nexport { useScroll };\n", "import { invariant } from '../../../utils/errors.mjs';\n\nfunction resolveElements(elements, scope, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n let root = document;\n if (scope) {\n invariant(Boolean(scope.current), \"Scope provided, but no element detected.\");\n root = scope.current;\n }\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = root.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = root.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n", "import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nfunction useAnimationFrame(callback) {\n const initialTimestamp = useRef(0);\n const { isStatic } = useContext(MotionConfigContext);\n useEffect(() => {\n if (isStatic)\n return;\n const provideTimeSinceStart = ({ timestamp, delta }) => {\n if (!initialTimestamp.current)\n initialTimestamp.current = timestamp;\n callback(timestamp - initialTimestamp.current, delta);\n };\n frame.update(provideTimeSinceStart, true);\n return () => cancelFrame(provideTimeSinceStart);\n }, [callback]);\n}\n\nexport { useAnimationFrame };\n", "import { useState } from 'react';\nimport { initPrefersReducedMotion } from './index.mjs';\nimport { warnOnce } from '../warn-once.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * \n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasReducedMotionListener.current && initPrefersReducedMotion();\n const [shouldReduceMotion] = useState(prefersReducedMotion.current);\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\n\nexport { useReducedMotion };\n", "import { useContext } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { useReducedMotion } from './use-reduced-motion.mjs';\n\nfunction useReducedMotionConfig() {\n const reducedMotionPreference = useReducedMotion();\n const { reducedMotion } = useContext(MotionConfigContext);\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotionConfig };\n", "function isDOMKeyframes(keyframes) {\n return typeof keyframes === \"object\" && !Array.isArray(keyframes);\n}\n\nexport { isDOMKeyframes };\n", "import { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { SVGVisualElement } from '../../render/svg/SVGVisualElement.mjs';\nimport { HTMLVisualElement } from '../../render/html/HTMLVisualElement.mjs';\nimport { visualElementStore } from '../../render/store.mjs';\n\nfunction createVisualElement(element) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n transform: {},\n transformOrigin: {},\n style: {},\n vars: {},\n attrs: {},\n },\n latestValues: {},\n },\n };\n const node = isSVGElement(element)\n ? new SVGVisualElement(options, {\n enableHardwareAcceleration: false,\n })\n : new HTMLVisualElement(options, {\n enableHardwareAcceleration: true,\n });\n node.mount(element);\n visualElementStore.set(element, node);\n}\n\nexport { createVisualElement };\n", "import { spring } from '../../animation/generators/spring/index.mjs';\nimport { calcGeneratorDuration, maxGeneratorDuration } from '../../animation/generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds } from '../../utils/time-conversion.mjs';\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100) {\n const generator = spring({ keyframes: [0, scale], ...options });\n const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => generator.next(duration * progress).value / scale,\n duration: millisecondsToSeconds(duration),\n };\n}\n\nexport { createGeneratorEasing };\n", "/**\n * Given a absolute or relative time definition and current/prev time state of the sequence,\n * calculate an absolute time for the next keyframes.\n */\nfunction calcNextTime(current, next, prev, labels) {\n var _a;\n if (typeof next === \"number\") {\n return next;\n }\n else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n return Math.max(0, current + parseFloat(next));\n }\n else if (next === \"<\") {\n return prev;\n }\n else {\n return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;\n }\n}\n\nexport { calcNextTime };\n", "const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n", "import { wrap } from '../../utils/wrap.mjs';\nimport { isEasingArray } from './is-easing-array.mjs';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n", "import { getEasingForSegment } from '../../../easing/utils/get-easing-for-segment.mjs';\nimport { removeItem } from '../../../utils/array.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\nfunction eraseKeyframes(sequence, startTime, endTime) {\n for (let i = 0; i < sequence.length; i++) {\n const keyframe = sequence[i];\n if (keyframe.at > startTime && keyframe.at < endTime) {\n removeItem(sequence, keyframe);\n // If we remove this item we have to push the pointer back one\n i--;\n }\n }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n /**\n * Erase every existing value between currentTime and targetTime,\n * this will essentially splice this timeline into any currently\n * defined ones.\n */\n eraseKeyframes(sequence, startTime, endTime);\n for (let i = 0; i < keyframes.length; i++) {\n sequence.push({\n value: keyframes[i],\n at: mixNumber(startTime, endTime, offset[i]),\n easing: getEasingForSegment(easing, i),\n });\n }\n}\n\nexport { addKeyframes, eraseKeyframes };\n", "function compareByTime(a, b) {\n if (a.at === b.at) {\n if (a.value === null)\n return 1;\n if (b.value === null)\n return -1;\n return 0;\n }\n else {\n return a.at - b.at;\n }\n}\n\nexport { compareByTime };\n", "import { createGeneratorEasing } from '../../easing/utils/create-generator-easing.mjs';\nimport { resolveElements } from '../../render/dom/utils/resolve-element.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { fillOffset } from '../../utils/offsets/fill.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { calcNextTime } from './utils/calc-time.mjs';\nimport { addKeyframes } from './utils/edit.mjs';\nimport { compareByTime } from './utils/sort.mjs';\n\nconst defaultSegmentEasing = \"easeInOut\";\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope) {\n const defaultDuration = defaultTransition.duration || 0.3;\n const animationDefinitions = new Map();\n const sequences = new Map();\n const elementCache = {};\n const timeLabels = new Map();\n let prevTime = 0;\n let currentTime = 0;\n let totalDuration = 0;\n /**\n * Build the timeline by mapping over the sequence array and converting\n * the definitions into keyframes and offsets with absolute time values.\n * These will later get converted into relative offsets in a second pass.\n */\n for (let i = 0; i < sequence.length; i++) {\n const segment = sequence[i];\n /**\n * If this is a timeline label, mark it and skip the rest of this iteration.\n */\n if (typeof segment === \"string\") {\n timeLabels.set(segment, currentTime);\n continue;\n }\n else if (!Array.isArray(segment)) {\n timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n continue;\n }\n let [subject, keyframes, transition = {}] = segment;\n /**\n * If a relative or absolute time value has been specified we need to resolve\n * it in relation to the currentTime.\n */\n if (transition.at !== undefined) {\n currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n }\n /**\n * Keep track of the maximum duration in this definition. This will be\n * applied to currentTime once the definition has been parsed.\n */\n let maxDuration = 0;\n const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numElements = 0) => {\n const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = \"keyframes\", ...remainingTransition } = valueTransition;\n let { ease = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n /**\n * Resolve stagger() if defined.\n */\n const calculatedDelay = typeof delay === \"function\"\n ? delay(elementIndex, numElements)\n : delay;\n /**\n * If this animation should and can use a spring, generate a spring easing function.\n */\n const numKeyframes = valueKeyframesAsList.length;\n if (numKeyframes <= 2 && type === \"spring\") {\n /**\n * As we're creating an easing function from a spring,\n * ideally we want to generate it using the real distance\n * between the two keyframes. However this isn't always\n * possible - in these situations we use 0-100.\n */\n let absoluteDelta = 100;\n if (numKeyframes === 2 &&\n isNumberKeyframesArray(valueKeyframesAsList)) {\n const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n absoluteDelta = Math.abs(delta);\n }\n const springTransition = { ...remainingTransition };\n if (duration !== undefined) {\n springTransition.duration = secondsToMilliseconds(duration);\n }\n const springEasing = createGeneratorEasing(springTransition, absoluteDelta);\n ease = springEasing.ease;\n duration = springEasing.duration;\n }\n duration !== null && duration !== void 0 ? duration : (duration = defaultDuration);\n const startTime = currentTime + calculatedDelay;\n const targetTime = startTime + duration;\n /**\n * If there's only one time offset of 0, fill in a second with length 1\n */\n if (times.length === 1 && times[0] === 0) {\n times[1] = 1;\n }\n /**\n * Fill out if offset if fewer offsets than keyframes\n */\n const remainder = times.length - valueKeyframesAsList.length;\n remainder > 0 && fillOffset(times, remainder);\n /**\n * If only one value has been set, ie [1], push a null to the start of\n * the keyframe array. This will let us mark a keyframe at this point\n * that will later be hydrated with the previous value.\n */\n valueKeyframesAsList.length === 1 &&\n valueKeyframesAsList.unshift(null);\n /**\n * Add keyframes, mapping offsets to absolute time.\n */\n addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);\n maxDuration = Math.max(calculatedDelay + duration, maxDuration);\n totalDuration = Math.max(targetTime, totalDuration);\n };\n if (isMotionValue(subject)) {\n const subjectSequence = getSubjectSequence(subject, sequences);\n resolveValueSequence(keyframes, transition, getValueSequence(\"default\", subjectSequence));\n }\n else {\n /**\n * Find all the elements specified in the definition and parse value\n * keyframes from their timeline definitions.\n */\n const elements = resolveElements(subject, scope, elementCache);\n const numElements = elements.length;\n /**\n * For every element in this segment, process the defined values.\n */\n for (let elementIndex = 0; elementIndex < numElements; elementIndex++) {\n /**\n * Cast necessary, but we know these are of this type\n */\n keyframes = keyframes;\n transition = transition;\n const element = elements[elementIndex];\n const subjectSequence = getSubjectSequence(element, sequences);\n for (const key in keyframes) {\n resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), elementIndex, numElements);\n }\n }\n }\n prevTime = currentTime;\n currentTime += maxDuration;\n }\n /**\n * For every element and value combination create a new animation.\n */\n sequences.forEach((valueSequences, element) => {\n for (const key in valueSequences) {\n const valueSequence = valueSequences[key];\n /**\n * Arrange all the keyframes in ascending time order.\n */\n valueSequence.sort(compareByTime);\n const keyframes = [];\n const valueOffset = [];\n const valueEasing = [];\n /**\n * For each keyframe, translate absolute times into\n * relative offsets based on the total duration of the timeline.\n */\n for (let i = 0; i < valueSequence.length; i++) {\n const { at, value, easing } = valueSequence[i];\n keyframes.push(value);\n valueOffset.push(progress(0, totalDuration, at));\n valueEasing.push(easing || \"easeOut\");\n }\n /**\n * If the first keyframe doesn't land on offset: 0\n * provide one by duplicating the initial keyframe. This ensures\n * it snaps to the first keyframe when the animation starts.\n */\n if (valueOffset[0] !== 0) {\n valueOffset.unshift(0);\n keyframes.unshift(keyframes[0]);\n valueEasing.unshift(defaultSegmentEasing);\n }\n /**\n * If the last keyframe doesn't land on offset: 1\n * provide one with a null wildcard value. This will ensure it\n * stays static until the end of the animation.\n */\n if (valueOffset[valueOffset.length - 1] !== 1) {\n valueOffset.push(1);\n keyframes.push(null);\n }\n if (!animationDefinitions.has(element)) {\n animationDefinitions.set(element, {\n keyframes: {},\n transition: {},\n });\n }\n const definition = animationDefinitions.get(element);\n definition.keyframes[key] = keyframes;\n definition.transition[key] = {\n ...defaultTransition,\n duration: totalDuration,\n ease: valueEasing,\n times: valueOffset,\n ...sequenceTransition,\n };\n }\n });\n return animationDefinitions;\n}\nfunction getSubjectSequence(subject, sequences) {\n !sequences.has(subject) && sequences.set(subject, {});\n return sequences.get(subject);\n}\nfunction getValueSequence(name, sequences) {\n if (!sequences[name])\n sequences[name] = [];\n return sequences[name];\n}\nfunction keyframesAsList(keyframes) {\n return Array.isArray(keyframes) ? keyframes : [keyframes];\n}\nfunction getValueTransition(transition, key) {\n return transition[key]\n ? {\n ...transition,\n ...transition[key],\n }\n : { ...transition };\n}\nconst isNumber = (keyframe) => typeof keyframe === \"number\";\nconst isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);\n\nexport { createAnimationsFromSequence, getValueTransition };\n", "import { resolveElements } from '../render/dom/utils/resolve-element.mjs';\nimport { visualElementStore } from '../render/store.mjs';\nimport { invariant } from '../utils/errors.mjs';\nimport { GroupPlaybackControls } from './GroupPlaybackControls.mjs';\nimport { isDOMKeyframes } from './utils/is-dom-keyframes.mjs';\nimport { animateTarget } from './interfaces/visual-element-target.mjs';\nimport { createVisualElement } from './utils/create-visual-element.mjs';\nimport { animateSingleValue } from './interfaces/single-value.mjs';\nimport { createAnimationsFromSequence } from './sequence/create.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\n\nfunction animateElements(elementOrSelector, keyframes, options, scope) {\n const elements = resolveElements(elementOrSelector, scope);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n const animations = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n /**\n * Check each element for an associated VisualElement. If none exists,\n * we need to create one.\n */\n if (!visualElementStore.has(element)) {\n /**\n * TODO: We only need render-specific parts of the VisualElement.\n * With some additional work the size of the animate() function\n * could be reduced significantly.\n */\n createVisualElement(element);\n }\n const visualElement = visualElementStore.get(element);\n const transition = { ...options };\n /**\n * Resolve stagger function if provided.\n */\n if (typeof transition.delay === \"function\") {\n transition.delay = transition.delay(i, numElements);\n }\n animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));\n }\n return new GroupPlaybackControls(animations);\n}\nconst isSequence = (value) => Array.isArray(value) && Array.isArray(value[0]);\nfunction animateSequence(sequence, options, scope) {\n const animations = [];\n const animationDefinitions = createAnimationsFromSequence(sequence, options, scope);\n animationDefinitions.forEach(({ keyframes, transition }, subject) => {\n let animation;\n if (isMotionValue(subject)) {\n animation = animateSingleValue(subject, keyframes.default, transition.default);\n }\n else {\n animation = animateElements(subject, keyframes, transition);\n }\n animations.push(animation);\n });\n return new GroupPlaybackControls(animations);\n}\nconst createScopedAnimate = (scope) => {\n /**\n * Implementation\n */\n function scopedAnimate(valueOrElementOrSequence, keyframes, options) {\n let animation;\n if (isSequence(valueOrElementOrSequence)) {\n animation = animateSequence(valueOrElementOrSequence, keyframes, scope);\n }\n else if (isDOMKeyframes(keyframes)) {\n animation = animateElements(valueOrElementOrSequence, keyframes, options, scope);\n }\n else {\n animation = animateSingleValue(valueOrElementOrSequence, keyframes, options);\n }\n if (scope) {\n scope.animations.push(animation);\n }\n return animation;\n }\n return scopedAnimate;\n};\nconst animate = createScopedAnimate();\n\nexport { animate, createScopedAnimate };\n", "import { useRef, useState, useCallback } from 'react';\nimport { wrap } from './wrap.mjs';\n\n/**\n * Cycles through a series of visual properties. Can be used to toggle between or cycle through animations. It works similar to `useState` in React. It is provided an initial array of possible states, and returns an array of two arguments.\n *\n * An index value can be passed to the returned `cycle` function to cycle to a specific index.\n *\n * ```jsx\n * import * as React from \"react\"\n * import { motion, useCycle } from \"framer-motion\"\n *\n * export const MyComponent = () => {\n * const [x, cycleX] = useCycle(0, 50, 100)\n *\n * return (\n * cycleX()}\n * />\n * )\n * }\n * ```\n *\n * @param items - items to cycle through\n * @returns [currentState, cycleState]\n *\n * @public\n */\nfunction useCycle(...items) {\n const index = useRef(0);\n const [item, setItem] = useState(items[index.current]);\n const runCycle = useCallback((next) => {\n index.current =\n typeof next !== \"number\"\n ? wrap(0, items.length, index.current + 1)\n : next;\n setItem(items[index.current]);\n }, \n // The array will change on each call, but by putting items.length at\n // the front of this array, we guarantee the dependency comparison will match up\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [items.length, ...items]);\n return [item, runCycle];\n}\n\nexport { useCycle };\n", "import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n const [isInView, setInView] = useState(false);\n useEffect(() => {\n if (!ref.current || (once && isInView))\n return;\n const onEnter = () => {\n setInView(true);\n return once ? undefined : () => setInView(false);\n };\n const options = {\n root: (root && root.current) || undefined,\n margin,\n amount,\n };\n return inView(ref.current, onEnter, options);\n }, [root, ref, margin, once, amount]);\n return isInView;\n}\n\nexport { useInView };\n", "import { useEffect } from 'react';\nimport { addDomEvent } from './add-dom-event.mjs';\n\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(() => {\n const element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { useDomEvent };\n", "import { useRef, useEffect } from 'react';\nimport { useInstantLayoutTransition } from '../projection/use-instant-layout-transition.mjs';\nimport { useForceUpdate } from './use-force-update.mjs';\nimport { instantAnimationState } from './use-instant-transition-state.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useInstantTransition() {\n const [forceUpdate, forcedRenderCount] = useForceUpdate();\n const startInstantLayoutTransition = useInstantLayoutTransition();\n const unlockOnFrameRef = useRef();\n useEffect(() => {\n /**\n * Unblock after two animation frames, otherwise this will unblock too soon.\n */\n frame.postRender(() => frame.postRender(() => {\n /**\n * If the callback has been called again after the effect\n * triggered this 2 frame delay, don't unblock animations. This\n * prevents the previous effect from unblocking the current\n * instant transition too soon. This becomes more likely when\n * used in conjunction with React.startTransition().\n */\n if (forcedRenderCount !== unlockOnFrameRef.current)\n return;\n instantAnimationState.current = false;\n }));\n }, [forcedRenderCount]);\n return (callback) => {\n startInstantLayoutTransition(() => {\n instantAnimationState.current = true;\n forceUpdate();\n callback();\n unlockOnFrameRef.current = forcedRenderCount + 1;\n });\n };\n}\nfunction disableInstantTransitions() {\n instantAnimationState.current = false;\n}\n\nexport { disableInstantTransitions, useInstantTransition };\n", "import { useCallback } from 'react';\nimport { rootProjectionNode } from './node/HTMLProjectionNode.mjs';\n\nfunction useResetProjection() {\n const reset = useCallback(() => {\n const root = rootProjectionNode.current;\n if (!root)\n return;\n root.resetTree();\n }, []);\n return reset;\n}\n\nexport { useResetProjection };\n", "import { useState, useEffect } from 'react';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { VisualElement } from '../../render/VisualElement.mjs';\nimport { animateVisualElement } from '../interfaces/visual-element.mjs';\n\nconst createObject = () => ({});\nclass StateVisualElement extends VisualElement {\n build() { }\n measureInstanceViewportBox() {\n return createBox();\n }\n resetTransform() { }\n restoreTransform() { }\n removeValueFromRenderState() { }\n renderInstance() { }\n scrapeMotionValuesFromProps() {\n return createObject();\n }\n getBaseTargetFromProps() {\n return undefined;\n }\n readValueFromInstance(_state, key, options) {\n return options.initialState[key] || 0;\n }\n sortInstanceNodePosition() {\n return 0;\n }\n}\nconst useVisualState = makeUseVisualState({\n scrapeMotionValuesFromProps: createObject,\n createRenderState: createObject,\n});\n/**\n * This is not an officially supported API and may be removed\n * on any version.\n */\nfunction useAnimatedState(initialState) {\n const [animationState, setAnimationState] = useState(initialState);\n const visualState = useVisualState({}, false);\n const element = useConstant(() => {\n return new StateVisualElement({ props: {}, visualState, presenceContext: null }, { initialState });\n });\n useEffect(() => {\n element.mount({});\n return () => element.unmount();\n }, [element]);\n useEffect(() => {\n element.update({\n onUpdate: (v) => {\n setAnimationState({ ...v });\n },\n }, null);\n }, [setAnimationState, element]);\n const startAnimation = useConstant(() => (animationDefinition) => {\n return animateVisualElement(element, animationDefinition);\n });\n return [animationState, startAnimation];\n}\n\nexport { useAnimatedState };\n", "import { useTransform } from './use-transform.mjs';\nimport { invariant, warning } from '../utils/errors.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useContext } from 'react';\n\n// Keep things reasonable and avoid scale: Infinity. In practise we might need\n// to add another value, opacity, that could interpolate scaleX/Y [0,0.01] => [0,1]\n// to simply hide content at unreasonable scales.\nconst maxScale = 100000;\nconst invertScale = (scale) => scale > 0.001 ? 1 / scale : maxScale;\nlet hasWarned = false;\n/**\n * Returns a `MotionValue` each for `scaleX` and `scaleY` that update with the inverse\n * of their respective parent scales.\n *\n * This is useful for undoing the distortion of content when scaling a parent component.\n *\n * By default, `useInvertedScale` will automatically fetch `scaleX` and `scaleY` from the nearest parent.\n * By passing other `MotionValue`s in as `useInvertedScale({ scaleX, scaleY })`, it will invert the output\n * of those instead.\n *\n * ```jsx\n * const MyComponent = () => {\n * const { scaleX, scaleY } = useInvertedScale()\n * return \n * }\n * ```\n *\n * @deprecated\n */\nfunction useInvertedScale(scale) {\n let parentScaleX = useMotionValue(1);\n let parentScaleY = useMotionValue(1);\n const { visualElement } = useContext(MotionContext);\n invariant(!!(scale || visualElement), \"If no scale values are provided, useInvertedScale must be used within a child of another motion component.\");\n warning(hasWarned, \"useInvertedScale is deprecated and will be removed in 3.0. Use the layout prop instead.\");\n hasWarned = true;\n if (scale) {\n parentScaleX = scale.scaleX || parentScaleX;\n parentScaleY = scale.scaleY || parentScaleY;\n }\n else if (visualElement) {\n parentScaleX = visualElement.getValue(\"scaleX\", 1);\n parentScaleY = visualElement.getValue(\"scaleY\", 1);\n }\n const scaleX = useTransform(parentScaleX, invertScale);\n const scaleY = useTransform(parentScaleY, invertScale);\n return { scaleX, scaleY };\n}\n\nexport { invertScale, useInvertedScale };\n", "import { jsx } from 'react/jsx-runtime';\nimport { invariant } from '../utils/errors.mjs';\nimport * as React from 'react';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { LayoutGroup } from './LayoutGroup/index.mjs';\n\nlet id = 0;\nconst AnimateSharedLayout = ({ children }) => {\n React.useEffect(() => {\n invariant(false, \"AnimateSharedLayout is deprecated: https://www.framer.com/docs/guide-upgrade/##shared-layout-animations\");\n }, []);\n return (jsx(LayoutGroup, { id: useConstant(() => `asl-${id++}`), children: children }));\n};\n\nexport { AnimateSharedLayout };\n", "import { stepsOrder } from './batcher.mjs';\nimport { frame, cancelFrame } from './frame.mjs';\n\n/**\n * @deprecated\n *\n * Import as `frame` instead.\n */\nconst sync = frame;\n/**\n * @deprecated\n *\n * Use cancelFrame(callback) instead.\n */\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = (process) => cancelFrame(process);\n return acc;\n}, {});\n\nexport { cancelSync, sync };\n", "import { useTimeout } from \"@chakra-ui/react-use-timeout\"\nimport { useUpdateEffect } from \"@chakra-ui/react-use-update-effect\"\nimport { runIfFn } from \"@chakra-ui/shared-utils\"\nimport { motion, useIsPresent, Variants } from \"framer-motion\"\nimport { chakra } from \"@chakra-ui/system\"\nimport type { ToastOptions } from \"./toast.types\"\nimport { getToastStyle } from \"./toast.utils\"\nimport { ToastProviderProps } from \"./toast.provider\"\nimport { memo, useEffect, useMemo, useState } from \"react\"\n\nconst toastMotionVariants: Variants = {\n initial: (props) => {\n const { position } = props\n\n const dir = [\"top\", \"bottom\"].includes(position) ? \"y\" : \"x\"\n\n let factor = [\"top-right\", \"bottom-right\"].includes(position) ? 1 : -1\n if (position === \"bottom\") factor = 1\n\n return {\n opacity: 0,\n [dir]: factor * 24,\n }\n },\n animate: {\n opacity: 1,\n y: 0,\n x: 0,\n scale: 1,\n transition: {\n duration: 0.4,\n ease: [0.4, 0, 0.2, 1],\n },\n },\n exit: {\n opacity: 0,\n scale: 0.85,\n transition: {\n duration: 0.2,\n ease: [0.4, 0, 1, 1],\n },\n },\n}\n\nexport interface ToastComponentProps\n extends ToastOptions,\n Pick {}\n\nexport const ToastComponent = memo((props: ToastComponentProps) => {\n const {\n id,\n message,\n onCloseComplete,\n onRequestRemove,\n requestClose = false,\n position = \"bottom\",\n duration = 5000,\n containerStyle,\n motionVariants = toastMotionVariants,\n toastSpacing = \"0.5rem\",\n } = props\n\n const [delay, setDelay] = useState(duration)\n const isPresent = useIsPresent()\n\n useUpdateEffect(() => {\n if (!isPresent) {\n onCloseComplete?.()\n }\n }, [isPresent])\n\n useUpdateEffect(() => {\n setDelay(duration)\n }, [duration])\n\n const onMouseEnter = () => setDelay(null)\n const onMouseLeave = () => setDelay(duration)\n\n const close = () => {\n if (isPresent) onRequestRemove()\n }\n\n useEffect(() => {\n if (isPresent && requestClose) {\n onRequestRemove()\n }\n }, [isPresent, requestClose, onRequestRemove])\n\n useTimeout(close, delay)\n\n const containerStyles = useMemo(\n () => ({\n pointerEvents: \"auto\",\n maxWidth: 560,\n minWidth: 300,\n margin: toastSpacing,\n ...containerStyle,\n }),\n [containerStyle, toastSpacing],\n )\n\n const toastStyle = useMemo(() => getToastStyle(position), [position])\n\n return (\n \n \n {runIfFn(message, { id, onClose: close })}\n \n \n )\n})\n\nToastComponent.displayName = \"ToastComponent\"\n", "export type LogicalToastPosition =\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n\nexport type ToastPositionWithLogical =\n | LogicalToastPosition\n | \"top\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom\"\n | \"bottom-left\"\n | \"bottom-right\"\n\nexport type ToastPosition = Exclude<\n ToastPositionWithLogical,\n LogicalToastPosition\n>\n\ntype LogicalPlacementMap = Record<\n LogicalToastPosition,\n { ltr: ToastPosition; rtl: ToastPosition }\n>\n\nexport function getToastPlacement(\n position: ToastPosition | undefined,\n dir: \"ltr\" | \"rtl\",\n): ToastPosition | undefined {\n const computedPosition = position ?? \"bottom\"\n const logicals: LogicalPlacementMap = {\n \"top-start\": { ltr: \"top-left\", rtl: \"top-right\" },\n \"top-end\": { ltr: \"top-right\", rtl: \"top-left\" },\n \"bottom-start\": { ltr: \"bottom-left\", rtl: \"bottom-right\" },\n \"bottom-end\": { ltr: \"bottom-right\", rtl: \"bottom-left\" },\n }\n\n const logical = logicals[computedPosition as keyof typeof logicals]\n return logical?.[dir] ?? computedPosition\n}\n", "import {\n chakra,\n ChakraProps,\n forwardRef,\n SystemStyleObject,\n useStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\n\nconst fallbackIcon = {\n path: (\n \n \n \n \n \n ),\n viewBox: \"0 0 24 24\",\n}\n\ntype Orientation = \"vertical\" | \"horizontal\"\n\nexport interface IconProps\n extends Omit, keyof ChakraProps>,\n ChakraProps {\n orientation?: Orientation\n}\n\n/**\n * The Icon component renders as an svg element to help define your own custom components.\n *\n * @see Docs https://chakra-ui.com/docs/components/icon#using-the-icon-component\n */\nexport const Icon = forwardRef((props, ref) => {\n const {\n as: element,\n viewBox,\n color = \"currentColor\",\n focusable = false,\n children,\n className,\n __css,\n ...rest\n } = props\n\n const _className = cx(\"chakra-icon\", className)\n const customStyles = useStyleConfig(\"Icon\", props)\n\n const styles: SystemStyleObject = {\n w: \"1em\",\n h: \"1em\",\n display: \"inline-block\",\n lineHeight: \"1em\",\n flexShrink: 0,\n color,\n ...__css,\n ...customStyles,\n }\n\n const shared: any = {\n ref,\n focusable,\n className: _className,\n __css: styles,\n }\n\n const _viewBox = viewBox ?? fallbackIcon.viewBox\n\n /**\n * If you're using an icon library like `react-icons`.\n * Note: anyone passing the `as` prop, should manage the `viewBox` from the external component\n */\n if (element && typeof element !== \"string\") {\n return \n }\n\n const _path = (children ?? fallbackIcon.path) as React.ReactNode\n\n return (\n \n {_path}\n \n )\n})\n\nIcon.displayName = \"Icon\"\n\nexport default Icon\n", "import { forwardRef } from \"@chakra-ui/system\"\nimport { Children } from \"react\"\nimport { Icon, IconProps } from \"./icon\"\n\ninterface CreateIconOptions {\n /**\n * The icon `svg` viewBox\n * @default \"0 0 24 24\"\n */\n viewBox?: string\n /**\n * The `svg` path or group element\n * @type React.ReactElement | React.ReactElement[]\n */\n path?: React.ReactElement | React.ReactElement[]\n /**\n * If the `svg` has a single path, simply copy the path's `d` attribute\n */\n d?: string\n /**\n * The display name useful in the dev tools\n */\n displayName?: string\n /**\n * Default props automatically passed to the component; overwritable\n */\n defaultProps?: IconProps\n}\n\nexport function createIcon(options: CreateIconOptions) {\n const {\n viewBox = \"0 0 24 24\",\n d: pathDefinition,\n displayName,\n defaultProps = {},\n } = options\n const path = Children.toArray(options.path)\n\n const Comp = forwardRef((props, ref) => (\n \n {path.length ? path : }\n \n ))\n\n Comp.displayName = displayName\n\n return Comp\n}\n", "import { Icon, IconProps } from \"@chakra-ui/icon\"\n\nexport function CheckIcon(props: IconProps) {\n return (\n \n \n \n )\n}\n\nexport function InfoIcon(props: IconProps) {\n return (\n \n \n \n )\n}\n\nexport function WarningIcon(props: IconProps) {\n return (\n \n \n \n )\n}\n", "import {\n chakra,\n forwardRef,\n keyframes,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\n\nconst spin = keyframes({\n \"0%\": {\n transform: \"rotate(0deg)\",\n },\n \"100%\": {\n transform: \"rotate(360deg)\",\n },\n})\n\ninterface SpinnerOptions {\n /**\n * The color of the empty area in the spinner\n * @default \"transparent\"\n */\n emptyColor?: string\n /**\n * The color of the spinner\n */\n color?: string\n /**\n * The thickness of the spinner\n * @default \"2px\"\n * @example\n * ```jsx\n * \n * ```\n */\n thickness?: string\n /**\n * The speed of the spinner.\n * @default \"0.45s\"\n * @example\n * ```jsx\n * \n * ```\n */\n speed?: string\n /**\n * For accessibility, it is important to add a fallback loading text.\n * This text will be visible to screen readers.\n * @default \"Loading...\"\n */\n label?: string\n}\n\nexport interface SpinnerProps\n extends Omit, keyof SpinnerOptions>,\n SpinnerOptions,\n ThemingProps<\"Spinner\"> {}\n\n/**\n * Spinner is used to indicate the loading state of a page or a component,\n * It renders a `div` by default.\n *\n * @see Docs https://chakra-ui.com/spinner\n */\nexport const Spinner = forwardRef((props, ref) => {\n const styles = useStyleConfig(\"Spinner\", props)\n\n const {\n label = \"Loading...\",\n thickness = \"2px\",\n speed = \"0.45s\",\n emptyColor = \"transparent\",\n className,\n ...rest\n } = omitThemingProps(props)\n\n const _className = cx(\"chakra-spinner\", className)\n\n const spinnerStyles = {\n display: \"inline-block\",\n borderColor: \"currentColor\",\n borderStyle: \"solid\",\n borderRadius: \"99999px\",\n borderWidth: thickness,\n borderBottomColor: emptyColor,\n borderLeftColor: emptyColor,\n animation: `${spin} ${speed} linear infinite`,\n ...styles,\n }\n\n return (\n \n {label && {label}}\n \n )\n})\n\nSpinner.displayName = \"Spinner\"\n", "import { SystemStyleObject } from \"@chakra-ui/system\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport { CheckIcon, InfoIcon, WarningIcon } from \"./icons\"\nimport { Spinner } from \"@chakra-ui/spinner\"\n\nexport const [AlertProvider, useAlertContext] = createContext({\n name: \"AlertContext\",\n hookName: \"useAlertContext\",\n providerName: \"\",\n})\n\nexport const [AlertStylesProvider, useAlertStyles] = createContext<\n Record\n>({\n name: `AlertStylesContext`,\n hookName: `useAlertStyles`,\n providerName: \"\",\n})\n\nconst STATUSES = {\n info: { icon: InfoIcon, colorScheme: \"blue\" },\n warning: { icon: WarningIcon, colorScheme: \"orange\" },\n success: { icon: CheckIcon, colorScheme: \"green\" },\n error: { icon: WarningIcon, colorScheme: \"red\" },\n loading: { icon: Spinner, colorScheme: \"blue\" },\n}\n\nexport function getStatusColorScheme(status: AlertStatus) {\n return STATUSES[status].colorScheme\n}\n\nexport function getStatusIcon(status: AlertStatus) {\n return STATUSES[status].icon\n}\n\nexport type AlertStatus = keyof typeof STATUSES\n\nexport interface AlertContext {\n status: AlertStatus\n}\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n HTMLChakraProps,\n SystemStyleObject,\n chakra,\n forwardRef,\n} from \"@chakra-ui/system\"\nimport { useAlertContext, useAlertStyles } from \"./alert-context\"\n\nexport interface AlertDescriptionProps extends HTMLChakraProps<\"div\"> {}\n\nexport const AlertDescription = forwardRef(\n function AlertDescription(props, ref) {\n const styles = useAlertStyles()\n const { status } = useAlertContext()\n const descriptionStyles: SystemStyleObject = {\n display: \"inline\",\n ...styles.description,\n }\n\n return (\n \n )\n },\n)\n\nAlertDescription.displayName = \"AlertDescription\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { chakra, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { getStatusIcon, useAlertContext, useAlertStyles } from \"./alert-context\"\n\nexport interface AlertIconProps extends HTMLChakraProps<\"span\"> {}\n\nexport function AlertIcon(props: AlertIconProps) {\n const { status } = useAlertContext()\n const BaseIcon = getStatusIcon(status)\n const styles = useAlertStyles()\n const css = status === \"loading\" ? styles.spinner : styles.icon\n\n return (\n \n {props.children || }\n \n )\n}\n\nAlertIcon.displayName = \"AlertIcon\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useAlertContext, useAlertStyles } from \"./alert-context\"\n\nexport interface AlertTitleProps extends HTMLChakraProps<\"div\"> {}\n\nexport const AlertTitle = forwardRef(\n function AlertTitle(props, ref) {\n const styles = useAlertStyles()\n const { status } = useAlertContext()\n\n return (\n \n )\n },\n)\n\nAlertTitle.displayName = \"AlertTitle\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport {\n AlertProvider,\n AlertStatus,\n AlertStylesProvider,\n getStatusColorScheme,\n} from \"./alert-context\"\n\ninterface AlertOptions {\n /**\n * The status of the alert\n * @default \"info\"\n */\n status?: AlertStatus\n}\n\nexport interface AlertProps\n extends HTMLChakraProps<\"div\">,\n AlertOptions,\n ThemingProps<\"Alert\"> {\n /**\n * @default false\n */\n addRole?: boolean\n}\n\n/**\n * Alert is used to communicate the state or status of a\n * page, feature or action\n *\n * @see Docs https://chakra-ui.com/docs/components/alert\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/alert/\n */\nexport const Alert = forwardRef(function Alert(props, ref) {\n const { status = \"info\", addRole = true, ...rest } = omitThemingProps(props)\n const colorScheme = props.colorScheme ?? getStatusColorScheme(status)\n\n const styles = useMultiStyleConfig(\"Alert\", { ...props, colorScheme })\n\n const alertStyles: SystemStyleObject = {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n overflow: \"hidden\",\n ...styles.container,\n }\n\n return (\n \n \n \n \n \n )\n})\n\nAlert.displayName = \"Alert\"\n", "import { Icon, IconProps } from \"@chakra-ui/icon\"\nimport {\n chakra,\n forwardRef,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\n\nfunction CloseIcon(props: IconProps) {\n return (\n \n \n \n )\n}\n\nexport interface CloseButtonProps\n extends HTMLChakraProps<\"button\">,\n ThemingProps<\"CloseButton\"> {\n /**\n * If `true`, the close button will be disabled.\n * @default false\n */\n isDisabled?: boolean\n}\n\n/**\n * A button with a close icon.\n *\n * It is used to handle the close functionality in feedback and overlay components\n * like Alerts, Toasts, Drawers and Modals.\n *\n * @see Docs https://chakra-ui.com/docs/components/close-button\n */\nexport const CloseButton = forwardRef(\n function CloseButton(props, ref) {\n const styles = useStyleConfig(\"CloseButton\", props)\n const { children, isDisabled, __css, ...rest } = omitThemingProps(props)\n\n const baseStyle: SystemStyleObject = {\n outline: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }\n\n return (\n \n {children || }\n \n )\n },\n)\n\nCloseButton.displayName = \"CloseButton\"\n", "import {\n Alert,\n AlertDescription,\n AlertIcon,\n AlertProps,\n AlertTitle,\n} from \"@chakra-ui/alert\"\nimport { chakra } from \"@chakra-ui/system\"\nimport { CloseButton } from \"@chakra-ui/close-button\"\nimport { runIfFn } from \"@chakra-ui/shared-utils\"\nimport type { UseToastOptions } from \"./use-toast\"\nimport type { RenderProps, ToastId } from \"./toast.types\"\nimport { getToastPlacement } from \"./toast.placement\"\nimport { toastStore } from \"./toast.store\"\n\nexport interface ToastProps\n extends UseToastOptions,\n Omit {\n onClose?: () => void\n}\n\n/**\n * The `Toast` component is used to give feedback to users after an action has taken place.\n *\n * @see Docs https://chakra-ui.com/docs/components/toast\n */\nexport const Toast: React.FC = (props) => {\n const {\n status,\n variant = \"solid\",\n id,\n title,\n isClosable,\n onClose,\n description,\n colorScheme,\n icon,\n } = props\n\n const ids = id\n ? {\n root: `toast-${id}`,\n title: `toast-${id}-title`,\n description: `toast-${id}-description`,\n }\n : undefined\n\n return (\n \n {icon}\n \n {title && {title}}\n {description && (\n \n {description}\n \n )}\n \n {isClosable && (\n \n )}\n \n )\n}\n\nexport function createRenderToast(\n options: UseToastOptions & {\n toastComponent?: React.FC\n } = {},\n) {\n const { render, toastComponent: ToastComponent = Toast } = options\n const renderToast: React.FC = (props) => {\n if (typeof render === \"function\") {\n return render({ ...props, ...options }) as JSX.Element\n }\n return \n }\n return renderToast\n}\n\ntype UseToastPromiseOption = Omit\n\nexport function createToastFn(\n dir: \"ltr\" | \"rtl\",\n defaultOptions?: UseToastOptions,\n) {\n const normalizeToastOptions = (options?: UseToastOptions) => ({\n ...defaultOptions,\n ...options,\n position: getToastPlacement(\n options?.position ?? defaultOptions?.position,\n dir,\n ),\n })\n\n const toast = (options?: UseToastOptions) => {\n const normalizedToastOptions = normalizeToastOptions(options)\n const Message = createRenderToast(normalizedToastOptions)\n return toastStore.notify(Message, normalizedToastOptions)\n }\n\n toast.update = (id: ToastId, options: Omit) => {\n toastStore.update(id, normalizeToastOptions(options))\n }\n\n toast.promise = (\n promise: Promise,\n options: {\n success: MaybeFunction\n error: MaybeFunction\n loading: UseToastPromiseOption\n },\n ) => {\n const id = toast({\n ...options.loading,\n status: \"loading\",\n duration: null,\n })\n\n promise\n .then((data) =>\n toast.update(id, {\n status: \"success\",\n duration: 5_000,\n ...runIfFn(options.success, data),\n }),\n )\n .catch((error) =>\n toast.update(id, {\n status: \"error\",\n duration: 5_000,\n ...runIfFn(options.error, error),\n }),\n )\n }\n\n toast.closeAll = toastStore.closeAll\n toast.close = toastStore.close\n toast.isActive = toastStore.isActive\n\n return toast\n}\n\nexport type CreateToastFnReturn = ReturnType\n\ntype MaybeFunction = T | ((...args: Args) => T)\n", "import { createRenderToast } from \"./toast\"\nimport { ToastPosition } from \"./toast.placement\"\nimport { CreateToastOptions, ToastMethods } from \"./toast.provider\"\nimport type { ToastId, ToastMessage, ToastState } from \"./toast.types\"\nimport { findToast, getToastPosition } from \"./toast.utils\"\n\ntype ToastStore = ToastMethods & {\n getState: () => ToastState\n subscribe: (onStoreChange: () => void) => () => void\n removeToast: (id: ToastId, position: ToastPosition) => void\n}\n\nconst initialState = {\n top: [],\n \"top-left\": [],\n \"top-right\": [],\n \"bottom-left\": [],\n bottom: [],\n \"bottom-right\": [],\n}\n\n/**\n * Store to track all the toast across all positions\n */\nexport const toastStore = createStore(initialState)\n\nfunction createStore(initialState: ToastState): ToastStore {\n let state = initialState\n const listeners = new Set<() => void>()\n\n const setState = (setStateFn: (values: ToastState) => ToastState) => {\n state = setStateFn(state)\n listeners.forEach((l) => l())\n }\n\n return {\n getState: () => state,\n\n subscribe: (listener) => {\n listeners.add(listener)\n return () => {\n // Delete all toasts on unmount\n setState(() => initialState)\n listeners.delete(listener)\n }\n },\n\n /**\n * Delete a toast record at its position\n */\n removeToast: (id, position) => {\n setState((prevState) => ({\n ...prevState,\n // id may be string or number\n // eslint-disable-next-line eqeqeq\n [position]: prevState[position].filter((toast) => toast.id != id),\n }))\n },\n\n notify: (message, options) => {\n const toast = createToast(message, options)\n const { position, id } = toast\n\n setState((prevToasts) => {\n const isTop = position.includes(\"top\")\n\n /**\n * - If the toast is positioned at the top edges, the\n * recent toast stacks on top of the other toasts.\n *\n * - If the toast is positioned at the bottom edges, the recent\n * toast stacks below the other toasts.\n */\n const toasts = isTop\n ? [toast, ...(prevToasts[position] ?? [])]\n : [...(prevToasts[position] ?? []), toast]\n\n return {\n ...prevToasts,\n [position]: toasts,\n }\n })\n\n return id\n },\n\n update: (id, options) => {\n if (!id) return\n\n setState((prevState) => {\n const nextState = { ...prevState }\n const { position, index } = findToast(nextState, id)\n\n if (position && index !== -1) {\n nextState[position][index] = {\n ...nextState[position][index],\n ...options,\n message: createRenderToast(options),\n }\n }\n\n return nextState\n })\n },\n\n closeAll: ({ positions } = {}) => {\n // only one setState here for perf reasons\n // instead of spamming this.closeToast\n setState((prev) => {\n const allPositions: ToastPosition[] = [\n \"bottom\",\n \"bottom-right\",\n \"bottom-left\",\n \"top\",\n \"top-left\",\n \"top-right\",\n ]\n\n const positionsToClose = positions ?? allPositions\n\n return positionsToClose.reduce(\n (acc, position) => {\n acc[position] = prev[position].map((toast) => ({\n ...toast,\n requestClose: true,\n }))\n\n return acc\n },\n { ...prev } as ToastState,\n )\n })\n },\n\n close: (id) => {\n setState((prevState) => {\n const position = getToastPosition(prevState, id)\n\n if (!position) return prevState\n\n return {\n ...prevState,\n [position]: prevState[position].map((toast) => {\n // id may be string or number\n // eslint-disable-next-line eqeqeq\n if (toast.id == id) {\n return {\n ...toast,\n requestClose: true,\n }\n }\n\n return toast\n }),\n }\n })\n },\n\n isActive: (id) => Boolean(findToast(toastStore.getState(), id).position),\n }\n}\n\n/**\n * Static id counter to create unique ids\n * for each toast\n */\nlet counter = 0\n\n/**\n * Create properties for a new toast\n */\nfunction createToast(message: ToastMessage, options: CreateToastOptions = {}) {\n counter += 1\n const id = options.id ?? counter\n\n const position = options.position ?? \"bottom\"\n\n return {\n id,\n message,\n position,\n duration: options.duration,\n onCloseComplete: options.onCloseComplete,\n onRequestRemove: () => toastStore.removeToast(String(id), position),\n status: options.status,\n requestClose: false,\n containerStyle: options.containerStyle,\n }\n}\n", "import { AnimatePresence, Variants } from \"framer-motion\"\nimport { Portal, PortalProps } from \"@chakra-ui/portal\"\nimport { ToastComponent, ToastComponentProps } from \"./toast.component\"\nimport type {\n CloseAllToastsOptions,\n ToastId,\n ToastMessage,\n ToastOptions,\n} from \"./toast.types\"\nimport type { UseToastOptions } from \"./use-toast\"\nimport { toastStore } from \"./toast.store\"\nimport { getToastListStyle } from \"./toast.utils\"\nimport { useSyncExternalStore } from \"react\"\nimport { createContext } from \"@chakra-ui/react-context\"\n\nexport interface ToastMethods {\n /**\n * Function to actually create a toast and add it\n * to state at the specified position\n */\n notify: (message: ToastMessage, options?: CreateToastOptions) => ToastId\n /**\n * Close all toasts at once.\n * If given positions, will only close those.\n */\n closeAll: (options?: CloseAllToastsOptions) => void\n /**\n * Requests to close a toast based on its id and position\n */\n close: (id: ToastId) => void\n /**\n * Update a specific toast with new options based on the\n * passed `id`\n */\n update: (id: ToastId, options: Omit) => void\n isActive: (id: ToastId) => boolean\n}\n\nexport type CreateToastOptions = Partial<\n Pick<\n ToastOptions,\n | \"status\"\n | \"duration\"\n | \"position\"\n | \"id\"\n | \"onCloseComplete\"\n | \"containerStyle\"\n >\n>\n\nexport type ToastProviderProps = React.PropsWithChildren<{\n /**\n * Default options for `useToast(options)`\n *\n * @example\n * \n */\n defaultOptions?: UseToastOptions\n\n /**\n * Customize the default motion config to animate the toasts your way\n *\n * @example\n * const motionVariants =\n * \n */\n motionVariants?: Variants\n\n /**\n * Are you looking for a way to style the toast? Use a custom `Alert` variant in the theme.\n * This property overrides the default ToastComponent with your own implementation.\n *\n * @example\n * const CustomToastComponent = (props: ToastComponentProps) => ...\n * \n *\n * @default ToastComponent\n */\n component?: React.FC\n\n /**\n * Define the margin between toasts\n *\n * @default 0.5rem\n */\n toastSpacing?: string | number\n /**\n * Props to be forwarded to the portal component\n */\n portalProps?: Pick\n}>\n\n/**\n * Passes default options down to be used by toast creator function\n */\nexport const [ToastOptionProvider, useToastOptionContext] = createContext<\n UseToastOptions | undefined\n>({\n name: `ToastOptionsContext`,\n strict: false,\n})\n\n/**\n * Manages the creation, and removal of toasts\n * across all corners (\"top\", \"bottom\", etc.)\n */\nexport const ToastProvider = (props: ToastProviderProps) => {\n const state = useSyncExternalStore(\n toastStore.subscribe,\n toastStore.getState,\n toastStore.getState,\n )\n\n const {\n motionVariants,\n component: Component = ToastComponent,\n portalProps,\n } = props\n\n const stateKeys = Object.keys(state) as Array\n const toastList = stateKeys.map((position) => {\n const toasts = state[position]\n\n return (\n \n \n {toasts.map((toast) => (\n \n ))}\n \n
\n )\n })\n\n return {toastList}\n}\n", "import type { AlertStatus } from \"@chakra-ui/alert\"\nimport { StyleProps, ThemingProps, useChakra } from \"@chakra-ui/system\"\nimport type { RenderProps, ToastId, ToastOptions } from \"./toast.types\"\nimport { createToastFn, CreateToastFnReturn } from \"./toast\"\nimport { ToastPosition } from \"./toast.placement\"\nimport { useMemo } from \"react\"\nimport { useToastOptionContext } from \"./toast.provider\"\n\nexport interface UseToastOptions extends ThemingProps<\"Alert\"> {\n /**\n * The placement of the toast\n *\n * @default \"bottom\"\n */\n position?: ToastPosition\n /**\n * The delay before the toast hides (in milliseconds)\n * If set to `null`, toast will never dismiss.\n *\n * @default 5000 ( = 5000ms )\n */\n duration?: ToastOptions[\"duration\"]\n /**\n * Render a component toast component.\n * Any component passed will receive 2 props: `id` and `onClose`.\n */\n render?(props: RenderProps): React.ReactNode\n /**\n * The title of the toast\n */\n title?: React.ReactNode\n /**\n * The description of the toast\n */\n description?: React.ReactNode\n /**\n * If `true`, toast will show a close button\n * @default false\n */\n isClosable?: boolean\n /**\n * The status of the toast.\n */\n status?: AlertStatus\n /**\n * A custom icon that will be displayed by the toast.\n */\n icon?: React.ReactNode\n /**\n * The `id` of the toast.\n *\n * Mostly used when you need to prevent duplicate.\n * By default, we generate a unique `id` for each toast\n */\n id?: ToastId\n /**\n * Callback function to run side effects after the toast has closed.\n */\n onCloseComplete?: () => void\n /**\n * Optional style overrides for the container wrapping the toast component.\n */\n containerStyle?: StyleProps\n}\n\n/**\n * React hook used to create a function that can be used\n * to show toasts in an application.\n */\nexport function useToast(options?: UseToastOptions): CreateToastFnReturn {\n const { theme } = useChakra()\n const defaultOptions = useToastOptionContext()\n\n return useMemo(\n () =>\n createToastFn(theme.direction, {\n ...defaultOptions,\n ...options,\n }),\n [options, theme.direction, defaultOptions],\n )\n}\n\nexport default useToast\n", "import {\n ColorMode,\n ColorModeContext,\n ThemeProvider,\n useChakra,\n} from \"@chakra-ui/system\"\nimport { theme as defaultTheme } from \"@chakra-ui/theme\"\nimport { ToastProvider, ToastProviderProps } from \"./toast.provider\"\nimport { UseToastOptions } from \"./use-toast\"\nimport { createToastFn, CreateToastFnReturn } from \"./toast\"\n\nconst defaults: UseToastOptions = {\n duration: 5000,\n variant: \"solid\",\n}\n\nexport interface CreateStandAloneToastParam\n extends Partial<\n ReturnType & {\n setColorMode: (value: ColorMode) => void\n defaultOptions: UseToastOptions\n }\n >,\n Omit {}\n\nexport const defaultStandaloneParam: CreateStandAloneToastParam &\n Required> = {\n theme: defaultTheme,\n colorMode: \"light\",\n toggleColorMode: () => {},\n setColorMode: () => {},\n defaultOptions: defaults,\n forced: false,\n}\n\nexport type CreateStandaloneToastReturn = {\n ToastContainer: () => JSX.Element\n toast: CreateToastFnReturn\n}\n\n/**\n * Create a toast\n */\nexport function createStandaloneToast({\n theme = defaultStandaloneParam.theme,\n colorMode = defaultStandaloneParam.colorMode,\n toggleColorMode = defaultStandaloneParam.toggleColorMode,\n setColorMode = defaultStandaloneParam.setColorMode,\n defaultOptions = defaultStandaloneParam.defaultOptions,\n motionVariants,\n toastSpacing,\n component,\n forced,\n}: CreateStandAloneToastParam = defaultStandaloneParam): CreateStandaloneToastReturn {\n const colorModeContextValue = {\n colorMode,\n setColorMode,\n toggleColorMode,\n forced,\n }\n const ToastContainer = () => (\n \n \n \n \n \n )\n\n return {\n ToastContainer,\n toast: createToastFn(theme.direction, defaultOptions),\n }\n}\n", "import {\n ChakraProvider as BaseChakraProvider,\n ChakraProviderProps as BaseChakraProviderProps,\n} from \"@chakra-ui/provider\"\nimport { theme as defaultTheme, baseTheme, Theme } from \"@chakra-ui/theme\"\nimport {\n ToastProvider,\n ToastProviderProps,\n ToastOptionProvider,\n} from \"@chakra-ui/toast\"\nimport { Dict } from \"@chakra-ui/utils\"\n\nexport interface ChakraProviderProps extends BaseChakraProviderProps {\n /**\n * Provide defaults for `useToast()` usages for `ChakraProvider`s children\n */\n toastOptions?: ToastProviderProps\n}\n\nconst createChakraProvider = (\n providerTheme: Theme | (Omit & { components: Dict }),\n) => {\n return function ChakraProvider({\n children,\n theme = providerTheme,\n toastOptions,\n ...restProps\n }: ChakraProviderProps) {\n return (\n \n \n {children}\n \n \n \n )\n }\n}\n\nexport const ChakraProvider = createChakraProvider(defaultTheme)\nexport const ChakraBaseProvider = createChakraProvider(baseTheme)\n", "import { useEffect, useLayoutEffect } from \"react\"\n\n/**\n * Sort an array of DOM nodes according to the HTML tree order\n * @see http://www.w3.org/TR/html5/infrastructure.html#tree-order\n */\nexport function sortNodes(nodes: Node[]) {\n return nodes.sort((a, b) => {\n const compare = a.compareDocumentPosition(b)\n\n if (\n compare & Node.DOCUMENT_POSITION_FOLLOWING ||\n compare & Node.DOCUMENT_POSITION_CONTAINED_BY\n ) {\n // a < b\n return -1\n }\n\n if (\n compare & Node.DOCUMENT_POSITION_PRECEDING ||\n compare & Node.DOCUMENT_POSITION_CONTAINS\n ) {\n // a > b\n return 1\n }\n\n if (\n compare & Node.DOCUMENT_POSITION_DISCONNECTED ||\n compare & Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC\n ) {\n throw Error(\"Cannot sort the given nodes.\")\n } else {\n return 0\n }\n })\n}\n\nexport const isElement = (el: any): el is HTMLElement =>\n typeof el == \"object\" && \"nodeType\" in el && el.nodeType === Node.ELEMENT_NODE\n\nexport function getNextIndex(current: number, max: number, loop: boolean) {\n let next = current + 1\n if (loop && next >= max) next = 0\n return next\n}\n\nexport function getPrevIndex(current: number, max: number, loop: boolean) {\n let next = current - 1\n if (loop && next < 0) next = max\n return next\n}\n\nexport const useSafeLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect\n\nexport const cast = (value: any) => value as T\n", "import { sortNodes, isElement, getNextIndex, getPrevIndex } from \"./utils\"\n\nexport type DescendantOptions = T & {\n /**\n * If `true`, the item will be registered in all nodes map\n * but omitted from enabled nodes map\n */\n disabled?: boolean\n /**\n * The id of the item\n */\n id?: string\n}\n\nexport type Descendant = DescendantOptions & {\n /**\n * DOM element of the item\n */\n node: T\n /**\n * index of item in all nodes map and enabled nodes map\n */\n index: number\n}\n\n/**\n * @internal\n *\n * Class to manage descendants and their relative indices in the DOM.\n * It uses `node.compareDocumentPosition(...)` under the hood\n */\nexport class DescendantsManager<\n T extends HTMLElement,\n K extends Record = {},\n> {\n private descendants = new Map>()\n\n register = (nodeOrOptions: T | null | DescendantOptions) => {\n if (nodeOrOptions == null) return\n\n if (isElement(nodeOrOptions)) {\n return this.registerNode(nodeOrOptions)\n }\n\n return (node: T | null) => {\n this.registerNode(node, nodeOrOptions)\n }\n }\n\n unregister = (node: T) => {\n this.descendants.delete(node)\n const sorted = sortNodes(Array.from(this.descendants.keys()))\n this.assignIndex(sorted)\n }\n\n destroy = () => {\n this.descendants.clear()\n }\n\n private assignIndex = (descendants: Node[]) => {\n this.descendants.forEach((descendant) => {\n const index = descendants.indexOf(descendant.node)\n descendant.index = index\n descendant.node.dataset[\"index\"] = descendant.index.toString()\n })\n }\n\n count = () => this.descendants.size\n\n enabledCount = () => this.enabledValues().length\n\n values = () => {\n const values = Array.from(this.descendants.values())\n return values.sort((a, b) => a.index - b.index)\n }\n\n enabledValues = () => {\n return this.values().filter((descendant) => !descendant.disabled)\n }\n\n item = (index: number) => {\n if (this.count() === 0) return undefined\n return this.values()[index]\n }\n\n enabledItem = (index: number) => {\n if (this.enabledCount() === 0) return undefined\n return this.enabledValues()[index]\n }\n\n first = () => this.item(0)\n\n firstEnabled = () => this.enabledItem(0)\n\n last = () => this.item(this.descendants.size - 1)\n\n lastEnabled = () => {\n const lastIndex = this.enabledValues().length - 1\n return this.enabledItem(lastIndex)\n }\n\n indexOf = (node: T | null) => {\n if (!node) return -1\n return this.descendants.get(node)?.index ?? -1\n }\n\n enabledIndexOf = (node: T | null) => {\n if (node == null) return -1\n return this.enabledValues().findIndex((i) => i.node.isSameNode(node))\n }\n\n next = (index: number, loop = true) => {\n const next = getNextIndex(index, this.count(), loop)\n return this.item(next)\n }\n\n nextEnabled = (index: number, loop = true) => {\n const item = this.item(index)\n if (!item) return\n const enabledIndex = this.enabledIndexOf(item.node)\n const nextEnabledIndex = getNextIndex(\n enabledIndex,\n this.enabledCount(),\n loop,\n )\n return this.enabledItem(nextEnabledIndex)\n }\n\n prev = (index: number, loop = true) => {\n const prev = getPrevIndex(index, this.count() - 1, loop)\n return this.item(prev)\n }\n\n prevEnabled = (index: number, loop = true) => {\n const item = this.item(index)\n if (!item) return\n const enabledIndex = this.enabledIndexOf(item.node)\n const prevEnabledIndex = getPrevIndex(\n enabledIndex,\n this.enabledCount() - 1,\n loop,\n )\n return this.enabledItem(prevEnabledIndex)\n }\n\n private registerNode = (node: T | null, options?: DescendantOptions) => {\n if (!node || this.descendants.has(node)) return\n\n const keys = Array.from(this.descendants.keys()).concat(node)\n const sorted = sortNodes(keys)\n\n if (options?.disabled) {\n options.disabled = !!options.disabled\n }\n\n const descendant = { node, index: -1, ...options }\n\n this.descendants.set(node, descendant as Descendant)\n\n this.assignIndex(sorted)\n }\n}\n", "import { useMemo } from \"react\"\n\nexport type ReactRef = React.RefCallback | React.MutableRefObject\n\nexport function assignRef(\n ref: ReactRef | null | undefined,\n value: T,\n) {\n if (ref == null) return\n\n if (typeof ref === \"function\") {\n ref(value)\n return\n }\n\n try {\n ref.current = value\n } catch (error) {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nexport function mergeRefs(...refs: (ReactRef | null | undefined)[]) {\n return (node: T | null) => {\n refs.forEach((ref) => {\n assignRef(ref, node)\n })\n }\n}\n\nexport function useMergeRefs(...refs: (ReactRef | null | undefined)[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(...refs), refs)\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { useRef, useState } from \"react\"\nimport { DescendantsManager, DescendantOptions } from \"./descendant\"\nimport { useSafeLayoutEffect, cast } from \"./utils\"\n\n/**\n * @internal\n * React hook that initializes the DescendantsManager\n */\nfunction useDescendants<\n T extends HTMLElement = HTMLElement,\n K extends Record = {},\n>() {\n const descendants = useRef(new DescendantsManager())\n useSafeLayoutEffect(() => {\n return () => descendants.current.destroy()\n })\n return descendants.current\n}\n\nexport interface UseDescendantsReturn\n extends ReturnType {}\n\n/* -------------------------------------------------------------------------------------------------\n * Descendants context to be used in component-land.\n - Mount the `DescendantsContextProvider` at the root of the component\n - Call `useDescendantsContext` anywhere you need access to the descendants information\n\n NB: I recommend using `createDescendantContext` below\n * -----------------------------------------------------------------------------------------------*/\n\nconst [DescendantsContextProvider, useDescendantsContext] =\n createContext({\n name: \"DescendantsProvider\",\n errorMessage:\n \"useDescendantsContext must be used within DescendantsProvider\",\n })\n\n/**\n * @internal\n * This hook provides information a descendant such as:\n * - Its index compared to other descendants\n * - ref callback to register the descendant\n * - Its enabled index compared to other enabled descendants\n */\nfunction useDescendant<\n T extends HTMLElement = HTMLElement,\n K extends Record = {},\n>(options?: DescendantOptions) {\n const descendants = useDescendantsContext()\n const [index, setIndex] = useState(-1)\n const ref = useRef(null)\n\n useSafeLayoutEffect(() => {\n return () => {\n if (!ref.current) return\n descendants.unregister(ref.current)\n }\n }, [])\n\n useSafeLayoutEffect(() => {\n if (!ref.current) return\n const dataIndex = Number(ref.current.dataset[\"index\"])\n if (index != dataIndex && !Number.isNaN(dataIndex)) {\n setIndex(dataIndex)\n }\n })\n\n const refCallback = options\n ? cast>(descendants.register(options))\n : cast>(descendants.register)\n\n return {\n descendants,\n index,\n enabledIndex: descendants.enabledIndexOf(ref.current),\n register: mergeRefs(refCallback, ref),\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Function that provides strongly typed versions of the context provider and hooks above.\n To be used in component-land\n * -----------------------------------------------------------------------------------------------*/\n\nexport function createDescendantContext<\n T extends HTMLElement = HTMLElement,\n K extends Record = {},\n>() {\n type ContextProviderType = React.Provider>\n const ContextProvider = cast(DescendantsContextProvider)\n\n const _useDescendantsContext = () =>\n cast>(useDescendantsContext())\n\n const _useDescendant = (options?: DescendantOptions) =>\n useDescendant(options)\n\n const _useDescendants = () => useDescendants()\n\n return [\n // context provider\n ContextProvider,\n // call this when you need to read from context\n _useDescendantsContext,\n // descendants state information, to be called and passed to `ContextProvider`\n _useDescendants,\n // descendant index information\n _useDescendant,\n ] as const\n}\n", "import { createDescendantContext } from \"@chakra-ui/descendant\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport { SystemStyleObject } from \"@chakra-ui/system\"\nimport { UseAccordionItemReturn } from \"./use-accordion\"\n\nexport const [AccordionStylesProvider, useAccordionStyles] = createContext<\n Record\n>({\n name: \"AccordionStylesContext\",\n hookName: \"useAccordionStyles\",\n providerName: \"\",\n})\n\ntype AccordionItemContext = Omit\n\nexport const [AccordionItemProvider, useAccordionItemContext] =\n createContext({\n name: \"AccordionItemContext\",\n hookName: \"useAccordionItemContext\",\n providerName: \"\",\n })\n\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nexport const [\n AccordionDescendantsProvider,\n useAccordionDescendantsContext,\n useAccordionDescendants,\n useAccordionDescendant,\n] = createDescendantContext()\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemStyleObject,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport {\n useAccordionItemContext,\n useAccordionStyles,\n} from \"./accordion-context\"\n\nexport interface AccordionButtonProps extends HTMLChakraProps<\"button\"> {}\n\n/**\n * AccordionButton is used expands and collapses an accordion item.\n * It must be a child of `AccordionItem`.\n *\n * Note 🚨: Each accordion button must be wrapped in a heading tag,\n * that is appropriate for the information architecture of the page.\n */\n\nexport const AccordionButton = forwardRef(\n function AccordionButton(props, ref) {\n const { getButtonProps } = useAccordionItemContext()\n const buttonProps = getButtonProps(props, ref)\n\n const styles = useAccordionStyles()\n const buttonStyles: SystemStyleObject = {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n outline: 0,\n ...styles.button,\n }\n\n return (\n \n )\n },\n)\n\nAccordionButton.displayName = \"AccordionButton\"\n", "import { useMemo, useState } from \"react\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\n\n/**\n * Given a prop value and state value, the useControllableProp hook is used to determine whether a component is controlled or uncontrolled, and also returns the computed value.\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-controllable#usecontrollableprop\n */\nexport function useControllableProp(prop: T | undefined, state: T) {\n const controlled = typeof prop !== \"undefined\"\n const value = controlled ? prop : state\n return useMemo<[boolean, T]>(() => [controlled, value], [controlled, value])\n}\n\nexport interface UseControllableStateProps {\n value?: T\n defaultValue?: T | (() => T)\n onChange?: (value: T) => void\n shouldUpdate?: (prev: T, next: T) => boolean\n}\n\n/**\n * The `useControllableState` hook returns the state and function that updates the state, just like React.useState does.\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-controllable#usecontrollablestate\n */\nexport function useControllableState(props: UseControllableStateProps) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n shouldUpdate = (prev, next) => prev !== next,\n } = props\n\n const onChangeProp = useCallbackRef(onChange)\n const shouldUpdateProp = useCallbackRef(shouldUpdate)\n\n const [uncontrolledState, setUncontrolledState] = useState(defaultValue as T)\n const controlled = valueProp !== undefined\n const value = controlled ? valueProp : uncontrolledState\n\n const setValue = useCallbackRef(\n (next: React.SetStateAction) => {\n const setter = next as (prevState?: T) => T\n const nextValue = typeof next === \"function\" ? setter(value) : next\n\n if (!shouldUpdateProp(value, nextValue)) {\n return\n }\n\n if (!controlled) {\n setUncontrolledState(nextValue)\n }\n\n onChangeProp(nextValue)\n },\n [controlled, onChangeProp, value, shouldUpdateProp],\n )\n\n return [value, setValue] as [T, React.Dispatch>]\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { useControllableState } from \"@chakra-ui/react-use-controllable-state\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { callAllHandlers, warn } from \"@chakra-ui/shared-utils\"\n\nimport { useCallback, useEffect, useId, useRef, useState } from \"react\"\nimport {\n useAccordionDescendant,\n useAccordionDescendants,\n} from \"./accordion-context\"\n\n/* -------------------------------------------------------------------------------------------------\n * useAccordion - The root react hook that manages all accordion items\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @deprecated - This will be removed in future versions.\n * Please use `number | number[]` instead.\n */\nexport type ExpandedIndex = number | number[]\n\nexport interface UseAccordionProps {\n /**\n * If `true`, multiple accordion items can be expanded at once.\n *\n * @default false\n */\n allowMultiple?: boolean\n /**\n * If `true`, any expanded accordion item can be collapsed again.\n *\n * @default false\n */\n allowToggle?: boolean\n /**\n * The index(es) of the expanded accordion item\n */\n index?: ExpandedIndex\n /**\n * The initial index(es) of the expanded accordion item\n */\n defaultIndex?: ExpandedIndex\n /**\n * The callback invoked when accordion items are expanded or collapsed.\n */\n onChange?(expandedIndex: ExpandedIndex): void\n}\n\n/**\n * useAccordion hook provides all the state and focus management logic\n * for accordion items.\n *\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/accordion/\n */\nexport function useAccordion(props: UseAccordionProps) {\n const {\n onChange,\n defaultIndex,\n index: indexProp,\n allowMultiple,\n allowToggle,\n ...htmlProps\n } = props\n\n // validate the props and `warn` if used incorrectly\n allowMultipleWarning(props)\n allowMultipleAndAllowToggleWarning(props)\n\n /**\n * Think of this as the register to each accordion item.\n * We used to manage focus between accordion item buttons.\n *\n * Every accordion item, registers their button refs in this context\n */\n const descendants = useAccordionDescendants()\n\n /**\n * This state is used to track the index focused accordion\n * button when click on the button, tab on the button, or\n * use the down/up arrow to navigate.\n */\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n /**\n * Reset focused index when accordion unmounts\n * or descendants change\n */\n useEffect(() => {\n return () => {\n setFocusedIndex(-1)\n }\n }, [])\n\n /**\n * Hook that manages the controlled and un-controlled state\n * for the accordion.\n */\n const [index, setIndex] = useControllableState({\n value: indexProp,\n defaultValue() {\n if (allowMultiple) return defaultIndex ?? []\n return defaultIndex ?? -1\n },\n onChange,\n })\n\n /**\n * Gets the `isOpen` and `onChange` props for a child accordion item based on\n * the child's index.\n *\n * @param idx {number} The index of the child accordion item\n */\n const getAccordionItemProps = (idx: number | null) => {\n let isOpen = false\n\n if (idx !== null) {\n isOpen = Array.isArray(index) ? index.includes(idx) : index === idx\n }\n\n const onChange = (isOpen: boolean) => {\n if (idx === null) return\n\n if (allowMultiple && Array.isArray(index)) {\n //\n const nextState = isOpen\n ? index.concat(idx)\n : index.filter((i) => i !== idx)\n\n setIndex(nextState)\n //\n } else if (isOpen) {\n setIndex(idx)\n } else if (allowToggle) {\n setIndex(-1)\n }\n }\n\n return { isOpen, onChange }\n }\n\n return {\n index,\n setIndex,\n htmlProps,\n getAccordionItemProps,\n focusedIndex,\n setFocusedIndex,\n descendants,\n }\n}\n\nexport type UseAccordionReturn = ReturnType\n\n/* -------------------------------------------------------------------------------------------------\n * Create context for the root accordion logic\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AccordionContext\n extends Omit {\n reduceMotion: boolean\n}\n\nexport const [AccordionProvider, useAccordionContext] =\n createContext({\n name: \"AccordionContext\",\n hookName: \"useAccordionContext\",\n providerName: \"Accordion\",\n })\n\n/* -------------------------------------------------------------------------------------------------\n * Hook for a single accordion item\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface UseAccordionItemProps {\n /**\n * If `true`, the accordion item will be disabled.\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the accordion item will be focusable.\n *\n * @default false\n */\n isFocusable?: boolean\n /**\n * A unique id for the accordion item.\n */\n id?: string\n}\n\n/**\n * useAccordionItem\n *\n * React hook that provides the open/close functionality\n * for an accordion item and its children\n */\nexport function useAccordionItem(props: UseAccordionItemProps) {\n const { isDisabled, isFocusable, id, ...htmlProps } = props\n const { getAccordionItemProps, setFocusedIndex } = useAccordionContext()\n\n const buttonRef = useRef(null)\n\n /**\n * Generate unique ids for all accordion item components (button and panel)\n */\n const reactId = useId()\n const uid = id ?? reactId\n\n const buttonId = `accordion-button-${uid}`\n const panelId = `accordion-panel-${uid}`\n\n focusableNotDisabledWarning(props)\n\n /**\n * Think of this as a way to register this accordion item\n * with its parent `useAccordion`\n */\n const { register, index, descendants } = useAccordionDescendant({\n disabled: isDisabled && !isFocusable,\n })\n\n const { isOpen, onChange } = getAccordionItemProps(\n index === -1 ? null : index,\n )\n\n warnIfOpenAndDisabled({ isOpen, isDisabled })\n\n const onOpen = () => {\n onChange?.(true)\n }\n\n const onClose = () => {\n onChange?.(false)\n }\n\n /**\n * Toggle the visibility of the accordion item\n */\n const onClick = useCallback(() => {\n onChange?.(!isOpen)\n setFocusedIndex(index)\n }, [index, setFocusedIndex, isOpen, onChange])\n\n /**\n * Manage keyboard navigation between accordion items.\n */\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const keyMap: Record = {\n ArrowDown: () => {\n const next = descendants.nextEnabled(index)\n next?.node.focus()\n },\n ArrowUp: () => {\n const prev = descendants.prevEnabled(index)\n prev?.node.focus()\n },\n Home: () => {\n const first = descendants.firstEnabled()\n first?.node.focus()\n },\n End: () => {\n const last = descendants.lastEnabled()\n last?.node.focus()\n },\n }\n\n const action = keyMap[event.key]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [descendants, index],\n )\n\n /**\n * Since each accordion item's button still remains tabbable, let's\n * update the focusedIndex when it receives focus\n */\n const onFocus = useCallback(() => {\n setFocusedIndex(index)\n }, [setFocusedIndex, index])\n\n const getButtonProps = useCallback(\n function getButtonProps(\n props: Omit, \"color\"> = {},\n ref: React.Ref | null = null,\n ): React.ComponentProps<\"button\"> {\n return {\n ...props,\n type: \"button\",\n ref: mergeRefs(register, buttonRef, ref),\n id: buttonId,\n disabled: !!isDisabled,\n \"aria-expanded\": !!isOpen,\n \"aria-controls\": panelId,\n onClick: callAllHandlers(props.onClick, onClick),\n onFocus: callAllHandlers(props.onFocus, onFocus),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n }\n },\n [\n buttonId,\n isDisabled,\n isOpen,\n onClick,\n onFocus,\n onKeyDown,\n panelId,\n register,\n ],\n )\n\n const getPanelProps = useCallback(\n function getPanelProps(\n props: Omit, \"color\"> = {},\n ref: React.Ref | null = null,\n ): React.HTMLAttributes & React.RefAttributes {\n return {\n ...props,\n ref,\n role: \"region\",\n id: panelId,\n \"aria-labelledby\": buttonId,\n hidden: !isOpen,\n }\n },\n [buttonId, isOpen, panelId],\n )\n\n return {\n isOpen,\n isDisabled,\n isFocusable,\n onOpen,\n onClose,\n getButtonProps,\n getPanelProps,\n htmlProps,\n }\n}\n\nexport type UseAccordionItemReturn = ReturnType\n\n/* -------------------------------------------------------------------------------------------------\n * Validate accordion and accordion item props, and emit warnings.\n * -----------------------------------------------------------------------------------------------*/\n\nfunction allowMultipleWarning(props: UseAccordionProps) {\n const index = props.index || props.defaultIndex\n const condition =\n index != null && !Array.isArray(index) && props.allowMultiple\n\n warn({\n condition: !!condition,\n message: `If 'allowMultiple' is passed, then 'index' or 'defaultIndex' must be an array. You passed: ${typeof index},`,\n })\n}\n\nfunction allowMultipleAndAllowToggleWarning(props: UseAccordionProps) {\n warn({\n condition: !!(props.allowMultiple && props.allowToggle),\n message: `If 'allowMultiple' is passed, 'allowToggle' will be ignored. Either remove 'allowToggle' or 'allowMultiple' depending on whether you want multiple accordions visible or not`,\n })\n}\n\nfunction focusableNotDisabledWarning(props: UseAccordionItemProps) {\n warn({\n condition: !!(props.isFocusable && !props.isDisabled),\n message: `Using only 'isFocusable', this prop is reserved for situations where you pass 'isDisabled' but you still want the element to receive focus (A11y). Either remove it or pass 'isDisabled' as well.\n `,\n })\n}\n\nfunction warnIfOpenAndDisabled(props: {\n isOpen: boolean\n isDisabled?: boolean\n}) {\n warn({\n condition: props.isOpen && !!props.isDisabled,\n message: \"Cannot open a disabled accordion item\",\n })\n}\n", "import { Icon } from \"@chakra-ui/icon\"\nimport { PropsOf, SystemStyleObject } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport {\n useAccordionItemContext,\n useAccordionStyles,\n} from \"./accordion-context\"\nimport { useAccordionContext } from \"./use-accordion\"\n\nexport type AccordionIconProps = PropsOf\n\n/**\n * AccordionIcon that gives a visual cue of the open/close state of the accordion item.\n * It rotates `180deg` based on the open/close state.\n */\n\nexport function AccordionIcon(props: AccordionIconProps) {\n const { isOpen, isDisabled } = useAccordionItemContext()\n const { reduceMotion } = useAccordionContext()\n\n const _className = cx(\"chakra-accordion__icon\", props.className)\n const styles = useAccordionStyles()\n\n const iconStyles: SystemStyleObject = {\n opacity: isDisabled ? 0.4 : 1,\n transform: isOpen ? \"rotate(-180deg)\" : undefined,\n transition: reduceMotion ? undefined : \"transform 0.2s\",\n transformOrigin: \"center\",\n ...styles.icon,\n }\n\n return (\n \n \n \n )\n}\n\nAccordionIcon.displayName = \"AccordionIcon\"\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemStyleObject,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useMemo } from \"react\"\nimport { AccordionItemProvider, useAccordionStyles } from \"./accordion-context\"\nimport { useAccordionItem, UseAccordionItemProps } from \"./use-accordion\"\n\nexport interface AccordionItemProps\n extends Omit<\n HTMLChakraProps<\"div\">,\n keyof UseAccordionItemProps | \"children\"\n >,\n UseAccordionItemProps {\n children?:\n | React.ReactNode\n | ((props: { isExpanded: boolean; isDisabled: boolean }) => React.ReactNode)\n}\n/**\n * AccordionItem is a single accordion that provides the open-close\n * behavior when the accordion button is clicked.\n *\n * It also provides context for the accordion button and panel.\n */\n\nexport const AccordionItem = forwardRef(\n function AccordionItem(props, ref) {\n const { children, className } = props\n const { htmlProps, ...context } = useAccordionItem(props)\n\n const styles = useAccordionStyles()\n const containerStyles: SystemStyleObject = {\n ...styles.container,\n overflowAnchor: \"none\",\n }\n\n const ctx = useMemo(() => context, [context])\n\n return (\n \n \n {typeof children === \"function\"\n ? children({\n isExpanded: !!context.isOpen,\n isDisabled: !!context.isDisabled,\n })\n : children}\n \n \n )\n },\n)\n\nAccordionItem.displayName = \"AccordionItem\"\n", "import type { Target, TargetAndTransition, Transition } from \"framer-motion\"\n\nexport type TransitionProperties = {\n /**\n * Custom `transition` definition for `enter` and `exit`\n */\n transition?: TransitionConfig\n /**\n * Custom `transitionEnd` definition for `enter` and `exit`\n */\n transitionEnd?: TransitionEndConfig\n /**\n * Custom `delay` definition for `enter` and `exit`\n */\n delay?: number | DelayConfig\n}\n\ntype TargetResolver

= (\n props: P & TransitionProperties,\n) => TargetAndTransition\n\ntype Variant

= TargetAndTransition | TargetResolver

\n\nexport type Variants

= {\n enter: Variant

\n exit: Variant

\n initial?: Variant

\n}\n\ntype WithMotionState

= Partial>\n\nexport type TransitionConfig = WithMotionState\n\nexport type TransitionEndConfig = WithMotionState\n\nexport type DelayConfig = WithMotionState\n\nexport const TRANSITION_EASINGS = {\n ease: [0.25, 0.1, 0.25, 1],\n easeIn: [0.4, 0, 1, 1],\n easeOut: [0, 0, 0.2, 1],\n easeInOut: [0.4, 0, 0.2, 1],\n} as const\n\nexport const TRANSITION_VARIANTS = {\n scale: {\n enter: { scale: 1 },\n exit: { scale: 0.95 },\n },\n fade: {\n enter: { opacity: 1 },\n exit: { opacity: 0 },\n },\n pushLeft: {\n enter: { x: \"100%\" },\n exit: { x: \"-30%\" },\n },\n pushRight: {\n enter: { x: \"-100%\" },\n exit: { x: \"30%\" },\n },\n pushUp: {\n enter: { y: \"100%\" },\n exit: { y: \"-30%\" },\n },\n pushDown: {\n enter: { y: \"-100%\" },\n exit: { y: \"30%\" },\n },\n slideLeft: {\n position: { left: 0, top: 0, bottom: 0, width: \"100%\" },\n enter: { x: 0, y: 0 },\n exit: { x: \"-100%\", y: 0 },\n },\n slideRight: {\n position: { right: 0, top: 0, bottom: 0, width: \"100%\" },\n enter: { x: 0, y: 0 },\n exit: { x: \"100%\", y: 0 },\n },\n slideUp: {\n position: { top: 0, left: 0, right: 0, maxWidth: \"100vw\" },\n enter: { x: 0, y: 0 },\n exit: { x: 0, y: \"-100%\" },\n },\n slideDown: {\n position: { bottom: 0, left: 0, right: 0, maxWidth: \"100vw\" },\n enter: { x: 0, y: 0 },\n exit: { x: 0, y: \"100%\" },\n },\n}\n\nexport type SlideDirection = \"top\" | \"left\" | \"bottom\" | \"right\"\n\nexport function getSlideTransition(options?: { direction?: SlideDirection }) {\n const side = options?.direction ?? \"right\"\n switch (side) {\n case \"right\":\n return TRANSITION_VARIANTS.slideRight\n case \"left\":\n return TRANSITION_VARIANTS.slideLeft\n case \"bottom\":\n return TRANSITION_VARIANTS.slideDown\n case \"top\":\n return TRANSITION_VARIANTS.slideUp\n default:\n return TRANSITION_VARIANTS.slideRight\n }\n}\n\nexport const TRANSITION_DEFAULTS = {\n enter: {\n duration: 0.2,\n ease: TRANSITION_EASINGS.easeOut,\n },\n exit: {\n duration: 0.1,\n ease: TRANSITION_EASINGS.easeIn,\n },\n} as const\n\nexport type WithTransitionConfig

= Omit &\n TransitionProperties & {\n /**\n * If `true`, the element will unmount when `in={false}` and animation is done\n */\n unmountOnExit?: boolean\n /**\n * Show the component; triggers when enter or exit states\n */\n in?: boolean\n }\n\nexport const withDelay = {\n enter: (\n transition: Transition,\n delay?: number | DelayConfig,\n ): Transition & { delay: number | undefined } => ({\n ...transition,\n delay: typeof delay === \"number\" ? delay : delay?.[\"enter\"],\n }),\n exit: (\n transition: Transition,\n delay?: number | DelayConfig,\n ): Transition & { delay: number | undefined } => ({\n ...transition,\n delay: typeof delay === \"number\" ? delay : delay?.[\"exit\"],\n }),\n}\n", "import { cx, warn } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n Variants as _Variants,\n} from \"framer-motion\"\nimport { forwardRef, useEffect, useState } from \"react\"\nimport {\n TRANSITION_EASINGS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\nconst isNumeric = (value?: string | number) =>\n value != null && parseInt(value.toString(), 10) > 0\n\nexport interface CollapseOptions {\n /**\n * If `true`, the opacity of the content will be animated\n * @default true\n */\n animateOpacity?: boolean\n /**\n * The height you want the content in its collapsed state.\n * @default 0\n */\n startingHeight?: number | string\n /**\n * The height you want the content in its expanded state.\n * @default \"auto\"\n */\n endingHeight?: number | string\n}\n\nconst defaultTransitions = {\n exit: {\n height: { duration: 0.2, ease: TRANSITION_EASINGS.ease },\n opacity: { duration: 0.3, ease: TRANSITION_EASINGS.ease },\n },\n enter: {\n height: { duration: 0.3, ease: TRANSITION_EASINGS.ease },\n opacity: { duration: 0.4, ease: TRANSITION_EASINGS.ease },\n },\n}\n\nconst variants: Variants = {\n exit: ({\n animateOpacity,\n startingHeight,\n transition,\n transitionEnd,\n delay,\n }) => ({\n ...(animateOpacity && { opacity: isNumeric(startingHeight) ? 1 : 0 }),\n height: startingHeight,\n transitionEnd: transitionEnd?.exit,\n transition:\n transition?.exit ?? withDelay.exit(defaultTransitions.exit, delay),\n }),\n enter: ({\n animateOpacity,\n endingHeight,\n transition,\n transitionEnd,\n delay,\n }) => ({\n ...(animateOpacity && { opacity: 1 }),\n height: endingHeight,\n transitionEnd: transitionEnd?.enter,\n transition:\n transition?.enter ?? withDelay.enter(defaultTransitions.enter, delay),\n }),\n}\n\nexport type ICollapse = CollapseProps\n\nexport interface CollapseProps\n extends WithTransitionConfig>,\n CollapseOptions {}\n\nexport const Collapse = forwardRef(\n (props, ref) => {\n const {\n in: isOpen,\n unmountOnExit,\n animateOpacity = true,\n startingHeight = 0,\n endingHeight = \"auto\",\n style,\n className,\n transition,\n transitionEnd,\n ...rest\n } = props\n\n const [mounted, setMounted] = useState(false)\n useEffect(() => {\n const timeout = setTimeout(() => {\n setMounted(true)\n })\n return () => clearTimeout(timeout)\n }, [])\n\n /**\n * Warn 🚨: `startingHeight` and `unmountOnExit` are mutually exclusive\n *\n * If you specify a starting height, the collapsed needs to be mounted\n * for the height to take effect.\n */\n warn({\n condition: Number(startingHeight) > 0 && !!unmountOnExit,\n message: `startingHeight and unmountOnExit are mutually exclusive. You can't use them together`,\n })\n\n const hasStartingHeight = parseFloat(startingHeight.toString()) > 0\n\n const custom = {\n startingHeight,\n endingHeight,\n animateOpacity,\n transition: !mounted ? { enter: { duration: 0 } } : transition,\n transitionEnd: {\n enter: transitionEnd?.enter,\n exit: unmountOnExit\n ? transitionEnd?.exit\n : {\n ...transitionEnd?.exit,\n display: hasStartingHeight ? \"block\" : \"none\",\n },\n },\n }\n\n const show = unmountOnExit ? isOpen : true\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n return (\n \n {show && (\n \n )}\n \n )\n },\n)\n\nCollapse.displayName = \"Collapse\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n Variants as _Variants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n TRANSITION_DEFAULTS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\nexport interface FadeProps\n extends WithTransitionConfig> {}\n\nconst variants: Variants = {\n enter: ({ transition, transitionEnd, delay } = {}) => ({\n opacity: 1,\n transition:\n transition?.enter ?? withDelay.enter(TRANSITION_DEFAULTS.enter, delay),\n transitionEnd: transitionEnd?.enter,\n }),\n exit: ({ transition, transitionEnd, delay } = {}) => ({\n opacity: 0,\n transition:\n transition?.exit ?? withDelay.exit(TRANSITION_DEFAULTS.exit, delay),\n transitionEnd: transitionEnd?.exit,\n }),\n}\n\nexport const fadeConfig: HTMLMotionProps<\"div\"> = {\n initial: \"exit\",\n animate: \"enter\",\n exit: \"exit\",\n variants: variants as _Variants,\n}\n\nexport const Fade = forwardRef(function Fade(\n props,\n ref,\n) {\n const {\n unmountOnExit,\n in: isOpen,\n className,\n transition,\n transitionEnd,\n delay,\n ...rest\n } = props\n\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n const show = unmountOnExit ? isOpen && unmountOnExit : true\n\n const custom = { transition, transitionEnd, delay }\n\n return (\n \n {show && (\n \n )}\n \n )\n})\n\nFade.displayName = \"Fade\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n Variants as _Variants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n TRANSITION_DEFAULTS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\ninterface ScaleFadeOptions {\n /**\n * The initial scale of the element\n * @default 0.95\n */\n initialScale?: number\n /**\n * If `true`, the element will transition back to exit state\n * @default true\n */\n reverse?: boolean\n}\n\nconst variants: Variants = {\n exit: ({ reverse, initialScale, transition, transitionEnd, delay }) => ({\n opacity: 0,\n ...(reverse\n ? { scale: initialScale, transitionEnd: transitionEnd?.exit }\n : { transitionEnd: { scale: initialScale, ...transitionEnd?.exit } }),\n transition:\n transition?.exit ?? withDelay.exit(TRANSITION_DEFAULTS.exit, delay),\n }),\n enter: ({ transitionEnd, transition, delay }) => ({\n opacity: 1,\n scale: 1,\n transition:\n transition?.enter ?? withDelay.enter(TRANSITION_DEFAULTS.enter, delay),\n transitionEnd: transitionEnd?.enter,\n }),\n}\n\nexport const scaleFadeConfig: HTMLMotionProps<\"div\"> = {\n initial: \"exit\",\n animate: \"enter\",\n exit: \"exit\",\n variants: variants as _Variants,\n}\n\nexport interface ScaleFadeProps\n extends ScaleFadeOptions,\n WithTransitionConfig> {}\n\nexport const ScaleFade = forwardRef(\n function ScaleFade(props, ref) {\n const {\n unmountOnExit,\n in: isOpen,\n reverse = true,\n initialScale = 0.95,\n className,\n transition,\n transitionEnd,\n delay,\n ...rest\n } = props\n\n const show = unmountOnExit ? isOpen && unmountOnExit : true\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n const custom = { initialScale, reverse, transition, transitionEnd, delay }\n\n return (\n \n {show && (\n \n )}\n \n )\n },\n)\n\nScaleFade.displayName = \"ScaleFade\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n Variants as _Variants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n TRANSITION_DEFAULTS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\ninterface SlideFadeOptions {\n /**\n * The offset on the horizontal or `x` axis\n * @default 0\n */\n offsetX?: string | number\n /**\n * The offset on the vertical or `y` axis\n * @default 8\n */\n offsetY?: string | number\n /**\n * If `true`, the element will be transitioned back to the offset when it leaves.\n * Otherwise, it'll only fade out\n * @default true\n */\n reverse?: boolean\n}\n\nconst variants: Variants = {\n initial: ({ offsetX, offsetY, transition, transitionEnd, delay }) => ({\n opacity: 0,\n x: offsetX,\n y: offsetY,\n transition:\n transition?.exit ?? withDelay.exit(TRANSITION_DEFAULTS.exit, delay),\n transitionEnd: transitionEnd?.exit,\n }),\n enter: ({ transition, transitionEnd, delay }) => ({\n opacity: 1,\n x: 0,\n y: 0,\n transition:\n transition?.enter ?? withDelay.enter(TRANSITION_DEFAULTS.enter, delay),\n transitionEnd: transitionEnd?.enter,\n }),\n exit: ({ offsetY, offsetX, transition, transitionEnd, reverse, delay }) => {\n const offset = { x: offsetX, y: offsetY }\n return {\n opacity: 0,\n transition:\n transition?.exit ?? withDelay.exit(TRANSITION_DEFAULTS.exit, delay),\n ...(reverse\n ? { ...offset, transitionEnd: transitionEnd?.exit }\n : { transitionEnd: { ...offset, ...transitionEnd?.exit } }),\n }\n },\n}\n\nexport const slideFadeConfig: HTMLMotionProps<\"div\"> = {\n initial: \"initial\",\n animate: \"enter\",\n exit: \"exit\",\n variants: variants as _Variants,\n}\n\nexport interface SlideFadeProps\n extends SlideFadeOptions,\n WithTransitionConfig> {}\n\nexport const SlideFade = forwardRef(\n function SlideFade(props, ref) {\n const {\n unmountOnExit,\n in: isOpen,\n reverse = true,\n className,\n offsetX = 0,\n offsetY = 8,\n transition,\n transitionEnd,\n delay,\n ...rest\n } = props\n\n const show = unmountOnExit ? isOpen && unmountOnExit : true\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n const custom = {\n offsetX,\n offsetY,\n reverse,\n transition,\n transitionEnd,\n delay,\n }\n\n return (\n \n {show && (\n \n )}\n \n )\n },\n)\n\nSlideFade.displayName = \"SlideFade\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n MotionStyle,\n Variants as TVariants,\n} from \"framer-motion\"\nimport { forwardRef } from \"react\"\nimport {\n SlideDirection,\n getSlideTransition,\n TRANSITION_EASINGS,\n Variants,\n withDelay,\n WithTransitionConfig,\n} from \"./transition-utils\"\n\nexport type { SlideDirection }\n\nconst defaultTransition = {\n exit: {\n duration: 0.15,\n ease: TRANSITION_EASINGS.easeInOut,\n },\n enter: {\n type: \"spring\",\n damping: 25,\n stiffness: 180,\n },\n}\n\nconst variants: Variants = {\n exit: ({ direction, transition, transitionEnd, delay }) => {\n const { exit: exitStyles } = getSlideTransition({ direction })\n return {\n ...exitStyles,\n transition:\n transition?.exit ?? withDelay.exit(defaultTransition.exit, delay),\n transitionEnd: transitionEnd?.exit,\n }\n },\n enter: ({ direction, transitionEnd, transition, delay }) => {\n const { enter: enterStyles } = getSlideTransition({ direction })\n return {\n ...enterStyles,\n transition:\n transition?.enter ?? withDelay.enter(defaultTransition.enter, delay),\n transitionEnd: transitionEnd?.enter,\n }\n },\n}\n\nexport interface SlideOptions {\n /**\n * The direction to slide from\n * @default \"right\"\n */\n direction?: SlideDirection\n}\n\nexport interface SlideProps\n extends WithTransitionConfig>,\n SlideOptions {\n motionProps?: HTMLMotionProps<\"div\">\n}\n\nexport const Slide = forwardRef(function Slide(\n props,\n ref,\n) {\n const {\n direction = \"right\",\n style,\n unmountOnExit,\n in: isOpen,\n className,\n transition,\n transitionEnd,\n delay,\n motionProps,\n ...rest\n } = props\n\n const transitionStyles = getSlideTransition({ direction })\n const computedStyle: MotionStyle = Object.assign(\n { position: \"fixed\" },\n transitionStyles.position,\n style,\n )\n\n const show = unmountOnExit ? isOpen && unmountOnExit : true\n const animate = isOpen || unmountOnExit ? \"enter\" : \"exit\"\n\n const custom = { transitionEnd, transition, direction, delay }\n\n return (\n \n {show && (\n \n )}\n \n )\n})\n\nSlide.displayName = \"Slide\"\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { Collapse, CollapseProps } from \"@chakra-ui/transition\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport {\n useAccordionItemContext,\n useAccordionStyles,\n} from \"./accordion-context\"\nimport { useAccordionContext } from \"./use-accordion\"\n\nexport interface AccordionPanelProps extends HTMLChakraProps<\"div\"> {\n /**\n * The properties passed to the underlying `Collapse` component.\n */\n motionProps?: CollapseProps\n}\n\n/**\n * Accordion panel that holds the content for each accordion.\n * It shows and hides based on the state login from the `AccordionItem`.\n *\n * It uses the `Collapse` component to animate its height.\n */\nexport const AccordionPanel = forwardRef(\n function AccordionPanel(props, ref) {\n const { className, motionProps, ...rest } = props\n\n const { reduceMotion } = useAccordionContext()\n const { getPanelProps, isOpen } = useAccordionItemContext()\n\n // remove `hidden` prop, 'coz we're using height animation\n const panelProps = getPanelProps(rest, ref)\n\n const _className = cx(\"chakra-accordion__panel\", className)\n const styles = useAccordionStyles()\n\n if (!reduceMotion) {\n delete panelProps.hidden\n }\n\n const child = (\n \n )\n\n if (!reduceMotion) {\n return (\n \n {child}\n \n )\n }\n\n return child\n },\n)\n\nAccordionPanel.displayName = \"AccordionPanel\"\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useMemo } from \"react\"\nimport {\n AccordionDescendantsProvider,\n AccordionStylesProvider,\n} from \"./accordion-context\"\nimport {\n AccordionProvider,\n useAccordion,\n UseAccordionProps,\n} from \"./use-accordion\"\n\nexport interface AccordionProps\n extends UseAccordionProps,\n Omit, keyof UseAccordionProps>,\n ThemingProps<\"Accordion\"> {\n /**\n * If `true`, height animation and transitions will be disabled.\n *\n * @default false\n */\n reduceMotion?: boolean\n}\n\n/**\n * The wrapper that provides context and focus management\n * for all accordion items.\n *\n * It wraps all accordion items in a `div` for better grouping.\n * @see Docs https://chakra-ui.com/accordion\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/accordion/\n */\nexport const Accordion = forwardRef(function Accordion(\n { children, reduceMotion, ...props },\n ref,\n) {\n const styles = useMultiStyleConfig(\"Accordion\", props)\n const ownProps = omitThemingProps(props)\n\n const { htmlProps, descendants, ...context } = useAccordion(ownProps)\n\n const ctx = useMemo(\n () => ({ ...context, reduceMotion: !!reduceMotion }),\n [context, reduceMotion],\n )\n\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n})\n\nAccordion.displayName = \"Accordion\"\n", "import { useAccordionItemContext } from \"./accordion-context\"\n\n/**\n * React hook to get the state and actions of an accordion item\n */\nexport function useAccordionItemState() {\n const { isOpen, isDisabled, onClose, onOpen } = useAccordionItemContext()\n return { isOpen, onClose, isDisabled, onOpen }\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { SystemStyleObject } from \"@chakra-ui/system\"\n\nexport const [AvatarStylesProvider, useAvatarStyles] = createContext<\n Record\n>({\n name: `AvatarStylesContext`,\n hookName: `useAvatarStyles`,\n providerName: \"\",\n})\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemStyleObject,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useAvatarStyles } from \"./avatar-context\"\n\ntype BadgePlacement = \"top-start\" | \"top-end\" | \"bottom-start\" | \"bottom-end\"\n\nconst placementMap: Record = {\n \"top-start\": {\n top: \"0\",\n insetStart: \"0\",\n transform: \"translate(-25%, -25%)\",\n },\n \"top-end\": {\n top: \"0\",\n insetEnd: \"0\",\n transform: \"translate(25%, -25%)\",\n },\n \"bottom-start\": {\n bottom: \"0\",\n insetStart: \"0\",\n transform: \"translate(-25%, 25%)\",\n },\n \"bottom-end\": {\n bottom: \"0\",\n insetEnd: \"0\",\n transform: \"translate(25%, 25%)\",\n },\n}\n\nexport interface AvatarBadgeProps extends HTMLChakraProps<\"div\"> {\n placement?: BadgePlacement\n}\n\n/**\n * AvatarBadge used to show extra badge to the top-right\n * or bottom-right corner of an avatar.\n */\nexport const AvatarBadge = forwardRef(\n function AvatarBadge(props, ref) {\n const { placement = \"bottom-end\", className, ...rest } = props\n const styles = useAvatarStyles()\n\n const placementStyles = placementMap[placement]\n\n const badgeStyles: SystemStyleObject = {\n position: \"absolute\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...placementStyles,\n ...styles.badge,\n }\n\n return (\n \n )\n },\n)\n\nAvatarBadge.displayName = \"AvatarBadge\"\n", "import { chakra, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useAvatarStyles } from \"./avatar-context\"\nimport { AvatarOptions } from \"./avatar-types\"\n\nexport function initials(name: string) {\n const names = name.split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\ninterface AvatarNameProps\n extends HTMLChakraProps<\"div\">,\n Pick {}\n/**\n * The avatar name container\n */\n\nexport function AvatarName(props: AvatarNameProps) {\n const { name, getInitials, ...rest } = props\n const styles = useAvatarStyles()\n\n return (\n \n {name ? getInitials?.(name) : null}\n \n )\n}\n\nAvatarName.displayName = \"AvatarName\"\n", "import { chakra, ChakraComponent } from \"@chakra-ui/system\"\n\n/**\n * Fallback avatar react component.\n * This should be a generic svg used to represent an avatar\n */\nexport const GenericAvatarIcon: ChakraComponent<\"svg\"> = (props) => (\n \n \n \n \n)\n", "import { PropsOf, forwardRef } from \"@chakra-ui/system\"\n\nexport interface NativeImageOptions {\n /**\n * The native HTML `width` attribute to the passed to the `img`\n */\n htmlWidth?: string | number\n /**\n * The native HTML `height` attribute to the passed to the `img`\n */\n htmlHeight?: string | number\n}\n\ninterface NativeImageProps extends PropsOf<\"img\">, NativeImageOptions {}\n\nexport const NativeImage = forwardRef(function NativeImage(\n props: NativeImageProps,\n ref: React.Ref,\n) {\n const { htmlWidth, htmlHeight, alt, ...rest } = props\n return (\n {alt}\n )\n})\n\nNativeImage.displayName = \"NativeImage\"\n", "import { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\ntype NativeImageProps = React.ImgHTMLAttributes\n\nexport interface UseImageProps {\n /**\n * The image `src` attribute\n */\n src?: string\n /**\n * The image `srcset` attribute\n */\n srcSet?: string\n /**\n * The image `sizes` attribute\n */\n sizes?: string\n /**\n * A callback for when the image `src` has been loaded\n */\n onLoad?: NativeImageProps[\"onLoad\"]\n /**\n * A callback for when there was an error loading the image `src`\n */\n onError?: NativeImageProps[\"onError\"]\n /**\n * If `true`, opt out of the `fallbackSrc` logic and use as `img`\n *\n * @default false\n */\n ignoreFallback?: boolean\n /**\n * The key used to set the crossOrigin on the HTMLImageElement into which the image will be loaded.\n * This tells the browser to request cross-origin access when trying to download the image data.\n */\n crossOrigin?: NativeImageProps[\"crossOrigin\"]\n loading?: NativeImageProps[\"loading\"]\n}\n\ntype Status = \"loading\" | \"failed\" | \"pending\" | \"loaded\"\n\nexport type FallbackStrategy = \"onError\" | \"beforeLoadOrError\"\n\ntype ImageEvent = React.SyntheticEvent\n\n/**\n * React hook that loads an image in the browser,\n * and lets us know the `status` so we can show image\n * fallback if it is still `pending`\n *\n * @returns the status of the image loading progress\n *\n * @example\n *\n * ```jsx\n * function App(){\n * const status = useImage({ src: \"image.png\" })\n * return status === \"loaded\" ? : \n * }\n * ```\n */\nexport function useImage(props: UseImageProps) {\n const {\n loading,\n src,\n srcSet,\n onLoad,\n onError,\n crossOrigin,\n sizes,\n ignoreFallback,\n } = props\n\n const [status, setStatus] = useState(\"pending\")\n\n useEffect(() => {\n setStatus(src ? \"loading\" : \"pending\")\n }, [src])\n\n const imageRef = useRef()\n\n const load = useCallback(() => {\n if (!src) return\n\n flush()\n\n const img = new Image()\n img.src = src\n if (crossOrigin) img.crossOrigin = crossOrigin\n if (srcSet) img.srcset = srcSet\n if (sizes) img.sizes = sizes\n if (loading) img.loading = loading\n\n img.onload = (event) => {\n flush()\n setStatus(\"loaded\")\n onLoad?.(event as unknown as ImageEvent)\n }\n img.onerror = (error) => {\n flush()\n setStatus(\"failed\")\n onError?.(error as any)\n }\n\n imageRef.current = img\n }, [src, crossOrigin, srcSet, sizes, onLoad, onError, loading])\n\n const flush = () => {\n if (imageRef.current) {\n imageRef.current.onload = null\n imageRef.current.onerror = null\n imageRef.current = null\n }\n }\n\n useSafeLayoutEffect(() => {\n /**\n * If user opts out of the fallback/placeholder\n * logic, let's bail out.\n */\n if (ignoreFallback) return undefined\n\n if (status === \"loading\") {\n load()\n }\n return () => {\n flush()\n }\n }, [status, load, ignoreFallback])\n\n /**\n * If user opts out of the fallback/placeholder\n * logic, let's just return 'loaded'\n */\n return ignoreFallback ? \"loaded\" : status\n}\n\nexport const shouldShowFallbackImage = (\n status: Status,\n fallbackStrategy: FallbackStrategy,\n) =>\n (status !== \"loaded\" && fallbackStrategy === \"beforeLoadOrError\") ||\n (status === \"failed\" && fallbackStrategy === \"onError\")\n\nexport type UseImageReturn = ReturnType\n", "import {\n chakra,\n SystemProps,\n forwardRef,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { omit } from \"@chakra-ui/object-utils\"\nimport {\n FallbackStrategy,\n shouldShowFallbackImage,\n useImage,\n UseImageProps,\n} from \"./use-image\"\nimport { NativeImage, NativeImageOptions } from \"./native-image\"\n\ninterface ImageOptions extends NativeImageOptions {\n /**\n * Fallback image `src` to show if image is loading or image fails.\n *\n * Note 🚨: We recommend you use a local image\n */\n fallbackSrc?: string\n /**\n * Fallback element to show if image is loading or image fails.\n * @type React.ReactElement\n */\n fallback?: React.ReactElement\n /**\n * Defines loading strategy\n */\n loading?: \"eager\" | \"lazy\"\n /**\n * How the image to fit within its bounds.\n * It maps to css `object-fit` property.\n * @type SystemProps[\"objectFit\"]\n */\n fit?: SystemProps[\"objectFit\"]\n /**\n * How to align the image within its bounds.\n * It maps to css `object-position` property.\n * @type SystemProps[\"objectPosition\"]\n */\n align?: SystemProps[\"objectPosition\"]\n /**\n * If `true`, opt out of the `fallbackSrc` logic and use as `img`\n *\n * @default false\n */\n ignoreFallback?: boolean\n\n /**\n * - beforeLoadOrError(default): loads the fallbackImage while loading the src\n * - onError: loads the fallbackImage only if there is an error fetching the src\n *\n * @default \"beforeLoadOrError\"\n * @see Issue https://github.com/chakra-ui/chakra-ui/issues/5581\n */\n fallbackStrategy?: FallbackStrategy\n /**\n * Defining which referrer is sent when fetching the resource.\n * @type React.HTMLAttributeReferrerPolicy\n */\n referrerPolicy?: React.HTMLAttributeReferrerPolicy\n}\n\nexport interface ImageProps\n extends UseImageProps,\n Omit, keyof UseImageProps>,\n ImageOptions {}\n\n/**\n * React component that renders an image with support\n * for fallbacks\n *\n * @see Docs https://chakra-ui.com/image\n */\nexport const Image = forwardRef(function Image(props, ref) {\n const {\n fallbackSrc,\n fallback,\n src,\n srcSet,\n align,\n fit,\n loading,\n ignoreFallback,\n crossOrigin,\n fallbackStrategy = \"beforeLoadOrError\",\n referrerPolicy,\n ...rest\n } = props\n\n const providedFallback = fallbackSrc !== undefined || fallback !== undefined\n /**\n * Defer to native `img` tag if `loading` prop is passed\n * @see https://github.com/chakra-ui/chakra-ui/issues/1027\n *\n * shouldIgnoreFallbackImage determines if we have the possibility to render a fallback image\n */\n const shouldIgnoreFallbackImage =\n loading != null ||\n // use can opt out of fallback image\n ignoreFallback ||\n // if the user doesn't provide any kind of fallback we should ignore it\n !providedFallback\n\n /**\n * returns `loaded` if fallback is ignored\n */\n const status = useImage({\n ...props,\n crossOrigin,\n ignoreFallback: shouldIgnoreFallbackImage,\n })\n\n const showFallbackImage = shouldShowFallbackImage(status, fallbackStrategy)\n\n const shared = {\n ref,\n objectFit: fit,\n objectPosition: align,\n ...(shouldIgnoreFallbackImage ? rest : omit(rest, [\"onError\", \"onLoad\"])),\n }\n\n if (showFallbackImage) {\n /**\n * If user passed a custom fallback component,\n * let's render it here.\n */\n if (fallback) return fallback\n\n return (\n \n )\n }\n\n return (\n \n )\n})\n\nImage.displayName = \"Image\"\n", "export function omit, K extends keyof T>(\n object: T,\n keysToOmit: K[] = [],\n) {\n const clone: Record = Object.assign({}, object)\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key as string]\n }\n }\n return clone as Omit\n}\n", "import { HTMLChakraProps, chakra, forwardRef } from \"@chakra-ui/system\"\n\nimport { NativeImageOptions, NativeImage } from \"./native-image\"\n\nexport interface ImgProps extends HTMLChakraProps<\"img\">, NativeImageOptions {}\n\n/**\n * Fallback component for most SSR users who want to use the native `img` with\n * support for chakra props\n */\nexport const Img = forwardRef((props, ref) => (\n \n))\n", "import { ImageProps, useImage } from \"@chakra-ui/image\"\nimport { chakra, SystemStyleObject } from \"@chakra-ui/system\"\nimport { cloneElement } from \"react\"\nimport { AvatarName } from \"./avatar-name\"\nimport { GenericAvatarIcon } from \"./generic-avatar-icon\"\n\ntype AvatarImageProps = ImageProps & {\n getInitials?: (name: string) => string\n borderRadius?: SystemStyleObject[\"borderRadius\"]\n icon: React.ReactElement\n iconLabel?: string\n name?: string\n}\n\nexport function AvatarImage(props: AvatarImageProps) {\n const {\n src,\n srcSet,\n onError,\n onLoad,\n getInitials,\n name,\n borderRadius,\n loading,\n iconLabel,\n icon = ,\n ignoreFallback,\n referrerPolicy,\n crossOrigin,\n } = props\n\n /**\n * use the image hook to only show the image when it has loaded\n */\n const status = useImage({ src, onError, crossOrigin, ignoreFallback })\n\n const hasLoaded = status === \"loaded\"\n\n /**\n * Fallback avatar applies under 2 conditions:\n * - If `src` was passed and the image has not loaded or failed to load\n * - If `src` wasn't passed\n *\n * In this case, we'll show either the name avatar or default avatar\n */\n const showFallback = !src || !hasLoaded\n\n if (showFallback) {\n return name ? (\n \n ) : (\n cloneElement(icon, {\n role: \"img\",\n \"aria-label\": iconLabel,\n })\n )\n }\n\n /**\n * If `src` was passed and the image has loaded, we'll show it\n */\n return (\n \n )\n}\n\nAvatarImage.displayName = \"AvatarImage\"\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { callAllHandlers, cx, dataAttr } from \"@chakra-ui/shared-utils\"\nimport { AvatarStylesProvider } from \"./avatar-context\"\nimport { AvatarImage } from \"./avatar-image\"\nimport { GenericAvatarIcon } from \"./generic-avatar-icon\"\nimport { initials } from \"./avatar-name\"\nimport { AvatarOptions } from \"./avatar-types\"\nimport { useState } from \"react\"\n\nexport const baseStyle: SystemStyleObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n textTransform: \"uppercase\",\n fontWeight: \"medium\",\n position: \"relative\",\n flexShrink: 0,\n}\n\nexport interface AvatarProps\n extends Omit, \"onError\">,\n AvatarOptions,\n ThemingProps<\"Avatar\"> {\n crossOrigin?: HTMLChakraProps<\"img\">[\"crossOrigin\"]\n iconLabel?: string\n /**\n * If `true`, opt out of the avatar's `fallback` logic and\n * renders the `img` at all times.\n *\n * @default false\n */\n ignoreFallback?: boolean\n}\n\n/**\n * Avatar component that renders an user avatar with\n * support for fallback avatar and name-only avatars\n */\nexport const Avatar = forwardRef((props, ref) => {\n const styles = useMultiStyleConfig(\"Avatar\", props)\n const [isLoaded, setIsLoaded] = useState(false)\n\n const {\n src,\n srcSet,\n name,\n showBorder,\n borderRadius = \"full\",\n onError,\n onLoad: onLoadProp,\n getInitials = initials,\n icon = ,\n iconLabel = \" avatar\",\n loading,\n children,\n borderColor,\n ignoreFallback,\n crossOrigin,\n referrerPolicy,\n ...rest\n } = omitThemingProps(props)\n\n const avatarStyles: SystemStyleObject = {\n borderRadius,\n borderWidth: showBorder ? \"2px\" : undefined,\n ...baseStyle,\n ...styles.container,\n }\n\n if (borderColor) {\n avatarStyles.borderColor = borderColor\n }\n\n return (\n \n \n {\n setIsLoaded(true)\n })}\n onError={onError}\n getInitials={getInitials}\n name={name}\n borderRadius={borderRadius}\n icon={icon}\n iconLabel={iconLabel}\n ignoreFallback={ignoreFallback}\n crossOrigin={crossOrigin}\n referrerPolicy={referrerPolicy}\n />\n {children}\n \n \n )\n})\n\nAvatar.displayName = \"Avatar\"\n", "// src/index.ts\nimport { Children, isValidElement } from \"react\";\nfunction getValidChildren(children) {\n return Children.toArray(children).filter(\n (child) => isValidElement(child)\n );\n}\nexport {\n getValidChildren\n};\n", "import {\n chakra,\n forwardRef,\n omitThemingProps,\n SystemProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { getValidChildren } from \"@chakra-ui/react-children-utils\"\nimport { compact } from \"@chakra-ui/object-utils\"\nimport { baseStyle } from \"./avatar\"\nimport { cloneElement } from \"react\"\n\ninterface AvatarGroupOptions {\n /**\n * The children of the avatar group.\n *\n * Ideally should be `Avatar` and `MoreIndicator` components\n */\n children: React.ReactNode\n /**\n * The space between the avatars in the group.\n * @default \"-0.75rem\"\n * @type SystemProps[\"margin\"]\n */\n spacing?: SystemProps[\"margin\"]\n /**\n * The maximum number of visible avatars\n */\n max?: number\n}\n\nexport interface AvatarGroupProps\n extends AvatarGroupOptions,\n Omit, \"children\">,\n ThemingProps<\"Avatar\"> {}\n\n/**\n * AvatarGroup displays a number of avatars grouped together in a stack.\n */\nexport const AvatarGroup = forwardRef(\n function AvatarGroup(props, ref) {\n const styles = useMultiStyleConfig(\"Avatar\", props)\n\n const {\n children,\n borderColor,\n max,\n spacing = \"-0.75rem\",\n borderRadius = \"full\",\n ...rest\n } = omitThemingProps(props)\n\n const validChildren = getValidChildren(children)\n\n /**\n * get the avatars within the max\n */\n const childrenWithinMax =\n max != null ? validChildren.slice(0, max) : validChildren\n\n /**\n * get the remaining avatar count\n */\n const excess = max != null ? validChildren.length - max : 0\n\n /**\n * Reversing the children is a great way to avoid using zIndex\n * to overlap the avatars\n */\n const reversedChildren = childrenWithinMax.reverse()\n\n const clones = reversedChildren.map((child, index) => {\n const isFirstAvatar = index === 0\n\n const childProps = {\n marginEnd: isFirstAvatar ? 0 : spacing,\n size: props.size,\n borderColor: child.props.borderColor ?? borderColor,\n showBorder: true,\n }\n\n return cloneElement(child, compact(childProps))\n })\n\n const groupStyles: SystemStyleObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n flexDirection: \"row-reverse\",\n ...styles.group,\n }\n\n const excessStyles: SystemStyleObject = {\n borderRadius,\n marginStart: spacing,\n ...baseStyle,\n ...styles.excessLabel,\n }\n\n return (\n \n {excess > 0 && (\n \n {`+${excess}`}\n \n )}\n {clones}\n \n )\n },\n)\n\nAvatarGroup.displayName = \"AvatarGroup\"\n", "export function compact>(object: T) {\n const clone = Object.assign({}, object)\n for (let key in clone) {\n if (clone[key] === undefined) delete clone[key]\n }\n return clone\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { SystemStyleObject } from \"@chakra-ui/system\"\n\nexport const [BreadcrumbStylesProvider, useBreadcrumbStyles] = createContext<\n Record\n>({\n name: `BreadcrumbStylesContext`,\n errorMessage: `useBreadcrumbStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useBreadcrumbStyles } from \"./breadcrumb-context\"\n\nexport interface BreadcrumbLinkProps extends HTMLChakraProps<\"a\"> {\n /**\n * @default false\n */\n isCurrentPage?: boolean\n}\n/**\n * Breadcrumb link.\n *\n * It renders a `span` when it matches the current link. Otherwise,\n * it renders an anchor tag.\n */\n\nexport const BreadcrumbLink = forwardRef(\n function BreadcrumbLink(props, ref) {\n const { isCurrentPage, as, className, href, ...rest } = props\n const styles = useBreadcrumbStyles()\n\n const sharedProps = {\n ref,\n as,\n className: cx(\"chakra-breadcrumb__link\", className),\n ...rest,\n }\n\n if (isCurrentPage) {\n return (\n \n )\n }\n\n return \n },\n)\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemStyleObject,\n} from \"@chakra-ui/system\"\nimport { useBreadcrumbStyles } from \"./breadcrumb-context\"\n\nexport interface BreadcrumbSeparatorProps extends HTMLChakraProps<\"div\"> {\n /**\n * @type SystemStyleObject[\"mx\"]\n */\n spacing?: SystemStyleObject[\"mx\"]\n}\n/**\n * React component that separates each breadcrumb link\n */\n\nexport const BreadcrumbSeparator = forwardRef(\n function BreadcrumbSeparator(props, ref) {\n const { spacing, ...rest } = props\n\n const styles = useBreadcrumbStyles()\n const separatorStyles: SystemStyleObject = {\n mx: spacing,\n ...styles.separator,\n }\n\n return (\n \n )\n },\n)\n\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n", "import {\n chakra,\n forwardRef,\n SystemStyleObject,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { getValidChildren } from \"@chakra-ui/react-children-utils\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useBreadcrumbStyles } from \"./breadcrumb-context\"\nimport { BreadcrumbSeparator } from \"./breadcrumb-separator\"\nimport { BreadcrumbLink } from \"./breadcrumb-link\"\nimport { cloneElement } from \"react\"\nimport { BreadcrumbItemOptions } from \"./breadcrumb-types\"\n\nexport interface BreadcrumbItemProps\n extends BreadcrumbItemOptions,\n HTMLChakraProps<\"li\"> {}\n\n/**\n * BreadcrumbItem is used to group a breadcrumb link.\n * It renders a `li` element to denote it belongs to an order list of links.\n *\n * @see Docs https://chakra-ui.com/breadcrumb\n */\n\nexport const BreadcrumbItem = forwardRef(\n function BreadcrumbItem(props, ref) {\n const {\n isCurrentPage,\n separator,\n isLastChild,\n spacing,\n children,\n className,\n ...rest\n } = props\n\n const validChildren = getValidChildren(children)\n\n const clones = validChildren.map((child) => {\n if (child.type === BreadcrumbLink) {\n return cloneElement(child, {\n isCurrentPage,\n })\n }\n\n if (child.type === BreadcrumbSeparator) {\n return cloneElement(child, {\n spacing,\n children: child.props.children || separator,\n })\n }\n\n return child\n })\n\n const styles = useBreadcrumbStyles()\n const itemStyles: SystemStyleObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n ...styles.item,\n }\n\n const _className = cx(\"chakra-breadcrumb__list-item\", className)\n\n return (\n \n {clones}\n {!isLastChild && (\n \n {separator}\n \n )}\n \n )\n },\n)\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { getValidChildren } from \"@chakra-ui/react-children-utils\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cloneElement } from \"react\"\nimport { BreadcrumbStylesProvider } from \"./breadcrumb-context\"\nimport { BreadcrumbOptions } from \"./breadcrumb-types\"\n\nexport interface BreadcrumbProps\n extends HTMLChakraProps<\"nav\">,\n BreadcrumbOptions,\n ThemingProps<\"Breadcrumb\"> {\n listProps?: HTMLChakraProps<\"ol\">\n}\n\n/**\n * Breadcrumb is used to render a breadcrumb navigation landmark.\n * It renders a `nav` element with `aria-label` set to `Breadcrumb`\n *\n * @see Docs https://chakra-ui.com/breadcrumb\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/\n */\nexport const Breadcrumb = forwardRef(\n function Breadcrumb(props, ref) {\n const styles = useMultiStyleConfig(\"Breadcrumb\", props)\n const ownProps = omitThemingProps(props)\n\n const {\n children,\n spacing = \"0.5rem\",\n separator = \"/\",\n className,\n listProps,\n ...rest\n } = ownProps\n\n const validChildren = getValidChildren(children)\n const count = validChildren.length\n\n const clones = validChildren.map((child, index) =>\n cloneElement(child, {\n separator,\n spacing,\n isLastChild: count === index + 1,\n }),\n )\n\n const _className = cx(\"chakra-breadcrumb\", className)\n\n return (\n \n \n \n {clones}\n \n \n \n )\n },\n)\n\nBreadcrumb.displayName = \"Breadcrumb\"\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { ThemingProps } from \"@chakra-ui/system\"\n\nexport interface ButtonGroupContext extends ThemingProps<\"Button\"> {\n /**\n * @default false\n */\n isDisabled?: boolean\n}\n\nexport const [ButtonGroupProvider, useButtonGroup] =\n createContext({\n strict: false,\n name: \"ButtonGroupContext\",\n })\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemStyleObject,\n ThemingProps,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useMemo } from \"react\"\nimport { ButtonGroupContext, ButtonGroupProvider } from \"./button-context\"\nimport { ButtonGroupOptions } from \"./button-types\"\n\nexport interface ButtonGroupProps\n extends HTMLChakraProps<\"div\">,\n ThemingProps<\"Button\">,\n ButtonGroupOptions {}\n\nconst attachedStyles: Record = {\n horizontal: {\n \"> *:first-of-type:not(:last-of-type)\": { borderEndRadius: 0 },\n \"> *:not(:first-of-type):not(:last-of-type)\": { borderRadius: 0 },\n \"> *:not(:first-of-type):last-of-type\": { borderStartRadius: 0 },\n },\n vertical: {\n \"> *:first-of-type:not(:last-of-type)\": { borderBottomRadius: 0 },\n \"> *:not(:first-of-type):not(:last-of-type)\": { borderRadius: 0 },\n \"> *:not(:first-of-type):last-of-type\": { borderTopRadius: 0 },\n },\n}\n\nconst gapStyles = {\n horizontal: (spacing: any): SystemStyleObject => ({\n \"& > *:not(style) ~ *:not(style)\": { marginStart: spacing },\n }),\n vertical: (spacing: any): SystemStyleObject => ({\n \"& > *:not(style) ~ *:not(style)\": { marginTop: spacing },\n }),\n}\n\nexport const ButtonGroup = forwardRef(\n function ButtonGroup(props, ref) {\n const {\n size,\n colorScheme,\n variant,\n className,\n spacing = \"0.5rem\",\n isAttached,\n isDisabled,\n orientation = \"horizontal\",\n ...rest\n } = props\n\n const _className = cx(\"chakra-button__group\", className)\n\n const context: ButtonGroupContext = useMemo(\n () => ({ size, colorScheme, variant, isDisabled }),\n [size, colorScheme, variant, isDisabled],\n )\n\n let groupStyles: SystemStyleObject = {\n display: \"inline-flex\",\n ...(isAttached\n ? attachedStyles[orientation]\n : gapStyles[orientation](spacing)),\n }\n\n const isVertical = orientation === \"vertical\"\n\n return (\n \n \n \n )\n },\n)\n\nButtonGroup.displayName = \"ButtonGroup\"\n", "import { useCallback, useState } from \"react\"\n\nexport function useButtonType(value?: React.ElementType) {\n const [isButton, setIsButton] = useState(!value)\n const refCallback = useCallback((node: HTMLElement | null) => {\n if (!node) return\n setIsButton(node.tagName === \"BUTTON\")\n }, [])\n const type = isButton ? \"button\" : undefined\n return { ref: refCallback, type } as const\n}\n", "import { chakra, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { cloneElement, isValidElement } from \"react\"\n\nexport function ButtonIcon(props: HTMLChakraProps<\"span\">) {\n const { children, className, ...rest } = props\n\n const _children = isValidElement(children)\n ? cloneElement(children, {\n \"aria-hidden\": true,\n focusable: false,\n })\n : children\n\n const _className = cx(\"chakra-button__icon\", className)\n\n return (\n \n {_children}\n \n )\n}\n\nButtonIcon.displayName = \"ButtonIcon\"\n", "import { Spinner } from \"@chakra-ui/spinner\"\nimport { chakra, HTMLChakraProps, SystemStyleObject } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useMemo } from \"react\"\nimport { ButtonSpinnerOptions } from \"./button-types\"\n\ninterface ButtonSpinnerProps\n extends HTMLChakraProps<\"div\">,\n ButtonSpinnerOptions {}\n\nexport function ButtonSpinner(props: ButtonSpinnerProps) {\n const {\n label,\n placement,\n spacing = \"0.5rem\",\n children = ,\n className,\n __css,\n ...rest\n } = props\n\n const _className = cx(\"chakra-button__spinner\", className)\n\n const marginProp = placement === \"start\" ? \"marginEnd\" : \"marginStart\"\n\n const spinnerStyles: SystemStyleObject = useMemo(\n () => ({\n display: \"flex\",\n alignItems: \"center\",\n position: label ? \"relative\" : \"absolute\",\n [marginProp]: label ? spacing : 0,\n fontSize: \"1em\",\n lineHeight: \"normal\",\n ...__css,\n }),\n [__css, label, marginProp, spacing],\n )\n\n return (\n \n {children}\n \n )\n}\nButtonSpinner.displayName = \"ButtonSpinner\"\n", "import { useMergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx, dataAttr } from \"@chakra-ui/shared-utils\"\n\nimport { useMemo } from \"react\"\nimport { useButtonGroup } from \"./button-context\"\nimport { ButtonIcon } from \"./button-icon\"\nimport { ButtonSpinner } from \"./button-spinner\"\nimport { ButtonOptions } from \"./button-types\"\nimport { useButtonType } from \"./use-button-type\"\n\nexport interface ButtonProps\n extends HTMLChakraProps<\"button\">,\n ButtonOptions,\n ThemingProps<\"Button\"> {}\n\n/**\n * Button component is used to trigger an action or event, such as submitting a form, opening a Dialog, canceling an action, or performing a delete operation.\n *\n * @see Docs https://chakra-ui.com/docs/components/button\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/button/\n */\nexport const Button = forwardRef((props, ref) => {\n const group = useButtonGroup()\n const styles = useStyleConfig(\"Button\", { ...group, ...props })\n\n const {\n isDisabled = group?.isDisabled,\n isLoading,\n isActive,\n children,\n leftIcon,\n rightIcon,\n loadingText,\n iconSpacing = \"0.5rem\",\n type,\n spinner,\n spinnerPlacement = \"start\",\n className,\n as,\n ...rest\n } = omitThemingProps(props)\n\n /**\n * When button is used within ButtonGroup (i.e. flushed with sibling buttons),\n * it is important to add a `zIndex` on focus.\n *\n * So let's read the component styles and then add `zIndex` to it.\n */\n const buttonStyles: SystemStyleObject = useMemo(() => {\n // @ts-ignore\n const _focus = { ...styles?.[\"_focus\"], zIndex: 1 }\n return {\n display: \"inline-flex\",\n appearance: \"none\",\n alignItems: \"center\",\n justifyContent: \"center\",\n userSelect: \"none\",\n position: \"relative\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"middle\",\n outline: \"none\",\n ...styles,\n ...(!!group && { _focus }),\n }\n }, [styles, group])\n\n const { ref: _ref, type: defaultType } = useButtonType(as)\n\n const contentProps = { rightIcon, leftIcon, iconSpacing, children }\n\n return (\n \n {isLoading && spinnerPlacement === \"start\" && (\n \n {spinner}\n \n )}\n\n {isLoading ? (\n loadingText || (\n \n \n \n )\n ) : (\n \n )}\n\n {isLoading && spinnerPlacement === \"end\" && (\n \n {spinner}\n \n )}\n \n )\n})\n\nButton.displayName = \"Button\"\n\ntype ButtonContentProps = Pick<\n ButtonProps,\n \"leftIcon\" | \"rightIcon\" | \"children\" | \"iconSpacing\"\n>\n\nfunction ButtonContent(props: ButtonContentProps) {\n const { leftIcon, rightIcon, children, iconSpacing } = props\n return (\n <>\n {leftIcon && {leftIcon}}\n {children}\n {rightIcon && (\n {rightIcon}\n )}\n \n )\n}\n", "import { forwardRef } from \"@chakra-ui/system\"\nimport { cloneElement, isValidElement } from \"react\"\nimport { Button, ButtonProps } from \"./button\"\n\ntype OmittedProps =\n | \"leftIcon\"\n | \"rightIcon\"\n | \"loadingText\"\n | \"iconSpacing\"\n | \"spinnerPlacement\"\n\ninterface BaseButtonProps extends Omit {}\n\nexport interface IconButtonProps extends BaseButtonProps {\n /**\n * The icon to be used in the button.\n * @type React.ReactElement\n */\n icon?: React.ReactElement\n /**\n * If `true`, the button will be perfectly round. Else, it'll be slightly round\n *\n * @default false\n */\n isRound?: boolean\n /**\n * A11y: A label that describes the button\n */\n \"aria-label\": string\n}\n\n/**\n * Icon button renders an icon within a button.\n *\n * @see Docs https://chakra-ui.com/docs/components/icon-button\n */\nexport const IconButton = forwardRef(\n (props, ref) => {\n const { icon, children, isRound, \"aria-label\": ariaLabel, ...rest } = props\n\n /**\n * Passing the icon as prop or children should work\n */\n const element = icon || children\n const _children = isValidElement(element)\n ? cloneElement(element as any, {\n \"aria-hidden\": true,\n focusable: false,\n })\n : null\n\n return (\n \n {_children}\n \n )\n },\n)\n\nIconButton.displayName = \"IconButton\"\n", "import { createStylesContext } from \"@chakra-ui/system\"\n\nexport const [CardStylesProvider, useCardStyles] = createStylesContext(\"Card\")\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { forwardRef, HTMLChakraProps, chakra } from \"@chakra-ui/system\"\nimport { useCardStyles } from \"./card-context\"\n\nexport interface CardBodyProps extends HTMLChakraProps<\"div\"> {}\n\nexport const CardBody = forwardRef(function CardBody(\n props,\n ref,\n) {\n const { className, ...rest } = props\n const styles = useCardStyles()\n return (\n \n )\n})\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n forwardRef,\n HTMLChakraProps,\n chakra,\n SystemProps,\n} from \"@chakra-ui/system\"\nimport { useCardStyles } from \"./card-context\"\n\nexport interface CardFooterProps extends HTMLChakraProps<\"div\"> {\n justify?: SystemProps[\"justifyContent\"]\n}\n\nexport const CardFooter = forwardRef(\n function CardFooter(props, ref) {\n const { className, justify, ...rest } = props\n const styles = useCardStyles()\n return (\n \n )\n },\n)\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { forwardRef, HTMLChakraProps, chakra } from \"@chakra-ui/system\"\nimport { useCardStyles } from \"./card-context\"\n\nexport interface CardHeaderProps extends HTMLChakraProps<\"div\"> {}\n\nexport const CardHeader = forwardRef(\n function CardHeader(props, ref) {\n const { className, ...rest } = props\n const styles = useCardStyles()\n return (\n \n )\n },\n)\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n forwardRef,\n HTMLChakraProps,\n ThemingProps,\n chakra,\n omitThemingProps,\n useMultiStyleConfig,\n SystemProps,\n} from \"@chakra-ui/system\"\nimport { CardStylesProvider } from \"./card-context\"\n\nexport type CardOptions = {\n /**\n * The flex direction of the card\n */\n direction?: SystemProps[\"flexDirection\"]\n /**\n * The flex alignment of the card\n */\n align?: SystemProps[\"alignItems\"]\n /**\n * The flex distribution of the card\n */\n justify?: SystemProps[\"justifyContent\"]\n}\n\nexport interface CardProps\n extends HTMLChakraProps<\"div\">,\n CardOptions,\n ThemingProps<\"Card\"> {}\n\nexport const Card = forwardRef(function Card(props, ref) {\n const {\n className,\n children,\n direction = \"column\",\n justify,\n align,\n ...rest\n } = omitThemingProps(props)\n\n const styles = useMultiStyleConfig(\"Card\", props)\n\n return (\n \n {children}\n \n )\n})\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { CheckboxGroupContext } from \"./checkbox-types\"\n\nexport const [CheckboxGroupProvider, useCheckboxGroupContext] =\n createContext({\n name: \"CheckboxGroupContext\",\n strict: false,\n })\n", "import { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport { useControllableState } from \"@chakra-ui/react-use-controllable-state\"\nimport { isObject } from \"@chakra-ui/shared-utils\"\nimport { useCallback } from \"react\"\nimport { EventOrValue, UseCheckboxGroupProps } from \"./checkbox-types\"\n\nfunction isInputEvent(value: any): value is { target: HTMLInputElement } {\n return value && isObject(value) && isObject(value.target)\n}\n\n/**\n * React hook that provides all the state management logic\n * for a group of checkboxes.\n *\n * It is consumed by the `CheckboxGroup` component\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-checkbox-group\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/\n */\nexport function useCheckboxGroup(props: UseCheckboxGroupProps = {}) {\n const {\n defaultValue,\n value: valueProp,\n onChange,\n isDisabled,\n isNative,\n } = props\n\n const onChangeProp = useCallbackRef(onChange)\n\n const [value, setValue] = useControllableState({\n value: valueProp,\n defaultValue: defaultValue || [],\n onChange: onChangeProp,\n })\n\n const handleChange = useCallback(\n (eventOrValue: EventOrValue) => {\n if (!value) return\n\n const isChecked = isInputEvent(eventOrValue)\n ? eventOrValue.target.checked\n : !value.includes(eventOrValue)\n\n const selectedValue = isInputEvent(eventOrValue)\n ? eventOrValue.target.value\n : eventOrValue\n\n const nextValue = isChecked\n ? [...value, selectedValue]\n : value.filter((v) => String(v) !== String(selectedValue))\n\n setValue(nextValue)\n },\n [setValue, value],\n )\n\n const getCheckboxProps = useCallback(\n (props: Record = {}) => {\n const checkedKey = isNative ? \"checked\" : \"isChecked\"\n return {\n ...props,\n [checkedKey]: value.some((val) => String(props.value) === String(val)),\n onChange: handleChange,\n }\n },\n [handleChange, isNative, value],\n )\n\n return {\n value,\n isDisabled,\n onChange: handleChange,\n setValue,\n getCheckboxProps,\n }\n}\n\nexport type UseCheckboxGroupReturn = ReturnType\n", "import { ThemingProps } from \"@chakra-ui/system\"\nimport { useMemo } from \"react\"\nimport { CheckboxGroupProvider } from \"./checkbox-context\"\nimport { UseCheckboxGroupProps } from \"./checkbox-types\"\nimport { useCheckboxGroup } from \"./use-checkbox-group\"\n\nexport interface CheckboxGroupProps\n extends UseCheckboxGroupProps,\n Omit, \"orientation\"> {\n children?: React.ReactNode\n}\n\n/**\n * Used for multiple checkboxes which are bound in one group,\n * and it indicates whether one or more options are selected.\n *\n * @see Docs https://chakra-ui.com/checkbox\n */\nexport function CheckboxGroup(props: CheckboxGroupProps) {\n const { colorScheme, size, variant, children, isDisabled } = props\n const { value, onChange } = useCheckboxGroup(props)\n\n const group = useMemo(\n () => ({\n size,\n onChange,\n colorScheme,\n value,\n variant,\n isDisabled,\n }),\n [size, onChange, colorScheme, value, variant, isDisabled],\n )\n\n return \n}\n\nCheckboxGroup.displayName = \"CheckboxGroup\"\n", "import { useState } from \"react\"\n\nexport function useInitialAnimationState(isChecked: boolean) {\n const [previousIsChecked, setPreviousIsChecked] = useState(isChecked)\n const [shouldAnimate, setShouldAnimate] = useState(false)\n\n if (isChecked !== previousIsChecked) {\n setShouldAnimate(true)\n setPreviousIsChecked(isChecked)\n }\n\n return shouldAnimate\n}\n", "import { chakra, HTMLChakraProps, PropsOf } from \"@chakra-ui/system\"\n\nfunction CheckIcon(props: PropsOf) {\n return (\n \n \n \n )\n}\n\nfunction IndeterminateIcon(props: PropsOf) {\n return (\n \n \n \n )\n}\n\nexport interface CheckboxIconProps extends HTMLChakraProps<\"svg\"> {\n /**\n * @default false\n */\n isIndeterminate?: boolean\n /**\n * @default false\n */\n isChecked?: boolean\n}\n\n/**\n * CheckboxIcon is used to visually indicate the checked or indeterminate\n * state of a checkbox.\n *\n * @todo allow users pass their own icon svgs\n */\nexport function CheckboxIcon(props: CheckboxIconProps) {\n const { isIndeterminate, isChecked, ...rest } = props\n const BaseIcon = isIndeterminate ? IndeterminateIcon : CheckIcon\n\n return isChecked || isIndeterminate ? (\n \n \n \n ) : null\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { PropGetter } from \"@chakra-ui/react-types\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx, dataAttr } from \"@chakra-ui/shared-utils\"\nimport { useCallback, useId, useState } from \"react\"\n\nconst [FormControlStylesProvider, useFormControlStyles] = createContext<\n Record\n>({\n name: `FormControlStylesContext`,\n errorMessage: `useFormControlStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n\nexport { useFormControlContext, useFormControlStyles }\n\nexport interface FormControlOptions {\n /**\n * If `true`, the form control will be required. This has 2 side effects:\n * - The `FormLabel` will show a required indicator\n * - The form element (e.g, Input) will have `aria-required` set to `true`\n *\n * @default false\n */\n isRequired?: boolean\n /**\n * If `true`, the form control will be disabled. This has 2 side effects:\n * - The `FormLabel` will have `data-disabled` attribute\n * - The form element (e.g, Input) will be disabled\n *\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true`, the form control will be invalid. This has 2 side effects:\n * - The `FormLabel` and `FormErrorIcon` will have `data-invalid` set to `true`\n * - The form element (e.g, Input) will have `aria-invalid` set to `true`\n *\n * @default false\n */\n isInvalid?: boolean\n /**\n * If `true`, the form control will be readonly\n *\n * @default false\n */\n isReadOnly?: boolean\n}\n\ninterface FormControlContext extends FormControlOptions {\n /**\n * The label text used to inform users as to what information is\n * requested for a text field.\n */\n label?: string\n /**\n * The custom `id` to use for the form control. This is passed directly to the form element (e.g, Input).\n * - The form element (e.g. Input) gets the `id`\n * - The form label id: `form-label-${id}`\n * - The form error text id: `form-error-text-${id}`\n * - The form helper text id: `form-helper-text-${id}`\n */\n id?: string\n}\n\ntype FormControlProviderContext = Omit<\n ReturnType,\n \"getRootProps\" | \"htmlProps\"\n>\n\nconst [FormControlProvider, useFormControlContext] =\n createContext({\n strict: false,\n name: \"FormControlContext\",\n })\n\nfunction useFormControlProvider(props: FormControlContext) {\n const {\n id: idProp,\n isRequired,\n isInvalid,\n isDisabled,\n isReadOnly,\n ...htmlProps\n } = props\n\n // Generate all the required ids\n const uuid = useId()\n const id = idProp || `field-${uuid}`\n\n const labelId = `${id}-label`\n const feedbackId = `${id}-feedback`\n const helpTextId = `${id}-helptext`\n\n /**\n * Track whether the `FormErrorMessage` has been rendered.\n * We use this to append its id the `aria-describedby` of the `input`.\n */\n const [hasFeedbackText, setHasFeedbackText] = useState(false)\n\n /**\n * Track whether the `FormHelperText` has been rendered.\n * We use this to append its id the `aria-describedby` of the `input`.\n */\n const [hasHelpText, setHasHelpText] = useState(false)\n\n // Track whether the form element (e.g, `input`) has focus.\n const [isFocused, setFocus] = useState(false)\n\n const getHelpTextProps = useCallback(\n (props = {}, forwardedRef = null) => ({\n id: helpTextId,\n ...props,\n /**\n * Notify the field context when the help text is rendered on screen,\n * so we can apply the correct `aria-describedby` to the field (e.g. input, textarea).\n */\n ref: mergeRefs(forwardedRef, (node) => {\n if (!node) return\n setHasHelpText(true)\n }),\n }),\n [helpTextId],\n )\n\n const getLabelProps = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: forwardedRef,\n \"data-focus\": dataAttr(isFocused),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-readonly\": dataAttr(isReadOnly),\n id: props.id !== undefined ? props.id : labelId,\n htmlFor: props.htmlFor !== undefined ? props.htmlFor : id,\n }),\n [id, isDisabled, isFocused, isInvalid, isReadOnly, labelId],\n )\n\n const getErrorMessageProps = useCallback(\n (props = {}, forwardedRef = null) => ({\n id: feedbackId,\n ...props,\n /**\n * Notify the field context when the error message is rendered on screen,\n * so we can apply the correct `aria-describedby` to the field (e.g. input, textarea).\n */\n ref: mergeRefs(forwardedRef, (node) => {\n if (!node) return\n setHasFeedbackText(true)\n }),\n \"aria-live\": \"polite\",\n }),\n [feedbackId],\n )\n\n const getRootProps = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ...htmlProps,\n ref: forwardedRef,\n role: \"group\",\n \"data-focus\": dataAttr(isFocused),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-readonly\": dataAttr(isReadOnly),\n }),\n [htmlProps, isDisabled, isFocused, isInvalid, isReadOnly],\n )\n\n const getRequiredIndicatorProps = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: forwardedRef,\n role: \"presentation\",\n \"aria-hidden\": true,\n children: props.children || \"*\",\n }),\n [],\n )\n\n return {\n isRequired: !!isRequired,\n isInvalid: !!isInvalid,\n isReadOnly: !!isReadOnly,\n isDisabled: !!isDisabled,\n isFocused: !!isFocused,\n onFocus: () => setFocus(true),\n onBlur: () => setFocus(false),\n hasFeedbackText,\n setHasFeedbackText,\n hasHelpText,\n setHasHelpText,\n id,\n labelId,\n feedbackId,\n helpTextId,\n htmlProps,\n getHelpTextProps,\n getErrorMessageProps,\n getRootProps,\n getLabelProps,\n getRequiredIndicatorProps,\n }\n}\n\nexport interface FormControlProps\n extends HTMLChakraProps<\"div\">,\n ThemingProps<\"FormControl\">,\n FormControlContext {}\n\n/**\n * FormControl provides context such as\n * `isInvalid`, `isDisabled`, and `isRequired` to form elements.\n *\n * This is commonly used in form elements such as `input`,\n * `select`, `textarea`, etc.\n *\n * @see Docs https://chakra-ui.com/docs/components/form-control\n */\nexport const FormControl = forwardRef(\n function FormControl(props, ref) {\n const styles = useMultiStyleConfig(\"Form\", props)\n const ownProps = omitThemingProps(props)\n const {\n getRootProps,\n htmlProps: _,\n ...context\n } = useFormControlProvider(ownProps)\n\n const className = cx(\"chakra-form-control\", props.className)\n\n return (\n \n \n \n \n \n )\n },\n)\n\nFormControl.displayName = \"FormControl\"\n\nexport interface FormHelperTextProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * FormHelperText\n *\n * Assistive component that conveys additional guidance\n * about the field, such as how it will be used and what\n * types in values should be provided.\n */\nexport const FormHelperText = forwardRef(\n function FormHelperText(props, ref) {\n const field = useFormControlContext()\n const styles = useFormControlStyles()\n const className = cx(\"chakra-form__helper-text\", props.className)\n return (\n \n )\n },\n)\n\nFormHelperText.displayName = \"FormHelperText\"\n", "import { type IconProps, Icon } from \"@chakra-ui/icon\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useFormControlContext } from \"./form-control\"\n\nconst [FormErrorStylesProvider, useFormErrorStyles] = createContext<\n Record\n>({\n name: `FormErrorStylesContext`,\n errorMessage: `useFormErrorStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n\nexport { useFormErrorStyles }\nexport interface FormErrorMessageProps\n extends HTMLChakraProps<\"div\">,\n ThemingProps<\"FormErrorMessage\"> {}\n\n/**\n * Used to provide feedback about an invalid input,\n * and suggest clear instructions on how to fix it.\n */\nexport const FormErrorMessage = forwardRef(\n (props, ref) => {\n const styles = useMultiStyleConfig(\"FormError\", props)\n const ownProps = omitThemingProps(props)\n const field = useFormControlContext()\n\n if (!field?.isInvalid) return null\n\n return (\n \n \n \n )\n },\n)\n\nFormErrorMessage.displayName = \"FormErrorMessage\"\n\n/**\n * Used as the visual indicator that a field is invalid or\n * a field has incorrect values.\n */\nexport const FormErrorIcon = forwardRef((props, ref) => {\n const styles = useFormErrorStyles()\n const field = useFormControlContext()\n\n if (!field?.isInvalid) return null\n\n const _className = cx(\"chakra-form__error-icon\", props.className)\n\n return (\n \n \n \n )\n})\n\nFormErrorIcon.displayName = \"FormErrorIcon\"\n", "import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useFormControlContext, useFormControlStyles } from \"./form-control\"\n\nexport interface FormLabelProps\n extends HTMLChakraProps<\"label\">,\n ThemingProps<\"FormLabel\"> {\n /**\n * @type React.ReactNode\n */\n requiredIndicator?: React.ReactNode\n /**\n * @type React.ReactNode\n */\n optionalIndicator?: React.ReactNode\n}\n\n/**\n * Used to enhance the usability of form controls.\n *\n * It is used to inform users as to what information\n * is requested for a form field.\n *\n * ♿️ Accessibility: Every form field should have a form label.\n */\nexport const FormLabel = forwardRef(function FormLabel(\n passedProps,\n ref,\n) {\n const styles = useStyleConfig(\"FormLabel\", passedProps)\n const props = omitThemingProps(passedProps)\n\n const {\n className,\n children,\n requiredIndicator = ,\n optionalIndicator = null,\n ...rest\n } = props\n\n const field = useFormControlContext()\n const ownProps = field?.getLabelProps(rest, ref) ?? { ref, ...rest }\n\n return (\n \n {children}\n {field?.isRequired ? requiredIndicator : optionalIndicator}\n \n )\n})\n\nFormLabel.displayName = \"FormLabel\"\n\nexport interface RequiredIndicatorProps extends HTMLChakraProps<\"span\"> {}\n\n/**\n * Used to show a \"required\" text or an asterisks (*) to indicate that\n * a field is required.\n */\nexport const RequiredIndicator = forwardRef(\n function RequiredIndicator(props, ref) {\n const field = useFormControlContext()\n const styles = useFormControlStyles()\n\n if (!field?.isRequired) return null\n\n const className = cx(\"chakra-form__required-indicator\", props.className)\n\n return (\n \n )\n },\n)\n\nRequiredIndicator.displayName = \"RequiredIndicator\"\n", "import { ariaAttr, callAllHandlers } from \"@chakra-ui/shared-utils\"\nimport { FormControlOptions, useFormControlContext } from \"./form-control\"\n\nexport interface UseFormControlProps\n extends FormControlOptions {\n id?: string\n onFocus?: React.FocusEventHandler\n onBlur?: React.FocusEventHandler\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n \"aria-describedby\"?: string\n}\n\n/**\n * React hook that provides the props that should be spread on to\n * input fields (`input`, `select`, `textarea`, etc.).\n *\n * It provides a convenient way to control a form fields, validation\n * and helper text.\n *\n * @internal\n */\nexport function useFormControl(\n props: UseFormControlProps,\n) {\n const { isDisabled, isInvalid, isReadOnly, isRequired, ...rest } =\n useFormControlProps(props)\n\n return {\n ...rest,\n disabled: isDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"aria-required\": ariaAttr(isRequired),\n \"aria-readonly\": ariaAttr(isReadOnly),\n }\n}\n\n/**\n * @internal\n */\nexport function useFormControlProps(\n props: UseFormControlProps,\n) {\n const field = useFormControlContext()\n\n const {\n id,\n disabled,\n readOnly,\n required,\n isRequired,\n isInvalid,\n isReadOnly,\n isDisabled,\n onFocus,\n onBlur,\n ...rest\n } = props\n\n const labelIds: string[] = props[\"aria-describedby\"]\n ? [props[\"aria-describedby\"]]\n : []\n\n // Error message must be described first in all scenarios.\n if (field?.hasFeedbackText && field?.isInvalid) {\n labelIds.push(field.feedbackId)\n }\n\n if (field?.hasHelpText) {\n labelIds.push(field.helpTextId)\n }\n\n return {\n ...rest,\n \"aria-describedby\": labelIds.join(\" \") || undefined,\n id: id ?? field?.id,\n isDisabled: disabled ?? isDisabled ?? field?.isDisabled,\n isReadOnly: readOnly ?? isReadOnly ?? field?.isReadOnly,\n isRequired: required ?? isRequired ?? field?.isRequired,\n isInvalid: isInvalid ?? field?.isInvalid,\n onFocus: callAllHandlers(field?.onFocus, onFocus),\n onBlur: callAllHandlers(field?.onBlur, onBlur),\n }\n}\n", "/**\n * Styles to visually hide an element\n * but make it accessible to screen-readers\n */\nexport const visuallyHiddenStyle: React.CSSProperties = {\n border: \"0\",\n clip: \"rect(0, 0, 0, 0)\",\n height: \"1px\",\n width: \"1px\",\n margin: \"-1px\",\n padding: \"0\",\n overflow: \"hidden\",\n whiteSpace: \"nowrap\",\n position: \"absolute\",\n}\n", "import { chakra } from \"@chakra-ui/system\"\nimport { visuallyHiddenStyle } from \"./visually-hidden.style\"\n\n/**\n * Visually hidden component used to hide\n * elements on screen\n *\n * @see Docs https://chakra-ui.com/docs/components/visually-hidden\n */\nexport const VisuallyHidden = chakra(\"span\", {\n baseStyle: visuallyHiddenStyle,\n})\n\nVisuallyHidden.displayName = \"VisuallyHidden\"\n\n/**\n * Visually hidden input component for designing\n * custom input components using the html `input`\n * as a proxy\n *\n * @see Docs https://chakra-ui.com/docs/components/visually-hidden#visually-hidden-input\n */\nexport const VisuallyHiddenInput = chakra(\"input\", {\n baseStyle: visuallyHiddenStyle,\n})\n\nVisuallyHiddenInput.displayName = \"VisuallyHiddenInput\"\n\nexport default VisuallyHidden\n", "type Booleanish = boolean | \"true\" | \"false\"\n\nexport const dataAttr = (guard: boolean | undefined) => {\n return (guard ? \"\" : undefined) as Booleanish\n}\n\nexport const ariaAttr = (guard: boolean | undefined) => {\n return guard ? \"true\" : undefined\n}\n", "export function isHTMLElement(value: any): value is HTMLElement {\n return typeof value === \"object\" && value?.nodeType === Node.ELEMENT_NODE && typeof value?.nodeName === \"string\"\n}\n", "import { isHTMLElement } from \"./is-html-element\"\n\ntype Target = HTMLElement | EventTarget | null | undefined\n\nexport function contains(parent: Target, child: Target) {\n if (!parent || !child) return false\n if (!isHTMLElement(parent) || !isHTMLElement(child)) return false\n return parent === child || parent.contains(child)\n}\n\nexport const isSelfEvent = (event: Pick) =>\n contains(event.currentTarget, event.target)\n", "type Ctx = { getRootNode?: () => Document | ShadowRoot | Node }\n\nconst getDocument = (node: Document | ShadowRoot | Node) => {\n if (node.nodeType === Node.DOCUMENT_NODE) return node as Document\n return node.ownerDocument ?? document\n}\n\nexport function createScope(methods: T) {\n const screen = {\n getRootNode: (ctx: Ctx) => (ctx.getRootNode?.() ?? document) as Document | ShadowRoot,\n getDoc: (ctx: Ctx) => getDocument(screen.getRootNode(ctx)),\n getWin: (ctx: Ctx) => screen.getDoc(ctx).defaultView ?? window,\n getActiveElement: (ctx: Ctx) => screen.getDoc(ctx).activeElement as HTMLElement | null,\n getById: (ctx: Ctx, id: string) =>\n screen.getRootNode(ctx).getElementById(id) as T | null,\n }\n return { ...screen, ...methods }\n}\n", "const isDocument = (el: any): el is Document => el.nodeType === Node.DOCUMENT_NODE\n\nexport function getDocument(el: Element | Node | Document | null) {\n if (isDocument(el)) return el\n return el?.ownerDocument ?? document\n}\n\nexport function getWindow(el: HTMLElement) {\n return el?.ownerDocument.defaultView ?? window\n}\n", "export function getActiveElement(el: HTMLElement): HTMLElement | null {\n let activeElement = el.ownerDocument.activeElement as HTMLElement | null\n\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement as HTMLElement | null\n if (el === activeElement) break\n else activeElement = el\n }\n\n return activeElement\n}\n", "export function itemById(v: T[], id: string) {\n return v.find((node) => node.id === id)\n}\n\nexport function indexOfId(v: T[], id: string) {\n const item = itemById(v, id)\n return item ? v.indexOf(item) : -1\n}\n\nexport function nextById(v: T[], id: string, loop = true) {\n let idx = indexOfId(v, id)\n idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1)\n return v[idx]\n}\n\nexport function prevById(v: T[], id: string, loop = true) {\n let idx = indexOfId(v, id)\n if (idx === -1) return loop ? v[v.length - 1] : null\n idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1)\n return v[idx]\n}\n", "import { indexOfId } from \"./get-by-id\"\n\nconst getValueText = (item: T) => item.dataset.valuetext ?? item.textContent ?? \"\"\n\nconst match = (valueText: string, query: string) => valueText.toLowerCase().startsWith(query.toLowerCase())\n\nconst wrap = (v: T[], idx: number) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length])\n}\n\nexport function getByText(v: T[], text: string, currentId?: string | null) {\n const index = currentId ? indexOfId(v, currentId) : -1\n let items = currentId ? wrap(v, index) : v\n\n const isSingleKey = text.length === 1\n\n if (isSingleKey) {\n items = items.filter((item) => item.id !== currentId)\n }\n\n return items.find((item) => match(getValueText(item), text))\n}\n", "import { getByText } from \"./get-by-text\"\n\nexport type TypeaheadState = {\n keysSoFar: string\n timer: number\n}\n\nexport type TypeaheadOptions = {\n state: TypeaheadState\n activeId: string | null\n key: string\n timeout?: number\n}\n\nfunction getByTypeaheadImpl(_items: T[], options: TypeaheadOptions) {\n const { state, activeId, key, timeout = 350 } = options\n\n const search = state.keysSoFar + key\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0])\n\n const query = isRepeated ? search[0] : search\n\n let items = _items.slice()\n\n const next = getByText(items, query, activeId)\n\n function cleanup() {\n clearTimeout(state.timer)\n state.timer = -1\n }\n\n function update(value: string) {\n state.keysSoFar = value\n cleanup()\n\n if (value !== \"\") {\n state.timer = +setTimeout(() => {\n update(\"\")\n cleanup()\n }, timeout)\n }\n }\n\n update(search)\n\n return next\n}\nexport const getByTypeahead = /*#__PURE__*/ Object.assign(getByTypeaheadImpl, {\n defaultOptions: { keysSoFar: \"\", timer: -1 },\n isValidEvent: isValidTypeaheadEvent,\n})\n\nfunction isValidTypeaheadEvent(event: Pick) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey\n}\n", "const styleCache = new WeakMap()\n\nexport function getComputedStyle(el: HTMLElement) {\n if (!styleCache.has(el)) {\n const win = el.ownerDocument.defaultView || window\n styleCache.set(el, win.getComputedStyle(el))\n }\n return styleCache.get(el)\n}\n", "export function getEventTarget(event: Event): T | null {\n return (event.composedPath?.()[0] ?? event.target) as T | null\n}\n", "import { isHTMLElement } from \"./is-html-element\"\n\nfunction isScrollParent(el: HTMLElement): boolean {\n const win = el.ownerDocument.defaultView || window\n const { overflow, overflowX, overflowY } = win.getComputedStyle(el)\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX)\n}\n\nexport function getParent(el: HTMLElement): HTMLElement {\n if (el.localName === \"html\") return el\n return el.assignedSlot || el.parentElement || el.ownerDocument.documentElement\n}\n\nexport function getScrollParent(el: HTMLElement): HTMLElement {\n if ([\"html\", \"body\", \"#document\"].includes(el.localName)) {\n return el.ownerDocument.body\n }\n\n if (isHTMLElement(el) && isScrollParent(el)) {\n return el\n }\n\n return getScrollParent(getParent(el))\n}\n\ntype Target = Array\n\nexport function getScrollParents(el: HTMLElement, list: Target = []): Target {\n const parent = getScrollParent(el)\n const isBody = parent === el.ownerDocument.body\n const win = parent.ownerDocument.defaultView || window\n\n //@ts-expect-error\n const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(parent) ? parent : []) : parent\n\n const parents = list.concat(target)\n return isBody ? parents : parents.concat(getScrollParents(getParent(target)))\n}\n", "import { isHTMLElement } from \"./is-html-element\"\n\nexport function isEditableElement(el: HTMLElement | EventTarget | null) {\n if (el == null || !isHTMLElement(el)) {\n return false\n }\n\n try {\n const win = el.ownerDocument.defaultView || window\n return (\n (el instanceof win.HTMLInputElement && el.selectionStart != null) ||\n /(textarea|select)/.test(el.localName) ||\n el.isContentEditable\n )\n } catch {\n return false\n }\n}\n", "export const isDom = () => typeof document !== \"undefined\"\n\nexport function getPlatform() {\n const agent = (navigator as any).userAgentData\n return agent?.platform ?? navigator.platform\n}\n\nconst pt = (v: RegExp) => isDom() && v.test(getPlatform())\nconst ua = (v: RegExp) => isDom() && v.test(navigator.userAgent)\nconst vn = (v: RegExp) => isDom() && v.test(navigator.vendor)\n\nexport const isTouchDevice = () => isDom() && !!navigator.maxTouchPoints\nexport const isMac = () => pt(/^Mac/) && !isTouchDevice()\nexport const isIPhone = () => pt(/^iPhone/)\nexport const isSafari = () => isApple() && vn(/apple/i)\nexport const isFirefox = () => ua(/firefox\\//i)\nexport const isApple = () => pt(/mac|iphone|ipad|ipod/i)\nexport const isIos = () => isApple() && !isMac()\n", "type Root = Document | Element | null | undefined\n\nexport function queryAll(root: Root, selector: string) {\n return Array.from(root?.querySelectorAll(selector) ?? [])\n}\n\nexport function query(root: Root, selector: string) {\n return root?.querySelector(selector)\n}\n", "export function nextTick(fn: VoidFunction) {\n const set = new Set()\n function raf(fn: VoidFunction) {\n const id = globalThis.requestAnimationFrame(fn)\n set.add(() => globalThis.cancelAnimationFrame(id))\n }\n raf(() => raf(fn))\n return function cleanup() {\n set.forEach((fn) => fn())\n }\n}\n\nexport function raf(fn: VoidFunction) {\n const id = globalThis.requestAnimationFrame(fn)\n return () => {\n globalThis.cancelAnimationFrame(id)\n }\n}\n", "export * from \"./attrs\"\nexport * from \"./contains\"\nexport * from \"./create-scope\"\nexport * from \"./env\"\nexport * from \"./get-active-element\"\nexport * from \"./get-by-id\"\nexport * from \"./get-by-text\"\nexport * from \"./get-by-typeahead\"\nexport * from \"./get-computed-style\"\nexport * from \"./get-event-target\"\nexport * from \"./get-scroll-parent\"\nexport * from \"./is-editable-element\"\nexport * from \"./is-html-element\"\nexport * from \"./platform\"\nexport * from \"./query\"\nexport * from \"./raf\"\n\nexport const MAX_Z_INDEX = 2147483647\n", "import { isDom } from \"@zag-js/dom-query\"\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\"\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent\ntype Handler = (modality: Modality, e: HandlerEvent | null) => void\ntype FocusVisibleCallback = (isFocusVisible: boolean) => void\n\nlet hasSetup = false\nlet modality: Modality | null = null\nlet hasEventBeforeFocus = false\nlet hasBlurredWindowRecently = false\n\nconst handlers = new Set()\n\nfunction trigger(modality: Modality, event: HandlerEvent | null) {\n handlers.forEach((handler) => handler(modality, event))\n}\n\nconst isMac = typeof window !== \"undefined\" && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac && e.altKey) ||\n e.ctrlKey ||\n e.key === \"Control\" ||\n e.key === \"Shift\" ||\n e.key === \"Meta\"\n )\n}\n\nfunction onKeyboardEvent(event: KeyboardEvent) {\n hasEventBeforeFocus = true\n if (isValidKey(event)) {\n modality = \"keyboard\"\n trigger(\"keyboard\", event)\n }\n}\n\nfunction onPointerEvent(event: PointerEvent | MouseEvent) {\n modality = \"pointer\"\n\n if (event.type === \"mousedown\" || event.type === \"pointerdown\") {\n hasEventBeforeFocus = true\n const target = event.composedPath ? event.composedPath()[0] : event.target\n\n let matches = false\n try {\n matches = (target as any).matches(\":focus-visible\")\n } catch {}\n\n if (matches) return\n trigger(\"pointer\", event)\n }\n}\n\nfunction isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) return true\n return event.detail === 0 && !(event as PointerEvent).pointerType\n}\n\nfunction onClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true\n modality = \"virtual\"\n }\n}\n\nfunction onWindowFocus(event: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (event.target === window || event.target === document) {\n return\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to keyboard modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n modality = \"virtual\"\n trigger(\"virtual\", event)\n }\n\n hasEventBeforeFocus = false\n hasBlurredWindowRecently = false\n}\n\nfunction onWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false\n hasBlurredWindowRecently = true\n}\n\nfunction isFocusVisible() {\n return modality !== \"pointer\"\n}\n\nfunction setupGlobalFocusEvents() {\n if (!isDom() || hasSetup) {\n return\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n const { focus } = HTMLElement.prototype\n HTMLElement.prototype.focus = function focusElement(...args) {\n hasEventBeforeFocus = true\n focus.apply(this, args)\n }\n\n document.addEventListener(\"keydown\", onKeyboardEvent, true)\n document.addEventListener(\"keyup\", onKeyboardEvent, true)\n document.addEventListener(\"click\", onClickEvent, true)\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener(\"focus\", onWindowFocus, true)\n window.addEventListener(\"blur\", onWindowBlur, false)\n\n if (typeof PointerEvent !== \"undefined\") {\n document.addEventListener(\"pointerdown\", onPointerEvent, true)\n document.addEventListener(\"pointermove\", onPointerEvent, true)\n document.addEventListener(\"pointerup\", onPointerEvent, true)\n } else {\n document.addEventListener(\"mousedown\", onPointerEvent, true)\n document.addEventListener(\"mousemove\", onPointerEvent, true)\n document.addEventListener(\"mouseup\", onPointerEvent, true)\n }\n\n hasSetup = true\n}\n\nexport function trackFocusVisible(fn: FocusVisibleCallback) {\n setupGlobalFocusEvents()\n\n fn(isFocusVisible())\n const handler = () => fn(isFocusVisible())\n\n handlers.add(handler)\n return () => {\n handlers.delete(handler)\n }\n}\n\nexport function trackInteractionModality(fn: (value: Modality | null) => void) {\n setupGlobalFocusEvents()\n\n fn(modality)\n const handler = () => fn(modality)\n\n handlers.add(handler)\n return () => {\n handlers.delete(handler)\n }\n}\n\nexport function setInteractionModality(value: Modality) {\n modality = value\n trigger(value, null)\n}\n\nexport function getInteractionModality() {\n return modality\n}\n", "import { useFormControlProps } from \"@chakra-ui/form-control\"\nimport { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useUpdateEffect } from \"@chakra-ui/react-use-update-effect\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport type { PropGetter } from \"@chakra-ui/react-types\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { callAllHandlers, dataAttr } from \"@chakra-ui/shared-utils\"\nimport { omit } from \"@chakra-ui/object-utils\"\nimport { visuallyHiddenStyle } from \"@chakra-ui/visually-hidden\"\nimport { trackFocusVisible } from \"@zag-js/focus-visible\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { CheckboxState, UseCheckboxProps } from \"./checkbox-types\"\n\n/**\n * useCheckbox that provides all the state and focus management logic\n * for a checkbox. It is consumed by the `Checkbox` component\n *\n * @see Docs https://chakra-ui.com/checkbox#hooks\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/\n */\nexport function useCheckbox(props: UseCheckboxProps = {}) {\n const formControlProps = useFormControlProps(props)\n const {\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n id,\n onBlur,\n onFocus,\n \"aria-describedby\": ariaDescribedBy,\n } = formControlProps\n\n const {\n defaultChecked,\n isChecked: checkedProp,\n isFocusable,\n onChange,\n isIndeterminate,\n name,\n value,\n tabIndex = undefined,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-invalid\": ariaInvalid,\n ...rest\n } = props\n\n const htmlProps = omit(rest, [\n \"isDisabled\",\n \"isReadOnly\",\n \"isRequired\",\n \"isInvalid\",\n \"id\",\n \"onBlur\",\n \"onFocus\",\n \"aria-describedby\",\n ])\n\n const onChangeProp = useCallbackRef(onChange)\n const onBlurProp = useCallbackRef(onBlur)\n const onFocusProp = useCallbackRef(onFocus)\n\n const [isFocusVisible, setIsFocusVisible] = useState(false)\n const [isFocused, setFocused] = useState(false)\n const [isHovered, setHovered] = useState(false)\n const [isActive, setActive] = useState(false)\n\n useEffect(() => {\n return trackFocusVisible(setIsFocusVisible)\n }, [])\n\n const inputRef = useRef(null)\n const [rootIsLabelElement, setRootIsLabelElement] = useState(true)\n\n const [checkedState, setCheckedState] = useState(!!defaultChecked)\n\n const isControlled = checkedProp !== undefined\n const isChecked = isControlled ? checkedProp : checkedState\n\n const handleChange = useCallback(\n (event: React.ChangeEvent) => {\n if (isReadOnly || isDisabled) {\n event.preventDefault()\n return\n }\n\n if (!isControlled) {\n if (isChecked) {\n setCheckedState(event.target.checked)\n } else {\n setCheckedState(isIndeterminate ? true : event.target.checked)\n }\n }\n\n onChangeProp?.(event)\n },\n [\n isReadOnly,\n isDisabled,\n isChecked,\n isControlled,\n isIndeterminate,\n onChangeProp,\n ],\n )\n\n useSafeLayoutEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = Boolean(isIndeterminate)\n }\n }, [isIndeterminate])\n\n useUpdateEffect(() => {\n if (isDisabled) {\n setFocused(false)\n }\n }, [isDisabled, setFocused])\n\n /**\n * HTMLFormElement.reset() should reset the checkbox state\n */\n useSafeLayoutEffect(() => {\n const el = inputRef.current\n if (!el?.form) return\n const formResetListener = () => {\n setCheckedState(!!defaultChecked)\n }\n el.form.addEventListener(\"reset\", formResetListener)\n return () => el.form?.removeEventListener(\"reset\", formResetListener)\n }, [])\n\n const trulyDisabled = isDisabled && !isFocusable\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive(true)\n }\n },\n [setActive],\n )\n\n const onKeyUp = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \" \") {\n setActive(false)\n }\n },\n [setActive],\n )\n\n /**\n * Sync state with uncontrolled form libraries like `react-hook-form`.\n *\n * These libraries set the checked value for input fields\n * using their refs. For the checkbox, it sets `ref.current.checked = true | false` directly.\n *\n * This means the `isChecked` state will get out of sync with `ref.current.checked`,\n * even though the input validation with work, the UI will not be up to date.\n *\n * Let's correct that by checking and syncing the state accordingly.\n */\n useSafeLayoutEffect(() => {\n if (!inputRef.current) return\n const notInSync = inputRef.current.checked !== isChecked\n if (notInSync) {\n setCheckedState(inputRef.current.checked)\n }\n }, [inputRef.current])\n\n const getCheckboxProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) => {\n const onPressDown = (event: React.MouseEvent) => {\n // On mousedown, the input blurs and returns focus to the `body`,\n // we need to prevent this. Native checkboxes keeps focus on `input`\n if (isFocused) {\n event.preventDefault()\n }\n setActive(true)\n }\n\n return {\n ...props,\n ref: forwardedRef,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n \"data-indeterminate\": dataAttr(isIndeterminate),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-readonly\": dataAttr(isReadOnly),\n \"aria-hidden\": true,\n onMouseDown: callAllHandlers(props.onMouseDown, onPressDown),\n onMouseUp: callAllHandlers(props.onMouseUp, () => setActive(false)),\n onMouseEnter: callAllHandlers(props.onMouseEnter, () =>\n setHovered(true),\n ),\n onMouseLeave: callAllHandlers(props.onMouseLeave, () =>\n setHovered(false),\n ),\n }\n },\n [\n isActive,\n isChecked,\n isDisabled,\n isFocused,\n isFocusVisible,\n isHovered,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n ],\n )\n\n const getIndicatorProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: forwardedRef,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-focus-visible\": dataAttr(isFocused && isFocusVisible),\n \"data-indeterminate\": dataAttr(isIndeterminate),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-readonly\": dataAttr(isReadOnly),\n }),\n [\n isActive,\n isChecked,\n isDisabled,\n isFocused,\n isFocusVisible,\n isHovered,\n isIndeterminate,\n isInvalid,\n isReadOnly,\n ],\n )\n\n const getRootProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...htmlProps,\n ...props,\n ref: mergeRefs(forwardedRef, (node: HTMLElement) => {\n if (!node) return\n setRootIsLabelElement(node.tagName === \"LABEL\")\n }),\n onClick: callAllHandlers(props.onClick, () => {\n /**\n * Accessibility:\n *\n * Ideally, `getRootProps` should be spread unto a `label` element.\n *\n * If the element was changed using the `as` prop or changing\n * the dom node `getRootProps` is spread unto (to a `div` or `span`), we'll trigger\n * click on the input when the element is clicked.\n * @see Issue https://github.com/chakra-ui/chakra-ui/issues/3480\n */\n if (!rootIsLabelElement) {\n inputRef.current?.click()\n requestAnimationFrame(() => {\n inputRef.current?.focus({ preventScroll: true })\n })\n }\n }),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n }),\n [htmlProps, isDisabled, isChecked, isInvalid, rootIsLabelElement],\n )\n\n const getInputProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) => {\n return {\n ...props,\n ref: mergeRefs(inputRef, forwardedRef),\n type: \"checkbox\",\n name,\n value,\n id,\n tabIndex,\n onChange: callAllHandlers(props.onChange, handleChange),\n onBlur: callAllHandlers(props.onBlur, onBlurProp, () =>\n setFocused(false),\n ),\n onFocus: callAllHandlers(props.onFocus, onFocusProp, () =>\n setFocused(true),\n ),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n required: isRequired,\n checked: isChecked,\n disabled: trulyDisabled,\n readOnly: isReadOnly,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-invalid\": ariaInvalid ? Boolean(ariaInvalid) : isInvalid,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-disabled\": isDisabled,\n style: visuallyHiddenStyle,\n }\n },\n [\n name,\n value,\n id,\n handleChange,\n onBlurProp,\n onFocusProp,\n onKeyDown,\n onKeyUp,\n isRequired,\n isChecked,\n trulyDisabled,\n isReadOnly,\n ariaLabel,\n ariaLabelledBy,\n ariaInvalid,\n isInvalid,\n ariaDescribedBy,\n isDisabled,\n tabIndex,\n ],\n )\n\n const getLabelProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) => ({\n ...props,\n ref: forwardedRef,\n onMouseDown: callAllHandlers(props.onMouseDown, stopEvent),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid),\n }),\n [isChecked, isDisabled, isInvalid],\n )\n\n const state: CheckboxState = {\n isInvalid,\n isFocused,\n isChecked,\n isActive,\n isHovered,\n isIndeterminate,\n isDisabled,\n isReadOnly,\n isRequired,\n }\n\n return {\n state,\n getRootProps,\n getCheckboxProps,\n getIndicatorProps,\n getInputProps,\n getLabelProps,\n htmlProps,\n }\n}\n\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\nfunction stopEvent(event: React.SyntheticEvent) {\n event.preventDefault()\n event.stopPropagation()\n}\n\nexport type UseCheckboxReturn = ReturnType\n", "export function omit, K extends keyof T>(\n object: T,\n keysToOmit: K[] = [],\n) {\n const clone: Record = Object.assign({}, object)\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key as string]\n }\n }\n return clone as Omit\n}\n", "import { callAll, cx } from \"@chakra-ui/shared-utils\"\nimport {\n HTMLChakraProps,\n PropsOf,\n SystemStyleObject,\n ThemingProps,\n chakra,\n forwardRef,\n keyframes,\n omitThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cloneElement, useMemo } from \"react\"\nimport { useCheckboxGroupContext } from \"./checkbox-context\"\nimport { CheckboxIcon } from \"./checkbox-icon\"\nimport { CheckboxOptions, UseCheckboxProps } from \"./checkbox-types\"\nimport { useCheckbox } from \"./use-checkbox\"\nimport { useInitialAnimationState } from \"./use-initial-animation-state\"\n\nconst controlStyles: SystemStyleObject = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n verticalAlign: \"top\",\n userSelect: \"none\",\n flexShrink: 0,\n}\n\nconst rootStyles: SystemStyleObject = {\n cursor: \"pointer\",\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n position: \"relative\",\n}\n\nconst checkAnim = keyframes({\n from: {\n opacity: 0,\n strokeDashoffset: 16,\n transform: \"scale(0.95)\",\n },\n to: {\n opacity: 1,\n strokeDashoffset: 0,\n transform: \"scale(1)\",\n },\n})\n\nconst indeterminateOpacityAnim = keyframes({\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n})\nconst indeterminateScaleAnim = keyframes({\n from: {\n transform: \"scaleX(0.65)\",\n },\n to: {\n transform: \"scaleX(1)\",\n },\n})\n\ntype CheckboxControlProps = Omit, keyof UseCheckboxProps>\n\ntype BaseInputProps = Pick<\n PropsOf<\"input\">,\n \"onBlur\" | \"checked\" | \"defaultChecked\"\n>\n\nexport interface CheckboxProps\n extends CheckboxControlProps,\n BaseInputProps,\n ThemingProps<\"Checkbox\">,\n UseCheckboxProps,\n CheckboxOptions {}\n\n/**\n * Checkbox\n *\n * React component used in forms when a user needs to select\n * multiple values from several options.\n *\n * @see Docs https://chakra-ui.com/checkbox\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props,\n ref,\n) {\n const group = useCheckboxGroupContext()\n\n const mergedProps = { ...group, ...props } as CheckboxProps\n const styles = useMultiStyleConfig(\"Checkbox\", mergedProps)\n\n const ownProps = omitThemingProps(props)\n\n const {\n spacing = \"0.5rem\",\n className,\n children,\n iconColor,\n iconSize,\n icon = ,\n isChecked: isCheckedProp,\n isDisabled = group?.isDisabled,\n onChange: onChangeProp,\n inputProps,\n ...rest\n } = ownProps\n\n let isChecked = isCheckedProp\n if (group?.value && ownProps.value) {\n isChecked = group.value.includes(ownProps.value)\n }\n\n let onChange = onChangeProp\n if (group?.onChange && ownProps.value) {\n onChange = callAll(group.onChange, onChangeProp)\n }\n\n const {\n state,\n getInputProps,\n getCheckboxProps,\n getLabelProps,\n getRootProps,\n } = useCheckbox({\n ...rest,\n isDisabled,\n isChecked,\n onChange,\n })\n\n const shouldAnimate = useInitialAnimationState(state.isChecked)\n\n const iconStyles: SystemStyleObject = useMemo(\n () => ({\n animation: !shouldAnimate\n ? undefined\n : state.isIndeterminate\n ? `${indeterminateOpacityAnim} 20ms linear, ${indeterminateScaleAnim} 200ms linear`\n : `${checkAnim} 200ms linear`,\n fontSize: iconSize,\n color: iconColor,\n ...styles.icon,\n }),\n [iconColor, iconSize, shouldAnimate, state.isIndeterminate, styles.icon],\n )\n\n const clonedIcon = cloneElement(icon, {\n __css: iconStyles,\n isIndeterminate: state.isIndeterminate,\n isChecked: state.isChecked,\n })\n\n return (\n \n \n \n {clonedIcon}\n \n {children && (\n \n {children}\n \n )}\n \n )\n})\n\nCheckbox.displayName = \"Checkbox\"\n", "import { chakra, SystemStyleObject, HTMLChakraProps } from \"@chakra-ui/system\"\n\nexport interface ControlBoxOptions {\n type?: \"checkbox\" | \"radio\"\n _hover?: SystemStyleObject\n _invalid?: SystemStyleObject\n _disabled?: SystemStyleObject\n _focus?: SystemStyleObject\n _checked?: SystemStyleObject\n _child?: SystemStyleObject\n _checkedAndChild?: SystemStyleObject\n _checkedAndDisabled?: SystemStyleObject\n _checkedAndFocus?: SystemStyleObject\n _checkedAndHover?: SystemStyleObject\n}\n\nexport type IControlBox = ControlBoxOptions\n\ninterface BaseControlProps\n extends Omit, keyof ControlBoxOptions> {}\n\nexport interface ControlBoxProps extends BaseControlProps, ControlBoxOptions {}\n\n/**\n * @deprecated This component will be removed in the next major release.\n */\nexport const ControlBox: React.FC = (props) => {\n const {\n type = \"checkbox\",\n _hover,\n _invalid,\n _disabled,\n _focus,\n _checked,\n _child = { opacity: 0 },\n _checkedAndChild = { opacity: 1 },\n _checkedAndDisabled,\n _checkedAndFocus,\n _checkedAndHover,\n children,\n ...rest\n } = props\n\n const checkedAndDisabled = `input[type=${type}]:checked:disabled + &`\n const checkedAndHover = `input[type=${type}]:checked:hover:not(:disabled) + &`\n const checkedAndFocus = `input[type=${type}]:checked:focus + &`\n const disabled = `input[type=${type}]:disabled + &`\n const focus = `input[type=${type}]:focus + &`\n const hover = `input[type=${type}]:hover:not(:disabled):not(:checked) + &`\n const checked = `input[type=${type}]:checked + &, input[type=${type}][aria-checked=mixed] + &`\n const invalid = `input[type=${type}][aria-invalid=true] + &`\n const child = `& > *`\n\n return (\n \n {children}\n \n )\n}\n\nControlBox.displayName = \"ControlBox\"\n\nexport default ControlBox\n", "// src/index.ts\nfunction toNumber(value) {\n const num = parseFloat(value);\n return typeof num !== \"number\" || Number.isNaN(num) ? 0 : num;\n}\nfunction toPrecision(value, precision) {\n let nextValue = toNumber(value);\n const scaleFactor = 10 ** (precision != null ? precision : 10);\n nextValue = Math.round(nextValue * scaleFactor) / scaleFactor;\n return precision ? nextValue.toFixed(precision) : nextValue.toString();\n}\nfunction countDecimalPlaces(value) {\n if (!Number.isFinite(value))\n return 0;\n let e = 1;\n let p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n}\nfunction valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction roundValueToStep(value, from, step) {\n const nextValue = Math.round((value - from) / step) * step + from;\n const precision = countDecimalPlaces(step);\n return toPrecision(nextValue, precision);\n}\nfunction clampValue(value, min, max) {\n if (value == null)\n return value;\n if (max < min) {\n console.warn(\"clamp: max cannot be less than min\");\n }\n return Math.min(Math.max(value, min), max);\n}\nexport {\n clampValue,\n countDecimalPlaces,\n percentToValue,\n roundValueToStep,\n toPrecision,\n valueToPercent\n};\n", "import { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport {\n clampValue,\n countDecimalPlaces,\n toPrecision,\n} from \"@chakra-ui/number-utils\"\nimport { useCallback, useState } from \"react\"\n\nexport interface UseCounterProps {\n /**\n * The callback fired when the value changes\n */\n onChange?(valueAsString: string, valueAsNumber: number): void\n /**\n * The number of decimal points used to round the value\n */\n precision?: number\n /**\n * The initial value of the counter. Should be less than `max` and greater than `min`\n */\n defaultValue?: string | number\n /**\n * The value of the counter. Should be less than `max` and greater than `min`\n */\n value?: string | number\n /**\n * The step used to increment or decrement the value\n * @default 1\n */\n step?: number\n /**\n * The minimum value of the counter\n * @default Number.MIN_SAFE_INTEGER\n */\n min?: number\n /**\n * The maximum value of the counter\n * @default Number.MAX_SAFE_INTEGER\n */\n max?: number\n /**\n * This controls the value update behavior in general.\n *\n * - If `true` and you use the stepper or up/down arrow keys,\n * the value will not exceed the `max` or go lower than `min`\n *\n * - If `false`, the value will be allowed to go out of range.\n *\n * @default true\n */\n keepWithinRange?: boolean\n}\n\nexport function useCounter(props: UseCounterProps = {}) {\n const {\n onChange,\n precision: precisionProp,\n defaultValue,\n value: valueProp,\n step: stepProp = 1,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n keepWithinRange = true,\n } = props\n\n const onChangeProp = useCallbackRef(onChange)\n\n const [valueState, setValue] = useState(() => {\n if (defaultValue == null) return \"\"\n return cast(defaultValue, stepProp, precisionProp) ?? \"\"\n })\n\n /**\n * Because the component that consumes this hook can be controlled or uncontrolled\n * we'll keep track of that\n */\n const isControlled = typeof valueProp !== \"undefined\"\n const value = isControlled ? valueProp : valueState\n\n const decimalPlaces = getDecimalPlaces(parse(value), stepProp)\n\n const precision = precisionProp ?? decimalPlaces\n\n const update = useCallback(\n (next: string | number) => {\n if (next === value) return\n if (!isControlled) {\n setValue(next.toString())\n }\n onChangeProp?.(next.toString(), parse(next))\n },\n [onChangeProp, isControlled, value],\n )\n\n // Function to clamp the value and round it to the precision\n const clamp = useCallback(\n (value: number) => {\n let nextValue = value\n\n if (keepWithinRange) {\n nextValue = clampValue(nextValue, min, max)\n }\n\n return toPrecision(nextValue, precision)\n },\n [precision, keepWithinRange, max, min],\n )\n\n const increment = useCallback(\n (step = stepProp) => {\n let next: string | number\n\n /**\n * Let's follow the native browser behavior for\n * scenarios where the input starts empty (\"\")\n */\n if (value === \"\") {\n /**\n * If `min` is set, native input, starts at the `min`.\n * Else, it starts at `step`\n */\n next = parse(step)\n } else {\n next = parse(value) + step\n }\n\n next = clamp(next as number)\n update(next)\n },\n [clamp, stepProp, update, value],\n )\n\n const decrement = useCallback(\n (step = stepProp) => {\n let next: string | number\n\n // Same thing here. We'll follow native implementation\n if (value === \"\") {\n next = parse(-step)\n } else {\n next = parse(value) - step\n }\n\n next = clamp(next as number)\n update(next)\n },\n [clamp, stepProp, update, value],\n )\n\n const reset = useCallback(() => {\n let next: string | number\n if (defaultValue == null) {\n next = \"\"\n } else {\n next = cast(defaultValue, stepProp, precisionProp) ?? min\n }\n update(next)\n }, [defaultValue, precisionProp, stepProp, update, min])\n\n const castValue = useCallback(\n (value: string | number) => {\n const nextValue = cast(value, stepProp, precision) ?? min\n update(nextValue)\n },\n [precision, stepProp, update, min],\n )\n\n const valueAsNumber = parse(value)\n\n /**\n * Common range checks\n */\n const isOutOfRange = valueAsNumber > max || valueAsNumber < min\n const isAtMax = valueAsNumber === max\n const isAtMin = valueAsNumber === min\n\n return {\n isOutOfRange,\n isAtMax,\n isAtMin,\n precision,\n value,\n valueAsNumber,\n update,\n reset,\n increment,\n decrement,\n clamp,\n cast: castValue,\n setValue,\n }\n}\n\nexport type UseCounterReturn = ReturnType\n\nfunction parse(value: string | number) {\n return parseFloat(value.toString().replace(/[^\\w.-]+/g, \"\"))\n}\n\nfunction getDecimalPlaces(value: number, step: number) {\n return Math.max(countDecimalPlaces(step), countDecimalPlaces(value))\n}\n\nfunction cast(value: string | number, step: number, precision?: number) {\n const parsedValue = parse(value)\n if (Number.isNaN(parsedValue)) return undefined\n const decimalPlaces = getDecimalPlaces(parsedValue, step)\n return toPrecision(parsedValue, precision ?? decimalPlaces)\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport { SystemStyleObject } from \"@chakra-ui/system\"\nimport { UseEditableReturn } from \"./use-editable\"\n\nexport const [EditableStylesProvider, useEditableStyles] = createContext<\n Record\n>({\n name: `EditableStylesContext`,\n errorMessage: `useEditableStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n\nexport type EditableContext = Omit\n\nexport const [EditableProvider, useEditableContext] =\n createContext({\n name: \"EditableContext\",\n errorMessage:\n \"useEditableContext: context is undefined. Seems you forgot to wrap the editable components in ``\",\n })\n", "import { useEditableContext } from \"./editable-context\"\n\n/**\n * React hook use to gain access to the editable state and actions.\n */\n\nexport function useEditableState() {\n const { isEditing, onSubmit, onCancel, onEdit, isDisabled } =\n useEditableContext()\n\n return {\n isEditing,\n onSubmit,\n onCancel,\n onEdit,\n isDisabled,\n }\n}\n", "import { SystemStyleObject } from \"@chakra-ui/system\"\n\nexport const commonStyles: SystemStyleObject = {\n fontSize: \"inherit\",\n fontWeight: \"inherit\",\n textAlign: \"inherit\",\n bg: \"transparent\",\n}\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useEditableContext, useEditableStyles } from \"./editable-context\"\nimport { commonStyles } from \"./shared\"\n\nexport interface EditableInputProps extends HTMLChakraProps<\"input\"> {}\n/**\n * EditableInput\n *\n * The input used in the `edit` mode\n */\n\nexport const EditableInput = forwardRef(\n function EditableInput(props, ref) {\n const { getInputProps } = useEditableContext()\n const styles = useEditableStyles()\n\n const inputProps = getInputProps(props, ref)\n const _className = cx(\"chakra-editable__input\", props.className)\n\n return (\n \n )\n },\n)\nEditableInput.displayName = \"EditableInput\"\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useEditableContext, useEditableStyles } from \"./editable-context\"\nimport { commonStyles } from \"./shared\"\n\nexport interface EditablePreviewProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * EditablePreview\n *\n * The `span` used to display the final value, in the `preview` mode\n */\nexport const EditablePreview = forwardRef(\n function EditablePreview(props, ref) {\n const { getPreviewProps } = useEditableContext()\n const styles = useEditableStyles()\n\n const previewProps = getPreviewProps(props, ref) as HTMLChakraProps<\"span\">\n const _className = cx(\"chakra-editable__preview\", props.className)\n\n return (\n \n )\n },\n)\nEditablePreview.displayName = \"EditablePreview\"\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useEditableContext, useEditableStyles } from \"./editable-context\"\nimport { commonStyles } from \"./shared\"\n\nexport interface EditableTextareaProps extends HTMLChakraProps<\"textarea\"> {}\n\n/**\n * EditableTextarea\n *\n * The textarea used in the `edit` mode\n */\n\nexport const EditableTextarea = forwardRef(\n function EditableTextarea(props, ref) {\n const { getTextareaProps } = useEditableContext()\n const styles = useEditableStyles()\n\n const textareaProps = getTextareaProps(props, ref)\n const _className = cx(\"chakra-editable__textarea\", props.className)\n\n return (\n \n )\n },\n)\nEditableTextarea.displayName = \"EditableTextarea\"\n", "import { useEffect } from \"react\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\n\ntype Target = EventTarget | null | (() => EventTarget | null)\ntype Options = boolean | AddEventListenerOptions\n\nexport function useEventListener(\n target: Target,\n event: K,\n handler?: (event: DocumentEventMap[K]) => void,\n options?: Options,\n): VoidFunction\nexport function useEventListener(\n target: Target,\n event: K,\n handler?: (event: WindowEventMap[K]) => void,\n options?: Options,\n): VoidFunction\nexport function useEventListener(\n target: Target,\n event: K,\n handler?: (event: GlobalEventHandlersEventMap[K]) => void,\n options?: Options,\n): VoidFunction\nexport function useEventListener(\n target: Target,\n event: string,\n handler: ((event: Event) => void) | undefined,\n options?: Options,\n) {\n const listener = useCallbackRef(handler)\n\n useEffect(() => {\n const node = typeof target === \"function\" ? target() : target ?? document\n\n if (!handler || !node) return\n\n node.addEventListener(event, listener, options)\n return () => {\n node.removeEventListener(event, listener, options)\n }\n }, [event, target, options, listener, handler])\n\n return () => {\n const node = typeof target === \"function\" ? target() : target ?? document\n node?.removeEventListener(event, listener, options)\n }\n}\n", "import { useEventListener } from \"@chakra-ui/react-use-event-listener\"\n\nexport interface UseFocusOnMouseDownProps {\n enabled?: boolean\n ref: React.RefObject\n elements?: Array | HTMLElement | null>\n}\n\nfunction isRefObject(val: any): val is { current: any } {\n return \"current\" in val\n}\n\nconst isDom = () => typeof window !== \"undefined\"\nfunction getPlatform() {\n const agent = (navigator as any).userAgentData\n return agent?.platform ?? navigator.platform\n}\nconst vn = (v: RegExp) => isDom() && v.test(navigator.vendor)\nconst pt = (v: RegExp) => isDom() && v.test(getPlatform())\nconst isApple = () => pt(/mac|iphone|ipad|ipod/i)\nconst isSafari = () => isApple() && vn(/apple/i)\n\n/**\n * Polyfill to get `relatedTarget` working correctly consistently\n * across all browsers.\n *\n * It ensures that elements receives focus on pointer down if\n * it's not the active element.\n *\n * @internal\n */\nexport function useFocusOnPointerDown(props: UseFocusOnMouseDownProps) {\n const { ref, elements, enabled } = props\n\n const doc = () => ref.current?.ownerDocument ?? document\n\n useEventListener(doc, \"pointerdown\", (event) => {\n if (!isSafari() || !enabled) return\n const target = event.target as HTMLElement\n\n const els = elements ?? [ref]\n const isValidTarget = els.some((elementOrRef) => {\n const el = isRefObject(elementOrRef) ? elementOrRef.current : elementOrRef\n return el?.contains(target) || el === target\n })\n\n if (doc().activeElement !== target && isValidTarget) {\n event.preventDefault()\n target.focus()\n }\n })\n}\n", "import { useFocusOnPointerDown } from \"@chakra-ui/react-use-focus-on-pointer-down\"\nimport { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useUpdateEffect } from \"@chakra-ui/react-use-update-effect\"\nimport { useControllableState } from \"@chakra-ui/react-use-controllable-state\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { useCallbackRef } from \"@chakra-ui/react-use-callback-ref\"\nimport { ariaAttr, callAllHandlers } from \"@chakra-ui/shared-utils\"\nimport { PropGetter } from \"@chakra-ui/react-types\"\nimport { useCallback, useEffect, useRef, useState, RefObject } from \"react\"\n\ninterface FocusableElement {\n focus(options?: FocusOptions): void\n}\n\nexport interface UseEditableProps {\n /**\n * The value of the Editable in both edit & preview mode\n */\n value?: string\n /**\n * The initial value of the Editable in both edit & preview mode\n */\n defaultValue?: string\n /**\n * If `true`, the Editable will be disabled.\n */\n isDisabled?: boolean\n /**\n * If `true`, the Editable will start with edit mode by default.\n */\n startWithEditView?: boolean\n /**\n * If `true`, the read only view, has a `tabIndex` set to `0`\n * so it can receive focus via the keyboard or click.\n * @default true\n */\n isPreviewFocusable?: boolean\n /**\n * If `true`, it'll update the value onBlur and turn off the edit mode.\n * @default true\n */\n submitOnBlur?: boolean\n /**\n * Callback invoked when user changes input.\n */\n onChange?: (nextValue: string) => void\n /**\n * Callback invoked when user cancels input with the `Esc` key.\n * It provides the last confirmed value as argument.\n */\n onCancel?: (previousValue: string) => void\n /**\n * Callback invoked when user confirms value with `enter` key or by blurring input.\n */\n onSubmit?: (nextValue: string) => void\n /**\n * Callback invoked once the user enters edit mode.\n */\n onEdit?: () => void\n /**\n * Callback invoked when the user either submits or cancels.\n * It provides the last confirmed value as argument.\n */\n onBlur?: (nextValue: string) => void\n /**\n * If `true`, the input's text will be highlighted on focus.\n * @default true\n */\n selectAllOnFocus?: boolean\n /**\n * The placeholder text when the value is empty.\n */\n placeholder?: string\n /**\n * The `ref` of element to receive focus when the modal closes.\n */\n finalFocusRef?: RefObject\n}\n\nfunction contains(parent: HTMLElement | null, child: HTMLElement) {\n if (!parent) return false\n return parent === child || parent.contains(child)\n}\n\n/**\n * React hook for managing the inline renaming of some text.\n *\n * @see Docs https://chakra-ui.com/editable\n */\nexport function useEditable(props: UseEditableProps = {}) {\n const {\n onChange: onChangeProp,\n onCancel: onCancelProp,\n onSubmit: onSubmitProp,\n onBlur: onBlurProp,\n value: valueProp,\n isDisabled,\n defaultValue,\n startWithEditView,\n isPreviewFocusable = true,\n submitOnBlur = true,\n selectAllOnFocus = true,\n placeholder,\n onEdit: onEditCallback,\n finalFocusRef,\n ...htmlProps\n } = props\n\n const onEditProp = useCallbackRef(onEditCallback)\n\n const defaultIsEditing = Boolean(startWithEditView && !isDisabled)\n\n const [isEditing, setIsEditing] = useState(defaultIsEditing)\n\n const [value, setValue] = useControllableState({\n defaultValue: defaultValue || \"\",\n value: valueProp,\n onChange: onChangeProp,\n })\n\n /**\n * Keep track of the previous value, so if users\n * presses `cancel`, we can revert to it.\n */\n const [prevValue, setPrevValue] = useState(value)\n\n /**\n * Ref to help focus the input in edit mode\n */\n const inputRef = useRef(null)\n const previewRef = useRef(null)\n\n const editButtonRef = useRef(null)\n const cancelButtonRef = useRef(null)\n const submitButtonRef = useRef(null)\n\n useFocusOnPointerDown({\n ref: inputRef,\n enabled: isEditing,\n elements: [cancelButtonRef, submitButtonRef],\n })\n\n const isInteractive = !isEditing && !isDisabled\n\n useSafeLayoutEffect(() => {\n if (isEditing) {\n inputRef.current?.focus()\n if (selectAllOnFocus) inputRef.current?.select()\n }\n }, [])\n\n useUpdateEffect(() => {\n if (!isEditing) {\n if (finalFocusRef) {\n finalFocusRef.current?.focus()\n } else {\n editButtonRef.current?.focus()\n }\n return\n }\n\n inputRef.current?.focus()\n\n if (selectAllOnFocus) {\n inputRef.current?.select()\n }\n\n onEditProp?.()\n }, [isEditing, onEditProp, selectAllOnFocus])\n\n const onEdit = useCallback(() => {\n if (isInteractive) {\n setIsEditing(true)\n }\n }, [isInteractive])\n\n const onUpdatePrevValue = useCallback(() => {\n setPrevValue(value)\n }, [value])\n\n const onCancel = useCallback(() => {\n setIsEditing(false)\n setValue(prevValue)\n onCancelProp?.(prevValue)\n onBlurProp?.(prevValue)\n }, [onCancelProp, onBlurProp, setValue, prevValue])\n\n const onSubmit = useCallback(() => {\n setIsEditing(false)\n setPrevValue(value)\n onSubmitProp?.(value)\n onBlurProp?.(prevValue)\n }, [value, onSubmitProp, onBlurProp, prevValue])\n\n useEffect(() => {\n if (isEditing) return\n // https://bugzilla.mozilla.org/show_bug.cgi?id=559561\n const inputEl = inputRef.current\n if (inputEl?.ownerDocument.activeElement === inputEl) {\n inputEl?.blur()\n }\n }, [isEditing])\n\n const onChange = useCallback(\n (event: React.ChangeEvent) => {\n setValue(event.currentTarget.value)\n },\n [setValue],\n )\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const eventKey = event.key\n\n const keyMap: Record = {\n Escape: onCancel,\n Enter: (event) => {\n if (!event.shiftKey && !event.metaKey) {\n onSubmit()\n }\n },\n }\n\n const action = keyMap[eventKey]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [onCancel, onSubmit],\n )\n\n const onKeyDownWithoutSubmit = useCallback(\n (event: React.KeyboardEvent) => {\n const eventKey = event.key\n\n const keyMap: Record = {\n Escape: onCancel,\n }\n\n const action = keyMap[eventKey]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [onCancel],\n )\n\n const isValueEmpty = value.length === 0\n\n const onBlur = useCallback(\n (event: React.FocusEvent) => {\n if (!isEditing) return\n const doc = event.currentTarget.ownerDocument\n const relatedTarget = (event.relatedTarget ??\n doc.activeElement) as HTMLElement\n const targetIsCancel = contains(cancelButtonRef.current, relatedTarget)\n const targetIsSubmit = contains(submitButtonRef.current, relatedTarget)\n const isValidBlur = !targetIsCancel && !targetIsSubmit\n\n if (isValidBlur) {\n if (submitOnBlur) {\n onSubmit()\n } else {\n onCancel()\n }\n }\n },\n [submitOnBlur, onSubmit, onCancel, isEditing],\n )\n\n const getPreviewProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n const tabIndex = isInteractive && isPreviewFocusable ? 0 : undefined\n return {\n ...props,\n ref: mergeRefs(ref, previewRef),\n children: isValueEmpty ? placeholder : value,\n hidden: isEditing,\n \"aria-disabled\": ariaAttr(isDisabled),\n tabIndex,\n onFocus: callAllHandlers(props.onFocus, onEdit, onUpdatePrevValue),\n }\n },\n [\n isDisabled,\n isEditing,\n isInteractive,\n isPreviewFocusable,\n isValueEmpty,\n onEdit,\n onUpdatePrevValue,\n placeholder,\n value,\n ],\n )\n\n const getInputProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n hidden: !isEditing,\n placeholder,\n ref: mergeRefs(ref, inputRef),\n disabled: isDisabled,\n \"aria-disabled\": ariaAttr(isDisabled),\n value,\n onBlur: callAllHandlers(props.onBlur, onBlur),\n onChange: callAllHandlers(props.onChange, onChange),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onFocus: callAllHandlers(props.onFocus, onUpdatePrevValue),\n }),\n [\n isDisabled,\n isEditing,\n onBlur,\n onChange,\n onKeyDown,\n onUpdatePrevValue,\n placeholder,\n value,\n ],\n )\n\n const getTextareaProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n hidden: !isEditing,\n placeholder,\n ref: mergeRefs(ref, inputRef),\n disabled: isDisabled,\n \"aria-disabled\": ariaAttr(isDisabled),\n value,\n onBlur: callAllHandlers(props.onBlur, onBlur),\n onChange: callAllHandlers(props.onChange, onChange),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDownWithoutSubmit),\n onFocus: callAllHandlers(props.onFocus, onUpdatePrevValue),\n }),\n [\n isDisabled,\n isEditing,\n onBlur,\n onChange,\n onKeyDownWithoutSubmit,\n onUpdatePrevValue,\n placeholder,\n value,\n ],\n )\n\n const getEditButtonProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n \"aria-label\": \"Edit\",\n ...props,\n type: \"button\",\n onClick: callAllHandlers(props.onClick, onEdit),\n ref: mergeRefs(ref, editButtonRef),\n disabled: isDisabled,\n }),\n [onEdit, isDisabled],\n )\n\n const getSubmitButtonProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n ...props,\n \"aria-label\": \"Submit\",\n ref: mergeRefs(submitButtonRef, ref),\n type: \"button\",\n onClick: callAllHandlers(props.onClick, onSubmit),\n disabled: isDisabled,\n }),\n [onSubmit, isDisabled],\n )\n\n const getCancelButtonProps: PropGetter = useCallback(\n (props = {}, ref = null) => ({\n \"aria-label\": \"Cancel\",\n id: \"cancel\",\n ...props,\n ref: mergeRefs(cancelButtonRef, ref),\n type: \"button\",\n onClick: callAllHandlers(props.onClick, onCancel),\n disabled: isDisabled,\n }),\n [onCancel, isDisabled],\n )\n\n return {\n isEditing,\n isDisabled,\n isValueEmpty,\n value,\n onEdit,\n onCancel,\n onSubmit,\n getPreviewProps,\n getInputProps,\n getTextareaProps,\n getEditButtonProps,\n getSubmitButtonProps,\n getCancelButtonProps,\n htmlProps,\n }\n}\n\nexport type UseEditableReturn = ReturnType\n", "import { cx, runIfFn } from \"@chakra-ui/shared-utils\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\nimport { EditableProvider, EditableStylesProvider } from \"./editable-context\"\nimport {\n useEditable,\n UseEditableProps,\n UseEditableReturn,\n} from \"./use-editable\"\n\ntype RenderProps = Pick<\n UseEditableReturn,\n \"isEditing\" | \"onSubmit\" | \"onCancel\" | \"onEdit\"\n>\n\ntype MaybeRenderProp

= React.ReactNode | ((props: P) => React.ReactNode)\n\ninterface BaseEditableProps\n extends Omit<\n HTMLChakraProps<\"div\">,\n \"onChange\" | \"value\" | \"defaultValue\" | \"onSubmit\" | \"onBlur\"\n > {}\n\nexport interface EditableProps\n extends UseEditableProps,\n Omit,\n ThemingProps<\"Editable\"> {\n children?: MaybeRenderProp\n}\n\n/**\n * Editable\n *\n * The wrapper that provides context and logic for all editable\n * components. It renders a `div`\n *\n * @see Docs https://chakra-ui.com/docs/components/editable\n */\nexport const Editable = forwardRef(function Editable(\n props,\n ref,\n) {\n const styles = useMultiStyleConfig(\"Editable\", props)\n\n const ownProps = omitThemingProps(props)\n const { htmlProps, ...context } = useEditable(ownProps)\n\n const { isEditing, onSubmit, onCancel, onEdit } = context\n\n const _className = cx(\"chakra-editable\", props.className)\n\n const children = runIfFn(props.children, {\n isEditing,\n onSubmit,\n onCancel,\n onEdit,\n })\n\n return (\n \n \n )}\n className={_className}\n >\n {children}\n \n \n \n )\n})\n\nEditable.displayName = \"Editable\"\n", "import { useEditableContext } from \"./editable-context\"\n\n/**\n * React hook use to create controls for the editable component\n */\n\nexport function useEditableControls() {\n const {\n isEditing,\n getEditButtonProps,\n getCancelButtonProps,\n getSubmitButtonProps,\n } = useEditableContext()\n\n return {\n isEditing,\n getEditButtonProps,\n getCancelButtonProps,\n getSubmitButtonProps,\n }\n}\n", "function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };", "import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nimport { focusScope } from './scope';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var _React$useState2 = React.useState({}),\n update = _React$useState2[1];\n var children = props.children,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$noFocusGuards = props.noFocusGuards,\n noFocusGuards = _props$noFocusGuards === void 0 ? false : _props$noFocusGuards,\n _props$persistentFocu = props.persistentFocus,\n persistentFocus = _props$persistentFocu === void 0 ? false : _props$persistentFocu,\n _props$crossFrame = props.crossFrame,\n crossFrame = _props$crossFrame === void 0 ? true : _props$crossFrame,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n _props$returnFocus = props.returnFocus,\n shouldReturnFocus = _props$returnFocus === void 0 ? false : _props$returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n var _React$useState3 = React.useState({}),\n id = _React$useState3[0];\n var onActivation = React.useCallback(function (_ref) {\n var captureFocusRestore = _ref.captureFocusRestore;\n if (!originalFocusedElement.current) {\n var _document;\n var activeElement = (_document = document) == null ? void 0 : _document.activeElement;\n originalFocusedElement.current = activeElement;\n if (activeElement !== document.body) {\n originalFocusedElement.current = captureFocusRestore(activeElement);\n }\n }\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n isActive.current = true;\n update();\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n update();\n }, [onDeactivationCallback]);\n var returnFocus = React.useCallback(function (allowDefer) {\n var focusRestore = originalFocusedElement.current;\n if (focusRestore) {\n var returnFocusTo = (typeof focusRestore === 'function' ? focusRestore() : focusRestore) || document.body;\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n if (allowDefer) {\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]);\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium;\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n React.useEffect(function () {\n if (!observed.current && typeof Container !== 'string') {\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n var focusScopeValue = React.useMemo(function () {\n return {\n observed: observed,\n shards: shards,\n enabled: !disabled,\n active: isActive.current\n };\n }, [disabled, isActive.current, shards, realObserved]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), /*#__PURE__*/React.createElement(focusScope.Provider, {\n value: focusScopeValue\n }, children)), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nexport default FocusLock;", "/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n", "/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n", "import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n", "import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return

...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n", "import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\nvar InFocusGuard = function InFocusGuard(_ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? null : _ref$children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nexport default InFocusGuard;", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n 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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n 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; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n 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);\n 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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n 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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n 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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useSidecar } from './hook';\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function sidecar(importer, errorComponent) {\n var ErrorCase = function () { return errorComponent; };\n return function Sidecar(props) {\n var _a = useSidecar(importer, props.sideCar), Car = _a[0], error = _a[1];\n if (error && errorComponent) {\n return ErrorCase;\n }\n // @ts-expect-error type shenanigans\n return Car ? React.createElement(Car, __assign({}, props)) : null;\n };\n}\n", "import { useState, useEffect } from 'react';\nimport { env } from './env';\nvar cache = new WeakMap();\nvar NO_OPTIONS = {};\nexport function useSidecar(importer, effect) {\n var options = (effect && effect.options) || NO_OPTIONS;\n if (env.isNode && !options.ssr) {\n return [null, null];\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useRealSidecar(importer, effect);\n}\nfunction useRealSidecar(importer, effect) {\n var options = (effect && effect.options) || NO_OPTIONS;\n var couldUseCache = env.forceCache || (env.isNode && !!options.ssr) || !options.async;\n var _a = useState(couldUseCache ? function () { return cache.get(importer); } : undefined), Car = _a[0], setCar = _a[1];\n var _b = useState(null), error = _b[0], setError = _b[1];\n useEffect(function () {\n if (!Car) {\n importer().then(function (car) {\n var resolved = effect ? effect.read() : car.default || car;\n if (!resolved) {\n console.error('Sidecar error: with importer', importer);\n var error_1;\n if (effect) {\n console.error('Sidecar error: with medium', effect);\n error_1 = new Error('Sidecar medium was not found');\n }\n else {\n error_1 = new Error('Sidecar was not found in exports');\n }\n setError(function () { return error_1; });\n throw error_1;\n }\n cache.set(importer, resolved);\n setCar(function () { return resolved; });\n }, function (e) { return setError(function () { return e; }); });\n }\n }, []);\n return [Car, error];\n}\n", "import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n", "import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useState, useCallback, useEffect, useLayoutEffect } from 'react';\nexport function renderCar(WrappedComponent, defaults) {\n function State(_a) {\n var stateRef = _a.stateRef, props = _a.props;\n var renderTarget = useCallback(function SideTarget() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n useLayoutEffect(function () {\n stateRef.current(args);\n });\n return null;\n }, []);\n // @ts-ignore\n return React.createElement(WrappedComponent, __assign({}, props, { children: renderTarget }));\n }\n var Children = React.memo(function (_a) {\n var stateRef = _a.stateRef, defaultState = _a.defaultState, children = _a.children;\n var _b = useState(defaultState.current), state = _b[0], setState = _b[1];\n useEffect(function () {\n stateRef.current = setState;\n }, []);\n return children.apply(void 0, state);\n }, function () { return true; });\n return function Combiner(props) {\n var defaultState = React.useRef(defaults(props));\n var ref = React.useRef(function (state) { return (defaultState.current = state); });\n return (React.createElement(React.Fragment, null,\n React.createElement(State, { stateRef: ref, props: props }),\n React.createElement(Children, { stateRef: ref, defaultState: defaultState, children: props.children })));\n };\n}\n", "import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n", "import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true,\n ssr: typeof document !== 'undefined'\n});", "import { createContext } from 'react';\nexport var focusScope = /*#__PURE__*/createContext(undefined);", "import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport { moveFocusInside, focusInside, focusIsHidden, expandFocusableNodes, focusNextElement, focusPrevElement, focusFirstElement, focusLastElement, captureFocusRestore } from 'focus-lock';\nimport { deferAction, extractRef } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n do {\n var item = allNodes[i];\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n return;\n }\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n return Boolean(focusWasOutsideWindow);\n }\n return focusWasOutsideWindow === 'meanwhile';\n};\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && (el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\nvar activateTrap = function activateTrap() {\n var result = false;\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !(focusInside(workingArea) || activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n if (activeElement.blur) {\n activeElement.blur();\n }\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n if (document && activeElement !== document.activeElement && document.querySelector('[data-focus-auto-guard]')) {\n var newActiveElement = document && document.activeElement;\n var allNodes = expandFocusableNodes(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n if (focusedIndex > -1) {\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n return result;\n};\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n event.stopPropagation();\n event.preventDefault();\n }\n};\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\nvar onFocus = function onFocus(event) {\n var source = event.target;\n var currentNode = event.currentTarget;\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just';\n deferAction(function () {\n focusWasOutsideWindow = 'meanwhile';\n });\n};\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\nvar focusLockAPI = {\n moveFocusInside: moveFocusInside,\n focusInside: focusInside,\n focusNextElement: focusNextElement,\n focusPrevElement: focusPrevElement,\n focusFirstElement: focusFirstElement,\n focusLastElement: focusLastElement,\n captureFocusRestore: captureFocusRestore\n};\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation();\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n lastTrap.returnFocus(!trap);\n }\n }\n if (trap) {\n lastActiveFocus = null;\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation(focusLockAPI);\n }\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n}\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb(focusLockAPI);\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);", "function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };", "import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };", "function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };", "import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };", "import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };", "import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };", "import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n", "/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n", "import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isInert = function (node) { return node.hasAttribute('inert'); };\n/**\n * @see https://github.com/testing-library/jest-dom/blob/main/src/to-be-visible.js\n */\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && !isInert(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n", "import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var aTab = Math.max(0, a.tabIndex);\n var bTab = Math.max(0, b.tabIndex);\n var tabDiff = aTab - bTab;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!aTab) {\n return 1;\n }\n if (!bTab) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nvar getTabIndex = function (node) {\n if (node.tabIndex < 0) {\n // all \"focusable\" elements are already preselected\n // but some might have implicit negative tabIndex\n // return 0 for
\" `,\n})\n\nexport { useTableStyles }\n\nexport interface TableOptions {\n layout?: SystemStyleObject[\"tableLayout\"]\n}\n\nexport interface TableProps\n extends HTMLChakraProps<\"table\">,\n TableOptions,\n ThemingProps<\"Table\"> {}\n\n/**\n * The `Table` component is used to organize and display data efficiently. It renders a `
` element by default.\n *\n * @see Docs https://chakra-ui.com/docs/components/table\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/table/\n */\nexport const Table = forwardRef((props, ref) => {\n const styles = useMultiStyleConfig(\"Table\", props)\n const { className, layout, ...tableProps } = omitThemingProps(props)\n\n return (\n \n \n \n )\n})\n\nTable.displayName = \"Table\"\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableHeadProps extends HTMLChakraProps<\"thead\"> {}\n\nexport const Thead = forwardRef((props, ref) => {\n const styles = useTableStyles()\n return \n})\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableRowProps extends HTMLChakraProps<\"tr\"> {}\nexport const Tr = forwardRef((props, ref) => {\n const styles = useTableStyles()\n\n return \n})\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableCaptionProps extends HTMLChakraProps<\"caption\"> {\n /**\n * The placement of the table caption. This sets the `caption-side` CSS attribute.\n * @default \"bottom\"\n */\n placement?: \"top\" | \"bottom\"\n}\n\nexport const TableCaption = forwardRef(\n (props, ref) => {\n const { placement = \"bottom\", ...rest } = props\n const styles = useTableStyles()\n return (\n \n )\n },\n)\n\nTableCaption.displayName = \"TableCaption\"\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\n\nexport interface TableContainerProps extends HTMLChakraProps<\"div\"> {}\n\nexport const TableContainer = forwardRef(\n (props: HTMLChakraProps<\"div\">, ref) => {\n const { overflow, overflowX, className, ...rest } = props\n return (\n \n )\n },\n)\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableBodyProps extends HTMLChakraProps<\"tbody\"> {}\n\nexport const Tbody = forwardRef((props, ref) => {\n const styles = useTableStyles()\n return \n})\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableCellProps extends HTMLChakraProps<\"td\"> {\n /**\n * Aligns the cell content to the right\n * @default false\n */\n isNumeric?: boolean\n}\nexport const Td = forwardRef(\n ({ isNumeric, ...rest }, ref) => {\n const styles = useTableStyles()\n\n return (\n \n )\n },\n)\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableFooterProps extends HTMLChakraProps<\"tfoot\"> {}\n\nexport const Tfoot = forwardRef((props, ref) => {\n const styles = useTableStyles()\n return \n})\n", "import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { useTableStyles } from \"./table\"\n\nexport interface TableColumnHeaderProps extends HTMLChakraProps<\"th\"> {\n /**\n * Aligns the cell content to the right\n * @default false\n */\n isNumeric?: boolean\n}\nexport const Th = forwardRef(\n ({ isNumeric, ...rest }, ref) => {\n const styles = useTableStyles()\n return (\n \n )\n },\n)\n", "import { useClickable, UseClickableProps } from \"@chakra-ui/clickable\"\nimport { createDescendantContext } from \"@chakra-ui/descendant\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport { useSafeLayoutEffect } from \"@chakra-ui/react-use-safe-layout-effect\"\nimport { useControllableState } from \"@chakra-ui/react-use-controllable-state\"\nimport { getValidChildren } from \"@chakra-ui/react-children-utils\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { lazyDisclosure, LazyMode } from \"@chakra-ui/lazy-utils\"\nimport { callAllHandlers } from \"@chakra-ui/shared-utils\"\nimport {\n useCallback,\n useEffect,\n useRef,\n useState,\n useId,\n createElement,\n} from \"react\"\n\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nexport const [\n TabsDescendantsProvider,\n useTabsDescendantsContext,\n useTabsDescendants,\n useTabsDescendant,\n] = createDescendantContext()\n\n/* -------------------------------------------------------------------------------------------------\n * useTabs - The root react hook that manages all tab items\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface UseTabsProps {\n /**\n * The orientation of the tab list.\n * @default \"horizontal\"\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * If `true`, the tabs will be manually activated and\n * display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated\n * and their panel is displayed when they receive focus.\n *\n * @default false\n */\n isManual?: boolean\n /**\n * Callback when the index (controlled or un-controlled) changes.\n */\n onChange?: (index: number) => void\n /**\n * The index of the selected tab (in controlled mode)\n */\n index?: number\n /**\n * The initial index of the selected tab (in uncontrolled mode)\n */\n defaultIndex?: number\n /**\n * The id of the tab\n */\n id?: string\n /**\n * Performance 🚀:\n * If `true`, rendering of the tab panel's will be deferred until it is selected.\n * @default false\n */\n isLazy?: boolean\n /**\n * Performance 🚀:\n * The lazy behavior of tab panels' content when not active.\n * Only works when `isLazy={true}`\n *\n * - \"unmount\": The content of inactive tab panels are always unmounted.\n * - \"keepMounted\": The content of inactive tab panels is initially unmounted,\n * but stays mounted when selected.\n *\n * @default \"unmount\"\n */\n lazyBehavior?: LazyMode\n /**\n * The writing mode direction.\n *\n * - When in RTL, the left and right navigation is flipped\n * @default \"ltr\"\n */\n direction?: \"rtl\" | \"ltr\"\n}\n\n/**\n * Tabs hook that provides all the states, and accessibility\n * helpers to keep all things working properly.\n *\n * Its returned object will be passed unto a Context Provider\n * so all child components can read from it.\n * There is no document link yet\n * @see Docs https://chakra-ui.com/docs/components/useTabs\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n */\nexport function useTabs(props: UseTabsProps) {\n const {\n defaultIndex,\n onChange,\n index,\n isManual,\n isLazy,\n lazyBehavior = \"unmount\",\n orientation = \"horizontal\",\n direction = \"ltr\",\n ...htmlProps\n } = props\n\n /**\n * We use this to keep track of the index of the focused tab.\n *\n * Tabs can be automatically activated, this means selection follows focus.\n * When we navigate with the arrow keys, we move focus and selection to next/prev tab\n *\n * Tabs can also be manually activated, this means selection does not follow focus.\n * When we navigate with the arrow keys, we only move focus NOT selection. The user\n * will need not manually activate the tab using `Enter` or `Space`.\n *\n * This is why we need to keep track of the `focusedIndex` and `selectedIndex`\n */\n const [focusedIndex, setFocusedIndex] = useState(defaultIndex ?? 0)\n\n const [selectedIndex, setSelectedIndex] = useControllableState({\n defaultValue: defaultIndex ?? 0,\n value: index,\n onChange,\n })\n\n /**\n * Sync focused `index` with controlled `selectedIndex` (which is the `props.index`)\n */\n useEffect(() => {\n if (index != null) {\n setFocusedIndex(index)\n }\n }, [index])\n\n /**\n * Think of `useDescendants` as a register for the tab nodes.\n */\n const descendants = useTabsDescendants()\n\n /**\n * Generate a unique id or use user-provided id for the tabs widget\n */\n const uuid = useId()\n const uid = props.id ?? uuid\n const id = `tabs-${uid}`\n\n return {\n id,\n selectedIndex,\n focusedIndex,\n setSelectedIndex,\n setFocusedIndex,\n isManual,\n isLazy,\n lazyBehavior,\n orientation,\n descendants,\n direction,\n htmlProps,\n }\n}\n\nexport type UseTabsReturn = Omit<\n ReturnType,\n \"htmlProps\" | \"descendants\"\n>\n\nexport const [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n errorMessage:\n \"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within \",\n})\n\nexport interface UseTabListProps {\n children?: React.ReactNode\n onKeyDown?: React.KeyboardEventHandler\n ref?: React.Ref\n}\n\n/**\n * Tabs hook to manage multiple tab buttons,\n * and ensures only one tab is selected per time.\n *\n * @param props props object for the tablist\n */\nexport function useTabList

(props: P) {\n const { focusedIndex, orientation, direction } = useTabsContext()\n\n const descendants = useTabsDescendantsContext()\n\n const onKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const nextTab = () => {\n const next = descendants.nextEnabled(focusedIndex)\n if (next) next.node?.focus()\n }\n const prevTab = () => {\n const prev = descendants.prevEnabled(focusedIndex)\n if (prev) prev.node?.focus()\n }\n const firstTab = () => {\n const first = descendants.firstEnabled()\n if (first) first.node?.focus()\n }\n const lastTab = () => {\n const last = descendants.lastEnabled()\n if (last) last.node?.focus()\n }\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n const eventKey = event.key\n\n const ArrowStart = direction === \"ltr\" ? \"ArrowLeft\" : \"ArrowRight\"\n const ArrowEnd = direction === \"ltr\" ? \"ArrowRight\" : \"ArrowLeft\"\n\n const keyMap: Record = {\n [ArrowStart]: () => isHorizontal && prevTab(),\n [ArrowEnd]: () => isHorizontal && nextTab(),\n ArrowDown: () => isVertical && nextTab(),\n ArrowUp: () => isVertical && prevTab(),\n Home: firstTab,\n End: lastTab,\n }\n\n const action = keyMap[eventKey]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [descendants, focusedIndex, orientation, direction],\n )\n\n return {\n ...props,\n role: \"tablist\",\n \"aria-orientation\": orientation,\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n }\n}\n\nexport type UseTabListReturn = ReturnType\n\nexport interface UseTabOptions {\n /**\n * If `true`, the `Tab` won't be toggleable\n * @default false\n */\n isDisabled?: boolean\n /**\n * If `true` and `isDisabled`, the `Tab` will be focusable but not interactive.\n * @default false\n */\n isFocusable?: boolean\n}\n\nexport interface UseTabProps\n extends Omit,\n UseTabOptions {}\n\n/**\n * Tabs hook to manage each tab button.\n *\n * A tab can be disabled and focusable, or both,\n * hence the use of `useClickable` to handle this scenario\n */\nexport function useTab

(props: P) {\n const { isDisabled = false, isFocusable = false, ...htmlProps } = props\n\n const { setSelectedIndex, isManual, id, setFocusedIndex, selectedIndex } =\n useTabsContext()\n\n const { index, register } = useTabsDescendant({\n disabled: isDisabled && !isFocusable,\n })\n\n const isSelected = index === selectedIndex\n\n const onClick = () => {\n setSelectedIndex(index)\n }\n\n const onFocus = () => {\n setFocusedIndex(index)\n const isDisabledButFocusable = isDisabled && isFocusable\n const shouldSelect = !isManual && !isDisabledButFocusable\n if (shouldSelect) {\n setSelectedIndex(index)\n }\n }\n\n const clickableProps = useClickable({\n ...htmlProps,\n ref: mergeRefs(register, props.ref),\n isDisabled,\n isFocusable,\n onClick: callAllHandlers(props.onClick, onClick),\n })\n\n const type: \"button\" | \"submit\" | \"reset\" = \"button\"\n\n return {\n ...clickableProps,\n id: makeTabId(id, index),\n role: \"tab\",\n tabIndex: isSelected ? 0 : -1,\n type,\n \"aria-selected\": isSelected,\n \"aria-controls\": makeTabPanelId(id, index),\n onFocus: isDisabled ? undefined : callAllHandlers(props.onFocus, onFocus),\n }\n}\n\nexport interface UseTabPanelsProps {\n children?: React.ReactNode\n}\n\nconst [TabPanelProvider, useTabPanelContext] = createContext<{\n isSelected: boolean\n id: string\n tabId: string\n selectedIndex: number\n}>({})\n\n/**\n * Tabs hook for managing the visibility of multiple tab panels.\n *\n * Since only one panel can be show at a time, we use `cloneElement`\n * to inject `selected` panel to each TabPanel.\n *\n * It returns a cloned version of its children with\n * all functionality included.\n */\nexport function useTabPanels

(props: P) {\n const context = useTabsContext()\n\n const { id, selectedIndex } = context\n\n const validChildren = getValidChildren(props.children)\n\n const children = validChildren.map((child, index) =>\n createElement(\n TabPanelProvider,\n {\n key: index,\n value: {\n isSelected: index === selectedIndex,\n id: makeTabPanelId(id, index),\n tabId: makeTabId(id, index),\n selectedIndex,\n },\n },\n child,\n ),\n )\n\n return { ...props, children }\n}\n\n/**\n * Tabs hook for managing the visible/hidden states\n * of the tab panel.\n *\n * @param props props object for the tab panel\n */\nexport function useTabPanel(props: Record) {\n const { children, ...htmlProps } = props\n const { isLazy, lazyBehavior } = useTabsContext()\n const { isSelected, id, tabId } = useTabPanelContext()\n\n const hasBeenSelected = useRef(false)\n if (isSelected) {\n hasBeenSelected.current = true\n }\n\n const shouldRenderChildren = lazyDisclosure({\n wasSelected: hasBeenSelected.current,\n isSelected,\n enabled: isLazy,\n mode: lazyBehavior,\n })\n\n return {\n // Puts the tabpanel in the page `Tab` sequence.\n tabIndex: 0,\n ...htmlProps,\n children: shouldRenderChildren ? children : null,\n role: \"tabpanel\",\n \"aria-labelledby\": tabId,\n hidden: !isSelected,\n id,\n }\n}\n\n/**\n * Tabs hook to show an animated indicators that\n * follows the active tab.\n *\n * The way we do it is by measuring the DOM Rect (or dimensions)\n * of the active tab, and return that as CSS style for\n * the indicator.\n */\nexport function useTabIndicator(): React.CSSProperties {\n const context = useTabsContext()\n const descendants = useTabsDescendantsContext()\n\n const { selectedIndex, orientation } = context\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n // Get the clientRect of the selected tab\n const [rect, setRect] = useState(() => {\n if (isHorizontal) return { left: 0, width: 0 }\n if (isVertical) return { top: 0, height: 0 }\n return undefined\n })\n\n const [hasMeasured, setHasMeasured] = useState(false)\n\n // Update the selected tab rect when the selectedIndex changes\n useSafeLayoutEffect(() => {\n if (selectedIndex == null) return\n\n const tab = descendants.item(selectedIndex)\n if (tab == null) return\n\n // Horizontal Tab: Calculate width and left distance\n if (isHorizontal) {\n setRect({ left: tab.node.offsetLeft, width: tab.node.offsetWidth })\n }\n\n // Vertical Tab: Calculate height and top distance\n if (isVertical) {\n setRect({ top: tab.node.offsetTop, height: tab.node.offsetHeight })\n }\n\n // Prevent unwanted transition from 0 to measured rect\n // by setting the measured state in the next tick\n const id = requestAnimationFrame(() => {\n setHasMeasured(true)\n })\n\n return () => {\n if (id) {\n cancelAnimationFrame(id)\n }\n }\n }, [selectedIndex, isHorizontal, isVertical, descendants])\n\n return {\n position: \"absolute\",\n transitionProperty: \"left, right, top, bottom, height, width\",\n transitionDuration: hasMeasured ? \"200ms\" : \"0ms\",\n transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n ...rect,\n }\n}\n\nfunction makeTabId(id: string, index: number) {\n return `${id}--tab-${index}`\n}\n\nfunction makeTabPanelId(id: string, index: number) {\n return `${id}--tabpanel-${index}`\n}\n", "import { createContext } from \"@chakra-ui/react-context\"\nimport {\n chakra,\n forwardRef,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useMemo } from \"react\"\nimport {\n TabsDescendantsProvider,\n TabsProvider,\n useTabs,\n UseTabsProps,\n} from \"./use-tabs\"\n\nconst [TabsStylesProvider, useTabsStyles] = createContext<\n Record\n>({\n name: `TabsStylesContext`,\n errorMessage: `useTabsStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n\nexport { useTabsStyles }\n\ninterface TabsOptions {\n /**\n * If `true`, tabs will stretch to width of the tablist.\n * @default false\n */\n isFitted?: boolean\n /**\n * The alignment of the tabs\n */\n align?: \"start\" | \"end\" | \"center\"\n}\n\nexport interface TabsProps\n extends UseTabsProps,\n ThemingProps<\"Tabs\">,\n Omit, \"onChange\">,\n TabsOptions {\n children: React.ReactNode\n}\n\n/**\n * Tabs\n *\n * Provides context and logic for all tabs components.\n *\n * @see Docs https://chakra-ui.com/docs/components/tabs\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/tabpanel/\n */\nexport const Tabs = forwardRef(function Tabs(props, ref) {\n const styles = useMultiStyleConfig(\"Tabs\", props)\n const { children, className, ...rest } = omitThemingProps(props)\n\n const { htmlProps, descendants, ...ctx } = useTabs(rest)\n const context = useMemo(() => ctx, [ctx])\n\n const { isFitted: _, ...rootProps } = htmlProps as any\n\n const tabsStyles: SystemStyleObject = {\n position: \"relative\",\n ...styles.root,\n }\n\n return (\n \n \n \n \n {children}\n \n \n \n \n )\n})\n\nTabs.displayName = \"Tabs\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { HTMLChakraProps, chakra, forwardRef } from \"@chakra-ui/system\"\n\nimport { useTabsStyles } from \"./tabs\"\nimport { useTabIndicator } from \"./use-tabs\"\n\nexport interface TabIndicatorProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabIndicator\n *\n * Used to render an active tab indicator that animates between\n * selected tabs.\n */\nexport const TabIndicator = forwardRef(\n function TabIndicator(props, ref) {\n const indicatorStyle = useTabIndicator()\n const style = {\n ...props.style,\n ...indicatorStyle,\n }\n\n const styles = useTabsStyles()\n\n return (\n \n )\n },\n)\n\nTabIndicator.displayName = \"TabIndicator\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n HTMLChakraProps,\n SystemStyleObject,\n chakra,\n forwardRef,\n} from \"@chakra-ui/system\"\n\nimport { useTabsStyles } from \"./tabs\"\nimport { UseTabListProps, useTabList } from \"./use-tabs\"\n\nexport interface TabListProps\n extends UseTabListProps,\n Omit, \"onKeyDown\" | \"ref\"> {}\n\n/**\n * TabList is used to manage a list of tab buttons. It renders a `div` by default,\n * and is responsible the keyboard interaction between tabs.\n */\nexport const TabList = forwardRef(function TabList(\n props,\n ref,\n) {\n const tablistProps = useTabList({ ...props, ref })\n\n const styles = useTabsStyles()\n\n const tablistStyles: SystemStyleObject = {\n display: \"flex\",\n ...styles.tablist,\n }\n\n return (\n \n )\n})\n\nTabList.displayName = \"TabList\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { HTMLChakraProps, chakra, forwardRef } from \"@chakra-ui/system\"\n\nimport { useTabsStyles } from \"./tabs\"\nimport { useTabPanel } from \"./use-tabs\"\n\nexport interface TabPanelProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n * Used to render the content for a specific tab.\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props,\n ref,\n) {\n const panelProps = useTabPanel({ ...props, ref })\n const styles = useTabsStyles()\n\n return (\n \n )\n})\n\nTabPanel.displayName = \"TabPanel\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport { HTMLChakraProps, chakra, forwardRef } from \"@chakra-ui/system\"\n\nimport { useTabsStyles } from \"./tabs\"\nimport { useTabPanels } from \"./use-tabs\"\n\nexport interface TabPanelsProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n *\n * Used to manage the rendering of multiple tab panels. It uses\n * `cloneElement` to hide/show tab panels.\n *\n * It renders a `div` by default.\n */\nexport const TabPanels = forwardRef(function TabPanels(\n props,\n ref,\n) {\n const panelsProps = useTabPanels(props)\n const styles = useTabsStyles()\n\n return (\n \n )\n})\n\nTabPanels.displayName = \"TabPanels\"\n", "import { cx } from \"@chakra-ui/shared-utils\"\nimport {\n HTMLChakraProps,\n SystemStyleObject,\n chakra,\n forwardRef,\n} from \"@chakra-ui/system\"\n\nimport { useTabsStyles } from \"./tabs\"\nimport { UseTabOptions, useTab } from \"./use-tabs\"\n\nexport interface TabProps extends UseTabOptions, HTMLChakraProps<\"button\"> {}\n\n/**\n * Tab button used to activate a specific tab panel. It renders a `button`,\n * and is responsible for automatic and manual selection modes.\n */\nexport const Tab = forwardRef(function Tab(props, ref) {\n const styles = useTabsStyles()\n const tabProps = useTab({ ...props, ref })\n\n const tabStyles: SystemStyleObject = {\n outline: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...styles.tab,\n }\n\n return (\n \n )\n})\n\nTab.displayName = \"Tab\"\n", "import { Icon, IconProps } from \"@chakra-ui/icon\"\nimport { createContext } from \"@chakra-ui/react-context\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n} from \"@chakra-ui/system\"\n\nconst [TagStylesProvider, useTagStyles] = createContext<\n Record\n>({\n name: `TagStylesContext`,\n errorMessage: `useTagStyles returned is 'undefined'. Seems you forgot to wrap the components in \"\" `,\n})\n\nexport { useTagStyles }\n\nexport interface TagProps\n extends HTMLChakraProps<\"span\">,\n ThemingProps<\"Tag\"> {}\n\n/**\n * The tag component is used to label or categorize UI elements.\n * To style the tag globally, change the styles in `theme.components.Tag`\n * @see Docs https://chakra-ui.com/tag\n */\nexport const Tag = forwardRef((props, ref) => {\n const styles = useMultiStyleConfig(\"Tag\", props)\n const ownProps = omitThemingProps(props)\n\n const containerStyles: SystemStyleObject = {\n display: \"inline-flex\",\n verticalAlign: \"top\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n ...styles.container,\n }\n\n return (\n \n \n \n )\n})\n\nTag.displayName = \"Tag\"\n\nexport interface TagLabelProps extends HTMLChakraProps<\"span\"> {}\n\nexport const TagLabel = forwardRef((props, ref) => {\n const styles = useTagStyles()\n return \n})\n\nTagLabel.displayName = \"TagLabel\"\n\nexport const TagLeftIcon = forwardRef((props, ref) => (\n \n))\n\nTagLeftIcon.displayName = \"TagLeftIcon\"\n\nexport const TagRightIcon = forwardRef((props, ref) => (\n \n))\n\nTagRightIcon.displayName = \"TagRightIcon\"\n\nconst TagCloseIcon: React.FC = (props) => (\n \n \n \n)\n\nTagCloseIcon.displayName = \"TagCloseIcon\"\n\nexport interface TagCloseButtonProps\n extends Omit, \"disabled\"> {\n /**\n * @default false\n */\n isDisabled?: boolean\n}\n\n/**\n * TagCloseButton is used to close \"remove\" the tag\n * @see Docs https://chakra-ui.com/tag\n */\nexport const TagCloseButton = forwardRef(\n (props, ref) => {\n const { isDisabled, children, ...rest } = props\n\n const styles = useTagStyles()\n\n const btnStyles: SystemStyleObject = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n outline: \"0\",\n ...styles.closeButton,\n }\n\n return (\n \n {children || }\n \n )\n },\n)\n\nTagCloseButton.displayName = \"TagCloseButton\"\n", "import { FormControlOptions, useFormControl } from \"@chakra-ui/form-control\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n} from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { omit } from \"@chakra-ui/object-utils\"\n\ninterface TextareaOptions {\n /**\n * The border color when the textarea is focused. Use color keys in `theme.colors`\n * @example\n * focusBorderColor = \"blue.500\"\n */\n focusBorderColor?: string\n /**\n * The border color when the textarea is invalid. Use color keys in `theme.colors`\n * @example\n * errorBorderColor = \"red.500\"\n */\n errorBorderColor?: string\n}\n\ntype Omitted = \"disabled\" | \"required\" | \"readOnly\"\n\nconst omitted = [\"h\", \"minH\", \"height\", \"minHeight\"]\n\nexport interface TextareaProps\n extends Omit, Omitted>,\n TextareaOptions,\n FormControlOptions,\n ThemingProps<\"Textarea\"> {}\n\n/**\n * Textarea is used to enter an amount of text that's longer than a single line\n * @see Docs https://chakra-ui.com/textarea\n */\nexport const Textarea = forwardRef((props, ref) => {\n const styles = useStyleConfig(\"Textarea\", props)\n const { className, rows, ...rest } = omitThemingProps(props)\n\n const textareaProps = useFormControl(rest)\n\n //@ts-ignore\n const textareaStyles = rows ? omit(styles, omitted) : styles\n\n return (\n \n )\n})\n\nTextarea.displayName = \"Textarea\"\n", "export function omit, K extends keyof T>(\n object: T,\n keysToOmit: K[] = [],\n) {\n const clone: Record = Object.assign({}, object)\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key as string]\n }\n }\n return clone as Omit\n}\n", "import { Variants } from \"framer-motion\"\n\nexport const scale: Variants = {\n exit: {\n scale: 0.85,\n opacity: 0,\n transition: {\n opacity: { duration: 0.15, easings: \"easeInOut\" },\n scale: { duration: 0.2, easings: \"easeInOut\" },\n },\n },\n enter: {\n scale: 1,\n opacity: 1,\n transition: {\n opacity: { easings: \"easeOut\", duration: 0.2 },\n scale: { duration: 0.2, ease: [0.175, 0.885, 0.4, 1.1] },\n },\n },\n}\n", "import { getScrollParent } from \"@chakra-ui/dom-utils\"\nimport { popperCSSVars, usePopper, UsePopperProps } from \"@chakra-ui/popper\"\nimport { PropGetter } from \"@chakra-ui/react-types\"\nimport { useDisclosure } from \"@chakra-ui/react-use-disclosure\"\nimport { useEventListener } from \"@chakra-ui/react-use-event-listener\"\nimport { mergeRefs } from \"@chakra-ui/react-use-merge-refs\"\nimport { callAllHandlers } from \"@chakra-ui/shared-utils\"\nimport React, {\n useCallback,\n useEffect,\n useId,\n useRef,\n type RefObject,\n} from \"react\"\n\nexport interface UseTooltipProps\n extends Pick<\n UsePopperProps,\n | \"modifiers\"\n | \"gutter\"\n | \"offset\"\n | \"arrowPadding\"\n | \"direction\"\n | \"placement\"\n > {\n /**\n * Delay (in ms) before showing the tooltip\n * @default 0ms\n */\n openDelay?: number\n /**\n * Delay (in ms) before hiding the tooltip\n * @default 0ms\n */\n closeDelay?: number\n /**\n * If `true`, the tooltip will hide on click\n * @default true\n */\n closeOnClick?: boolean\n /**\n * If `true`, the tooltip will hide while the mouse is down\n * @deprecated - use `closeOnPointerDown` instead\n */\n closeOnMouseDown?: boolean\n /**\n * If `true`, the tooltip will hide while the pointer is down\n * @default true\n */\n closeOnPointerDown?: boolean\n /**\n * If `true`, the tooltip will hide on pressing Esc key\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * Callback to run when the tooltip shows\n */\n onOpen?(): void\n /**\n * Callback to run when the tooltip hides\n */\n onClose?(): void\n /**\n * Custom `id` to use in place of `uuid`\n */\n id?: string\n /**\n * If `true`, the tooltip will be shown (in controlled mode)\n * @default false\n */\n isOpen?: boolean\n /**\n * If `true`, the tooltip will be initially shown\n * @default false\n */\n defaultIsOpen?: boolean\n /**\n * @default false\n */\n isDisabled?: boolean\n /**\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * @default 10\n */\n arrowSize?: number\n arrowShadowColor?: string\n}\n\nconst getDoc = (ref: React.RefObject) =>\n ref.current?.ownerDocument || document\n\nconst getWin = (ref: React.RefObject) =>\n ref.current?.ownerDocument?.defaultView || window\n\nexport function useTooltip(props: UseTooltipProps = {}) {\n const {\n openDelay = 0,\n closeDelay = 0,\n closeOnClick = true,\n closeOnMouseDown,\n closeOnScroll,\n closeOnPointerDown = closeOnMouseDown,\n closeOnEsc = true,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n placement,\n id,\n isOpen: isOpenProp,\n defaultIsOpen,\n arrowSize = 10,\n arrowShadowColor,\n arrowPadding,\n modifiers,\n isDisabled,\n gutter,\n offset,\n direction,\n ...htmlProps\n } = props\n\n const { isOpen, onOpen, onClose } = useDisclosure({\n isOpen: isOpenProp,\n defaultIsOpen,\n onOpen: onOpenProp,\n onClose: onCloseProp,\n })\n\n const { referenceRef, getPopperProps, getArrowInnerProps, getArrowProps } =\n usePopper({\n enabled: isOpen,\n placement,\n arrowPadding,\n modifiers,\n gutter,\n offset,\n direction,\n })\n\n const uuid = useId()\n const uid = id ?? uuid\n const tooltipId = `tooltip-${uid}`\n\n const ref = useRef(null)\n\n const enterTimeout = useRef()\n const clearEnterTimeout = useCallback(() => {\n if (enterTimeout.current) {\n clearTimeout(enterTimeout.current)\n enterTimeout.current = undefined\n }\n }, [])\n\n const exitTimeout = useRef()\n const clearExitTimeout = useCallback(() => {\n if (exitTimeout.current) {\n clearTimeout(exitTimeout.current)\n exitTimeout.current = undefined\n }\n }, [])\n\n const closeNow = useCallback(() => {\n clearExitTimeout()\n onClose()\n }, [onClose, clearExitTimeout])\n\n const dispatchCloseEvent = useCloseEvent(ref, closeNow)\n\n const openWithDelay = useCallback(() => {\n if (!isDisabled && !enterTimeout.current) {\n if (isOpen) dispatchCloseEvent()\n const win = getWin(ref)\n enterTimeout.current = win.setTimeout(onOpen, openDelay)\n }\n }, [dispatchCloseEvent, isDisabled, isOpen, onOpen, openDelay])\n\n const closeWithDelay = useCallback(() => {\n clearEnterTimeout()\n const win = getWin(ref)\n exitTimeout.current = win.setTimeout(closeNow, closeDelay)\n }, [closeDelay, closeNow, clearEnterTimeout])\n\n const onClick = useCallback(() => {\n if (isOpen && closeOnClick) {\n closeWithDelay()\n }\n }, [closeOnClick, closeWithDelay, isOpen])\n\n const onPointerDown = useCallback(() => {\n if (isOpen && closeOnPointerDown) {\n closeWithDelay()\n }\n }, [closeOnPointerDown, closeWithDelay, isOpen])\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (isOpen && event.key === \"Escape\") {\n closeWithDelay()\n }\n },\n [isOpen, closeWithDelay],\n )\n\n useEventListener(\n () => getDoc(ref),\n \"keydown\",\n closeOnEsc ? onKeyDown : undefined,\n )\n\n useEventListener(\n () => {\n if (!closeOnScroll) return null\n const node = ref.current\n if (!node) return null\n const scrollParent = getScrollParent(node)\n return scrollParent.localName === \"body\" ? getWin(ref) : scrollParent\n },\n \"scroll\",\n () => {\n if (isOpen && closeOnScroll) {\n closeNow()\n }\n },\n { passive: true, capture: true },\n )\n\n useEffect(() => {\n if (!isDisabled) return\n clearEnterTimeout()\n if (isOpen) onClose()\n }, [isDisabled, isOpen, onClose, clearEnterTimeout])\n\n useEffect(() => {\n return () => {\n clearEnterTimeout()\n clearExitTimeout()\n }\n }, [clearEnterTimeout, clearExitTimeout])\n\n /**\n * This allows for catching pointerleave events when the tooltip\n * trigger is disabled. There's currently a known issue in\n * React regarding the onPointerLeave polyfill.\n * @see https://github.com/facebook/react/issues/11972\n */\n useEventListener(() => ref.current, \"pointerleave\", closeWithDelay)\n\n const getTriggerProps: PropGetter = useCallback(\n (props = {}, _ref = null) => {\n const triggerProps = {\n ...props,\n ref: mergeRefs(ref, _ref, referenceRef),\n onPointerEnter: callAllHandlers(props.onPointerEnter, (e) => {\n if (e.pointerType === \"touch\") return\n openWithDelay()\n }),\n onClick: callAllHandlers(props.onClick, onClick),\n onPointerDown: callAllHandlers(props.onPointerDown, onPointerDown),\n onFocus: callAllHandlers(props.onFocus, openWithDelay),\n onBlur: callAllHandlers(props.onBlur, closeWithDelay),\n \"aria-describedby\": isOpen ? tooltipId : undefined,\n }\n\n return triggerProps\n },\n [\n openWithDelay,\n closeWithDelay,\n onPointerDown,\n isOpen,\n tooltipId,\n onClick,\n referenceRef,\n ],\n )\n\n const getTooltipPositionerProps: PropGetter = useCallback(\n (props = {}, forwardedRef = null) =>\n getPopperProps(\n {\n ...props,\n style: {\n ...props.style,\n [popperCSSVars.arrowSize.var]: arrowSize\n ? `${arrowSize}px`\n : undefined,\n [popperCSSVars.arrowShadowColor.var]: arrowShadowColor,\n },\n },\n forwardedRef,\n ),\n [getPopperProps, arrowSize, arrowShadowColor],\n )\n\n const getTooltipProps: PropGetter = useCallback(\n (props = {}, ref = null) => {\n const styles: React.CSSProperties = {\n ...props.style,\n position: \"relative\",\n transformOrigin: popperCSSVars.transformOrigin.varRef,\n }\n\n return {\n ref,\n ...htmlProps,\n ...props,\n id: tooltipId,\n role: \"tooltip\",\n style: styles,\n }\n },\n [htmlProps, tooltipId],\n )\n\n return {\n isOpen,\n show: openWithDelay,\n hide: closeWithDelay,\n getTriggerProps,\n getTooltipProps,\n getTooltipPositionerProps,\n getArrowProps,\n getArrowInnerProps,\n }\n}\n\nexport type UseTooltipReturn = ReturnType\n\nconst closeEventName = \"chakra-ui:close-tooltip\"\n\nfunction useCloseEvent(ref: RefObject, close: () => void) {\n useEffect(() => {\n const doc = getDoc(ref)\n doc.addEventListener(closeEventName, close)\n return () => doc.removeEventListener(closeEventName, close)\n }, [close, ref])\n\n return () => {\n const doc = getDoc(ref)\n const win = getWin(ref)\n doc.dispatchEvent(new win.CustomEvent(closeEventName))\n }\n}\n", "import { popperCSSVars } from \"@chakra-ui/popper\"\nimport { Portal, PortalProps } from \"@chakra-ui/portal\"\nimport {\n chakra,\n forwardRef,\n HTMLChakraProps,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n useTheme,\n getCSSVar,\n} from \"@chakra-ui/system\"\nimport { omit, pick } from \"@chakra-ui/object-utils\"\nimport { AnimatePresence, HTMLMotionProps, motion } from \"framer-motion\"\nimport { Children, cloneElement } from \"react\"\nimport { scale } from \"./tooltip.transition\"\nimport { useTooltip, UseTooltipProps } from \"./use-tooltip\"\n\nexport interface TooltipProps\n extends HTMLChakraProps<\"div\">,\n ThemingProps<\"Tooltip\">,\n UseTooltipProps {\n /**\n * The React component to use as the\n * trigger for the tooltip\n */\n children: React.ReactNode\n /**\n * The label of the tooltip\n */\n label?: React.ReactNode\n /**\n * The accessible, human friendly label to use for\n * screen readers.\n *\n * If passed, tooltip will show the content `label`\n * but expose only `aria-label` to assistive technologies\n */\n \"aria-label\"?: string\n /**\n * If `true`, the tooltip will wrap its children\n * in a `` with `tabIndex=0`\n * @default false\n */\n shouldWrapChildren?: boolean\n /**\n * If `true`, the tooltip will show an arrow tip\n * @default false\n */\n hasArrow?: boolean\n /**\n * Props to be forwarded to the portal component\n */\n portalProps?: Pick\n motionProps?: HTMLMotionProps<\"div\">\n}\n\nconst MotionDiv = chakra(motion.div)\n\n/**\n * Tooltips display informative text when users hover, focus on, or tap an element.\n *\n * @see Docs https://chakra-ui.com/docs/overlay/tooltip\n * @see WAI-ARIA https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/\n */\nexport const Tooltip = forwardRef((props, ref) => {\n const styles = useStyleConfig(\"Tooltip\", props)\n const ownProps = omitThemingProps(props)\n const theme = useTheme()\n\n const {\n children,\n label,\n shouldWrapChildren,\n \"aria-label\": ariaLabel,\n hasArrow,\n bg,\n portalProps,\n background,\n backgroundColor,\n bgColor,\n motionProps,\n ...rest\n } = ownProps\n\n const userDefinedBg = background ?? backgroundColor ?? bg ?? bgColor\n\n if (userDefinedBg) {\n styles.bg = userDefinedBg\n const bgVar = getCSSVar(theme, \"colors\", userDefinedBg)\n ;(styles as any)[popperCSSVars.arrowBg.var] = bgVar\n }\n const tooltip = useTooltip({ ...rest, direction: theme.direction })\n\n const shouldWrap = typeof children === \"string\" || shouldWrapChildren\n\n let trigger: React.ReactElement\n\n if (shouldWrap) {\n trigger = (\n \n {children}\n \n )\n } else {\n /**\n * Ensure tooltip has only one child node\n */\n const child = Children.only(children) as React.ReactElement & {\n ref?: React.Ref\n }\n trigger = cloneElement(\n child,\n tooltip.getTriggerProps(child.props, child.ref),\n )\n }\n\n const hasAriaLabel = !!ariaLabel\n\n const _tooltipProps = tooltip.getTooltipProps({}, ref)\n\n const tooltipProps = hasAriaLabel\n ? omit(_tooltipProps, [\"role\", \"id\"])\n : _tooltipProps\n\n const srOnlyProps = pick(_tooltipProps, [\"role\", \"id\"])\n\n /**\n * If the `label` is empty, there's no point showing the tooltip.\n * Let's simply return the children\n */\n if (!label) {\n return <>{children}\n }\n\n return (\n <>\n {trigger}\n \n {tooltip.isOpen && (\n \n \n \n {label}\n {hasAriaLabel && (\n \n {ariaLabel}\n \n )}\n {hasArrow && (\n \n \n \n )}\n \n \n \n )}\n \n \n )\n})\n\nTooltip.displayName = \"Tooltip\"\n", "export function omit, K extends keyof T>(\n object: T,\n keysToOmit: K[] = [],\n) {\n const clone: Record = Object.assign({}, object)\n for (const key of keysToOmit) {\n if (key in clone) {\n delete clone[key as string]\n }\n }\n return clone as Omit\n}\n", "export function pick, K extends keyof T>(\n object: T,\n keysToPick: K[],\n) {\n const result = {} as {\n [P in K]: T[P]\n }\n for (const key of keysToPick) {\n if (key in object) {\n result[key] = object[key]\n }\n }\n return result\n}\n"], + "mappings": "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", + "names": ["object", "Element", "Fragment", "Portal", "isElement", "hoistNonReactStatics", "keys", "React", "error", "ReactDebugCurrentFrame", "assign", "prefix", "match", "frame", "Component", "isArray", "config", "self", "defaultProps", "isValidElement", "object", "node", "propTypes", "keys", "jsx", "jsxs", "func", "getValue", "object", "transform", "Symbol", "Map", "isObject", "length", "size", "Stack", "isArray", "isFunction", "string", "guard", "mergeWith", "length", "keys", "isEqual", "error", "from", "error", "assign", "isValidElement", "validate", "error", "i", "checker", "isNode", "range", "copy", "range", "format", "err", "React", "StyleSheet", "isImportRule", "length", "length", "length", "character", "characters", "size", "length", "length", "weakMemoize", "func", "identifierWithPointTracking", "character", "toRules", "getRules", "compat", "removeLabel", "isIgnoringComment", "createUnsafeSelectorsAlarm", "node", "isImportRule", "isPrependedWithRegularRules", "nullifyElement", "incorrectImportAlarm", "prefix", "length", "prefixer", "createCache", "container", "stylis", "styles", "insert", "t", "r", "classNames", "registerStyles", "insertStyles", "isCustomProperty", "isProcessableValue", "processStyleValue", "match", "next", "styles", "string", "serializeStyles", "syncFallback", "useInsertionEffect", "isBrowser", "withEmotionCache", "func", "isBrowser", "getTheme", "theme", "ThemeProvider", "Insertion", "_ref", "React", "import_hoist_non_react_statics", "styles", "isBrowser", "_ref", "next", "node", "keyframes", "classnames", "css", "Insertion", "cx", "css", "import_react", "createContext", "createReactContext", "useContext", "_a", "useReactContext", "error", "import_jsx_runtime", "createContext", "import_react", "import_react", "import_jsx_runtime", "createContext", "node", "import_react", "useTheme", "theme", "import_react", "_a", "css", "match", "import_react", "import_jsx_runtime", "getTheme", "value", "import_jsx_runtime", "theme", "useTheme", "_a", "_b", "getValue", "scale", "token", "classNames", "func", "import_lodash", "import_lodash", "scale", "theme", "transform2", "compose", "_a", "direction", "color2", "divide2", "_b", "_c", "memoize", "styles", "position", "isDecimal", "prefix", "vars", "length", "breakpoints", "normalize", "m", "_a2", "test", "merge", "token", "cssVars", "mergeWith", "object", "semanticTokens", "mergeWith2", "chunk", "char", "_b2", "getValue", "css2", "config", "mergeWith3", "css", "normalize2", "toArray", "mergeWith4", "size", "transition", "typography", "parts", "classnames", "guard", "low", "high", "value", "Math", "min", "max", "ColorError", "Error", "constructor", "color", "parseToRgba", "trim", "toLowerCase", "normalizedColor", "namedColorRegex", "test", "nameToHex", "reducedHexMatch", "reducedHexRegex", "exec", "arr", "Array", "from", "slice", "map", "x", "parseInt", "r", "hexMatch", "hexRegex", "rgbaMatch", "rgbaRegex", "parseFloat", "hslaMatch", "hslaRegex", "h", "s", "l", "a", "hslToRgb", "Number", "isNaN", "hash", "str", "i", "length", "charCodeAt", "colorToInt", "replace", "compressedColorMap", "split", "reduce", "acc", "next", "key", "substring", "hex", "toString", "prefix", "normalizedColorName", "result", "amount", "join", "RegExp", "roundColor", "round", "hue", "saturation", "lightness", "huePrime", "chroma", "abs", "secondComponent", "red", "green", "blue", "lightnessModification", "finalRed", "finalGreen", "finalBlue", "rgba", "red", "green", "blue", "alpha", "guard", "toFixed", "parseFloat", "transparentize", "color", "amount", "r", "g", "b", "a", "parseToRgba", "rgba", "toHex", "color", "r", "g", "b", "a", "parseToRgba", "hex", "x", "h", "guard", "toString", "length", "Math", "round", "obj", "key", "def", "p", "undef", "split", "length", "theme", "color", "hex", "color", "r", "theme", "hex", "isDark", "transparentize", "color", "theme", "size", "color", "hash", "list", "add", "subtract", "multiply", "divide", "negate", "calc", "replaceWhiteSpace", "escape", "addPrefix", "prefix", "cssVar", "defineMultiStyleConfig", "definePartsStyle", "cssVar", "calc", "baseStyle", "sizes", "defineMultiStyleConfig", "definePartsStyle", "baseStyle", "sizes", "$bg", "defineMultiStyleConfig", "definePartsStyle", "baseStyle", "sizes", "theme", "variants", "baseStyle", "theme", "transparentize", "variants", "defineMultiStyleConfig", "definePartsStyle", "$bg", "baseStyle", "sizes", "variants", "_a", "definePartsStyle", "defineMultiStyleConfig", "$height", "$fontSize", "baseStyle", "sizes", "variantOutline", "theme", "variantUnstyled", "variants", "baseStyle", "_a", "variants", "_b", "sizes", "$bg", "cssVar", "$fg", "baseStyle", "defineMultiStyleConfig", "definePartsStyle", "t", "baseStyleLabel", "baseStyleTrack", "baseStyle", "sizes", "isFunction", "runIfFn", "definePartsStyle", "defineMultiStyleConfig", "$size", "baseStyleContainer", "baseStyleLabel", "baseStyle", "runIfFn", "sizes", "defineMultiStyleConfig", "definePartsStyle", "baseStyleControl", "_a", "runIfFn", "baseStyle", "_b", "_c", "_d", "sizes", "defineMultiStyleConfig", "definePartsStyle", "$bg", "_a", "baseStyleIcon", "baseStyle", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "sizes", "baseStyle", "$bg", "baseStyle", "defineMultiStyleConfig", "definePartsStyle", "$bg", "baseStyleContainer", "baseStyleTrack", "baseStyleThumb", "baseStyleFilledTrack", "baseStyle", "sizes", "$size", "cssVar", "baseStyle", "sizes", "defineMultiStyleConfig", "definePartsStyle", "baseStyleLabel", "baseStyleIcon", "baseStyle", "sizes", "$bg", "baseStyle", "baseStyle", "defineMultiStyleConfig", "definePartsStyle", "baseStyleIcon", "baseStyle", "defineMultiStyleConfig", "definePartsStyle", "$bg", "$shadow", "baseStyleIcon", "baseStyle", "defineMultiStyleConfig", "definePartsStyle", "$bg", "$shadow", "baseStyleCloseButton", "baseStyle", "runIfFn", "sizes", "defineMultiStyleConfig", "definePartsStyle", "cssVar", "calc", "$bg", "$fg", "$border", "baseStyleRoot", "baseStyleField", "_a", "_b", "runIfFn", "baseStyle", "getSize", "size", "_c", "sizes", "_a", "baseStyle", "sizes", "_b", "variants", "_c", "runIfFn", "defineMultiStyleConfig", "definePartsStyle", "cssVar", "$arrowBg", "baseStyleHeader", "baseStyleBody", "baseStyleFooter", "baseStyleCloseButton", "baseStyle", "definePartsStyle", "defineMultiStyleConfig", "$bg", "getSize", "baseStyleOverlay", "baseStyleDialogContainer", "baseStyleDialog", "baseStyleHeader", "baseStyleCloseButton", "baseStyleBody", "baseStyleFooter", "baseStyle", "runIfFn", "sizes", "definePartsStyle", "defineMultiStyleConfig", "baseStyle", "definePartsStyle", "defineMultiStyleConfig", "$fg", "baseStyle", "definePartsStyle", "defineMultiStyleConfig", "$fg", "baseStyleIcon", "baseStyle", "baseStyle", "baseStyle", "sizes", "defineMultiStyleConfig", "definePartsStyle", "baseStyle", "baseStyle", "theme", "transparentize", "variantOutline", "runIfFn", "variantSolid", "_a", "bg", "color", "background", "variantUnstyled", "variants", "sizes", "definePartsStyle", "defineMultiStyleConfig", "$bg", "$padding", "$shadow", "$border", "baseStyle", "sizes", "variants", "$size", "cssVar", "$bg", "baseStyle", "sizes", "variants", "baseStyle", "baseStyle", "baseStyle", "variantSolid", "variants", "definePartsStyle", "defineMultiStyleConfig", "baseStyleContainer", "baseStyleButton", "baseStyleIcon", "baseStyle", "definePartsStyle", "defineMultiStyleConfig", "$fg", "$bg", "baseStyle", "theme", "transparentize", "variantSubtle", "variantSolid", "variants", "definePartsStyle", "defineMultiStyleConfig", "$border", "$bg", "$size", "baseStyleContainer", "theme", "color", "baseStyleLabel", "baseStyle", "runIfFn", "getSize", "size", "sizes", "import_lodash", "isFunction", "pipe", "mergeWith", "object", "components", "theme", "size", "components", "theme", "components", "theme", "pipe", "size", "components", "t", "theme", "_a", "node", "_b", "isBrowser", "node", "navigator", "isBrowser", "import_lodash", "omit", "object", "keys", "get", "memoize", "memoizedGet", "object", "isFunction", "runIfFn", "isFunction", "callAllHandlers", "func", "func", "noop", "warn", "pipe", "isMouseEvent2", "isPrimaryPointer", "isBrowser", "runNextFrame", "isProcessing", "frameData", "process", "handlers", "noop", "info", "timestamp", "event", "pipe", "_a", "time", "breakpoints", "others", "container", "warn", "_a", "prefix", "getRect", "_ref", "expand", "shrink", "createBox", "border", "parse", "calculateBox", "styles", "parse", "border", "getBox", "import_react", "_a", "theme", "memoizedGet", "default2", "omit", "getStyles", "styles", "isEqual", "object", "React", "testOmitPropsOnComponent", "getDefaultShouldForwardProp", "composeShouldForwardProps", "shouldForwardProp", "ILLEGAL_ESCAPE_SEQUENCE_ERROR", "Insertion", "_ref", "createStyled", "styles", "import_react", "import_react", "_a", "baseStyle", "theme", "styleProps", "runIfFn", "css", "Component", "React", "import_react", "forwardRef", "forwardReactRef", "import_react", "import_react", "createContext", "createReactContext", "useContext", "_a", "useReactContext", "error", "import_react", "import_jsx_runtime", "ThemeProvider", "theme", "createContext", "memoizedGet", "runIfFn", "styles", "css", "import_react", "import_jsx_runtime", "_a", "_b", "import_jsx_runtime", "theme", "ThemeProvider", "id", "position", "position", "import_react", "import_react", "_a", "delay", "import_react", "import_jsx_runtime", "import_react", "import_react", "import_react", "import_react", "import_react", "import_react", "isBrowser", "isBrowser", "import_react", "process", "createRenderStep", "runNextFrame", "isProcessing", "frameData", "stepsOrder", "maxElapsed", "runNextFrame", "useDefaultElapsed", "state", "steps", "createRenderStep", "processStep", "process", "isRefObject", "import_react", "Component", "createVisualElement", "layout", "drag", "isRefObject", "import_react", "isRefObject", "import_react", "animate", "animate", "import_react", "noop", "any", "noop", "invariant", "preloadedFeatures", "createVisualElement", "useVisualState", "Component", "MeasureLayout", "isBrowser", "invariant", "drag", "layout", "Component", "Component", "import_react", "import_react", "layout", "transform", "transformTemplate", "token", "isString", "isString", "px", "px", "state", "transformTemplate", "vars", "transform", "transformOrigin", "hasTransform", "transformTemplate", "state", "_a", "isDom", "import_react", "size", "px", "length", "spacing", "keys", "px", "state", "isSVGTag", "transformTemplate", "Component", "state", "Component", "vars", "_a", "scrapeMotionValuesFromProps", "import_react", "state", "import_react", "scrapeMotionValuesFromProps", "state", "config", "animate", "list", "transition", "frame", "steps", "noop", "scrapeMotionValuesFromProps", "frame", "Component", "preloadedFeatures", "createVisualElement", "addDomEvent", "extractEventInfo", "addPointerEvent", "addDomEvent", "pipe", "drag", "node", "node", "frame", "addPointerEvent", "pipe", "isFocusVisible", "pipe", "addDomEvent", "extractEventInfo", "noop", "frame", "addPointerEvent", "pipe", "addDomEvent", "once", "next", "prev", "keyframes", "from", "transition", "keyframes", "match", "invariant", "token", "px", "transform", "px", "_a", "motionValue", "frame", "isString", "alpha", "rgba", "r", "rgba", "hsla", "color", "rgba", "hsla", "isString", "_a", "_b", "isString", "color", "split", "number", "filter", "color", "filter", "getAnimatableNone", "filter", "getAnimatableNone", "motionValue", "_a", "keyframes", "delay", "keyframes", "t", "undampedFreq", "keys", "keyframes", "state", "t", "keyframes", "state", "t", "t", "noop", "ease", "noop", "invariant", "from", "from", "progress", "t", "alpha", "from", "rgba", "hsla", "color", "mixNumber", "color", "_a", "pipe", "mix", "from", "ease", "mix", "noop", "pipe", "invariant", "keyframes", "ease", "state", "t", "state", "frame", "keyframes", "percent", "motionValue", "invariant", "pipe", "mix", "delay", "progress", "state", "now", "_a", "time", "keyframes", "delay", "ease", "maxDuration", "keyframes", "state", "t", "motionValue", "_a", "ease", "noop", "progress", "frame", "animations", "progress", "time", "transition", "delay", "frame", "removeItem", "removeItem", "frame", "prev", "transition", "delay", "_a", "transition", "animations", "frame", "_a", "transition", "animations", "animations", "frame", "animations", "animate", "state", "_a", "transition", "motionValue", "next", "prev", "node", "animate", "_a", "isPresent", "distance", "PanSession", "handlers", "info", "getPanInfo", "point", "timestamp", "event", "frame", "extractEventInfo", "pipe", "addPointerEvent", "subtractPoint", "lastDevicePoint", "getVelocity", "time", "layout", "calcOrigin", "layout", "createBox", "transformPoint", "scale", "scale", "node", "distance", "transforms", "transform", "transformPoint", "rootProjectionNode", "scroll", "createBox", "dragSnapToOrigin", "extractEventInfo", "drag", "length", "frame", "_a", "PanSession", "next", "layout", "isRefObject", "invariant", "transition", "inertia", "calcOrigin", "transformTemplate", "addPointerEvent", "addDomEvent", "motionValue", "direction", "node", "noop", "frame", "noop", "PanSession", "addPointerEvent", "import_jsx_runtime", "import_react", "import_react", "isPresent", "id", "node", "px", "drag", "isPresent", "frame", "borders", "px", "progress", "noop", "scale", "transforms", "xKeys", "yKeys", "node", "removeItem", "transform", "rotate", "removeItem", "frame", "keyframes", "id", "createProjectionNode", "layout", "node", "transformTemplate", "now", "steps", "frame", "createBox", "scroll", "_a", "progress", "config", "transition", "_b", "styles", "length", "from", "string", "noop", "createProjectionNode", "addDomEvent", "createProjectionNode", "import_react", "isBrowser", "next", "prev", "color", "keyframes", "frame", "createBox", "context", "_a", "getAnimatableNone", "vars", "getComputedStyle", "createBox", "scrapeMotionValuesFromProps", "Component", "layout", "layout", "Component", "config", "import_jsx_runtime", "import_react", "import_react", "import_react", "frame", "import_jsx_runtime", "React", "import_react", "import_jsx_runtime", "React", "import_react", "size", "isPresent", "id", "isPresent", "mode", "id", "import_react", "mode", "invariant", "import_jsx_runtime", "import_react", "import_jsx_runtime", "import_react", "import_jsx_runtime", "import_react", "import_react", "import_jsx_runtime", "import_react", "import_react", "item", "Component", "invariant", "layout", "import_jsx_runtime", "import_react", "import_react", "getMixer", "transform", "frame", "transform", "layout", "Component", "invariant", "layout", "import_react", "import_react", "import_react", "_a", "invariant", "import_react", "import_react", "import_react", "keyframes", "node", "scale", "progress", "next", "prev", "_a", "wrap", "wrap", "removeItem", "keyframes", "defaultTransition", "keyframes", "transition", "maxDuration", "delay", "ease", "getValueTransition", "isNumber", "keyframes", "invariant", "animations", "transition", "import_react", "import_react", "import_react", "import_react", "import_react", "import_react", "import_react", "import_jsx_runtime", "React", "cancelSync", "stepsOrder", "process", "import_react", "import_jsx_runtime", "position", "id", "motionVariants", "delay", "isPresent", "position", "_a", "logicals", "logical", "import_jsx_runtime", "forwardRef", "color", "styles", "import_react", "import_jsx_runtime", "defaultProps", "forwardRef", "import_jsx_runtime", "import_jsx_runtime", "forwardRef", "styles", "createContext", "import_jsx_runtime", "forwardRef", "AlertDescription", "styles", "import_jsx_runtime", "styles", "css", "import_jsx_runtime", "forwardRef", "AlertTitle", "styles", "import_jsx_runtime", "forwardRef", "Alert", "_a", "styles", "import_jsx_runtime", "forwardRef", "CloseButton", "styles", "isDisabled", "baseStyle", "import_jsx_runtime", "initialState", "state", "id", "position", "_a", "_b", "prev", "ToastComponent", "defaultOptions", "error", "import_react", "import_jsx_runtime", "createContext", "state", "motionVariants", "Component", "position", "import_react", "theme", "defaultOptions", "import_jsx_runtime", "theme", "defaultOptions", "motionVariants", "ThemeProvider", "import_jsx_runtime", "ChakraProvider", "theme", "import_react", "isElement", "getNextIndex", "next", "getPrevIndex", "useSafeLayoutEffect", "__publicField", "isElement", "node", "_a", "_b", "next", "getNextIndex", "prev", "getPrevIndex", "keys", "import_react", "assignRef", "error", "mergeRefs", "node", "import_react", "useSafeLayoutEffect", "createContext", "mergeRefs", "createContext", "import_jsx_runtime", "forwardRef", "AccordionButton", "styles", "import_react", "prev", "next", "import_react", "onChange", "isOpen", "createContext", "isDisabled", "isFocusable", "id", "next", "prev", "onFocus", "getButtonProps", "props", "mergeRefs", "getPanelProps", "import_jsx_runtime", "isDisabled", "styles", "import_react", "import_jsx_runtime", "forwardRef", "AccordionItem", "styles", "_a", "transition", "delay", "import_react", "import_jsx_runtime", "isNumeric", "variants", "transition", "delay", "_a", "animate", "import_react", "import_jsx_runtime", "variants", "transition", "delay", "_a", "Fade", "animate", "import_react", "import_jsx_runtime", "variants", "transition", "delay", "_a", "ScaleFade", "animate", "import_react", "import_jsx_runtime", "variants", "transition", "delay", "_a", "SlideFade", "animate", "import_react", "import_jsx_runtime", "variants", "direction", "transition", "delay", "_a", "Slide", "animate", "import_jsx_runtime", "forwardRef", "AccordionPanel", "styles", "import_react", "import_jsx_runtime", "forwardRef", "Accordion", "styles", "isDisabled", "createContext", "import_jsx_runtime", "forwardRef", "AvatarBadge", "styles", "import_jsx_runtime", "_a", "styles", "import_jsx_runtime", "import_jsx_runtime", "forwardRef", "NativeImage", "import_react", "sizes", "error", "import_jsx_runtime", "omit", "object", "Image", "forwardRef", "import_jsx_runtime", "forwardRef", "import_react", "import_jsx_runtime", "import_react", "import_jsx_runtime", "baseStyle", "forwardRef", "styles", "import_react", "getValidChildren", "import_react", "import_jsx_runtime", "compact", "object", "forwardRef", "AvatarGroup", "styles", "spacing", "getValidChildren", "_a", "baseStyle", "createContext", "import_jsx_runtime", "forwardRef", "BreadcrumbLink", "styles", "import_jsx_runtime", "forwardRef", "BreadcrumbSeparator", "spacing", "styles", "import_react", "import_jsx_runtime", "forwardRef", "BreadcrumbItem", "spacing", "getValidChildren", "styles", "import_react", "import_jsx_runtime", "forwardRef", "Breadcrumb", "styles", "spacing", "getValidChildren", "createContext", "import_react", "import_jsx_runtime", "spacing", "forwardRef", "ButtonGroup", "size", "isDisabled", "import_react", "node", "import_react", "import_jsx_runtime", "import_react", "import_jsx_runtime", "spacing", "import_react", "import_jsx_runtime", "forwardRef", "styles", "isDisabled", "iconSpacing", "_ref", "import_react", "import_jsx_runtime", "forwardRef", "import_jsx_runtime", "forwardRef", "CardBody", "styles", "import_jsx_runtime", "forwardRef", "CardFooter", "styles", "import_jsx_runtime", "forwardRef", "CardHeader", "styles", "import_jsx_runtime", "forwardRef", "Card", "direction", "styles", "createContext", "import_react", "isInputEvent", "isDisabled", "props", "import_react", "import_jsx_runtime", "size", "isDisabled", "import_react", "import_jsx_runtime", "CheckIcon", "import_react", "import_jsx_runtime", "createContext", "isDisabled", "id", "props", "mergeRefs", "node", "forwardRef", "FormControl", "styles", "FormHelperText", "import_jsx_runtime", "createContext", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "FormLabel", "_a", "styles", "RequiredIndicator", "isDisabled", "_a", "_b", "_c", "id", "onFocus", "onBlur", "id", "node", "match", "query", "wrap", "state", "char", "next", "modality", "focus", "import_react", "omit", "object", "isDisabled", "id", "onBlur", "onFocus", "isFocusable", "isFocusVisible", "_a", "props", "mergeRefs", "node", "state", "import_react", "import_jsx_runtime", "forwardRef", "Checkbox", "styles", "spacing", "isDisabled", "state", "import_jsx_runtime", "focus", "toPrecision", "countDecimalPlaces", "valueToPercent", "percentToValue", "percent", "roundValueToStep", "from", "clampValue", "import_react", "_a", "cast", "parse", "next", "clamp", "value", "clampValue", "toPrecision", "countDecimalPlaces", "createContext", "isDisabled", "import_jsx_runtime", "forwardRef", "EditableInput", "styles", "import_jsx_runtime", "forwardRef", "EditablePreview", "styles", "import_jsx_runtime", "forwardRef", "EditableTextarea", "styles", "import_react", "node", "isRefObject", "isDom", "_a", "_b", "import_react", "contains", "isDisabled", "_a", "_b", "_c", "_d", "event", "onBlur", "props", "mergeRefs", "import_jsx_runtime", "forwardRef", "Editable", "styles", "r", "t", "React", "React", "import_prop_types", "assignRef", "import_react", "useCallbackRef", "React", "useIsomorphicLayoutEffect", "useMergeRefs", "useCallbackRef", "assignRef", "React", "InFocusGuard", "_ref", "PropTypes", "__assign", "t", "from", "React", "import_react", "defaults", "middleware", "cbs", "filter", "React", "import_react", "React", "_a", "sideCar", "_ref", "import_react", "Container", "SideCar", "id", "_ref", "captureFocusRestore", "onFocus", "onBlur", "useMergeRefs", "React", "import_prop_types", "t", "e", "t", "o", "t", "r", "t", "r", "t", "import_react", "reducePropsToState", "handleStateChangeOnClient", "wrap", "state", "SideEffect", "peek", "React", "node", "_a", "isDefined", "node", "_a", "node", "node", "contains", "_a", "position", "node", "getActiveElement", "frame", "node", "getActiveElement", "contains", "getActiveElement", "node", "contains", "node", "node", "node", "_a", "node", "contains", "node", "isDefined", "getActiveElement", "_a", "_a", "node", "_a", "_b", "_c", "_d", "_e", "line", "_f", "contains", "_a", "node", "next", "prev", "inlineProp", "extractRef", "focusOnBody", "isFreeFocus", "defaultWhitelist", "focusWhitelisted", "recordPortal", "focusIsPortaledPair", "focusWasOutside", "checkInHost", "withinHost", "activateTrap", "_ref", "node", "guard", "onTrap", "onBlur", "onFocus", "FocusWatcher", "FocusTrap", "PropTypes", "onWindowBlur", "attachHandler", "detachHandler", "id", "React", "import_prop_types", "AutoFocusInside", "_ref", "PropTypes", "React", "import_prop_types", "useFocusInside", "_ref", "isDisabled", "PropTypes", "React", "import_prop_types", "FreeFocusInside", "_ref", "PropTypes", "import_react", "import_react", "createNanoEvents", "length", "isElement", "isHTMLElement", "_a", "getOwnerWindow", "node", "_b", "getOwnerDocument", "getActiveElement", "node", "getOwnerDocument", "isHTMLElement", "hasTabIndex", "hasNegativeTabIndex", "isDisabled", "isHidden", "isContentEditable", "isFocusable", "isHTMLElement", "isDisabled", "others", "hasTabIndex", "isTabbable", "hasNegativeTabIndex", "focusableElList", "focusableElSelector", "isVisible", "getAllFocusable", "container", "isFocusable", "import_react", "import_jsx_runtime", "_a", "FocusTrap", "FocusLock", "isDisabled", "getAllFocusable", "import_react", "import_react", "keys", "import_react", "useSafeLayoutEffect", "isBrowser", "import_react", "useCallbackRef", "useSafeLayoutEffect", "_a", "import_react", "useTimeout", "delay", "useCallbackRef", "import_react", "import_react", "delay", "useCallbackRef", "import_react", "import_react", "assignRef", "error", "useMergeRefs", "node", "import_react", "useEventListener", "env", "useCallbackRef", "_a", "node", "runIfFn", "import_react", "useEventListener", "import_react", "useCallbackRef", "state", "_a", "env", "useEventListener", "import_react", "useUnmountEffect", "import_react", "handlers", "_a", "noop", "useUnmountEffect", "import_react", "useId", "prefix", "id", "useReactId", "node", "import_react", "state", "useControllableState", "prev", "next", "useCallbackRef", "runIfFn", "import_react", "useCallbackRef", "id", "useId", "props", "callAllHandlers", "import_react", "add", "import_react", "useUpdateEffect", "effect", "useUpdateEffect", "node", "useUpdateEffect", "useFocusOnPointerDown", "isSafari", "import_react", "defaultOptions", "useSafeLayoutEffect", "onFocus", "useUpdateEffect", "useEventListener", "import_react", "useForceUpdate", "useUnmountEffect", "import_react", "once", "useEventListener", "_a", "import_react", "initialState", "prev", "import_react", "copy", "import_react", "import_react", "useSafeLayoutEffect", "node", "import_react", "import_jsx_runtime", "createContext", "forwardRef", "InputGroup", "styles", "getValidChildren", "_a", "_b", "import_jsx_runtime", "forwardRef", "InputAddon", "_a", "styles", "InputLeftAddon", "InputRightAddon", "import_jsx_runtime", "forwardRef", "InputElement", "_a", "_b", "styles", "InputLeftElement", "InputRightElement", "import_jsx_runtime", "forwardRef", "Input", "styles", "import_jsx_runtime", "forwardRef", "Link", "styles", "import_jsx_runtime", "createContext", "forwardRef", "List", "styles", "spacing", "getValidChildren", "UnorderedList", "ListItem", "ListIcon", "import_jsx_runtime", "forwardRef", "Grid", "column", "styles", "breakpoints", "mapResponsive", "arrayToObjectNotation", "breakpoints", "import_jsx_runtime", "forwardRef", "SimpleGrid", "spacing", "theme", "useTheme", "mapResponsive", "import_jsx_runtime", "forwardRef", "Text", "styles", "import_react", "import_jsx_runtime", "forwardRef", "Wrap", "spacing", "direction", "WrapItem", "import_jsx_runtime", "import_jsx_runtime", "spacing", "direction", "mapResponsive", "import_react", "import_jsx_runtime", "forwardRef", "spacing", "wrap", "direction", "getValidChildren", "import_jsx_runtime", "forwardRef", "import_jsx_runtime", "forwardRef", "import_jsx_runtime", "mapResponsive", "forwardRef", "GridItem", "styles", "import_jsx_runtime", "forwardRef", "Heading", "styles", "import_jsx_runtime", "forwardRef", "Square", "size", "styles", "Circle", "import_react", "import_jsx_runtime", "char", "forwardRef", "Mark", "styles", "Fragment", "chunk", "import_react", "import_jsx_runtime", "forwardRef", "Indicator", "styles", "mapResponsive", "import_jsx_runtime", "forwardRef", "Kbd", "styles", "import_jsx_runtime", "forwardRef", "LinkOverlay", "LinkBox", "import_react", "import_jsx_runtime", "forwardRef", "mapResponsive", "r", "import_jsx_runtime", "forwardRef", "Badge", "styles", "import_jsx_runtime", "forwardRef", "AbsoluteCenter", "import_jsx_runtime", "forwardRef", "Code", "styles", "import_jsx_runtime", "Container", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "Divider", "styles", "import_jsx_runtime", "forwardRef", "Flex", "direction", "wrap", "shrink", "styles", "import_react", "query", "prev", "mql", "isVisible", "theme", "_a", "_b", "useTheme", "import_jsx_runtime", "prefersReducedMotion", "isLight", "isDark", "import_jsx_runtime", "breakpoints", "_a", "_b", "theme", "useTheme", "breakpoints", "_a", "theme", "useTheme", "breakpoints", "arrayToObjectNotation", "import_react", "isPrintableCharacter", "useShortcut", "keys", "getNextItemFromSearch", "import_react", "add", "import_react", "isValidElement", "isContentEditable", "isDisabled", "isFocusable", "node", "self", "mergeRefs", "import_react", "preventReturnFocus", "getActiveElement", "isTabbable", "useFocusOnHide", "defaultOptions", "useFocusOnShow", "isRefObject", "onFocus", "_a", "getAllFocusable", "toVar", "state", "_a", "vars", "_a", "_b", "import_react", "matchWidth", "direction", "_a", "node", "props", "mergeRefs", "size", "getArrowStyle", "import_react", "useDisclosure", "id", "props", "_a", "import_react", "useOutsideClick", "state", "isValidEvent", "getOwnerDocument", "_a", "node", "import_react", "useAnimationState", "once", "_a", "getOwnerWindow", "mode", "import_react", "createContext", "useIds", "id", "prefix", "getOwnerDocument", "node", "_a", "isActiveElement", "direction", "useDisclosure", "useOutsideClick", "useFocusOnHide", "useAnimationState", "_b", "hasFocusWithin", "mergeRefs", "isHTMLElement", "useShortcut", "event", "next", "prev", "character", "getNextItemFromSearch", "isDisabled", "isFocusable", "onFocus", "getValidChildren", "isElement", "import_react", "import_jsx_runtime", "createContext", "styles", "direction", "useTheme", "import_jsx_runtime", "forwardRef", "styles", "import_react", "import_jsx_runtime", "forwardRef", "styles", "import_react", "import_jsx_runtime", "styles", "import_jsx_runtime", "forwardRef", "iconSpacing", "import_jsx_runtime", "forwardRef", "MenuList", "_a", "_b", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "import_jsx_runtime", "forwardRef", "styles", "Element", "import_jsx_runtime", "styles", "import_jsx_runtime", "CheckIcon", "forwardRef", "iconSpacing", "import_react", "import_jsx_runtime", "__defProp", "__defNormalProp", "__publicField", "import_react", "__publicField", "node", "index", "node", "import_react", "id", "useIds", "props", "mergeRefs", "prefix", "import_jsx_runtime", "createContext", "styles", "import_react", "React", "React", "_a", "sideCar", "_b", "Container", "SideCar", "useMergeRefs", "React", "React", "React", "css", "counter", "styles", "useStyle", "_a", "styles", "parse", "_a", "counter", "_b", "node", "styles", "_a", "direction", "position", "extractRef", "id", "Style", "node", "Combination_default", "import_jsx_runtime", "isPresent", "FocusLock", "Combination_default", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "import_jsx_runtime", "createContext", "placementMap", "_a", "_b", "theme", "useTheme", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_react", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "MotionDiv", "forwardRef", "transition", "styles", "import_react", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "import_react", "_a", "import_react", "useInterval", "delay", "import_react", "useInterval", "import_react", "character", "isDisabled", "id", "onFocus", "onBlur", "counter", "sanitize", "parse", "_a", "_b", "_c", "next", "direction", "props", "mergeRefs", "_d", "import_react", "import_jsx_runtime", "createContext", "forwardRef", "NumberInput", "styles", "NumberInputStepper", "NumberInputField", "NumberDecrementStepper", "_a", "NumberIncrementStepper", "import_react", "createContext", "toArray", "isDisabled", "id", "moveFocus", "values", "next", "value", "_a", "props", "onChange", "nextValue", "index", "onFocus", "onBlur", "mergeRefs", "import_react", "import_jsx_runtime", "styles", "getValidChildren", "forwardRef", "PinInputField", "createContext", "import_jsx_runtime", "forwardRef", "PopoverHeader", "styles", "import_react", "import_react", "id", "trigger", "useDisclosure", "useAnimationState", "useFocusOnHide", "useFocusOnShow", "props", "_ref", "mergeRefs", "getRelatedTarget", "contains", "node", "_a", "import_jsx_runtime", "styles", "theme", "useTheme", "import_react", "import_jsx_runtime", "scale", "_a", "styles", "import_jsx_runtime", "forwardRef", "PopoverBody", "styles", "import_jsx_runtime", "forwardRef", "PopoverCloseButton", "styles", "import_jsx_runtime", "variants", "MotionSection", "forwardRef", "PopoverTransition", "import_jsx_runtime", "forwardRef", "PopoverContent", "styles", "import_jsx_runtime", "styles", "import_jsx_runtime", "Circle", "valueToPercent", "spin", "progress", "getValueText", "percent", "import_jsx_runtime", "size", "import_jsx_runtime", "forwardRef", "_a", "size", "getValueText", "color", "progress", "spin", "rootStyles", "Circle", "import_jsx_runtime", "createContext", "forwardRef", "progress", "styles", "_a", "css", "import_jsx_runtime", "styles", "import_react", "isInputEvent", "isDisabled", "isFocusable", "focus", "props", "mergeRefs", "ref", "import_react", "import_jsx_runtime", "createContext", "forwardRef", "size", "isDisabled", "isFocusable", "import_react", "visuallyHiddenStyle", "isFocusable", "id", "isDisabled", "isFocusVisible", "props", "onFocus", "onBlur", "stopEvent", "state", "import_jsx_runtime", "split", "object", "keys", "omitted", "forwardRef", "_a", "styles", "spacing", "isDisabled", "isFocusable", "rootStyles", "import_jsx_runtime", "forwardRef", "SelectField", "import_react", "import_jsx_runtime", "split", "object", "keys", "omitted", "forwardRef", "_a", "styles", "color", "rootStyles", "import_react", "import_react", "usePrevious", "import_jsx_runtime", "$startColor", "$endColor", "forwardRef", "styles", "usePrevious", "import_jsx_runtime", "size", "import_jsx_runtime", "spacing", "size", "number", "import_jsx_runtime", "getStyles", "styles", "forwardRef", "SkipNavLink", "id", "SkipNavContent", "dataAttr", "ariaAttr", "cx", "classNames", "callAllHandlers", "func", "id", "orient", "normalize", "getStyles", "_a", "size", "range", "percent", "direction", "addDomEvent", "isMouseEvent", "getEventWindow", "isTouchEvent", "isMultiTouchEvent", "_a", "pointFromTouch", "pointFromMouse", "isTouchEvent", "filter", "isMouseEvent", "wrap", "addPointerEvent", "addDomEvent", "handlers", "__publicField", "info", "getPanInfo", "distance", "timestamp", "event", "_a", "isMultiTouchEvent", "pipe", "addPointerEvent", "subtract", "getVelocity", "toMilliseconds", "time", "distance1D", "isPoint", "import_react", "useLatestRef", "import_react", "useLatestRef", "_a", "node", "addPointerEvent", "import_react", "import_react", "useSafeLayoutEffect", "_a", "_b", "sizes", "size", "count", "node", "direction", "isDisabled", "clampValue", "spacing", "valueToPercent", "_a", "_b", "length", "percent", "percentToValue", "roundValueToStep", "next", "step", "value", "getStyles", "id", "closest", "distance", "props", "mergeRefs", "ariaAttr", "dataAttr", "callAllHandlers", "orient", "state", "import_react", "import_jsx_runtime", "createContext", "forwardRef", "RangeSlider", "styles", "direction", "useTheme", "RangeSliderThumb", "cx", "RangeSliderTrack", "RangeSliderFilledTrack", "RangeSliderMark", "import_react", "_a", "direction", "isDisabled", "clampValue", "valueToPercent", "useLatestRef", "_b", "state", "length", "percent", "percentToValue", "roundValueToStep", "value", "step", "next", "getStyles", "props", "mergeRefs", "ariaAttr", "dataAttr", "callAllHandlers", "orient", "import_jsx_runtime", "createContext", "forwardRef", "_a", "styles", "direction", "useTheme", "cx", "import_jsx_runtime", "createContext", "forwardRef", "Stat", "styles", "import_jsx_runtime", "styles", "import_jsx_runtime", "forwardRef", "StatGroup", "import_jsx_runtime", "forwardRef", "StatHelpText", "styles", "import_jsx_runtime", "forwardRef", "StatLabel", "styles", "import_jsx_runtime", "forwardRef", "StatNumber", "styles", "createContext", "import_jsx_runtime", "forwardRef", "StepTitle", "styles", "import_jsx_runtime", "forwardRef", "Step", "styles", "import_react", "import_jsx_runtime", "forwardRef", "Stepper", "styles", "index", "import_react", "import_jsx_runtime", "forwardRef", "StepDescription", "styles", "import_jsx_runtime", "import_jsx_runtime", "CheckIcon", "import_jsx_runtime", "styles", "CheckIcon", "import_jsx_runtime", "forwardRef", "StepNumber", "styles", "import_jsx_runtime", "styles", "import_jsx_runtime", "forwardRef", "StepSeparator", "styles", "import_react", "import_jsx_runtime", "forwardRef", "Switch", "styles", "spacing", "import_jsx_runtime", "createContext", "forwardRef", "styles", "layout", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "_a", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "isNumeric", "styles", "import_jsx_runtime", "forwardRef", "styles", "import_jsx_runtime", "forwardRef", "isNumeric", "styles", "import_react", "_a", "direction", "id", "createContext", "next", "prev", "isDisabled", "isFocusable", "onFocus", "mergeRefs", "getValidChildren", "import_react", "import_jsx_runtime", "createContext", "forwardRef", "Tabs", "styles", "import_jsx_runtime", "forwardRef", "TabIndicator", "styles", "import_jsx_runtime", "forwardRef", "TabList", "styles", "import_jsx_runtime", "forwardRef", "TabPanel", "styles", "import_jsx_runtime", "forwardRef", "TabPanels", "styles", "import_jsx_runtime", "forwardRef", "Tab", "styles", "import_jsx_runtime", "createContext", "forwardRef", "styles", "isDisabled", "import_jsx_runtime", "omit", "object", "forwardRef", "styles", "scale", "import_react", "_a", "_b", "id", "isDisabled", "direction", "useDisclosure", "node", "props", "_ref", "mergeRefs", "ref", "styles", "import_react", "import_jsx_runtime", "omit", "object", "pick", "MotionDiv", "forwardRef", "_a", "_b", "styles", "theme", "useTheme", "background", "trigger", "scale"] +} diff --git a/.vite/deps/_metadata.json b/.vite/deps/_metadata.json new file mode 100644 index 0000000..8c06a54 --- /dev/null +++ b/.vite/deps/_metadata.json @@ -0,0 +1,58 @@ +{ + "hash": "748852d3", + "configHash": "a7e48a2f", + "lockfileHash": "52250f14", + "browserHash": "540bc737", + "optimized": { + "react": { + "src": "../../node_modules/react/index.js", + "file": "react.js", + "fileHash": "b0621709", + "needsInterop": true + }, + "bootstrap/dist/js/bootstrap.bundle.min.js": { + "src": "../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js", + "file": "bootstrap_dist_js_bootstrap__bundle__min__js.js", + "fileHash": "852f3c5b", + "needsInterop": true + }, + "react-dom/client": { + "src": "../../node_modules/react-dom/client.js", + "file": "react-dom_client.js", + "fileHash": "491fefa2", + "needsInterop": true + }, + "@chakra-ui/react": { + "src": "../../node_modules/@chakra-ui/react/dist/index.mjs", + "file": "@chakra-ui_react.js", + "fileHash": "facb4806", + "needsInterop": false + }, + "react-router-dom": { + "src": "../../node_modules/react-router-dom/dist/index.js", + "file": "react-router-dom.js", + "fileHash": "f3e3db6d", + "needsInterop": false + }, + "bootstrap": { + "src": "../../node_modules/bootstrap/dist/js/bootstrap.esm.js", + "file": "bootstrap.js", + "fileHash": "fdeb11d2", + "needsInterop": false + } + }, + "chunks": { + "chunk-YABOQLLY": { + "file": "chunk-YABOQLLY.js" + }, + "chunk-ZIYUGMGG": { + "file": "chunk-ZIYUGMGG.js" + }, + "chunk-65KY755N": { + "file": "chunk-65KY755N.js" + }, + "chunk-V4OQ3NZ2": { + "file": "chunk-V4OQ3NZ2.js" + } + } +} \ No newline at end of file diff --git a/.vite/deps/bootstrap.js b/.vite/deps/bootstrap.js new file mode 100644 index 0000000..9e1bde1 --- /dev/null +++ b/.vite/deps/bootstrap.js @@ -0,0 +1,3680 @@ +import { + createPopper, + lib_exports +} from "./chunk-YABOQLLY.js"; +import "./chunk-V4OQ3NZ2.js"; + +// node_modules/bootstrap/dist/js/bootstrap.esm.js +var elementMap = /* @__PURE__ */ new Map(); +var Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, /* @__PURE__ */ new Map()); + } + const instanceMap = elementMap.get(element); + if (!instanceMap.has(key) && instanceMap.size !== 0) { + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } + instanceMap.set(key, instance); + }, + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } + return null; + }, + remove(element, key) { + if (!elementMap.has(element)) { + return; + } + const instanceMap = elementMap.get(element); + instanceMap.delete(key); + if (instanceMap.size === 0) { + elementMap.delete(element); + } + } +}; +var MAX_UID = 1e6; +var MILLISECONDS_MULTIPLIER = 1e3; +var TRANSITION_END = "transitionend"; +var parseSelector = (selector) => { + if (selector && window.CSS && window.CSS.escape) { + selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); + } + return selector; +}; +var toType = (object) => { + if (object === null || object === void 0) { + return `${object}`; + } + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); +}; +var getUID = (prefix) => { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + return prefix; +}; +var getTransitionDurationFromElement = (element) => { + if (!element) { + return 0; + } + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } + transitionDuration = transitionDuration.split(",")[0]; + transitionDelay = transitionDelay.split(",")[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; +}; +var triggerTransitionEnd = (element) => { + element.dispatchEvent(new Event(TRANSITION_END)); +}; +var isElement = (object) => { + if (!object || typeof object !== "object") { + return false; + } + if (typeof object.jquery !== "undefined") { + object = object[0]; + } + return typeof object.nodeType !== "undefined"; +}; +var getElement = (object) => { + if (isElement(object)) { + return object.jquery ? object[0] : object; + } + if (typeof object === "string" && object.length > 0) { + return document.querySelector(parseSelector(object)); + } + return null; +}; +var isVisible = (element) => { + if (!isElement(element) || element.getClientRects().length === 0) { + return false; + } + const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible"; + const closedDetails = element.closest("details:not([open])"); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element) { + const summary = element.closest("summary"); + if (summary && summary.parentNode !== closedDetails) { + return false; + } + if (summary === null) { + return false; + } + } + return elementIsVisible; +}; +var isDisabled = (element) => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + if (element.classList.contains("disabled")) { + return true; + } + if (typeof element.disabled !== "undefined") { + return element.disabled; + } + return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false"; +}; +var findShadowRoot = (element) => { + if (!document.documentElement.attachShadow) { + return null; + } + if (typeof element.getRootNode === "function") { + const root = element.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + if (element instanceof ShadowRoot) { + return element; + } + if (!element.parentNode) { + return null; + } + return findShadowRoot(element.parentNode); +}; +var noop = () => { +}; +var reflow = (element) => { + element.offsetHeight; +}; +var getjQuery = () => { + if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) { + return window.jQuery; + } + return null; +}; +var DOMContentLoadedCallbacks = []; +var onDOMContentLoaded = (callback) => { + if (document.readyState === "loading") { + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener("DOMContentLoaded", () => { + for (const callback2 of DOMContentLoadedCallbacks) { + callback2(); + } + }); + } + DOMContentLoadedCallbacks.push(callback); + } else { + callback(); + } +}; +var isRTL = () => document.documentElement.dir === "rtl"; +var defineJQueryPlugin = (plugin) => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + if ($) { + const name = plugin.NAME; + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); +}; +var execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { + return typeof possibleCallback === "function" ? possibleCallback(...args) : defaultValue; +}; +var executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { + if (!waitForTransition) { + execute(callback); + return; + } + const durationPadding = 5; + const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; + let called = false; + const handler = ({ + target + }) => { + if (target !== transitionElement) { + return; + } + called = true; + transitionElement.removeEventListener(TRANSITION_END, handler); + execute(callback); + }; + transitionElement.addEventListener(TRANSITION_END, handler); + setTimeout(() => { + if (!called) { + triggerTransitionEnd(transitionElement); + } + }, emulatedDuration); +}; +var getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; + let index = list.indexOf(activeElement); + if (index === -1) { + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; + } + index += shouldGetNext ? 1 : -1; + if (isCycleAllowed) { + index = (index + listLength) % listLength; + } + return list[Math.max(0, Math.min(index, listLength - 1))]; +}; +var namespaceRegex = /[^.]*(?=\..*)\.|.*/; +var stripNameRegex = /\..*/; +var stripUidRegex = /::\d+$/; +var eventRegistry = {}; +var uidEvent = 1; +var customEvents = { + mouseenter: "mouseover", + mouseleave: "mouseout" +}; +var nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]); +function makeEventUid(element, uid) { + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; +} +function getElementEvents(element) { + const uid = makeEventUid(element); + element.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; +} +function bootstrapHandler(element, fn) { + return function handler(event) { + hydrateObj(event, { + delegateTarget: element + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + return fn.apply(element, [event]); + }; +} +function bootstrapDelegationHandler(element, selector, fn) { + return function handler(event) { + const domElements = element.querySelectorAll(selector); + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (const domElement of domElements) { + if (domElement !== target) { + continue; + } + hydrateObj(event, { + delegateTarget: target + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + return fn.apply(target, [event]); + } + } + }; +} +function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector); +} +function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === "string"; + const callable = isDelegated ? delegationFunction : handler || delegationFunction; + let typeEvent = getTypeEvent(originalTypeEvent); + if (!nativeEvents.has(typeEvent)) { + typeEvent = originalTypeEvent; + } + return [isDelegated, callable, typeEvent]; +} +function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { + if (typeof originalTypeEvent !== "string" || !element) { + return; + } + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + if (originalTypeEvent in customEvents) { + const wrapFunction = (fn2) => { + return function(event) { + if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { + return fn2.call(this, event); + } + }; + }; + callable = wrapFunction(callable); + } + const events = getElementEvents(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; + return; + } + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, "")); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; + fn.oneOff = oneOff; + fn.uidEvent = uid; + handlers[uid] = fn; + element.addEventListener(typeEvent, fn, isDelegated); +} +function removeHandler(element, events, typeEvent, handler, delegationSelector) { + const fn = findHandler(events[typeEvent], handler, delegationSelector); + if (!fn) { + return; + } + element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); + delete events[typeEvent][fn.uidEvent]; +} +function removeNamespacedHandlers(element, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + for (const [handlerKey, event] of Object.entries(storeElementEvent)) { + if (handlerKey.includes(namespace)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } +} +function getTypeEvent(event) { + event = event.replace(stripNameRegex, ""); + return customEvents[event] || event; +} +var EventHandler = { + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); + }, + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); + }, + off(element, originalTypeEvent, handler, delegationFunction) { + if (typeof originalTypeEvent !== "string" || !element) { + return; + } + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; + const isNamespace = originalTypeEvent.startsWith("."); + if (typeof callable !== "undefined") { + if (!Object.keys(storeElementEvent).length) { + return; + } + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); + return; + } + if (isNamespace) { + for (const elementEvent of Object.keys(events)) { + removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); + } + } + for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { + const handlerKey = keyHandlers.replace(stripUidRegex, ""); + if (!inNamespace || originalTypeEvent.includes(handlerKey)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + }, + trigger(element, event, args) { + if (typeof event !== "string" || !element) { + return null; + } + const $ = getjQuery(); + const typeEvent = getTypeEvent(event); + const inNamespace = event !== typeEvent; + let jQueryEvent = null; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + const evt = hydrateObj(new Event(event, { + bubbles, + cancelable: true + }), args); + if (defaultPrevented) { + evt.preventDefault(); + } + if (nativeDispatch) { + element.dispatchEvent(evt); + } + if (evt.defaultPrevented && jQueryEvent) { + jQueryEvent.preventDefault(); + } + return evt; + } +}; +function hydrateObj(obj, meta = {}) { + for (const [key, value] of Object.entries(meta)) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; +} +function normalizeData(value) { + if (value === "true") { + return true; + } + if (value === "false") { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === "" || value === "null") { + return null; + } + if (typeof value !== "string") { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } +} +function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`); +} +var Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + getDataAttributes(element) { + if (!element) { + return {}; + } + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig")); + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ""); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + return attributes; + }, + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } +}; +var Config = class { + // Getters + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, "config") : {}; + return { + ...this.constructor.Default, + ...typeof jsonConfig === "object" ? jsonConfig : {}, + ...isElement(element) ? Manipulator.getDataAttributes(element) : {}, + ...typeof config === "object" ? config : {} + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const [property, expectedTypes] of Object.entries(configTypes)) { + const value = config[property]; + const valueType = isElement(value) ? "element" : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } + } +}; +var VERSION = "5.3.3"; +var BaseComponent = class extends Config { + constructor(element, config) { + super(); + element = getElement(element); + if (!element) { + return; + } + this._element = element; + this._config = this._getConfig(config); + Data.set(this._element, this.constructor.DATA_KEY, this); + } + // Public + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); + EventHandler.off(this._element, this.constructor.EVENT_KEY); + for (const propertyName of Object.getOwnPropertyNames(this)) { + this[propertyName] = null; + } + } + _queueCallback(callback, element, isAnimated = true) { + executeAfterTransition(callback, element, isAnimated); + } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + // Static + static getInstance(element) { + return Data.get(getElement(element), this.DATA_KEY); + } + static getOrCreateInstance(element, config = {}) { + return this.getInstance(element) || new this(element, typeof config === "object" ? config : null); + } + static get VERSION() { + return VERSION; + } + static get DATA_KEY() { + return `bs.${this.NAME}`; + } + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } +}; +var getSelector = (element) => { + let selector = element.getAttribute("data-bs-target"); + if (!selector || selector === "#") { + let hrefAttribute = element.getAttribute("href"); + if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) { + return null; + } + if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) { + hrefAttribute = `#${hrefAttribute.split("#")[1]}`; + } + selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null; + } + return selector ? selector.split(",").map((sel) => parseSelector(sel)).join(",") : null; +}; +var SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); + }, + findOne(selector, element = document.documentElement) { + return Element.prototype.querySelector.call(element, selector); + }, + children(element, selector) { + return [].concat(...element.children).filter((child) => child.matches(selector)); + }, + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); + } + return parents; + }, + prev(element, selector) { + let previous = element.previousElementSibling; + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + previous = previous.previousElementSibling; + } + return []; + }, + // TODO: this is now unused; remove later along with prev() + next(element, selector) { + let next = element.nextElementSibling; + while (next) { + if (next.matches(selector)) { + return [next]; + } + next = next.nextElementSibling; + } + return []; + }, + focusableChildren(element) { + const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector) => `${selector}:not([tabindex^="-"])`).join(","); + return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el)); + }, + getSelectorFromElement(element) { + const selector = getSelector(element); + if (selector) { + return SelectorEngine.findOne(selector) ? selector : null; + } + return null; + }, + getElementFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.findOne(selector) : null; + }, + getMultipleElementsFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.find(selector) : []; + } +}; +var enableDismissTrigger = (component, method = "hide") => { + const clickEvent = `click.dismiss${component.EVENT_KEY}`; + const name = component.NAME; + EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) { + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); + const instance = component.getOrCreateInstance(target); + instance[method](); + }); +}; +var NAME$f = "alert"; +var DATA_KEY$a = "bs.alert"; +var EVENT_KEY$b = `.${DATA_KEY$a}`; +var EVENT_CLOSE = `close${EVENT_KEY$b}`; +var EVENT_CLOSED = `closed${EVENT_KEY$b}`; +var CLASS_NAME_FADE$5 = "fade"; +var CLASS_NAME_SHOW$8 = "show"; +var Alert = class _Alert extends BaseComponent { + // Getters + static get NAME() { + return NAME$f; + } + // Public + close() { + const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); + if (closeEvent.defaultPrevented) { + return; + } + this._element.classList.remove(CLASS_NAME_SHOW$8); + const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); + this._queueCallback(() => this._destroyElement(), this._element, isAnimated); + } + // Private + _destroyElement() { + this._element.remove(); + EventHandler.trigger(this._element, EVENT_CLOSED); + this.dispose(); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Alert.getOrCreateInstance(this); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } +}; +enableDismissTrigger(Alert, "close"); +defineJQueryPlugin(Alert); +var NAME$e = "button"; +var DATA_KEY$9 = "bs.button"; +var EVENT_KEY$a = `.${DATA_KEY$9}`; +var DATA_API_KEY$6 = ".data-api"; +var CLASS_NAME_ACTIVE$3 = "active"; +var SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; +var EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; +var Button = class _Button extends BaseComponent { + // Getters + static get NAME() { + return NAME$e; + } + // Public + toggle() { + this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Button.getOrCreateInstance(this); + if (config === "toggle") { + data[config](); + } + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => { + event.preventDefault(); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + const data = Button.getOrCreateInstance(button); + data.toggle(); +}); +defineJQueryPlugin(Button); +var NAME$d = "swipe"; +var EVENT_KEY$9 = ".bs.swipe"; +var EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; +var EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; +var EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; +var EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; +var EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; +var POINTER_TYPE_TOUCH = "touch"; +var POINTER_TYPE_PEN = "pen"; +var CLASS_NAME_POINTER_EVENT = "pointer-event"; +var SWIPE_THRESHOLD = 40; +var Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null +}; +var DefaultType$c = { + endCallback: "(function|null)", + leftCallback: "(function|null)", + rightCallback: "(function|null)" +}; +var Swipe = class _Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + if (!element || !_Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } + // Getters + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$d; + } + // Public + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } + // Private + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } + // Static + static isSupported() { + return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0; + } +}; +var NAME$c = "carousel"; +var DATA_KEY$8 = "bs.carousel"; +var EVENT_KEY$8 = `.${DATA_KEY$8}`; +var DATA_API_KEY$5 = ".data-api"; +var ARROW_LEFT_KEY$1 = "ArrowLeft"; +var ARROW_RIGHT_KEY$1 = "ArrowRight"; +var TOUCHEVENT_COMPAT_WAIT = 500; +var ORDER_NEXT = "next"; +var ORDER_PREV = "prev"; +var DIRECTION_LEFT = "left"; +var DIRECTION_RIGHT = "right"; +var EVENT_SLIDE = `slide${EVENT_KEY$8}`; +var EVENT_SLID = `slid${EVENT_KEY$8}`; +var EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; +var EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; +var EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; +var EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; +var EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; +var EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; +var CLASS_NAME_CAROUSEL = "carousel"; +var CLASS_NAME_ACTIVE$2 = "active"; +var CLASS_NAME_SLIDE = "slide"; +var CLASS_NAME_END = "carousel-item-end"; +var CLASS_NAME_START = "carousel-item-start"; +var CLASS_NAME_NEXT = "carousel-item-next"; +var CLASS_NAME_PREV = "carousel-item-prev"; +var SELECTOR_ACTIVE = ".active"; +var SELECTOR_ITEM = ".carousel-item"; +var SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; +var SELECTOR_ITEM_IMG = ".carousel-item img"; +var SELECTOR_INDICATORS = ".carousel-indicators"; +var SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]"; +var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; +var KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT +}; +var Default$b = { + interval: 5e3, + keyboard: true, + pause: "hover", + ride: false, + touch: true, + wrap: true +}; +var DefaultType$b = { + interval: "(number|boolean)", + // TODO:v6 remove boolean support + keyboard: "boolean", + pause: "(string|boolean)", + ride: "(boolean|string)", + touch: "boolean", + wrap: "boolean" +}; +var Carousel = class _Carousel extends BaseComponent { + constructor(element, config) { + super(element, config); + this._interval = null; + this._activeElement = null; + this._isSliding = false; + this.touchTimeout = null; + this._swipeHelper = null; + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._addEventListeners(); + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } + } + // Getters + static get Default() { + return Default$b; + } + static get DefaultType() { + return DefaultType$b; + } + static get NAME() { + return NAME$c; + } + // Public + next() { + this._slide(ORDER_NEXT); + } + nextWhenVisible() { + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + } + prev() { + this._slide(ORDER_PREV); + } + pause() { + if (this._isSliding) { + triggerTransitionEnd(this._element); + } + this._clearInterval(); + } + cycle() { + this._clearInterval(); + this._updateInterval(); + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + _maybeEnableCycle() { + if (!this._config.ride) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; + } + this.cycle(); + } + to(index) { + const items = this._getItems(); + if (index > items.length - 1 || index < 0) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); + return; + } + const activeIndex = this._getItemIndex(this._getActive()); + if (activeIndex === index) { + return; + } + const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; + this._slide(order, items[index]); + } + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + super.dispose(); + } + // Private + _configAfterMerge(config) { + config.defaultInterval = config.interval; + return config; + } + _addEventListeners() { + if (this._config.keyboard) { + EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event)); + } + if (this._config.pause === "hover") { + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); + } + if (this._config.touch && Swipe.isSupported()) { + this._addTouchEventListeners(); + } + } + _addTouchEventListeners() { + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault()); + } + const endCallBack = () => { + if (this._config.pause !== "hover") { + return; + } + this.pause(); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); + }; + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); + } + _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + const direction = KEY_TO_DIRECTION[event.key]; + if (direction) { + event.preventDefault(); + this._slide(this._directionToOrder(direction)); + } + } + _getItemIndex(element) { + return this._getItems().indexOf(element); + } + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); + activeIndicator.removeAttribute("aria-current"); + const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); + newActiveIndicator.setAttribute("aria-current", "true"); + } + } + _updateInterval() { + const element = this._activeElement || this._getActive(); + if (!element) { + return; + } + const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10); + this._config.interval = elementInterval || this._config.defaultInterval; + } + _slide(order, element = null) { + if (this._isSliding) { + return; + } + const activeElement = this._getActive(); + const isNext = order === ORDER_NEXT; + const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + if (nextElement === activeElement) { + return; + } + const nextElementIndex = this._getItemIndex(nextElement); + const triggerEvent = (eventName) => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + const slideEvent = triggerEvent(EVENT_SLIDE); + if (slideEvent.defaultPrevented) { + return; + } + if (!activeElement || !nextElement) { + return; + } + const isCycling = Boolean(this._interval); + this.pause(); + this._isSliding = true; + this._setActiveIndicatorElement(nextElementIndex); + this._activeElement = nextElement; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE$2); + activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); + this._isSliding = false; + triggerEvent(EVENT_SLID); + }; + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); + if (isCycling) { + this.cycle(); + } + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + } + _directionToOrder(direction) { + if (isRTL()) { + return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; + } + return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; + } + _orderToDirection(order) { + if (isRTL()) { + return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Carousel.getOrCreateInstance(this, config); + if (typeof config === "number") { + data.to(config); + return; + } + if (typeof config === "string") { + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) { + const target = SelectorEngine.getElementFromSelector(this); + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + event.preventDefault(); + const carousel = Carousel.getOrCreateInstance(target); + const slideIndex = this.getAttribute("data-bs-slide-to"); + if (slideIndex) { + carousel.to(slideIndex); + carousel._maybeEnableCycle(); + return; + } + if (Manipulator.getDataAttribute(this, "slide") === "next") { + carousel.next(); + carousel._maybeEnableCycle(); + return; + } + carousel.prev(); + carousel._maybeEnableCycle(); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { + const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); + for (const carousel of carousels) { + Carousel.getOrCreateInstance(carousel); + } +}); +defineJQueryPlugin(Carousel); +var NAME$b = "collapse"; +var DATA_KEY$7 = "bs.collapse"; +var EVENT_KEY$7 = `.${DATA_KEY$7}`; +var DATA_API_KEY$4 = ".data-api"; +var EVENT_SHOW$6 = `show${EVENT_KEY$7}`; +var EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; +var EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; +var EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; +var EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; +var CLASS_NAME_SHOW$7 = "show"; +var CLASS_NAME_COLLAPSE = "collapse"; +var CLASS_NAME_COLLAPSING = "collapsing"; +var CLASS_NAME_COLLAPSED = "collapsed"; +var CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; +var CLASS_NAME_HORIZONTAL = "collapse-horizontal"; +var WIDTH = "width"; +var HEIGHT = "height"; +var SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing"; +var SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; +var Default$a = { + parent: null, + toggle: true +}; +var DefaultType$a = { + parent: "(null|element)", + toggle: "boolean" +}; +var Collapse = class _Collapse extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isTransitioning = false; + this._triggerArray = []; + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); + for (const elem of toggleList) { + const selector = SelectorEngine.getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element); + if (selector !== null && filterElement.length) { + this._triggerArray.push(elem); + } + } + this._initializeChildren(); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); + } + if (this._config.toggle) { + this.toggle(); + } + } + // Getters + static get Default() { + return Default$a; + } + static get DefaultType() { + return DefaultType$a; + } + static get NAME() { + return NAME$b; + } + // Public + toggle() { + if (this._isShown()) { + this.hide(); + } else { + this.show(); + } + } + show() { + if (this._isTransitioning || this._isShown()) { + return; + } + let activeChildren = []; + if (this._config.parent) { + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => _Collapse.getOrCreateInstance(element, { + toggle: false + })); + } + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); + if (startEvent.defaultPrevented) { + return; + } + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } + const dimension = this._getDimension(); + this._element.classList.remove(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.style[dimension] = 0; + this._addAriaAndCollapsedClass(this._triggerArray, true); + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + this._element.style[dimension] = ""; + EventHandler.trigger(this._element, EVENT_SHOWN$6); + }; + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + this._queueCallback(complete, this._element, true); + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } + hide() { + if (this._isTransitioning || !this._isShown()) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); + if (startEvent.defaultPrevented) { + return; + } + const dimension = this._getDimension(); + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; + reflow(this._element); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); + for (const trigger of this._triggerArray) { + const element = SelectorEngine.getElementFromSelector(trigger); + if (element && !this._isShown(element)) { + this._addAriaAndCollapsedClass([trigger], false); + } + } + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE); + EventHandler.trigger(this._element, EVENT_HIDDEN$6); + }; + this._element.style[dimension] = ""; + this._queueCallback(complete, this._element, true); + } + _isShown(element = this._element) { + return element.classList.contains(CLASS_NAME_SHOW$7); + } + // Private + _configAfterMerge(config) { + config.toggle = Boolean(config.toggle); + config.parent = getElement(config.parent); + return config; + } + _getDimension() { + return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; + } + _initializeChildren() { + if (!this._config.parent) { + return; + } + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); + for (const element of children) { + const selected = SelectorEngine.getElementFromSelector(element); + if (selected) { + this._addAriaAndCollapsedClass([element], this._isShown(selected)); + } + } + } + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); + return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element)); + } + _addAriaAndCollapsedClass(triggerArray, isOpen) { + if (!triggerArray.length) { + return; + } + for (const element of triggerArray) { + element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element.setAttribute("aria-expanded", isOpen); + } + } + // Static + static jQueryInterface(config) { + const _config = {}; + if (typeof config === "string" && /show|hide/.test(config)) { + _config.toggle = false; + } + return this.each(function() { + const data = _Collapse.getOrCreateInstance(this, _config); + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) { + if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") { + event.preventDefault(); + } + for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) { + Collapse.getOrCreateInstance(element, { + toggle: false + }).toggle(); + } +}); +defineJQueryPlugin(Collapse); +var NAME$a = "dropdown"; +var DATA_KEY$6 = "bs.dropdown"; +var EVENT_KEY$6 = `.${DATA_KEY$6}`; +var DATA_API_KEY$3 = ".data-api"; +var ESCAPE_KEY$2 = "Escape"; +var TAB_KEY$1 = "Tab"; +var ARROW_UP_KEY$1 = "ArrowUp"; +var ARROW_DOWN_KEY$1 = "ArrowDown"; +var RIGHT_MOUSE_BUTTON = 2; +var EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; +var EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; +var EVENT_SHOW$5 = `show${EVENT_KEY$6}`; +var EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; +var EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; +var EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; +var EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; +var CLASS_NAME_SHOW$6 = "show"; +var CLASS_NAME_DROPUP = "dropup"; +var CLASS_NAME_DROPEND = "dropend"; +var CLASS_NAME_DROPSTART = "dropstart"; +var CLASS_NAME_DROPUP_CENTER = "dropup-center"; +var CLASS_NAME_DROPDOWN_CENTER = "dropdown-center"; +var SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; +var SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; +var SELECTOR_MENU = ".dropdown-menu"; +var SELECTOR_NAVBAR = ".navbar"; +var SELECTOR_NAVBAR_NAV = ".navbar-nav"; +var SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"; +var PLACEMENT_TOP = isRTL() ? "top-end" : "top-start"; +var PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end"; +var PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start"; +var PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end"; +var PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start"; +var PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start"; +var PLACEMENT_TOPCENTER = "top"; +var PLACEMENT_BOTTOMCENTER = "bottom"; +var Default$9 = { + autoClose: true, + boundary: "clippingParents", + display: "dynamic", + offset: [0, 2], + popperConfig: null, + reference: "toggle" +}; +var DefaultType$9 = { + autoClose: "(boolean|string)", + boundary: "(string|element)", + display: "string", + offset: "(array|string|function)", + popperConfig: "(null|object|function)", + reference: "(string|element|object)" +}; +var Dropdown = class _Dropdown extends BaseComponent { + constructor(element, config) { + super(element, config); + this._popper = null; + this._parent = this._element.parentNode; + this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._inNavbar = this._detectNavbar(); + } + // Getters + static get Default() { + return Default$9; + } + static get DefaultType() { + return DefaultType$9; + } + static get NAME() { + return NAME$a; + } + // Public + toggle() { + return this._isShown() ? this.hide() : this.show(); + } + show() { + if (isDisabled(this._element) || this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); + if (showEvent.defaultPrevented) { + return; + } + this._createPopper(); + if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, "mouseover", noop); + } + } + this._element.focus(); + this._element.setAttribute("aria-expanded", true); + this._menu.classList.add(CLASS_NAME_SHOW$6); + this._element.classList.add(CLASS_NAME_SHOW$6); + EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); + } + hide() { + if (isDisabled(this._element) || !this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + this._completeHide(relatedTarget); + } + dispose() { + if (this._popper) { + this._popper.destroy(); + } + super.dispose(); + } + update() { + this._inNavbar = this._detectNavbar(); + if (this._popper) { + this._popper.update(); + } + } + // Private + _completeHide(relatedTarget) { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); + if (hideEvent.defaultPrevented) { + return; + } + if ("ontouchstart" in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, "mouseover", noop); + } + } + if (this._popper) { + this._popper.destroy(); + } + this._menu.classList.remove(CLASS_NAME_SHOW$6); + this._element.classList.remove(CLASS_NAME_SHOW$6); + this._element.setAttribute("aria-expanded", "false"); + Manipulator.removeDataAttribute(this._menu, "popper"); + EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); + } + _getConfig(config) { + config = super._getConfig(config); + if (typeof config.reference === "object" && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== "function") { + throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); + } + return config; + } + _createPopper() { + if (typeof lib_exports === "undefined") { + throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); + } + let referenceElement = this._element; + if (this._config.reference === "parent") { + referenceElement = this._parent; + } else if (isElement(this._config.reference)) { + referenceElement = getElement(this._config.reference); + } else if (typeof this._config.reference === "object") { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); + this._popper = createPopper(referenceElement, this._menu, popperConfig); + } + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW$6); + } + _getPlacement() { + const parentDropdown = this._parent; + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } + const isEnd = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end"; + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; + } + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } + _detectNavbar() { + return this._element.closest(SELECTOR_NAVBAR) !== null; + } + _getOffset() { + const { + offset + } = this._config; + if (typeof offset === "string") { + return offset.split(",").map((value) => Number.parseInt(value, 10)); + } + if (typeof offset === "function") { + return (popperData) => offset(popperData, this._element); + } + return offset; + } + _getPopperConfig() { + const defaultBsPopperConfig = { + placement: this._getPlacement(), + modifiers: [{ + name: "preventOverflow", + options: { + boundary: this._config.boundary + } + }, { + name: "offset", + options: { + offset: this._getOffset() + } + }] + }; + if (this._inNavbar || this._config.display === "static") { + Manipulator.setDataAttribute(this._menu, "popper", "static"); + defaultBsPopperConfig.modifiers = [{ + name: "applyStyles", + enabled: false + }]; + } + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _selectMenuItem({ + key, + target + }) { + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element)); + if (!items.length) { + return; + } + getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Dropdown.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } + static clearMenus(event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) { + return; + } + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + for (const toggle of openToggles) { + const context = _Dropdown.getInstance(toggle); + if (!context || context._config.autoClose === false) { + continue; + } + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) { + continue; + } + if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { + continue; + } + const relatedTarget = { + relatedTarget: context._element + }; + if (event.type === "click") { + relatedTarget.clickEvent = event; + } + context._completeHide(relatedTarget); + } + } + static dataApiKeydownHandler(event) { + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY$2; + const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); + if (!isUpOrDownEvent && !isEscapeEvent) { + return; + } + if (isInput && !isEscapeEvent) { + return; + } + event.preventDefault(); + const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); + const instance = _Dropdown.getOrCreateInstance(getToggleButton); + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); + instance._selectMenuItem(event); + return; + } + if (instance._isShown()) { + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); + } + } +}; +EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); +EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); +EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); +EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); +EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) { + event.preventDefault(); + Dropdown.getOrCreateInstance(this).toggle(); +}); +defineJQueryPlugin(Dropdown); +var NAME$9 = "backdrop"; +var CLASS_NAME_FADE$4 = "fade"; +var CLASS_NAME_SHOW$5 = "show"; +var EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; +var Default$8 = { + className: "modal-backdrop", + clickCallback: null, + isAnimated: false, + isVisible: true, + // if false, we use the backdrop helper without adding any element to the dom + rootElement: "body" + // give the choice to place backdrop under different elements +}; +var DefaultType$8 = { + className: "string", + clickCallback: "(function|null)", + isAnimated: "boolean", + isVisible: "boolean", + rootElement: "(element|string)" +}; +var Backdrop = class extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isAppended = false; + this._element = null; + } + // Getters + static get Default() { + return Default$8; + } + static get DefaultType() { + return DefaultType$8; + } + static get NAME() { + return NAME$9; + } + // Public + show(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._append(); + const element = this._getElement(); + if (this._config.isAnimated) { + reflow(element); + } + element.classList.add(CLASS_NAME_SHOW$5); + this._emulateAnimation(() => { + execute(callback); + }); + } + hide(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._getElement().classList.remove(CLASS_NAME_SHOW$5); + this._emulateAnimation(() => { + this.dispose(); + execute(callback); + }); + } + dispose() { + if (!this._isAppended) { + return; + } + EventHandler.off(this._element, EVENT_MOUSEDOWN); + this._element.remove(); + this._isAppended = false; + } + // Private + _getElement() { + if (!this._element) { + const backdrop = document.createElement("div"); + backdrop.className = this._config.className; + if (this._config.isAnimated) { + backdrop.classList.add(CLASS_NAME_FADE$4); + } + this._element = backdrop; + } + return this._element; + } + _configAfterMerge(config) { + config.rootElement = getElement(config.rootElement); + return config; + } + _append() { + if (this._isAppended) { + return; + } + const element = this._getElement(); + this._config.rootElement.append(element); + EventHandler.on(element, EVENT_MOUSEDOWN, () => { + execute(this._config.clickCallback); + }); + this._isAppended = true; + } + _emulateAnimation(callback) { + executeAfterTransition(callback, this._getElement(), this._config.isAnimated); + } +}; +var NAME$8 = "focustrap"; +var DATA_KEY$5 = "bs.focustrap"; +var EVENT_KEY$5 = `.${DATA_KEY$5}`; +var EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; +var EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; +var TAB_KEY = "Tab"; +var TAB_NAV_FORWARD = "forward"; +var TAB_NAV_BACKWARD = "backward"; +var Default$7 = { + autofocus: true, + trapElement: null + // The element to trap focus inside of +}; +var DefaultType$7 = { + autofocus: "boolean", + trapElement: "element" +}; +var FocusTrap = class extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isActive = false; + this._lastTabNavDirection = null; + } + // Getters + static get Default() { + return Default$7; + } + static get DefaultType() { + return DefaultType$7; + } + static get NAME() { + return NAME$8; + } + // Public + activate() { + if (this._isActive) { + return; + } + if (this._config.autofocus) { + this._config.trapElement.focus(); + } + EventHandler.off(document, EVENT_KEY$5); + EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event)); + EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event)); + this._isActive = true; + } + deactivate() { + if (!this._isActive) { + return; + } + this._isActive = false; + EventHandler.off(document, EVENT_KEY$5); + } + // Private + _handleFocusin(event) { + const { + trapElement + } = this._config; + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { + return; + } + const elements = SelectorEngine.focusableChildren(trapElement); + if (elements.length === 0) { + trapElement.focus(); + } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { + elements[elements.length - 1].focus(); + } else { + elements[0].focus(); + } + } + _handleKeydown(event) { + if (event.key !== TAB_KEY) { + return; + } + this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; + } +}; +var SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"; +var SELECTOR_STICKY_CONTENT = ".sticky-top"; +var PROPERTY_PADDING = "padding-right"; +var PROPERTY_MARGIN = "margin-right"; +var ScrollBarHelper = class { + constructor() { + this._element = document.body; + } + // Public + getWidth() { + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + } + hide() { + const width = this.getWidth(); + this._disableOverFlow(); + this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width); + this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width); + this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width); + } + reset() { + this._resetElementAttributes(this._element, "overflow"); + this._resetElementAttributes(this._element, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + isOverflowing() { + return this.getWidth() > 0; + } + // Private + _disableOverFlow() { + this._saveInitialAttribute(this._element, "overflow"); + this._element.style.overflow = "hidden"; + } + _setElementAttributes(selector, styleProperty, callback) { + const scrollbarWidth = this.getWidth(); + const manipulationCallBack = (element) => { + if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { + return; + } + this._saveInitialAttribute(element, styleProperty); + const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); + element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _saveInitialAttribute(element, styleProperty) { + const actualValue = element.style.getPropertyValue(styleProperty); + if (actualValue) { + Manipulator.setDataAttribute(element, styleProperty, actualValue); + } + } + _resetElementAttributes(selector, styleProperty) { + const manipulationCallBack = (element) => { + const value = Manipulator.getDataAttribute(element, styleProperty); + if (value === null) { + element.style.removeProperty(styleProperty); + return; + } + Manipulator.removeDataAttribute(element, styleProperty); + element.style.setProperty(styleProperty, value); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _applyManipulationCallback(selector, callBack) { + if (isElement(selector)) { + callBack(selector); + return; + } + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); + } + } +}; +var NAME$7 = "modal"; +var DATA_KEY$4 = "bs.modal"; +var EVENT_KEY$4 = `.${DATA_KEY$4}`; +var DATA_API_KEY$2 = ".data-api"; +var ESCAPE_KEY$1 = "Escape"; +var EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; +var EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; +var EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; +var EVENT_SHOW$4 = `show${EVENT_KEY$4}`; +var EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; +var EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; +var EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; +var EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; +var EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; +var EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; +var CLASS_NAME_OPEN = "modal-open"; +var CLASS_NAME_FADE$3 = "fade"; +var CLASS_NAME_SHOW$4 = "show"; +var CLASS_NAME_STATIC = "modal-static"; +var OPEN_SELECTOR$1 = ".modal.show"; +var SELECTOR_DIALOG = ".modal-dialog"; +var SELECTOR_MODAL_BODY = ".modal-body"; +var SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; +var Default$6 = { + backdrop: true, + focus: true, + keyboard: true +}; +var DefaultType$6 = { + backdrop: "(boolean|string)", + focus: "boolean", + keyboard: "boolean" +}; +var Modal = class _Modal extends BaseComponent { + constructor(element, config) { + super(element, config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._isShown = false; + this._isTransitioning = false; + this._scrollBar = new ScrollBarHelper(); + this._addEventListeners(); + } + // Getters + static get Default() { + return Default$6; + } + static get DefaultType() { + return DefaultType$6; + } + static get NAME() { + return NAME$7; + } + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown || this._isTransitioning) { + return; + } + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { + relatedTarget + }); + if (showEvent.defaultPrevented) { + return; + } + this._isShown = true; + this._isTransitioning = true; + this._scrollBar.hide(); + document.body.classList.add(CLASS_NAME_OPEN); + this._adjustDialog(); + this._backdrop.show(() => this._showElement(relatedTarget)); + } + hide() { + if (!this._isShown || this._isTransitioning) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); + if (hideEvent.defaultPrevented) { + return; + } + this._isShown = false; + this._isTransitioning = true; + this._focustrap.deactivate(); + this._element.classList.remove(CLASS_NAME_SHOW$4); + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); + } + dispose() { + EventHandler.off(window, EVENT_KEY$4); + EventHandler.off(this._dialog, EVENT_KEY$4); + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } + handleUpdate() { + this._adjustDialog(); + } + // Private + _initializeBackDrop() { + return new Backdrop({ + isVisible: Boolean(this._config.backdrop), + // 'static' option will be translated to true, and booleans will keep their value, + isAnimated: this._isAnimated() + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _showElement(relatedTarget) { + if (!document.body.contains(this._element)) { + document.body.append(this._element); + } + this._element.style.display = "block"; + this._element.removeAttribute("aria-hidden"); + this._element.setAttribute("aria-modal", true); + this._element.setAttribute("role", "dialog"); + this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + if (modalBody) { + modalBody.scrollTop = 0; + } + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW$4); + const transitionComplete = () => { + if (this._config.focus) { + this._focustrap.activate(); + } + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$4, { + relatedTarget + }); + }; + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE$1, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => { + EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => { + if (this._element !== event.target || this._element !== event2.target) { + return; + } + if (this._config.backdrop === "static") { + this._triggerBackdropTransition(); + return; + } + if (this._config.backdrop) { + this.hide(); + } + }); + }); + } + _hideModal() { + this._element.style.display = "none"; + this._element.setAttribute("aria-hidden", true); + this._element.removeAttribute("aria-modal"); + this._element.removeAttribute("role"); + this._isTransitioning = false; + this._backdrop.hide(() => { + document.body.classList.remove(CLASS_NAME_OPEN); + this._resetAdjustments(); + this._scrollBar.reset(); + EventHandler.trigger(this._element, EVENT_HIDDEN$4); + }); + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$3); + } + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); + if (hideEvent.defaultPrevented) { + return; + } + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; + if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) { + return; + } + if (!isModalOverflowing) { + this._element.style.overflowY = "hidden"; + } + this._element.classList.add(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.classList.remove(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); + }, this._dialog); + this._element.focus(); + } + /** + * The following methods are used to handle overflowing modals + */ + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const scrollbarWidth = this._scrollBar.getWidth(); + const isBodyOverflowing = scrollbarWidth > 0; + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? "paddingLeft" : "paddingRight"; + this._element.style[property] = `${scrollbarWidth}px`; + } + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? "paddingRight" : "paddingLeft"; + this._element.style[property] = `${scrollbarWidth}px`; + } + } + _resetAdjustments() { + this._element.style.paddingLeft = ""; + this._element.style.paddingRight = ""; + } + // Static + static jQueryInterface(config, relatedTarget) { + return this.each(function() { + const data = _Modal.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](relatedTarget); + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) { + const target = SelectorEngine.getElementFromSelector(this); + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + EventHandler.one(target, EVENT_SHOW$4, (showEvent) => { + if (showEvent.defaultPrevented) { + return; + } + EventHandler.one(target, EVENT_HIDDEN$4, () => { + if (isVisible(this)) { + this.focus(); + } + }); + }); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); + if (alreadyOpen) { + Modal.getInstance(alreadyOpen).hide(); + } + const data = Modal.getOrCreateInstance(target); + data.toggle(this); +}); +enableDismissTrigger(Modal); +defineJQueryPlugin(Modal); +var NAME$6 = "offcanvas"; +var DATA_KEY$3 = "bs.offcanvas"; +var EVENT_KEY$3 = `.${DATA_KEY$3}`; +var DATA_API_KEY$1 = ".data-api"; +var EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; +var ESCAPE_KEY = "Escape"; +var CLASS_NAME_SHOW$3 = "show"; +var CLASS_NAME_SHOWING$1 = "showing"; +var CLASS_NAME_HIDING = "hiding"; +var CLASS_NAME_BACKDROP = "offcanvas-backdrop"; +var OPEN_SELECTOR = ".offcanvas.show"; +var EVENT_SHOW$3 = `show${EVENT_KEY$3}`; +var EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; +var EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; +var EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; +var EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; +var EVENT_RESIZE = `resize${EVENT_KEY$3}`; +var EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; +var EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; +var SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; +var Default$5 = { + backdrop: true, + keyboard: true, + scroll: false +}; +var DefaultType$5 = { + backdrop: "(boolean|string)", + keyboard: "boolean", + scroll: "boolean" +}; +var Offcanvas = class _Offcanvas extends BaseComponent { + constructor(element, config) { + super(element, config); + this._isShown = false; + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._addEventListeners(); + } + // Getters + static get Default() { + return Default$5; + } + static get DefaultType() { + return DefaultType$5; + } + static get NAME() { + return NAME$6; + } + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown) { + return; + } + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { + relatedTarget + }); + if (showEvent.defaultPrevented) { + return; + } + this._isShown = true; + this._backdrop.show(); + if (!this._config.scroll) { + new ScrollBarHelper().hide(); + } + this._element.setAttribute("aria-modal", true); + this._element.setAttribute("role", "dialog"); + this._element.classList.add(CLASS_NAME_SHOWING$1); + const completeCallBack = () => { + if (!this._config.scroll || this._config.backdrop) { + this._focustrap.activate(); + } + this._element.classList.add(CLASS_NAME_SHOW$3); + this._element.classList.remove(CLASS_NAME_SHOWING$1); + EventHandler.trigger(this._element, EVENT_SHOWN$3, { + relatedTarget + }); + }; + this._queueCallback(completeCallBack, this._element, true); + } + hide() { + if (!this._isShown) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + if (hideEvent.defaultPrevented) { + return; + } + this._focustrap.deactivate(); + this._element.blur(); + this._isShown = false; + this._element.classList.add(CLASS_NAME_HIDING); + this._backdrop.hide(); + const completeCallback = () => { + this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); + this._element.removeAttribute("aria-modal"); + this._element.removeAttribute("role"); + if (!this._config.scroll) { + new ScrollBarHelper().reset(); + } + EventHandler.trigger(this._element, EVENT_HIDDEN$3); + }; + this._queueCallback(completeCallback, this._element, true); + } + dispose() { + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } + // Private + _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === "static") { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + return; + } + this.hide(); + }; + const isVisible2 = Boolean(this._config.backdrop); + return new Backdrop({ + className: CLASS_NAME_BACKDROP, + isVisible: isVisible2, + isAnimated: true, + rootElement: this._element.parentNode, + clickCallback: isVisible2 ? clickCallback : null + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => { + if (event.key !== ESCAPE_KEY) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + }); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Offcanvas.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) { + const target = SelectorEngine.getElementFromSelector(this); + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + EventHandler.one(target, EVENT_HIDDEN$3, () => { + if (isVisible(this)) { + this.focus(); + } + }); + const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas.getInstance(alreadyOpen).hide(); + } + const data = Offcanvas.getOrCreateInstance(target); + data.toggle(this); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { + for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { + Offcanvas.getOrCreateInstance(selector).show(); + } +}); +EventHandler.on(window, EVENT_RESIZE, () => { + for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) { + if (getComputedStyle(element).position !== "fixed") { + Offcanvas.getOrCreateInstance(element).hide(); + } + } +}); +enableDismissTrigger(Offcanvas); +defineJQueryPlugin(Offcanvas); +var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; +var DefaultAllowlist = { + // Global attributes allowed on any supplied element below. + "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN], + a: ["target", "href", "title", "rel"], + area: [], + b: [], + br: [], + col: [], + code: [], + dd: [], + div: [], + dl: [], + dt: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ["src", "srcset", "alt", "title", "width", "height"], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] +}; +var uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]); +var SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; +var allowedAttribute = (attribute, allowedAttributeList) => { + const attributeName = attribute.nodeName.toLowerCase(); + if (allowedAttributeList.includes(attributeName)) { + if (uriAttributes.has(attributeName)) { + return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); + } + return true; + } + return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName)); +}; +function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { + if (!unsafeHtml.length) { + return unsafeHtml; + } + if (sanitizeFunction && typeof sanitizeFunction === "function") { + return sanitizeFunction(unsafeHtml); + } + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, "text/html"); + const elements = [].concat(...createdDocument.body.querySelectorAll("*")); + for (const element of elements) { + const elementName = element.nodeName.toLowerCase(); + if (!Object.keys(allowList).includes(elementName)) { + element.remove(); + continue; + } + const attributeList = [].concat(...element.attributes); + const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []); + for (const attribute of attributeList) { + if (!allowedAttribute(attribute, allowedAttributes)) { + element.removeAttribute(attribute.nodeName); + } + } + } + return createdDocument.body.innerHTML; +} +var NAME$5 = "TemplateFactory"; +var Default$4 = { + allowList: DefaultAllowlist, + content: {}, + // { selector : text , selector2 : text2 , } + extraClass: "", + html: false, + sanitize: true, + sanitizeFn: null, + template: "

" +}; +var DefaultType$4 = { + allowList: "object", + content: "object", + extraClass: "(string|function)", + html: "boolean", + sanitize: "boolean", + sanitizeFn: "(null|function)", + template: "string" +}; +var DefaultContentType = { + entry: "(string|element|function|null)", + selector: "(string|element)" +}; +var TemplateFactory = class extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } + // Getters + static get Default() { + return Default$4; + } + static get DefaultType() { + return DefaultType$4; + } + static get NAME() { + return NAME$5; + } + // Public + getContent() { + return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean); + } + hasContent() { + return this.getContent().length > 0; + } + changeContent(content) { + this._checkContent(content); + this._config.content = { + ...this._config.content, + ...content + }; + return this; + } + toHtml() { + const templateWrapper = document.createElement("div"); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + const template = templateWrapper.children[0]; + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + if (extraClass) { + template.classList.add(...extraClass.split(" ")); + } + return template; + } + // Private + _typeCheckConfig(config) { + super._typeCheckConfig(config); + this._checkContent(config.content); + } + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ + selector, + entry: content + }, DefaultContentType); + } + } + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + if (!templateElement) { + return; + } + content = this._resolvePossibleFunction(content); + if (!content) { + templateElement.remove(); + return; + } + if (isElement(content)) { + this._putElementInTemplate(getElement(content), templateElement); + return; + } + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + templateElement.textContent = content; + } + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this]); + } + _putElementInTemplate(element, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ""; + templateElement.append(element); + return; + } + templateElement.textContent = element.textContent; + } +}; +var NAME$4 = "tooltip"; +var DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]); +var CLASS_NAME_FADE$2 = "fade"; +var CLASS_NAME_MODAL = "modal"; +var CLASS_NAME_SHOW$2 = "show"; +var SELECTOR_TOOLTIP_INNER = ".tooltip-inner"; +var SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; +var EVENT_MODAL_HIDE = "hide.bs.modal"; +var TRIGGER_HOVER = "hover"; +var TRIGGER_FOCUS = "focus"; +var TRIGGER_CLICK = "click"; +var TRIGGER_MANUAL = "manual"; +var EVENT_HIDE$2 = "hide"; +var EVENT_HIDDEN$2 = "hidden"; +var EVENT_SHOW$2 = "show"; +var EVENT_SHOWN$2 = "shown"; +var EVENT_INSERTED = "inserted"; +var EVENT_CLICK$1 = "click"; +var EVENT_FOCUSIN$1 = "focusin"; +var EVENT_FOCUSOUT$1 = "focusout"; +var EVENT_MOUSEENTER = "mouseenter"; +var EVENT_MOUSELEAVE = "mouseleave"; +var AttachmentMap = { + AUTO: "auto", + TOP: "top", + RIGHT: isRTL() ? "left" : "right", + BOTTOM: "bottom", + LEFT: isRTL() ? "right" : "left" +}; +var Default$3 = { + allowList: DefaultAllowlist, + animation: true, + boundary: "clippingParents", + container: false, + customClass: "", + delay: 0, + fallbackPlacements: ["top", "right", "bottom", "left"], + html: false, + offset: [0, 6], + placement: "top", + popperConfig: null, + sanitize: true, + sanitizeFn: null, + selector: false, + template: '', + title: "", + trigger: "hover focus" +}; +var DefaultType$3 = { + allowList: "object", + animation: "boolean", + boundary: "(string|element)", + container: "(string|element|boolean)", + customClass: "(string|function)", + delay: "(number|object)", + fallbackPlacements: "array", + html: "boolean", + offset: "(array|string|function)", + placement: "(string|function)", + popperConfig: "(null|object|function)", + sanitize: "boolean", + sanitizeFn: "(null|function)", + selector: "(string|boolean)", + template: "string", + title: "(string|element|function)", + trigger: "string" +}; +var Tooltip = class _Tooltip extends BaseComponent { + constructor(element, config) { + if (typeof lib_exports === "undefined") { + throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); + } + super(element, config); + this._isEnabled = true; + this._timeout = 0; + this._isHovered = null; + this._activeTrigger = {}; + this._popper = null; + this._templateFactory = null; + this._newContent = null; + this.tip = null; + this._setListeners(); + if (!this._config.selector) { + this._fixTitle(); + } + } + // Getters + static get Default() { + return Default$3; + } + static get DefaultType() { + return DefaultType$3; + } + static get NAME() { + return NAME$4; + } + // Public + enable() { + this._isEnabled = true; + } + disable() { + this._isEnabled = false; + } + toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + toggle() { + if (!this._isEnabled) { + return; + } + this._activeTrigger.click = !this._activeTrigger.click; + if (this._isShown()) { + this._leave(); + return; + } + this._enter(); + } + dispose() { + clearTimeout(this._timeout); + EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + if (this._element.getAttribute("data-bs-original-title")) { + this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")); + } + this._disposePopper(); + super.dispose(); + } + show() { + if (this._element.style.display === "none") { + throw new Error("Please use show on visible elements"); + } + if (!(this._isWithContent() && this._isEnabled)) { + return; + } + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } + this._disposePopper(); + const tip = this._getTipElement(); + this._element.setAttribute("aria-describedby", tip.getAttribute("id")); + const { + container + } = this._config; + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.append(tip); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); + } + this._popper = this._createPopper(tip); + tip.classList.add(CLASS_NAME_SHOW$2); + if ("ontouchstart" in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.on(element, "mouseover", noop); + } + } + const complete = () => { + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); + if (this._isHovered === false) { + this._leave(); + } + this._isHovered = false; + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + hide() { + if (!this._isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); + if (hideEvent.defaultPrevented) { + return; + } + const tip = this._getTipElement(); + tip.classList.remove(CLASS_NAME_SHOW$2); + if ("ontouchstart" in document.documentElement) { + for (const element of [].concat(...document.body.children)) { + EventHandler.off(element, "mouseover", noop); + } + } + this._activeTrigger[TRIGGER_CLICK] = false; + this._activeTrigger[TRIGGER_FOCUS] = false; + this._activeTrigger[TRIGGER_HOVER] = false; + this._isHovered = null; + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + if (!this._isHovered) { + this._disposePopper(); + } + this._element.removeAttribute("aria-describedby"); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + update() { + if (this._popper) { + this._popper.update(); + } + } + // Protected + _isWithContent() { + return Boolean(this._getTitle()); + } + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); + } + return this.tip; + } + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); + if (!tip) { + return null; + } + tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute("id", tipId); + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$2); + } + return tip; + } + setContent(content) { + this._newContent = content; + if (this._isShown()) { + this._disposePopper(); + this.show(); + } + } + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); + } else { + this._templateFactory = new TemplateFactory({ + ...this._config, + // the `content` var has to be after `this._config` + // to override config.content in case of popover + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); + } + return this._templateFactory; + } + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; + } + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title"); + } + // Private + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); + } + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); + } + _createPopper(tip) { + const placement = execute(this._config.placement, [this, tip, this._element]); + const attachment = AttachmentMap[placement.toUpperCase()]; + return createPopper(this._element, tip, this._getPopperConfig(attachment)); + } + _getOffset() { + const { + offset + } = this._config; + if (typeof offset === "string") { + return offset.split(",").map((value) => Number.parseInt(value, 10)); + } + if (typeof offset === "function") { + return (popperData) => offset(popperData, this._element); + } + return offset; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this._element]); + } + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [{ + name: "flip", + options: { + fallbackPlacements: this._config.fallbackPlacements + } + }, { + name: "offset", + options: { + offset: this._getOffset() + } + }, { + name: "preventOverflow", + options: { + boundary: this._config.boundary + } + }, { + name: "arrow", + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, { + name: "preSetPlacement", + enabled: true, + phase: "beforeMain", + fn: (data) => { + this._getTipElement().setAttribute("data-popper-placement", data.state.placement); + } + }] + }; + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _setListeners() { + const triggers = this._config.trigger.split(" "); + for (const trigger of triggers) { + if (trigger === "click") { + EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => { + const context = this._initializeOnDelegatedTarget(event); + context.toggle(); + }); + } else if (trigger !== TRIGGER_MANUAL) { + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, (event) => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, (event) => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + context._leave(); + }); + } + } + this._hideModalHandler = () => { + if (this._element) { + this.hide(); + } + }; + EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); + } + _fixTitle() { + const title = this._element.getAttribute("title"); + if (!title) { + return; + } + if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) { + this._element.setAttribute("aria-label", title); + } + this._element.setAttribute("data-bs-original-title", title); + this._element.removeAttribute("title"); + } + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; + return; + } + this._isHovered = true; + this._setTimeout(() => { + if (this._isHovered) { + this.show(); + } + }, this._config.delay.show); + } + _leave() { + if (this._isWithActiveTrigger()) { + return; + } + this._isHovered = false; + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); + } + }, this._config.delay.hide); + } + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); + } + _isWithActiveTrigger() { + return Object.values(this._activeTrigger).includes(true); + } + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; + } + } + config = { + ...dataAttributes, + ...typeof config === "object" && config ? config : {} + }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + config.container = config.container === false ? document.body : getElement(config.container); + if (typeof config.delay === "number") { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + if (typeof config.title === "number") { + config.title = config.title.toString(); + } + if (typeof config.content === "number") { + config.content = config.content.toString(); + } + return config; + } + _getDelegateConfig() { + const config = {}; + for (const [key, value] of Object.entries(this._config)) { + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + config.selector = false; + config.trigger = "manual"; + return config; + } + _disposePopper() { + if (this._popper) { + this._popper.destroy(); + this._popper = null; + } + if (this.tip) { + this.tip.remove(); + this.tip = null; + } + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Tooltip.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +defineJQueryPlugin(Tooltip); +var NAME$3 = "popover"; +var SELECTOR_TITLE = ".popover-header"; +var SELECTOR_CONTENT = ".popover-body"; +var Default$2 = { + ...Tooltip.Default, + content: "", + offset: [0, 8], + placement: "right", + template: '', + trigger: "click" +}; +var DefaultType$2 = { + ...Tooltip.DefaultType, + content: "(null|string|element|function)" +}; +var Popover = class _Popover extends Tooltip { + // Getters + static get Default() { + return Default$2; + } + static get DefaultType() { + return DefaultType$2; + } + static get NAME() { + return NAME$3; + } + // Overrides + _isWithContent() { + return this._getTitle() || this._getContent(); + } + // Private + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Popover.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +defineJQueryPlugin(Popover); +var NAME$2 = "scrollspy"; +var DATA_KEY$2 = "bs.scrollspy"; +var EVENT_KEY$2 = `.${DATA_KEY$2}`; +var DATA_API_KEY = ".data-api"; +var EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; +var EVENT_CLICK = `click${EVENT_KEY$2}`; +var EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; +var CLASS_NAME_DROPDOWN_ITEM = "dropdown-item"; +var CLASS_NAME_ACTIVE$1 = "active"; +var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; +var SELECTOR_TARGET_LINKS = "[href]"; +var SELECTOR_NAV_LIST_GROUP = ".nav, .list-group"; +var SELECTOR_NAV_LINKS = ".nav-link"; +var SELECTOR_NAV_ITEMS = ".nav-item"; +var SELECTOR_LIST_ITEMS = ".list-group-item"; +var SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; +var SELECTOR_DROPDOWN = ".dropdown"; +var SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle"; +var Default$1 = { + offset: null, + // TODO: v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: "0px 0px -25%", + smoothScroll: false, + target: null, + threshold: [0.1, 0.5, 1] +}; +var DefaultType$1 = { + offset: "(number|null)", + // TODO v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: "string", + smoothScroll: "boolean", + target: "element", + threshold: "array" +}; +var ScrollSpy = class _ScrollSpy extends BaseComponent { + constructor(element, config) { + super(element, config); + this._targetLinks = /* @__PURE__ */ new Map(); + this._observableSections = /* @__PURE__ */ new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); + } + // Getters + static get Default() { + return Default$1; + } + static get DefaultType() { + return DefaultType$1; + } + static get NAME() { + return NAME$2; + } + // Public + refresh() { + this._initializeTargetsAndObservables(); + this._maybeEnableSmoothScroll(); + if (this._observer) { + this._observer.disconnect(); + } else { + this._observer = this._getNewObserver(); + } + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + dispose() { + this._observer.disconnect(); + super.dispose(); + } + // Private + _configAfterMerge(config) { + config.target = getElement(config.target) || document.body; + config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; + if (typeof config.threshold === "string") { + config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value)); + } + return config; + } + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => { + const observableSection = this._observableSections.get(event.target.hash); + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + if (root.scrollTo) { + root.scrollTo({ + top: height, + behavior: "smooth" + }); + return; + } + root.scrollTop = height; + } + }); + } + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: this._config.threshold, + rootMargin: this._config.rootMargin + }; + return new IntersectionObserver((entries) => this._observerCallback(entries), options); + } + // The logic of selection + _observerCallback(entries) { + const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`); + const activate = (entry) => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + this._process(targetElement(entry)); + }; + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + this._clearActiveClass(targetElement(entry)); + continue; + } + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); + if (!parentScrollTop) { + return; + } + continue; + } + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } + _initializeTargetsAndObservables() { + this._targetLinks = /* @__PURE__ */ new Map(); + this._observableSections = /* @__PURE__ */ new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + for (const anchor of targetLinks) { + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); + if (isVisible(observableSection)) { + this._targetLinks.set(decodeURI(anchor.hash), anchor); + this._observableSections.set(anchor.hash, observableSection); + } + } + } + _process(target) { + if (this._activeTarget === target) { + return; + } + this._clearActiveClass(this._config.target); + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$1); + this._activateParents(target); + EventHandler.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: target + }); + } + _activateParents(target) { + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); + return; + } + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { + item.classList.add(CLASS_NAME_ACTIVE$1); + } + } + } + _clearActiveClass(parent) { + parent.classList.remove(CLASS_NAME_ACTIVE$1); + const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); + for (const node of activeNodes) { + node.classList.remove(CLASS_NAME_ACTIVE$1); + } + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _ScrollSpy.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { + for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { + ScrollSpy.getOrCreateInstance(spy); + } +}); +defineJQueryPlugin(ScrollSpy); +var NAME$1 = "tab"; +var DATA_KEY$1 = "bs.tab"; +var EVENT_KEY$1 = `.${DATA_KEY$1}`; +var EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; +var EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; +var EVENT_SHOW$1 = `show${EVENT_KEY$1}`; +var EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; +var EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; +var EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; +var EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; +var ARROW_LEFT_KEY = "ArrowLeft"; +var ARROW_RIGHT_KEY = "ArrowRight"; +var ARROW_UP_KEY = "ArrowUp"; +var ARROW_DOWN_KEY = "ArrowDown"; +var HOME_KEY = "Home"; +var END_KEY = "End"; +var CLASS_NAME_ACTIVE = "active"; +var CLASS_NAME_FADE$1 = "fade"; +var CLASS_NAME_SHOW$1 = "show"; +var CLASS_DROPDOWN = "dropdown"; +var SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle"; +var SELECTOR_DROPDOWN_MENU = ".dropdown-menu"; +var NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; +var SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; +var SELECTOR_OUTER = ".nav-item, .list-group-item"; +var SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; +var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; +var SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; +var SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; +var Tab = class _Tab extends BaseComponent { + constructor(element) { + super(element); + this._parent = this._element.closest(SELECTOR_TAB_PANEL); + if (!this._parent) { + return; + } + this._setInitialAttributes(this._parent, this._getChildren()); + EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event)); + } + // Getters + static get NAME() { + return NAME$1; + } + // Public + show() { + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { + return; + } + const active = this._getActiveElem(); + const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { + relatedTarget: innerElem + }) : null; + const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { + relatedTarget: active + }); + if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { + return; + } + this._deactivate(active, innerElem); + this._activate(innerElem, active); + } + // Private + _activate(element, relatedElem) { + if (!element) { + return; + } + element.classList.add(CLASS_NAME_ACTIVE); + this._activate(SelectorEngine.getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute("role") !== "tab") { + element.classList.add(CLASS_NAME_SHOW$1); + return; + } + element.removeAttribute("tabindex"); + element.setAttribute("aria-selected", true); + this._toggleDropDown(element, true); + EventHandler.trigger(element, EVENT_SHOWN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _deactivate(element, relatedElem) { + if (!element) { + return; + } + element.classList.remove(CLASS_NAME_ACTIVE); + element.blur(); + this._deactivate(SelectorEngine.getElementFromSelector(element)); + const complete = () => { + if (element.getAttribute("role") !== "tab") { + element.classList.remove(CLASS_NAME_SHOW$1); + return; + } + element.setAttribute("aria-selected", false); + element.setAttribute("tabindex", "-1"); + this._toggleDropDown(element, false); + EventHandler.trigger(element, EVENT_HIDDEN$1, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); + } + _keydown(event) { + if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) { + return; + } + event.stopPropagation(); + event.preventDefault(); + const children = this._getChildren().filter((element) => !isDisabled(element)); + let nextActiveElement; + if ([HOME_KEY, END_KEY].includes(event.key)) { + nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; + } else { + const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); + nextActiveElement = getNextActiveElement(children, event.target, isNext, true); + } + if (nextActiveElement) { + nextActiveElement.focus({ + preventScroll: true + }); + _Tab.getOrCreateInstance(nextActiveElement).show(); + } + } + _getChildren() { + return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); + } + _getActiveElem() { + return this._getChildren().find((child) => this._elemIsActive(child)) || null; + } + _setInitialAttributes(parent, children) { + this._setAttributeIfNotExists(parent, "role", "tablist"); + for (const child of children) { + this._setInitialAttributesOnChild(child); + } + } + _setInitialAttributesOnChild(child) { + child = this._getInnerElement(child); + const isActive = this._elemIsActive(child); + const outerElem = this._getOuterElement(child); + child.setAttribute("aria-selected", isActive); + if (outerElem !== child) { + this._setAttributeIfNotExists(outerElem, "role", "presentation"); + } + if (!isActive) { + child.setAttribute("tabindex", "-1"); + } + this._setAttributeIfNotExists(child, "role", "tab"); + this._setInitialAttributesOnTargetPanel(child); + } + _setInitialAttributesOnTargetPanel(child) { + const target = SelectorEngine.getElementFromSelector(child); + if (!target) { + return; + } + this._setAttributeIfNotExists(target, "role", "tabpanel"); + if (child.id) { + this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`); + } + } + _toggleDropDown(element, open) { + const outerElem = this._getOuterElement(element); + if (!outerElem.classList.contains(CLASS_DROPDOWN)) { + return; + } + const toggle = (selector, className) => { + const element2 = SelectorEngine.findOne(selector, outerElem); + if (element2) { + element2.classList.toggle(className, open); + } + }; + toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); + toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); + outerElem.setAttribute("aria-expanded", open); + } + _setAttributeIfNotExists(element, attribute, value) { + if (!element.hasAttribute(attribute)) { + element.setAttribute(attribute, value); + } + } + _elemIsActive(elem) { + return elem.classList.contains(CLASS_NAME_ACTIVE); + } + // Try to get the inner element (usually the .nav-link) + _getInnerElement(elem) { + return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); + } + // Try to get the outer element (usually the .nav-item) + _getOuterElement(elem) { + return elem.closest(SELECTOR_OUTER) || elem; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Tab.getOrCreateInstance(this); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) { + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + Tab.getOrCreateInstance(this).show(); +}); +EventHandler.on(window, EVENT_LOAD_DATA_API, () => { + for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { + Tab.getOrCreateInstance(element); + } +}); +defineJQueryPlugin(Tab); +var NAME = "toast"; +var DATA_KEY = "bs.toast"; +var EVENT_KEY = `.${DATA_KEY}`; +var EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; +var EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; +var EVENT_FOCUSIN = `focusin${EVENT_KEY}`; +var EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; +var EVENT_HIDE = `hide${EVENT_KEY}`; +var EVENT_HIDDEN = `hidden${EVENT_KEY}`; +var EVENT_SHOW = `show${EVENT_KEY}`; +var EVENT_SHOWN = `shown${EVENT_KEY}`; +var CLASS_NAME_FADE = "fade"; +var CLASS_NAME_HIDE = "hide"; +var CLASS_NAME_SHOW = "show"; +var CLASS_NAME_SHOWING = "showing"; +var DefaultType = { + animation: "boolean", + autohide: "boolean", + delay: "number" +}; +var Default = { + animation: true, + autohide: true, + delay: 5e3 +}; +var Toast = class _Toast extends BaseComponent { + constructor(element, config) { + super(element, config); + this._timeout = null; + this._hasMouseInteraction = false; + this._hasKeyboardInteraction = false; + this._setListeners(); + } + // Getters + static get Default() { + return Default; + } + static get DefaultType() { + return DefaultType; + } + static get NAME() { + return NAME; + } + // Public + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); + if (showEvent.defaultPrevented) { + return; + } + this._clearTimeout(); + if (this._config.animation) { + this._element.classList.add(CLASS_NAME_FADE); + } + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); + EventHandler.trigger(this._element, EVENT_SHOWN); + this._maybeScheduleHide(); + }; + this._element.classList.remove(CLASS_NAME_HIDE); + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + hide() { + if (!this.isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); + if (hideEvent.defaultPrevented) { + return; + } + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); + this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); + EventHandler.trigger(this._element, EVENT_HIDDEN); + }; + this._element.classList.add(CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + dispose() { + this._clearTimeout(); + if (this.isShown()) { + this._element.classList.remove(CLASS_NAME_SHOW); + } + super.dispose(); + } + isShown() { + return this._element.classList.contains(CLASS_NAME_SHOW); + } + // Private + _maybeScheduleHide() { + if (!this._config.autohide) { + return; + } + if (this._hasMouseInteraction || this._hasKeyboardInteraction) { + return; + } + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); + } + _onInteraction(event, isInteracting) { + switch (event.type) { + case "mouseover": + case "mouseout": { + this._hasMouseInteraction = isInteracting; + break; + } + case "focusin": + case "focusout": { + this._hasKeyboardInteraction = isInteracting; + break; + } + } + if (isInteracting) { + this._clearTimeout(); + return; + } + const nextElement = event.relatedTarget; + if (this._element === nextElement || this._element.contains(nextElement)) { + return; + } + this._maybeScheduleHide(); + } + _setListeners() { + EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false)); + EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false)); + } + _clearTimeout() { + clearTimeout(this._timeout); + this._timeout = null; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = _Toast.getOrCreateInstance(this, config); + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + } + }); + } +}; +enableDismissTrigger(Toast); +defineJQueryPlugin(Toast); +export { + Alert, + Button, + Carousel, + Collapse, + Dropdown, + Modal, + Offcanvas, + Popover, + ScrollSpy, + Tab, + Toast, + Tooltip +}; +/*! Bundled license information: + +bootstrap/dist/js/bootstrap.esm.js: + (*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + *) +*/ +//# sourceMappingURL=bootstrap.js.map diff --git a/.vite/deps/bootstrap.js.map b/.vite/deps/bootstrap.js.map new file mode 100644 index 0000000..9e3a82a --- /dev/null +++ b/.vite/deps/bootstrap.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/bootstrap/js/src/dom/data.js", "../../node_modules/bootstrap/js/src/util/index.js", "../../node_modules/bootstrap/js/src/dom/event-handler.js", "../../node_modules/bootstrap/js/src/dom/manipulator.js", "../../node_modules/bootstrap/js/src/util/config.js", "../../node_modules/bootstrap/js/src/base-component.js", "../../node_modules/bootstrap/js/src/dom/selector-engine.js", "../../node_modules/bootstrap/js/src/util/component-functions.js", "../../node_modules/bootstrap/js/src/alert.js", "../../node_modules/bootstrap/js/src/button.js", "../../node_modules/bootstrap/js/src/util/swipe.js", "../../node_modules/bootstrap/js/src/carousel.js", "../../node_modules/bootstrap/js/src/collapse.js", "../../node_modules/bootstrap/js/src/dropdown.js", "../../node_modules/bootstrap/js/src/util/backdrop.js", "../../node_modules/bootstrap/js/src/util/focustrap.js", "../../node_modules/bootstrap/js/src/util/scrollbar.js", "../../node_modules/bootstrap/js/src/modal.js", "../../node_modules/bootstrap/js/src/offcanvas.js", "../../node_modules/bootstrap/js/src/util/sanitizer.js", "../../node_modules/bootstrap/js/src/util/template-factory.js", "../../node_modules/bootstrap/js/src/tooltip.js", "../../node_modules/bootstrap/js/src/popover.js", "../../node_modules/bootstrap/js/src/scrollspy.js", "../../node_modules/bootstrap/js/src/tab.js", "../../node_modules/bootstrap/js/src/toast.js"], + "sourcesContent": ["/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n }\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1_000_000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\n }\n\n return selector\n}\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`\n }\n\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false\n }\n\n if (typeof object.jquery !== 'undefined') {\n object = object[0]\n }\n\n return typeof object.nodeType !== 'undefined'\n}\n\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object\n }\n\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object))\n }\n\n return null\n}\n\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false\n }\n\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])')\n\n if (!closedDetails) {\n return elementIsVisible\n }\n\n if (closedDetails !== element) {\n const summary = element.closest('summary')\n if (summary && summary.parentNode !== closedDetails) {\n return false\n }\n\n if (summary === null) {\n return false\n }\n }\n\n return elementIsVisible\n}\n\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true\n }\n\n if (element.classList.contains('disabled')) {\n return true\n }\n\n if (typeof element.disabled !== 'undefined') {\n return element.disabled\n }\n\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => {}\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight // eslint-disable-line no-unused-expressions\n}\n\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery\n }\n\n return null\n}\n\nconst DOMContentLoadedCallbacks = []\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback()\n }\n })\n }\n\n DOMContentLoadedCallbacks.push(callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = () => document.documentElement.dir === 'rtl'\n\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME\n const JQUERY_NO_CONFLICT = $.fn[name]\n $.fn[name] = plugin.jQueryInterface\n $.fn[name].Constructor = plugin\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT\n return plugin.jQueryInterface\n }\n }\n })\n}\n\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\n}\n\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback)\n return\n }\n\n const durationPadding = 5\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding\n\n let called = false\n\n const handler = ({ target }) => {\n if (target !== transitionElement) {\n return\n }\n\n called = true\n transitionElement.removeEventListener(TRANSITION_END, handler)\n execute(callback)\n }\n\n transitionElement.addEventListener(TRANSITION_END, handler)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement)\n }\n }, emulatedDuration)\n}\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length\n let index = list.indexOf(activeElement)\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\n }\n\n index += shouldGetNext ? 1 : -1\n\n if (isCycleAllowed) {\n index = (index + listLength) % listLength\n }\n\n return list[Math.max(0, Math.min(index, listLength - 1))]\n}\n\nexport {\n defineJQueryPlugin,\n execute,\n executeAfterTransition,\n findShadowRoot,\n getElement,\n getjQuery,\n getNextActiveElement,\n getTransitionDurationFromElement,\n getUID,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop,\n onDOMContentLoaded,\n parseSelector,\n reflow,\n triggerTransitionEnd,\n toType\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index.js'\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\n\nconst nativeEvents = new Set([\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n])\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getElementEvents(element) {\n const uid = makeEventUid(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, { delegateTarget: element })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue\n }\n\n hydrateObj(event, { delegateTarget: target })\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n}\n\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events)\n .find(event => event.callable === callable && event.delegationSelector === delegationSelector)\n}\n\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string'\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : (handler || delegationFunction)\n let typeEvent = getTypeEvent(originalTypeEvent)\n\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent\n }\n\n return [isDelegated, callable, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\n return fn.call(this, event)\n }\n }\n }\n\n callable = wrapFunction(callable)\n }\n\n const events = getElementEvents(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\n\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff\n\n return\n }\n\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = isDelegated ?\n bootstrapDelegationHandler(element, handler, callable) :\n bootstrapHandler(element, callable)\n\n fn.delegationSelector = isDelegated ? handler : null\n fn.callable = callable\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, isDelegated)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n}\n\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '')\n return customEvents[event] || event\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false)\n },\n\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getElementEvents(element)\n const storeElementEvent = events[typeEvent] || {}\n const isNamespace = originalTypeEvent.startsWith('.')\n\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return\n }\n\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\n return\n }\n\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n }\n }\n\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)\n }\n }\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const $ = getjQuery()\n const typeEvent = getTypeEvent(event)\n const inNamespace = event !== typeEvent\n\n let jQueryEvent = null\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\n\n if (defaultPrevented) {\n evt.preventDefault()\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value\n } catch {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value\n }\n })\n }\n }\n\n return obj\n}\n\nexport default EventHandler\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n if (value === Number(value).toString()) {\n return Number(value)\n }\n\n if (value === '' || value === 'null') {\n return null\n }\n\n if (typeof value !== 'string') {\n return value\n }\n\n try {\n return JSON.parse(decodeURIComponent(value))\n } catch {\n return value\n }\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'))\n\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n }\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n }\n}\n\nexport default Manipulator\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport { isElement, toType } from './index.js'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\n )\n }\n }\n }\n}\n\nexport default Config\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data.js'\nimport EventHandler from './dom/event-handler.js'\nimport Config from './util/config.js'\nimport { executeAfterTransition, getElement } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3'\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super()\n\n element = getElement(element)\n if (!element) {\n return\n }\n\n this._element = element\n this._config = this._getConfig(config)\n\n Data.set(this._element, this.constructor.DATA_KEY, this)\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY)\n EventHandler.off(this._element, this.constructor.EVENT_KEY)\n\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null\n }\n }\n\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated)\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY)\n }\n\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\n }\n\n static get VERSION() {\n return VERSION\n }\n\n static get DATA_KEY() {\n return `bs.${this.NAME}`\n }\n\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`\n }\n\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`\n }\n}\n\nexport default BaseComponent\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js'\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href')\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\n return null\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`\n }\n\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null\n }\n\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null\n}\n\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n let ancestor = element.parentNode.closest(selector)\n\n while (ancestor) {\n parents.push(ancestor)\n ancestor = ancestor.parentNode.closest(selector)\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (next.matches(selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n },\n\n focusableChildren(element) {\n const focusables = [\n 'a',\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'details',\n '[tabindex]',\n '[contenteditable=\"true\"]'\n ].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',')\n\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el))\n },\n\n getSelectorFromElement(element) {\n const selector = getSelector(element)\n\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null\n }\n\n return null\n },\n\n getElementFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.findOne(selector) : null\n },\n\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element)\n\n return selector ? SelectorEngine.find(selector) : []\n }\n}\n\nexport default SelectorEngine\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isDisabled } from './index.js'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport {\n enableDismissTrigger\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'alert'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)\n\n if (closeEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated)\n }\n\n // Private\n _destroyElement() {\n this._element.remove()\n EventHandler.trigger(this._element, EVENT_CLOSED)\n this.dispose()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close')\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert)\n\nexport default Alert\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'button'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]'\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this)\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_DATA_TOGGLE)\n const data = Button.getOrCreateInstance(button)\n\n data.toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button)\n\nexport default Button\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport { execute } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'swipe'\nconst EVENT_KEY = '.bs.swipe'\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst POINTER_TYPE_TOUCH = 'touch'\nconst POINTER_TYPE_PEN = 'pen'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n}\n\nconst DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n}\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super()\n this._element = element\n\n if (!element || !Swipe.isSupported()) {\n return\n }\n\n this._config = this._getConfig(config)\n this._deltaX = 0\n this._supportPointerEvents = Boolean(window.PointerEvent)\n this._initEvents()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX\n\n return\n }\n\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX\n }\n }\n\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX\n }\n\n this._handleSwipe()\n execute(this._config.endCallback)\n }\n\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ?\n 0 :\n event.touches[0].clientX - this._deltaX\n }\n\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX)\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltaX / this._deltaX\n\n this._deltaX = 0\n\n if (!direction) {\n return\n }\n\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback)\n }\n\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event))\n }\n }\n\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n }\n}\n\nexport default Swipe\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getNextActiveElement,\n isRTL,\n isVisible,\n reflow,\n triggerTransitionEnd\n} from './util/index.js'\nimport Swipe from './util/swipe.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'carousel'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next'\nconst ORDER_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_END = 'carousel-item-end'\nconst CLASS_NAME_START = 'carousel-item-start'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]'\n\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n}\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)', // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._interval = null\n this._activeElement = null\n this._isSliding = false\n this.touchTimeout = null\n this._swipeHelper = null\n\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._addEventListeners()\n\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT)\n }\n\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n this._slide(ORDER_PREV)\n }\n\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element)\n }\n\n this._clearInterval()\n }\n\n cycle() {\n this._clearInterval()\n this._updateInterval()\n\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)\n }\n\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle())\n return\n }\n\n this.cycle()\n }\n\n to(index) {\n const items = this._getItems()\n if (index > items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n const activeIndex = this._getItemIndex(this._getActive())\n if (activeIndex === index) {\n return\n }\n\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV\n\n this._slide(order, items[index])\n }\n\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose()\n }\n\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause())\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle())\n }\n\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault())\n }\n\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n }\n\n this._swipeHelper = new Swipe(this._element, swipeConfig)\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n const direction = KEY_TO_DIRECTION[event.key]\n if (direction) {\n event.preventDefault()\n this._slide(this._directionToOrder(direction))\n }\n }\n\n _getItemIndex(element) {\n return this._getItems().indexOf(element)\n }\n\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return\n }\n\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement)\n\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE)\n activeIndicator.removeAttribute('aria-current')\n\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement)\n\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE)\n newActiveIndicator.setAttribute('aria-current', 'true')\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._getActive()\n\n if (!element) {\n return\n }\n\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)\n\n this._config.interval = elementInterval || this._config.defaultInterval\n }\n\n _slide(order, element = null) {\n if (this._isSliding) {\n return\n }\n\n const activeElement = this._getActive()\n const isNext = order === ORDER_NEXT\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap)\n\n if (nextElement === activeElement) {\n return\n }\n\n const nextElementIndex = this._getItemIndex(nextElement)\n\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n })\n }\n\n const slideEvent = triggerEvent(EVENT_SLIDE)\n\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return\n }\n\n const isCycling = Boolean(this._interval)\n this.pause()\n\n this._isSliding = true\n\n this._setActiveIndicatorElement(nextElementIndex)\n this._activeElement = nextElement\n\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV\n\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n triggerEvent(EVENT_SLID)\n }\n\n this._queueCallback(completeCallBack, activeElement, this._isAnimated())\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE)\n }\n\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n }\n\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element)\n }\n\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n }\n\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT\n }\n\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV\n }\n\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT\n }\n\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config)\n\n if (typeof config === 'number') {\n data.to(config)\n return\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n event.preventDefault()\n\n const carousel = Carousel.getOrCreateInstance(target)\n const slideIndex = this.getAttribute('data-bs-slide-to')\n\n if (slideIndex) {\n carousel.to(slideIndex)\n carousel._maybeEnableCycle()\n return\n }\n\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next()\n carousel._maybeEnableCycle()\n return\n }\n\n carousel.prev()\n carousel._maybeEnableCycle()\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel)\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel)\n\nexport default Carousel\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n getElement,\n reflow\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElement => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter(element => element !== this._element)\n .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {}\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for
elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse)\n\nexport default Collapse\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin,\n execute,\n getElement,\n getNextActiveElement,\n isDisabled,\n isElement,\n isRTL,\n isVisible,\n noop\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'dropdown'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPEND = 'dropend'\nconst CLASS_NAME_DROPSTART = 'dropstart'\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center'\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)'\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR = '.navbar'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'\nconst PLACEMENT_TOPCENTER = 'top'\nconst PLACEMENT_BOTTOMCENTER = 'bottom'\n\nconst Default = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n}\n\nconst DefaultType = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n}\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._popper = null\n this._parent = this._element.parentNode // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.prev(this._element, SELECTOR_MENU)[0] ||\n SelectorEngine.findOne(SELECTOR_MENU, this._parent)\n this._inNavbar = this._detectNavbar()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show()\n }\n\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._createPopper()\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n this._menu.classList.add(CLASS_NAME_SHOW)\n this._element.classList.add(CLASS_NAME_SHOW)\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n this._completeHide(relatedTarget)\n }\n\n dispose() {\n if (this._popper) {\n this._popper.destroy()\n }\n\n super.dispose()\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._menu.classList.remove(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOW)\n this._element.setAttribute('aria-expanded', 'false')\n Manipulator.removeDataAttribute(this._menu, 'popper')\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget)\n }\n\n _getConfig(config) {\n config = super._getConfig(config)\n\n if (typeof config.reference === 'object' && !isElement(config.reference) &&\n typeof config.reference.getBoundingClientRect !== 'function'\n ) {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`)\n }\n\n return config\n }\n\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = this._parent\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference)\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference\n }\n\n const popperConfig = this._getPopperConfig()\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig)\n }\n\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW)\n }\n\n _getPlacement() {\n const parentDropdown = this._parent\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER\n }\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'\n\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP\n }\n\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM\n }\n\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n }\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static') // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _selectMenuItem({ key, target }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element))\n\n if (!items.length) {\n return\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus()\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY)) {\n return\n }\n\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN)\n\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle)\n if (!context || context._config.autoClose === false) {\n continue\n }\n\n const composedPath = event.composedPath()\n const isMenuTarget = composedPath.includes(context._menu)\n if (\n composedPath.includes(context._element) ||\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\n (context._config.autoClose === 'outside' && isMenuTarget)\n ) {\n continue\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && ((event.type === 'keyup' && event.key === TAB_KEY) || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue\n }\n\n const relatedTarget = { relatedTarget: context._element }\n\n if (event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n context._completeHide(relatedTarget)\n }\n }\n\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName)\n const isEscapeEvent = event.key === ESCAPE_KEY\n const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)\n\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return\n }\n\n if (isInput && !isEscapeEvent) {\n return\n }\n\n event.preventDefault()\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\n this :\n (SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] ||\n SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\n\n const instance = Dropdown.getOrCreateInstance(getToggleButton)\n\n if (isUpOrDownEvent) {\n event.stopPropagation()\n instance.show()\n instance._selectMenuItem(event)\n return\n }\n\n if (instance._isShown()) { // else is escape and we check if it is shown\n event.stopPropagation()\n instance.hide()\n getToggleButton.focus()\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n Dropdown.getOrCreateInstance(this).toggle()\n})\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown)\n\nexport default Dropdown\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport Config from './config.js'\nimport {\n execute, executeAfterTransition, getElement, reflow\n} from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n const element = this._getElement()\n if (this._config.isAnimated) {\n reflow(element)\n }\n\n element.classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n const element = this._getElement()\n this._config.rootElement.append(element)\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'focustrap'\nconst DATA_KEY = 'bs.focustrap'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`\n\nconst TAB_KEY = 'Tab'\nconst TAB_NAV_FORWARD = 'forward'\nconst TAB_NAV_BACKWARD = 'backward'\n\nconst Default = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n}\n\nconst DefaultType = {\n autofocus: 'boolean',\n trapElement: 'element'\n}\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isActive = false\n this._lastTabNavDirection = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return\n }\n\n if (this._config.autofocus) {\n this._config.trapElement.focus()\n }\n\n EventHandler.off(document, EVENT_KEY) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => this._handleFocusin(event))\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event))\n\n this._isActive = true\n }\n\n deactivate() {\n if (!this._isActive) {\n return\n }\n\n this._isActive = false\n EventHandler.off(document, EVENT_KEY)\n }\n\n // Private\n _handleFocusin(event) {\n const { trapElement } = this._config\n\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return\n }\n\n const elements = SelectorEngine.focusableChildren(trapElement)\n\n if (elements.length === 0) {\n trapElement.focus()\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus()\n } else {\n elements[0].focus()\n }\n }\n\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return\n }\n\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD\n }\n}\n\nexport default FocusTrap\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Manipulator from '../dom/manipulator.js'\nimport SelectorEngine from '../dom/selector-engine.js'\nimport { isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\nconst PROPERTY_PADDING = 'padding-right'\nconst PROPERTY_MARGIN = 'margin-right'\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth\n return Math.abs(window.innerWidth - documentWidth)\n }\n\n hide() {\n const width = this.getWidth()\n this._disableOverFlow()\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\n }\n\n reset() {\n this._resetElementAttributes(this._element, 'overflow')\n this._resetElementAttributes(this._element, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\n }\n\n isOverflowing() {\n return this.getWidth() > 0\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow')\n this._element.style.overflow = 'hidden'\n }\n\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth()\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return\n }\n\n this._saveInitialAttribute(element, styleProperty)\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty)\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue)\n }\n }\n\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty)\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty)\n return\n }\n\n Manipulator.removeDataAttribute(element, styleProperty)\n element.style.setProperty(styleProperty, value)\n }\n\n this._applyManipulationCallback(selector, manipulationCallBack)\n }\n\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector)\n return\n }\n\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel)\n }\n }\n}\n\nexport default ScrollBarHelper\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin, isRTL, isVisible, reflow\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst OPEN_SELECTOR = '.modal.show'\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\n\nconst Default = {\n backdrop: true,\n focus: true,\n keyboard: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element)\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._isShown = false\n this._isTransitioning = false\n this._scrollBar = new ScrollBarHelper()\n\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._isTransitioning = true\n\n this._scrollBar.hide()\n\n document.body.classList.add(CLASS_NAME_OPEN)\n\n this._adjustDialog()\n\n this._backdrop.show(() => this._showElement(relatedTarget))\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n this._isTransitioning = true\n this._focustrap.deactivate()\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())\n }\n\n dispose() {\n EventHandler.off(window, EVENT_KEY)\n EventHandler.off(this._dialog, EVENT_KEY)\n\n this._backdrop.dispose()\n this._focustrap.deactivate()\n\n super.dispose()\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated())\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n EventHandler.on(window, EVENT_RESIZE, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog()\n }\n })\n\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n return\n }\n\n if (this._config.backdrop) {\n this.hide()\n }\n })\n })\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._scrollBar.reset()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const initialOverflowY = this._element.style.overflowY\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return\n }\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY\n }, this._dialog)\n }, this._dialog)\n\n this._element.focus()\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n const scrollbarWidth = this._scrollBar.getWidth()\n const isBodyOverflowing = scrollbarWidth > 0\n\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft'\n this._element.style[property] = `${scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide()\n }\n\n const data = Modal.getOrCreateInstance(target)\n\n data.toggle(this)\n})\n\nenableDismissTrigger(Modal)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal)\n\nexport default Modal\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport Backdrop from './util/backdrop.js'\nimport { enableDismissTrigger } from './util/component-functions.js'\nimport FocusTrap from './util/focustrap.js'\nimport {\n defineJQueryPlugin,\n isDisabled,\n isVisible\n} from './util/index.js'\nimport ScrollBarHelper from './util/scrollbar.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'offcanvas'\nconst DATA_KEY = 'bs.offcanvas'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst ESCAPE_KEY = 'Escape'\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\nconst CLASS_NAME_HIDING = 'hiding'\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop'\nconst OPEN_SELECTOR = '.offcanvas.show'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n scroll: false\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isShown = false\n this._backdrop = this._initializeBackDrop()\n this._focustrap = this._initializeFocusTrap()\n this._addEventListeners()\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget })\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n this._backdrop.show()\n\n if (!this._config.scroll) {\n new ScrollBarHelper().hide()\n }\n\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.classList.add(CLASS_NAME_SHOWING)\n\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate()\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n this._element.classList.remove(CLASS_NAME_SHOWING)\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget })\n }\n\n this._queueCallback(completeCallBack, this._element, true)\n }\n\n hide() {\n if (!this._isShown) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._focustrap.deactivate()\n this._element.blur()\n this._isShown = false\n this._element.classList.add(CLASS_NAME_HIDING)\n this._backdrop.hide()\n\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n\n if (!this._config.scroll) {\n new ScrollBarHelper().reset()\n }\n\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._queueCallback(completeCallback, this._element, true)\n }\n\n dispose() {\n this._backdrop.dispose()\n this._focustrap.deactivate()\n super.dispose()\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n return\n }\n\n this.hide()\n }\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop)\n\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n })\n }\n\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n })\n }\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return\n }\n\n if (this._config.keyboard) {\n this.hide()\n return\n }\n\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n })\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this)\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus()\n }\n })\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide()\n }\n\n const data = Offcanvas.getOrCreateInstance(target)\n data.toggle(this)\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show()\n }\n})\n\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide()\n }\n }\n})\n\nenableDismissTrigger(Offcanvas)\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas)\n\nexport default Offcanvas\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n// js-docs-end allow-list\n\nconst uriAttributes = new Set([\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n])\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i\n\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase()\n\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue))\n }\n\n return true\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp)\n .some(regex => regex.test(attributeName))\n}\n\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase()\n\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove()\n continue\n }\n\n const attributeList = [].concat(...element.attributes)\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || [])\n\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n}\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport SelectorEngine from '../dom/selector-engine.js'\nimport Config from './config.js'\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js'\nimport { execute, getElement, isElement } from './index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'TemplateFactory'\n\nconst Default = {\n allowList: DefaultAllowlist,\n content: {}, // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n}\n\nconst DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n}\n\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n}\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content)\n .map(config => this._resolvePossibleFunction(config))\n .filter(Boolean)\n }\n\n hasContent() {\n return this.getContent().length > 0\n }\n\n changeContent(content) {\n this._checkContent(content)\n this._config.content = { ...this._config.content, ...content }\n return this\n }\n\n toHtml() {\n const templateWrapper = document.createElement('div')\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template)\n\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector)\n }\n\n const template = templateWrapper.children[0]\n const extraClass = this._resolvePossibleFunction(this._config.extraClass)\n\n if (extraClass) {\n template.classList.add(...extraClass.split(' '))\n }\n\n return template\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config)\n this._checkContent(config.content)\n }\n\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType)\n }\n }\n\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template)\n\n if (!templateElement) {\n return\n }\n\n content = this._resolvePossibleFunction(content)\n\n if (!content) {\n templateElement.remove()\n return\n }\n\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement)\n return\n }\n\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content)\n return\n }\n\n templateElement.textContent = content\n }\n\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this])\n }\n\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = ''\n templateElement.append(element)\n return\n }\n\n templateElement.textContent = element.textContent\n }\n}\n\nexport default TemplateFactory\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport {\n defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop\n} from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' +\n '
' +\n '
' +\n '
',\n title: '',\n trigger: 'hover focus'\n}\n\nconst DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n }\n\n super(element, config)\n\n // Private\n this._isEnabled = true\n this._timeout = 0\n this._isHovered = null\n this._activeTrigger = {}\n this._popper = null\n this._templateFactory = null\n this._newContent = null\n\n // Protected\n this.tip = null\n\n this._setListeners()\n\n if (!this._config.selector) {\n this._fixTitle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle() {\n if (!this._isEnabled) {\n return\n }\n\n this._activeTrigger.click = !this._activeTrigger.click\n if (this._isShown()) {\n this._leave()\n return\n }\n\n this._enter()\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n }\n\n this._disposePopper()\n super.dispose()\n }\n\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (!(this._isWithContent() && this._isEnabled)) {\n return\n }\n\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n const shadowRoot = findShadowRoot(this._element)\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper()\n\n const tip = this._getTipElement()\n\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n const { container } = this._config\n\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip)\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n }\n\n this._popper = this._createPopper(tip)\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop)\n }\n }\n\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n if (this._isHovered === false) {\n this._leave()\n }\n\n this._isHovered = false\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n hide() {\n if (!this._isShown()) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const tip = this._getTipElement()\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop)\n }\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n this._isHovered = null // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n if (!this._isHovered) {\n this._disposePopper()\n }\n\n this._element.removeAttribute('aria-describedby')\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n }\n\n this._queueCallback(complete, this.tip, this._isAnimated())\n }\n\n update() {\n if (this._popper) {\n this._popper.update()\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle())\n }\n\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n }\n\n return this.tip\n }\n\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml()\n\n // TODO: remove this check in v6\n if (!tip) {\n return null\n }\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n const tipId = getUID(this.constructor.NAME).toString()\n\n tip.setAttribute('id', tipId)\n\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n return tip\n }\n\n setContent(content) {\n this._newContent = content\n if (this._isShown()) {\n this._disposePopper()\n this.show()\n }\n }\n\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content)\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n })\n }\n\n return this._templateFactory\n }\n\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n }\n }\n\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n }\n\n _isAnimated() {\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n }\n\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n }\n\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element])\n const attachment = AttachmentMap[placement.toUpperCase()]\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n }\n\n _getOffset() {\n const { offset } = this._config\n\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10))\n }\n\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element)\n }\n\n return offset\n }\n\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element])\n }\n\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [\n {\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n },\n {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n },\n {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n },\n {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n },\n {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n }\n }\n ]\n }\n\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n }\n }\n\n _setListeners() {\n const triggers = this._config.trigger.split(' ')\n\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context.toggle()\n })\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSEENTER) :\n this.constructor.eventName(EVENT_FOCUSIN)\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.eventName(EVENT_MOUSELEAVE) :\n this.constructor.eventName(EVENT_FOCUSOUT)\n\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n context._enter()\n })\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event)\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n context._element.contains(event.relatedTarget)\n\n context._leave()\n })\n }\n }\n\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide()\n }\n }\n\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n }\n\n _fixTitle() {\n const title = this._element.getAttribute('title')\n\n if (!title) {\n return\n }\n\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title)\n }\n\n this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title')\n }\n\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true\n return\n }\n\n this._isHovered = true\n\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show()\n }\n }, this._config.delay.show)\n }\n\n _leave() {\n if (this._isWithActiveTrigger()) {\n return\n }\n\n this._isHovered = false\n\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide()\n }\n }, this._config.delay.hide)\n }\n\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout)\n this._timeout = setTimeout(handler, timeout)\n }\n\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true)\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute]\n }\n }\n\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n }\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container)\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value\n }\n }\n\n config.selector = false\n config.trigger = 'manual'\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config\n }\n\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n\n if (this.tip) {\n this.tip.remove()\n this.tip = null\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Tooltip from './tooltip.js'\nimport { defineJQueryPlugin } from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'popover'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' +\n '
' +\n '

' +\n '
' +\n '
',\n trigger: 'click'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n}\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent()\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n }\n }\n\n _getContent() {\n return this._resolvePossibleFunction(this._config.content)\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config)\n\n if (typeof config !== 'string') {\n return\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n })\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover)\n\nexport default Popover\n", "/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\nimport EventHandler from './dom/event-handler.js'\nimport SelectorEngine from './dom/selector-engine.js'\nimport {\n defineJQueryPlugin, getElement, isDisabled, isVisible\n} from './util/index.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'scrollspy'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]'\nconst SELECTOR_TARGET_LINKS = '[href]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst Default = {\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n}\n\nconst DefaultType = {\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n}\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map()\n this._observableSections = new Map()\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\n this._activeTarget = null\n this._observer = null\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n }\n this.refresh() // initialize\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables()\n this._maybeEnableSmoothScroll()\n\n if (this._observer) {\n this._observer.disconnect()\n } else {\n this._observer = this._getNewObserver()\n }\n\n for (const section of this._observableSections.values()) {\n this._observer.observe(section)\n }\n }\n\n dispose() {\n this._observer.disconnect()\n super.dispose()\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin\n\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value))\n }\n\n return config\n }\n\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK)\n\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash)\n if (observableSection) {\n event.preventDefault()\n const root = this._rootElement || window\n const height = observableSection.offsetTop - this._element.offsetTop\n if (root.scrollTo) {\n root.scrollTo({ top: height, behavior: 'smooth' })\n return\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height\n }\n })\n }\n\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n }\n\n return new IntersectionObserver(entries => this._observerCallback(entries), options)\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`)\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop\n this._process(targetElement(entry))\n }\n\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\n this._previousScrollData.parentScrollTop = parentScrollTop\n\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null\n this._clearActiveClass(targetElement(entry))\n\n continue\n }\n\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry)\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return\n }\n\n continue\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry)\n }\n }\n }\n\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map()\n this._observableSections = new Map()\n\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target)\n\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue\n }\n\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element)\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor)\n this._observableSections.set(anchor.hash, observableSection)\n }\n }\n }\n\n _process(target) {\n if (this._activeTarget === target) {\n return\n }\n\n this._clearActiveClass(this._config.target)\n this._activeTarget = target\n target.classList.add(CLASS_NAME_ACTIVE)\n this._activateParents(target)\n\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\n }\n\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n return\n }\n\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both