{
  "version": 3,
  "sources": ["ssg:https://ga.jspm.io/npm:react@18.2.0/index.js", "ssg:https://app.framerstatic.com/chunk-H3UF2DYR.js", "ssg:https://ga.jspm.io/npm:react-dom@18.2.0/index.js", "ssg:https://ga.jspm.io/npm:scheduler@0.23.0/index.js", "ssg:https://app.framerstatic.com/framer.UCFJXIJH.js"],
  "sourcesContent": ["var e={};var t=Symbol.for(\"react.element\"),r=Symbol.for(\"react.portal\"),n=Symbol.for(\"react.fragment\"),o=Symbol.for(\"react.strict_mode\"),u=Symbol.for(\"react.profiler\"),a=Symbol.for(\"react.provider\"),c=Symbol.for(\"react.context\"),i=Symbol.for(\"react.forward_ref\"),f=Symbol.for(\"react.suspense\"),s=Symbol.for(\"react.memo\"),l=Symbol.for(\"react.lazy\"),p=Symbol.iterator;function A(e){if(null===e||\"object\"!==typeof e)return null;e=p&&e[p]||e[\"@@iterator\"];return\"function\"===typeof e?e:null}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},d=Object.assign,_={};function E(e,t,r){this.props=e;this.context=t;this.refs=_;this.updater=r||y}E.prototype.isReactComponent={};E.prototype.setState=function(e,t){if(\"object\"!==typeof e&&\"function\"!==typeof e&&null!=e)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};E.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(e,t,r){this.props=e;this.context=t;this.refs=_;this.updater=r||y}var m=G.prototype=new F;m.constructor=G;d(m,E.prototype);m.isPureReactComponent=!0;var h=Array.isArray,v=Object.prototype.hasOwnProperty,b={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function M(e,r,n){var o,u={},a=null,c=null;if(null!=r)for(o in void 0!==r.ref&&(c=r.ref),void 0!==r.key&&(a=\"\"+r.key),r)v.call(r,o)&&!C.hasOwnProperty(o)&&(u[o]=r[o]);var i=arguments.length-2;if(1===i)u.children=n;else if(1<i){for(var f=Array(i),s=0;s<i;s++)f[s]=arguments[s+2];u.children=f}if(e&&e.defaultProps)for(o in i=e.defaultProps,i)void 0===u[o]&&(u[o]=i[o]);return{$$typeof:t,type:e,key:a,ref:c,props:u,_owner:b.current}}function N(e,r){return{$$typeof:t,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}function O(e){return\"object\"===typeof e&&null!==e&&e.$$typeof===t}function escape(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+e.replace(/[=:]/g,(function(e){return t[e]}))}var w=/\\/+/g;function Q(e,t){return\"object\"===typeof e&&null!==e&&null!=e.key?escape(\"\"+e.key):t.toString(36)}function R(e,n,o,u,a){var c=typeof e;\"undefined\"!==c&&\"boolean\"!==c||(e=null);var i=!1;if(null===e)i=!0;else switch(c){case\"string\":case\"number\":i=!0;break;case\"object\":switch(e.$$typeof){case t:case r:i=!0}}if(i)return i=e,a=a(i),e=\"\"===u?\".\"+Q(i,0):u,h(a)?(o=\"\",null!=e&&(o=e.replace(w,\"$&/\")+\"/\"),R(a,n,o,\"\",(function(e){return e}))):null!=a&&(O(a)&&(a=N(a,o+(!a.key||i&&i.key===a.key?\"\":(\"\"+a.key).replace(w,\"$&/\")+\"/\")+e)),n.push(a)),1;i=0;u=\"\"===u?\".\":u+\":\";if(h(e))for(var f=0;f<e.length;f++){c=e[f];var s=u+Q(c,f);i+=R(c,n,o,s,a)}else if(s=A(e),\"function\"===typeof s)for(e=s.call(e),f=0;!(c=e.next()).done;)c=c.value,s=u+Q(c,f++),i+=R(c,n,o,s,a);else if(\"object\"===c)throw n=String(e),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===n?\"object with keys {\"+Object.keys(e).join(\", \")+\"}\":n)+\"). If you meant to render a collection of children, use an array instead.\");return i}function S(e,t,r){if(null==e)return e;var n=[],o=0;R(e,n,\"\",\"\",(function(e){return t.call(r,e,o++)}));return n}function T(e){if(-1===e._status){var t=e._result;t=t();t.then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}));-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var $={current:null},k={transition:null},g={ReactCurrentDispatcher:$,ReactCurrentBatchConfig:k,ReactCurrentOwner:b};e.Children={map:S,forEach:function(e,t,r){S(e,(function(){t.apply(this,arguments)}),r)},count:function(e){var t=0;S(e,(function(){t++}));return t},toArray:function(e){return S(e,(function(e){return e}))||[]},only:function(e){if(!O(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}};e.Component=E;e.Fragment=n;e.Profiler=u;e.PureComponent=G;e.StrictMode=o;e.Suspense=f;e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=g;e.cloneElement=function(e,r,n){if(null===e||void 0===e)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+e+\".\");var o=d({},e.props),u=e.key,a=e.ref,c=e._owner;if(null!=r){void 0!==r.ref&&(a=r.ref,c=b.current);void 0!==r.key&&(u=\"\"+r.key);if(e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(f in r)v.call(r,f)&&!C.hasOwnProperty(f)&&(o[f]=void 0===r[f]&&void 0!==i?i[f]:r[f])}var f=arguments.length-2;if(1===f)o.children=n;else if(1<f){i=Array(f);for(var s=0;s<f;s++)i[s]=arguments[s+2];o.children=i}return{$$typeof:t,type:e.type,key:u,ref:a,props:o,_owner:c}};e.createContext=function(e){e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};e.Provider={$$typeof:a,_context:e};return e.Consumer=e};e.createElement=M;e.createFactory=function(e){var t=M.bind(null,e);t.type=e;return t};e.createRef=function(){return{current:null}};e.forwardRef=function(e){return{$$typeof:i,render:e}};e.isValidElement=O;e.lazy=function(e){return{$$typeof:l,_payload:{_status:-1,_result:e},_init:T}};e.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}};e.startTransition=function(e){var t=k.transition;k.transition={};try{e()}finally{k.transition=t}};e.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\")};e.useCallback=function(e,t){return $.current.useCallback(e,t)};e.useContext=function(e){return $.current.useContext(e)};e.useDebugValue=function(){};e.useDeferredValue=function(e){return $.current.useDeferredValue(e)};e.useEffect=function(e,t){return $.current.useEffect(e,t)};e.useId=function(){return $.current.useId()};e.useImperativeHandle=function(e,t,r){return $.current.useImperativeHandle(e,t,r)};e.useInsertionEffect=function(e,t){return $.current.useInsertionEffect(e,t)};e.useLayoutEffect=function(e,t){return $.current.useLayoutEffect(e,t)};e.useMemo=function(e,t){return $.current.useMemo(e,t)};e.useReducer=function(e,t,r){return $.current.useReducer(e,t,r)};e.useRef=function(e){return $.current.useRef(e)};e.useState=function(e){return $.current.useState(e)};e.useSyncExternalStore=function(e,t,r){return $.current.useSyncExternalStore(e,t,r)};e.useTransition=function(){return $.current.useTransition()};e.version=\"18.2.0\";const j=e.Children,I=e.Component,x=e.Fragment,P=e.Profiler,D=e.PureComponent,V=e.StrictMode,L=e.Suspense,U=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,q=e.cloneElement,z=e.createContext,B=e.createElement,H=e.createFactory,W=e.createRef,Y=e.forwardRef,J=e.isValidElement,K=e.lazy,X=e.memo,Z=e.startTransition,ee=e.unstable_act,te=e.useCallback,re=e.useContext,ne=e.useDebugValue,oe=e.useDeferredValue,ue=e.useEffect,ae=e.useId,ce=e.useImperativeHandle,ie=e.useInsertionEffect,fe=e.useLayoutEffect,se=e.useMemo,le=e.useReducer,pe=e.useRef,ye=e.useState,de=e.useSyncExternalStore,_e=e.useTransition,me=e.version;export{j as Children,I as Component,x as Fragment,P as Profiler,D as PureComponent,V as StrictMode,L as Suspense,U as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,q as cloneElement,z as createContext,B as createElement,H as createFactory,W as createRef,e as default,Y as forwardRef,J as isValidElement,K as lazy,X as memo,Z as startTransition,ee as unstable_act,te as useCallback,re as useContext,ne as useDebugValue,oe as useDeferredValue,ue as useEffect,ae as useId,ce as useImperativeHandle,ie as useInsertionEffect,fe as useLayoutEffect,se as useMemo,le as useReducer,pe as useRef,ye as useState,de as useSyncExternalStore,_e as useTransition,me as version};\n\n//# sourceMappingURL=index.js.map", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __accessCheck = (obj, member, msg) => {\n  if (!member.has(obj))\n    throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n  __accessCheck(obj, member, \"read from private field\");\n  return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n  if (member.has(obj))\n    throw TypeError(\"Cannot add the same private member more than once\");\n  member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n  __accessCheck(obj, member, \"write to private field\");\n  setter ? setter.call(obj, value) : member.set(obj, value);\n  return value;\n};\n\n// ../../../node_modules/@emotion/memoize/dist/memoize.browser.cjs.js\nvar require_memoize_browser_cjs = __commonJS({\n  \"../../../node_modules/@emotion/memoize/dist/memoize.browser.cjs.js\"(exports) {\n    \"use strict\";\n    Object.defineProperty(exports, \"__esModule\", { value: true });\n    function memoize(fn) {\n      var cache = {};\n      return function(arg) {\n        if (cache[arg] === void 0)\n          cache[arg] = fn(arg);\n        return cache[arg];\n      };\n    }\n    exports.default = memoize;\n  }\n});\n\n// ../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.cjs.js\nvar require_is_prop_valid_browser_cjs = __commonJS({\n  \"../../../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.cjs.js\"(exports) {\n    \"use strict\";\n    Object.defineProperty(exports, \"__esModule\", { value: true });\n    function _interopDefault(ex) {\n      return ex && typeof ex === \"object\" && \"default\" in ex ? ex[\"default\"] : ex;\n    }\n    var memoize = _interopDefault(require_memoize_browser_cjs());\n    var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|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|download|draggable|encType|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|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|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)-.*))$/;\n    var index = memoize(\n      function(prop) {\n        return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91;\n      }\n      /* Z+1 */\n    );\n    exports.default = index;\n  }\n});\n\n// ../../../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\nimport { createContext } from \"react\";\nvar MotionConfigContext = createContext({\n  transformPagePoint: (p) => p,\n  isStatic: false,\n  reducedMotion: \"never\"\n});\n\n// ../../../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\nimport { createContext as createContext2 } from \"react\";\nvar MotionContext = createContext2({});\n\n// ../../../node_modules/framer-motion/dist/es/context/PresenceContext.mjs\nimport { createContext as createContext3 } from \"react\";\nvar PresenceContext = createContext3(null);\n\n// ../../../node_modules/framer-motion/dist/es/utils/is-browser.mjs\nvar isBrowser = typeof document !== \"undefined\";\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\nimport { useLayoutEffect, useEffect } from \"react\";\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs\nvar camelToDash = (str) => str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\n// ../../../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs\nvar optimizedAppearDataId = \"framerAppearId\";\nvar optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\n// ../../../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\nimport { createContext as createContext4 } from \"react\";\nvar LayoutGroupContext = createContext4({});\n\n// ../../../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\nimport { createContext as createContext5 } from \"react\";\nvar SwitchLayoutGroupContext = createContext5({});\n\n// ../../../node_modules/framer-motion/dist/es/motion/index.mjs\nimport * as React from \"react\";\nimport { forwardRef, useContext as useContext3 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\nimport { useContext, useRef, useInsertionEffect, useEffect as useEffect2 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/context/LazyContext.mjs\nimport { createContext as createContext6 } from \"react\";\nvar LazyContext = createContext6({ strict: false });\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\nfunction useVisualElement(Component2, visualState, props, createVisualElement2) {\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  createVisualElement2 = createVisualElement2 || lazyContext.renderer;\n  if (!visualElementRef.current && createVisualElement2) {\n    visualElementRef.current = createVisualElement2(Component2, {\n      visualState,\n      parent,\n      props,\n      presenceContext,\n      blockInitialAnimation: presenceContext ? presenceContext.initial === false : false,\n      reducedMotionConfig\n    });\n  }\n  const visualElement = visualElementRef.current;\n  useInsertionEffect(() => {\n    visualElement && visualElement.update(props, presenceContext);\n  });\n  const wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] && !window.HandoffComplete));\n  useIsomorphicLayoutEffect(() => {\n    if (!visualElement)\n      return;\n    visualElement.render();\n    if (wantsHandoff.current && visualElement.animationState) {\n      visualElement.animationState.animateChanges();\n    }\n  });\n  useEffect2(() => {\n    if (!visualElement)\n      return;\n    visualElement.updateFeatures();\n    if (!wantsHandoff.current && visualElement.animationState) {\n      visualElement.animationState.animateChanges();\n    }\n    if (wantsHandoff.current) {\n      wantsHandoff.current = false;\n      window.HandoffComplete = true;\n    }\n  });\n  return visualElement;\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\nimport { useCallback } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\nfunction isRefObject(ref) {\n  return typeof ref === \"object\" && Object.prototype.hasOwnProperty.call(ref, \"current\");\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\nfunction useMotionRef(visualState, visualElement, externalRef) {\n  return useCallback(\n    (instance) => {\n      instance && visualState.mount && visualState.mount(instance);\n      if (visualElement) {\n        instance ? visualElement.mount(instance) : visualElement.unmount();\n      }\n      if (externalRef) {\n        if (typeof externalRef === \"function\") {\n          externalRef(instance);\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}\n\n// ../../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\nimport { useContext as useContext2, useMemo } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs\nfunction isVariantLabel(v) {\n  return typeof v === \"string\" || Array.isArray(v);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs\nfunction isAnimationControls(v) {\n  return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs\nvar variantPriorityOrder = [\n  \"animate\",\n  \"whileInView\",\n  \"whileFocus\",\n  \"whileHover\",\n  \"whileTap\",\n  \"whileDrag\",\n  \"exit\"\n];\nvar variantProps = [\"initial\", ...variantPriorityOrder];\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs\nfunction isControllingVariants(props) {\n  return isAnimationControls(props.animate) || variantProps.some((name) => isVariantLabel(props[name]));\n}\nfunction isVariantNode(props) {\n  return Boolean(isControllingVariants(props) || props.variants);\n}\n\n// ../../../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\nfunction getCurrentTreeVariants(props, context) {\n  if (isControllingVariants(props)) {\n    const { initial, animate: animate2 } = props;\n    return {\n      initial: initial === false || isVariantLabel(initial) ? initial : void 0,\n      animate: isVariantLabel(animate2) ? animate2 : void 0\n    };\n  }\n  return props.inherit !== false ? context : {};\n}\n\n// ../../../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\nfunction useCreateMotionContext(props) {\n  const { initial, animate: animate2 } = getCurrentTreeVariants(props, useContext2(MotionContext));\n  return useMemo(() => ({ initial, animate: animate2 }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate2)]);\n}\nfunction variantLabelsAsDependency(prop) {\n  return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/definitions.mjs\nvar 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};\nvar featureDefinitions = {};\nfor (const key in featureProps) {\n  featureDefinitions[key] = {\n    isEnabled: (props) => featureProps[key].some((name) => !!props[name])\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/load-features.mjs\nfunction loadFeatures(features) {\n  for (const key in features) {\n    featureDefinitions[key] = {\n      ...featureDefinitions[key],\n      ...features[key]\n    };\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\nvar motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\n// ../../../node_modules/framer-motion/dist/es/motion/index.mjs\nfunction createMotionComponent({ preloadedFeatures: preloadedFeatures2, createVisualElement: createVisualElement2, useRender, useVisualState: useVisualState2, Component: Component2 }) {\n  preloadedFeatures2 && loadFeatures(preloadedFeatures2);\n  function MotionComponent(props, externalRef) {\n    let MeasureLayout2;\n    const configAndProps = {\n      ...useContext3(MotionConfigContext),\n      ...props,\n      layoutId: useLayoutId(props)\n    };\n    const { isStatic } = configAndProps;\n    const context = useCreateMotionContext(props);\n    const visualState = useVisualState2(props, isStatic);\n    if (!isStatic && isBrowser) {\n      context.visualElement = useVisualElement(Component2, visualState, configAndProps, createVisualElement2);\n      const initialLayoutGroupConfig = useContext3(SwitchLayoutGroupContext);\n      const isStrict = useContext3(LazyContext).strict;\n      if (context.visualElement) {\n        MeasureLayout2 = context.visualElement.loadFeatures(\n          // Note: Pass the full new combined props to correctly re-render dynamic feature components.\n          configAndProps,\n          isStrict,\n          preloadedFeatures2,\n          initialLayoutGroupConfig\n        );\n      }\n    }\n    return React.createElement(\n      MotionContext.Provider,\n      { value: context },\n      MeasureLayout2 && context.visualElement ? React.createElement(MeasureLayout2, { visualElement: context.visualElement, ...configAndProps }) : null,\n      useRender(Component2, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)\n    );\n  }\n  const ForwardRefComponent = forwardRef(MotionComponent);\n  ForwardRefComponent[motionComponentSymbol] = Component2;\n  return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n  const layoutGroupId = useContext3(LayoutGroupContext).id;\n  return layoutGroupId && layoutId !== void 0 ? layoutGroupId + \"-\" + layoutId : layoutId;\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs\nvar scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n  Object.assign(scaleCorrectors, correctors);\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs\nvar isMotionValue = (value) => Boolean(value && value.getVelocity);\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs\nvar 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];\nvar transformProps = new Set(transformPropOrder);\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs\nvar translateAlias = {\n  x: \"translateX\",\n  y: \"translateY\",\n  z: \"translateZ\",\n  transformPerspective: \"perspective\"\n};\nvar numTransforms = transformPropOrder.length;\nfunction buildTransform(transform2, { enableHardwareAcceleration = true, allowTransformNone = true }, transformIsDefault, transformTemplate) {\n  let transformString = \"\";\n  for (let i = 0; i < numTransforms; i++) {\n    const key = transformPropOrder[i];\n    if (transform2[key] !== void 0) {\n      const transformName = translateAlias[key] || key;\n      transformString += `${transformName}(${transform2[key]}) `;\n    }\n  }\n  if (enableHardwareAcceleration && !transform2.z) {\n    transformString += \"translateZ(0)\";\n  }\n  transformString = transformString.trim();\n  if (transformTemplate) {\n    transformString = transformTemplate(transform2, transformIsDefault ? \"\" : transformString);\n  } else if (allowTransformNone && transformIsDefault) {\n    transformString = \"none\";\n  }\n  return transformString;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/clamp.mjs\nvar clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\n// ../../../node_modules/framer-motion/dist/es/value/types/utils.mjs\nvar sanitize = (v) => Math.round(v * 1e5) / 1e5;\nvar floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nvar colorRegex = /(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))/gi;\nvar singleColorRegex = /^(#[0-9a-f]{3,8}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2}(-?[\\d\\.]+%?)\\s*[\\,\\/]?\\s*[\\d\\.]*%?\\))$/i;\nfunction isString(v) {\n  return typeof v === \"string\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs\nvar createUnitType = (unit) => ({\n  test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n  parse: parseFloat,\n  transform: (v) => `${v}${unit}`\n});\nvar degrees = createUnitType(\"deg\");\nvar percent = createUnitType(\"%\");\nvar px = createUnitType(\"px\");\nvar vh = createUnitType(\"vh\");\nvar vw = createUnitType(\"vw\");\nvar progressPercentage = {\n  ...percent,\n  parse: (v) => percent.parse(v) / 100,\n  transform: (v) => percent.transform(v * 100)\n};\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\nvar validMotionProps = /* @__PURE__ */ new Set([\n  \"animate\",\n  \"exit\",\n  \"variants\",\n  \"initial\",\n  \"style\",\n  \"values\",\n  \"variants\",\n  \"transition\",\n  \"transformTemplate\",\n  \"transformValues\",\n  \"custom\",\n  \"inherit\",\n  \"onLayoutAnimationStart\",\n  \"onLayoutAnimationComplete\",\n  \"onLayoutMeasure\",\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  \"ignoreStrict\",\n  \"viewport\"\n]);\nfunction isValidMotionProp(key) {\n  return key.startsWith(\"while\") || key.startsWith(\"drag\") && key !== \"draggable\" || key.startsWith(\"layout\") || key.startsWith(\"onTap\") || key.startsWith(\"onPan\") || validMotionProps.has(key);\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\nvar shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n  if (!isValidProp)\n    return;\n  shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\ntry {\n  loadExternalIsValidProp(require_is_prop_valid_browser_cjs().default);\n} catch (_a) {\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n  const filteredProps = {};\n  for (const key in props) {\n    if (key === \"values\" && typeof props.values === \"object\")\n      continue;\n    if (shouldForward(key) || forwardMotionProps === true && isValidMotionProp(key) || !isDom && !isValidMotionProp(key) || // If trying to use native HTML drag events, forward drag listeners\n    props[\"draggable\"] && key.startsWith(\"onDrag\")) {\n      filteredProps[key] = props[key];\n    }\n  }\n  return filteredProps;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs\nvar isKeyframesTarget = (v) => {\n  return Array.isArray(v);\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/resolve-value.mjs\nvar isCustomValue = (v) => {\n  return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = (v) => {\n  return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs\nfunction resolveMotionValue(value) {\n  const unwrappedValue = isMotionValue(value) ? value.get() : value;\n  return isCustomValue(unwrappedValue) ? unwrappedValue.toValue() : unwrappedValue;\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\nimport { useContext as useContext4 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs\nfunction resolveVariantFromProps(props, definition, custom, currentValues = {}, currentVelocity = {}) {\n  if (typeof definition === \"function\") {\n    definition = definition(custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n  }\n  if (typeof definition === \"string\") {\n    definition = props.variants && props.variants[definition];\n  }\n  if (typeof definition === \"function\") {\n    definition = definition(custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n  }\n  return definition;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-constant.mjs\nimport { useRef as useRef2 } from \"react\";\nfunction useConstant(init) {\n  const ref = useRef2(null);\n  if (ref.current === null) {\n    ref.current = init();\n  }\n  return ref.current;\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\nfunction makeState({ scrapeMotionValuesFromProps: scrapeMotionValuesFromProps3, createRenderState, onMount }, props, context, presenceContext) {\n  const state = {\n    latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps3),\n    renderState: createRenderState()\n  };\n  if (onMount) {\n    state.mount = (instance) => onMount(props, instance, state);\n  }\n  return state;\n}\nvar makeUseVisualState = (config) => (props, isStatic) => {\n  const context = useContext4(MotionContext);\n  const presenceContext = useContext4(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: animate2 } = props;\n  const isControllingVariants$1 = isControllingVariants(props);\n  const isVariantNode$1 = isVariantNode(props);\n  if (context && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== false) {\n    if (initial === void 0)\n      initial = context.initial;\n    if (animate2 === void 0)\n      animate2 = context.animate;\n  }\n  let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === false : false;\n  isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n  const variantToSet = isInitialAnimationBlocked ? animate2 : initial;\n  if (variantToSet && typeof variantToSet !== \"boolean\" && !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          const index = isInitialAnimationBlocked ? valueTarget.length - 1 : 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\n// ../../../node_modules/framer-motion/dist/es/utils/noop.mjs\nvar noop = (any) => any;\n\n// ../../../node_modules/framer-motion/dist/es/frameloop/render-step.mjs\nvar Queue = class {\n  constructor() {\n    this.order = [];\n    this.scheduled = /* @__PURE__ */ new Set();\n  }\n  add(process2) {\n    if (!this.scheduled.has(process2)) {\n      this.scheduled.add(process2);\n      this.order.push(process2);\n      return true;\n    }\n  }\n  remove(process2) {\n    const index = this.order.indexOf(process2);\n    if (index !== -1) {\n      this.order.splice(index, 1);\n      this.scheduled.delete(process2);\n    }\n  }\n  clear() {\n    this.order.length = 0;\n    this.scheduled.clear();\n  }\n};\nfunction createRenderStep(runNextFrame) {\n  let thisFrame = new Queue();\n  let nextFrame = new Queue();\n  let numToRun = 0;\n  let isProcessing = false;\n  let flushNextFrame = false;\n  const toKeepAlive = /* @__PURE__ */ 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        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: (frameData2) => {\n      if (isProcessing) {\n        flushNextFrame = true;\n        return;\n      }\n      isProcessing = true;\n      [thisFrame, nextFrame] = [nextFrame, thisFrame];\n      nextFrame.clear();\n      numToRun = thisFrame.order.length;\n      if (numToRun) {\n        for (let i = 0; i < numToRun; i++) {\n          const callback = thisFrame.order[i];\n          callback(frameData2);\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(frameData2);\n      }\n    }\n  };\n  return step;\n}\n\n// ../../../node_modules/framer-motion/dist/es/frameloop/batcher.mjs\nvar stepsOrder = [\n  \"prepare\",\n  \"read\",\n  \"update\",\n  \"preRender\",\n  \"render\",\n  \"postRender\"\n];\nvar 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 steps2 = stepsOrder.reduce((acc, key) => {\n    acc[key] = createRenderStep(() => runNextFrame = true);\n    return acc;\n  }, {});\n  const processStep = (stepId) => steps2[stepId].process(state);\n  const processBatch = () => {\n    const timestamp = performance.now();\n    runNextFrame = false;\n    state.delta = useDefaultElapsed ? 1e3 / 60 : 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 = steps2[key];\n    acc[key] = (process2, keepAlive = false, immediate = false) => {\n      if (!runNextFrame)\n        wake();\n      return step.schedule(process2, keepAlive, immediate);\n    };\n    return acc;\n  }, {});\n  const cancel = (process2) => stepsOrder.forEach((key) => steps2[key].cancel(process2));\n  return { schedule, cancel, state, steps: steps2 };\n}\n\n// ../../../node_modules/framer-motion/dist/es/frameloop/frame.mjs\nvar { schedule: frame, cancel: cancelFrame, state: frameData, steps } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\n// ../../../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs\nvar isPrimaryPointer = (event) => {\n  if (event.pointerType === \"mouse\") {\n    return typeof event.button !== \"number\" || event.button <= 0;\n  } else {\n    return event.isPrimary !== false;\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/events/event-info.mjs\nfunction extractEventInfo(event, pointType = \"page\") {\n  return {\n    point: {\n      x: event[pointType + \"X\"],\n      y: event[pointType + \"Y\"]\n    }\n  };\n}\nvar addPointerInfo = (handler) => {\n  return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\n// ../../../node_modules/framer-motion/dist/es/events/add-dom-event.mjs\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n  target.addEventListener(eventName, handler, options);\n  return () => target.removeEventListener(eventName, handler);\n}\n\n// ../../../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\nfunction addPointerEvent(target, eventName, handler, options) {\n  return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/pipe.mjs\nvar combineFunctions = (a, b) => (v) => b(a(v));\nvar pipe = (...transformers) => transformers.reduce(combineFunctions);\n\n// ../../../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs\nfunction 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}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag2) {\n  let lock = false;\n  if (drag2 === \"y\") {\n    lock = globalVerticalLock();\n  } else if (drag2 === \"x\") {\n    lock = globalHorizontalLock();\n  } else {\n    const openHorizontal = globalHorizontalLock();\n    const openVertical = globalVerticalLock();\n    if (openHorizontal && openVertical) {\n      lock = () => {\n        openHorizontal();\n        openVertical();\n      };\n    } else {\n      if (openHorizontal)\n        openHorizontal();\n      if (openVertical)\n        openVertical();\n    }\n  }\n  return lock;\n}\nfunction isDragActive() {\n  const openGestureLock = getGlobalLock(true);\n  if (!openGestureLock)\n    return true;\n  openGestureLock();\n  return false;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/errors.mjs\nvar warning = noop;\nvar invariant = noop;\nif (false) {\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\n// ../../../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs\nvar calcBezier = (t, a1, a2) => (((1 - 3 * a2 + 3 * a1) * t + (3 * a2 - 6 * a1)) * t + 3 * a1) * t;\nvar subdivisionPrecision = 1e-7;\nvar 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;\n    currentX = calcBezier(currentT, mX1, mX2) - x;\n    if (currentX > 0) {\n      upperBound = currentT;\n    } else {\n      lowerBound = currentT;\n    }\n  } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);\n  return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n  if (mX1 === mY1 && mX2 === mY2)\n    return noop;\n  const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n  return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\n// ../../../node_modules/framer-motion/dist/es/easing/ease.mjs\nvar easeIn = cubicBezier(0.42, 0, 1, 1);\nvar easeOut = cubicBezier(0, 0, 0.58, 1);\nvar easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\n// ../../../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs\nvar mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\n// ../../../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs\nvar reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\n// ../../../node_modules/framer-motion/dist/es/easing/circ.mjs\nvar circIn = (p) => 1 - Math.sin(Math.acos(p));\nvar circOut = reverseEasing(circIn);\nvar circInOut = mirrorEasing(circIn);\n\n// ../../../node_modules/framer-motion/dist/es/easing/back.mjs\nvar backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nvar backIn = reverseEasing(backOut);\nvar backInOut = mirrorEasing(backIn);\n\n// ../../../node_modules/framer-motion/dist/es/easing/anticipate.mjs\nvar anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\n// ../../../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs\nvar number = {\n  test: (v) => typeof v === \"number\",\n  parse: parseFloat,\n  transform: (v) => v\n};\nvar alpha = {\n  ...number,\n  transform: (v) => clamp(0, 1, v)\n};\nvar scale = {\n  ...number,\n  default: 1\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/types/color/utils.mjs\nvar isColorString = (type, testProp) => (v) => {\n  return Boolean(isString(v) && singleColorRegex.test(v) && v.startsWith(type) || testProp && Object.prototype.hasOwnProperty.call(v, testProp));\n};\nvar splitColor = (aName, bName, cName) => (v) => {\n  if (!isString(v))\n    return v;\n  const [a, b, c, alpha2] = v.match(floatRegex);\n  return {\n    [aName]: parseFloat(a),\n    [bName]: parseFloat(b),\n    [cName]: parseFloat(c),\n    alpha: alpha2 !== void 0 ? parseFloat(alpha2) : 1\n  };\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs\nvar clampRgbUnit = (v) => clamp(0, 255, v);\nvar rgbUnit = {\n  ...number,\n  transform: (v) => Math.round(clampRgbUnit(v))\n};\nvar rgba = {\n  test: isColorString(\"rgb\", \"red\"),\n  parse: splitColor(\"red\", \"green\", \"blue\"),\n  transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" + rgbUnit.transform(red) + \", \" + rgbUnit.transform(green) + \", \" + rgbUnit.transform(blue) + \", \" + sanitize(alpha.transform(alpha$1)) + \")\"\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/types/color/hex.mjs\nfunction parseHex(v) {\n  let r = \"\";\n  let g = \"\";\n  let b = \"\";\n  let a = \"\";\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  } 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}\nvar hex = {\n  test: isColorString(\"#\"),\n  parse: parseHex,\n  transform: rgba.transform\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs\nvar hsla = {\n  test: isColorString(\"hsl\", \"hue\"),\n  parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n  transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n    return \"hsla(\" + Math.round(hue) + \", \" + percent.transform(sanitize(saturation)) + \", \" + percent.transform(sanitize(lightness)) + \", \" + sanitize(alpha.transform(alpha$1)) + \")\";\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/types/color/index.mjs\nvar 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    } else if (hsla.test(v)) {\n      return hsla.parse(v);\n    } else {\n      return hex.parse(v);\n    }\n  },\n  transform: (v) => {\n    return isString(v) ? v : v.hasOwnProperty(\"red\") ? rgba.transform(v) : hsla.transform(v);\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/mix.mjs\nvar mix = (from, to, progress2) => -progress2 * from + progress2 * to + from;\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs\nvar checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nvar isCSSVariableName = checkStringStartsWith(\"--\");\nvar isCSSVariableToken = checkStringStartsWith(\"var(--\");\nvar cssVariableRegex = /var\\s*\\(\\s*--[\\w-]+(\\s*,\\s*(?:(?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)+)?\\s*\\)/g;\n\n// ../../../node_modules/framer-motion/dist/es/value/types/complex/index.mjs\nfunction test(v) {\n  var _a, _b;\n  return isNaN(v) && isString(v) && (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) + (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) > 0;\n}\nvar cssVarTokeniser = {\n  regex: cssVariableRegex,\n  countKey: \"Vars\",\n  token: \"${v}\",\n  parse: noop\n};\nvar colorTokeniser = {\n  regex: colorRegex,\n  countKey: \"Colors\",\n  token: \"${c}\",\n  parse: color.parse\n};\nvar numberTokeniser = {\n  regex: floatRegex,\n  countKey: \"Numbers\",\n  token: \"${n}\",\n  parse: number.parse\n};\nfunction tokenise(info, { regex, countKey, token, parse }) {\n  const matches = info.tokenised.match(regex);\n  if (!matches)\n    return;\n  info[\"num\" + countKey] = matches.length;\n  info.tokenised = info.tokenised.replace(regex, token);\n  info.values.push(...matches.map(parse));\n}\nfunction analyseComplexValue(value) {\n  const originalValue = value.toString();\n  const info = {\n    value: originalValue,\n    tokenised: originalValue,\n    values: [],\n    numVars: 0,\n    numColors: 0,\n    numNumbers: 0\n  };\n  if (info.value.includes(\"var(--\"))\n    tokenise(info, cssVarTokeniser);\n  tokenise(info, colorTokeniser);\n  tokenise(info, numberTokeniser);\n  return info;\n}\nfunction parseComplexValue(v) {\n  return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n  const { values, numColors, numVars, tokenised } = analyseComplexValue(source);\n  const numValues = values.length;\n  return (v) => {\n    let output = tokenised;\n    for (let i = 0; i < numValues; i++) {\n      if (i < numVars) {\n        output = output.replace(cssVarTokeniser.token, v[i]);\n      } else if (i < numVars + numColors) {\n        output = output.replace(colorTokeniser.token, color.transform(v[i]));\n      } else {\n        output = output.replace(numberTokeniser.token, sanitize(v[i]));\n      }\n    }\n    return output;\n  };\n}\nvar 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}\nvar complex = {\n  test,\n  parse: parseComplexValue,\n  createTransformer,\n  getAnimatableNone\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/progress.mjs\nvar progress = (from, to, value) => {\n  const toFromDifference = to - from;\n  return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs\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: alpha2 }) {\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  } else {\n    const q = lightness < 0.5 ? lightness * (1 + saturation) : 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: alpha2\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/mix-color.mjs\nvar mixLinearColor = (from, to, v) => {\n  const fromExpo = from * from;\n  return Math.sqrt(Math.max(0, v * (to * to - fromExpo) + fromExpo));\n};\nvar colorTypes = [hex, rgba, hsla];\nvar getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color2) {\n  const type = getColorType(color2);\n  invariant(Boolean(type), `'${color2}' is not an animatable color. Use the equivalent color code instead.`);\n  let model = type.parse(color2);\n  if (type === hsla) {\n    model = hslaToRgba(model);\n  }\n  return model;\n}\nvar mixColor = (from, to) => {\n  const fromRGBA = asRGBA(from);\n  const toRGBA = asRGBA(to);\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 = mix(fromRGBA.alpha, toRGBA.alpha, v);\n    return rgba.transform(blended);\n  };\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/mix-complex.mjs\nvar mixImmediate = (origin, target) => (p) => `${p > 0 ? target : origin}`;\nfunction getMixer(origin, target) {\n  if (typeof origin === \"number\") {\n    return (v) => mix(origin, target, v);\n  } else if (color.test(origin)) {\n    return mixColor(origin, target);\n  } else {\n    return origin.startsWith(\"var(\") ? mixImmediate(origin, target) : mixComplex(origin, target);\n  }\n}\nvar mixArray = (from, to) => {\n  const output = [...from];\n  const numValues = output.length;\n  const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n  return (v) => {\n    for (let i = 0; i < numValues; i++) {\n      output[i] = blendValue[i](v);\n    }\n    return output;\n  };\n};\nvar mixObject = (origin, target) => {\n  const output = { ...origin, ...target };\n  const blendValue = {};\n  for (const key in output) {\n    if (origin[key] !== void 0 && target[key] !== void 0) {\n      blendValue[key] = getMixer(origin[key], target[key]);\n    }\n  }\n  return (v) => {\n    for (const key in blendValue) {\n      output[key] = blendValue[key](v);\n    }\n    return output;\n  };\n};\nvar mixComplex = (origin, target) => {\n  const template = complex.createTransformer(target);\n  const originStats = analyseComplexValue(origin);\n  const targetStats = analyseComplexValue(target);\n  const canInterpolate = originStats.numVars === targetStats.numVars && originStats.numColors === targetStats.numColors && originStats.numNumbers >= targetStats.numNumbers;\n  if (canInterpolate) {\n    return pipe(mixArray(originStats.values, targetStats.values), template);\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\n// ../../../node_modules/framer-motion/dist/es/utils/interpolate.mjs\nvar mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n  if (typeof v === \"number\") {\n    return mixNumber;\n  } else if (typeof v === \"string\") {\n    return color.test(v) ? mixColor : mixComplex;\n  } else if (Array.isArray(v)) {\n    return mixArray;\n  } else if (typeof v === \"object\") {\n    return mixObject;\n  }\n  return mixNumber;\n}\nfunction createMixers(output, ease2, customMixer) {\n  const mixers = [];\n  const mixerFactory = customMixer || detectMixerFactory(output[0]);\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 (ease2) {\n      const easingFunction = Array.isArray(ease2) ? ease2[i] || noop : ease2;\n      mixer = pipe(easingFunction, mixer);\n    }\n    mixers.push(mixer);\n  }\n  return mixers;\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease: ease2, mixer } = {}) {\n  const inputLength = input.length;\n  invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n  if (inputLength === 1)\n    return () => output[0];\n  if (input[0] > input[inputLength - 1]) {\n    input = [...input].reverse();\n    output = [...output].reverse();\n  }\n  const mixers = createMixers(output, ease2, 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 ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v)) : interpolator;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/time-conversion.mjs\nvar secondsToMilliseconds = (seconds) => seconds * 1e3;\nvar millisecondsToSeconds = (milliseconds) => milliseconds / 1e3;\n\n// ../../../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs\nfunction velocityPerSecond(velocity, frameDuration) {\n  return frameDuration ? velocity * (1e3 / frameDuration) : 0;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs\nvar velocitySampleDuration = 5;\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n  const prevT = Math.max(t - velocitySampleDuration, 0);\n  return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs\nvar safeMin = 1e-3;\nvar minDuration = 0.01;\nvar maxDuration = 10;\nvar minDamping = 0.05;\nvar 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  dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n  duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n  if (dampingRatio < 1) {\n    envelope = (undampedFreq2) => {\n      const exponentialDecay = undampedFreq2 * dampingRatio;\n      const delta = exponentialDecay * duration;\n      const a = exponentialDecay - velocity;\n      const b = calcAngularFreq(undampedFreq2, dampingRatio);\n      const c = Math.exp(-delta);\n      return safeMin - a / b * c;\n    };\n    derivative = (undampedFreq2) => {\n      const exponentialDecay = undampedFreq2 * dampingRatio;\n      const delta = exponentialDecay * duration;\n      const d = delta * velocity + velocity;\n      const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq2, 2) * duration;\n      const f = Math.exp(-delta);\n      const g = calcAngularFreq(Math.pow(undampedFreq2, 2), dampingRatio);\n      const factor = -envelope(undampedFreq2) + safeMin > 0 ? -1 : 1;\n      return factor * ((d - e) * f) / g;\n    };\n  } else {\n    envelope = (undampedFreq2) => {\n      const a = Math.exp(-undampedFreq2 * duration);\n      const b = (undampedFreq2 - velocity) * duration + 1;\n      return -safeMin + a * b;\n    };\n    derivative = (undampedFreq2) => {\n      const a = Math.exp(-undampedFreq2 * duration);\n      const b = (velocity - undampedFreq2) * (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  } 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}\nvar 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\n// ../../../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs\nvar durationKeys = [\"duration\", \"bounce\"];\nvar physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys2) {\n  return keys2.some((key) => options[key] !== void 0);\n}\nfunction getSpringOptions(options) {\n  let springOptions = {\n    velocity: 0,\n    stiffness: 100,\n    damping: 10,\n    mass: 1,\n    isResolvedFromDuration: false,\n    ...options\n  };\n  if (!isSpringType(options, physicsKeys) && isSpringType(options, durationKeys)) {\n    const derived = findSpring(options);\n    springOptions = {\n      ...springOptions,\n      ...derived,\n      velocity: 0,\n      mass: 1\n    };\n    springOptions.isResolvedFromDuration = true;\n  }\n  return springOptions;\n}\nfunction spring({ keyframes: keyframes2, restDelta, restSpeed, ...options }) {\n  const origin = keyframes2[0];\n  const target = keyframes2[keyframes2.length - 1];\n  const state = { done: false, value: origin };\n  const { stiffness, damping, mass, velocity, duration, isResolvedFromDuration } = getSpringOptions(options);\n  const initialVelocity = velocity ? -millisecondsToSeconds(velocity) : 0;\n  const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n  const initialDelta = target - origin;\n  const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n  const isGranularScale = Math.abs(initialDelta) < 5;\n  restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n  restDelta || (restDelta = isGranularScale ? 5e-3 : 0.5);\n  let resolveSpring;\n  if (dampingRatio < 1) {\n    const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n    resolveSpring = (t) => {\n      const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n      return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) / angularFreq * Math.sin(angularFreq * t) + initialDelta * Math.cos(angularFreq * t));\n    };\n  } else if (dampingRatio === 1) {\n    resolveSpring = (t) => target - Math.exp(-undampedAngularFreq * t) * (initialDelta + (initialVelocity + undampedAngularFreq * initialDelta) * t);\n  } else {\n    const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n    resolveSpring = (t) => {\n      const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n      const freqForT = Math.min(dampedAngularFreq * t, 300);\n      return target - envelope * ((initialVelocity + dampingRatio * undampedAngularFreq * initialDelta) * Math.sinh(freqForT) + dampedAngularFreq * initialDelta * Math.cosh(freqForT)) / 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          if (dampingRatio < 1) {\n            currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\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 = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n      } else {\n        state.done = t >= duration;\n      }\n      state.value = state.done ? target : current;\n      return state;\n    }\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs\nvar isEasingArray = (ease2) => {\n  return Array.isArray(ease2) && typeof ease2[0] !== \"number\";\n};\n\n// ../../../node_modules/framer-motion/dist/es/easing/utils/map.mjs\nvar 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};\nvar easingDefinitionToFunction = (definition) => {\n  if (Array.isArray(definition)) {\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  } else if (typeof definition === \"string\") {\n    invariant(easingLookup[definition] !== void 0, `Invalid easing type '${definition}'`);\n    return easingLookup[definition];\n  }\n  return definition;\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs\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(mix(min, 1, offsetProgress));\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/offsets/default.mjs\nfunction defaultOffset(arr) {\n  const offset = [0];\n  fillOffset(offset, arr.length - 1);\n  return offset;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/offsets/time.mjs\nfunction convertOffsetToTimes(offset, duration) {\n  return offset.map((o) => o * duration);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs\nfunction defaultEasing(values, easing) {\n  return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease: ease2 = \"easeInOut\" }) {\n  const easingFunctions = isEasingArray(ease2) ? ease2.map(easingDefinitionToFunction) : easingDefinitionToFunction(ease2);\n  const state = {\n    done: false,\n    value: keyframeValues[0]\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 ? times : defaultOffset(keyframeValues),\n    duration\n  );\n  const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n    ease: Array.isArray(easingFunctions) ? easingFunctions : 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\n// ../../../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs\nfunction inertia({ keyframes: keyframes2, velocity = 0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed }) {\n  const origin = keyframes2[0];\n  const state = {\n    done: false,\n    value: origin\n  };\n  const isOutOfBounds = (v) => min !== void 0 && v < min || max !== void 0 && v > max;\n  const nearestBoundary = (v) => {\n    if (min === void 0)\n      return max;\n    if (max === void 0)\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 === void 0 ? ideal : modifyTarget(ideal);\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  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),\n      damping: bounceDamping,\n      stiffness: bounceStiffness,\n      restDelta,\n      restSpeed\n    });\n  };\n  checkCatchBoundary(0);\n  return {\n    calculatedDuration: null,\n    next: (t) => {\n      let hasUpdatedFrame = false;\n      if (!spring$1 && timeReachedBoundary === void 0) {\n        hasUpdatedFrame = true;\n        applyFriction(t);\n        checkCatchBoundary(t);\n      }\n      if (timeReachedBoundary !== void 0 && t > timeReachedBoundary) {\n        return spring$1.next(t - timeReachedBoundary);\n      } else {\n        !hasUpdatedFrame && applyFriction(t);\n        return state;\n      }\n    }\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/animators/js/driver-frameloop.mjs\nvar 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 : performance.now()\n  };\n};\n\n// ../../../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs\nvar maxGeneratorDuration = 2e4;\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\n// ../../../node_modules/framer-motion/dist/es/animation/animators/js/index.mjs\nvar types = {\n  decay: inertia,\n  inertia,\n  tween: keyframes,\n  keyframes,\n  spring\n};\nfunction animateValue({ autoplay = true, delay: delay2 = 0, driver = frameloopDriver, keyframes: keyframes$1, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", onPlay, onStop, onComplete, onUpdate, ...options }) {\n  let speed = 1;\n  let hasStopped = false;\n  let resolveFinishedPromise;\n  let currentFinishedPromise;\n  const updateFinishedPromise = () => {\n    currentFinishedPromise = new Promise((resolve) => {\n      resolveFinishedPromise = resolve;\n    });\n  };\n  updateFinishedPromise();\n  let animationDriver;\n  const generatorFactory = types[type] || keyframes;\n  let mapNumbersToKeyframes;\n  if (generatorFactory !== keyframes && typeof keyframes$1[0] !== \"number\") {\n    mapNumbersToKeyframes = interpolate([0, 100], keyframes$1, {\n      clamp: false\n    });\n    keyframes$1 = [0, 100];\n  }\n  const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n  let mirroredGenerator;\n  if (repeatType === \"mirror\") {\n    mirroredGenerator = generatorFactory({\n      ...options,\n      keyframes: [...keyframes$1].reverse(),\n      velocity: -(options.velocity || 0)\n    });\n  }\n  let playState = \"idle\";\n  let holdTime = null;\n  let startTime = null;\n  let cancelTime = null;\n  if (generator.calculatedDuration === null && repeat) {\n    generator.calculatedDuration = calcGeneratorDuration(generator);\n  }\n  const { calculatedDuration } = generator;\n  let resolvedDuration = Infinity;\n  let totalDuration = Infinity;\n  if (calculatedDuration !== null) {\n    resolvedDuration = calculatedDuration + repeatDelay;\n    totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n  }\n  let currentTime = 0;\n  const tick = (timestamp) => {\n    if (startTime === null)\n      return;\n    if (speed > 0)\n      startTime = Math.min(startTime, timestamp);\n    if (speed < 0)\n      startTime = Math.min(timestamp - totalDuration / speed, startTime);\n    if (holdTime !== null) {\n      currentTime = holdTime;\n    } else {\n      currentTime = Math.round(timestamp - startTime) * speed;\n    }\n    const timeWithoutDelay = currentTime - delay2 * (speed >= 0 ? 1 : -1);\n    const isInDelayPhase = speed >= 0 ? timeWithoutDelay < 0 : timeWithoutDelay > totalDuration;\n    currentTime = Math.max(timeWithoutDelay, 0);\n    if (playState === \"finished\" && holdTime === null) {\n      currentTime = totalDuration;\n    }\n    let elapsed = currentTime;\n    let frameGenerator = generator;\n    if (repeat) {\n      const progress2 = currentTime / resolvedDuration;\n      let currentIteration = Math.floor(progress2);\n      let iterationProgress = progress2 % 1;\n      if (!iterationProgress && progress2 >= 1) {\n        iterationProgress = 1;\n      }\n      iterationProgress === 1 && currentIteration--;\n      currentIteration = Math.min(currentIteration, repeat + 1);\n      const iterationIsOdd = Boolean(currentIteration % 2);\n      if (iterationIsOdd) {\n        if (repeatType === \"reverse\") {\n          iterationProgress = 1 - iterationProgress;\n          if (repeatDelay) {\n            iterationProgress -= repeatDelay / resolvedDuration;\n          }\n        } else if (repeatType === \"mirror\") {\n          frameGenerator = mirroredGenerator;\n        }\n      }\n      let p = clamp(0, 1, iterationProgress);\n      if (currentTime > totalDuration) {\n        p = repeatType === \"reverse\" && iterationIsOdd ? 1 : 0;\n      }\n      elapsed = p * resolvedDuration;\n    }\n    const state = isInDelayPhase ? { done: false, value: keyframes$1[0] } : frameGenerator.next(elapsed);\n    if (mapNumbersToKeyframes) {\n      state.value = mapNumbersToKeyframes(state.value);\n    }\n    let { done } = state;\n    if (!isInDelayPhase && calculatedDuration !== null) {\n      done = speed >= 0 ? currentTime >= totalDuration : currentTime <= 0;\n    }\n    const isAnimationFinished = holdTime === null && (playState === \"finished\" || playState === \"running\" && done);\n    if (onUpdate) {\n      onUpdate(state.value);\n    }\n    if (isAnimationFinished) {\n      finish();\n    }\n    return state;\n  };\n  const stopAnimationDriver = () => {\n    animationDriver && animationDriver.stop();\n    animationDriver = void 0;\n  };\n  const cancel = () => {\n    playState = \"idle\";\n    stopAnimationDriver();\n    resolveFinishedPromise();\n    updateFinishedPromise();\n    startTime = cancelTime = null;\n  };\n  const finish = () => {\n    playState = \"finished\";\n    onComplete && onComplete();\n    stopAnimationDriver();\n    resolveFinishedPromise();\n  };\n  const play = () => {\n    if (hasStopped)\n      return;\n    if (!animationDriver)\n      animationDriver = driver(tick);\n    const now = animationDriver.now();\n    onPlay && onPlay();\n    if (holdTime !== null) {\n      startTime = now - holdTime;\n    } else if (!startTime || playState === \"finished\") {\n      startTime = now;\n    }\n    if (playState === \"finished\") {\n      updateFinishedPromise();\n    }\n    cancelTime = startTime;\n    holdTime = null;\n    playState = \"running\";\n    animationDriver.start();\n  };\n  if (autoplay) {\n    play();\n  }\n  const controls = {\n    then(resolve, reject) {\n      return currentFinishedPromise.then(resolve, reject);\n    },\n    get time() {\n      return millisecondsToSeconds(currentTime);\n    },\n    set time(newTime) {\n      newTime = secondsToMilliseconds(newTime);\n      currentTime = newTime;\n      if (holdTime !== null || !animationDriver || speed === 0) {\n        holdTime = newTime;\n      } else {\n        startTime = animationDriver.now() - newTime / speed;\n      }\n    },\n    get duration() {\n      const duration = generator.calculatedDuration === null ? calcGeneratorDuration(generator) : generator.calculatedDuration;\n      return millisecondsToSeconds(duration);\n    },\n    get speed() {\n      return speed;\n    },\n    set speed(newSpeed) {\n      if (newSpeed === speed || !animationDriver)\n        return;\n      speed = newSpeed;\n      controls.time = millisecondsToSeconds(currentTime);\n    },\n    get state() {\n      return playState;\n    },\n    play,\n    pause: () => {\n      playState = \"paused\";\n      holdTime = currentTime;\n    },\n    stop: () => {\n      hasStopped = true;\n      if (playState === \"idle\")\n        return;\n      playState = \"idle\";\n      onStop && onStop();\n      cancel();\n    },\n    cancel: () => {\n      if (cancelTime !== null)\n        tick(cancelTime);\n      cancel();\n    },\n    complete: () => {\n      playState = \"finished\";\n    },\n    sample: (elapsed) => {\n      startTime = 0;\n      return tick(elapsed);\n    }\n  };\n  return controls;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/array.mjs\nfunction 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}\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\n// ../../../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs\nvar SubscriptionManager = class {\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      this.subscriptions[0](a, b, c);\n    } else {\n      for (let i = 0; i < numSubscriptions; i++) {\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\n// ../../../node_modules/framer-motion/dist/es/value/index.mjs\nvar isFloat = (value) => {\n  return !isNaN(parseFloat(value));\n};\nvar collectMotionValues = {\n  current: void 0\n};\nvar MotionValue = class {\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    this.version = \"10.16.16\";\n    this.timeDelta = 0;\n    this.lastUpdated = 0;\n    this.canTrackVelocity = false;\n    this.events = {};\n    this.updateAndNotify = (v, render = true) => {\n      this.prev = this.current;\n      this.current = v;\n      const { delta, timestamp } = frameData;\n      if (this.lastUpdated !== timestamp) {\n        this.timeDelta = delta;\n        this.lastUpdated = timestamp;\n        frame.postRender(this.scheduleVelocityCheck);\n      }\n      if (this.prev !== this.current && this.events.change) {\n        this.events.change.notify(this.current);\n      }\n      if (this.events.velocityChange) {\n        this.events.velocityChange.notify(this.getVelocity());\n      }\n      if (render && this.events.renderRequest) {\n        this.events.renderRequest.notify(this.current);\n      }\n    };\n    this.scheduleVelocityCheck = () => frame.postRender(this.velocityCheck);\n    this.velocityCheck = ({ timestamp }) => {\n      if (timestamp !== this.lastUpdated) {\n        this.prev = this.current;\n        if (this.events.velocityChange) {\n          this.events.velocityChange.notify(this.getVelocity());\n        }\n      }\n    };\n    this.hasAnimated = false;\n    this.prev = this.current = init;\n    this.canTrackVelocity = isFloat(this.current);\n    this.owner = options.owner;\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 <motion.div style={{ x }} />\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 (false) {\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        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    } else {\n      this.passiveEffect(v, this.updateAndNotify);\n    }\n  }\n  setWithVelocity(prev, current, delta) {\n    this.set(current);\n    this.prev = prev;\n    this.timeDelta = 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) {\n    this.updateAndNotify(v);\n    this.prev = v;\n    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    return this.canTrackVelocity ? (\n      // These casts could be avoided if parseFloat would be typed better\n      velocityPerSecond(parseFloat(this.current) - parseFloat(this.prev), this.timeDelta)\n    ) : 0;\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\n// ../../../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs\nvar isNumericalString = (v) => /^\\-?\\d*\\.?\\d+$/.test(v);\n\n// ../../../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs\nvar isZeroValueString = (v) => /^0[^.\\s]+$/.test(v);\n\n// ../../../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs\nvar maxDefaults = /* @__PURE__ */ 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 [number2] = value.match(floatRegex) || [];\n  if (!number2)\n    return v;\n  const unit = value.replace(number2, \"\");\n  let defaultValue = maxDefaults.has(name) ? 1 : 0;\n  if (number2 !== value)\n    defaultValue *= 100;\n  return name + \"(\" + defaultValue + unit + \")\";\n}\nvar functionRegex = /([a-z-]*)\\(.*?\\)/g;\nvar filter = {\n  ...complex,\n  getAnimatableNone: (v) => {\n    const functions = v.match(functionRegex);\n    return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs\nvar int = {\n  ...number,\n  transform: Math.round\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs\nvar 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  // SVG\n  fillOpacity: alpha,\n  strokeOpacity: alpha,\n  numOctaves: int\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs\nvar 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};\nvar getDefaultValueType = (key) => defaultValueTypes[key];\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs\nfunction getAnimatableNone2(key, value) {\n  let defaultValueType = getDefaultValueType(key);\n  if (defaultValueType !== filter)\n    defaultValueType = complex;\n  return defaultValueType.getAnimatableNone ? defaultValueType.getAnimatableNone(value) : void 0;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs\nvar testValueType = (v) => (type) => type.test(v);\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs\nvar auto = {\n  test: (v) => v === \"auto\",\n  parse: (v) => v\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\nvar findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs\nvar valueTypes = [...dimensionValueTypes, color, complex];\nvar findValueType = (v) => valueTypes.find(testValueType(v));\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs\nfunction getCurrent(visualElement) {\n  const current = {};\n  visualElement.values.forEach((value, key) => current[key] = value.get());\n  return current;\n}\nfunction getVelocity(visualElement) {\n  const velocity = {};\n  visualElement.values.forEach((value, key) => velocity[key] = value.getVelocity());\n  return velocity;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n  const props = visualElement.getProps();\n  return resolveVariantFromProps(props, definition, custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/setters.mjs\nfunction setMotionValue(visualElement, key, value) {\n  if (visualElement.hasValue(key)) {\n    visualElement.getValue(key).set(value);\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 ? visualElement.makeTargetAnimatable(resolved, false) : {};\n  target = { ...target, ...transitionEnd };\n  for (const key in target) {\n    const value = resolveFinalValueInKeyframes(target[key]);\n    setMotionValue(visualElement, key, value);\n  }\n}\nfunction setVariants(visualElement, variantLabels) {\n  const reversedLabels = [...variantLabels].reverse();\n  reversedLabels.forEach((key) => {\n    const variant = visualElement.getVariant(key);\n    variant && setTarget(visualElement, variant);\n    if (visualElement.variantChildren) {\n      visualElement.variantChildren.forEach((child) => {\n        setVariants(child, variantLabels);\n      });\n    }\n  });\n}\nfunction setValues(visualElement, definition) {\n  if (Array.isArray(definition)) {\n    return setVariants(visualElement, definition);\n  } else if (typeof definition === \"string\") {\n    return setVariants(visualElement, [definition]);\n  } else {\n    setTarget(visualElement, definition);\n  }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n  var _a, _b;\n  const newValueKeys = Object.keys(target).filter((key) => !visualElement.hasValue(key));\n  const numNewValues = newValueKeys.length;\n  if (!numNewValues)\n    return;\n  for (let i = 0; i < numNewValues; i++) {\n    const key = newValueKeys[i];\n    const targetValue = target[key];\n    let value = null;\n    if (Array.isArray(targetValue)) {\n      value = targetValue[0];\n    }\n    if (value === null) {\n      value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n    }\n    if (value === void 0 || value === null)\n      continue;\n    if (typeof value === \"string\" && (isNumericalString(value) || isZeroValueString(value))) {\n      value = parseFloat(value);\n    } else if (!findValueType(value) && complex.test(targetValue)) {\n      value = getAnimatableNone2(key, targetValue);\n    }\n    visualElement.addValue(key, motionValue(value, { owner: visualElement }));\n    if (origin[key] === void 0) {\n      origin[key] = value;\n    }\n    if (value !== null)\n      visualElement.setBaseTarget(key, value);\n  }\n}\nfunction getOriginFromTransition(key, transition) {\n  if (!transition)\n    return;\n  const valueTransition = transition[key] || transition[\"default\"] || transition;\n  return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n  const origin = {};\n  for (const key in target) {\n    const transitionOrigin = getOriginFromTransition(key, transition);\n    if (transitionOrigin !== void 0) {\n      origin[key] = transitionOrigin;\n    } else {\n      const value = visualElement.getValue(key);\n      if (value) {\n        origin[key] = value.get();\n      }\n    }\n  }\n  return origin;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs\nvar instantAnimationState = {\n  current: false\n};\n\n// ../../../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs\nvar isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\n// ../../../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs\nfunction isWaapiSupportedEasing(easing) {\n  return Boolean(!easing || typeof easing === \"string\" && supportedWaapiEasing[easing] || isBezierDefinition(easing) || Array.isArray(easing) && easing.every(isWaapiSupportedEasing));\n}\nvar cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nvar 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 mapEasingToNativeEasing(easing) {\n  if (!easing)\n    return void 0;\n  return isBezierDefinition(easing) ? cubicBezierAsString(easing) : Array.isArray(easing) ? easing.map(mapEasingToNativeEasing) : supportedWaapiEasing[easing];\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs\nfunction animateStyle(element, valueName, keyframes2, { delay: delay2 = 0, duration, repeat = 0, repeatType = \"loop\", ease: ease2, times } = {}) {\n  const keyframeOptions = { [valueName]: keyframes2 };\n  if (times)\n    keyframeOptions.offset = times;\n  const easing = mapEasingToNativeEasing(ease2);\n  if (Array.isArray(easing))\n    keyframeOptions.easing = easing;\n  return element.animate(keyframeOptions, {\n    delay: delay2,\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\n// ../../../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs\nfunction getFinalKeyframe(keyframes2, { repeat, repeatType = \"loop\" }) {\n  const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1 ? 0 : keyframes2.length - 1;\n  return keyframes2[index];\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/memo.mjs\nfunction memo(callback) {\n  let result;\n  return () => {\n    if (result === void 0)\n      result = callback();\n    return result;\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/animators/waapi/create-accelerated-animation.mjs\nvar supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nvar acceleratedValues = /* @__PURE__ */ new Set([\n  \"opacity\",\n  \"clipPath\",\n  \"filter\",\n  \"transform\",\n  \"backgroundColor\"\n]);\nvar sampleDelta = 10;\nvar maxDuration2 = 2e4;\nvar requiresPregeneratedKeyframes = (valueName, options) => options.type === \"spring\" || valueName === \"backgroundColor\" || !isWaapiSupportedEasing(options.ease);\nfunction createAcceleratedAnimation(value, valueName, { onUpdate, onComplete, ...options }) {\n  const canAccelerateAnimation = supportsWaapi() && acceleratedValues.has(valueName) && !options.repeatDelay && options.repeatType !== \"mirror\" && options.damping !== 0 && options.type !== \"inertia\";\n  if (!canAccelerateAnimation)\n    return false;\n  let hasStopped = false;\n  let resolveFinishedPromise;\n  let currentFinishedPromise;\n  const updateFinishedPromise = () => {\n    currentFinishedPromise = new Promise((resolve) => {\n      resolveFinishedPromise = resolve;\n    });\n  };\n  updateFinishedPromise();\n  let { keyframes: keyframes2, duration = 300, ease: ease2, times } = options;\n  if (requiresPregeneratedKeyframes(valueName, options)) {\n    const sampleAnimation = animateValue({\n      ...options,\n      repeat: 0,\n      delay: 0\n    });\n    let state = { done: false, value: keyframes2[0] };\n    const pregeneratedKeyframes = [];\n    let t = 0;\n    while (!state.done && t < maxDuration2) {\n      state = sampleAnimation.sample(t);\n      pregeneratedKeyframes.push(state.value);\n      t += sampleDelta;\n    }\n    times = void 0;\n    keyframes2 = pregeneratedKeyframes;\n    duration = t - sampleDelta;\n    ease2 = \"linear\";\n  }\n  const animation = animateStyle(value.owner.current, valueName, keyframes2, {\n    ...options,\n    duration,\n    /**\n     * This function is currently not called if ease is provided\n     * as a function so the cast is safe.\n     *\n     * However it would be possible for a future refinement to port\n     * in easing pregeneration from Motion One for browsers that\n     * support the upcoming `linear()` easing function.\n     */\n    ease: ease2,\n    times\n  });\n  const cancelAnimation = () => animation.cancel();\n  const safeCancel = () => {\n    frame.update(cancelAnimation);\n    resolveFinishedPromise();\n    updateFinishedPromise();\n  };\n  animation.onfinish = () => {\n    value.set(getFinalKeyframe(keyframes2, options));\n    onComplete && onComplete();\n    safeCancel();\n  };\n  const controls = {\n    then(resolve, reject) {\n      return currentFinishedPromise.then(resolve, reject);\n    },\n    attachTimeline(timeline) {\n      animation.timeline = timeline;\n      animation.onfinish = null;\n      return noop;\n    },\n    get time() {\n      return millisecondsToSeconds(animation.currentTime || 0);\n    },\n    set time(newTime) {\n      animation.currentTime = secondsToMilliseconds(newTime);\n    },\n    get speed() {\n      return animation.playbackRate;\n    },\n    set speed(newSpeed) {\n      animation.playbackRate = newSpeed;\n    },\n    get duration() {\n      return millisecondsToSeconds(duration);\n    },\n    play: () => {\n      if (hasStopped)\n        return;\n      animation.play();\n      cancelFrame(cancelAnimation);\n    },\n    pause: () => animation.pause(),\n    stop: () => {\n      hasStopped = true;\n      if (animation.playState === \"idle\")\n        return;\n      const { currentTime } = animation;\n      if (currentTime) {\n        const sampleAnimation = animateValue({\n          ...options,\n          autoplay: false\n        });\n        value.setWithVelocity(sampleAnimation.sample(currentTime - sampleDelta).value, sampleAnimation.sample(currentTime).value, sampleDelta);\n      }\n      safeCancel();\n    },\n    complete: () => animation.finish(),\n    cancel: safeCancel\n  };\n  return controls;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/animators/instant.mjs\nfunction createInstantAnimation({ keyframes: keyframes2, delay: delay2, onUpdate, onComplete }) {\n  const setValue = () => {\n    onUpdate && onUpdate(keyframes2[keyframes2.length - 1]);\n    onComplete && onComplete();\n    return {\n      time: 0,\n      speed: 1,\n      duration: 0,\n      play: noop,\n      pause: noop,\n      stop: noop,\n      then: (resolve) => {\n        resolve();\n        return Promise.resolve();\n      },\n      cancel: noop,\n      complete: noop\n    };\n  };\n  return delay2 ? animateValue({\n    keyframes: [0, 1],\n    duration: 0,\n    delay: delay2,\n    onComplete: setValue\n  }) : setValue();\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs\nvar underDampedSpring = {\n  type: \"spring\",\n  stiffness: 500,\n  damping: 25,\n  restSpeed: 10\n};\nvar criticallyDampedSpring = (target) => ({\n  type: \"spring\",\n  stiffness: 550,\n  damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n  restSpeed: 10\n});\nvar keyframesTransition = {\n  type: \"keyframes\",\n  duration: 0.8\n};\nvar ease = {\n  type: \"keyframes\",\n  ease: [0.25, 0.1, 0.35, 1],\n  duration: 0.3\n};\nvar getDefaultTransition = (valueKey, { keyframes: keyframes2 }) => {\n  if (keyframes2.length > 2) {\n    return keyframesTransition;\n  } else if (transformProps.has(valueKey)) {\n    return valueKey.startsWith(\"scale\") ? criticallyDampedSpring(keyframes2[1]) : underDampedSpring;\n  }\n  return ease;\n};\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs\nvar isAnimatable = (key, value) => {\n  if (key === \"zIndex\")\n    return false;\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(\")) {\n    return true;\n  }\n  return false;\n};\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs\nfunction isNone(value) {\n  if (typeof value === \"number\") {\n    return value === 0;\n  } else if (value !== null) {\n    return value === \"none\" || value === \"0\" || isZeroValueString(value);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/keyframes.mjs\nfunction getKeyframes(value, valueName, target, transition) {\n  const isTargetAnimatable = isAnimatable(valueName, target);\n  let keyframes2;\n  if (Array.isArray(target)) {\n    keyframes2 = [...target];\n  } else {\n    keyframes2 = [null, target];\n  }\n  const defaultOrigin = transition.from !== void 0 ? transition.from : value.get();\n  let animatableTemplateValue = void 0;\n  const noneKeyframeIndexes = [];\n  for (let i = 0; i < keyframes2.length; i++) {\n    if (keyframes2[i] === null) {\n      keyframes2[i] = i === 0 ? defaultOrigin : keyframes2[i - 1];\n    }\n    if (isNone(keyframes2[i])) {\n      noneKeyframeIndexes.push(i);\n    }\n    if (typeof keyframes2[i] === \"string\" && keyframes2[i] !== \"none\" && keyframes2[i] !== \"0\") {\n      animatableTemplateValue = keyframes2[i];\n    }\n  }\n  if (isTargetAnimatable && noneKeyframeIndexes.length && animatableTemplateValue) {\n    for (let i = 0; i < noneKeyframeIndexes.length; i++) {\n      const index = noneKeyframeIndexes[i];\n      keyframes2[index] = getAnimatableNone2(valueName, animatableTemplateValue);\n    }\n  }\n  return keyframes2;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs\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] || transition[\"default\"] || transition;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs\nvar animateMotionValue = (valueName, value, target, transition = {}) => {\n  return (onComplete) => {\n    const valueTransition = getValueTransition(transition, valueName) || {};\n    const delay2 = valueTransition.delay || transition.delay || 0;\n    let { elapsed = 0 } = transition;\n    elapsed = elapsed - secondsToMilliseconds(delay2);\n    const keyframes2 = getKeyframes(value, valueName, target, valueTransition);\n    const originKeyframe = keyframes2[0];\n    const targetKeyframe = keyframes2[keyframes2.length - 1];\n    const isOriginAnimatable = isAnimatable(valueName, originKeyframe);\n    const isTargetAnimatable = isAnimatable(valueName, targetKeyframe);\n    warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${valueName} 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    let options = {\n      keyframes: keyframes2,\n      velocity: value.getVelocity(),\n      ease: \"easeOut\",\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    };\n    if (!isTransitionDefined(valueTransition)) {\n      options = {\n        ...options,\n        ...getDefaultTransition(valueName, options)\n      };\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 (!isOriginAnimatable || !isTargetAnimatable || instantAnimationState.current || valueTransition.type === false) {\n      return createInstantAnimation(instantAnimationState.current ? { ...options, delay: 0 } : options);\n    }\n    if (\n      /**\n       * 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      !transition.isHandoff && value.owner && value.owner.current instanceof HTMLElement && /**\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      !value.owner.getProps().onUpdate\n    ) {\n      const acceleratedAnimation = createAcceleratedAnimation(value, valueName, options);\n      if (acceleratedAnimation)\n        return acceleratedAnimation;\n    }\n    return animateValue(options);\n  };\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs\nfunction isWillChangeMotionValue(value) {\n  return Boolean(isMotionValue(value) && value.add);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n  const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n  needsAnimating[key] = false;\n  return shouldBlock;\n}\nfunction hasKeyframesChanged(value, target) {\n  const current = value.get();\n  if (Array.isArray(target)) {\n    for (let i = 0; i < target.length; i++) {\n      if (target[i] !== current)\n        return true;\n    }\n  } else {\n    return current !== target;\n  }\n}\nfunction animateTarget(visualElement, definition, { delay: delay2 = 0, transitionOverride, type } = {}) {\n  let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = visualElement.makeTargetAnimatable(definition);\n  const willChange = visualElement.getValue(\"willChange\");\n  if (transitionOverride)\n    transition = transitionOverride;\n  const animations2 = [];\n  const animationTypeState = type && visualElement.animationState && visualElement.animationState.getState()[type];\n  for (const key in target) {\n    const value = visualElement.getValue(key);\n    const valueTarget = target[key];\n    if (!value || valueTarget === void 0 || animationTypeState && shouldBlockAnimation(animationTypeState, key)) {\n      continue;\n    }\n    const valueTransition = {\n      delay: delay2,\n      elapsed: 0,\n      ...getValueTransition(transition || {}, key)\n    };\n    if (window.HandoffAppearAnimations) {\n      const appearId = visualElement.getProps()[optimizedAppearDataAttribute];\n      if (appearId) {\n        const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n        if (elapsed !== null) {\n          valueTransition.elapsed = elapsed;\n          valueTransition.isHandoff = true;\n        }\n      }\n    }\n    let canSkip = !valueTransition.isHandoff && !hasKeyframesChanged(value, valueTarget);\n    if (valueTransition.type === \"spring\" && (value.getVelocity() || valueTransition.velocity)) {\n      canSkip = false;\n    }\n    if (value.animation) {\n      canSkip = false;\n    }\n    if (canSkip)\n      continue;\n    value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key) ? { type: false } : valueTransition));\n    const animation = value.animation;\n    if (isWillChangeMotionValue(willChange)) {\n      willChange.add(key);\n      animation.then(() => willChange.remove(key));\n    }\n    animations2.push(animation);\n  }\n  if (transitionEnd) {\n    Promise.all(animations2).then(() => {\n      transitionEnd && setTarget(visualElement, transitionEnd);\n    });\n  }\n  return animations2;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs\nfunction animateVariant(visualElement, variant, options = {}) {\n  const resolved = resolveVariant(visualElement, variant, options.custom);\n  let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n  if (options.transitionOverride) {\n    transition = options.transitionOverride;\n  }\n  const getAnimation = resolved ? () => Promise.all(animateTarget(visualElement, resolved, options)) : () => Promise.resolve();\n  const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size ? (forwardDelay = 0) => {\n    const { delayChildren = 0, staggerChildren, staggerDirection } = transition;\n    return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n  } : () => Promise.resolve();\n  const { when } = transition;\n  if (when) {\n    const [first, last] = when === \"beforeChildren\" ? [getAnimation, getChildAnimations] : [getChildAnimations, getAnimation];\n    return first().then(() => last());\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 animations2 = [];\n  const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n  const generateStaggerDuration = staggerDirection === 1 ? (i = 0) => i * staggerChildren : (i = 0) => maxStaggerDuration - i * staggerChildren;\n  Array.from(visualElement.variantChildren).sort(sortByTreeOrder).forEach((child, i) => {\n    child.notify(\"AnimationStart\", variant);\n    animations2.push(animateVariant(child, variant, {\n      ...options,\n      delay: delayChildren + generateStaggerDuration(i)\n    }).then(() => child.notify(\"AnimationComplete\", variant)));\n  });\n  return Promise.all(animations2);\n}\nfunction sortByTreeOrder(a, b) {\n  return a.sortNodePosition(b);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs\nfunction animateVisualElement(visualElement, definition, options = {}) {\n  visualElement.notify(\"AnimationStart\", definition);\n  let animation;\n  if (Array.isArray(definition)) {\n    const animations2 = definition.map((variant) => animateVariant(visualElement, variant, options));\n    animation = Promise.all(animations2);\n  } else if (typeof definition === \"string\") {\n    animation = animateVariant(visualElement, definition, options);\n  } else {\n    const resolvedDefinition = typeof definition === \"function\" ? resolveVariant(visualElement, definition, options.custom) : definition;\n    animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n  }\n  return animation.then(() => visualElement.notify(\"AnimationComplete\", definition));\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs\nfunction 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\n// ../../../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs\nvar reversePriorityOrder = [...variantPriorityOrder].reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n  return (animations2) => Promise.all(animations2.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n  let animate2 = animateList(visualElement);\n  const state = createState();\n  let isInitialRender = true;\n  const buildResolvedTypeValues = (acc, definition) => {\n    const resolved = resolveVariant(visualElement, definition);\n    if (resolved) {\n      const { transition, transitionEnd, ...target } = resolved;\n      acc = { ...acc, ...target, ...transitionEnd };\n    }\n    return acc;\n  };\n  function setAnimateFunction(makeAnimator) {\n    animate2 = makeAnimator(visualElement);\n  }\n  function animateChanges(options, changedActiveType) {\n    const props = visualElement.getProps();\n    const context = visualElement.getVariantContext(true) || {};\n    const animations2 = [];\n    const removedKeys = /* @__PURE__ */ new Set();\n    let encounteredKeys = {};\n    let removedVariantIndex = Infinity;\n    for (let i = 0; i < numAnimationTypes; i++) {\n      const type = reversePriorityOrder[i];\n      const typeState = state[type];\n      const prop = props[type] !== void 0 ? props[type] : context[type];\n      const propIsVariant = isVariantLabel(prop);\n      const activeDelta = type === changedActiveType ? typeState.isActive : null;\n      if (activeDelta === false)\n        removedVariantIndex = i;\n      let isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n      if (isInherited && isInitialRender && visualElement.manuallyAnimateOnMount) {\n        isInherited = false;\n      }\n      typeState.protectedKeys = { ...encounteredKeys };\n      if (\n        // If it isn't active and hasn't *just* been set as inactive\n        !typeState.isActive && activeDelta === null || // If we didn't and don't have any defined prop for this animation type\n        !prop && !typeState.prevProp || // Or if the prop doesn't define an animation\n        isAnimationControls(prop) || typeof prop === \"boolean\"\n      ) {\n        continue;\n      }\n      const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n      let shouldAnimateType = variantDidChange || // If we're making this variant active, we want to always make it active\n      type === changedActiveType && typeState.isActive && !isInherited && propIsVariant || // If we removed a higher-priority variant (i is in reverse order)\n      i > removedVariantIndex && propIsVariant;\n      const definitionList = Array.isArray(prop) ? prop : [prop];\n      let resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n      if (activeDelta === false)\n        resolvedValues = {};\n      const { prevResolvedValues = {} } = typeState;\n      const allKeys = {\n        ...prevResolvedValues,\n        ...resolvedValues\n      };\n      const markToAnimate = (key) => {\n        shouldAnimateType = true;\n        removedKeys.delete(key);\n        typeState.needsAnimating[key] = true;\n      };\n      for (const key in allKeys) {\n        const next = resolvedValues[key];\n        const prev = prevResolvedValues[key];\n        if (encounteredKeys.hasOwnProperty(key))\n          continue;\n        if (next !== prev) {\n          if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n            if (!shallowCompare(next, prev) || variantDidChange) {\n              markToAnimate(key);\n            } else {\n              typeState.protectedKeys[key] = true;\n            }\n          } else if (next !== void 0) {\n            markToAnimate(key);\n          } else {\n            removedKeys.add(key);\n          }\n        } else if (next !== void 0 && removedKeys.has(key)) {\n          markToAnimate(key);\n        } else {\n          typeState.protectedKeys[key] = true;\n        }\n      }\n      typeState.prevProp = prop;\n      typeState.prevResolvedValues = resolvedValues;\n      if (typeState.isActive) {\n        encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n      }\n      if (isInitialRender && visualElement.blockInitialAnimation) {\n        shouldAnimateType = false;\n      }\n      if (shouldAnimateType && !isInherited) {\n        animations2.push(...definitionList.map((animation) => ({\n          animation,\n          options: { type, ...options }\n        })));\n      }\n    }\n    if (removedKeys.size) {\n      const fallbackAnimation = {};\n      removedKeys.forEach((key) => {\n        const fallbackTarget = visualElement.getBaseTarget(key);\n        if (fallbackTarget !== void 0) {\n          fallbackAnimation[key] = fallbackTarget;\n        }\n      });\n      animations2.push({ animation: fallbackAnimation });\n    }\n    let shouldAnimate = Boolean(animations2.length);\n    if (isInitialRender && (props.initial === false || props.initial === props.animate) && !visualElement.manuallyAnimateOnMount) {\n      shouldAnimate = false;\n    }\n    isInitialRender = false;\n    return shouldAnimate ? animate2(animations2) : Promise.resolve();\n  }\n  function setActive(type, isActive, options) {\n    var _a;\n    if (state[type].isActive === isActive)\n      return Promise.resolve();\n    (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => {\n      var _a2;\n      return (_a2 = child.animationState) === null || _a2 === void 0 ? void 0 : _a2.setActive(type, isActive);\n    });\n    state[type].isActive = isActive;\n    const animations2 = animateChanges(options, type);\n    for (const key in state) {\n      state[key].protectedKeys = {};\n    }\n    return animations2;\n  }\n  return {\n    animateChanges,\n    setActive,\n    setAnimateFunction,\n    getState: () => state\n  };\n}\nfunction checkVariantsDidChange(prev, next) {\n  if (typeof next === \"string\") {\n    return next !== prev;\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\n// ../../../node_modules/framer-motion/dist/es/motion/features/Feature.mjs\nvar Feature = class {\n  constructor(node) {\n    this.isMounted = false;\n    this.node = node;\n  }\n  update() {\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\nvar AnimationFeature = class 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: animate2 } = this.node.getProps();\n    this.unmount();\n    if (isAnimationControls(animate2)) {\n      this.unmount = animate2.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: animate2 } = this.node.getProps();\n    const { animate: prevAnimate } = this.node.prevProps || {};\n    if (animate2 !== prevAnimate) {\n      this.updateAnimationControlsSubscription();\n    }\n  }\n  unmount() {\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\nvar id = 0;\nvar ExitAnimationFeature = class extends Feature {\n  constructor() {\n    super(...arguments);\n    this.id = id++;\n  }\n  update() {\n    if (!this.node.presenceContext)\n      return;\n    const { isPresent: isPresent2, onExitComplete, custom } = this.node.presenceContext;\n    const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n    if (!this.node.animationState || isPresent2 === prevIsPresent) {\n      return;\n    }\n    const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent2, { custom: custom !== null && custom !== void 0 ? custom : this.node.getProps().custom });\n    if (onExitComplete && !isPresent2) {\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};\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/animations.mjs\nvar animations = {\n  animation: {\n    Feature: AnimationFeature\n  },\n  exit: {\n    Feature: ExitAnimationFeature\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/utils/distance.mjs\nvar distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\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\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs\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 = mix(source.min, source.max, delta.origin);\n  delta.scale = calcLength(target) / calcLength(source);\n  if (isNear(delta.scale, 1, 1e-4) || isNaN(delta.scale))\n    delta.scale = 1;\n  delta.translate = mix(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 : void 0);\n  calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : void 0);\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, layout2, parent) {\n  target.min = layout2.min - parent.min;\n  target.max = target.min + calcLength(layout2);\n}\nfunction calcRelativePosition(target, layout2, parent) {\n  calcRelativeAxisPosition(target.x, layout2.x, parent.x);\n  calcRelativeAxisPosition(target.y, layout2.y, parent.y);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/models.mjs\nvar createAxisDelta = () => ({\n  translate: 0,\n  scale: 1,\n  origin: 0,\n  originPoint: 0\n});\nvar createDelta = () => ({\n  x: createAxisDelta(),\n  y: createAxisDelta()\n});\nvar createAxis = () => ({ min: 0, max: 0 });\nvar createBox = () => ({\n  x: createAxis(),\n  y: createAxis()\n});\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\nimport { useContext as useContext5, useId, useEffect as useEffect3 } from \"react\";\nfunction usePresence() {\n  const context = useContext5(PresenceContext);\n  if (context === null)\n    return [true, null];\n  const { isPresent: isPresent2, onExitComplete, register } = context;\n  const id4 = useId();\n  useEffect3(() => register(id4), []);\n  const safeToRemove = () => onExitComplete && onExitComplete(id4);\n  return !isPresent2 && onExitComplete ? [false, safeToRemove] : [true];\n}\nfunction useIsPresent() {\n  return isPresent(useContext5(PresenceContext));\n}\nfunction isPresent(context) {\n  return context === null ? true : context.isPresent;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs\nvar compareByDepth = (a, b) => a.depth - b.depth;\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs\nvar FlatTree = class {\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\n// ../../../node_modules/framer-motion/dist/es/utils/delay.mjs\nfunction delay(callback, timeout) {\n  const start = performance.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\n// ../../../node_modules/framer-motion/dist/es/render/store.mjs\nvar visualElementStore = /* @__PURE__ */ new WeakMap();\n\n// ../../../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs\nvar prefersReducedMotion = { current: null };\nvar hasReducedMotionListener = { current: false };\n\n// ../../../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs\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  } else {\n    prefersReducedMotion.current = false;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs\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      element.addValue(key, nextValue);\n      if (isWillChangeMotionValue(willChange)) {\n        willChange.add(key);\n      }\n      if (false) {\n        warnOnce(nextValue.version === \"10.16.16\", `Attempting to mix Framer Motion versions ${nextValue.version} with 10.16.16 may not work as expected.`);\n      }\n    } else if (isMotionValue(prevValue)) {\n      element.addValue(key, motionValue(nextValue, { owner: element }));\n      if (isWillChangeMotionValue(willChange)) {\n        willChange.remove(key);\n      }\n    } else if (prevValue !== nextValue) {\n      if (element.hasValue(key)) {\n        const existingValue = element.getValue(key);\n        !existingValue.hasAnimated && existingValue.set(nextValue);\n      } else {\n        const latestValue = element.getStaticValue(key);\n        element.addValue(key, motionValue(latestValue !== void 0 ? latestValue : nextValue, { owner: element }));\n      }\n    }\n  }\n  for (const key in prev) {\n    if (next[key] === void 0)\n      element.removeValue(key);\n  }\n  return next;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/VisualElement.mjs\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\nvar propEventHandlers = [\n  \"AnimationStart\",\n  \"AnimationComplete\",\n  \"Update\",\n  \"BeforeLayoutMeasure\",\n  \"LayoutMeasure\",\n  \"LayoutAnimationStart\",\n  \"LayoutAnimationComplete\"\n];\nvar numVariantProps = variantProps.length;\nvar VisualElement = class {\n  constructor({ parent, props, presenceContext, reducedMotionConfig, visualState }, options = {}) {\n    this.current = null;\n    this.children = /* @__PURE__ */ new Set();\n    this.isVariantNode = false;\n    this.isControllingVariants = false;\n    this.shouldReduceMotion = null;\n    this.values = /* @__PURE__ */ new Map();\n    this.features = {};\n    this.valueSubscriptions = /* @__PURE__ */ new Map();\n    this.prevMotionValues = {};\n    this.events = {};\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.isControllingVariants = isControllingVariants(props);\n    this.isVariantNode = isVariantNode(props);\n    if (this.isVariantNode) {\n      this.variantChildren = /* @__PURE__ */ new Set();\n    }\n    this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n    const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {});\n    for (const key in initialMotionValues) {\n      const value = initialMotionValues[key];\n      if (latestValues[key] !== void 0 && isMotionValue(value)) {\n        value.set(latestValues[key], false);\n        if (isWillChangeMotionValue(willChange)) {\n          willChange.add(key);\n        }\n      }\n    }\n  }\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) {\n    return {};\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 = this.reducedMotionConfig === \"never\" ? false : this.reducedMotionConfig === \"always\" ? true : prefersReducedMotion.current;\n    if (false) {\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      this.features[key].unmount();\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.update(this.notifyUpdate, false, true);\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    });\n  }\n  sortNodePosition(other) {\n    if (!this.current || !this.sortInstanceNodePosition || this.type !== other.type) {\n      return 0;\n    }\n    return this.sortInstanceNodePosition(this.current, other.current);\n  }\n  loadFeatures({ children, ...renderedProps }, isStrict, preloadedFeatures2, initialLayoutGroupConfig) {\n    let ProjectionNodeConstructor;\n    let MeasureLayout2;\n    if (false) {\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      renderedProps.ignoreStrict ? warning(false, strictMessage) : invariant(false, strictMessage);\n    }\n    for (let i = 0; i < numFeatures; i++) {\n      const name = featureNames[i];\n      const { isEnabled, Feature: FeatureConstructor, ProjectionNode, MeasureLayout: MeasureLayoutComponent } = featureDefinitions[name];\n      if (ProjectionNode)\n        ProjectionNodeConstructor = ProjectionNode;\n      if (isEnabled(renderedProps)) {\n        if (!this.features[name] && FeatureConstructor) {\n          this.features[name] = new FeatureConstructor(this);\n        }\n        if (MeasureLayoutComponent) {\n          MeasureLayout2 = MeasureLayoutComponent;\n        }\n      }\n    }\n    if (!this.projection && ProjectionNodeConstructor) {\n      this.projection = new ProjectionNodeConstructor(this.latestValues, this.parent && this.parent.projection);\n      const { layoutId, layout: layout2, drag: drag2, dragConstraints, layoutScroll, layoutRoot } = renderedProps;\n      this.projection.setOptions({\n        layoutId,\n        layout: layout2,\n        alwaysMeasureLayout: Boolean(drag2) || dragConstraints && isRefObject(dragConstraints),\n        visualElement: this,\n        scheduleRender: () => this.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 layout2 === \"string\" ? layout2 : \"both\",\n        initialPromotionConfig: initialLayoutGroupConfig,\n        layoutScroll,\n        layoutRoot\n      });\n    }\n    return MeasureLayout2;\n  }\n  updateFeatures() {\n    for (const key in this.features) {\n      const feature = this.features[key];\n      if (feature.isMounted) {\n        feature.update();\n      } else {\n        feature.mount();\n        feature.isMounted = true;\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 ? this.measureInstanceViewportBox(this.current, this.props) : createBox();\n  }\n  getStaticValue(key) {\n    return this.latestValues[key];\n  }\n  setStaticValue(key, value) {\n    this.latestValues[key] = value;\n  }\n  /**\n   * Make a target animatable by Popmotion. For instance, if we're\n   * trying to animate width from 100px to 100vw we need to measure 100vw\n   * in pixels to determine what we really need to animate to. This is also\n   * pluggable to support Framer's custom value types like Color,\n   * and CSS variables.\n   */\n  makeTargetAnimatable(target, canMutate = true) {\n    return this.makeTargetAnimatableFromInstance(target, this.props, canMutate);\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    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 listener = props[\"on\" + key];\n      if (listener) {\n        this.propEventSubscriptions[key] = this.on(key, listener);\n      }\n    }\n    this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps), 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] : void 0;\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 ? this : this.parent ? this.parent.getClosestVariantNode() : void 0;\n  }\n  getVariantContext(startAtParent = false) {\n    if (startAtParent) {\n      return this.parent ? this.parent.getVariantContext() : void 0;\n    }\n    if (!this.isControllingVariants) {\n      const context2 = this.parent ? this.parent.getVariantContext() || {} : {};\n      if (this.props.initial !== void 0) {\n        context2.initial = this.props.initial;\n      }\n      return context2;\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 && 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    if (value !== this.values.get(key)) {\n      this.removeValue(key);\n      this.bindToMotionValue(key, value);\n    }\n    this.values.set(key, value);\n    this.latestValues[key] = value.get();\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 === void 0 && defaultValue !== void 0) {\n      value = motionValue(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) {\n    var _a;\n    return this.latestValues[key] !== void 0 || !this.current ? this.latestValues[key] : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\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    const valueFromInitial = typeof initial === \"string\" || typeof initial === \"object\" ? (_a = resolveVariantFromProps(this.props, initial)) === null || _a === void 0 ? void 0 : _a[key] : void 0;\n    if (initial && valueFromInitial !== void 0) {\n      return valueFromInitial;\n    }\n    const target = this.getBaseTargetFromProps(this.props, key);\n    if (target !== void 0 && !isMotionValue(target))\n      return target;\n    return this.initialValues[key] !== void 0 && valueFromInitial === void 0 ? void 0 : 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\n// ../../../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs\nfunction createMotionProxy(createConfig) {\n  function custom(Component2, customMotionComponentConfig = {}) {\n    return createMotionComponent(createConfig(Component2, customMotionComponentConfig));\n  }\n  if (typeof Proxy === \"undefined\") {\n    return custom;\n  }\n  const componentCache = /* @__PURE__ */ 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      if (!componentCache.has(key)) {\n        componentCache.set(key, custom(key));\n      }\n      return componentCache.get(key);\n    }\n  });\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\nvar 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\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\nfunction isSVGComponent(Component2) {\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 Component2 !== \"string\" || /**\n     * If it contains a dash, the element is a custom HTML webcomponent.\n     */\n    Component2.includes(\"-\")\n  ) {\n    return false;\n  } else if (\n    /**\n     * If it's in our list of lowercase SVG tags, it's an SVG component\n     */\n    lowercaseSVGElements.indexOf(Component2) > -1 || /**\n     * If it contains a capital letter, it's an SVG component\n     */\n    /[A-Z]/.test(Component2)\n  ) {\n    return true;\n  }\n  return false;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/use-render.mjs\nimport { useMemo as useMemo4, createElement as createElement2 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/render/html/use-props.mjs\nimport { useMemo as useMemo2 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs\nfunction isForcedMotionValue(key, { layout: layout2, layoutId }) {\n  return transformProps.has(key) || key.startsWith(\"origin\") || (layout2 || layoutId !== void 0) && (!!scaleCorrectors[key] || key === \"opacity\");\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs\nvar getValueAsType = (value, type) => {\n  return type && typeof value === \"number\" ? type.transform(value) : value;\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n  const { style, vars, transform: transform2, transformOrigin } = state;\n  let hasTransform2 = false;\n  let hasTransformOrigin = false;\n  let transformIsNone = true;\n  for (const key in latestValues) {\n    const value = latestValues[key];\n    if (isCSSVariableName(key)) {\n      vars[key] = value;\n      continue;\n    }\n    const valueType = numberValueTypes[key];\n    const valueAsType = getValueAsType(value, valueType);\n    if (transformProps.has(key)) {\n      hasTransform2 = true;\n      transform2[key] = valueAsType;\n      if (!transformIsNone)\n        continue;\n      if (value !== (valueType.default || 0))\n        transformIsNone = false;\n    } else if (key.startsWith(\"origin\")) {\n      hasTransformOrigin = true;\n      transformOrigin[key] = valueAsType;\n    } else {\n      style[key] = valueAsType;\n    }\n  }\n  if (!latestValues.transform) {\n    if (hasTransform2 || transformTemplate) {\n      style.transform = buildTransform(state.transform, options, transformIsNone, transformTemplate);\n    } else if (style.transform) {\n      style.transform = \"none\";\n    }\n  }\n  if (hasTransformOrigin) {\n    const { originX = \"50%\", originY = \"50%\", originZ = 0 } = transformOrigin;\n    style.transformOrigin = `${originX} ${originY} ${originZ}`;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\nvar createHtmlRenderState = () => ({\n  style: {},\n  transform: {},\n  transformOrigin: {},\n  vars: {}\n});\n\n// ../../../node_modules/framer-motion/dist/es/render/html/use-props.mjs\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 useMemo2(() => {\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  copyRawValuesOnly(style, styleProp, props);\n  Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n  return props.transformValues ? props.transformValues(style) : style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n  const htmlProps = {};\n  const style = useStyle(props, visualState, isStatic);\n  if (props.drag && props.dragListener !== false) {\n    htmlProps.draggable = false;\n    style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = \"none\";\n    style.touchAction = props.drag === true ? \"none\" : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n  }\n  if (props.tabIndex === void 0 && (props.onTap || props.onTapStart || props.whileTap)) {\n    htmlProps.tabIndex = 0;\n  }\n  htmlProps.style = style;\n  return htmlProps;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/use-props.mjs\nimport { useMemo as useMemo3 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs\nfunction calcOrigin(origin, offset, size) {\n  return typeof origin === \"string\" ? origin : px.transform(offset + size * origin);\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\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs\nvar dashKeys = {\n  offset: \"stroke-dashoffset\",\n  array: \"stroke-dasharray\"\n};\nvar camelKeys = {\n  offset: \"strokeDashoffset\",\n  array: \"strokeDasharray\"\n};\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n  attrs.pathLength = 1;\n  const keys2 = useDashCase ? dashKeys : camelKeys;\n  attrs[keys2.offset] = px.transform(-offset);\n  const pathLength = px.transform(length);\n  const pathSpacing = px.transform(spacing);\n  attrs[keys2.array] = `${pathLength} ${pathSpacing}`;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs\nfunction buildSVGAttrs(state, {\n  attrX,\n  attrY,\n  attrScale,\n  originX,\n  originY,\n  pathLength,\n  pathSpacing = 1,\n  pathOffset = 0,\n  // This is object creation, which we try to avoid per-frame.\n  ...latest\n}, options, isSVGTag2, transformTemplate) {\n  buildHTMLStyles(state, latest, options, transformTemplate);\n  if (isSVGTag2) {\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  if (attrs.transform) {\n    if (dimensions)\n      style.transform = attrs.transform;\n    delete attrs.transform;\n  }\n  if (dimensions && (originX !== void 0 || originY !== void 0 || style.transform)) {\n    style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== void 0 ? originX : 0.5, originY !== void 0 ? originY : 0.5);\n  }\n  if (attrX !== void 0)\n    attrs.x = attrX;\n  if (attrY !== void 0)\n    attrs.y = attrY;\n  if (attrScale !== void 0)\n    attrs.scale = attrScale;\n  if (pathLength !== void 0) {\n    buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\nvar createSvgRenderState = () => ({\n  ...createHtmlRenderState(),\n  attrs: {}\n});\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs\nvar isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/use-props.mjs\nfunction useSVGProps(props, visualState, _isStatic, Component2) {\n  const visualProps = useMemo3(() => {\n    const state = createSvgRenderState();\n    buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component2), 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\n// ../../../node_modules/framer-motion/dist/es/render/dom/use-render.mjs\nfunction createUseRender(forwardMotionProps = false) {\n  const useRender = (Component2, props, ref, { latestValues }, isStatic) => {\n    const useVisualProps = isSVGComponent(Component2) ? useSVGProps : useHTMLProps;\n    const visualProps = useVisualProps(props, latestValues, isStatic, Component2);\n    const filteredProps = filterProps(props, typeof Component2 === \"string\", forwardMotionProps);\n    const elementProps = {\n      ...filteredProps,\n      ...visualProps,\n      ref\n    };\n    const { children } = props;\n    const renderedChildren = useMemo4(() => isMotionValue(children) ? children.get() : children, [children]);\n    return createElement2(Component2, {\n      ...elementProps,\n      children: renderedChildren\n    });\n  };\n  return useRender;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/render.mjs\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\n  Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n  for (const key in vars) {\n    element.style.setProperty(key, vars[key]);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs\nvar camelCaseAttributes = /* @__PURE__ */ 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\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs\nfunction renderSVG(element, renderState, _styleProp, projection) {\n  renderHTML(element, renderState, void 0, projection);\n  for (const key in renderState.attrs) {\n    element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs\nfunction scrapeMotionValuesFromProps(props, prevProps) {\n  const { style } = props;\n  const newValues = {};\n  for (const key in style) {\n    if (isMotionValue(style[key]) || prevProps.style && isMotionValue(prevProps.style[key]) || isForcedMotionValue(key, props)) {\n      newValues[key] = style[key];\n    }\n  }\n  return newValues;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs\nfunction scrapeMotionValuesFromProps2(props, prevProps) {\n  const newValues = scrapeMotionValuesFromProps(props, prevProps);\n  for (const key in props) {\n    if (isMotionValue(props[key]) || isMotionValue(prevProps[key])) {\n      const targetKey = transformPropOrder.indexOf(key) !== -1 ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1) : key;\n      newValues[targetKey] = props[key];\n    }\n  }\n  return newValues;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs\nvar svgMotionConfig = {\n  useVisualState: makeUseVisualState({\n    scrapeMotionValuesFromProps: scrapeMotionValuesFromProps2,\n    createRenderState: createSvgRenderState,\n    onMount: (props, instance, { renderState, latestValues }) => {\n      frame.read(() => {\n        try {\n          renderState.dimensions = typeof instance.getBBox === \"function\" ? instance.getBBox() : instance.getBoundingClientRect();\n        } catch (e) {\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\n// ../../../node_modules/framer-motion/dist/es/render/html/config-motion.mjs\nvar htmlMotionConfig = {\n  useVisualState: makeUseVisualState({\n    scrapeMotionValuesFromProps,\n    createRenderState: createHtmlRenderState\n  })\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs\nfunction createDomMotionConfig(Component2, { forwardMotionProps = false }, preloadedFeatures2, createVisualElement2) {\n  const baseConfig = isSVGComponent(Component2) ? svgMotionConfig : htmlMotionConfig;\n  return {\n    ...baseConfig,\n    preloadedFeatures: preloadedFeatures2,\n    useRender: createUseRender(forwardMotionProps),\n    createVisualElement: createVisualElement2,\n    Component: Component2\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/gestures/hover.mjs\nfunction addHoverEvent(node, isActive) {\n  const eventName = \"pointer\" + (isActive ? \"enter\" : \"leave\");\n  const callbackName = \"onHover\" + (isActive ? \"Start\" : \"End\");\n  const handleEvent = (event, info) => {\n    if (event.type === \"touch\" || isDragActive())\n      return;\n    const props = node.getProps();\n    if (node.animationState && props.whileHover) {\n      node.animationState.setActive(\"whileHover\", isActive);\n    }\n    if (props[callbackName]) {\n      frame.update(() => props[callbackName](event, info));\n    }\n  };\n  return addPointerEvent(node.current, eventName, handleEvent, {\n    passive: !node.getProps()[callbackName]\n  });\n}\nvar HoverGesture = class extends Feature {\n  mount() {\n    this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n  }\n  unmount() {\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/gestures/focus.mjs\nvar FocusGesture = class extends Feature {\n  constructor() {\n    super(...arguments);\n    this.isActive = false;\n  }\n  onFocus() {\n    let isFocusVisible = false;\n    try {\n      isFocusVisible = this.node.current.matches(\":focus-visible\");\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};\n\n// ../../../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs\nvar isNodeOrChild = (parent, child) => {\n  if (!child) {\n    return false;\n  } else if (parent === child) {\n    return true;\n  } else {\n    return isNodeOrChild(parent, child.parentElement);\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/gestures/press.mjs\nfunction fireSyntheticPointerEvent(name, handler) {\n  if (!handler)\n    return;\n  const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n  handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nvar PressGesture = class 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      this.removeEndListeners();\n      if (this.isPressing)\n        return;\n      const props = this.node.getProps();\n      const endPointerPress = (endEvent, endInfo) => {\n        if (!this.checkPressEnd())\n          return;\n        const { onTap, onTapCancel } = this.node.getProps();\n        frame.update(() => {\n          !isNodeOrChild(this.node.current, endEvent.target) ? onTapCancel && onTapCancel(endEvent, endInfo) : onTap && onTap(endEvent, endInfo);\n        });\n      };\n      const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, { passive: !(props.onTap || props[\"onPointerUp\"]) });\n      const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), { passive: !(props.onTapCancel || props[\"onPointerCancel\"]) });\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.update(() => 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    if (whileTap && this.node.animationState) {\n      this.node.animationState.setActive(\"whileTap\", true);\n    }\n    if (onTapStart) {\n      frame.update(() => 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.update(() => onTapCancel(event, info));\n    }\n  }\n  mount() {\n    const props = this.node.getProps();\n    const removePointerListener = addPointerEvent(this.node.current, \"pointerdown\", this.startPointerPress, { passive: !(props.onTapStart || props[\"onPointerStart\"]) });\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\n// ../../../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\nvar observerCallbacks = /* @__PURE__ */ new WeakMap();\nvar observers = /* @__PURE__ */ new WeakMap();\nvar fireObserverCallback = (entry) => {\n  const callback = observerCallbacks.get(entry.target);\n  callback && callback(entry);\n};\nvar fireAllObserverCallbacks = (entries) => {\n  entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n  const lookupRoot = root || document;\n  if (!observers.has(lookupRoot)) {\n    observers.set(lookupRoot, {});\n  }\n  const rootObservers = observers.get(lookupRoot);\n  const key = JSON.stringify(options);\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\n// ../../../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\nvar thresholdNames = {\n  some: 0,\n  all: 1\n};\nvar InViewFeature = class 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 : void 0,\n      rootMargin,\n      threshold: typeof amount === \"number\" ? amount : thresholdNames[amount]\n    };\n    const onIntersectionUpdate = (entry) => {\n      const { isIntersecting } = entry;\n      if (this.isInView === isIntersecting)\n        return;\n      this.isInView = isIntersecting;\n      if (once && !isIntersecting && this.hasEnteredView) {\n        return;\n      } else if (isIntersecting) {\n        this.hasEnteredView = true;\n      }\n      if (this.node.animationState) {\n        this.node.animationState.setActive(\"whileInView\", isIntersecting);\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  }\n};\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n  return (name) => viewport[name] !== prevViewport[name];\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/gestures.mjs\nvar 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\n// ../../../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\nvar PanSession = class {\n  constructor(event, handlers, { transformPagePoint, contextWindow } = {}) {\n    this.startEvent = null;\n    this.lastMoveEvent = null;\n    this.lastMoveEventInfo = null;\n    this.handlers = {};\n    this.contextWindow = window;\n    this.updatePoint = () => {\n      if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n        return;\n      const info2 = getPanInfo(this.lastMoveEventInfo, this.history);\n      const isPanStarted = this.startEvent !== null;\n      const isDistancePastThreshold = distance2D(info2.offset, { x: 0, y: 0 }) >= 3;\n      if (!isPanStarted && !isDistancePastThreshold)\n        return;\n      const { point: point3 } = info2;\n      const { timestamp: timestamp2 } = frameData;\n      this.history.push({ ...point3, timestamp: timestamp2 });\n      const { onStart, onMove } = this.handlers;\n      if (!isPanStarted) {\n        onStart && onStart(this.lastMoveEvent, info2);\n        this.startEvent = this.lastMoveEvent;\n      }\n      onMove && onMove(this.lastMoveEvent, info2);\n    };\n    this.handlePointerMove = (event2, info2) => {\n      this.lastMoveEvent = event2;\n      this.lastMoveEventInfo = transformPoint(info2, this.transformPagePoint);\n      frame.update(this.updatePoint, true);\n    };\n    this.handlePointerUp = (event2, info2) => {\n      this.end();\n      if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n        return;\n      const { onEnd, onSessionEnd } = this.handlers;\n      const panInfo = getPanInfo(event2.type === \"pointercancel\" ? this.lastMoveEventInfo : transformPoint(info2, this.transformPagePoint), this.history);\n      if (this.startEvent && onEnd) {\n        onEnd(event2, panInfo);\n      }\n      onSessionEnd && onSessionEnd(event2, panInfo);\n    };\n    if (!isPrimaryPointer(event))\n      return;\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: point2 } = initialInfo;\n    const { timestamp } = frameData;\n    this.history = [{ ...point2, timestamp }];\n    const { onSessionStart } = handlers;\n    onSessionStart && 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: point2 }, history) {\n  return {\n    point: point2,\n    delta: subtractPoint(point2, lastDevicePoint(history)),\n    offset: subtractPoint(point2, startDevicePoint(history)),\n    velocity: getVelocity2(history, 0.1)\n  };\n}\nfunction startDevicePoint(history) {\n  return history[0];\n}\nfunction lastDevicePoint(history) {\n  return history[history.length - 1];\n}\nfunction getVelocity2(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 > 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\n// ../../../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\nfunction applyConstraints(point2, { min, max }, elastic) {\n  if (min !== void 0 && point2 < min) {\n    point2 = elastic ? mix(min, point2, elastic.min) : Math.max(point2, min);\n  } else if (max !== void 0 && point2 > max) {\n    point2 = elastic ? mix(max, point2, elastic.max) : Math.min(point2, max);\n  }\n  return point2;\n}\nfunction calcRelativeAxisConstraints(axis, min, max) {\n  return {\n    min: min !== void 0 ? axis.min + min : void 0,\n    max: max !== void 0 ? axis.max + max - (axis.max - axis.min) : void 0\n  };\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}\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n  let min = constraintsAxis.min - layoutAxis.min;\n  let max = constraintsAxis.max - layoutAxis.max;\n  if (constraintsAxis.max - constraintsAxis.min < layoutAxis.max - layoutAxis.min) {\n    [min, max] = [max, min];\n  }\n  return { min, max };\n}\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n  return {\n    x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n    y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y)\n  };\n}\nfunction calcOrigin2(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  } else if (sourceLength > targetLength) {\n    origin = progress(source.min, source.max - targetLength, target.min);\n  }\n  return clamp(0, 1, origin);\n}\nfunction rebaseAxisConstraints(layout2, constraints) {\n  const relativeConstraints = {};\n  if (constraints.min !== void 0) {\n    relativeConstraints.min = constraints.min - layout2.min;\n  }\n  if (constraints.max !== void 0) {\n    relativeConstraints.max = constraints.max - layout2.min;\n  }\n  return relativeConstraints;\n}\nvar defaultElastic = 0.35;\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n  if (dragElastic === false) {\n    dragElastic = 0;\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\" ? dragElastic : dragElastic[label] || 0;\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs\nfunction eachAxis(callback) {\n  return [callback(\"x\"), callback(\"y\")];\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs\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}\nfunction transformBoxPoints(point2, transformPoint2) {\n  if (!transformPoint2)\n    return point2;\n  const topLeft = transformPoint2({ x: point2.left, y: point2.top });\n  const bottomRight = transformPoint2({ x: point2.right, y: point2.bottom });\n  return {\n    top: topLeft.y,\n    left: topLeft.x,\n    bottom: bottomRight.y,\n    right: bottomRight.x\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs\nfunction isIdentityScale(scale2) {\n  return scale2 === void 0 || scale2 === 1;\n}\nfunction hasScale({ scale: scale2, scaleX, scaleY }) {\n  return !isIdentityScale(scale2) || !isIdentityScale(scaleX) || !isIdentityScale(scaleY);\n}\nfunction hasTransform(values) {\n  return hasScale(values) || has2DTranslate(values) || values.z || values.rotate || values.rotateX || values.rotateY;\n}\nfunction has2DTranslate(values) {\n  return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n  return value && value !== \"0%\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs\nfunction scalePoint(point2, scale2, originPoint) {\n  const distanceFromOrigin = point2 - originPoint;\n  const scaled = scale2 * distanceFromOrigin;\n  return originPoint + scaled;\n}\nfunction applyPointDelta(point2, translate, scale2, originPoint, boxScale) {\n  if (boxScale !== void 0) {\n    point2 = scalePoint(point2, boxScale, originPoint);\n  }\n  return scalePoint(point2, scale2, originPoint) + translate;\n}\nfunction applyAxisDelta(axis, translate = 0, scale2 = 1, originPoint, boxScale) {\n  axis.min = applyPointDelta(axis.min, translate, scale2, originPoint, boxScale);\n  axis.max = applyPointDelta(axis.max, translate, scale2, originPoint, boxScale);\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}\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n  const treeLength = treePath.length;\n  if (!treeLength)\n    return;\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    const instance = node.instance;\n    if (instance && instance.style && instance.style.display === \"contents\") {\n      continue;\n    }\n    if (isSharedTransition && node.options.layoutScroll && node.scroll && node !== node.root) {\n      transformBox(box, {\n        x: -node.scroll.offset.x,\n        y: -node.scroll.offset.y\n      });\n    }\n    if (delta) {\n      treeScale.x *= delta.x.scale;\n      treeScale.y *= delta.y.scale;\n      applyBoxDelta(box, delta);\n    }\n    if (isSharedTransition && hasTransform(node.latestValues)) {\n      transformBox(box, node.latestValues);\n    }\n  }\n  treeScale.x = snapToDefault(treeScale.x);\n  treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale2) {\n  if (Number.isInteger(scale2))\n    return scale2;\n  return scale2 > 1.0000000000001 || scale2 < 0.999999999999 ? scale2 : 1;\n}\nfunction translateAxis(axis, distance2) {\n  axis.min = axis.min + distance2;\n  axis.max = axis.max + distance2;\n}\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n  const axisOrigin = transforms[originKey] !== void 0 ? transforms[originKey] : 0.5;\n  const originPoint = mix(axis.min, axis.max, axisOrigin);\n  applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\nfunction transformBox(box, transform2) {\n  transformAxis(box.x, transform2, xKeys);\n  transformAxis(box.y, transform2, yKeys);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/utils/measure.mjs\nfunction measureViewportBox(instance, transformPoint2) {\n  return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint2));\n}\nfunction measurePageBox(element, rootProjectionNode2, transformPagePoint) {\n  const viewportBox = measureViewportBox(element, transformPagePoint);\n  const { scroll: scroll2 } = rootProjectionNode2;\n  if (scroll2) {\n    translateAxis(viewportBox.x, scroll2.offset.x);\n    translateAxis(viewportBox.y, scroll2.offset.y);\n  }\n  return viewportBox;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/get-context-window.mjs\nvar getContextWindow = ({ current }) => {\n  return current ? current.ownerDocument.defaultView : null;\n};\n\n// ../../../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\nvar elementDragControls = /* @__PURE__ */ new WeakMap();\nvar VisualElementDragControls = class {\n  constructor(visualElement) {\n    this.openGlobalLock = null;\n    this.isDragging = false;\n    this.currentDirection = null;\n    this.originPoint = { x: 0, y: 0 };\n    this.constraints = false;\n    this.hasMutatedConstraints = false;\n    this.elastic = createBox();\n    this.visualElement = visualElement;\n  }\n  start(originEvent, { snapToCursor = false } = {}) {\n    const { presenceContext } = this.visualElement;\n    if (presenceContext && presenceContext.isPresent === false)\n      return;\n    const onSessionStart = (event) => {\n      this.stopAnimation();\n      if (snapToCursor) {\n        this.snapToCursor(extractEventInfo(event, \"page\").point);\n      }\n    };\n    const onStart = (event, info) => {\n      const { drag: drag2, dragPropagation, onDragStart } = this.getProps();\n      if (drag2 && !dragPropagation) {\n        if (this.openGlobalLock)\n          this.openGlobalLock();\n        this.openGlobalLock = getGlobalLock(drag2);\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 = void 0;\n      }\n      eachAxis((axis) => {\n        let current = this.getAxisMotionValue(axis).get() || 0;\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      if (onDragStart) {\n        frame.update(() => onDragStart(event, info), false, true);\n      }\n      const { animationState } = this.visualElement;\n      animationState && animationState.setActive(\"whileDrag\", true);\n    };\n    const onMove = (event, info) => {\n      const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag } = this.getProps();\n      if (!dragPropagation && !this.openGlobalLock)\n        return;\n      const { offset } = info;\n      if (dragDirectionLock && this.currentDirection === null) {\n        this.currentDirection = getCurrentDirection(offset);\n        if (this.currentDirection !== null) {\n          onDirectionLock && onDirectionLock(this.currentDirection);\n        }\n        return;\n      }\n      this.updateAxis(\"x\", info.point, offset);\n      this.updateAxis(\"y\", info.point, offset);\n      this.visualElement.render();\n      onDrag && onDrag(event, info);\n    };\n    const onSessionEnd = (event, info) => this.stop(event, info);\n    this.panSession = new PanSession(originEvent, {\n      onSessionStart,\n      onStart,\n      onMove,\n      onSessionEnd\n    }, {\n      transformPagePoint: this.visualElement.getTransformPagePoint(),\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.update(() => 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 = void 0;\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: drag2 } = this.getProps();\n    if (!offset || !shouldDrag(axis, drag2, this.currentDirection))\n      return;\n    const axisValue = this.getAxisMotionValue(axis);\n    let next = this.originPoint[axis] + offset[axis];\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 layout2 = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(false) : (_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    } else {\n      if (dragConstraints && layout2) {\n        this.constraints = calcRelativeConstraints(layout2.layoutBox, dragConstraints);\n      } else {\n        this.constraints = false;\n      }\n    }\n    this.elastic = resolveDragElastic(dragElastic);\n    if (prevConstraints !== this.constraints && layout2 && this.constraints && !this.hasMutatedConstraints) {\n      eachAxis((axis) => {\n        if (this.getAxisMotionValue(axis)) {\n          this.constraints[axis] = rebaseAxisConstraints(layout2.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    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    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: drag2, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd } = this.getProps();\n    const constraints = this.constraints || {};\n    const momentumAnimations = eachAxis((axis) => {\n      if (!shouldDrag(axis, drag2, this.currentDirection)) {\n        return;\n      }\n      let transition = constraints && constraints[axis] || {};\n      if (dragSnapToOrigin)\n        transition = { min: 0, max: 0 };\n      const bounceStiffness = dragElastic ? 200 : 1e6;\n      const bounceDamping = dragElastic ? 40 : 1e7;\n      const inertia2 = {\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      return this.startAxisValueAnimation(axis, inertia2);\n    });\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));\n  }\n  stopAnimation() {\n    eachAxis((axis) => this.getAxisMotionValue(axis).stop());\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 ? externalMotionValue : this.visualElement.getValue(axis, (props.initial ? props.initial[axis] : void 0) || 0);\n  }\n  snapToCursor(point2) {\n    eachAxis((axis) => {\n      const { drag: drag2 } = this.getProps();\n      if (!shouldDrag(axis, drag2, 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(point2[axis] - mix(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: drag2, dragConstraints } = this.getProps();\n    const { projection } = this.visualElement;\n    if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n      return;\n    this.stopAnimation();\n    const boxProgress = { x: 0, y: 0 };\n    eachAxis((axis) => {\n      const axisValue = this.getAxisMotionValue(axis);\n      if (axisValue) {\n        const latest = axisValue.get();\n        boxProgress[axis] = calcOrigin2({ min: latest, max: latest }, this.constraints[axis]);\n      }\n    });\n    const { transformTemplate } = this.visualElement.getProps();\n    this.visualElement.current.style.transform = transformTemplate ? transformTemplate({}, \"\") : \"none\";\n    projection.root && projection.root.updateScroll();\n    projection.updateLayout();\n    this.resolveConstraints();\n    eachAxis((axis) => {\n      if (!shouldDrag(axis, drag2, null))\n        return;\n      const axisValue = this.getAxisMotionValue(axis);\n      const { min, max } = this.constraints[axis];\n      axisValue.set(mix(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    const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n      const { drag: drag2, dragListener = true } = this.getProps();\n      drag2 && dragListener && this.start(event);\n    });\n    const measureDragConstraints = () => {\n      const { dragConstraints } = this.getProps();\n      if (isRefObject(dragConstraints)) {\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    measureDragConstraints();\n    const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n    const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged }) => {\n      if (this.isDragging && hasLayoutChanged) {\n        eachAxis((axis) => {\n          const motionValue2 = this.getAxisMotionValue(axis);\n          if (!motionValue2)\n            return;\n          this.originPoint[axis] += delta[axis].translate;\n          motionValue2.set(motionValue2.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: drag2 = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true } = props;\n    return {\n      ...props,\n      drag: drag2,\n      dragDirectionLock,\n      dragPropagation,\n      dragConstraints,\n      dragElastic,\n      dragMomentum\n    };\n  }\n};\nfunction shouldDrag(direction, drag2, currentDirection) {\n  return (drag2 === true || drag2 === direction) && (currentDirection === null || currentDirection === direction);\n}\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n  let direction = null;\n  if (Math.abs(offset.y) > lockThreshold) {\n    direction = \"y\";\n  } else if (Math.abs(offset.x) > lockThreshold) {\n    direction = \"x\";\n  }\n  return direction;\n}\n\n// ../../../node_modules/framer-motion/dist/es/gestures/drag/index.mjs\nvar DragGesture = class 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    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\n// ../../../node_modules/framer-motion/dist/es/gestures/pan/index.mjs\nvar asyncHandler = (handler) => (event, info) => {\n  if (handler) {\n    frame.update(() => handler(event, info));\n  }\n};\nvar PanGesture = class 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.update(() => 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\n// ../../../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\nimport React__default, { useContext as useContext6 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/projection/node/state.mjs\nvar 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\n// ../../../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs\nfunction pixelsToPercent(pixels, axis) {\n  if (axis.max === axis.min)\n    return 0;\n  return pixels / (axis.max - axis.min) * 100;\n}\nvar correctBorderRadius = {\n  correct: (latest, node) => {\n    if (!node.target)\n      return latest;\n    if (typeof latest === \"string\") {\n      if (px.test(latest)) {\n        latest = parseFloat(latest);\n      } else {\n        return latest;\n      }\n    }\n    const x = pixelsToPercent(latest, node.target.x);\n    const y = pixelsToPercent(latest, node.target.y);\n    return `${x}% ${y}%`;\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs\nvar correctBoxShadow = {\n  correct: (latest, { treeScale, projectionDelta }) => {\n    const original = latest;\n    const shadow = complex.parse(latest);\n    if (shadow.length > 5)\n      return original;\n    const template = complex.createTransformer(latest);\n    const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\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    const averageScale = mix(xScale, yScale, 0.5);\n    if (typeof shadow[2 + offset] === \"number\")\n      shadow[2 + offset] /= averageScale;\n    if (typeof shadow[3 + offset] === \"number\")\n      shadow[3 + offset] /= averageScale;\n    return template(shadow);\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\nvar MeasureLayoutWithContext = class extends React__default.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: drag2, isPresent: isPresent2 } = this.props;\n    const projection = visualElement.projection;\n    if (!projection)\n      return null;\n    projection.isPresent = isPresent2;\n    if (drag2 || prevProps.layoutDependency !== layoutDependency || layoutDependency === void 0) {\n      projection.willUpdate();\n    } else {\n      this.safeToRemove();\n    }\n    if (prevProps.isPresent !== isPresent2) {\n      if (isPresent2) {\n        projection.promote();\n      } else if (!projection.relegate()) {\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      queueMicrotask(() => {\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 [isPresent2, safeToRemove] = usePresence();\n  const layoutGroup = useContext6(LayoutGroupContext);\n  return React__default.createElement(MeasureLayoutWithContext, { ...props, layoutGroup, switchLayoutGroup: useContext6(SwitchLayoutGroupContext), isPresent: isPresent2, safeToRemove });\n}\nvar 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\n// ../../../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs\nvar borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nvar numBorders = borders.length;\nvar asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nvar isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress2, shouldCrossfadeOpacity, isOnlyMember) {\n  if (shouldCrossfadeOpacity) {\n    target.opacity = mix(\n      0,\n      // TODO Reinstate this if only child\n      lead.opacity !== void 0 ? lead.opacity : 1,\n      easeCrossfadeIn(progress2)\n    );\n    target.opacityExit = mix(follow.opacity !== void 0 ? follow.opacity : 1, 0, easeCrossfadeOut(progress2));\n  } else if (isOnlyMember) {\n    target.opacity = mix(follow.opacity !== void 0 ? follow.opacity : 1, lead.opacity !== void 0 ? lead.opacity : 1, progress2);\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 === void 0 && leadRadius === void 0)\n      continue;\n    followRadius || (followRadius = 0);\n    leadRadius || (leadRadius = 0);\n    const canMix = followRadius === 0 || leadRadius === 0 || isPx(followRadius) === isPx(leadRadius);\n    if (canMix) {\n      target[borderLabel] = Math.max(mix(asNumber(followRadius), asNumber(leadRadius), progress2), 0);\n      if (percent.test(leadRadius) || percent.test(followRadius)) {\n        target[borderLabel] += \"%\";\n      }\n    } else {\n      target[borderLabel] = leadRadius;\n    }\n  }\n  if (follow.rotate || lead.rotate) {\n    target.rotate = mix(follow.rotate || 0, lead.rotate || 0, progress2);\n  }\n}\nfunction getRadius(values, radiusName) {\n  return values[radiusName] !== void 0 ? values[radiusName] : values.borderRadius;\n}\nvar easeCrossfadeIn = compress(0, 0.5, circOut);\nvar easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n  return (p) => {\n    if (p < min)\n      return 0;\n    if (p > max)\n      return 1;\n    return easing(progress(min, max, p));\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs\nfunction copyAxisInto(axis, originAxis) {\n  axis.min = originAxis.min;\n  axis.max = originAxis.max;\n}\nfunction copyBoxInto(box, originBox) {\n  copyAxisInto(box.x, originBox.x);\n  copyAxisInto(box.y, originBox.y);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs\nfunction removePointDelta(point2, translate, scale2, originPoint, boxScale) {\n  point2 -= translate;\n  point2 = scalePoint(point2, 1 / scale2, originPoint);\n  if (boxScale !== void 0) {\n    point2 = scalePoint(point2, 1 / boxScale, originPoint);\n  }\n  return point2;\n}\nfunction removeAxisDelta(axis, translate = 0, scale2 = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n  if (percent.test(translate)) {\n    translate = parseFloat(translate);\n    const relativeProgress = mix(sourceAxis.min, sourceAxis.max, translate / 100);\n    translate = relativeProgress - sourceAxis.min;\n  }\n  if (typeof translate !== \"number\")\n    return;\n  let originPoint = mix(originAxis.min, originAxis.max, origin);\n  if (axis === originAxis)\n    originPoint -= translate;\n  axis.min = removePointDelta(axis.min, translate, scale2, originPoint, boxScale);\n  axis.max = removePointDelta(axis.max, translate, scale2, originPoint, boxScale);\n}\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n  removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\nvar xKeys2 = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys2 = [\"y\", \"scaleY\", \"originY\"];\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n  removeAxisTransforms(box.x, transforms, xKeys2, originBox ? originBox.x : void 0, sourceBox ? sourceBox.x : void 0);\n  removeAxisTransforms(box.y, transforms, yKeys2, originBox ? originBox.y : void 0, sourceBox ? sourceBox.y : void 0);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs\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 && a.x.max === b.x.max && a.y.min === b.y.min && a.y.max === b.y.max;\n}\nfunction boxEqualsRounded(a, b) {\n  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);\n}\nfunction aspectRatio(box) {\n  return calcLength(box.x) / calcLength(box.y);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/shared/stack.mjs\nvar NodeStack = class {\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 = void 0;\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    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    } 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 = 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  }\n  exitAnimationComplete() {\n    this.members.forEach((node) => {\n      const { options, resumingFrom } = node;\n      options.onExitComplete && options.onExitComplete();\n      if (resumingFrom) {\n        resumingFrom.options.onExitComplete && 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 = void 0;\n    }\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/projection/styles/transform.mjs\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n  let transform2 = \"\";\n  const xTranslate = delta.x.translate / treeScale.x;\n  const yTranslate = delta.y.translate / treeScale.y;\n  if (xTranslate || yTranslate) {\n    transform2 = `translate3d(${xTranslate}px, ${yTranslate}px, 0) `;\n  }\n  if (treeScale.x !== 1 || treeScale.y !== 1) {\n    transform2 += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n  }\n  if (latestTransform) {\n    const { rotate, rotateX, rotateY } = latestTransform;\n    if (rotate)\n      transform2 += `rotate(${rotate}deg) `;\n    if (rotateX)\n      transform2 += `rotateX(${rotateX}deg) `;\n    if (rotateY)\n      transform2 += `rotateY(${rotateY}deg) `;\n  }\n  const elementScaleX = delta.x.scale * treeScale.x;\n  const elementScaleY = delta.y.scale * treeScale.y;\n  if (elementScaleX !== 1 || elementScaleY !== 1) {\n    transform2 += `scale(${elementScaleX}, ${elementScaleY})`;\n  }\n  return transform2 || \"none\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/debug/record.mjs\nfunction record(data) {\n  if (window.MotionDebug) {\n    window.MotionDebug.record(data);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs\nfunction isSVGElement(element) {\n  return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs\nfunction animateSingleValue(value, keyframes2, options) {\n  const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n  motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes2, options));\n  return motionValue$1.animation;\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nvar hiddenVisibility = { visibility: \"hidden\" };\nvar animationTarget = 1e3;\nvar id2 = 0;\nvar projectionFrameData = {\n  type: \"projectionFrame\",\n  totalNodes: 0,\n  resolvedTargetDeltas: 0,\n  recalculatedProjection: 0\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      this.id = id2++;\n      this.animationId = 0;\n      this.children = /* @__PURE__ */ new Set();\n      this.options = {};\n      this.isTreeAnimating = false;\n      this.isAnimationBlocked = false;\n      this.isLayoutDirty = false;\n      this.isProjectionDirty = false;\n      this.isSharedProjectionDirty = false;\n      this.isTransformDirty = false;\n      this.updateManuallyBlocked = false;\n      this.updateBlockedByResize = false;\n      this.isUpdating = false;\n      this.isSVG = false;\n      this.needsReset = false;\n      this.shouldResetTransform = false;\n      this.treeScale = { x: 1, y: 1 };\n      this.eventHandlers = /* @__PURE__ */ new Map();\n      this.hasTreeAnimated = false;\n      this.updateScheduled = false;\n      this.projectionUpdateScheduled = false;\n      this.checkUpdateFailed = () => {\n        if (this.isUpdating) {\n          this.isUpdating = false;\n          this.clearAllSnapshots();\n        }\n      };\n      this.updateProjection = () => {\n        this.projectionUpdateScheduled = false;\n        projectionFrameData.totalNodes = projectionFrameData.resolvedTargetDeltas = projectionFrameData.recalculatedProjection = 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      this.sharedNodes = /* @__PURE__ */ 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: layout2, 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 && (layout2 || 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      if (this.options.animate !== false && visualElement && (layoutId || layout2)) {\n        this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout }) => {\n          if (this.isTreeAnimationBlocked()) {\n            this.target = void 0;\n            this.relativeTarget = void 0;\n            return;\n          }\n          const layoutTransition = this.options.transition || visualElement.getDefaultTransition() || defaultLayoutTransition;\n          const { onLayoutAnimationStart, onLayoutAnimationComplete } = visualElement.getProps();\n          const targetChanged = !this.targetLayout || !boxEqualsRounded(this.targetLayout, newLayout) || hasRelativeTargetChanged;\n          const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n          if (this.options.layoutRoot || this.resumeFrom && this.resumeFrom.instance || hasOnlyRelativeTargetChanged || hasLayoutChanged && (targetChanged || !this.currentAnimation)) {\n            if (this.resumeFrom) {\n              this.resumingFrom = this.resumeFrom;\n              this.resumingFrom.resumingFrom = void 0;\n            }\n            this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n            const animationOptions = {\n              ...getValueTransition(layoutTransition, \"layout\"),\n              onPlay: onLayoutAnimationStart,\n              onComplete: onLayoutAnimationComplete\n            };\n            if (visualElement.shouldReduceMotion || this.options.layoutRoot) {\n              animationOptions.delay = 0;\n              animationOptions.type = false;\n            }\n            this.startAnimation(animationOptions);\n          } else {\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 = void 0;\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 || this.parent && this.parent.isTreeAnimationBlocked() || 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(resetRotation);\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      !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: layout2 } = this.options;\n      if (layoutId === void 0 && !layout2)\n        return;\n      const transformTemplate = this.getTransformTemplate();\n      this.prevTransformTemplateValue = transformTemplate ? transformTemplate(this.latestValues, \"\") : void 0;\n      this.updateSnapshot();\n      shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n    }\n    update() {\n      this.updateScheduled = false;\n      const updateWasBlocked = this.isUpdateBlocked();\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      this.nodes.forEach(resetTransformStyle);\n      this.nodes.forEach(updateLayout);\n      this.nodes.forEach(notifyLayoutUpdate);\n      this.clearAllSnapshots();\n      const now = performance.now();\n      frameData.delta = clamp(0, 1e3 / 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        queueMicrotask(() => this.update());\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      frame.postRender(() => {\n        if (this.isLayoutDirty) {\n          this.root.didUpdate();\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      this.updateScroll();\n      if (!(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty) {\n        return;\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 = void 0;\n      this.notifyListeners(\"measure\", this.layout.layoutBox);\n      const { visualElement } = this.options;\n      visualElement && visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : void 0);\n    }\n    updateScroll(phase = \"measure\") {\n      let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n      if (this.scroll && this.scroll.animationId === this.root.animationId && 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 ? transformTemplate(this.latestValues, \"\") : void 0;\n      const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n      if (isResetRequested && (hasProjection || hasTransform(this.latestValues) || 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      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      const { scroll: scroll2 } = this.root;\n      if (scroll2) {\n        translateAxis(box.x, scroll2.offset.x);\n        translateAxis(box.y, scroll2.offset.y);\n      }\n      return box;\n    }\n    removeElementScroll(box) {\n      const boxWithoutScroll = createBox();\n      copyBoxInto(boxWithoutScroll, box);\n      for (let i = 0; i < this.path.length; i++) {\n        const node = this.path[i];\n        const { scroll: scroll2, options } = node;\n        if (node !== this.root && scroll2 && options.layoutScroll) {\n          if (scroll2.isRoot) {\n            copyBoxInto(boxWithoutScroll, box);\n            const { scroll: rootScroll } = this.root;\n            if (rootScroll) {\n              translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n              translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n            }\n          }\n          translateAxis(boxWithoutScroll.x, scroll2.offset.x);\n          translateAxis(boxWithoutScroll.y, scroll2.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 && node.options.layoutScroll && node.scroll && 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 : void 0, 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 !== void 0 ? options.crossfade : true\n      };\n    }\n    clearMeasurements() {\n      this.scroll = void 0;\n      this.layout = void 0;\n      this.snapshot = void 0;\n      this.prevTransformTemplateValue = void 0;\n      this.targetDelta = void 0;\n      this.target = void 0;\n      this.isLayoutDirty = false;\n    }\n    forceRelativeParentToResolveTarget() {\n      if (!this.relativeParent)\n        return;\n      if (this.relativeParent.resolvedRelativeTargetAt !== frameData.timestamp) {\n        this.relativeParent.resolveTargetDelta(true);\n      }\n    }\n    resolveTargetDelta(forceRecalculation = false) {\n      var _a;\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      const canSkip = !(forceRecalculation || isShared && this.isSharedProjectionDirty || this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) || this.attemptToResolveRelativeTarget);\n      if (canSkip)\n        return;\n      const { layout: layout2, layoutId } = this.options;\n      if (!this.layout || !(layout2 || layoutId))\n        return;\n      this.resolvedRelativeTargetAt = frameData.timestamp;\n      if (!this.targetDelta && !this.relativeTarget) {\n        const relativeParent = this.getClosestProjectingParent();\n        if (relativeParent && relativeParent.layout && 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        } else {\n          this.relativeParent = this.relativeTarget = void 0;\n        }\n      }\n      if (!this.relativeTarget && !this.targetDelta)\n        return;\n      if (!this.target) {\n        this.target = createBox();\n        this.targetWithTransforms = createBox();\n      }\n      if (this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target) {\n        this.forceRelativeParentToResolveTarget();\n        calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n      } else if (this.targetDelta) {\n        if (Boolean(this.resumingFrom)) {\n          this.target = this.applyTransform(this.layout.layoutBox);\n        } else {\n          copyBoxInto(this.target, this.layout.layoutBox);\n        }\n        applyBoxDelta(this.target, this.targetDelta);\n      } else {\n        copyBoxInto(this.target, this.layout.layoutBox);\n      }\n      if (this.attemptToResolveRelativeTarget) {\n        this.attemptToResolveRelativeTarget = false;\n        const relativeParent = this.getClosestProjectingParent();\n        if (relativeParent && Boolean(relativeParent.resumingFrom) === Boolean(this.resumingFrom) && !relativeParent.options.layoutScroll && relativeParent.target && 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        } else {\n          this.relativeParent = this.relativeTarget = void 0;\n        }\n      }\n      projectionFrameData.resolvedTargetDeltas++;\n    }\n    getClosestProjectingParent() {\n      if (!this.parent || hasScale(this.parent.latestValues) || has2DTranslate(this.parent.latestValues)) {\n        return void 0;\n      }\n      if (this.parent.isProjecting()) {\n        return this.parent;\n      } else {\n        return this.parent.getClosestProjectingParent();\n      }\n    }\n    isProjecting() {\n      return Boolean((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && 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      if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n        canSkip = false;\n      }\n      if (isShared && (this.isSharedProjectionDirty || this.isTransformDirty)) {\n        canSkip = false;\n      }\n      if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n        canSkip = false;\n      }\n      if (canSkip)\n        return;\n      const { layout: layout2, layoutId } = this.options;\n      this.isTreeAnimating = Boolean(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation);\n      if (!this.isTreeAnimating) {\n        this.targetDelta = this.relativeTarget = void 0;\n      }\n      if (!this.layout || !(layout2 || layoutId))\n        return;\n      copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n      const prevTreeScaleX = this.treeScale.x;\n      const prevTreeScaleY = this.treeScale.y;\n      applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n      if (lead.layout && !lead.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n        lead.target = lead.layout.layoutBox;\n      }\n      const { target } = lead;\n      if (!target) {\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      calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n      this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n      if (this.projectionTransform !== prevProjectionTransform || this.treeScale.x !== prevTreeScaleX || this.treeScale.y !== prevTreeScaleY) {\n        this.hasProjected = true;\n        this.scheduleRender();\n        this.notifyListeners(\"projectionUpdate\", target);\n      }\n      projectionFrameData.recalculatedProjection++;\n    }\n    hide() {\n      this.isVisible = false;\n    }\n    show() {\n      this.isVisible = true;\n    }\n    scheduleRender(notifyAll2 = true) {\n      this.options.scheduleRender && this.options.scheduleRender();\n      if (notifyAll2) {\n        const stack = this.getStack();\n        stack && stack.scheduleRender();\n      }\n      if (this.resumingFrom && !this.resumingFrom.instance) {\n        this.resumingFrom = void 0;\n      }\n    }\n    setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n      const snapshot = this.snapshot;\n      const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n      const mixedValues = { ...this.latestValues };\n      const targetDelta = createDelta();\n      if (!this.relativeParent || !this.relativeParent.options.layoutRoot) {\n        this.relativeTarget = this.relativeTargetOrigin = void 0;\n      }\n      this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n      const relativeLayout = createBox();\n      const snapshotSource = snapshot ? snapshot.source : void 0;\n      const layoutSource = this.layout ? this.layout.source : void 0;\n      const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n      const stack = this.getStack();\n      const isOnlyMember = !stack || stack.members.length <= 1;\n      const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation && !isOnlyMember && this.options.crossfade === true && !this.path.some(hasOpacityCrossfade));\n      this.animationProgress = 0;\n      let prevRelativeTarget;\n      this.mixTargetDelta = (latest) => {\n        const progress2 = latest / 1e3;\n        mixAxisDelta(targetDelta.x, delta.x, progress2);\n        mixAxisDelta(targetDelta.y, delta.y, progress2);\n        this.setTargetDelta(targetDelta);\n        if (this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout) {\n          calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n          mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress2);\n          if (prevRelativeTarget && 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, progress2, shouldCrossfadeOpacity, isOnlyMember);\n        }\n        this.root.scheduleUpdateProjection();\n        this.scheduleRender();\n        this.animationProgress = progress2;\n      };\n      this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 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 = void 0;\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 = void 0;\n      });\n    }\n    completeAnimation() {\n      if (this.resumingFrom) {\n        this.resumingFrom.currentAnimation = void 0;\n        this.resumingFrom.preserveOpacity = void 0;\n      }\n      const stack = this.getStack();\n      stack && stack.exitAnimationComplete();\n      this.resumingFrom = this.currentAnimation = this.animationValues = void 0;\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: layout2, latestValues } = lead;\n      if (!targetWithTransforms || !target || !layout2)\n        return;\n      if (this !== lead && this.layout && layout2 && shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout2.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      transformBox(targetWithTransforms, latestValues);\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 : void 0,\n        preserveFollowOpacity: config && config.shouldPreserveFollowOpacity ? config.shouldPreserveFollowOpacity(node) : void 0\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 : void 0;\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 = void 0;\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      } else {\n        return false;\n      }\n    }\n    resetRotation() {\n      const { visualElement } = this.options;\n      if (!visualElement)\n        return;\n      let hasRotate = false;\n      const { latestValues } = visualElement;\n      if (latestValues.rotate || latestValues.rotateX || latestValues.rotateY || latestValues.rotateZ) {\n        hasRotate = true;\n      }\n      if (!hasRotate)\n        return;\n      const resetValues = {};\n      for (let i = 0; i < transformAxes.length; i++) {\n        const key = \"rotate\" + transformAxes[i];\n        if (latestValues[key]) {\n          resetValues[key] = latestValues[key];\n          visualElement.setStaticValue(key, 0);\n        }\n      }\n      visualElement.render();\n      for (const key in resetValues) {\n        visualElement.setStaticValue(key, resetValues[key]);\n      }\n      visualElement.scheduleRender();\n    }\n    getProjectionStyles(styleProp) {\n      var _a, _b;\n      if (!this.instance || this.isSVG)\n        return void 0;\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 = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n        styles.transform = transformTemplate ? transformTemplate(this.latestValues, \"\") : \"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 = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1;\n          emptyStyles.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n        }\n        if (this.hasProjected && !hasTransform(this.latestValues)) {\n          emptyStyles.transform = transformTemplate ? transformTemplate({}, \"\") : \"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        styles.opacity = lead === this ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1 : this.preserveOpacity ? this.latestValues.opacity : valuesToRender.opacityExit;\n      } else {\n        styles.opacity = lead === this ? valuesToRender.opacity !== void 0 ? valuesToRender.opacity : \"\" : valuesToRender.opacityExit !== void 0 ? valuesToRender.opacityExit : 0;\n      }\n      for (const key in scaleCorrectors) {\n        if (valuesToRender[key] === void 0)\n          continue;\n        const { correct, applyTo } = scaleCorrectors[key];\n        const corrected = styles.transform === \"none\" ? valuesToRender[key] : 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        } else {\n          styles[key] = corrected;\n        }\n      }\n      if (this.options.layoutId) {\n        styles.pointerEvents = lead === this ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\" : \"none\";\n      }\n      return styles;\n    }\n    clearSnapshot() {\n      this.resumeFrom = this.snapshot = void 0;\n    }\n    // Only run on root\n    resetTree() {\n      this.root.nodes.forEach((node) => {\n        var _a;\n        return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop();\n      });\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() && node.layout && snapshot && node.hasListeners(\"didUpdate\")) {\n    const { layoutBox: layout2, measuredBox: measuredLayout } = node.layout;\n    const { animationType } = node.options;\n    const isShared = snapshot.source !== node.layout.source;\n    if (animationType === \"size\") {\n      eachAxis((axis) => {\n        const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis];\n        const length = calcLength(axisSnapshot);\n        axisSnapshot.min = layout2[axis].min;\n        axisSnapshot.max = axisSnapshot.min + length;\n      });\n    } else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout2)) {\n      eachAxis((axis) => {\n        const axisSnapshot = isShared ? snapshot.measuredBox[axis] : snapshot.layoutBox[axis];\n        const length = calcLength(layout2[axis]);\n        axisSnapshot.max = axisSnapshot.min + length;\n        if (node.relativeTarget && !node.currentAnimation) {\n          node.isProjectionDirty = true;\n          node.relativeTarget[axis].max = node.relativeTarget[axis].min + length;\n        }\n      });\n    }\n    const layoutDelta = createDelta();\n    calcBoxDelta(layoutDelta, layout2, snapshot.layoutBox);\n    const visualDelta = createDelta();\n    if (isShared) {\n      calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n    } else {\n      calcBoxDelta(visualDelta, layout2, snapshot.layoutBox);\n    }\n    const hasLayoutChanged = !isDeltaZero(layoutDelta);\n    let hasRelativeTargetChanged = false;\n    if (!node.resumeFrom) {\n      const relativeParent = node.getClosestProjectingParent();\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, layout2, 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: layout2,\n      snapshot,\n      delta: visualDelta,\n      layoutDelta,\n      hasLayoutChanged,\n      hasRelativeTargetChanged\n    });\n  } else if (node.isLead()) {\n    const { onExitComplete } = node.options;\n    onExitComplete && onExitComplete();\n  }\n  node.options.transition = void 0;\n}\nfunction propagateDirtyNodes(node) {\n  projectionFrameData.totalNodes++;\n  if (!node.parent)\n    return;\n  if (!node.isProjecting()) {\n    node.isProjectionDirty = node.parent.isProjectionDirty;\n  }\n  node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty || node.parent.isProjectionDirty || node.parent.isSharedProjectionDirty));\n  node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n  node.isProjectionDirty = node.isSharedProjectionDirty = node.isTransformDirty = 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 = void 0;\n  node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n  node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n  node.calcProjection();\n}\nfunction resetRotation(node) {\n  node.resetRotation();\n}\nfunction removeLeadSnapshots(stack) {\n  stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n  output.translate = mix(delta.translate, 0, p);\n  output.scale = mix(delta.scale, 1, p);\n  output.origin = delta.origin;\n  output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n  output.min = mix(from.min, to.min, p);\n  output.max = mix(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 !== void 0;\n}\nvar defaultLayoutTransition = {\n  duration: 0.45,\n  ease: [0.4, 0, 0.1, 1]\n};\nvar userAgentContains = (string) => typeof navigator !== \"undefined\" && navigator.userAgent.toLowerCase().includes(string);\nvar roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\") ? Math.round : noop;\nfunction roundAxis(axis) {\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, layout2) {\n  return animationType === \"position\" || animationType === \"preserve-aspect\" && !isNear(aspectRatio(snapshot), aspectRatio(layout2), 0.2);\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs\nvar DocumentProjectionNode = createProjectionNode({\n  attachResizeListener: (ref, notify2) => addDomEvent(ref, \"resize\", notify2),\n  measureScroll: () => ({\n    x: document.documentElement.scrollLeft || document.body.scrollLeft,\n    y: document.documentElement.scrollTop || document.body.scrollTop\n  }),\n  checkIsScrollRoot: () => true\n});\n\n// ../../../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs\nvar rootProjectionNode = {\n  current: void 0\n};\nvar 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 !== void 0 ? value : \"none\";\n  },\n  checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\")\n});\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/drag.mjs\nvar drag = {\n  pan: {\n    Feature: PanGesture\n  },\n  drag: {\n    Feature: DragGesture,\n    ProjectionNode: HTMLProjectionNode,\n    MeasureLayout\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs\nvar splitCSSVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n  const match = splitCSSVariableRegex.exec(current);\n  if (!match)\n    return [,];\n  const [, token, fallback] = match;\n  return [token, fallback];\n}\nvar 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  if (!token)\n    return;\n  const resolved = window.getComputedStyle(element).getPropertyValue(token);\n  if (resolved) {\n    const trimmed = resolved.trim();\n    return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n  } else if (isCSSVariableToken(fallback)) {\n    return getVariableValue(fallback, element, depth + 1);\n  } else {\n    return fallback;\n  }\n}\nfunction resolveCSSVariables(visualElement, { ...target }, transitionEnd) {\n  const element = visualElement.current;\n  if (!(element instanceof Element))\n    return { target, transitionEnd };\n  if (transitionEnd) {\n    transitionEnd = { ...transitionEnd };\n  }\n  visualElement.values.forEach((value) => {\n    const current = value.get();\n    if (!isCSSVariableToken(current))\n      return;\n    const resolved = getVariableValue(current, element);\n    if (resolved)\n      value.set(resolved);\n  });\n  for (const key in target) {\n    const current = target[key];\n    if (!isCSSVariableToken(current))\n      continue;\n    const resolved = getVariableValue(current, element);\n    if (!resolved)\n      continue;\n    target[key] = resolved;\n    if (!transitionEnd)\n      transitionEnd = {};\n    if (transitionEnd[key] === void 0) {\n      transitionEnd[key] = current;\n    }\n  }\n  return { target, transitionEnd };\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs\nvar positionalKeys = /* @__PURE__ */ new Set([\n  \"width\",\n  \"height\",\n  \"top\",\n  \"left\",\n  \"right\",\n  \"bottom\",\n  \"x\",\n  \"y\",\n  \"translateX\",\n  \"translateY\"\n]);\nvar isPositionalKey = (key) => positionalKeys.has(key);\nvar hasPositionalKey = (target) => {\n  return Object.keys(target).some(isPositionalKey);\n};\nvar isNumOrPxType = (v) => v === number || v === px;\nvar getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nvar getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform: transform2 }) => {\n  if (transform2 === \"none\" || !transform2)\n    return 0;\n  const matrix3d = transform2.match(/^matrix3d\\((.+)\\)$/);\n  if (matrix3d) {\n    return getPosFromMatrix(matrix3d[1], pos3);\n  } else {\n    const matrix = transform2.match(/^matrix\\((.+)\\)$/);\n    if (matrix) {\n      return getPosFromMatrix(matrix[1], pos2);\n    } else {\n      return 0;\n    }\n  }\n};\nvar transformKeys = /* @__PURE__ */ new Set([\"x\", \"y\", \"z\"]);\nvar 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 !== void 0) {\n      removedTransforms.push([key, value.get()]);\n      value.set(key.startsWith(\"scale\") ? 1 : 0);\n    }\n  });\n  if (removedTransforms.length)\n    visualElement.render();\n  return removedTransforms;\n}\nvar 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};\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\nvar convertChangedValueTypes = (target, visualElement, changedKeys) => {\n  const originBbox = visualElement.measureViewportBox();\n  const element = visualElement.current;\n  const elementComputedStyle = getComputedStyle(element);\n  const { display } = elementComputedStyle;\n  const origin = {};\n  if (display === \"none\") {\n    visualElement.setStaticValue(\"display\", target.display || \"block\");\n  }\n  changedKeys.forEach((key) => {\n    origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n  });\n  visualElement.render();\n  const targetBbox = visualElement.measureViewportBox();\n  changedKeys.forEach((key) => {\n    const value = visualElement.getValue(key);\n    value && value.jump(origin[key]);\n    target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n  });\n  return target;\n};\nvar checkAndConvertChangedValueTypes = (visualElement, target, origin = {}, transitionEnd = {}) => {\n  target = { ...target };\n  transitionEnd = { ...transitionEnd };\n  const targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n  let removedTransformValues = [];\n  let hasAttemptedToRemoveTransformValues = false;\n  const changedValueTypeKeys = [];\n  targetPositionalKeys.forEach((key) => {\n    const value = visualElement.getValue(key);\n    if (!visualElement.hasValue(key))\n      return;\n    let from = origin[key];\n    let fromType = findDimensionValueType(from);\n    const to = target[key];\n    let toType;\n    if (isKeyframesTarget(to)) {\n      const numKeyframes = to.length;\n      const fromIndex = to[0] === null ? 1 : 0;\n      from = to[fromIndex];\n      fromType = findDimensionValueType(from);\n      for (let i = fromIndex; i < numKeyframes; i++) {\n        if (to[i] === null)\n          break;\n        if (!toType) {\n          toType = findDimensionValueType(to[i]);\n          invariant(toType === fromType || isNumOrPxType(fromType) && isNumOrPxType(toType), \"Keyframes must be of the same dimension as the current value\");\n        } else {\n          invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n        }\n      }\n    } else {\n      toType = findDimensionValueType(to);\n    }\n    if (fromType !== toType) {\n      if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n        const current = value.get();\n        if (typeof current === \"string\") {\n          value.set(parseFloat(current));\n        }\n        if (typeof to === \"string\") {\n          target[key] = parseFloat(to);\n        } else if (Array.isArray(to) && toType === px) {\n          target[key] = to.map(parseFloat);\n        }\n      } else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) && (toType === null || toType === void 0 ? void 0 : toType.transform) && (from === 0 || to === 0)) {\n        if (from === 0) {\n          value.set(toType.transform(from));\n        } else {\n          target[key] = fromType.transform(to);\n        }\n      } else {\n        if (!hasAttemptedToRemoveTransformValues) {\n          removedTransformValues = removeNonTranslationalTransform(visualElement);\n          hasAttemptedToRemoveTransformValues = true;\n        }\n        changedValueTypeKeys.push(key);\n        transitionEnd[key] = transitionEnd[key] !== void 0 ? transitionEnd[key] : target[key];\n        value.jump(to);\n      }\n    }\n  });\n  if (changedValueTypeKeys.length) {\n    const scrollY = changedValueTypeKeys.indexOf(\"height\") >= 0 ? window.pageYOffset : null;\n    const convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n    if (removedTransformValues.length) {\n      removedTransformValues.forEach(([key, value]) => {\n        visualElement.getValue(key).set(value);\n      });\n    }\n    visualElement.render();\n    if (isBrowser && scrollY !== null) {\n      window.scrollTo({ top: scrollY });\n    }\n    return { target: convertedTarget, transitionEnd };\n  } else {\n    return { target, transitionEnd };\n  }\n};\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n  return hasPositionalKey(target) ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd) : { target, transitionEnd };\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs\nvar parseDomVariant = (visualElement, target, origin, transitionEnd) => {\n  const resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n  target = resolved.target;\n  transitionEnd = resolved.transitionEnd;\n  return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs\nvar DOMVisualElement = class extends VisualElement {\n  sortInstanceNodePosition(a, b) {\n    return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n  }\n  getBaseTargetFromProps(props, key) {\n    return props.style ? props.style[key] : void 0;\n  }\n  removeValueFromRenderState(key, { vars, style }) {\n    delete vars[key];\n    delete style[key];\n  }\n  makeTargetAnimatableFromInstance({ transition, transitionEnd, ...target }, { transformValues }, isMounted) {\n    let origin = getOrigin(target, transition || {}, this);\n    if (transformValues) {\n      if (transitionEnd)\n        transitionEnd = transformValues(transitionEnd);\n      if (target)\n        target = transformValues(target);\n      if (origin)\n        origin = transformValues(origin);\n    }\n    if (isMounted) {\n      checkTargetForNewValues(this, target, origin);\n      const parsed = parseDomVariant(this, target, origin, transitionEnd);\n      transitionEnd = parsed.transitionEnd;\n      target = parsed.target;\n    }\n    return {\n      transition,\n      transitionEnd,\n      ...target\n    };\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs\nfunction getComputedStyle2(element) {\n  return window.getComputedStyle(element);\n}\nvar HTMLVisualElement = class extends DOMVisualElement {\n  readValueFromInstance(instance, key) {\n    if (transformProps.has(key)) {\n      const defaultType = getDefaultValueType(key);\n      return defaultType ? defaultType.default || 0 : 0;\n    } else {\n      const computedStyle = getComputedStyle2(instance);\n      const value = (isCSSVariableName(key) ? computedStyle.getPropertyValue(key) : 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) {\n    return scrapeMotionValuesFromProps(props, prevProps);\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\n// ../../../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs\nvar SVGVisualElement = class extends DOMVisualElement {\n  constructor() {\n    super(...arguments);\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) {\n    return scrapeMotionValuesFromProps2(props, prevProps);\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\n// ../../../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\nvar createDomVisualElement = (Component2, options) => {\n  return isSVGComponent(Component2) ? new SVGVisualElement(options, { enableHardwareAcceleration: false }) : new HTMLVisualElement(options, { enableHardwareAcceleration: true });\n};\n\n// ../../../node_modules/framer-motion/dist/es/motion/features/layout.mjs\nvar layout = {\n  layout: {\n    ProjectionNode: HTMLProjectionNode,\n    MeasureLayout\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/motion.mjs\nvar preloadedFeatures = {\n  ...animations,\n  ...gestureAnimations,\n  ...drag,\n  ...layout\n};\nvar motion = /* @__PURE__ */ createMotionProxy((Component2, config) => createDomMotionConfig(Component2, config, preloadedFeatures, createDomVisualElement));\nfunction createDomMotionComponent(key) {\n  return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs\nvar m = createMotionProxy(createDomMotionConfig);\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-force-update.mjs\nimport { useState, useCallback as useCallback2 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs\nimport { useRef as useRef3 } from \"react\";\nfunction useIsMounted() {\n  const isMounted = useRef3(false);\n  useIsomorphicLayoutEffect(() => {\n    isMounted.current = true;\n    return () => {\n      isMounted.current = false;\n    };\n  }, []);\n  return isMounted;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-force-update.mjs\nfunction useForceUpdate() {\n  const isMounted = useIsMounted();\n  const [forcedRenderCount, setForcedRenderCount] = useState(0);\n  const forceRender = useCallback2(() => {\n    isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n  }, [forcedRenderCount]);\n  const deferredForceRender = useCallback2(() => frame.postRender(forceRender), [forceRender]);\n  return [deferredForceRender, forcedRenderCount];\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs\nimport { useEffect as useEffect4 } from \"react\";\nfunction useUnmountEffect(callback) {\n  return useEffect4(() => () => callback(), []);\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\nimport * as React4 from \"react\";\nimport { useContext as useContext7, useRef as useRef5, cloneElement as cloneElement2, Children, isValidElement } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\nimport * as React3 from \"react\";\nimport { useId as useId3, useMemo as useMemo5 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\nimport * as React2 from \"react\";\nimport { useId as useId2, useRef as useRef4, useInsertionEffect as useInsertionEffect2 } from \"react\";\nvar PopChildMeasure = class extends React2.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  }\n  render() {\n    return this.props.children;\n  }\n};\nfunction PopChild({ children, isPresent: isPresent2 }) {\n  const id4 = useId2();\n  const ref = useRef4(null);\n  const size = useRef4({\n    width: 0,\n    height: 0,\n    top: 0,\n    left: 0\n  });\n  useInsertionEffect2(() => {\n    const { width, height, top, left } = size.current;\n    if (isPresent2 || !ref.current || !width || !height)\n      return;\n    ref.current.dataset.motionPopId = id4;\n    const style = document.createElement(\"style\");\n    document.head.appendChild(style);\n    if (style.sheet) {\n      style.sheet.insertRule(`\n          [data-motion-pop-id=\"${id4}\"] {\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  }, [isPresent2]);\n  return React2.createElement(PopChildMeasure, { isPresent: isPresent2, childRef: ref, sizeRef: size }, React2.cloneElement(children, { ref }));\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\nvar PresenceChild = ({ children, initial, isPresent: isPresent2, onExitComplete, custom, presenceAffectsLayout, mode }) => {\n  const presenceChildren = useConstant(newChildrenMap);\n  const id4 = useId3();\n  const context = useMemo5(\n    () => ({\n      id: id4,\n      initial,\n      isPresent: isPresent2,\n      custom,\n      onExitComplete: (childId) => {\n        presenceChildren.set(childId, true);\n        for (const isComplete of presenceChildren.values()) {\n          if (!isComplete)\n            return;\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 ? void 0 : [isPresent2]\n  );\n  useMemo5(() => {\n    presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n  }, [isPresent2]);\n  React3.useEffect(() => {\n    !isPresent2 && !presenceChildren.size && onExitComplete && onExitComplete();\n  }, [isPresent2]);\n  if (mode === \"popLayout\") {\n    children = React3.createElement(PopChild, { isPresent: isPresent2 }, children);\n  }\n  return React3.createElement(PresenceContext.Provider, { value: context }, children);\n};\nfunction newChildrenMap() {\n  return /* @__PURE__ */ new Map();\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\nvar 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  Children.forEach(children, (child) => {\n    if (isValidElement(child))\n      filtered.push(child);\n  });\n  return filtered;\n}\nvar AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\" }) => {\n  invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n  const forceRender = useContext7(LayoutGroupContext).forceRender || useForceUpdate()[0];\n  const isMounted = useIsMounted();\n  const filteredChildren = onlyElements(children);\n  let childrenToRender = filteredChildren;\n  const exitingChildren = useRef5(/* @__PURE__ */ new Map()).current;\n  const presentChildren = useRef5(childrenToRender);\n  const allChildren = useRef5(/* @__PURE__ */ new Map()).current;\n  const isInitialRender = useRef5(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 React4.createElement(React4.Fragment, null, childrenToRender.map((child) => React4.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? void 0 : false, presenceAffectsLayout, mode }, child)));\n  }\n  childrenToRender = [...childrenToRender];\n  const presentKeys = presentChildren.current.map(getChildKey);\n  const targetKeys = filteredChildren.map(getChildKey);\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, void 0);\n    }\n  }\n  if (mode === \"wait\" && exitingChildren.size) {\n    childrenToRender = [];\n  }\n  exitingChildren.forEach((component, key) => {\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        exitingChildren.delete(key);\n        const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n        leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n        presentChildren.current = filteredChildren.filter((presentChild) => {\n          const presentChildKey = getChildKey(presentChild);\n          return (\n            // filter out the node exiting\n            presentChildKey === key || // filter out the leftover children\n            leftOverKeys.includes(presentChildKey)\n          );\n        });\n        if (!exitingChildren.size) {\n          if (isMounted.current === false)\n            return;\n          forceRender();\n          onExitComplete && onExitComplete();\n        }\n      };\n      exitingComponent = React4.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom, presenceAffectsLayout, mode }, child);\n      exitingChildren.set(key, exitingComponent);\n    }\n    childrenToRender.splice(insertionIndex, 0, exitingComponent);\n  });\n  childrenToRender = childrenToRender.map((child) => {\n    const key = child.key;\n    return exitingChildren.has(key) ? child : React4.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout, mode }, child);\n  });\n  if (false) {\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 React4.createElement(React4.Fragment, null, exitingChildren.size ? childrenToRender : childrenToRender.map((child) => cloneElement2(child)));\n};\n\n// ../../../node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs\nimport * as React5 from \"react\";\nimport { useContext as useContext8, useMemo as useMemo6 } from \"react\";\nfunction MotionConfig({ children, isValidProp, ...config }) {\n  isValidProp && loadExternalIsValidProp(isValidProp);\n  config = { ...useContext8(MotionConfigContext), ...config };\n  config.isStatic = useConstant(() => config.isStatic);\n  const context = useMemo6(() => config, [JSON.stringify(config.transition), config.transformPagePoint, config.reducedMotion]);\n  return React5.createElement(MotionConfigContext.Provider, { value: context }, children);\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs\nimport * as React6 from \"react\";\nimport { useState as useState2, useRef as useRef6, useEffect as useEffect6 } from \"react\";\nfunction LazyMotion({ children, features, strict = false }) {\n  const [, setIsLoaded] = useState2(!isLazyBundle(features));\n  const loadedRenderer = useRef6(void 0);\n  if (!isLazyBundle(features)) {\n    const { renderer, ...loadedFeatures } = features;\n    loadedRenderer.current = renderer;\n    loadFeatures(loadedFeatures);\n  }\n  useEffect6(() => {\n    if (isLazyBundle(features)) {\n      features().then(({ renderer, ...loadedFeatures }) => {\n        loadFeatures(loadedFeatures);\n        loadedRenderer.current = renderer;\n        setIsLoaded(true);\n      });\n    }\n  }, []);\n  return React6.createElement(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict } }, children);\n}\nfunction isLazyBundle(features) {\n  return typeof features === \"function\";\n}\n\n// ../../../node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs\nimport { createContext as createContext7 } from \"react\";\nvar DeprecatedLayoutGroupContext = createContext7(null);\n\n// ../../../node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs\nimport * as React7 from \"react\";\nimport { useContext as useContext9, useRef as useRef7, useMemo as useMemo7 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/projection/node/group.mjs\nvar notify = (node) => !node.isLayoutDirty && node.willUpdate(false);\nfunction nodeGroup() {\n  const nodes = /* @__PURE__ */ new Set();\n  const subscriptions = /* @__PURE__ */ new WeakMap();\n  const dirtyAll = () => nodes.forEach(notify);\n  return {\n    add: (node) => {\n      nodes.add(node);\n      subscriptions.set(node, node.addEventListener(\"willUpdate\", dirtyAll));\n    },\n    remove: (node) => {\n      nodes.delete(node);\n      const unsubscribe = subscriptions.get(node);\n      if (unsubscribe) {\n        unsubscribe();\n        subscriptions.delete(node);\n      }\n      dirtyAll();\n    },\n    dirty: dirtyAll\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs\nvar shouldInheritGroup = (inherit) => inherit === true;\nvar shouldInheritId = (inherit) => shouldInheritGroup(inherit === true) || inherit === \"id\";\nvar LayoutGroup = ({ children, id: id4, inherit = true }) => {\n  const layoutGroupContext = useContext9(LayoutGroupContext);\n  const deprecatedLayoutGroupContext = useContext9(DeprecatedLayoutGroupContext);\n  const [forceRender, key] = useForceUpdate();\n  const context = useRef7(null);\n  const upstreamId = layoutGroupContext.id || deprecatedLayoutGroupContext;\n  if (context.current === null) {\n    if (shouldInheritId(inherit) && upstreamId) {\n      id4 = id4 ? upstreamId + \"-\" + id4 : upstreamId;\n    }\n    context.current = {\n      id: id4,\n      group: shouldInheritGroup(inherit) ? layoutGroupContext.group || nodeGroup() : nodeGroup()\n    };\n  }\n  const memoizedContext = useMemo7(() => ({ ...context.current, forceRender }), [key]);\n  return React7.createElement(LayoutGroupContext.Provider, { value: memoizedContext }, children);\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/use-motion-value.mjs\nimport { useContext as useContext10, useState as useState3, useEffect as useEffect7 } from \"react\";\nfunction useMotionValue(initial) {\n  const value = useConstant(() => motionValue(initial));\n  const { isStatic } = useContext10(MotionConfigContext);\n  if (isStatic) {\n    const [, setLatest] = useState3(initial);\n    useEffect7(() => value.on(\"change\", setLatest), []);\n  }\n  return value;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/transform.mjs\nvar isCustomValueType = (v) => {\n  return typeof v === \"object\" && v.mix;\n};\nvar getMixer2 = (v) => isCustomValueType(v) ? v.mix : void 0;\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: getMixer2(outputRange[0]),\n    ...options\n  });\n  return useImmediate ? interpolator(inputValue) : interpolator;\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-combine-values.mjs\nfunction useCombineMotionValues(values, combineValues) {\n  const value = useMotionValue(combineValues());\n  const updateValue = () => value.set(combineValues());\n  updateValue();\n  useIsomorphicLayoutEffect(() => {\n    const scheduleUpdate = () => frame.update(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\n// ../../../node_modules/framer-motion/dist/es/value/use-computed.mjs\nfunction useComputed(compute) {\n  collectMotionValues.current = [];\n  compute();\n  const value = useCombineMotionValues(collectMotionValues.current, compute);\n  collectMotionValues.current = void 0;\n  return value;\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-transform.mjs\nfunction useTransform(input, inputRangeOrTransformer, outputRange, options) {\n  if (typeof input === \"function\") {\n    return useComputed(input);\n  }\n  const transformer = typeof inputRangeOrTransformer === \"function\" ? inputRangeOrTransformer : transform(inputRangeOrTransformer, outputRange, options);\n  return Array.isArray(input) ? useListTransform(input, transformer) : 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\n// ../../../node_modules/framer-motion/dist/es/components/Reorder/Group.mjs\nimport * as React8 from \"react\";\nimport { forwardRef as forwardRef2, useRef as useRef8, useEffect as useEffect8 } from \"react\";\n\n// ../../../node_modules/framer-motion/dist/es/context/ReorderContext.mjs\nimport { createContext as createContext8 } from \"react\";\nvar ReorderContext = createContext8(null);\n\n// ../../../node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs\nfunction checkReorder(order, value, offset, velocity) {\n  if (!velocity)\n    return order;\n  const index = order.findIndex((item2) => item2.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 = mix(nextLayout.min, nextLayout.max, 0.5);\n  if (nextOffset === 1 && item.layout.max + offset > nextItemCenter || nextOffset === -1 && item.layout.min + offset < nextItemCenter) {\n    return moveItem(order, index, index + nextOffset);\n  }\n  return order;\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/Reorder/Group.mjs\nfunction ReorderGroup({ children, as = \"ul\", axis = \"y\", onReorder, values, ...props }, externalRef) {\n  const Component2 = useConstant(() => motion(as));\n  const order = [];\n  const isReordering = useRef8(false);\n  invariant(Boolean(values), \"Reorder.Group must be provided a values prop\");\n  const context = {\n    axis,\n    registerItem: (value, layout2) => {\n      const idx = order.findIndex((entry) => value === entry.value);\n      if (idx !== -1) {\n        order[idx].layout = layout2[axis];\n      } else {\n        order.push({ value, layout: layout2[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.map(getValue).filter((value) => values.indexOf(value) !== -1));\n      }\n    }\n  };\n  useEffect8(() => {\n    isReordering.current = false;\n  });\n  return React8.createElement(\n    Component2,\n    { ...props, ref: externalRef, ignoreStrict: true },\n    React8.createElement(ReorderContext.Provider, { value: context }, children)\n  );\n}\nvar Group = forwardRef2(ReorderGroup);\nfunction getValue(item) {\n  return item.value;\n}\nfunction compareMin(a, b) {\n  return a.layout.min - b.layout.min;\n}\n\n// ../../../node_modules/framer-motion/dist/es/components/Reorder/Item.mjs\nimport * as React9 from \"react\";\nimport { forwardRef as forwardRef3, useContext as useContext11 } from \"react\";\nfunction useDefaultMotionValue(value, defaultValue = 0) {\n  return isMotionValue(value) ? value : useMotionValue(defaultValue);\n}\nfunction ReorderItem({ children, style = {}, value, as = \"li\", onDrag, layout: layout2 = true, ...props }, externalRef) {\n  const Component2 = useConstant(() => motion(as));\n  const context = useContext11(ReorderContext);\n  const point2 = {\n    x: useDefaultMotionValue(style.x),\n    y: useDefaultMotionValue(style.y)\n  };\n  const zIndex = useTransform([point2.x, point2.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 React9.createElement(Component2, { drag: axis, ...props, dragSnapToOrigin: true, style: { ...style, x: point2.x, y: point2.y, zIndex }, layout: layout2, onDrag: (event, gesturePoint) => {\n    const { velocity } = gesturePoint;\n    velocity[axis] && updateOrder(value, point2[axis].get(), velocity[axis]);\n    onDrag && onDrag(event, gesturePoint);\n  }, onLayoutMeasure: (measured) => registerItem(value, measured), ref: externalRef, ignoreStrict: true }, children);\n}\nvar Item = forwardRef3(ReorderItem);\n\n// ../../../node_modules/framer-motion/dist/es/components/Reorder/index.mjs\nvar Reorder = {\n  Group,\n  Item\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/features-animation.mjs\nvar domAnimation = {\n  renderer: createDomVisualElement,\n  ...animations,\n  ...gestureAnimations\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/features-max.mjs\nvar domMax = {\n  ...domAnimation,\n  ...drag,\n  ...layout\n};\n\n// ../../../node_modules/framer-motion/dist/es/value/use-motion-template.mjs\nfunction useMotionTemplate(fragments, ...values) {\n  const numFragments = fragments.length;\n  function buildValue() {\n    let output = ``;\n    for (let i = 0; i < numFragments; i++) {\n      output += fragments[i];\n      const value = values[i];\n      if (value) {\n        output += isMotionValue(value) ? value.get() : value;\n      }\n    }\n    return output;\n  }\n  return useCombineMotionValues(values.filter(isMotionValue), buildValue);\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-spring.mjs\nimport { useContext as useContext12, useRef as useRef9, useInsertionEffect as useInsertionEffect3 } from \"react\";\nfunction useSpring(source, config = {}) {\n  const { isStatic } = useContext12(MotionConfigContext);\n  const activeSpringAnimation = useRef9(null);\n  const value = useMotionValue(isMotionValue(source) ? source.get() : source);\n  const stopAnimation2 = () => {\n    if (activeSpringAnimation.current) {\n      activeSpringAnimation.current.stop();\n    }\n  };\n  useInsertionEffect3(() => {\n    return value.attach((v, set) => {\n      if (isStatic)\n        return set(v);\n      stopAnimation2();\n      activeSpringAnimation.current = animateValue({\n        keyframes: [value.get(), v],\n        velocity: value.getVelocity(),\n        type: \"spring\",\n        restDelta: 1e-3,\n        restSpeed: 0.01,\n        ...config,\n        onUpdate: set\n      });\n      if (!frameData.isProcessing) {\n        const delta = performance.now() - frameData.timestamp;\n        if (delta < 30) {\n          activeSpringAnimation.current.time = millisecondsToSeconds(delta);\n        }\n      }\n      return value.get();\n    }, stopAnimation2);\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\n// ../../../node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs\nimport { useInsertionEffect as useInsertionEffect4 } from \"react\";\nfunction useMotionValueEvent(value, event, callback) {\n  useInsertionEffect4(() => value.on(event, callback), [value, event, callback]);\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-velocity.mjs\nfunction useVelocity(value) {\n  const velocity = useMotionValue(value.getVelocity());\n  useMotionValueEvent(value, \"velocityChange\", (newVelocity) => {\n    velocity.set(newVelocity);\n  });\n  return velocity;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs\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    } else {\n      elements = root.querySelectorAll(elements);\n    }\n  } else if (elements instanceof Element) {\n    elements = [elements];\n  }\n  return Array.from(elements || []);\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs\nvar resizeHandlers = /* @__PURE__ */ new WeakMap();\nvar observer;\nfunction getElementSize(target, borderBoxSize) {\n  if (borderBoxSize) {\n    const { inlineSize, blockSize } = borderBoxSize[0];\n    return { width: inlineSize, height: blockSize };\n  } else if (target instanceof SVGElement && \"getBBox\" in target) {\n    return target.getBBox();\n  } else {\n    return {\n      width: target.offsetWidth,\n      height: target.offsetHeight\n    };\n  }\n}\nfunction notifyTarget({ target, contentRect, borderBoxSize }) {\n  var _a;\n  (_a = resizeHandlers.get(target)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => {\n    handler({\n      target,\n      contentSize: contentRect,\n      get size() {\n        return getElementSize(target, borderBoxSize);\n      }\n    });\n  });\n}\nfunction notifyAll(entries) {\n  entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n  if (typeof ResizeObserver === \"undefined\")\n    return;\n  observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n  if (!observer)\n    createResizeObserver();\n  const elements = resolveElements(target);\n  elements.forEach((element) => {\n    let elementHandlers = resizeHandlers.get(element);\n    if (!elementHandlers) {\n      elementHandlers = /* @__PURE__ */ new Set();\n      resizeHandlers.set(element, elementHandlers);\n    }\n    elementHandlers.add(handler);\n    observer === null || observer === void 0 ? void 0 : observer.observe(element);\n  });\n  return () => {\n    elements.forEach((element) => {\n      const elementHandlers = resizeHandlers.get(element);\n      elementHandlers === null || elementHandlers === void 0 ? void 0 : elementHandlers.delete(handler);\n      if (!(elementHandlers === null || elementHandlers === void 0 ? void 0 : elementHandlers.size)) {\n        observer === null || observer === void 0 ? void 0 : observer.unobserve(element);\n      }\n    });\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs\nvar windowCallbacks = /* @__PURE__ */ new Set();\nvar windowResizeHandler;\nfunction createWindowResizeHandler() {\n  windowResizeHandler = () => {\n    const size = {\n      width: window.innerWidth,\n      height: window.innerHeight\n    };\n    const info = {\n      target: window,\n      size,\n      contentSize: size\n    };\n    windowCallbacks.forEach((callback) => callback(info));\n  };\n  window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n  windowCallbacks.add(callback);\n  if (!windowResizeHandler)\n    createWindowResizeHandler();\n  return () => {\n    windowCallbacks.delete(callback);\n    if (!windowCallbacks.size && windowResizeHandler) {\n      windowResizeHandler = void 0;\n    }\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/resize/index.mjs\nfunction resize(a, b) {\n  return typeof a === \"function\" ? resizeWindow(a) : resizeElement(a, b);\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs\nvar maxElapsed2 = 50;\nvar createAxisInfo = () => ({\n  current: 0,\n  offset: [],\n  progress: 0,\n  scrollLength: 0,\n  targetOffset: 0,\n  targetLength: 0,\n  containerLength: 0,\n  velocity: 0\n});\nvar createScrollInfo = () => ({\n  time: 0,\n  x: createAxisInfo(),\n  y: createAxisInfo()\n});\nvar keys = {\n  x: {\n    length: \"Width\",\n    position: \"Left\"\n  },\n  y: {\n    length: \"Height\",\n    position: \"Top\"\n  }\n};\nfunction updateAxisInfo(element, axisName, info, time) {\n  const axis = info[axisName];\n  const { length, position } = keys[axisName];\n  const prev = axis.current;\n  const prevTime = info.time;\n  axis.current = element[\"scroll\" + position];\n  axis.scrollLength = element[\"scroll\" + length] - element[\"client\" + length];\n  axis.offset.length = 0;\n  axis.offset[0] = 0;\n  axis.offset[1] = axis.scrollLength;\n  axis.progress = progress(0, axis.scrollLength, axis.current);\n  const elapsed = time - prevTime;\n  axis.velocity = elapsed > maxElapsed2 ? 0 : velocityPerSecond(axis.current - prev, elapsed);\n}\nfunction updateScrollInfo(element, info, time) {\n  updateAxisInfo(element, \"x\", info, time);\n  updateAxisInfo(element, \"y\", info, time);\n  info.time = time;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs\nfunction calcInset(element, container) {\n  const inset = { x: 0, y: 0 };\n  let current = element;\n  while (current && current !== container) {\n    if (current instanceof HTMLElement) {\n      inset.x += current.offsetLeft;\n      inset.y += current.offsetTop;\n      current = current.offsetParent;\n    } else if (current.tagName === \"svg\") {\n      const svgBoundingBox = current.getBoundingClientRect();\n      current = current.parentElement;\n      const parentBoundingBox = current.getBoundingClientRect();\n      inset.x += svgBoundingBox.left - parentBoundingBox.left;\n      inset.y += svgBoundingBox.top - parentBoundingBox.top;\n    } else if (current instanceof SVGGraphicsElement) {\n      const { x, y } = current.getBBox();\n      inset.x += x;\n      inset.y += y;\n      let svg = null;\n      let parent = current.parentNode;\n      while (!svg) {\n        if (parent.tagName === \"svg\") {\n          svg = parent;\n        }\n        parent = current.parentNode;\n      }\n      current = svg;\n    } else {\n      break;\n    }\n  }\n  return inset;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs\nvar ScrollOffset = {\n  Enter: [\n    [0, 1],\n    [1, 1]\n  ],\n  Exit: [\n    [0, 0],\n    [1, 0]\n  ],\n  Any: [\n    [1, 0],\n    [0, 1]\n  ],\n  All: [\n    [0, 0],\n    [1, 1]\n  ]\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs\nvar namedEdges = {\n  start: 0,\n  center: 0.5,\n  end: 1\n};\nfunction resolveEdge(edge, length, inset = 0) {\n  let delta = 0;\n  if (namedEdges[edge] !== void 0) {\n    edge = namedEdges[edge];\n  }\n  if (typeof edge === \"string\") {\n    const asNumber2 = parseFloat(edge);\n    if (edge.endsWith(\"px\")) {\n      delta = asNumber2;\n    } else if (edge.endsWith(\"%\")) {\n      edge = asNumber2 / 100;\n    } else if (edge.endsWith(\"vw\")) {\n      delta = asNumber2 / 100 * document.documentElement.clientWidth;\n    } else if (edge.endsWith(\"vh\")) {\n      delta = asNumber2 / 100 * document.documentElement.clientHeight;\n    } else {\n      edge = asNumber2;\n    }\n  }\n  if (typeof edge === \"number\") {\n    delta = length * edge;\n  }\n  return inset + delta;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs\nvar defaultOffset2 = [0, 0];\nfunction resolveOffset(offset, containerLength, targetLength, targetInset) {\n  let offsetDefinition = Array.isArray(offset) ? offset : defaultOffset2;\n  let targetPoint = 0;\n  let containerPoint = 0;\n  if (typeof offset === \"number\") {\n    offsetDefinition = [offset, offset];\n  } else if (typeof offset === \"string\") {\n    offset = offset.trim();\n    if (offset.includes(\" \")) {\n      offsetDefinition = offset.split(\" \");\n    } else {\n      offsetDefinition = [offset, namedEdges[offset] ? offset : `0`];\n    }\n  }\n  targetPoint = resolveEdge(offsetDefinition[0], targetLength, targetInset);\n  containerPoint = resolveEdge(offsetDefinition[1], containerLength);\n  return targetPoint - containerPoint;\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs\nvar point = { x: 0, y: 0 };\nfunction getTargetSize(target) {\n  return \"getBBox\" in target && target.tagName !== \"svg\" ? target.getBBox() : { width: target.clientWidth, height: target.clientHeight };\n}\nfunction resolveOffsets(container, info, options) {\n  let { offset: offsetDefinition = ScrollOffset.All } = options;\n  const { target = container, axis = \"y\" } = options;\n  const lengthLabel = axis === \"y\" ? \"height\" : \"width\";\n  const inset = target !== container ? calcInset(target, container) : point;\n  const targetSize = target === container ? { width: container.scrollWidth, height: container.scrollHeight } : getTargetSize(target);\n  const containerSize = {\n    width: container.clientWidth,\n    height: container.clientHeight\n  };\n  info[axis].offset.length = 0;\n  let hasChanged = !info[axis].interpolate;\n  const numOffsets = offsetDefinition.length;\n  for (let i = 0; i < numOffsets; i++) {\n    const offset = resolveOffset(offsetDefinition[i], containerSize[lengthLabel], targetSize[lengthLabel], inset[axis]);\n    if (!hasChanged && offset !== info[axis].interpolatorOffsets[i]) {\n      hasChanged = true;\n    }\n    info[axis].offset[i] = offset;\n  }\n  if (hasChanged) {\n    info[axis].interpolate = interpolate(info[axis].offset, defaultOffset(offsetDefinition));\n    info[axis].interpolatorOffsets = [...info[axis].offset];\n  }\n  info[axis].progress = info[axis].interpolate(info[axis].current);\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs\nfunction measure(container, target = container, info) {\n  info.x.targetOffset = 0;\n  info.y.targetOffset = 0;\n  if (target !== container) {\n    let node = target;\n    while (node && node !== container) {\n      info.x.targetOffset += node.offsetLeft;\n      info.y.targetOffset += node.offsetTop;\n      node = node.offsetParent;\n    }\n  }\n  info.x.targetLength = target === container ? target.scrollWidth : target.clientWidth;\n  info.y.targetLength = target === container ? target.scrollHeight : target.clientHeight;\n  info.x.containerLength = container.clientWidth;\n  info.y.containerLength = container.clientHeight;\n}\nfunction createOnScrollHandler(element, onScroll, info, options = {}) {\n  return {\n    measure: () => measure(element, options.target, info),\n    update: (time) => {\n      updateScrollInfo(element, info, time);\n      if (options.offset || options.target) {\n        resolveOffsets(element, info, options);\n      }\n    },\n    notify: () => onScroll(info)\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs\nvar scrollListeners = /* @__PURE__ */ new WeakMap();\nvar resizeListeners = /* @__PURE__ */ new WeakMap();\nvar onScrollHandlers = /* @__PURE__ */ new WeakMap();\nvar getEventTarget = (element) => element === document.documentElement ? window : element;\nfunction scrollInfo(onScroll, { container = document.documentElement, ...options } = {}) {\n  let containerHandlers = onScrollHandlers.get(container);\n  if (!containerHandlers) {\n    containerHandlers = /* @__PURE__ */ new Set();\n    onScrollHandlers.set(container, containerHandlers);\n  }\n  const info = createScrollInfo();\n  const containerHandler = createOnScrollHandler(container, onScroll, info, options);\n  containerHandlers.add(containerHandler);\n  if (!scrollListeners.has(container)) {\n    const measureAll = () => {\n      for (const handler of containerHandlers)\n        handler.measure();\n    };\n    const updateAll = () => {\n      for (const handler of containerHandlers) {\n        handler.update(frameData.timestamp);\n      }\n    };\n    const notifyAll2 = () => {\n      for (const handler of containerHandlers)\n        handler.notify();\n    };\n    const listener2 = () => {\n      frame.read(measureAll, false, true);\n      frame.update(updateAll, false, true);\n      frame.update(notifyAll2, false, true);\n    };\n    scrollListeners.set(container, listener2);\n    const target = getEventTarget(container);\n    window.addEventListener(\"resize\", listener2, { passive: true });\n    if (container !== document.documentElement) {\n      resizeListeners.set(container, resize(container, listener2));\n    }\n    target.addEventListener(\"scroll\", listener2, { passive: true });\n  }\n  const listener = scrollListeners.get(container);\n  frame.read(listener, false, true);\n  return () => {\n    var _a;\n    cancelFrame(listener);\n    const currentHandlers = onScrollHandlers.get(container);\n    if (!currentHandlers)\n      return;\n    currentHandlers.delete(containerHandler);\n    if (currentHandlers.size)\n      return;\n    const scrollListener = scrollListeners.get(container);\n    scrollListeners.delete(container);\n    if (scrollListener) {\n      getEventTarget(container).removeEventListener(\"scroll\", scrollListener);\n      (_a = resizeListeners.get(container)) === null || _a === void 0 ? void 0 : _a();\n      window.removeEventListener(\"resize\", scrollListener);\n    }\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-scroll.mjs\nimport { useEffect as useEffect9 } from \"react\";\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}\nvar 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 ? useIsomorphicLayoutEffect : useEffect9;\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) || void 0,\n      target: (target === null || target === void 0 ? void 0 : target.current) || void 0\n    });\n  }, [container, target, JSON.stringify(options.offset)]);\n  return values;\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/scroll/use-element-scroll.mjs\nfunction useElementScroll(ref) {\n  if (false) {\n    warnOnce(false, \"useElementScroll is deprecated. Convert to useScroll({ container: ref }).\");\n  }\n  return useScroll({ container: ref });\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs\nfunction useViewportScroll() {\n  if (false) {\n    warnOnce(false, \"useViewportScroll is deprecated. Convert to useScroll().\");\n  }\n  return useScroll();\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs\nimport { useRef as useRef10, useContext as useContext13, useEffect as useEffect10 } from \"react\";\nfunction useAnimationFrame(callback) {\n  const initialTimestamp = useRef10(0);\n  const { isStatic } = useContext13(MotionConfigContext);\n  useEffect10(() => {\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\n// ../../../node_modules/framer-motion/dist/es/value/use-time.mjs\nfunction useTime() {\n  const time = useMotionValue(0);\n  useAnimationFrame((t) => time.set(t));\n  return time;\n}\n\n// ../../../node_modules/framer-motion/dist/es/value/use-will-change/index.mjs\nvar WillChangeMotionValue = class extends MotionValue {\n  constructor() {\n    super(...arguments);\n    this.members = [];\n    this.transforms = /* @__PURE__ */ new Set();\n  }\n  add(name) {\n    let memberName;\n    if (transformProps.has(name)) {\n      this.transforms.add(name);\n      memberName = \"transform\";\n    } else if (!name.startsWith(\"origin\") && !isCSSVariableName(name) && name !== \"willChange\") {\n      memberName = camelToDash(name);\n    }\n    if (memberName) {\n      addUniqueItem(this.members, memberName);\n      this.update();\n    }\n  }\n  remove(name) {\n    if (transformProps.has(name)) {\n      this.transforms.delete(name);\n      if (!this.transforms.size) {\n        removeItem(this.members, \"transform\");\n      }\n    } else {\n      removeItem(this.members, camelToDash(name));\n    }\n    this.update();\n  }\n  update() {\n    this.set(this.members.length ? this.members.join(\", \") : \"auto\");\n  }\n};\nfunction useWillChange() {\n  return useConstant(() => new WillChangeMotionValue(\"auto\"));\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs\nimport { useState as useState4 } from \"react\";\nfunction useReducedMotion() {\n  !hasReducedMotionListener.current && initPrefersReducedMotion();\n  const [shouldReduceMotion] = useState4(prefersReducedMotion.current);\n  if (false) {\n    warnOnce(shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n  }\n  return shouldReduceMotion;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs\nimport { useContext as useContext14 } from \"react\";\nfunction useReducedMotionConfig() {\n  const reducedMotionPreference = useReducedMotion();\n  const { reducedMotion } = useContext14(MotionConfigContext);\n  if (reducedMotion === \"never\") {\n    return false;\n  } else if (reducedMotion === \"always\") {\n    return true;\n  } else {\n    return reducedMotionPreference;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs\nfunction stopAnimation(visualElement) {\n  visualElement.values.forEach((value) => value.stop());\n}\nfunction animationControls() {\n  let hasMounted = false;\n  const subscribers = /* @__PURE__ */ new Set();\n  const controls = {\n    subscribe(visualElement) {\n      subscribers.add(visualElement);\n      return () => void subscribers.delete(visualElement);\n    },\n    start(definition, transitionOverride) {\n      invariant(hasMounted, \"controls.start() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n      const animations2 = [];\n      subscribers.forEach((visualElement) => {\n        animations2.push(animateVisualElement(visualElement, definition, {\n          transitionOverride\n        }));\n      });\n      return Promise.all(animations2);\n    },\n    set(definition) {\n      invariant(hasMounted, \"controls.set() should only be called after a component has mounted. Consider calling within a useEffect hook.\");\n      return subscribers.forEach((visualElement) => {\n        setValues(visualElement, definition);\n      });\n    },\n    stop() {\n      subscribers.forEach((visualElement) => {\n        stopAnimation(visualElement);\n      });\n    },\n    mount() {\n      hasMounted = true;\n      return () => {\n        hasMounted = false;\n        controls.stop();\n      };\n    }\n  };\n  return controls;\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/wrap.mjs\nvar wrap = (min, max, v) => {\n  const rangeSize = max - min;\n  return ((v - min) % rangeSize + rangeSize) % rangeSize + min;\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs\nfunction observeTimeline(update, timeline) {\n  let prevProgress;\n  const onFrame = () => {\n    const { currentTime } = timeline;\n    const percentage = currentTime === null ? 0 : currentTime.value;\n    const progress2 = percentage / 100;\n    if (prevProgress !== progress2) {\n      update(progress2);\n    }\n    prevProgress = progress2;\n  };\n  frame.update(onFrame, true);\n  return () => cancelFrame(onFrame);\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs\nvar supportsScrollTimeline = memo(() => window.ScrollTimeline !== void 0);\n\n// ../../../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs\nvar GroupPlaybackControls = class {\n  constructor(animations2) {\n    this.animations = animations2.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      } else {\n        animation.pause();\n        return observeTimeline((progress2) => {\n          animation.time = animation.duration * progress2;\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  stop() {\n    this.runAll(\"stop\");\n  }\n  cancel() {\n    this.runAll(\"cancel\");\n  }\n  complete() {\n    this.runAll(\"complete\");\n  }\n};\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs\nfunction isDOMKeyframes(keyframes2) {\n  return typeof keyframes2 === \"object\" && !Array.isArray(keyframes2);\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs\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) ? new SVGVisualElement(options, {\n    enableHardwareAcceleration: false\n  }) : new HTMLVisualElement(options, {\n    enableHardwareAcceleration: true\n  });\n  node.mount(element);\n  visualElementStore.set(element, node);\n}\n\n// ../../../node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs\nfunction createGeneratorEasing(options, scale2 = 100) {\n  const generator = spring({ keyframes: [0, scale2], ...options });\n  const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n  return {\n    type: \"keyframes\",\n    ease: (progress2) => generator.next(duration * progress2).value / scale2,\n    duration: millisecondsToSeconds(duration)\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs\nfunction calcNextTime(current, next, prev, labels) {\n  var _a;\n  if (typeof next === \"number\") {\n    return next;\n  } else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n    return Math.max(0, current + parseFloat(next));\n  } else if (next === \"<\") {\n    return prev;\n  } else {\n    return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs\nfunction getEasingForSegment(easing, i) {\n  return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs\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      i--;\n    }\n  }\n}\nfunction addKeyframes(sequence, keyframes2, easing, offset, startTime, endTime) {\n  eraseKeyframes(sequence, startTime, endTime);\n  for (let i = 0; i < keyframes2.length; i++) {\n    sequence.push({\n      value: keyframes2[i],\n      at: mix(startTime, endTime, offset[i]),\n      easing: getEasingForSegment(easing, i)\n    });\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs\nfunction 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  } else {\n    return a.at - b.at;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/sequence/create.mjs\nvar defaultSegmentEasing = \"easeInOut\";\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope) {\n  const defaultDuration = defaultTransition.duration || 0.3;\n  const animationDefinitions = /* @__PURE__ */ new Map();\n  const sequences = /* @__PURE__ */ new Map();\n  const elementCache = {};\n  const timeLabels = /* @__PURE__ */ new Map();\n  let prevTime = 0;\n  let currentTime = 0;\n  let totalDuration = 0;\n  for (let i = 0; i < sequence.length; i++) {\n    const segment = sequence[i];\n    if (typeof segment === \"string\") {\n      timeLabels.set(segment, currentTime);\n      continue;\n    } else if (!Array.isArray(segment)) {\n      timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n      continue;\n    }\n    let [subject, keyframes2, transition = {}] = segment;\n    if (transition.at !== void 0) {\n      currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n    }\n    let maxDuration3 = 0;\n    const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numElements = 0) => {\n      const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n      const { delay: delay2 = 0, times = defaultOffset(valueKeyframesAsList), type = \"keyframes\", ...remainingTransition } = valueTransition;\n      let { ease: ease2 = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n      const calculatedDelay = typeof delay2 === \"function\" ? delay2(elementIndex, numElements) : delay2;\n      const numKeyframes = valueKeyframesAsList.length;\n      if (numKeyframes <= 2 && type === \"spring\") {\n        let absoluteDelta = 100;\n        if (numKeyframes === 2 && isNumberKeyframesArray(valueKeyframesAsList)) {\n          const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n          absoluteDelta = Math.abs(delta);\n        }\n        const springTransition = { ...remainingTransition };\n        if (duration !== void 0) {\n          springTransition.duration = secondsToMilliseconds(duration);\n        }\n        const springEasing = createGeneratorEasing(springTransition, absoluteDelta);\n        ease2 = 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      if (times.length === 1 && times[0] === 0) {\n        times[1] = 1;\n      }\n      const remainder = times.length - valueKeyframesAsList.length;\n      remainder > 0 && fillOffset(times, remainder);\n      valueKeyframesAsList.length === 1 && valueKeyframesAsList.unshift(null);\n      addKeyframes(valueSequence, valueKeyframesAsList, ease2, times, startTime, targetTime);\n      maxDuration3 = Math.max(calculatedDelay + duration, maxDuration3);\n      totalDuration = Math.max(targetTime, totalDuration);\n    };\n    if (isMotionValue(subject)) {\n      const subjectSequence = getSubjectSequence(subject, sequences);\n      resolveValueSequence(keyframes2, transition, getValueSequence(\"default\", subjectSequence));\n    } else {\n      const elements = resolveElements(subject, scope, elementCache);\n      const numElements = elements.length;\n      for (let elementIndex = 0; elementIndex < numElements; elementIndex++) {\n        keyframes2 = keyframes2;\n        transition = transition;\n        const element = elements[elementIndex];\n        const subjectSequence = getSubjectSequence(element, sequences);\n        for (const key in keyframes2) {\n          resolveValueSequence(keyframes2[key], getValueTransition2(transition, key), getValueSequence(key, subjectSequence), elementIndex, numElements);\n        }\n      }\n      prevTime = currentTime;\n      currentTime += maxDuration3;\n    }\n  }\n  sequences.forEach((valueSequences, element) => {\n    for (const key in valueSequences) {\n      const valueSequence = valueSequences[key];\n      valueSequence.sort(compareByTime);\n      const keyframes2 = [];\n      const valueOffset = [];\n      const valueEasing = [];\n      for (let i = 0; i < valueSequence.length; i++) {\n        const { at, value, easing } = valueSequence[i];\n        keyframes2.push(value);\n        valueOffset.push(progress(0, totalDuration, at));\n        valueEasing.push(easing || \"easeOut\");\n      }\n      if (valueOffset[0] !== 0) {\n        valueOffset.unshift(0);\n        keyframes2.unshift(keyframes2[0]);\n        valueEasing.unshift(defaultSegmentEasing);\n      }\n      if (valueOffset[valueOffset.length - 1] !== 1) {\n        valueOffset.push(1);\n        keyframes2.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] = keyframes2;\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(keyframes2) {\n  return Array.isArray(keyframes2) ? keyframes2 : [keyframes2];\n}\nfunction getValueTransition2(transition, key) {\n  return transition[key] ? { ...transition, ...transition[key] } : { ...transition };\n}\nvar isNumber = (keyframe) => typeof keyframe === \"number\";\nvar isNumberKeyframesArray = (keyframes2) => keyframes2.every(isNumber);\n\n// ../../../node_modules/framer-motion/dist/es/animation/animate.mjs\nfunction animateElements(elementOrSelector, keyframes2, options, scope) {\n  const elements = resolveElements(elementOrSelector, scope);\n  const numElements = elements.length;\n  invariant(Boolean(numElements), \"No valid element provided.\");\n  const animations2 = [];\n  for (let i = 0; i < numElements; i++) {\n    const element = elements[i];\n    if (!visualElementStore.has(element)) {\n      createVisualElement(element);\n    }\n    const visualElement = visualElementStore.get(element);\n    const transition = { ...options };\n    if (typeof transition.delay === \"function\") {\n      transition.delay = transition.delay(i, numElements);\n    }\n    animations2.push(...animateTarget(visualElement, { ...keyframes2, transition }, {}));\n  }\n  return new GroupPlaybackControls(animations2);\n}\nvar isSequence = (value) => Array.isArray(value) && Array.isArray(value[0]);\nfunction animateSequence(sequence, options, scope) {\n  const animations2 = [];\n  const animationDefinitions = createAnimationsFromSequence(sequence, options, scope);\n  animationDefinitions.forEach(({ keyframes: keyframes2, transition }, subject) => {\n    let animation;\n    if (isMotionValue(subject)) {\n      animation = animateSingleValue(subject, keyframes2.default, transition.default);\n    } else {\n      animation = animateElements(subject, keyframes2, transition);\n    }\n    animations2.push(animation);\n  });\n  return new GroupPlaybackControls(animations2);\n}\nvar createScopedAnimate = (scope) => {\n  function scopedAnimate(valueOrElementOrSequence, keyframes2, options) {\n    let animation;\n    if (isSequence(valueOrElementOrSequence)) {\n      animation = animateSequence(valueOrElementOrSequence, keyframes2, scope);\n    } else if (isDOMKeyframes(keyframes2)) {\n      animation = animateElements(valueOrElementOrSequence, keyframes2, options, scope);\n    } else {\n      animation = animateSingleValue(valueOrElementOrSequence, keyframes2, options);\n    }\n    if (scope) {\n      scope.animations.push(animation);\n    }\n    return animation;\n  }\n  return scopedAnimate;\n};\nvar animate = createScopedAnimate();\n\n// ../../../node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs\nfunction useAnimate() {\n  const scope = useConstant(() => ({\n    current: null,\n    animations: []\n  }));\n  const animate2 = useConstant(() => createScopedAnimate(scope));\n  useUnmountEffect(() => {\n    scope.animations.forEach((animation) => animation.stop());\n  });\n  return [scope, animate2];\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs\nfunction useAnimationControls() {\n  const controls = useConstant(animationControls);\n  useIsomorphicLayoutEffect(controls.mount, []);\n  return controls;\n}\nvar useAnimation = useAnimationControls;\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-cycle.mjs\nimport { useRef as useRef11, useState as useState5, useCallback as useCallback3 } from \"react\";\nfunction useCycle(...items) {\n  const index = useRef11(0);\n  const [item, setItem] = useState5(items[index.current]);\n  const runCycle = useCallback3(\n    (next) => {\n      index.current = typeof next !== \"number\" ? wrap(0, items.length, index.current + 1) : 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  );\n  return [item, runCycle];\n}\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs\nvar thresholds = {\n  some: 0,\n  all: 1\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n  const elements = resolveElements(elementOrSelector);\n  const activeIntersections = /* @__PURE__ */ new WeakMap();\n  const onIntersectionChange = (entries) => {\n    entries.forEach((entry) => {\n      const onEnd = activeIntersections.get(entry.target);\n      if (entry.isIntersecting === Boolean(onEnd))\n        return;\n      if (entry.isIntersecting) {\n        const newOnEnd = onStart(entry);\n        if (typeof newOnEnd === \"function\") {\n          activeIntersections.set(entry.target, newOnEnd);\n        } else {\n          observer2.unobserve(entry.target);\n        }\n      } else if (onEnd) {\n        onEnd(entry);\n        activeIntersections.delete(entry.target);\n      }\n    });\n  };\n  const observer2 = new IntersectionObserver(onIntersectionChange, {\n    root,\n    rootMargin,\n    threshold: typeof amount === \"number\" ? amount : thresholds[amount]\n  });\n  elements.forEach((element) => observer2.observe(element));\n  return () => observer2.disconnect();\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-in-view.mjs\nimport { useState as useState6, useEffect as useEffect11 } from \"react\";\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n  const [isInView, setInView] = useState6(false);\n  useEffect11(() => {\n    if (!ref.current || once && isInView)\n      return;\n    const onEnter = () => {\n      setInView(true);\n      return once ? void 0 : () => setInView(false);\n    };\n    const options = {\n      root: root && root.current || void 0,\n      margin,\n      amount\n    };\n    return inView(ref.current, onEnter, options);\n  }, [root, ref, margin, once]);\n  return isInView;\n}\n\n// ../../../node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs\nvar DragControls = class {\n  constructor() {\n    this.componentControls = /* @__PURE__ */ new Set();\n  }\n  /**\n   * Subscribe a component's internal `VisualElementDragControls` to the user-facing API.\n   *\n   * @internal\n   */\n  subscribe(controls) {\n    this.componentControls.add(controls);\n    return () => this.componentControls.delete(controls);\n  }\n  /**\n   * Start a drag gesture on every `motion` component that has this set of drag controls\n   * passed into it via the `dragControls` prop.\n   *\n   * ```jsx\n   * dragControls.start(e, {\n   *   snapToCursor: true\n   * })\n   * ```\n   *\n   * @param event - PointerEvent\n   * @param options - Options\n   *\n   * @public\n   */\n  start(event, options) {\n    this.componentControls.forEach((controls) => {\n      controls.start(event.nativeEvent || event, options);\n    });\n  }\n};\nvar createDragControls = () => new DragControls();\nfunction useDragControls() {\n  return useConstant(createDragControls);\n}\n\n// ../../../node_modules/framer-motion/dist/es/events/use-dom-event.mjs\nimport { useEffect as useEffect12 } from \"react\";\nfunction useDomEvent(ref, eventName, handler, options) {\n  useEffect12(() => {\n    const element = ref.current;\n    if (handler && element) {\n      return addDomEvent(element, eventName, handler, options);\n    }\n  }, [ref, eventName, handler, options]);\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/is-motion-component.mjs\nfunction isMotionComponent(component) {\n  return component !== null && typeof component === \"object\" && motionComponentSymbol in component;\n}\n\n// ../../../node_modules/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs\nfunction unwrapMotionComponent(component) {\n  if (isMotionComponent(component)) {\n    return component[motionComponentSymbol];\n  }\n  return void 0;\n}\n\n// ../../../node_modules/framer-motion/dist/es/projection/use-instant-layout-transition.mjs\nfunction useInstantLayoutTransition() {\n  return startTransition;\n}\nfunction startTransition(callback) {\n  if (!rootProjectionNode.current)\n    return;\n  rootProjectionNode.current.isUpdating = false;\n  rootProjectionNode.current.blockUpdate();\n  callback && callback();\n}\n\n// ../../../node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs\nimport { useRef as useRef12, useEffect as useEffect13 } from \"react\";\nfunction useInstantTransition() {\n  const [forceUpdate, forcedRenderCount] = useForceUpdate();\n  const startInstantLayoutTransition = useInstantLayoutTransition();\n  const unlockOnFrameRef = useRef12();\n  useEffect13(() => {\n    frame.postRender(() => frame.postRender(() => {\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\n// ../../../node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs\nimport * as React10 from \"react\";\nfunction useResetProjection() {\n  const reset = React10.useCallback(() => {\n    const root = rootProjectionNode.current;\n    if (!root)\n      return;\n    root.resetTree();\n  }, []);\n  return reset;\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs\nvar appearStoreId = (id4, value) => `${id4}: ${value}`;\n\n// ../../../node_modules/framer-motion/dist/es/animation/optimized-appear/store.mjs\nvar appearAnimationStore = /* @__PURE__ */ new Map();\n\n// ../../../node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs\nvar handoffFrameTime;\nfunction handoffOptimizedAppearAnimation(elementId, valueName, _value, _frame) {\n  const optimisedValueName = transformProps.has(valueName) ? \"transform\" : valueName;\n  const storeId = appearStoreId(elementId, optimisedValueName);\n  const optimisedAnimation = appearAnimationStore.get(storeId);\n  if (!optimisedAnimation) {\n    return null;\n  }\n  const { animation, startTime } = optimisedAnimation;\n  const cancelAnimation = () => {\n    appearAnimationStore.delete(storeId);\n    try {\n      animation.cancel();\n    } catch (error) {\n    }\n  };\n  if (startTime === null || window.HandoffComplete) {\n    cancelAnimation();\n    return null;\n  } else {\n    if (handoffFrameTime === void 0) {\n      handoffFrameTime = performance.now();\n    }\n    return handoffFrameTime - startTime || 0;\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/optimized-appear/start.mjs\nvar startFrameTime;\nvar readyAnimation;\nfunction startOptimizedAppearAnimation(element, name, keyframes2, options, onReady) {\n  if (window.HandoffComplete) {\n    window.HandoffAppearAnimations = void 0;\n    return;\n  }\n  const id4 = element.dataset[optimizedAppearDataId];\n  if (!id4)\n    return;\n  window.HandoffAppearAnimations = handoffOptimizedAppearAnimation;\n  const storeId = appearStoreId(id4, name);\n  if (!readyAnimation) {\n    readyAnimation = animateStyle(\n      element,\n      name,\n      [keyframes2[0], keyframes2[0]],\n      /**\n       * 10 secs is basically just a super-safe duration to give Chrome\n       * long enough to get the animation ready.\n       */\n      { duration: 1e4, ease: \"linear\" }\n    );\n    appearAnimationStore.set(storeId, {\n      animation: readyAnimation,\n      startTime: null\n    });\n  }\n  const startAnimation = () => {\n    readyAnimation.cancel();\n    const appearAnimation = animateStyle(element, name, keyframes2, options);\n    if (startFrameTime === void 0) {\n      startFrameTime = performance.now();\n    }\n    appearAnimation.startTime = startFrameTime;\n    appearAnimationStore.set(storeId, {\n      animation: appearAnimation,\n      startTime: startFrameTime\n    });\n    if (onReady)\n      onReady(appearAnimation);\n  };\n  if (readyAnimation.ready) {\n    readyAnimation.ready.then(startAnimation).catch(noop);\n  } else {\n    startAnimation();\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs\nimport { useState as useState7, useEffect as useEffect14 } from \"react\";\nvar createObject = () => ({});\nvar StateVisualElement = class extends VisualElement {\n  build() {\n  }\n  measureInstanceViewportBox() {\n    return createBox();\n  }\n  resetTransform() {\n  }\n  restoreTransform() {\n  }\n  removeValueFromRenderState() {\n  }\n  renderInstance() {\n  }\n  scrapeMotionValuesFromProps() {\n    return createObject();\n  }\n  getBaseTargetFromProps() {\n    return void 0;\n  }\n  readValueFromInstance(_state, key, options) {\n    return options.initialState[key] || 0;\n  }\n  sortInstanceNodePosition() {\n    return 0;\n  }\n  makeTargetAnimatableFromInstance({ transition, transitionEnd, ...target }) {\n    const origin = getOrigin(target, transition || {}, this);\n    checkTargetForNewValues(this, target, origin);\n    return { transition, transitionEnd, ...target };\n  }\n};\nvar useVisualState = makeUseVisualState({\n  scrapeMotionValuesFromProps: createObject,\n  createRenderState: createObject\n});\nfunction useAnimatedState(initialState) {\n  const [animationState, setAnimationState] = useState7(initialState);\n  const visualState = useVisualState({}, false);\n  const element = useConstant(() => {\n    return new StateVisualElement({ props: {}, visualState, presenceContext: null }, { initialState });\n  });\n  useEffect14(() => {\n    element.mount({});\n    return () => element.unmount();\n  }, [element]);\n  useEffect14(() => {\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\n// ../../../node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs\nimport { useContext as useContext15 } from \"react\";\nvar maxScale = 1e5;\nvar invertScale = (scale2) => scale2 > 1e-3 ? 1 / scale2 : maxScale;\nvar hasWarned = false;\nfunction useInvertedScale(scale2) {\n  let parentScaleX = useMotionValue(1);\n  let parentScaleY = useMotionValue(1);\n  const { visualElement } = useContext15(MotionContext);\n  invariant(!!(scale2 || 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 (scale2) {\n    parentScaleX = scale2.scaleX || parentScaleX;\n    parentScaleY = scale2.scaleY || parentScaleY;\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\n// ../../../node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs\nimport * as React11 from \"react\";\nvar id3 = 0;\nvar AnimateSharedLayout = ({ children }) => {\n  React11.useEffect(() => {\n    invariant(false, \"AnimateSharedLayout is deprecated: https://www.framer.com/docs/guide-upgrade/##shared-layout-animations\");\n  }, []);\n  return React11.createElement(LayoutGroup, { id: useConstant(() => `asl-${id3++}`) }, children);\n};\n\n// ../../../node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs\nfunction scrollTimelineFallback({ source, axis = \"y\" }) {\n  const currentTime = { value: 0 };\n  const cancel = scrollInfo((info) => {\n    currentTime.value = info[axis].progress * 100;\n  }, { container: source, axis });\n  return { currentTime, cancel };\n}\nvar timelineCache = /* @__PURE__ */ new Map();\nfunction getTimeline({ source = document.documentElement, axis = \"y\" } = {}) {\n  if (!timelineCache.has(source)) {\n    timelineCache.set(source, {});\n  }\n  const elementCache = timelineCache.get(source);\n  if (!elementCache[axis]) {\n    elementCache[axis] = supportsScrollTimeline() ? new ScrollTimeline({ source, axis }) : scrollTimelineFallback({ source, axis });\n  }\n  return elementCache[axis];\n}\nfunction scroll(onScroll, options) {\n  const timeline = getTimeline(options);\n  if (typeof onScroll === \"function\") {\n    return observeTimeline(onScroll, timeline);\n  } else {\n    return onScroll.attachTimeline(timeline);\n  }\n}\n\n// ../../../node_modules/framer-motion/dist/es/animation/utils/stagger.mjs\nfunction getOriginIndex(from, total) {\n  if (from === \"first\") {\n    return 0;\n  } else {\n    const lastIndex = total - 1;\n    return from === \"last\" ? lastIndex : lastIndex / 2;\n  }\n}\nfunction stagger(duration = 0.1, { startDelay = 0, from = 0, ease: ease2 } = {}) {\n  return (i, total) => {\n    const fromIndex = typeof from === \"number\" ? from : getOriginIndex(from, total);\n    const distance2 = Math.abs(fromIndex - i);\n    let delay2 = duration * distance2;\n    if (ease2) {\n      const maxDelay = total * duration;\n      const easingFunction = easingDefinitionToFunction(ease2);\n      delay2 = easingFunction(delay2 / maxDelay) * maxDelay;\n    }\n    return startDelay + delay2;\n  };\n}\n\n// ../../../node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs\nvar sync = frame;\nvar cancelSync = stepsOrder.reduce((acc, key) => {\n  acc[key] = (process2) => cancelFrame(process2);\n  return acc;\n}, {});\n\nexport {\n  __commonJS,\n  __toESM,\n  __privateGet,\n  __privateAdd,\n  __privateSet,\n  MotionConfigContext,\n  MotionContext,\n  PresenceContext,\n  isBrowser,\n  useIsomorphicLayoutEffect,\n  optimizedAppearDataAttribute,\n  LayoutGroupContext,\n  SwitchLayoutGroupContext,\n  createMotionComponent,\n  addScaleCorrector,\n  isMotionValue,\n  buildTransform,\n  clamp,\n  px,\n  isValidMotionProp,\n  filterProps,\n  resolveMotionValue,\n  makeUseVisualState,\n  frame,\n  cancelFrame,\n  frameData,\n  steps,\n  addPointerInfo,\n  addPointerEvent,\n  pipe,\n  isDragActive,\n  warning,\n  invariant,\n  cubicBezier,\n  easeIn,\n  easeOut,\n  easeInOut,\n  mirrorEasing,\n  reverseEasing,\n  circIn,\n  circOut,\n  circInOut,\n  backOut,\n  backIn,\n  backInOut,\n  anticipate,\n  color,\n  mix,\n  complex,\n  progress,\n  interpolate,\n  spring,\n  animateValue,\n  MotionValue,\n  motionValue,\n  checkTargetForNewValues,\n  animateVisualElement,\n  animations,\n  distance,\n  distance2D,\n  calcLength,\n  createBox,\n  usePresence,\n  useIsPresent,\n  FlatTree,\n  delay,\n  visualElementStore,\n  VisualElement,\n  motion,\n  createDomMotionComponent,\n  m,\n  useForceUpdate,\n  useUnmountEffect,\n  AnimatePresence,\n  MotionConfig,\n  LazyMotion,\n  DeprecatedLayoutGroupContext,\n  LayoutGroup,\n  useMotionValue,\n  transform,\n  useTransform,\n  Reorder,\n  domAnimation,\n  domMax,\n  useMotionTemplate,\n  useSpring,\n  useMotionValueEvent,\n  useVelocity,\n  scrollInfo,\n  useScroll,\n  useElementScroll,\n  useViewportScroll,\n  useAnimationFrame,\n  useTime,\n  useWillChange,\n  useReducedMotion,\n  useReducedMotionConfig,\n  animationControls,\n  wrap,\n  createScopedAnimate,\n  animate,\n  useAnimate,\n  useAnimationControls,\n  useAnimation,\n  useCycle,\n  inView,\n  useInView,\n  DragControls,\n  useDragControls,\n  useDomEvent,\n  isMotionComponent,\n  unwrapMotionComponent,\n  useInstantLayoutTransition,\n  useInstantTransition,\n  disableInstantTransitions,\n  useResetProjection,\n  startOptimizedAppearAnimation,\n  useAnimatedState,\n  useInvertedScale,\n  AnimateSharedLayout,\n  scroll,\n  stagger,\n  sync,\n  cancelSync\n};\n//# sourceMappingURL=chunk-H3UF2DYR.js.map\n", "import*as a from\"react\";import*as i from\"scheduler\";var u=\"default\"in a?a.default:a;var o=\"default\"in i?i.default:i;var s={};var w=u,x=o;function p(a){for(var i=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,u=1;u<arguments.length;u++)i+=\"&args[]=\"+encodeURIComponent(arguments[u]);return\"Minified React error #\"+a+\"; visit \"+i+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var C=new Set,z={};function fa(a,i){ha(a,i);ha(a+\"Capture\",i)}function ha(a,i){z[a]=i;for(a=0;a<i.length;a++)C.add(i[a])}var N=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),_=Object.prototype.hasOwnProperty,j=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,P={},T={};function oa(a){if(_.call(T,a))return!0;if(_.call(P,a))return!1;if(j.test(a))return T[a]=!0;P[a]=!0;return!1}function pa(a,i,u,o){if(null!==u&&0===u.type)return!1;switch(typeof i){case\"function\":case\"symbol\":return!0;case\"boolean\":if(o)return!1;if(null!==u)return!u.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}function qa(a,i,u,o){if(null===i||\"undefined\"===typeof i||pa(a,i,u,o))return!0;if(o)return!1;if(null!==u)switch(u.type){case 3:return!i;case 4:return!1===i;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function v(a,i,u,o,s,w,x){this.acceptsBooleans=2===i||3===i||4===i;this.attributeName=o;this.attributeNamespace=s;this.mustUseProperty=u;this.propertyName=a;this.type=i;this.sanitizeURL=w;this.removeEmptyString=x}var M={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach((function(a){M[a]=new v(a,0,!1,a,null,!1,!1)}));[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach((function(a){var i=a[0];M[i]=new v(i,1,!1,a[1],null,!1,!1)}));[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach((function(a){M[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)}));[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach((function(a){M[a]=new v(a,2,!1,a,null,!1,!1)}));\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach((function(a){M[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)}));[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach((function(a){M[a]=new v(a,3,!0,a,null,!1,!1)}));[\"capture\",\"download\"].forEach((function(a){M[a]=new v(a,4,!1,a,null,!1,!1)}));[\"cols\",\"rows\",\"size\",\"span\"].forEach((function(a){M[a]=new v(a,6,!1,a,null,!1,!1)}));[\"rowSpan\",\"start\"].forEach((function(a){M[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)}));var F=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach((function(a){var i=a.replace(F,sa);M[i]=new v(i,1,!1,a,null,!1,!1)}));\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach((function(a){var i=a.replace(F,sa);M[i]=new v(i,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)}));[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach((function(a){var i=a.replace(F,sa);M[i]=new v(i,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}));[\"tabIndex\",\"crossOrigin\"].forEach((function(a){M[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)}));M.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach((function(a){M[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)}));function ta(a,i,u,o){var s=M.hasOwnProperty(i)?M[i]:null;(null!==s?0!==s.type:o||!(2<i.length)||\"o\"!==i[0]&&\"O\"!==i[0]||\"n\"!==i[1]&&\"N\"!==i[1])&&(qa(i,u,s,o)&&(u=null),o||null===s?oa(i)&&(null===u?a.removeAttribute(i):a.setAttribute(i,\"\"+u)):s.mustUseProperty?a[s.propertyName]=null===u?3!==s.type&&\"\":u:(i=s.attributeName,o=s.attributeNamespace,null===u?a.removeAttribute(i):(s=s.type,u=3===s||4===s&&!0===u?\"\":\"\"+u,o?a.setAttributeNS(o,i,u):a.setAttribute(i,u))))}var R=w.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,O=Symbol.for(\"react.element\"),I=Symbol.for(\"react.portal\"),U=Symbol.for(\"react.fragment\"),V=Symbol.for(\"react.strict_mode\"),A=Symbol.for(\"react.profiler\"),B=Symbol.for(\"react.provider\"),H=Symbol.for(\"react.context\"),$=Symbol.for(\"react.forward_ref\"),K=Symbol.for(\"react.suspense\"),Y=Symbol.for(\"react.suspense_list\"),Z=Symbol.for(\"react.memo\"),X=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");var ee=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var le=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=le&&a[le]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var ae,ie=Object.assign;function Ma(a){if(void 0===ae)try{throw Error()}catch(a){var i=a.stack.trim().match(/\\n( *(at )?)/);ae=i&&i[1]||\"\"}return\"\\n\"+ae+a}var ce=!1;function Oa(a,i){if(!a||ce)return\"\";ce=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(i)if(i=function(){throw Error()},Object.defineProperty(i.prototype,\"props\",{set:function(){throw Error()}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(i,[])}catch(a){var o=a}Reflect.construct(a,[],i)}else{try{i.call()}catch(a){o=a}a.call(i.prototype)}else{try{throw Error()}catch(a){o=a}a()}}catch(i){if(i&&o&&\"string\"===typeof i.stack){for(var s=i.stack.split(\"\\n\"),w=o.stack.split(\"\\n\"),x=s.length-1,C=w.length-1;1<=x&&0<=C&&s[x]!==w[C];)C--;for(;1<=x&&0<=C;x--,C--)if(s[x]!==w[C]){if(1!==x||1!==C)do{if(x--,C--,0>C||s[x]!==w[C]){var z=\"\\n\"+s[x].replace(\" at new \",\" at \");a.displayName&&z.includes(\"<anonymous>\")&&(z=z.replace(\"<anonymous>\",a.displayName));return z}}while(1<=x&&0<=C);break}}}finally{ce=!1,Error.prepareStackTrace=u}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}function Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}function Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case U:return\"Fragment\";case I:return\"Portal\";case A:return\"Profiler\";case V:return\"StrictMode\";case K:return\"Suspense\";case Y:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case H:return(a.displayName||\"Context\")+\".Consumer\";case B:return(a._context.displayName||\"Context\")+\".Provider\";case $:var i=a.render;a=a.displayName;a||(a=i.displayName||i.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Z:return i=a.displayName||null,null!==i?i:Qa(a.type)||\"Memo\";case X:i=a._payload;a=a._init;try{return Qa(a(i))}catch(a){}}return null}function Ra(a){var i=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(i.displayName||\"Context\")+\".Consumer\";case 10:return(i._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=i.render,a=a.displayName||a.name||\"\",i.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return i;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(i);case 8:return i===V?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof i)return i.displayName||i.name||null;if(\"string\"===typeof i)return i}return null}function Sa(a){switch(typeof a){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return a;case\"object\":return a;default:return\"\"}}function Ta(a){var i=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===i||\"radio\"===i)}function Ua(a){var i=Ta(a)?\"checked\":\"value\",u=Object.getOwnPropertyDescriptor(a.constructor.prototype,i),o=\"\"+a[i];if(!a.hasOwnProperty(i)&&\"undefined\"!==typeof u&&\"function\"===typeof u.get&&\"function\"===typeof u.set){var s=u.get,w=u.set;Object.defineProperty(a,i,{configurable:!0,get:function(){return s.call(this)},set:function(a){o=\"\"+a;w.call(this,a)}});Object.defineProperty(a,i,{enumerable:u.enumerable});return{getValue:function(){return o},setValue:function(a){o=\"\"+a},stopTracking:function(){a._valueTracker=null;delete a[i]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var i=a._valueTracker;if(!i)return!0;var u=i.getValue();var o=\"\";a&&(o=Ta(a)?a.checked?\"true\":\"false\":a.value);a=o;return a!==u&&(i.setValue(a),!0)}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(i){return a.body}}function Ya(a,i){var u=i.checked;return ie({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=u?u:a._wrapperState.initialChecked})}function Za(a,i){var u=null==i.defaultValue?\"\":i.defaultValue,o=null!=i.checked?i.checked:i.defaultChecked;u=Sa(null!=i.value?i.value:u);a._wrapperState={initialChecked:o,initialValue:u,controlled:\"checkbox\"===i.type||\"radio\"===i.type?null!=i.checked:null!=i.value}}function ab(a,i){i=i.checked;null!=i&&ta(a,\"checked\",i,!1)}function bb(a,i){ab(a,i);var u=Sa(i.value),o=i.type;if(null!=u)\"number\"===o?(0===u&&\"\"===a.value||a.value!=u)&&(a.value=\"\"+u):a.value!==\"\"+u&&(a.value=\"\"+u);else if(\"submit\"===o||\"reset\"===o){a.removeAttribute(\"value\");return}i.hasOwnProperty(\"value\")?cb(a,i.type,u):i.hasOwnProperty(\"defaultValue\")&&cb(a,i.type,Sa(i.defaultValue));null==i.checked&&null!=i.defaultChecked&&(a.defaultChecked=!!i.defaultChecked)}function db(a,i,u){if(i.hasOwnProperty(\"value\")||i.hasOwnProperty(\"defaultValue\")){var o=i.type;if(!(\"submit\"!==o&&\"reset\"!==o||void 0!==i.value&&null!==i.value))return;i=\"\"+a._wrapperState.initialValue;u||i===a.value||(a.value=i);a.defaultValue=i}u=a.name;\"\"!==u&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==u&&(a.name=u)}function cb(a,i,u){\"number\"===i&&Xa(a.ownerDocument)===a||(null==u?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+u&&(a.defaultValue=\"\"+u))}var fe=Array.isArray;function fb(a,i,u,o){a=a.options;if(i){i={};for(var s=0;s<u.length;s++)i[\"$\"+u[s]]=!0;for(u=0;u<a.length;u++)s=i.hasOwnProperty(\"$\"+a[u].value),a[u].selected!==s&&(a[u].selected=s),s&&o&&(a[u].defaultSelected=!0)}else{u=\"\"+Sa(u);i=null;for(s=0;s<a.length;s++){if(a[s].value===u){a[s].selected=!0;o&&(a[s].defaultSelected=!0);return}null!==i||a[s].disabled||(i=a[s])}null!==i&&(i.selected=!0)}}function gb(a,i){if(null!=i.dangerouslySetInnerHTML)throw Error(p(91));return ie({},i,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,i){var u=i.value;if(null==u){u=i.children;i=i.defaultValue;if(null!=u){if(null!=i)throw Error(p(92));if(fe(u)){if(1<u.length)throw Error(p(93));u=u[0]}i=u}null==i&&(i=\"\");u=i}a._wrapperState={initialValue:Sa(u)}}function ib(a,i){var u=Sa(i.value),o=Sa(i.defaultValue);null!=u&&(u=\"\"+u,u!==a.value&&(a.value=u),null==i.defaultValue&&a.defaultValue!==u&&(a.defaultValue=u));null!=o&&(a.defaultValue=\"\"+o)}function jb(a){var i=a.textContent;i===a._wrapperState.initialValue&&\"\"!==i&&null!==i&&(a.value=i)}function kb(a){switch(a){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function lb(a,i){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(i):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===i?\"http://www.w3.org/1999/xhtml\":a}var de,pe=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(i,u,o,s){MSApp.execUnsafeLocalFunction((function(){return a(i,u,o,s)}))}:a}((function(a,i){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=i;else{de=de||document.createElement(\"div\");de.innerHTML=\"<svg>\"+i.valueOf().toString()+\"</svg>\";for(i=de.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;i.firstChild;)a.appendChild(i.firstChild)}}));function ob(a,i){if(i){var u=a.firstChild;if(u&&u===a.lastChild&&3===u.nodeType){u.nodeValue=i;return}}a.textContent=i}var be={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(be).forEach((function(a){ye.forEach((function(i){i=i+a.charAt(0).toUpperCase()+a.substring(1);be[i]=be[a]}))}));function rb(a,i,u){return null==i||\"boolean\"===typeof i||\"\"===i?\"\":u||\"number\"!==typeof i||0===i||be.hasOwnProperty(a)&&be[a]?(\"\"+i).trim():i+\"px\"}function sb(a,i){a=a.style;for(var u in i)if(i.hasOwnProperty(u)){var o=0===u.indexOf(\"--\"),s=rb(u,i[u],o);\"float\"===u&&(u=\"cssFloat\");o?a.setProperty(u,s):a[u]=s}}var we=ie({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(a,i){if(i){if(we[a]&&(null!=i.children||null!=i.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=i.dangerouslySetInnerHTML){if(null!=i.children)throw Error(p(60));if(\"object\"!==typeof i.dangerouslySetInnerHTML||!(\"__html\"in i.dangerouslySetInnerHTML))throw Error(p(61))}if(null!=i.style&&\"object\"!==typeof i.style)throw Error(p(62))}}function vb(a,i){if(-1===a.indexOf(\"-\"))return\"string\"===typeof i.is;switch(a){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var Se=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var xe=null,ze=null,_e=null;function Bb(a){if(a=Cb(a)){if(\"function\"!==typeof xe)throw Error(p(280));var i=a.stateNode;i&&(i=Db(i),xe(a.stateNode,a.type,i))}}function Eb(a){ze?_e?_e.push(a):_e=[a]:ze=a}function Fb(){if(ze){var a=ze,i=_e;_e=ze=null;Bb(a);if(i)for(a=0;a<i.length;a++)Bb(i[a])}}function Gb(a,i){return a(i)}function Hb(){}var Pe=!1;function Jb(a,i,u){if(Pe)return a(i,u);Pe=!0;try{return Gb(a,i,u)}finally{(Pe=!1,null!==ze||null!==_e)&&(Hb(),Fb())}}function Kb(a,i){var u=a.stateNode;if(null===u)return null;var o=Db(u);if(null===o)return null;u=o[i];e:switch(i){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(o=!o.disabled)||(a=a.type,o=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!o;break e;default:a=!1}if(a)return null;if(u&&\"function\"!==typeof u)throw Error(p(231,i,typeof u));return u}var Te=!1;if(N)try{var Re={};Object.defineProperty(Re,\"passive\",{get:function(){Te=!0}});window.addEventListener(\"test\",Re,Re);window.removeEventListener(\"test\",Re,Re)}catch(a){Te=!1}function Nb(a,i,u,o,s,w,x,C,z){var N=Array.prototype.slice.call(arguments,3);try{i.apply(u,N)}catch(a){this.onError(a)}}var We=!1,Qe=null,He=!1,$e=null,Ye={onError:function(a){We=!0;Qe=a}};function Tb(a,i,u,o,s,w,x,C,z){We=!1;Qe=null;Nb.apply(Ye,arguments)}function Ub(a,i,u,o,s,w,x,C,z){Tb.apply(this,arguments);if(We){if(!We)throw Error(p(198));var N=Qe;We=!1;Qe=null;He||(He=!0,$e=N)}}function Vb(a){var i=a,u=a;if(a.alternate)for(;i.return;)i=i.return;else{a=i;do{i=a,0!==(4098&i.flags)&&(u=i.return),a=i.return}while(a)}return 3===i.tag?u:null}function Wb(a){if(13===a.tag){var i=a.memoizedState;null===i&&(a=a.alternate,null!==a&&(i=a.memoizedState));if(null!==i)return i.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188))}function Yb(a){var i=a.alternate;if(!i){i=Vb(a);if(null===i)throw Error(p(188));return i!==a?null:a}for(var u=a,o=i;;){var s=u.return;if(null===s)break;var w=s.alternate;if(null===w){o=s.return;if(null!==o){u=o;continue}break}if(s.child===w.child){for(w=s.child;w;){if(w===u)return Xb(s),a;if(w===o)return Xb(s),i;w=w.sibling}throw Error(p(188))}if(u.return!==o.return)u=s,o=w;else{for(var x=!1,C=s.child;C;){if(C===u){x=!0;u=s;o=w;break}if(C===o){x=!0;o=s;u=w;break}C=C.sibling}if(!x){for(C=w.child;C;){if(C===u){x=!0;u=w;o=s;break}if(C===o){x=!0;o=w;u=s;break}C=C.sibling}if(!x)throw Error(p(189))}}if(u.alternate!==o)throw Error(p(190))}if(3!==u.tag)throw Error(p(188));return u.stateNode.current===u?a:i}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var i=$b(a);if(null!==i)return i;a=a.sibling}return null}var qe=x.unstable_scheduleCallback,Xe=x.unstable_cancelCallback,en=x.unstable_shouldYield,nn=x.unstable_requestPaint,tn=x.unstable_now,rn=x.unstable_getCurrentPriorityLevel,ln=x.unstable_ImmediatePriority,an=x.unstable_UserBlockingPriority,un=x.unstable_NormalPriority,on=x.unstable_LowPriority,sn=x.unstable_IdlePriority,cn=null,fn=null;function mc(a){if(fn&&\"function\"===typeof fn.onCommitFiberRoot)try{fn.onCommitFiberRoot(cn,a,void 0,128===(128&a.current.flags))}catch(a){}}var dn=Math.clz32?Math.clz32:nc,pn=Math.log,hn=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pn(a)/hn|0)|0}var gn=64,mn=4194304;function tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&a;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&a;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return a}}function uc(a,i){var u=a.pendingLanes;if(0===u)return 0;var o=0,s=a.suspendedLanes,w=a.pingedLanes,x=268435455&u;if(0!==x){var C=x&~s;0!==C?o=tc(C):(w&=x,0!==w&&(o=tc(w)))}else x=u&~s,0!==x?o=tc(x):0!==w&&(o=tc(w));if(0===o)return 0;if(0!==i&&i!==o&&0===(i&s)&&(s=o&-o,w=i&-i,s>=w||16===s&&0!==(4194240&w)))return i;0!==(4&o)&&(o|=16&u);i=a.entangledLanes;if(0!==i)for(a=a.entanglements,i&=o;0<i;)u=31-dn(i),s=1<<u,o|=a[u],i&=~s;return o}function vc(a,i){switch(a){case 1:case 2:case 4:return i+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function wc(a,i){for(var u=a.suspendedLanes,o=a.pingedLanes,s=a.expirationTimes,w=a.pendingLanes;0<w;){var x=31-dn(w),C=1<<x,z=s[x];-1===z?0!==(C&u)&&0===(C&o)||(s[x]=vc(C,i)):z<=i&&(a.expiredLanes|=C);w&=~C}}function xc(a){a=-1073741825&a.pendingLanes;return 0!==a?a:1073741824&a?1073741824:0}function yc(){var a=gn;gn<<=1;0===(4194240&gn)&&(gn=64);return a}function zc(a){for(var i=[],u=0;31>u;u++)i.push(a);return i}function Ac(a,i,u){a.pendingLanes|=i;536870912!==i&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;i=31-dn(i);a[i]=u}function Bc(a,i){var u=a.pendingLanes&~i;a.pendingLanes=i;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=i;a.mutableReadLanes&=i;a.entangledLanes&=i;i=a.entanglements;var o=a.eventTimes;for(a=a.expirationTimes;0<u;){var s=31-dn(u),w=1<<s;i[s]=0;o[s]=-1;a[s]=-1;u&=~w}}function Cc(a,i){var u=a.entangledLanes|=i;for(a=a.entanglements;u;){var o=31-dn(u),s=1<<o;s&i|a[o]&i&&(a[o]|=i);u&=~s}}var vn=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(268435455&a)?16:536870912:4:1}var bn,yn,kn,wn,Sn,En=!1,xn=[],Cn=null,zn=null,Nn=null,Ln=new Map,_n=new Map,jn=[],Pn=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");function Sc(a,i){switch(a){case\"focusin\":case\"focusout\":Cn=null;break;case\"dragenter\":case\"dragleave\":zn=null;break;case\"mouseover\":case\"mouseout\":Nn=null;break;case\"pointerover\":case\"pointerout\":Ln.delete(i.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":_n.delete(i.pointerId)}}function Tc(a,i,u,o,s,w){if(null===a||a.nativeEvent!==w)return a={blockedOn:i,domEventName:u,eventSystemFlags:o,nativeEvent:w,targetContainers:[s]},null!==i&&(i=Cb(i),null!==i&&yn(i)),a;a.eventSystemFlags|=o;i=a.targetContainers;null!==s&&-1===i.indexOf(s)&&i.push(s);return a}function Uc(a,i,u,o,s){switch(i){case\"focusin\":return Cn=Tc(Cn,a,i,u,o,s),!0;case\"dragenter\":return zn=Tc(zn,a,i,u,o,s),!0;case\"mouseover\":return Nn=Tc(Nn,a,i,u,o,s),!0;case\"pointerover\":var w=s.pointerId;Ln.set(w,Tc(Ln.get(w)||null,a,i,u,o,s));return!0;case\"gotpointercapture\":return w=s.pointerId,_n.set(w,Tc(_n.get(w)||null,a,i,u,o,s)),!0}return!1}function Vc(a){var i=Wc(a.target);if(null!==i){var u=Vb(i);if(null!==u)if(i=u.tag,13===i){if(i=Wb(u),null!==i){a.blockedOn=i;Sn(a.priority,(function(){kn(u)}));return}}else if(3===i&&u.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===u.tag?u.stateNode.containerInfo:null;return}}a.blockedOn=null}function Xc(a){if(null!==a.blockedOn)return!1;for(var i=a.targetContainers;0<i.length;){var u=Yc(a.domEventName,a.eventSystemFlags,i[0],a.nativeEvent);if(null!==u)return i=Cb(u),null!==i&&yn(i),a.blockedOn=u,!1;u=a.nativeEvent;var o=new u.constructor(u.type,u);Se=o;u.target.dispatchEvent(o);Se=null;i.shift()}return!0}function Zc(a,i,u){Xc(a)&&u.delete(i)}function $c(){En=!1;null!==Cn&&Xc(Cn)&&(Cn=null);null!==zn&&Xc(zn)&&(zn=null);null!==Nn&&Xc(Nn)&&(Nn=null);Ln.forEach(Zc);_n.forEach(Zc)}function ad(a,i){a.blockedOn===i&&(a.blockedOn=null,En||(En=!0,x.unstable_scheduleCallback(x.unstable_NormalPriority,$c)))}function bd(a){function b(i){return ad(i,a)}if(0<xn.length){ad(xn[0],a);for(var i=1;i<xn.length;i++){var u=xn[i];u.blockedOn===a&&(u.blockedOn=null)}}null!==Cn&&ad(Cn,a);null!==zn&&ad(zn,a);null!==Nn&&ad(Nn,a);Ln.forEach(b);_n.forEach(b);for(i=0;i<jn.length;i++)u=jn[i],u.blockedOn===a&&(u.blockedOn=null);for(;0<jn.length&&(i=jn[0],null===i.blockedOn);)Vc(i),null===i.blockedOn&&jn.shift()}var Tn=R.ReactCurrentBatchConfig,Dn=!0;function ed(a,i,u,o){var s=vn,w=Tn.transition;Tn.transition=null;try{vn=1,fd(a,i,u,o)}finally{vn=s,Tn.transition=w}}function gd(a,i,u,o){var s=vn,w=Tn.transition;Tn.transition=null;try{vn=4,fd(a,i,u,o)}finally{vn=s,Tn.transition=w}}function fd(a,i,u,o){if(Dn){var s=Yc(a,i,u,o);if(null===s)hd(a,i,o,Mn,u),Sc(a,o);else if(Uc(s,a,i,u,o))o.stopPropagation();else if(Sc(a,o),4&i&&-1<Pn.indexOf(a)){for(;null!==s;){var w=Cb(s);null!==w&&bn(w);w=Yc(a,i,u,o);null===w&&hd(a,i,o,Mn,u);if(w===s)break;s=w}null!==s&&o.stopPropagation()}else hd(a,i,o,null,u)}}var Mn=null;function Yc(a,i,u,o){Mn=null;a=xb(o);a=Wc(a);if(null!==a)if(i=Vb(a),null===i)a=null;else if(u=i.tag,13===u){a=Wb(i);if(null!==a)return a;a=null}else if(3===u){if(i.stateNode.current.memoizedState.isDehydrated)return 3===i.tag?i.stateNode.containerInfo:null;a=null}else i!==a&&(a=null);Mn=a;return null}function jd(a){switch(a){case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 1;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"toggle\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 4;case\"message\":switch(rn()){case ln:return 1;case an:return 4;case un:case on:return 16;case sn:return 536870912;default:return 16}default:return 16}}var Fn=null,Rn=null,On=null;function nd(){if(On)return On;var a,i,u=Rn,o=u.length,s=\"value\"in Fn?Fn.value:Fn.textContent,w=s.length;for(a=0;a<o&&u[a]===s[a];a++);var x=o-a;for(i=1;i<=x&&u[o-i]===s[w-i];i++);return On=s.slice(a,1<i?1-i:void 0)}function od(a){var i=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===i&&(a=13)):a=i;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}function rd(a){function b(i,u,o,s,w){this._reactName=i;this._targetInst=o;this.type=u;this.nativeEvent=s;this.target=w;this.currentTarget=null;for(var x in a)a.hasOwnProperty(x)&&(i=a[x],this[x]=i?i(s):s[x]);this.isDefaultPrevented=(null!=s.defaultPrevented?s.defaultPrevented:!1===s.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}ie(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}var In,Un,Vn,Wn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Qn=rd(Wn),An=ie({},Wn,{view:0,detail:0}),Bn=rd(An),Hn=ie({},An,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in a)return a.movementX;a!==Vn&&(Vn&&\"mousemove\"===a.type?(In=a.screenX-Vn.screenX,Un=a.screenY-Vn.screenY):Un=In=0,Vn=a);return In},movementY:function(a){return\"movementY\"in a?a.movementY:Un}}),$n=rd(Hn),Kn=ie({},Hn,{dataTransfer:0}),Yn=rd(Kn),Zn=ie({},An,{relatedTarget:0}),Gn=rd(Zn),qn=ie({},Wn,{animationName:0,elapsedTime:0,pseudoElement:0}),Xn=rd(qn),Jn=ie({},Wn,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),et=rd(Jn),nt=ie({},Wn,{data:0}),tt=rd(nt),rt={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},lt={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},at={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(a):!!(a=at[a])&&!!i[a]}function zd(){return Pd}var it=ie({},An,{key:function(a){if(a.key){var i=rt[a.key]||a.key;if(\"Unidentified\"!==i)return i}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?lt[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),ut=rd(it),ot=ie({},Hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),st=rd(ot),ct=ie({},An,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),ft=rd(ct),dt=ie({},Wn,{propertyName:0,elapsedTime:0,pseudoElement:0}),pt=rd(dt),ht=ie({},Hn,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),gt=rd(ht),mt=[9,13,27,32],vt=N&&\"CompositionEvent\"in window,bt=null;N&&\"documentMode\"in document&&(bt=document.documentMode);var yt=N&&\"TextEvent\"in window&&!bt,kt=N&&(!vt||bt&&8<bt&&11>=bt),wt=String.fromCharCode(32),St=!1;function ge(a,i){switch(a){case\"keyup\":return-1!==mt.indexOf(i.keyCode);case\"keydown\":return 229!==i.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Et=!1;function je(a,i){switch(a){case\"compositionend\":return he(i);case\"keypress\":if(32!==i.which)return null;St=!0;return wt;case\"textInput\":return a=i.data,a===wt&&St?null:a;default:return null}}function ke(a,i){if(Et)return\"compositionend\"===a||!vt&&ge(a,i)?(a=nd(),On=Rn=Fn=null,Et=!1,a):null;switch(a){case\"paste\":return null;case\"keypress\":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1<i.char.length)return i.char;if(i.which)return String.fromCharCode(i.which)}return null;case\"compositionend\":return kt&&\"ko\"!==i.locale?null:i.data;default:return null}}var xt={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var i=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===i?!!xt[a.type]:\"textarea\"===i}function ne(a,i,u,o){Eb(o);i=oe(i,\"onChange\");0<i.length&&(u=new Qn(\"onChange\",\"change\",null,u,o),a.push({event:u,listeners:i}))}var Ct=null,zt=null;function re(a){se(a,0)}function te(a){var i=ue(a);if(Wa(i))return a}function ve(a,i){if(\"change\"===a)return i}var Nt=!1;if(N){var Lt;if(N){var _t=\"oninput\"in document;if(!_t){var jt=document.createElement(\"div\");jt.setAttribute(\"oninput\",\"return;\");_t=\"function\"===typeof jt.oninput}Lt=_t}else Lt=!1;Nt=Lt&&(!document.documentMode||9<document.documentMode)}function Ae(){Ct&&(Ct.detachEvent(\"onpropertychange\",Be),zt=Ct=null)}function Be(a){if(\"value\"===a.propertyName&&te(zt)){var i=[];ne(i,zt,a,xb(a));Jb(re,i)}}function Ce(a,i,u){\"focusin\"===a?(Ae(),Ct=i,zt=u,Ct.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(zt)}function Ee(a,i){if(\"click\"===a)return te(i)}function Fe(a,i){if(\"input\"===a||\"change\"===a)return te(i)}function Ge(a,i){return a===i&&(0!==a||1/a===1/i)||a!==a&&i!==i}var Pt=\"function\"===typeof Object.is?Object.is:Ge;function Ie(a,i){if(Pt(a,i))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof i||null===i)return!1;var u=Object.keys(a),o=Object.keys(i);if(u.length!==o.length)return!1;for(o=0;o<u.length;o++){var s=u[o];if(!_.call(i,s)||!Pt(a[s],i[s]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function Ke(a,i){var u=Je(a);a=0;for(var o;u;){if(3===u.nodeType){o=a+u.textContent.length;if(a<=i&&o>=i)return{node:u,offset:i-a};a=o}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=Je(u)}}function Le(a,i){return!(!a||!i)&&(a===i||(!a||3!==a.nodeType)&&(i&&3===i.nodeType?Le(a,i.parentNode):\"contains\"in a?a.contains(i):!!a.compareDocumentPosition&&!!(16&a.compareDocumentPosition(i))))}function Me(){for(var a=window,i=Xa();i instanceof a.HTMLIFrameElement;){try{var u=\"string\"===typeof i.contentWindow.location.href}catch(a){u=!1}if(!u)break;a=i.contentWindow;i=Xa(a.document)}return i}function Ne(a){var i=a&&a.nodeName&&a.nodeName.toLowerCase();return i&&(\"input\"===i&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===i||\"true\"===a.contentEditable)}function Oe(a){var i=Me(),u=a.focusedElem,o=a.selectionRange;if(i!==u&&u&&u.ownerDocument&&Le(u.ownerDocument.documentElement,u)){if(null!==o&&Ne(u))if(i=o.start,a=o.end,void 0===a&&(a=i),\"selectionStart\"in u)u.selectionStart=i,u.selectionEnd=Math.min(a,u.value.length);else if(a=(i=u.ownerDocument||document)&&i.defaultView||window,a.getSelection){a=a.getSelection();var s=u.textContent.length,w=Math.min(o.start,s);o=void 0===o.end?w:Math.min(o.end,s);!a.extend&&w>o&&(s=o,o=w,w=s);s=Ke(u,w);var x=Ke(u,o);s&&x&&(1!==a.rangeCount||a.anchorNode!==s.node||a.anchorOffset!==s.offset||a.focusNode!==x.node||a.focusOffset!==x.offset)&&(i=i.createRange(),i.setStart(s.node,s.offset),a.removeAllRanges(),w>o?(a.addRange(i),a.extend(x.node,x.offset)):(i.setEnd(x.node,x.offset),a.addRange(i)))}i=[];for(a=u;a=a.parentNode;)1===a.nodeType&&i.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof u.focus&&u.focus();for(u=0;u<i.length;u++)a=i[u],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}var Tt=N&&\"documentMode\"in document&&11>=document.documentMode,Dt=null,Mt=null,Ft=null,Rt=!1;function Ue(a,i,u){var o=u.window===u?u.document:9===u.nodeType?u:u.ownerDocument;Rt||null==Dt||Dt!==Xa(o)||(o=Dt,\"selectionStart\"in o&&Ne(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),Ft&&Ie(Ft,o)||(Ft=o,o=oe(Mt,\"onSelect\"),0<o.length&&(i=new Qn(\"onSelect\",\"select\",null,i,u),a.push({event:i,listeners:o}),i.target=Dt)))}function Ve(a,i){var u={};u[a.toLowerCase()]=i.toLowerCase();u[\"Webkit\"+a]=\"webkit\"+i;u[\"Moz\"+a]=\"moz\"+i;return u}var Ot={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},It={},Ut={};N&&(Ut=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ot.animationend.animation,delete Ot.animationiteration.animation,delete Ot.animationstart.animation),\"TransitionEvent\"in window||delete Ot.transitionend.transition);function Ze(a){if(It[a])return It[a];if(!Ot[a])return a;var i,u=Ot[a];for(i in u)if(u.hasOwnProperty(i)&&i in Ut)return It[a]=u[i];return a}var Vt=Ze(\"animationend\"),Wt=Ze(\"animationiteration\"),Qt=Ze(\"animationstart\"),At=Ze(\"transitionend\"),Bt=new Map,Ht=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function ff(a,i){Bt.set(a,i);fa(i,[a])}for(var $t=0;$t<Ht.length;$t++){var Kt=Ht[$t],Yt=Kt.toLowerCase(),Zt=Kt[0].toUpperCase()+Kt.slice(1);ff(Yt,\"on\"+Zt)}ff(Vt,\"onAnimationEnd\");ff(Wt,\"onAnimationIteration\");ff(Qt,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(At,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Gt=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),qt=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Gt));function nf(a,i,u){var o=a.type||\"unknown-event\";a.currentTarget=u;Ub(o,i,void 0,a);a.currentTarget=null}function se(a,i){i=0!==(4&i);for(var u=0;u<a.length;u++){var o=a[u],s=o.event;o=o.listeners;e:{var w=void 0;if(i)for(var x=o.length-1;0<=x;x--){var C=o[x],z=C.instance,N=C.currentTarget;C=C.listener;if(z!==w&&s.isPropagationStopped())break e;nf(s,C,N);w=z}else for(x=0;x<o.length;x++){C=o[x];z=C.instance;N=C.currentTarget;C=C.listener;if(z!==w&&s.isPropagationStopped())break e;nf(s,C,N);w=z}}}if(He)throw a=$e,He=!1,$e=null,a}function D(a,i){var u=i[fr];void 0===u&&(u=i[fr]=new Set);var o=a+\"__bubble\";u.has(o)||(pf(i,a,2,!1),u.add(o))}function qf(a,i,u){var o=0;i&&(o|=4);pf(u,a,o,i)}var Xt=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[Xt]){a[Xt]=!0;C.forEach((function(i){\"selectionchange\"!==i&&(qt.has(i)||qf(i,!1,a),qf(i,!0,a))}));var i=9===a.nodeType?a:a.ownerDocument;null===i||i[Xt]||(i[Xt]=!0,qf(\"selectionchange\",!1,i))}}function pf(a,i,u,o){switch(jd(i)){case 1:var s=ed;break;case 4:s=gd;break;default:s=fd}u=s.bind(null,i,u,a);s=void 0;!Te||\"touchstart\"!==i&&\"touchmove\"!==i&&\"wheel\"!==i||(s=!0);o?void 0!==s?a.addEventListener(i,u,{capture:!0,passive:s}):a.addEventListener(i,u,!0):void 0!==s?a.addEventListener(i,u,{passive:s}):a.addEventListener(i,u,!1)}function hd(a,i,u,o,s){var w=o;if(0===(1&i)&&0===(2&i)&&null!==o)e:for(;;){if(null===o)return;var x=o.tag;if(3===x||4===x){var C=o.stateNode.containerInfo;if(C===s||8===C.nodeType&&C.parentNode===s)break;if(4===x)for(x=o.return;null!==x;){var z=x.tag;if((3===z||4===z)&&(z=x.stateNode.containerInfo,z===s||8===z.nodeType&&z.parentNode===s))return;x=x.return}for(;null!==C;){x=Wc(C);if(null===x)return;z=x.tag;if(5===z||6===z){o=w=x;continue e}C=C.parentNode}}o=o.return}Jb((function(){var o=w,s=xb(u),x=[];e:{var C=Bt.get(a);if(void 0!==C){var z=Qn,N=a;switch(a){case\"keypress\":if(0===od(u))break e;case\"keydown\":case\"keyup\":z=ut;break;case\"focusin\":N=\"focus\";z=Gn;break;case\"focusout\":N=\"blur\";z=Gn;break;case\"beforeblur\":case\"afterblur\":z=Gn;break;case\"click\":if(2===u.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":z=$n;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":z=Yn;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":z=ft;break;case Vt:case Wt:case Qt:z=Xn;break;case At:z=pt;break;case\"scroll\":z=Bn;break;case\"wheel\":z=gt;break;case\"copy\":case\"cut\":case\"paste\":z=et;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":z=st}var _=0!==(4&i),j=!_&&\"scroll\"===a,P=_?null!==C?C+\"Capture\":null:C;_=[];for(var T,M=o;null!==M;){T=M;var F=T.stateNode;5===T.tag&&null!==F&&(T=F,null!==P&&(F=Kb(M,P),null!=F&&_.push(tf(M,F,T))));if(j)break;M=M.return}0<_.length&&(C=new z(C,N,null,u,s),x.push({event:C,listeners:_}))}}if(0===(7&i)){C=\"mouseover\"===a||\"pointerover\"===a;z=\"mouseout\"===a||\"pointerout\"===a;if((!C||u===Se||!(N=u.relatedTarget||u.fromElement)||!Wc(N)&&!N[cr])&&(z||C)){C=s.window===s?s:(C=s.ownerDocument)?C.defaultView||C.parentWindow:window;z?(N=u.relatedTarget||u.toElement,z=o,N=N?Wc(N):null,null!==N&&(j=Vb(N),N!==j||5!==N.tag&&6!==N.tag))&&(N=null):(z=null,N=o);if(z!==N){_=$n;F=\"onMouseLeave\";P=\"onMouseEnter\";M=\"mouse\";\"pointerout\"!==a&&\"pointerover\"!==a||(_=st,F=\"onPointerLeave\",P=\"onPointerEnter\",M=\"pointer\");j=null==z?C:ue(z);T=null==N?C:ue(N);C=new _(F,M+\"leave\",z,u,s);C.target=j;C.relatedTarget=T;F=null;Wc(s)===o&&(_=new _(P,M+\"enter\",N,u,s),_.target=T,_.relatedTarget=j,F=_);j=F;if(z&&N)e:{_=z;P=N;M=0;for(T=_;T;T=vf(T))M++;T=0;for(F=P;F;F=vf(F))T++;for(;0<M-T;)_=vf(_),M--;for(;0<T-M;)P=vf(P),T--;for(;M--;){if(_===P||null!==P&&_===P.alternate)break e;_=vf(_);P=vf(P)}_=null}else _=null;null!==z&&wf(x,C,z,_,!1);null!==N&&null!==j&&wf(x,j,N,_,!0)}}C=o?ue(o):window;z=C.nodeName&&C.nodeName.toLowerCase();if(\"select\"===z||\"input\"===z&&\"file\"===C.type)var R=ve;else if(me(C))if(Nt)R=Fe;else{R=De;var O=Ce}else(z=C.nodeName)&&\"input\"===z.toLowerCase()&&(\"checkbox\"===C.type||\"radio\"===C.type)&&(R=Ee);if(R&&(R=R(a,o)))ne(x,R,u,s);else{O&&O(a,C,o);\"focusout\"===a&&(O=C._wrapperState)&&O.controlled&&\"number\"===C.type&&cb(C,\"number\",C.value)}O=o?ue(o):window;switch(a){case\"focusin\":(me(O)||\"true\"===O.contentEditable)&&(Dt=O,Mt=o,Ft=null);break;case\"focusout\":Ft=Mt=Dt=null;break;case\"mousedown\":Rt=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":Rt=!1;Ue(x,u,s);break;case\"selectionchange\":if(Tt)break;case\"keydown\":case\"keyup\":Ue(x,u,s)}var I;if(vt)e:{switch(a){case\"compositionstart\":var U=\"onCompositionStart\";break e;case\"compositionend\":U=\"onCompositionEnd\";break e;case\"compositionupdate\":U=\"onCompositionUpdate\";break e}U=void 0}else Et?ge(a,u)&&(U=\"onCompositionEnd\"):\"keydown\"===a&&229===u.keyCode&&(U=\"onCompositionStart\");U&&(kt&&\"ko\"!==u.locale&&(Et||\"onCompositionStart\"!==U?\"onCompositionEnd\"===U&&Et&&(I=nd()):(Fn=s,Rn=\"value\"in Fn?Fn.value:Fn.textContent,Et=!0)),O=oe(o,U),0<O.length&&(U=new tt(U,a,null,u,s),x.push({event:U,listeners:O}),I?U.data=I:(I=he(u),null!==I&&(U.data=I))));(I=yt?je(a,u):ke(a,u))&&(o=oe(o,\"onBeforeInput\"),0<o.length&&(s=new tt(\"onBeforeInput\",\"beforeinput\",null,u,s),x.push({event:s,listeners:o}),s.data=I))}se(x,i)}))}function tf(a,i,u){return{instance:a,listener:i,currentTarget:u}}function oe(a,i){for(var u=i+\"Capture\",o=[];null!==a;){var s=a,w=s.stateNode;5===s.tag&&null!==w&&(s=w,w=Kb(a,u),null!=w&&o.unshift(tf(a,w,s)),w=Kb(a,i),null!=w&&o.push(tf(a,w,s)));a=a.return}return o}function vf(a){if(null===a)return null;do{a=a.return}while(a&&5!==a.tag);return a||null}function wf(a,i,u,o,s){for(var w=i._reactName,x=[];null!==u&&u!==o;){var C=u,z=C.alternate,N=C.stateNode;if(null!==z&&z===o)break;5===C.tag&&null!==N&&(C=N,s?(z=Kb(u,w),null!=z&&x.unshift(tf(u,z,C))):s||(z=Kb(u,w),null!=z&&x.push(tf(u,z,C))));u=u.return}0!==x.length&&a.push({event:i,listeners:x})}var Jt=/\\r\\n?/g,er=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(Jt,\"\\n\").replace(er,\"\")}function Af(a,i,u){i=zf(i);if(zf(a)!==i&&u)throw Error(p(425))}function Bf(){}var nr=null,tr=null;function Ef(a,i){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof i.children||\"number\"===typeof i.children||\"object\"===typeof i.dangerouslySetInnerHTML&&null!==i.dangerouslySetInnerHTML&&null!=i.dangerouslySetInnerHTML.__html}var rr=\"function\"===typeof setTimeout?setTimeout:void 0,lr=\"function\"===typeof clearTimeout?clearTimeout:void 0,ar=\"function\"===typeof Promise?Promise:void 0,ir=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof ar?function(a){return ar.resolve(null).then(a).catch(If)}:rr;function If(a){setTimeout((function(){throw a}))}function Kf(a,i){var u=i,o=0;do{var s=u.nextSibling;a.removeChild(u);if(s&&8===s.nodeType)if(u=s.data,\"/$\"===u){if(0===o){a.removeChild(s);bd(i);return}o--}else\"$\"!==u&&\"$?\"!==u&&\"$!\"!==u||o++;u=s}while(u);bd(i)}function Lf(a){for(;null!=a;a=a.nextSibling){var i=a.nodeType;if(1===i||3===i)break;if(8===i){i=a.data;if(\"$\"===i||\"$!\"===i||\"$?\"===i)break;if(\"/$\"===i)return null}}return a}function Mf(a){a=a.previousSibling;for(var i=0;a;){if(8===a.nodeType){var u=a.data;if(\"$\"===u||\"$!\"===u||\"$?\"===u){if(0===i)return a;i--}else\"/$\"===u&&i++}a=a.previousSibling}return null}var ur=Math.random().toString(36).slice(2),or=\"__reactFiber$\"+ur,sr=\"__reactProps$\"+ur,cr=\"__reactContainer$\"+ur,fr=\"__reactEvents$\"+ur,dr=\"__reactListeners$\"+ur,pr=\"__reactHandles$\"+ur;function Wc(a){var i=a[or];if(i)return i;for(var u=a.parentNode;u;){if(i=u[cr]||u[or]){u=i.alternate;if(null!==i.child||null!==u&&null!==u.child)for(a=Mf(a);null!==a;){if(u=a[or])return u;a=Mf(a)}return i}a=u;u=a.parentNode}return null}function Cb(a){a=a[or]||a[cr];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33))}function Db(a){return a[sr]||null}var hr=[],gr=-1;function Uf(a){return{current:a}}function E(a){0>gr||(a.current=hr[gr],hr[gr]=null,gr--)}function G(a,i){gr++;hr[gr]=a.current;a.current=i}var mr={},vr=Uf(mr),br=Uf(!1),yr=mr;function Yf(a,i){var u=a.type.contextTypes;if(!u)return mr;var o=a.stateNode;if(o&&o.__reactInternalMemoizedUnmaskedChildContext===i)return o.__reactInternalMemoizedMaskedChildContext;var s,w={};for(s in u)w[s]=i[s];o&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=i,a.__reactInternalMemoizedMaskedChildContext=w);return w}function Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(br);E(vr)}function ag(a,i,u){if(vr.current!==mr)throw Error(p(168));G(vr,i);G(br,u)}function bg(a,i,u){var o=a.stateNode;i=i.childContextTypes;if(\"function\"!==typeof o.getChildContext)return u;o=o.getChildContext();for(var s in o)if(!(s in i))throw Error(p(108,Ra(a)||\"Unknown\",s));return ie({},u,o)}function cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||mr;yr=vr.current;G(vr,a);G(br,br.current);return!0}function dg(a,i,u){var o=a.stateNode;if(!o)throw Error(p(169));u?(a=bg(a,i,yr),o.__reactInternalMemoizedMergedChildContext=a,E(br),E(vr),G(vr,a)):E(br);G(br,u)}var kr=null,wr=!1,Sr=!1;function hg(a){null===kr?kr=[a]:kr.push(a)}function ig(a){wr=!0;hg(a)}function jg(){if(!Sr&&null!==kr){Sr=!0;var a=0,i=vn;try{var u=kr;for(vn=1;a<u.length;a++){var o=u[a];do{o=o(!0)}while(null!==o)}kr=null;wr=!1}catch(i){throw null!==kr&&(kr=kr.slice(a+1)),qe(ln,jg),i}finally{vn=i,Sr=!1}}return null}var Er=[],xr=0,Cr=null,zr=0,Nr=[],Lr=0,_r=null,jr=1,Pr=\"\";function tg(a,i){Er[xr++]=zr;Er[xr++]=Cr;Cr=a;zr=i}function ug(a,i,u){Nr[Lr++]=jr;Nr[Lr++]=Pr;Nr[Lr++]=_r;_r=a;var o=jr;a=Pr;var s=32-dn(o)-1;o&=~(1<<s);u+=1;var w=32-dn(i)+s;if(30<w){var x=s-s%5;w=(o&(1<<x)-1).toString(32);o>>=x;s-=x;jr=1<<32-dn(i)+s|u<<s|o;Pr=w+a}else jr=1<<w|u<<s|o,Pr=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===Cr;)Cr=Er[--xr],Er[xr]=null,zr=Er[--xr],Er[xr]=null;for(;a===_r;)_r=Nr[--Lr],Nr[Lr]=null,Pr=Nr[--Lr],Nr[Lr]=null,jr=Nr[--Lr],Nr[Lr]=null}var Tr=null,Dr=null,Mr=!1,Fr=null;function Ag(a,i){var u=Bg(5,null,null,0);u.elementType=\"DELETED\";u.stateNode=i;u.return=a;i=a.deletions;null===i?(a.deletions=[u],a.flags|=16):i.push(u)}function Cg(a,i){switch(a.tag){case 5:var u=a.type;i=1!==i.nodeType||u.toLowerCase()!==i.nodeName.toLowerCase()?null:i;return null!==i&&(a.stateNode=i,Tr=a,Dr=Lf(i.firstChild),!0);case 6:return i=\"\"===a.pendingProps||3!==i.nodeType?null:i,null!==i&&(a.stateNode=i,Tr=a,Dr=null,!0);case 13:return i=8!==i.nodeType?null:i,null!==i&&(u=null!==_r?{id:jr,overflow:Pr}:null,a.memoizedState={dehydrated:i,treeContext:u,retryLane:1073741824},u=Bg(18,null,null,0),u.stateNode=i,u.return=a,a.child=u,Tr=a,Dr=null,!0);default:return!1}}function Dg(a){return 0!==(1&a.mode)&&0===(128&a.flags)}function Eg(a){if(Mr){var i=Dr;if(i){var u=i;if(!Cg(a,i)){if(Dg(a))throw Error(p(418));i=Lf(u.nextSibling);var o=Tr;i&&Cg(a,i)?Ag(o,u):(a.flags=-4097&a.flags|2,Mr=!1,Tr=a)}}else{if(Dg(a))throw Error(p(418));a.flags=-4097&a.flags|2;Mr=!1;Tr=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Tr=a}function Gg(a){if(a!==Tr)return!1;if(!Mr)return Fg(a),Mr=!0,!1;var i;(i=3!==a.tag)&&!(i=5!==a.tag)&&(i=a.type,i=\"head\"!==i&&\"body\"!==i&&!Ef(a.type,a.memoizedProps));if(i&&(i=Dr)){if(Dg(a))throw Hg(),Error(p(418));for(;i;)Ag(a,i),i=Lf(i.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));e:{a=a.nextSibling;for(i=0;a;){if(8===a.nodeType){var u=a.data;if(\"/$\"===u){if(0===i){Dr=Lf(a.nextSibling);break e}i--}else\"$\"!==u&&\"$!\"!==u&&\"$?\"!==u||i++}a=a.nextSibling}Dr=null}}else Dr=Tr?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=Dr;a;)a=Lf(a.nextSibling)}function Ig(){Dr=Tr=null;Mr=!1}function Jg(a){null===Fr?Fr=[a]:Fr.push(a)}var Rr=R.ReactCurrentBatchConfig;function Lg(a,i){if(a&&a.defaultProps){i=ie({},i);a=a.defaultProps;for(var u in a)void 0===i[u]&&(i[u]=a[u]);return i}return i}var Or=Uf(null),Ir=null,Ur=null,Vr=null;function Qg(){Vr=Ur=Ir=null}function Rg(a){var i=Or.current;E(Or);a._currentValue=i}function Sg(a,i,u){for(;null!==a;){var o=a.alternate;(a.childLanes&i)!==i?(a.childLanes|=i,null!==o&&(o.childLanes|=i)):null!==o&&(o.childLanes&i)!==i&&(o.childLanes|=i);if(a===u)break;a=a.return}}function Tg(a,i){Ir=a;Vr=Ur=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&i)&&(Tl=!0),a.firstContext=null)}function Vg(a){var i=a._currentValue;if(Vr!==a)if(a={context:a,memoizedValue:i,next:null},null===Ur){if(null===Ir)throw Error(p(308));Ur=a;Ir.dependencies={lanes:0,firstContext:a}}else Ur=Ur.next=a;return i}var Wr=null;function Xg(a){null===Wr?Wr=[a]:Wr.push(a)}function Yg(a,i,u,o){var s=i.interleaved;null===s?(u.next=u,Xg(i)):(u.next=s.next,s.next=u);i.interleaved=u;return Zg(a,o)}function Zg(a,i){a.lanes|=i;var u=a.alternate;null!==u&&(u.lanes|=i);u=a;for(a=a.return;null!==a;)a.childLanes|=i,u=a.alternate,null!==u&&(u.childLanes|=i),u=a,a=a.return;return 3===u.tag?u.stateNode:null}var Qr=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function bh(a,i){a=a.updateQueue;i.updateQueue===a&&(i.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,i){return{eventTime:a,lane:i,tag:0,payload:null,callback:null,next:null}}function dh(a,i,u){var o=a.updateQueue;if(null===o)return null;o=o.shared;if(0!==(2&Zl)){var s=o.pending;null===s?i.next=i:(i.next=s.next,s.next=i);o.pending=i;return Zg(a,u)}s=o.interleaved;null===s?(i.next=i,Xg(o)):(i.next=s.next,s.next=i);o.interleaved=i;return Zg(a,u)}function eh(a,i,u){i=i.updateQueue;if(null!==i&&(i=i.shared,0!==(4194240&u))){var o=i.lanes;o&=a.pendingLanes;u|=o;i.lanes=u;Cc(a,u)}}function fh(a,i){var u=a.updateQueue,o=a.alternate;if(null===o||(o=o.updateQueue,u!==o)){a=u.lastBaseUpdate;null===a?u.firstBaseUpdate=i:a.next=i;u.lastBaseUpdate=i}else{var s=null,w=null;u=u.firstBaseUpdate;if(null!==u){do{var x={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};null===w?s=w=x:w=w.next=x;u=u.next}while(null!==u);null===w?s=w=i:w=w.next=i}else s=w=i;u={baseState:o.baseState,firstBaseUpdate:s,lastBaseUpdate:w,shared:o.shared,effects:o.effects};a.updateQueue=u}}function gh(a,i,u,o){var s=a.updateQueue;Qr=!1;var w=s.firstBaseUpdate,x=s.lastBaseUpdate,C=s.shared.pending;if(null!==C){s.shared.pending=null;var z=C,N=z.next;z.next=null;null===x?w=N:x.next=N;x=z;var _=a.alternate;null!==_&&(_=_.updateQueue,C=_.lastBaseUpdate,C!==x&&(null===C?_.firstBaseUpdate=N:C.next=N,_.lastBaseUpdate=z))}if(null!==w){var j=s.baseState;x=0;_=N=z=null;C=w;do{var P=C.lane,T=C.eventTime;if((o&P)===P){null!==_&&(_=_.next={eventTime:T,lane:0,tag:C.tag,payload:C.payload,callback:C.callback,next:null});e:{var M=a,F=C;P=i;T=u;switch(F.tag){case 1:M=F.payload;if(\"function\"===typeof M){j=M.call(T,j,P);break e}j=M;break e;case 3:M.flags=-65537&M.flags|128;case 0:M=F.payload;P=\"function\"===typeof M?M.call(T,j,P):M;if(null===P||void 0===P)break e;j=ie({},j,P);break e;case 2:Qr=!0}}null!==C.callback&&0!==C.lane&&(a.flags|=64,P=s.effects,null===P?s.effects=[C]:P.push(C))}else T={eventTime:T,lane:P,tag:C.tag,payload:C.payload,callback:C.callback,next:null},null===_?(N=_=T,z=j):_=_.next=T,x|=P;C=C.next;if(null===C){if(C=s.shared.pending,null===C)break;P=C,C=P.next,P.next=null,s.lastBaseUpdate=P,s.shared.pending=null}}while(1);null===_&&(z=j);s.baseState=z;s.firstBaseUpdate=N;s.lastBaseUpdate=_;i=s.shared.interleaved;if(null!==i){s=i;do{x|=s.lane,s=s.next}while(s!==i)}else null===w&&(s.shared.lanes=0);aa|=x;a.lanes=x;a.memoizedState=j}}function ih(a,i,u){a=i.effects;i.effects=null;if(null!==a)for(i=0;i<a.length;i++){var o=a[i],s=o.callback;if(null!==s){o.callback=null;o=u;if(\"function\"!==typeof s)throw Error(p(191,s));s.call(o)}}}var Ar=(new w.Component).refs;function kh(a,i,u,o){i=a.memoizedState;u=u(o,i);u=null===u||void 0===u?i:ie({},i,u);a.memoizedState=u;0===a.lanes&&(a.updateQueue.baseState=u)}var Br={isMounted:function(a){return!!(a=a._reactInternals)&&Vb(a)===a},enqueueSetState:function(a,i,u){a=a._reactInternals;var o=L(),s=lh(a),w=ch(o,s);w.payload=i;void 0!==u&&null!==u&&(w.callback=u);i=dh(a,w,s);null!==i&&(mh(i,a,s,o),eh(i,a,s))},enqueueReplaceState:function(a,i,u){a=a._reactInternals;var o=L(),s=lh(a),w=ch(o,s);w.tag=1;w.payload=i;void 0!==u&&null!==u&&(w.callback=u);i=dh(a,w,s);null!==i&&(mh(i,a,s,o),eh(i,a,s))},enqueueForceUpdate:function(a,i){a=a._reactInternals;var u=L(),o=lh(a),s=ch(u,o);s.tag=2;void 0!==i&&null!==i&&(s.callback=i);i=dh(a,s,o);null!==i&&(mh(i,a,o,u),eh(i,a,o))}};function oh(a,i,u,o,s,w,x){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(o,w,x):!i.prototype||!i.prototype.isPureReactComponent||(!Ie(u,o)||!Ie(s,w))}function ph(a,i,u){var o=!1,s=mr;var w=i.contextType;\"object\"===typeof w&&null!==w?w=Vg(w):(s=Zf(i)?yr:vr.current,o=i.contextTypes,w=(o=null!==o&&void 0!==o)?Yf(a,s):mr);i=new i(u,w);a.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;i.updater=Br;a.stateNode=i;i._reactInternals=a;o&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=s,a.__reactInternalMemoizedMaskedChildContext=w);return i}function qh(a,i,u,o){a=i.state;\"function\"===typeof i.componentWillReceiveProps&&i.componentWillReceiveProps(u,o);\"function\"===typeof i.UNSAFE_componentWillReceiveProps&&i.UNSAFE_componentWillReceiveProps(u,o);i.state!==a&&Br.enqueueReplaceState(i,i.state,null)}function rh(a,i,u,o){var s=a.stateNode;s.props=u;s.state=a.memoizedState;s.refs=Ar;ah(a);var w=i.contextType;\"object\"===typeof w&&null!==w?s.context=Vg(w):(w=Zf(i)?yr:vr.current,s.context=Yf(a,w));s.state=a.memoizedState;w=i.getDerivedStateFromProps;\"function\"===typeof w&&(kh(a,i,w,u),s.state=a.memoizedState);\"function\"===typeof i.getDerivedStateFromProps||\"function\"===typeof s.getSnapshotBeforeUpdate||\"function\"!==typeof s.UNSAFE_componentWillMount&&\"function\"!==typeof s.componentWillMount||(i=s.state,\"function\"===typeof s.componentWillMount&&s.componentWillMount(),\"function\"===typeof s.UNSAFE_componentWillMount&&s.UNSAFE_componentWillMount(),i!==s.state&&Br.enqueueReplaceState(s,s.state,null),gh(a,u,s,o),s.state=a.memoizedState);\"function\"===typeof s.componentDidMount&&(a.flags|=4194308)}function sh(a,i,u){a=u.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(u._owner){u=u._owner;if(u){if(1!==u.tag)throw Error(p(309));var o=u.stateNode}if(!o)throw Error(p(147,a));var s=o,w=\"\"+a;if(null!==i&&null!==i.ref&&\"function\"===typeof i.ref&&i.ref._stringRef===w)return i.ref;i=function(a){var i=s.refs;i===Ar&&(i=s.refs={});null===a?delete i[w]:i[w]=a};i._stringRef=w;return i}if(\"string\"!==typeof a)throw Error(p(284));if(!u._owner)throw Error(p(290,a))}return a}function th(a,i){a=Object.prototype.toString.call(i);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(i).join(\", \")+\"}\":a))}function uh(a){var i=a._init;return i(a._payload)}function vh(a){function b(i,u){if(a){var o=i.deletions;null===o?(i.deletions=[u],i.flags|=16):o.push(u)}}function c(i,u){if(!a)return null;for(;null!==u;)b(i,u),u=u.sibling;return null}function d(a,i){for(a=new Map;null!==i;)null!==i.key?a.set(i.key,i):a.set(i.index,i),i=i.sibling;return a}function e(a,i){a=wh(a,i);a.index=0;a.sibling=null;return a}function f(i,u,o){i.index=o;if(!a)return i.flags|=1048576,u;o=i.alternate;if(null!==o)return o=o.index,o<u?(i.flags|=2,u):o;i.flags|=2;return u}function g(i){a&&null===i.alternate&&(i.flags|=2);return i}function h(a,i,u,o){if(null===i||6!==i.tag)return i=xh(u,a.mode,o),i.return=a,i;i=e(i,u);i.return=a;return i}function k(a,i,u,o){var s=u.type;if(s===U)return m(a,i,u.props.children,o,u.key);if(null!==i&&(i.elementType===s||\"object\"===typeof s&&null!==s&&s.$$typeof===X&&uh(s)===i.type))return o=e(i,u.props),o.ref=sh(a,i,u),o.return=a,o;o=yh(u.type,u.key,u.props,null,a.mode,o);o.ref=sh(a,i,u);o.return=a;return o}function l(a,i,u,o){if(null===i||4!==i.tag||i.stateNode.containerInfo!==u.containerInfo||i.stateNode.implementation!==u.implementation)return i=zh(u,a.mode,o),i.return=a,i;i=e(i,u.children||[]);i.return=a;return i}function m(a,i,u,o,s){if(null===i||7!==i.tag)return i=Ah(u,a.mode,o,s),i.return=a,i;i=e(i,u);i.return=a;return i}function q(a,i,u){if(\"string\"===typeof i&&\"\"!==i||\"number\"===typeof i)return i=xh(\"\"+i,a.mode,u),i.return=a,i;if(\"object\"===typeof i&&null!==i){switch(i.$$typeof){case O:return u=yh(i.type,i.key,i.props,null,a.mode,u),u.ref=sh(a,null,i),u.return=a,u;case I:return i=zh(i,a.mode,u),i.return=a,i;case X:var o=i._init;return q(a,o(i._payload),u)}if(fe(i)||Ka(i))return i=Ah(i,a.mode,u,null),i.return=a,i;th(a,i)}return null}function r(a,i,u,o){var s=null!==i?i.key:null;if(\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u)return null!==s?null:h(a,i,\"\"+u,o);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case O:return u.key===s?k(a,i,u,o):null;case I:return u.key===s?l(a,i,u,o):null;case X:return s=u._init,r(a,i,s(u._payload),o)}if(fe(u)||Ka(u))return null!==s?null:m(a,i,u,o,null);th(a,u)}return null}function y(a,i,u,o,s){if(\"string\"===typeof o&&\"\"!==o||\"number\"===typeof o)return a=a.get(u)||null,h(i,a,\"\"+o,s);if(\"object\"===typeof o&&null!==o){switch(o.$$typeof){case O:return a=a.get(null===o.key?u:o.key)||null,k(i,a,o,s);case I:return a=a.get(null===o.key?u:o.key)||null,l(i,a,o,s);case X:var w=o._init;return y(a,i,u,w(o._payload),s)}if(fe(o)||Ka(o))return a=a.get(u)||null,m(i,a,o,s,null);th(i,o)}return null}function n(i,u,o,s){for(var w=null,x=null,C=u,z=u=0,N=null;null!==C&&z<o.length;z++){C.index>z?(N=C,C=null):N=C.sibling;var _=r(i,C,o[z],s);if(null===_){null===C&&(C=N);break}a&&C&&null===_.alternate&&b(i,C);u=f(_,u,z);null===x?w=_:x.sibling=_;x=_;C=N}if(z===o.length)return c(i,C),Mr&&tg(i,z),w;if(null===C){for(;z<o.length;z++)C=q(i,o[z],s),null!==C&&(u=f(C,u,z),null===x?w=C:x.sibling=C,x=C);Mr&&tg(i,z);return w}for(C=d(i,C);z<o.length;z++)N=y(C,i,z,o[z],s),null!==N&&(a&&null!==N.alternate&&C.delete(null===N.key?z:N.key),u=f(N,u,z),null===x?w=N:x.sibling=N,x=N);a&&C.forEach((function(a){return b(i,a)}));Mr&&tg(i,z);return w}function t(i,u,o,s){var w=Ka(o);if(\"function\"!==typeof w)throw Error(p(150));o=w.call(o);if(null==o)throw Error(p(151));for(var x=w=null,C=u,z=u=0,N=null,_=o.next();null!==C&&!_.done;z++,_=o.next()){C.index>z?(N=C,C=null):N=C.sibling;var j=r(i,C,_.value,s);if(null===j){null===C&&(C=N);break}a&&C&&null===j.alternate&&b(i,C);u=f(j,u,z);null===x?w=j:x.sibling=j;x=j;C=N}if(_.done)return c(i,C),Mr&&tg(i,z),w;if(null===C){for(;!_.done;z++,_=o.next())_=q(i,_.value,s),null!==_&&(u=f(_,u,z),null===x?w=_:x.sibling=_,x=_);Mr&&tg(i,z);return w}for(C=d(i,C);!_.done;z++,_=o.next())_=y(C,i,z,_.value,s),null!==_&&(a&&null!==_.alternate&&C.delete(null===_.key?z:_.key),u=f(_,u,z),null===x?w=_:x.sibling=_,x=_);a&&C.forEach((function(a){return b(i,a)}));Mr&&tg(i,z);return w}function J(a,i,u,o){\"object\"===typeof u&&null!==u&&u.type===U&&null===u.key&&(u=u.props.children);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case O:e:{for(var s=u.key,w=i;null!==w;){if(w.key===s){s=u.type;if(s===U){if(7===w.tag){c(a,w.sibling);i=e(w,u.props.children);i.return=a;a=i;break e}}else if(w.elementType===s||\"object\"===typeof s&&null!==s&&s.$$typeof===X&&uh(s)===w.type){c(a,w.sibling);i=e(w,u.props);i.ref=sh(a,w,u);i.return=a;a=i;break e}c(a,w);break}b(a,w);w=w.sibling}u.type===U?(i=Ah(u.props.children,a.mode,o,u.key),i.return=a,a=i):(o=yh(u.type,u.key,u.props,null,a.mode,o),o.ref=sh(a,i,u),o.return=a,a=o)}return g(a);case I:e:{for(w=u.key;null!==i;){if(i.key===w){if(4===i.tag&&i.stateNode.containerInfo===u.containerInfo&&i.stateNode.implementation===u.implementation){c(a,i.sibling);i=e(i,u.children||[]);i.return=a;a=i;break e}c(a,i);break}b(a,i);i=i.sibling}i=zh(u,a.mode,o);i.return=a;a=i}return g(a);case X:return w=u._init,J(a,i,w(u._payload),o)}if(fe(u))return n(a,i,u,o);if(Ka(u))return t(a,i,u,o);th(a,u)}return\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u?(u=\"\"+u,null!==i&&6===i.tag?(c(a,i.sibling),i=e(i,u),i.return=a,a=i):(c(a,i),i=xh(u,a.mode,o),i.return=a,a=i),g(a)):c(a,i)}return J}var Hr=vh(!0),$r=vh(!1),Kr={},Yr=Uf(Kr),Zr=Uf(Kr),Gr=Uf(Kr);function Hh(a){if(a===Kr)throw Error(p(174));return a}function Ih(a,i){G(Gr,i);G(Zr,a);G(Yr,Kr);a=i.nodeType;switch(a){case 9:case 11:i=(i=i.documentElement)?i.namespaceURI:lb(null,\"\");break;default:a=8===a?i.parentNode:i,i=a.namespaceURI||null,a=a.tagName,i=lb(i,a)}E(Yr);G(Yr,i)}function Jh(){E(Yr);E(Zr);E(Gr)}function Kh(a){Hh(Gr.current);var i=Hh(Yr.current);var u=lb(i,a.type);i!==u&&(G(Zr,a),G(Yr,u))}function Lh(a){Zr.current===a&&(E(Yr),E(Zr))}var qr=Uf(0);function Mh(a){for(var i=a;null!==i;){if(13===i.tag){var u=i.memoizedState;if(null!==u&&(u=u.dehydrated,null===u||\"$?\"===u.data||\"$!\"===u.data))return i}else if(19===i.tag&&void 0!==i.memoizedProps.revealOrder){if(0!==(128&i.flags))return i}else if(null!==i.child){i.child.return=i;i=i.child;continue}if(i===a)break;for(;null===i.sibling;){if(null===i.return||i.return===a)return null;i=i.return}i.sibling.return=i.return;i=i.sibling}return null}var Xr=[];function Oh(){for(var a=0;a<Xr.length;a++)Xr[a]._workInProgressVersionPrimary=null;Xr.length=0}var Jr=R.ReactCurrentDispatcher,tl=R.ReactCurrentBatchConfig,ll=0,ul=null,vl=null,yl=null,wl=!1,Sl=!1,El=0,xl=0;function Q(){throw Error(p(321))}function Wh(a,i){if(null===i)return!1;for(var u=0;u<i.length&&u<a.length;u++)if(!Pt(a[u],i[u]))return!1;return!0}function Xh(a,i,u,o,s,w){ll=w;ul=i;i.memoizedState=null;i.updateQueue=null;i.lanes=0;Jr.current=null===a||null===a.memoizedState?zl:Nl;a=u(o,s);if(Sl){w=0;do{Sl=!1;El=0;if(25<=w)throw Error(p(301));w+=1;yl=vl=null;i.updateQueue=null;Jr.current=Ll;a=u(o,s)}while(Sl)}Jr.current=Cl;i=null!==vl&&null!==vl.next;ll=0;yl=vl=ul=null;wl=!1;if(i)throw Error(p(300));return a}function bi(){var a=0!==El;El=0;return a}function ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===yl?ul.memoizedState=yl=a:yl=yl.next=a;return yl}function di(){if(null===vl){var a=ul.alternate;a=null!==a?a.memoizedState:null}else a=vl.next;var i=null===yl?ul.memoizedState:yl.next;if(null!==i)yl=i,vl=a;else{if(null===a)throw Error(p(310));vl=a;a={memoizedState:vl.memoizedState,baseState:vl.baseState,baseQueue:vl.baseQueue,queue:vl.queue,next:null};null===yl?ul.memoizedState=yl=a:yl=yl.next=a}return yl}function ei(a,i){return\"function\"===typeof i?i(a):i}function fi(a){var i=di(),u=i.queue;if(null===u)throw Error(p(311));u.lastRenderedReducer=a;var o=vl,s=o.baseQueue,w=u.pending;if(null!==w){if(null!==s){var x=s.next;s.next=w.next;w.next=x}o.baseQueue=s=w;u.pending=null}if(null!==s){w=s.next;o=o.baseState;var C=x=null,z=null,N=w;do{var _=N.lane;if((ll&_)===_)null!==z&&(z=z.next={lane:0,action:N.action,hasEagerState:N.hasEagerState,eagerState:N.eagerState,next:null}),o=N.hasEagerState?N.eagerState:a(o,N.action);else{var j={lane:_,action:N.action,hasEagerState:N.hasEagerState,eagerState:N.eagerState,next:null};null===z?(C=z=j,x=o):z=z.next=j;ul.lanes|=_;aa|=_}N=N.next}while(null!==N&&N!==w);null===z?x=o:z.next=C;Pt(o,i.memoizedState)||(Tl=!0);i.memoizedState=o;i.baseState=x;i.baseQueue=z;u.lastRenderedState=o}a=u.interleaved;if(null!==a){s=a;do{w=s.lane,ul.lanes|=w,aa|=w,s=s.next}while(s!==a)}else null===s&&(u.lanes=0);return[i.memoizedState,u.dispatch]}function gi(a){var i=di(),u=i.queue;if(null===u)throw Error(p(311));u.lastRenderedReducer=a;var o=u.dispatch,s=u.pending,w=i.memoizedState;if(null!==s){u.pending=null;var x=s=s.next;do{w=a(w,x.action),x=x.next}while(x!==s);Pt(w,i.memoizedState)||(Tl=!0);i.memoizedState=w;null===i.baseQueue&&(i.baseState=w);u.lastRenderedState=w}return[w,o]}function hi(){}function ii(a,i){var u=ul,o=di(),s=i(),w=!Pt(o.memoizedState,s);w&&(o.memoizedState=s,Tl=!0);o=o.queue;ji(ki.bind(null,u,o,a),[a]);if(o.getSnapshot!==i||w||null!==yl&&1&yl.memoizedState.tag){u.flags|=2048;li(9,mi.bind(null,u,o,s,i),void 0,null);if(null===Gl)throw Error(p(349));0!==(30&ll)||ni(u,i,s)}return s}function ni(a,i,u){a.flags|=16384;a={getSnapshot:i,value:u};i=ul.updateQueue;null===i?(i={lastEffect:null,stores:null},ul.updateQueue=i,i.stores=[a]):(u=i.stores,null===u?i.stores=[a]:u.push(a))}function mi(a,i,u,o){i.value=u;i.getSnapshot=o;oi(i)&&pi(a)}function ki(a,i,u){return u((function(){oi(i)&&pi(a)}))}function oi(a){var i=a.getSnapshot;a=a.value;try{var u=i();return!Pt(a,u)}catch(a){return!0}}function pi(a){var i=Zg(a,1);null!==i&&mh(i,a,1,-1)}function qi(a){var i=ci();\"function\"===typeof a&&(a=a());i.memoizedState=i.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};i.queue=a;a=a.dispatch=ri.bind(null,ul,a);return[i.memoizedState,a]}function li(a,i,u,o){a={tag:a,create:i,destroy:u,deps:o,next:null};i=ul.updateQueue;null===i?(i={lastEffect:null,stores:null},ul.updateQueue=i,i.lastEffect=a.next=a):(u=i.lastEffect,null===u?i.lastEffect=a.next=a:(o=u.next,u.next=a,a.next=o,i.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,i,u,o){var s=ci();ul.flags|=a;s.memoizedState=li(1|i,u,void 0,void 0===o?null:o)}function ui(a,i,u,o){var s=di();o=void 0===o?null:o;var w=void 0;if(null!==vl){var x=vl.memoizedState;w=x.destroy;if(null!==o&&Wh(o,x.deps)){s.memoizedState=li(i,u,w,o);return}}ul.flags|=a;s.memoizedState=li(1|i,u,w,o)}function vi(a,i){return ti(8390656,8,a,i)}function ji(a,i){return ui(2048,8,a,i)}function wi(a,i){return ui(4,2,a,i)}function xi(a,i){return ui(4,4,a,i)}function yi(a,i){return\"function\"===typeof i?(a=a(),i(a),function(){i(null)}):null!==i&&void 0!==i?(a=a(),i.current=a,function(){i.current=null}):void 0}function zi(a,i,u){u=null!==u&&void 0!==u?u.concat([a]):null;return ui(4,4,yi.bind(null,i,a),u)}function Ai(){}function Bi(a,i){var u=di();i=void 0===i?null:i;var o=u.memoizedState;if(null!==o&&null!==i&&Wh(i,o[1]))return o[0];u.memoizedState=[a,i];return a}function Ci(a,i){var u=di();i=void 0===i?null:i;var o=u.memoizedState;if(null!==o&&null!==i&&Wh(i,o[1]))return o[0];a=a();u.memoizedState=[a,i];return a}function Di(a,i,u){if(0===(21&ll))return a.baseState&&(a.baseState=!1,Tl=!0),a.memoizedState=u;Pt(u,i)||(u=yc(),ul.lanes|=u,aa|=u,a.baseState=!0);return i}function Ei(a,i){var u=vn;vn=0!==u&&4>u?u:4;a(!0);var o=tl.transition;tl.transition={};try{a(!1),i()}finally{vn=u,tl.transition=o}}function Fi(){return di().memoizedState}function Gi(a,i,u){var o=lh(a);u={lane:o,action:u,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(i,u);else if(u=Yg(a,i,u,o),null!==u){var s=L();mh(u,a,o,s);Ji(u,i,o)}}function ri(a,i,u){var o=lh(a),s={lane:o,action:u,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(i,s);else{var w=a.alternate;if(0===a.lanes&&(null===w||0===w.lanes)&&(w=i.lastRenderedReducer,null!==w))try{var x=i.lastRenderedState,C=w(x,u);s.hasEagerState=!0;s.eagerState=C;if(Pt(C,x)){var z=i.interleaved;null===z?(s.next=s,Xg(i)):(s.next=z.next,z.next=s);i.interleaved=s;return}}catch(a){}u=Yg(a,i,s,o);null!==u&&(s=L(),mh(u,a,o,s),Ji(u,i,o))}}function Hi(a){var i=a.alternate;return a===ul||null!==i&&i===ul}function Ii(a,i){Sl=wl=!0;var u=a.pending;null===u?i.next=i:(i.next=u.next,u.next=i);a.pending=i}function Ji(a,i,u){if(0!==(4194240&u)){var o=i.lanes;o&=a.pendingLanes;u|=o;i.lanes=u;Cc(a,u)}}var Cl={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},zl={readContext:Vg,useCallback:function(a,i){ci().memoizedState=[a,void 0===i?null:i];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,i,u){u=null!==u&&void 0!==u?u.concat([a]):null;return ti(4194308,4,yi.bind(null,i,a),u)},useLayoutEffect:function(a,i){return ti(4194308,4,a,i)},useInsertionEffect:function(a,i){return ti(4,2,a,i)},useMemo:function(a,i){var u=ci();i=void 0===i?null:i;a=a();u.memoizedState=[a,i];return a},useReducer:function(a,i,u){var o=ci();i=void 0!==u?u(i):i;o.memoizedState=o.baseState=i;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:i};o.queue=a;a=a.dispatch=Gi.bind(null,ul,a);return[o.memoizedState,a]},useRef:function(a){var i=ci();a={current:a};return i.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),i=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[i,a]},useMutableSource:function(){},useSyncExternalStore:function(a,i,u){var o=ul,s=ci();if(Mr){if(void 0===u)throw Error(p(407));u=u()}else{u=i();if(null===Gl)throw Error(p(349));0!==(30&ll)||ni(o,i,u)}s.memoizedState=u;var w={value:u,getSnapshot:i};s.queue=w;vi(ki.bind(null,o,w,a),[a]);o.flags|=2048;li(9,mi.bind(null,o,w,u,i),void 0,null);return u},useId:function(){var a=ci(),i=Gl.identifierPrefix;if(Mr){var u=Pr;var o=jr;u=(o&~(1<<32-dn(o)-1)).toString(32)+u;i=\":\"+i+\"R\"+u;u=El++;0<u&&(i+=\"H\"+u.toString(32));i+=\":\"}else u=xl++,i=\":\"+i+\"r\"+u.toString(32)+\":\";return a.memoizedState=i},unstable_isNewReconciler:!1},Nl={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var i=di();return Di(i,vl.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],i=di().memoizedState;return[a,i]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},Ll={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var i=di();return null===vl?i.memoizedState=a:Di(i,vl.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],i=di().memoizedState;return[a,i]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,i){try{var u=\"\",o=i;do{u+=Pa(o),o=o.return}while(o);var s=u}catch(a){s=\"\\nError generating stack: \"+a.message+\"\\n\"+a.stack}return{value:a,source:i,stack:s,digest:null}}function Li(a,i,u){return{value:a,source:null,stack:null!=u?u:null,digest:null!=i?i:null}}function Mi(a,i){try{console.error(i.value)}catch(a){setTimeout((function(){throw a}))}}var _l=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,i,u){u=ch(-1,u);u.tag=3;u.payload={element:null};var o=i.value;u.callback=function(){ba||(ba=!0,ya=o);Mi(a,i)};return u}function Ri(a,i,u){u=ch(-1,u);u.tag=3;var o=a.type.getDerivedStateFromError;if(\"function\"===typeof o){var s=i.value;u.payload=function(){return o(s)};u.callback=function(){Mi(a,i)}}var w=a.stateNode;null!==w&&\"function\"===typeof w.componentDidCatch&&(u.callback=function(){Mi(a,i);\"function\"!==typeof o&&(null===ka?ka=new Set([this]):ka.add(this));var u=i.stack;this.componentDidCatch(i.value,{componentStack:null!==u?u:\"\"})});return u}function Ti(a,i,u){var o=a.pingCache;if(null===o){o=a.pingCache=new _l;var s=new Set;o.set(i,s)}else s=o.get(i),void 0===s&&(s=new Set,o.set(i,s));s.has(u)||(s.add(u),a=Ui.bind(null,a,i,u),i.then(a,a))}function Vi(a){do{var i;(i=13===a.tag)&&(i=a.memoizedState,i=null===i||null!==i.dehydrated);if(i)return a;a=a.return}while(null!==a);return null}function Wi(a,i,u,o,s){if(0===(1&a.mode))return a===i?a.flags|=65536:(a.flags|=128,u.flags|=131072,u.flags&=-52805,1===u.tag&&(null===u.alternate?u.tag=17:(i=ch(-1,1),i.tag=2,dh(u,i,1))),u.lanes|=1),a;a.flags|=65536;a.lanes=s;return a}var Pl=R.ReactCurrentOwner,Tl=!1;function Yi(a,i,u,o){i.child=null===a?$r(i,null,u,o):Hr(i,a.child,u,o)}function Zi(a,i,u,o,s){u=u.render;var w=i.ref;Tg(i,s);o=Xh(a,i,u,o,w,s);u=bi();if(null!==a&&!Tl)return i.updateQueue=a.updateQueue,i.flags&=-2053,a.lanes&=~s,$i(a,i,s);Mr&&u&&vg(i);i.flags|=1;Yi(a,i,o,s);return i.child}function aj(a,i,u,o,s){if(null===a){var w=u.type;if(\"function\"===typeof w&&!bj(w)&&void 0===w.defaultProps&&null===u.compare&&void 0===u.defaultProps)return i.tag=15,i.type=w,cj(a,i,w,o,s);a=yh(u.type,null,o,i,i.mode,s);a.ref=i.ref;a.return=i;return i.child=a}w=a.child;if(0===(a.lanes&s)){var x=w.memoizedProps;u=u.compare;u=null!==u?u:Ie;if(u(x,o)&&a.ref===i.ref)return $i(a,i,s)}i.flags|=1;a=wh(w,o);a.ref=i.ref;a.return=i;return i.child=a}function cj(a,i,u,o,s){if(null!==a){var w=a.memoizedProps;if(Ie(w,o)&&a.ref===i.ref){if(Tl=!1,i.pendingProps=o=w,0===(a.lanes&s))return i.lanes=a.lanes,$i(a,i,s);0!==(131072&a.flags)&&(Tl=!0)}}return dj(a,i,u,o,s)}function ej(a,i,u){var o=i.pendingProps,s=o.children,w=null!==a?a.memoizedState:null;if(\"hidden\"===o.mode)if(0===(1&i.mode))i.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(na,ea),ea|=u;else{if(0===(1073741824&u))return a=null!==w?w.baseLanes|u:u,i.lanes=i.childLanes=1073741824,i.memoizedState={baseLanes:a,cachePool:null,transitions:null},i.updateQueue=null,G(na,ea),ea|=a,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null};o=null!==w?w.baseLanes:u;G(na,ea);ea|=o}else null!==w?(o=w.baseLanes|u,i.memoizedState=null):o=u,G(na,ea),ea|=o;Yi(a,i,s,u);return i.child}function hj(a,i){var u=i.ref;(null===a&&null!==u||null!==a&&a.ref!==u)&&(i.flags|=512,i.flags|=2097152)}function dj(a,i,u,o,s){var w=Zf(u)?yr:vr.current;w=Yf(i,w);Tg(i,s);u=Xh(a,i,u,o,w,s);o=bi();if(null!==a&&!Tl)return i.updateQueue=a.updateQueue,i.flags&=-2053,a.lanes&=~s,$i(a,i,s);Mr&&o&&vg(i);i.flags|=1;Yi(a,i,u,s);return i.child}function ij(a,i,u,o,s){if(Zf(u)){var w=!0;cg(i)}else w=!1;Tg(i,s);if(null===i.stateNode)jj(a,i),ph(i,u,o),rh(i,u,o,s),o=!0;else if(null===a){var x=i.stateNode,C=i.memoizedProps;x.props=C;var z=x.context,N=u.contextType;\"object\"===typeof N&&null!==N?N=Vg(N):(N=Zf(u)?yr:vr.current,N=Yf(i,N));var _=u.getDerivedStateFromProps,j=\"function\"===typeof _||\"function\"===typeof x.getSnapshotBeforeUpdate;j||\"function\"!==typeof x.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof x.componentWillReceiveProps||(C!==o||z!==N)&&qh(i,x,o,N);Qr=!1;var P=i.memoizedState;x.state=P;gh(i,o,x,s);z=i.memoizedState;C!==o||P!==z||br.current||Qr?(\"function\"===typeof _&&(kh(i,u,_,o),z=i.memoizedState),(C=Qr||oh(i,u,C,o,P,z,N))?(j||\"function\"!==typeof x.UNSAFE_componentWillMount&&\"function\"!==typeof x.componentWillMount||(\"function\"===typeof x.componentWillMount&&x.componentWillMount(),\"function\"===typeof x.UNSAFE_componentWillMount&&x.UNSAFE_componentWillMount()),\"function\"===typeof x.componentDidMount&&(i.flags|=4194308)):(\"function\"===typeof x.componentDidMount&&(i.flags|=4194308),i.memoizedProps=o,i.memoizedState=z),x.props=o,x.state=z,x.context=N,o=C):(\"function\"===typeof x.componentDidMount&&(i.flags|=4194308),o=!1)}else{x=i.stateNode;bh(a,i);C=i.memoizedProps;N=i.type===i.elementType?C:Lg(i.type,C);x.props=N;j=i.pendingProps;P=x.context;z=u.contextType;\"object\"===typeof z&&null!==z?z=Vg(z):(z=Zf(u)?yr:vr.current,z=Yf(i,z));var T=u.getDerivedStateFromProps;(_=\"function\"===typeof T||\"function\"===typeof x.getSnapshotBeforeUpdate)||\"function\"!==typeof x.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof x.componentWillReceiveProps||(C!==j||P!==z)&&qh(i,x,o,z);Qr=!1;P=i.memoizedState;x.state=P;gh(i,o,x,s);var M=i.memoizedState;C!==j||P!==M||br.current||Qr?(\"function\"===typeof T&&(kh(i,u,T,o),M=i.memoizedState),(N=Qr||oh(i,u,N,o,P,M,z)||!1)?(_||\"function\"!==typeof x.UNSAFE_componentWillUpdate&&\"function\"!==typeof x.componentWillUpdate||(\"function\"===typeof x.componentWillUpdate&&x.componentWillUpdate(o,M,z),\"function\"===typeof x.UNSAFE_componentWillUpdate&&x.UNSAFE_componentWillUpdate(o,M,z)),\"function\"===typeof x.componentDidUpdate&&(i.flags|=4),\"function\"===typeof x.getSnapshotBeforeUpdate&&(i.flags|=1024)):(\"function\"!==typeof x.componentDidUpdate||C===a.memoizedProps&&P===a.memoizedState||(i.flags|=4),\"function\"!==typeof x.getSnapshotBeforeUpdate||C===a.memoizedProps&&P===a.memoizedState||(i.flags|=1024),i.memoizedProps=o,i.memoizedState=M),x.props=o,x.state=M,x.context=z,o=N):(\"function\"!==typeof x.componentDidUpdate||C===a.memoizedProps&&P===a.memoizedState||(i.flags|=4),\"function\"!==typeof x.getSnapshotBeforeUpdate||C===a.memoizedProps&&P===a.memoizedState||(i.flags|=1024),o=!1)}return kj(a,i,u,o,w,s)}function kj(a,i,u,o,s,w){hj(a,i);var x=0!==(128&i.flags);if(!o&&!x)return s&&dg(i,u,!1),$i(a,i,w);o=i.stateNode;Pl.current=i;var C=x&&\"function\"!==typeof u.getDerivedStateFromError?null:o.render();i.flags|=1;null!==a&&x?(i.child=Hr(i,a.child,null,w),i.child=Hr(i,null,C,w)):Yi(a,i,C,w);i.memoizedState=o.state;s&&dg(i,u,!0);return i.child}function lj(a){var i=a.stateNode;i.pendingContext?ag(a,i.pendingContext,i.pendingContext!==i.context):i.context&&ag(a,i.context,!1);Ih(a,i.containerInfo)}function mj(a,i,u,o,s){Ig();Jg(s);i.flags|=256;Yi(a,i,u,o);return i.child}var Dl={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}function pj(a,i,u){var o,s=i.pendingProps,w=qr.current,x=!1,C=0!==(128&i.flags);(o=C)||(o=(null===a||null!==a.memoizedState)&&0!==(2&w));o?(x=!0,i.flags&=-129):null!==a&&null===a.memoizedState||(w|=1);G(qr,1&w);if(null===a){Eg(i);a=i.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(1&i.mode)?i.lanes=1:\"$!\"===a.data?i.lanes=8:i.lanes=1073741824,null;C=s.children;a=s.fallback;return x?(s=i.mode,x=i.child,C={mode:\"hidden\",children:C},0===(1&s)&&null!==x?(x.childLanes=0,x.pendingProps=C):x=qj(C,s,0,null),a=Ah(a,s,u,null),x.return=i,a.return=i,x.sibling=a,i.child=x,i.child.memoizedState=oj(u),i.memoizedState=Dl,a):rj(i,C)}w=a.memoizedState;if(null!==w&&(o=w.dehydrated,null!==o))return sj(a,i,C,s,o,w,u);if(x){x=s.fallback;C=i.mode;w=a.child;o=w.sibling;var z={mode:\"hidden\",children:s.children};0===(1&C)&&i.child!==w?(s=i.child,s.childLanes=0,s.pendingProps=z,i.deletions=null):(s=wh(w,z),s.subtreeFlags=14680064&w.subtreeFlags);null!==o?x=wh(o,x):(x=Ah(x,C,u,null),x.flags|=2);x.return=i;s.return=i;s.sibling=x;i.child=s;s=x;x=i.child;C=a.child.memoizedState;C=null===C?oj(u):{baseLanes:C.baseLanes|u,cachePool:null,transitions:C.transitions};x.memoizedState=C;x.childLanes=a.childLanes&~u;i.memoizedState=Dl;return s}x=a.child;a=x.sibling;s=wh(x,{mode:\"visible\",children:s.children});0===(1&i.mode)&&(s.lanes=u);s.return=i;s.sibling=null;null!==a&&(u=i.deletions,null===u?(i.deletions=[a],i.flags|=16):u.push(a));i.child=s;i.memoizedState=null;return s}function rj(a,i){i=qj({mode:\"visible\",children:i},a.mode,0,null);i.return=a;return a.child=i}function tj(a,i,u,o){null!==o&&Jg(o);Hr(i,a.child,null,u);a=rj(i,i.pendingProps.children);a.flags|=2;i.memoizedState=null;return a}function sj(a,i,u,o,s,w,x){if(u){if(256&i.flags)return i.flags&=-257,o=Li(Error(p(422))),tj(a,i,x,o);if(null!==i.memoizedState)return i.child=a.child,i.flags|=128,null;w=o.fallback;s=i.mode;o=qj({mode:\"visible\",children:o.children},s,0,null);w=Ah(w,s,x,null);w.flags|=2;o.return=i;w.return=i;o.sibling=w;i.child=o;0!==(1&i.mode)&&Hr(i,a.child,null,x);i.child.memoizedState=oj(x);i.memoizedState=Dl;return w}if(0===(1&i.mode))return tj(a,i,x,null);if(\"$!\"===s.data){o=s.nextSibling&&s.nextSibling.dataset;if(o)var C=o.dgst;o=C;w=Error(p(419));o=Li(w,o,void 0);return tj(a,i,x,o)}C=0!==(x&a.childLanes);if(Tl||C){o=Gl;if(null!==o){switch(x&-x){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=0!==(s&(o.suspendedLanes|x))?0:s;0!==s&&s!==w.retryLane&&(w.retryLane=s,Zg(a,s),mh(o,a,s,-1))}uj();o=Li(Error(p(421)));return tj(a,i,x,o)}if(\"$?\"===s.data)return i.flags|=128,i.child=a.child,i=vj.bind(null,a),s._reactRetry=i,null;a=w.treeContext;Dr=Lf(s.nextSibling);Tr=i;Mr=!0;Fr=null;null!==a&&(Nr[Lr++]=jr,Nr[Lr++]=Pr,Nr[Lr++]=_r,jr=a.id,Pr=a.overflow,_r=i);i=rj(i,o.children);i.flags|=4096;return i}function wj(a,i,u){a.lanes|=i;var o=a.alternate;null!==o&&(o.lanes|=i);Sg(a.return,i,u)}function xj(a,i,u,o,s){var w=a.memoizedState;null===w?a.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:o,tail:u,tailMode:s}:(w.isBackwards=i,w.rendering=null,w.renderingStartTime=0,w.last=o,w.tail=u,w.tailMode=s)}function yj(a,i,u){var o=i.pendingProps,s=o.revealOrder,w=o.tail;Yi(a,i,o.children,u);o=qr.current;if(0!==(2&o))o=1&o|2,i.flags|=128;else{if(null!==a&&0!==(128&a.flags))e:for(a=i.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,u,i);else if(19===a.tag)wj(a,u,i);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===i)break e;for(;null===a.sibling;){if(null===a.return||a.return===i)break e;a=a.return}a.sibling.return=a.return;a=a.sibling}o&=1}G(qr,o);if(0===(1&i.mode))i.memoizedState=null;else switch(s){case\"forwards\":u=i.child;for(s=null;null!==u;)a=u.alternate,null!==a&&null===Mh(a)&&(s=u),u=u.sibling;u=s;null===u?(s=i.child,i.child=null):(s=u.sibling,u.sibling=null);xj(i,!1,s,u,w);break;case\"backwards\":u=null;s=i.child;for(i.child=null;null!==s;){a=s.alternate;if(null!==a&&null===Mh(a)){i.child=s;break}a=s.sibling;s.sibling=u;u=s;s=a}xj(i,!0,u,null,w);break;case\"together\":xj(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function jj(a,i){0===(1&i.mode)&&null!==a&&(a.alternate=null,i.alternate=null,i.flags|=2)}function $i(a,i,u){null!==a&&(i.dependencies=a.dependencies);aa|=i.lanes;if(0===(u&i.childLanes))return null;if(null!==a&&i.child!==a.child)throw Error(p(153));if(null!==i.child){a=i.child;u=wh(a,a.pendingProps);i.child=u;for(u.return=i;null!==a.sibling;)a=a.sibling,u=u.sibling=wh(a,a.pendingProps),u.return=i;u.sibling=null}return i.child}function zj(a,i,u){switch(i.tag){case 3:lj(i);Ig();break;case 5:Kh(i);break;case 1:Zf(i.type)&&cg(i);break;case 4:Ih(i,i.stateNode.containerInfo);break;case 10:var o=i.type._context,s=i.memoizedProps.value;G(Or,o._currentValue);o._currentValue=s;break;case 13:o=i.memoizedState;if(null!==o){if(null!==o.dehydrated)return G(qr,1&qr.current),i.flags|=128,null;if(0!==(u&i.child.childLanes))return pj(a,i,u);G(qr,1&qr.current);a=$i(a,i,u);return null!==a?a.sibling:null}G(qr,1&qr.current);break;case 19:o=0!==(u&i.childLanes);if(0!==(128&a.flags)){if(o)return yj(a,i,u);i.flags|=128}s=i.memoizedState;null!==s&&(s.rendering=null,s.tail=null,s.lastEffect=null);G(qr,qr.current);if(o)break;return null;case 22:case 23:return i.lanes=0,ej(a,i,u)}return $i(a,i,u)}var Ml,Fl,Rl,Ol;Ml=function(a,i){for(var u=i.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&null!==u.child){u.child.return=u;u=u.child;continue}if(u===i)break;for(;null===u.sibling;){if(null===u.return||u.return===i)return;u=u.return}u.sibling.return=u.return;u=u.sibling}};Fl=function(){};Rl=function(a,i,u,o){var s=a.memoizedProps;if(s!==o){a=i.stateNode;Hh(Yr.current);var w=null;switch(u){case\"input\":s=Ya(a,s);o=Ya(a,o);w=[];break;case\"select\":s=ie({},s,{value:void 0});o=ie({},o,{value:void 0});w=[];break;case\"textarea\":s=gb(a,s);o=gb(a,o);w=[];break;default:\"function\"!==typeof s.onClick&&\"function\"===typeof o.onClick&&(a.onclick=Bf)}ub(u,o);var x;u=null;for(_ in s)if(!o.hasOwnProperty(_)&&s.hasOwnProperty(_)&&null!=s[_])if(\"style\"===_){var C=s[_];for(x in C)C.hasOwnProperty(x)&&(u||(u={}),u[x]=\"\")}else\"dangerouslySetInnerHTML\"!==_&&\"children\"!==_&&\"suppressContentEditableWarning\"!==_&&\"suppressHydrationWarning\"!==_&&\"autoFocus\"!==_&&(z.hasOwnProperty(_)?w||(w=[]):(w=w||[]).push(_,null));for(_ in o){var N=o[_];C=null!=s?s[_]:void 0;if(o.hasOwnProperty(_)&&N!==C&&(null!=N||null!=C))if(\"style\"===_)if(C){for(x in C)!C.hasOwnProperty(x)||N&&N.hasOwnProperty(x)||(u||(u={}),u[x]=\"\");for(x in N)N.hasOwnProperty(x)&&C[x]!==N[x]&&(u||(u={}),u[x]=N[x])}else u||(w||(w=[]),w.push(_,u)),u=N;else\"dangerouslySetInnerHTML\"===_?(N=N?N.__html:void 0,C=C?C.__html:void 0,null!=N&&C!==N&&(w=w||[]).push(_,N)):\"children\"===_?\"string\"!==typeof N&&\"number\"!==typeof N||(w=w||[]).push(_,\"\"+N):\"suppressContentEditableWarning\"!==_&&\"suppressHydrationWarning\"!==_&&(z.hasOwnProperty(_)?(null!=N&&\"onScroll\"===_&&D(\"scroll\",a),w||C===N||(w=[])):(w=w||[]).push(_,N))}u&&(w=w||[]).push(\"style\",u);var _=w;(i.updateQueue=_)&&(i.flags|=4)}};Ol=function(a,i,u,o){u!==o&&(i.flags|=4)};function Ej(a,i){if(!Mr)switch(a.tailMode){case\"hidden\":i=a.tail;for(var u=null;null!==i;)null!==i.alternate&&(u=i),i=i.sibling;null===u?a.tail=null:u.sibling=null;break;case\"collapsed\":u=a.tail;for(var o=null;null!==u;)null!==u.alternate&&(o=u),u=u.sibling;null===o?i||null===a.tail?a.tail=null:a.tail.sibling=null:o.sibling=null}}function S(a){var i=null!==a.alternate&&a.alternate.child===a.child,u=0,o=0;if(i)for(var s=a.child;null!==s;)u|=s.lanes|s.childLanes,o|=14680064&s.subtreeFlags,o|=14680064&s.flags,s.return=a,s=s.sibling;else for(s=a.child;null!==s;)u|=s.lanes|s.childLanes,o|=s.subtreeFlags,o|=s.flags,s.return=a,s=s.sibling;a.subtreeFlags|=o;a.childLanes=u;return i}function Fj(a,i,u){var o=i.pendingProps;wg(i);switch(i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(i),null;case 1:return Zf(i.type)&&$f(),S(i),null;case 3:o=i.stateNode;Jh();E(br);E(vr);Oh();o.pendingContext&&(o.context=o.pendingContext,o.pendingContext=null);null!==a&&null!==a.child||(Gg(i)?i.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(256&i.flags)||(i.flags|=1024,null!==Fr&&(Gj(Fr),Fr=null)));Fl(a,i);S(i);return null;case 5:Lh(i);var s=Hh(Gr.current);u=i.type;if(null!==a&&null!=i.stateNode)Rl(a,i,u,o,s),a.ref!==i.ref&&(i.flags|=512,i.flags|=2097152);else{if(!o){if(null===i.stateNode)throw Error(p(166));S(i);return null}a=Hh(Yr.current);if(Gg(i)){o=i.stateNode;u=i.type;var w=i.memoizedProps;o[or]=i;o[sr]=w;a=0!==(1&i.mode);switch(u){case\"dialog\":D(\"cancel\",o);D(\"close\",o);break;case\"iframe\":case\"object\":case\"embed\":D(\"load\",o);break;case\"video\":case\"audio\":for(s=0;s<Gt.length;s++)D(Gt[s],o);break;case\"source\":D(\"error\",o);break;case\"img\":case\"image\":case\"link\":D(\"error\",o);D(\"load\",o);break;case\"details\":D(\"toggle\",o);break;case\"input\":Za(o,w);D(\"invalid\",o);break;case\"select\":o._wrapperState={wasMultiple:!!w.multiple};D(\"invalid\",o);break;case\"textarea\":hb(o,w),D(\"invalid\",o)}ub(u,w);s=null;for(var x in w)if(w.hasOwnProperty(x)){var C=w[x];\"children\"===x?\"string\"===typeof C?o.textContent!==C&&(!0!==w.suppressHydrationWarning&&Af(o.textContent,C,a),s=[\"children\",C]):\"number\"===typeof C&&o.textContent!==\"\"+C&&(!0!==w.suppressHydrationWarning&&Af(o.textContent,C,a),s=[\"children\",\"\"+C]):z.hasOwnProperty(x)&&null!=C&&\"onScroll\"===x&&D(\"scroll\",o)}switch(u){case\"input\":Va(o);db(o,w,!0);break;case\"textarea\":Va(o);jb(o);break;case\"select\":case\"option\":break;default:\"function\"===typeof w.onClick&&(o.onclick=Bf)}o=s;i.updateQueue=o;null!==o&&(i.flags|=4)}else{x=9===s.nodeType?s:s.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(u));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===u?(a=x.createElement(\"div\"),a.innerHTML=\"<script><\\/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof o.is?a=x.createElement(u,{is:o.is}):(a=x.createElement(u),\"select\"===u&&(x=a,o.multiple?x.multiple=!0:o.size&&(x.size=o.size))):a=x.createElementNS(a,u);a[or]=i;a[sr]=o;Ml(a,i,!1,!1);i.stateNode=a;e:{x=vb(u,o);switch(u){case\"dialog\":D(\"cancel\",a);D(\"close\",a);s=o;break;case\"iframe\":case\"object\":case\"embed\":D(\"load\",a);s=o;break;case\"video\":case\"audio\":for(s=0;s<Gt.length;s++)D(Gt[s],a);s=o;break;case\"source\":D(\"error\",a);s=o;break;case\"img\":case\"image\":case\"link\":D(\"error\",a);D(\"load\",a);s=o;break;case\"details\":D(\"toggle\",a);s=o;break;case\"input\":Za(a,o);s=Ya(a,o);D(\"invalid\",a);break;case\"option\":s=o;break;case\"select\":a._wrapperState={wasMultiple:!!o.multiple};s=ie({},o,{value:void 0});D(\"invalid\",a);break;case\"textarea\":hb(a,o);s=gb(a,o);D(\"invalid\",a);break;default:s=o}ub(u,s);C=s;for(w in C)if(C.hasOwnProperty(w)){var N=C[w];\"style\"===w?sb(a,N):\"dangerouslySetInnerHTML\"===w?(N=N?N.__html:void 0,null!=N&&pe(a,N)):\"children\"===w?\"string\"===typeof N?(\"textarea\"!==u||\"\"!==N)&&ob(a,N):\"number\"===typeof N&&ob(a,\"\"+N):\"suppressContentEditableWarning\"!==w&&\"suppressHydrationWarning\"!==w&&\"autoFocus\"!==w&&(z.hasOwnProperty(w)?null!=N&&\"onScroll\"===w&&D(\"scroll\",a):null!=N&&ta(a,w,N,x))}switch(u){case\"input\":Va(a);db(a,o,!1);break;case\"textarea\":Va(a);jb(a);break;case\"option\":null!=o.value&&a.setAttribute(\"value\",\"\"+Sa(o.value));break;case\"select\":a.multiple=!!o.multiple;w=o.value;null!=w?fb(a,!!o.multiple,w,!1):null!=o.defaultValue&&fb(a,!!o.multiple,o.defaultValue,!0);break;default:\"function\"===typeof s.onClick&&(a.onclick=Bf)}switch(u){case\"button\":case\"input\":case\"select\":case\"textarea\":o=!!o.autoFocus;break e;case\"img\":o=!0;break e;default:o=!1}}o&&(i.flags|=4)}null!==i.ref&&(i.flags|=512,i.flags|=2097152)}S(i);return null;case 6:if(a&&null!=i.stateNode)Ol(a,i,a.memoizedProps,o);else{if(\"string\"!==typeof o&&null===i.stateNode)throw Error(p(166));u=Hh(Gr.current);Hh(Yr.current);if(Gg(i)){o=i.stateNode;u=i.memoizedProps;o[or]=i;if((w=o.nodeValue!==u)&&(a=Tr,null!==a))switch(a.tag){case 3:Af(o.nodeValue,u,0!==(1&a.mode));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(o.nodeValue,u,0!==(1&a.mode))}w&&(i.flags|=4)}else o=(9===u.nodeType?u:u.ownerDocument).createTextNode(o),o[or]=i,i.stateNode=o}S(i);return null;case 13:E(qr);o=i.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(Mr&&null!==Dr&&0!==(1&i.mode)&&0===(128&i.flags))Hg(),Ig(),i.flags|=98560,w=!1;else if(w=Gg(i),null!==o&&null!==o.dehydrated){if(null===a){if(!w)throw Error(p(318));w=i.memoizedState;w=null!==w?w.dehydrated:null;if(!w)throw Error(p(317));w[or]=i}else Ig(),0===(128&i.flags)&&(i.memoizedState=null),i.flags|=4;S(i);w=!1}else null!==Fr&&(Gj(Fr),Fr=null),w=!0;if(!w)return 65536&i.flags?i:null}if(0!==(128&i.flags))return i.lanes=u,i;o=null!==o;o!==(null!==a&&null!==a.memoizedState)&&o&&(i.child.flags|=8192,0!==(1&i.mode)&&(null===a||0!==(1&qr.current)?0===ra&&(ra=3):uj()));null!==i.updateQueue&&(i.flags|=4);S(i);return null;case 4:return Jh(),Fl(a,i),null===a&&sf(i.stateNode.containerInfo),S(i),null;case 10:return Rg(i.type._context),S(i),null;case 17:return Zf(i.type)&&$f(),S(i),null;case 19:E(qr);w=i.memoizedState;if(null===w)return S(i),null;o=0!==(128&i.flags);x=w.rendering;if(null===x)if(o)Ej(w,!1);else{if(0!==ra||null!==a&&0!==(128&a.flags))for(a=i.child;null!==a;){x=Mh(a);if(null!==x){i.flags|=128;Ej(w,!1);o=x.updateQueue;null!==o&&(i.updateQueue=o,i.flags|=4);i.subtreeFlags=0;o=u;for(u=i.child;null!==u;)w=u,a=o,w.flags&=14680066,x=w.alternate,null===x?(w.childLanes=0,w.lanes=a,w.child=null,w.subtreeFlags=0,w.memoizedProps=null,w.memoizedState=null,w.updateQueue=null,w.dependencies=null,w.stateNode=null):(w.childLanes=x.childLanes,w.lanes=x.lanes,w.child=x.child,w.subtreeFlags=0,w.deletions=null,w.memoizedProps=x.memoizedProps,w.memoizedState=x.memoizedState,w.updateQueue=x.updateQueue,w.type=x.type,a=x.dependencies,w.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),u=u.sibling;G(qr,1&qr.current|2);return i.child}a=a.sibling}null!==w.tail&&tn()>ma&&(i.flags|=128,o=!0,Ej(w,!1),i.lanes=4194304)}else{if(!o)if(a=Mh(x),null!==a){if(i.flags|=128,o=!0,u=a.updateQueue,null!==u&&(i.updateQueue=u,i.flags|=4),Ej(w,!0),null===w.tail&&\"hidden\"===w.tailMode&&!x.alternate&&!Mr)return S(i),null}else 2*tn()-w.renderingStartTime>ma&&1073741824!==u&&(i.flags|=128,o=!0,Ej(w,!1),i.lanes=4194304);w.isBackwards?(x.sibling=i.child,i.child=x):(u=w.last,null!==u?u.sibling=x:i.child=x,w.last=x)}if(null!==w.tail)return i=w.tail,w.rendering=i,w.tail=i.sibling,w.renderingStartTime=tn(),i.sibling=null,u=qr.current,G(qr,o?1&u|2:1&u),i;S(i);return null;case 22:case 23:return Ij(),o=null!==i.memoizedState,null!==a&&null!==a.memoizedState!==o&&(i.flags|=8192),o&&0!==(1&i.mode)?0!==(1073741824&ea)&&(S(i),6&i.subtreeFlags&&(i.flags|=8192)):S(i),null;case 24:return null;case 25:return null}throw Error(p(156,i.tag))}function Jj(a,i){wg(i);switch(i.tag){case 1:return Zf(i.type)&&$f(),a=i.flags,65536&a?(i.flags=-65537&a|128,i):null;case 3:return Jh(),E(br),E(vr),Oh(),a=i.flags,0!==(65536&a)&&0===(128&a)?(i.flags=-65537&a|128,i):null;case 5:return Lh(i),null;case 13:E(qr);a=i.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===i.alternate)throw Error(p(340));Ig()}a=i.flags;return 65536&a?(i.flags=-65537&a|128,i):null;case 19:return E(qr),null;case 4:return Jh(),null;case 10:return Rg(i.type._context),null;case 22:case 23:return Ij(),null;case 24:return null;default:return null}}var Il=!1,Ul=!1,Vl=\"function\"===typeof WeakSet?WeakSet:Set,Wl=null;function Mj(a,i){var u=a.ref;if(null!==u)if(\"function\"===typeof u)try{u(null)}catch(u){W(a,i,u)}else u.current=null}function Nj(a,i,u){try{u()}catch(u){W(a,i,u)}}var Ql=!1;function Pj(a,i){nr=Dn;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var u={start:a.selectionStart,end:a.selectionEnd};else e:{u=(u=a.ownerDocument)&&u.defaultView||window;var o=u.getSelection&&u.getSelection();if(o&&0!==o.rangeCount){u=o.anchorNode;var s=o.anchorOffset,w=o.focusNode;o=o.focusOffset;try{u.nodeType,w.nodeType}catch(a){u=null;break e}var x=0,C=-1,z=-1,N=0,_=0,j=a,P=null;n:for(;;){for(var T;;){j!==u||0!==s&&3!==j.nodeType||(C=x+s);j!==w||0!==o&&3!==j.nodeType||(z=x+o);3===j.nodeType&&(x+=j.nodeValue.length);if(null===(T=j.firstChild))break;P=j;j=T}for(;;){if(j===a)break n;P===u&&++N===s&&(C=x);P===w&&++_===o&&(z=x);if(null!==(T=j.nextSibling))break;j=P;P=j.parentNode}j=T}u=-1===C||-1===z?null:{start:C,end:z}}else u=null}u=u||{start:0,end:0}}else u=null;tr={focusedElem:a,selectionRange:u};Dn=!1;for(Wl=i;null!==Wl;)if(i=Wl,a=i.child,0!==(1028&i.subtreeFlags)&&null!==a)a.return=i,Wl=a;else for(;null!==Wl;){i=Wl;try{var M=i.alternate;if(0!==(1024&i.flags))switch(i.tag){case 0:case 11:case 15:break;case 1:if(null!==M){var F=M.memoizedProps,R=M.memoizedState,O=i.stateNode,I=O.getSnapshotBeforeUpdate(i.elementType===i.type?F:Lg(i.type,F),R);O.__reactInternalSnapshotBeforeUpdate=I}break;case 3:var U=i.stateNode.containerInfo;1===U.nodeType?U.textContent=\"\":9===U.nodeType&&U.documentElement&&U.removeChild(U.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163))}}catch(a){W(i,i.return,a)}a=i.sibling;if(null!==a){a.return=i.return;Wl=a;break}Wl=i.return}M=Ql;Ql=!1;return M}function Qj(a,i,u){var o=i.updateQueue;o=null!==o?o.lastEffect:null;if(null!==o){var s=o=o.next;do{if((s.tag&a)===a){var w=s.destroy;s.destroy=void 0;void 0!==w&&Nj(i,u,w)}s=s.next}while(s!==o)}}function Rj(a,i){i=i.updateQueue;i=null!==i?i.lastEffect:null;if(null!==i){var u=i=i.next;do{if((u.tag&a)===a){var o=u.create;u.destroy=o()}u=u.next}while(u!==i)}}function Sj(a){var i=a.ref;if(null!==i){var u=a.stateNode;switch(a.tag){case 5:a=u;break;default:a=u}\"function\"===typeof i?i(a):i.current=a}}function Tj(a){var i=a.alternate;null!==i&&(a.alternate=null,Tj(i));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(i=a.stateNode,null!==i&&(delete i[or],delete i[sr],delete i[fr],delete i[dr],delete i[pr]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}function Vj(a){e:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(2&a.flags)continue e;if(null===a.child||4===a.tag)continue e;a.child.return=a,a=a.child}if(!(2&a.flags))return a.stateNode}}function Wj(a,i,u){var o=a.tag;if(5===o||6===o)a=a.stateNode,i?8===u.nodeType?u.parentNode.insertBefore(a,i):u.insertBefore(a,i):(8===u.nodeType?(i=u.parentNode,i.insertBefore(a,u)):(i=u,i.appendChild(a)),u=u._reactRootContainer,null!==u&&void 0!==u||null!==i.onclick||(i.onclick=Bf));else if(4!==o&&(a=a.child,null!==a))for(Wj(a,i,u),a=a.sibling;null!==a;)Wj(a,i,u),a=a.sibling}function Xj(a,i,u){var o=a.tag;if(5===o||6===o)a=a.stateNode,i?u.insertBefore(a,i):u.appendChild(a);else if(4!==o&&(a=a.child,null!==a))for(Xj(a,i,u),a=a.sibling;null!==a;)Xj(a,i,u),a=a.sibling}var Al=null,Bl=!1;function Zj(a,i,u){for(u=u.child;null!==u;)ak(a,i,u),u=u.sibling}function ak(a,i,u){if(fn&&\"function\"===typeof fn.onCommitFiberUnmount)try{fn.onCommitFiberUnmount(cn,u)}catch(a){}switch(u.tag){case 5:Ul||Mj(u,i);case 6:var o=Al,s=Bl;Al=null;Zj(a,i,u);Al=o;Bl=s;null!==Al&&(Bl?(a=Al,u=u.stateNode,8===a.nodeType?a.parentNode.removeChild(u):a.removeChild(u)):Al.removeChild(u.stateNode));break;case 18:null!==Al&&(Bl?(a=Al,u=u.stateNode,8===a.nodeType?Kf(a.parentNode,u):1===a.nodeType&&Kf(a,u),bd(a)):Kf(Al,u.stateNode));break;case 4:o=Al;s=Bl;Al=u.stateNode.containerInfo;Bl=!0;Zj(a,i,u);Al=o;Bl=s;break;case 0:case 11:case 14:case 15:if(!Ul&&(o=u.updateQueue,null!==o&&(o=o.lastEffect,null!==o))){s=o=o.next;do{var w=s,x=w.destroy;w=w.tag;void 0!==x&&(0!==(2&w)||0!==(4&w))&&Nj(u,i,x);s=s.next}while(s!==o)}Zj(a,i,u);break;case 1:if(!Ul&&(Mj(u,i),o=u.stateNode,\"function\"===typeof o.componentWillUnmount))try{o.props=u.memoizedProps,o.state=u.memoizedState,o.componentWillUnmount()}catch(a){W(u,i,a)}Zj(a,i,u);break;case 21:Zj(a,i,u);break;case 22:1&u.mode?(Ul=(o=Ul)||null!==u.memoizedState,Zj(a,i,u),Ul=o):Zj(a,i,u);break;default:Zj(a,i,u)}}function bk(a){var i=a.updateQueue;if(null!==i){a.updateQueue=null;var u=a.stateNode;null===u&&(u=a.stateNode=new Vl);i.forEach((function(i){var o=ck.bind(null,a,i);u.has(i)||(u.add(i),i.then(o,o))}))}}function dk(a,i){var u=i.deletions;if(null!==u)for(var o=0;o<u.length;o++){var s=u[o];try{var w=a,x=i,C=x;e:for(;null!==C;){switch(C.tag){case 5:Al=C.stateNode;Bl=!1;break e;case 3:Al=C.stateNode.containerInfo;Bl=!0;break e;case 4:Al=C.stateNode.containerInfo;Bl=!0;break e}C=C.return}if(null===Al)throw Error(p(160));ak(w,x,s);Al=null;Bl=!1;var z=s.alternate;null!==z&&(z.return=null);s.return=null}catch(a){W(s,i,a)}}if(12854&i.subtreeFlags)for(i=i.child;null!==i;)ek(i,a),i=i.sibling}function ek(a,i){var u=a.alternate,o=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(i,a);fk(a);if(4&o){try{Qj(3,a,a.return),Rj(3,a)}catch(i){W(a,a.return,i)}try{Qj(5,a,a.return)}catch(i){W(a,a.return,i)}}break;case 1:dk(i,a);fk(a);512&o&&null!==u&&Mj(u,u.return);break;case 5:dk(i,a);fk(a);512&o&&null!==u&&Mj(u,u.return);if(32&a.flags){var s=a.stateNode;try{ob(s,\"\")}catch(i){W(a,a.return,i)}}if(4&o&&(s=a.stateNode,null!=s)){var w=a.memoizedProps,x=null!==u?u.memoizedProps:w,C=a.type,z=a.updateQueue;a.updateQueue=null;if(null!==z)try{\"input\"===C&&\"radio\"===w.type&&null!=w.name&&ab(s,w);vb(C,x);var N=vb(C,w);for(x=0;x<z.length;x+=2){var _=z[x],j=z[x+1];\"style\"===_?sb(s,j):\"dangerouslySetInnerHTML\"===_?pe(s,j):\"children\"===_?ob(s,j):ta(s,_,j,N)}switch(C){case\"input\":bb(s,w);break;case\"textarea\":ib(s,w);break;case\"select\":var P=s._wrapperState.wasMultiple;s._wrapperState.wasMultiple=!!w.multiple;var T=w.value;null!=T?fb(s,!!w.multiple,T,!1):P!==!!w.multiple&&(null!=w.defaultValue?fb(s,!!w.multiple,w.defaultValue,!0):fb(s,!!w.multiple,w.multiple?[]:\"\",!1))}s[sr]=w}catch(i){W(a,a.return,i)}}break;case 6:dk(i,a);fk(a);if(4&o){if(null===a.stateNode)throw Error(p(162));s=a.stateNode;w=a.memoizedProps;try{s.nodeValue=w}catch(i){W(a,a.return,i)}}break;case 3:dk(i,a);fk(a);if(4&o&&null!==u&&u.memoizedState.isDehydrated)try{bd(i.containerInfo)}catch(i){W(a,a.return,i)}break;case 4:dk(i,a);fk(a);break;case 13:dk(i,a);fk(a);s=a.child;8192&s.flags&&(w=null!==s.memoizedState,s.stateNode.isHidden=w,!w||null!==s.alternate&&null!==s.alternate.memoizedState||(ga=tn()));4&o&&bk(a);break;case 22:_=null!==u&&null!==u.memoizedState;1&a.mode?(Ul=(N=Ul)||_,dk(i,a),Ul=N):dk(i,a);fk(a);if(8192&o){N=null!==a.memoizedState;if((a.stateNode.isHidden=N)&&!_&&0!==(1&a.mode))for(Wl=a,_=a.child;null!==_;){for(j=Wl=_;null!==Wl;){P=Wl;T=P.child;switch(P.tag){case 0:case 11:case 14:case 15:Qj(4,P,P.return);break;case 1:Mj(P,P.return);var M=P.stateNode;if(\"function\"===typeof M.componentWillUnmount){o=P;u=P.return;try{i=o,M.props=i.memoizedProps,M.state=i.memoizedState,M.componentWillUnmount()}catch(a){W(o,u,a)}}break;case 5:Mj(P,P.return);break;case 22:if(null!==P.memoizedState){hk(j);continue}}null!==T?(T.return=P,Wl=T):hk(j)}_=_.sibling}e:for(_=null,j=a;;){if(5===j.tag){if(null===_){_=j;try{s=j.stateNode,N?(w=s.style,\"function\"===typeof w.setProperty?w.setProperty(\"display\",\"none\",\"important\"):w.display=\"none\"):(C=j.stateNode,z=j.memoizedProps.style,x=void 0!==z&&null!==z&&z.hasOwnProperty(\"display\")?z.display:null,C.style.display=rb(\"display\",x))}catch(i){W(a,a.return,i)}}}else if(6===j.tag){if(null===_)try{j.stateNode.nodeValue=N?\"\":j.memoizedProps}catch(i){W(a,a.return,i)}}else if((22!==j.tag&&23!==j.tag||null===j.memoizedState||j===a)&&null!==j.child){j.child.return=j;j=j.child;continue}if(j===a)break e;for(;null===j.sibling;){if(null===j.return||j.return===a)break e;_===j&&(_=null);j=j.return}_===j&&(_=null);j.sibling.return=j.return;j=j.sibling}}break;case 19:dk(i,a);fk(a);4&o&&bk(a);break;case 21:break;default:dk(i,a),fk(a)}}function fk(a){var i=a.flags;if(2&i){try{e:{for(var u=a.return;null!==u;){if(Uj(u)){var o=u;break e}u=u.return}throw Error(p(160))}switch(o.tag){case 5:var s=o.stateNode;32&o.flags&&(ob(s,\"\"),o.flags&=-33);var w=Vj(a);Xj(a,w,s);break;case 3:case 4:var x=o.stateNode.containerInfo,C=Vj(a);Wj(a,C,x);break;default:throw Error(p(161))}}catch(i){W(a,a.return,i)}a.flags&=-3}4096&i&&(a.flags&=-4097)}function ik(a,i,u){Wl=a;jk(a,i,u)}function jk(a,i,u){for(var o=0!==(1&a.mode);null!==Wl;){var s=Wl,w=s.child;if(22===s.tag&&o){var x=null!==s.memoizedState||Il;if(!x){var C=s.alternate,z=null!==C&&null!==C.memoizedState||Ul;C=Il;var N=Ul;Il=x;if((Ul=z)&&!N)for(Wl=s;null!==Wl;)x=Wl,z=x.child,22===x.tag&&null!==x.memoizedState?kk(s):null!==z?(z.return=x,Wl=z):kk(s);for(;null!==w;)Wl=w,jk(w,i,u),w=w.sibling;Wl=s;Il=C;Ul=N}lk(a,i,u)}else 0!==(8772&s.subtreeFlags)&&null!==w?(w.return=s,Wl=w):lk(a,i,u)}}function lk(a){for(;null!==Wl;){var i=Wl;if(0!==(8772&i.flags)){var u=i.alternate;try{if(0!==(8772&i.flags))switch(i.tag){case 0:case 11:case 15:Ul||Rj(5,i);break;case 1:var o=i.stateNode;if(4&i.flags&&!Ul)if(null===u)o.componentDidMount();else{var s=i.elementType===i.type?u.memoizedProps:Lg(i.type,u.memoizedProps);o.componentDidUpdate(s,u.memoizedState,o.__reactInternalSnapshotBeforeUpdate)}var w=i.updateQueue;null!==w&&ih(i,w,o);break;case 3:var x=i.updateQueue;if(null!==x){u=null;if(null!==i.child)switch(i.child.tag){case 5:u=i.child.stateNode;break;case 1:u=i.child.stateNode}ih(i,x,u)}break;case 5:var C=i.stateNode;if(null===u&&4&i.flags){u=C;var z=i.memoizedProps;switch(i.type){case\"button\":case\"input\":case\"select\":case\"textarea\":z.autoFocus&&u.focus();break;case\"img\":z.src&&(u.src=z.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===i.memoizedState){var N=i.alternate;if(null!==N){var _=N.memoizedState;if(null!==_){var j=_.dehydrated;null!==j&&bd(j)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(p(163))}Ul||512&i.flags&&Sj(i)}catch(a){W(i,i.return,a)}}if(i===a){Wl=null;break}u=i.sibling;if(null!==u){u.return=i.return;Wl=u;break}Wl=i.return}}function hk(a){for(;null!==Wl;){var i=Wl;if(i===a){Wl=null;break}var u=i.sibling;if(null!==u){u.return=i.return;Wl=u;break}Wl=i.return}}function kk(a){for(;null!==Wl;){var i=Wl;try{switch(i.tag){case 0:case 11:case 15:var u=i.return;try{Rj(4,i)}catch(a){W(i,u,a)}break;case 1:var o=i.stateNode;if(\"function\"===typeof o.componentDidMount){var s=i.return;try{o.componentDidMount()}catch(a){W(i,s,a)}}var w=i.return;try{Sj(i)}catch(a){W(i,w,a)}break;case 5:var x=i.return;try{Sj(i)}catch(a){W(i,x,a)}}}catch(a){W(i,i.return,a)}if(i===a){Wl=null;break}var C=i.sibling;if(null!==C){C.return=i.return;Wl=C;break}Wl=i.return}}var Hl=Math.ceil,$l=R.ReactCurrentDispatcher,Kl=R.ReactCurrentOwner,Yl=R.ReactCurrentBatchConfig,Zl=0,Gl=null,Xl=null,Jl=0,ea=0,na=Uf(0),ra=0,la=null,aa=0,ia=0,ua=0,ca=null,da=null,ga=0,ma=Infinity,va=null,ba=!1,ya=null,ka=null,wa=!1,Ea=null,xa=0,Ca=0,za=null,Na=-1,La=0;function L(){return 0!==(6&Zl)?tn():-1!==Na?Na:Na=tn()}function lh(a){if(0===(1&a.mode))return 1;if(0!==(2&Zl)&&0!==Jl)return Jl&-Jl;if(null!==Rr.transition)return 0===La&&(La=yc()),La;a=vn;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,i,u,o){if(50<Ca)throw Ca=0,za=null,Error(p(185));Ac(a,u,o);0!==(2&Zl)&&a===Gl||(a===Gl&&(0===(2&Zl)&&(ia|=u),4===ra&&Dk(a,Jl)),Ek(a,o),1===u&&0===Zl&&0===(1&i.mode)&&(ma=tn()+500,wr&&jg()))}function Ek(a,i){var u=a.callbackNode;wc(a,i);var o=uc(a,a===Gl?Jl:0);if(0===o)null!==u&&Xe(u),a.callbackNode=null,a.callbackPriority=0;else if(i=o&-o,a.callbackPriority!==i){null!=u&&Xe(u);if(1===i)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),ir((function(){0===(6&Zl)&&jg()})),u=null;else{switch(Dc(o)){case 1:u=ln;break;case 4:u=an;break;case 16:u=un;break;case 536870912:u=sn;break;default:u=un}u=Gk(u,Hk.bind(null,a))}a.callbackPriority=i;a.callbackNode=u}}function Hk(a,i){Na=-1;La=0;if(0!==(6&Zl))throw Error(p(327));var u=a.callbackNode;if(Ik()&&a.callbackNode!==u)return null;var o=uc(a,a===Gl?Jl:0);if(0===o)return null;if(0!==(30&o)||0!==(o&a.expiredLanes)||i)i=Jk(a,o);else{i=o;var s=Zl;Zl|=2;var w=Kk();Gl===a&&Jl===i||(va=null,ma=tn()+500,Lk(a,i));do{try{Mk();break}catch(i){Nk(a,i)}}while(1);Qg();$l.current=w;Zl=s;null!==Xl?i=0:(Gl=null,Jl=0,i=ra)}if(0!==i){2===i&&(s=xc(a),0!==s&&(o=s,i=Ok(a,s)));if(1===i)throw u=la,Lk(a,0),Dk(a,o),Ek(a,tn()),u;if(6===i)Dk(a,o);else{s=a.current.alternate;if(0===(30&o)&&!Pk(s)&&(i=Jk(a,o),2===i&&(w=xc(a),0!==w&&(o=w,i=Ok(a,w))),1===i))throw u=la,Lk(a,0),Dk(a,o),Ek(a,tn()),u;a.finishedWork=s;a.finishedLanes=o;switch(i){case 0:case 1:throw Error(p(345));case 2:Qk(a,da,va);break;case 3:Dk(a,o);if((130023424&o)===o&&(i=ga+500-tn(),10<i)){if(0!==uc(a,0))break;s=a.suspendedLanes;if((s&o)!==o){L();a.pingedLanes|=a.suspendedLanes&s;break}a.timeoutHandle=rr(Qk.bind(null,a,da,va),i);break}Qk(a,da,va);break;case 4:Dk(a,o);if((4194240&o)===o)break;i=a.eventTimes;for(s=-1;0<o;){var x=31-dn(o);w=1<<x;x=i[x];x>s&&(s=x);o&=~w}o=s;o=tn()-o;o=(120>o?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Hl(o/1960))-o;if(10<o){a.timeoutHandle=rr(Qk.bind(null,a,da,va),o);break}Qk(a,da,va);break;case 5:Qk(a,da,va);break;default:throw Error(p(329))}}}Ek(a,tn());return a.callbackNode===u?Hk.bind(null,a):null}function Ok(a,i){var u=ca;a.current.memoizedState.isDehydrated&&(Lk(a,i).flags|=256);a=Jk(a,i);2!==a&&(i=da,da=u,null!==i&&Gj(i));return a}function Gj(a){null===da?da=a:da.push.apply(da,a)}function Pk(a){for(var i=a;;){if(16384&i.flags){var u=i.updateQueue;if(null!==u&&(u=u.stores,null!==u))for(var o=0;o<u.length;o++){var s=u[o],w=s.getSnapshot;s=s.value;try{if(!Pt(w(),s))return!1}catch(a){return!1}}}u=i.child;if(16384&i.subtreeFlags&&null!==u)u.return=i,i=u;else{if(i===a)break;for(;null===i.sibling;){if(null===i.return||i.return===a)return!0;i=i.return}i.sibling.return=i.return;i=i.sibling}}return!0}function Dk(a,i){i&=~ua;i&=~ia;a.suspendedLanes|=i;a.pingedLanes&=~i;for(a=a.expirationTimes;0<i;){var u=31-dn(i),o=1<<u;a[u]=-1;i&=~o}}function Fk(a){if(0!==(6&Zl))throw Error(p(327));Ik();var i=uc(a,0);if(0===(1&i))return Ek(a,tn()),null;var u=Jk(a,i);if(0!==a.tag&&2===u){var o=xc(a);0!==o&&(i=o,u=Ok(a,o))}if(1===u)throw u=la,Lk(a,0),Dk(a,i),Ek(a,tn()),u;if(6===u)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=i;Qk(a,da,va);Ek(a,tn());return null}function Rk(a,i){var u=Zl;Zl|=1;try{return a(i)}finally{Zl=u,0===Zl&&(ma=tn()+500,wr&&jg())}}function Sk(a){null!==Ea&&0===Ea.tag&&0===(6&Zl)&&Ik();var i=Zl;Zl|=1;var u=Yl.transition,o=vn;try{if(Yl.transition=null,vn=1,a)return a()}finally{vn=o,Yl.transition=u,Zl=i,0===(6&Zl)&&jg()}}function Ij(){ea=na.current;E(na)}function Lk(a,i){a.finishedWork=null;a.finishedLanes=0;var u=a.timeoutHandle;-1!==u&&(a.timeoutHandle=-1,lr(u));if(null!==Xl)for(u=Xl.return;null!==u;){var o=u;wg(o);switch(o.tag){case 1:o=o.type.childContextTypes;null!==o&&void 0!==o&&$f();break;case 3:Jh();E(br);E(vr);Oh();break;case 5:Lh(o);break;case 4:Jh();break;case 13:E(qr);break;case 19:E(qr);break;case 10:Rg(o.type._context);break;case 22:case 23:Ij()}u=u.return}Gl=a;Xl=a=wh(a.current,null);Jl=ea=i;ra=0;la=null;ua=ia=aa=0;da=ca=null;if(null!==Wr){for(i=0;i<Wr.length;i++)if(u=Wr[i],o=u.interleaved,null!==o){u.interleaved=null;var s=o.next,w=u.pending;if(null!==w){var x=w.next;w.next=s;o.next=x}u.pending=o}Wr=null}return a}function Nk(a,i){do{var u=Xl;try{Qg();Jr.current=Cl;if(wl){for(var o=ul.memoizedState;null!==o;){var s=o.queue;null!==s&&(s.pending=null);o=o.next}wl=!1}ll=0;yl=vl=ul=null;Sl=!1;El=0;Kl.current=null;if(null===u||null===u.return){ra=1;la=i;Xl=null;break}e:{var w=a,x=u.return,C=u,z=i;i=Jl;C.flags|=32768;if(null!==z&&\"object\"===typeof z&&\"function\"===typeof z.then){var N=z,_=C,j=_.tag;if(0===(1&_.mode)&&(0===j||11===j||15===j)){var P=_.alternate;P?(_.updateQueue=P.updateQueue,_.memoizedState=P.memoizedState,_.lanes=P.lanes):(_.updateQueue=null,_.memoizedState=null)}var T=Vi(x);if(null!==T){T.flags&=-257;Wi(T,x,C,w,i);1&T.mode&&Ti(w,N,i);i=T;z=N;var M=i.updateQueue;if(null===M){var F=new Set;F.add(z);i.updateQueue=F}else M.add(z);break e}if(0===(1&i)){Ti(w,N,i);uj();break e}z=Error(p(426))}else if(Mr&&1&C.mode){var R=Vi(x);if(null!==R){0===(65536&R.flags)&&(R.flags|=256);Wi(R,x,C,w,i);Jg(Ki(z,C));break e}}w=z=Ki(z,C);4!==ra&&(ra=2);null===ca?ca=[w]:ca.push(w);w=x;do{switch(w.tag){case 3:w.flags|=65536;i&=-i;w.lanes|=i;var O=Oi(w,z,i);fh(w,O);break e;case 1:C=z;var I=w.type,U=w.stateNode;if(0===(128&w.flags)&&(\"function\"===typeof I.getDerivedStateFromError||null!==U&&\"function\"===typeof U.componentDidCatch&&(null===ka||!ka.has(U)))){w.flags|=65536;i&=-i;w.lanes|=i;var V=Ri(w,C,i);fh(w,V);break e}}w=w.return}while(null!==w)}Tk(u)}catch(a){i=a;Xl===u&&null!==u&&(Xl=u=u.return);continue}break}while(1)}function Kk(){var a=$l.current;$l.current=Cl;return null===a?Cl:a}function uj(){0!==ra&&3!==ra&&2!==ra||(ra=4);null===Gl||0===(268435455&aa)&&0===(268435455&ia)||Dk(Gl,Jl)}function Jk(a,i){var u=Zl;Zl|=2;var o=Kk();Gl===a&&Jl===i||(va=null,Lk(a,i));do{try{Uk();break}catch(i){Nk(a,i)}}while(1);Qg();Zl=u;$l.current=o;if(null!==Xl)throw Error(p(261));Gl=null;Jl=0;return ra}function Uk(){for(;null!==Xl;)Vk(Xl)}function Mk(){for(;null!==Xl&&!en();)Vk(Xl)}function Vk(a){var i=_a(a.alternate,a,ea);a.memoizedProps=a.pendingProps;null===i?Tk(a):Xl=i;Kl.current=null}function Tk(a){var i=a;do{var u=i.alternate;a=i.return;if(0===(32768&i.flags)){if(u=Fj(u,i,ea),null!==u){Xl=u;return}}else{u=Jj(u,i);if(null!==u){u.flags&=32767;Xl=u;return}if(null===a){ra=6;Xl=null;return}a.flags|=32768,a.subtreeFlags=0,a.deletions=null}i=i.sibling;if(null!==i){Xl=i;return}Xl=i=a}while(null!==i);0===ra&&(ra=5)}function Qk(a,i,u){var o=vn,s=Yl.transition;try{Yl.transition=null,vn=1,Xk(a,i,u,o)}finally{Yl.transition=s,vn=o}return null}function Xk(a,i,u,o){do{Ik()}while(null!==Ea);if(0!==(6&Zl))throw Error(p(327));u=a.finishedWork;var s=a.finishedLanes;if(null===u)return null;a.finishedWork=null;a.finishedLanes=0;if(u===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var w=u.lanes|u.childLanes;Bc(a,w);a===Gl&&(Xl=Gl=null,Jl=0);0===(2064&u.subtreeFlags)&&0===(2064&u.flags)||wa||(wa=!0,Gk(un,(function(){Ik();return null})));w=0!==(15990&u.flags);if(0!==(15990&u.subtreeFlags)||w){w=Yl.transition;Yl.transition=null;var x=vn;vn=1;var C=Zl;Zl|=4;Kl.current=null;Pj(a,u);ek(u,a);Oe(tr);Dn=!!nr;tr=nr=null;a.current=u;ik(u,a,s);nn();Zl=C;vn=x;Yl.transition=w}else a.current=u;wa&&(wa=!1,Ea=a,xa=s);w=a.pendingLanes;0===w&&(ka=null);mc(u.stateNode,o);Ek(a,tn());if(null!==i)for(o=a.onRecoverableError,u=0;u<i.length;u++)s=i[u],o(s.value,{componentStack:s.stack,digest:s.digest});if(ba)throw ba=!1,a=ya,ya=null,a;0!==(1&xa)&&0!==a.tag&&Ik();w=a.pendingLanes;0!==(1&w)?a===za?Ca++:(Ca=0,za=a):Ca=0;jg();return null}function Ik(){if(null!==Ea){var a=Dc(xa),i=Yl.transition,u=vn;try{Yl.transition=null;vn=16>a?16:a;if(null===Ea)var o=!1;else{a=Ea;Ea=null;xa=0;if(0!==(6&Zl))throw Error(p(331));var s=Zl;Zl|=4;for(Wl=a.current;null!==Wl;){var w=Wl,x=w.child;if(0!==(16&Wl.flags)){var C=w.deletions;if(null!==C){for(var z=0;z<C.length;z++){var N=C[z];for(Wl=N;null!==Wl;){var _=Wl;switch(_.tag){case 0:case 11:case 15:Qj(8,_,w)}var j=_.child;if(null!==j)j.return=_,Wl=j;else for(;null!==Wl;){_=Wl;var P=_.sibling,T=_.return;Tj(_);if(_===N){Wl=null;break}if(null!==P){P.return=T;Wl=P;break}Wl=T}}}var M=w.alternate;if(null!==M){var F=M.child;if(null!==F){M.child=null;do{var R=F.sibling;F.sibling=null;F=R}while(null!==F)}}Wl=w}}if(0!==(2064&w.subtreeFlags)&&null!==x)x.return=w,Wl=x;else e:for(;null!==Wl;){w=Wl;if(0!==(2048&w.flags))switch(w.tag){case 0:case 11:case 15:Qj(9,w,w.return)}var O=w.sibling;if(null!==O){O.return=w.return;Wl=O;break e}Wl=w.return}}var I=a.current;for(Wl=I;null!==Wl;){x=Wl;var U=x.child;if(0!==(2064&x.subtreeFlags)&&null!==U)U.return=x,Wl=U;else e:for(x=I;null!==Wl;){C=Wl;if(0!==(2048&C.flags))try{switch(C.tag){case 0:case 11:case 15:Rj(9,C)}}catch(a){W(C,C.return,a)}if(C===x){Wl=null;break e}var V=C.sibling;if(null!==V){V.return=C.return;Wl=V;break e}Wl=C.return}}Zl=s;jg();if(fn&&\"function\"===typeof fn.onPostCommitFiberRoot)try{fn.onPostCommitFiberRoot(cn,a)}catch(a){}o=!0}return o}finally{vn=u,Yl.transition=i}}return!1}function Yk(a,i,u){i=Ki(u,i);i=Oi(a,i,1);a=dh(a,i,1);i=L();null!==a&&(Ac(a,1,i),Ek(a,i))}function W(a,i,u){if(3===a.tag)Yk(a,a,u);else for(;null!==i;){if(3===i.tag){Yk(i,a,u);break}if(1===i.tag){var o=i.stateNode;if(\"function\"===typeof i.type.getDerivedStateFromError||\"function\"===typeof o.componentDidCatch&&(null===ka||!ka.has(o))){a=Ki(u,a);a=Ri(i,a,1);i=dh(i,a,1);a=L();null!==i&&(Ac(i,1,a),Ek(i,a));break}}i=i.return}}function Ui(a,i,u){var o=a.pingCache;null!==o&&o.delete(i);i=L();a.pingedLanes|=a.suspendedLanes&u;Gl===a&&(Jl&u)===u&&(4===ra||3===ra&&(130023424&Jl)===Jl&&500>tn()-ga?Lk(a,0):ua|=u);Ek(a,i)}function Zk(a,i){0===i&&(0===(1&a.mode)?i=1:(i=mn,mn<<=1,0===(130023424&mn)&&(mn=4194304)));var u=L();a=Zg(a,i);null!==a&&(Ac(a,i,u),Ek(a,u))}function vj(a){var i=a.memoizedState,u=0;null!==i&&(u=i.retryLane);Zk(a,u)}function ck(a,i){var u=0;switch(a.tag){case 13:var o=a.stateNode;var s=a.memoizedState;null!==s&&(u=s.retryLane);break;case 19:o=a.stateNode;break;default:throw Error(p(314))}null!==o&&o.delete(i);Zk(a,u)}var _a;_a=function(a,i,u){if(null!==a)if(a.memoizedProps!==i.pendingProps||br.current)Tl=!0;else{if(0===(a.lanes&u)&&0===(128&i.flags))return Tl=!1,zj(a,i,u);Tl=0!==(131072&a.flags)}else Tl=!1,Mr&&0!==(1048576&i.flags)&&ug(i,zr,i.index);i.lanes=0;switch(i.tag){case 2:var o=i.type;jj(a,i);a=i.pendingProps;var s=Yf(i,vr.current);Tg(i,u);s=Xh(null,i,o,a,s,u);var w=bi();i.flags|=1;\"object\"===typeof s&&null!==s&&\"function\"===typeof s.render&&void 0===s.$$typeof?(i.tag=1,i.memoizedState=null,i.updateQueue=null,Zf(o)?(w=!0,cg(i)):w=!1,i.memoizedState=null!==s.state&&void 0!==s.state?s.state:null,ah(i),s.updater=Br,i.stateNode=s,s._reactInternals=i,rh(i,o,a,u),i=kj(null,i,o,!0,w,u)):(i.tag=0,Mr&&w&&vg(i),Yi(null,i,s,u),i=i.child);return i;case 16:o=i.elementType;e:{jj(a,i);a=i.pendingProps;s=o._init;o=s(o._payload);i.type=o;s=i.tag=$k(o);a=Lg(o,a);switch(s){case 0:i=dj(null,i,o,a,u);break e;case 1:i=ij(null,i,o,a,u);break e;case 11:i=Zi(null,i,o,a,u);break e;case 14:i=aj(null,i,o,Lg(o.type,a),u);break e}throw Error(p(306,o,\"\"))}return i;case 0:return o=i.type,s=i.pendingProps,s=i.elementType===o?s:Lg(o,s),dj(a,i,o,s,u);case 1:return o=i.type,s=i.pendingProps,s=i.elementType===o?s:Lg(o,s),ij(a,i,o,s,u);case 3:e:{lj(i);if(null===a)throw Error(p(387));o=i.pendingProps;w=i.memoizedState;s=w.element;bh(a,i);gh(i,o,null,u);var x=i.memoizedState;o=x.element;if(w.isDehydrated){if(w={element:o,isDehydrated:!1,cache:x.cache,pendingSuspenseBoundaries:x.pendingSuspenseBoundaries,transitions:x.transitions},i.updateQueue.baseState=w,i.memoizedState=w,256&i.flags){s=Ki(Error(p(423)),i);i=mj(a,i,o,u,s);break e}if(o!==s){s=Ki(Error(p(424)),i);i=mj(a,i,o,u,s);break e}for(Dr=Lf(i.stateNode.containerInfo.firstChild),Tr=i,Mr=!0,Fr=null,u=$r(i,null,o,u),i.child=u;u;)u.flags=-3&u.flags|4096,u=u.sibling}else{Ig();if(o===s){i=$i(a,i,u);break e}Yi(a,i,o,u)}i=i.child}return i;case 5:return Kh(i),null===a&&Eg(i),o=i.type,s=i.pendingProps,w=null!==a?a.memoizedProps:null,x=s.children,Ef(o,s)?x=null:null!==w&&Ef(o,w)&&(i.flags|=32),hj(a,i),Yi(a,i,x,u),i.child;case 6:return null===a&&Eg(i),null;case 13:return pj(a,i,u);case 4:return Ih(i,i.stateNode.containerInfo),o=i.pendingProps,null===a?i.child=Hr(i,null,o,u):Yi(a,i,o,u),i.child;case 11:return o=i.type,s=i.pendingProps,s=i.elementType===o?s:Lg(o,s),Zi(a,i,o,s,u);case 7:return Yi(a,i,i.pendingProps,u),i.child;case 8:return Yi(a,i,i.pendingProps.children,u),i.child;case 12:return Yi(a,i,i.pendingProps.children,u),i.child;case 10:e:{o=i.type._context;s=i.pendingProps;w=i.memoizedProps;x=s.value;G(Or,o._currentValue);o._currentValue=x;if(null!==w)if(Pt(w.value,x)){if(w.children===s.children&&!br.current){i=$i(a,i,u);break e}}else for(w=i.child,null!==w&&(w.return=i);null!==w;){var C=w.dependencies;if(null!==C){x=w.child;for(var z=C.firstContext;null!==z;){if(z.context===o){if(1===w.tag){z=ch(-1,u&-u);z.tag=2;var N=w.updateQueue;if(null!==N){N=N.shared;var _=N.pending;null===_?z.next=z:(z.next=_.next,_.next=z);N.pending=z}}w.lanes|=u;z=w.alternate;null!==z&&(z.lanes|=u);Sg(w.return,u,i);C.lanes|=u;break}z=z.next}}else if(10===w.tag)x=w.type===i.type?null:w.child;else if(18===w.tag){x=w.return;if(null===x)throw Error(p(341));x.lanes|=u;C=x.alternate;null!==C&&(C.lanes|=u);Sg(x,u,i);x=w.sibling}else x=w.child;if(null!==x)x.return=w;else for(x=w;null!==x;){if(x===i){x=null;break}w=x.sibling;if(null!==w){w.return=x.return;x=w;break}x=x.return}w=x}Yi(a,i,s.children,u);i=i.child}return i;case 9:return s=i.type,o=i.pendingProps.children,Tg(i,u),s=Vg(s),o=o(s),i.flags|=1,Yi(a,i,o,u),i.child;case 14:return o=i.type,s=Lg(o,i.pendingProps),s=Lg(o.type,s),aj(a,i,o,s,u);case 15:return cj(a,i,i.type,i.pendingProps,u);case 17:return o=i.type,s=i.pendingProps,s=i.elementType===o?s:Lg(o,s),jj(a,i),i.tag=1,Zf(o)?(a=!0,cg(i)):a=!1,Tg(i,u),ph(i,o,s),rh(i,o,s,u),kj(null,i,o,!0,a,u);case 19:return yj(a,i,u);case 22:return ej(a,i,u)}throw Error(p(156,i.tag))};function Gk(a,i){return qe(a,i)}function al(a,i,u,o){this.tag=a;this.key=u;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=i;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=o;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,i,u,o){return new al(a,i,u,o)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}function $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===$)return 11;if(a===Z)return 14}return 2}function wh(a,i){var u=a.alternate;null===u?(u=Bg(a.tag,i,a.key,a.mode),u.elementType=a.elementType,u.type=a.type,u.stateNode=a.stateNode,u.alternate=a,a.alternate=u):(u.pendingProps=i,u.type=a.type,u.flags=0,u.subtreeFlags=0,u.deletions=null);u.flags=14680064&a.flags;u.childLanes=a.childLanes;u.lanes=a.lanes;u.child=a.child;u.memoizedProps=a.memoizedProps;u.memoizedState=a.memoizedState;u.updateQueue=a.updateQueue;i=a.dependencies;u.dependencies=null===i?null:{lanes:i.lanes,firstContext:i.firstContext};u.sibling=a.sibling;u.index=a.index;u.ref=a.ref;return u}function yh(a,i,u,o,s,w){var x=2;o=a;if(\"function\"===typeof a)bj(a)&&(x=1);else if(\"string\"===typeof a)x=5;else e:switch(a){case U:return Ah(u.children,s,w,i);case V:x=8;s|=8;break;case A:return a=Bg(12,u,i,2|s),a.elementType=A,a.lanes=w,a;case K:return a=Bg(13,u,i,s),a.elementType=K,a.lanes=w,a;case Y:return a=Bg(19,u,i,s),a.elementType=Y,a.lanes=w,a;case ee:return qj(u,s,w,i);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case B:x=10;break e;case H:x=9;break e;case $:x=11;break e;case Z:x=14;break e;case X:x=16;o=null;break e}throw Error(p(130,null==a?a:typeof a,\"\"))}i=Bg(x,u,i,s);i.elementType=a;i.type=o;i.lanes=w;return i}function Ah(a,i,u,o){a=Bg(7,a,o,i);a.lanes=u;return a}function qj(a,i,u,o){a=Bg(22,a,o,i);a.elementType=ee;a.lanes=u;a.stateNode={isHidden:!1};return a}function xh(a,i,u){a=Bg(6,a,null,i);a.lanes=u;return a}function zh(a,i,u){i=Bg(4,null!==a.children?a.children:[],a.key,i);i.lanes=u;i.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return i}function bl(a,i,u,o,s){this.tag=i;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=o;this.onRecoverableError=s;this.mutableSourceEagerHydrationData=null}function cl(a,i,u,o,s,w,x,C,z){a=new bl(a,i,u,C,z);1===i?(i=1,!0===w&&(i|=8)):i=0;w=Bg(3,null,null,i);a.current=w;w.stateNode=a;w.memoizedState={element:o,isDehydrated:u,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(w);return a}function dl(a,i,u){var o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:I,key:null==o?null:\"\"+o,children:a,containerInfo:i,implementation:u}}function el(a){if(!a)return mr;a=a._reactInternals;e:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var i=a;do{switch(i.tag){case 3:i=i.stateNode.context;break e;case 1:if(Zf(i.type)){i=i.stateNode.__reactInternalMemoizedMergedChildContext;break e}}i=i.return}while(null!==i);throw Error(p(171))}if(1===a.tag){var u=a.type;if(Zf(u))return bg(a,u,i)}return i}function fl(a,i,u,o,s,w,x,C,z){a=cl(u,o,!0,a,s,w,x,C,z);a.context=el(null);u=a.current;o=L();s=lh(u);w=ch(o,s);w.callback=void 0!==i&&null!==i?i:null;dh(u,w,s);a.current.lanes=s;Ac(a,s,o);Ek(a,o);return a}function gl(a,i,u,o){var s=i.current,w=L(),x=lh(s);u=el(u);null===i.context?i.context=u:i.pendingContext=u;i=ch(w,x);i.payload={element:a};o=void 0===o?null:o;null!==o&&(i.callback=o);a=dh(s,i,x);null!==a&&(mh(a,s,x,w),eh(a,s,x));return x}function hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,i){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var u=a.retryLane;a.retryLane=0!==u&&u<i?u:i}}function jl(a,i){il(a,i);(a=a.alternate)&&il(a,i)}function kl(){return null}var ja=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}nl.prototype.render=ml.prototype.render=function(a){var i=this._internalRoot;if(null===i)throw Error(p(409));gl(a,i,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var i=a.containerInfo;Sk((function(){gl(null,a,null,null)}));i[cr]=null}};function nl(a){this._internalRoot=a}nl.prototype.unstable_scheduleHydration=function(a){if(a){var i=wn();a={blockedOn:null,target:a,priority:i};for(var u=0;u<jn.length&&0!==i&&i<jn[u].priority;u++);jn.splice(u,0,a);0===u&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}function rl(a,i,u,o,s){if(s){if(\"function\"===typeof o){var w=o;o=function(){var a=hl(x);w.call(a)}}var x=fl(i,o,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=x;a[cr]=x.current;sf(8===a.nodeType?a.parentNode:a);Sk();return x}for(;s=a.lastChild;)a.removeChild(s);if(\"function\"===typeof o){var C=o;o=function(){var a=hl(z);C.call(a)}}var z=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=z;a[cr]=z.current;sf(8===a.nodeType?a.parentNode:a);Sk((function(){gl(i,z,u,o)}));return z}function sl(a,i,u,o,s){var w=u._reactRootContainer;if(w){var x=w;if(\"function\"===typeof s){var C=s;s=function(){var a=hl(x);C.call(a)}}gl(i,x,a,s)}else x=rl(u,i,a,s,o);return hl(x)}bn=function(a){switch(a.tag){case 3:var i=a.stateNode;if(i.current.memoizedState.isDehydrated){var u=tc(i.pendingLanes);0!==u&&(Cc(i,1|u),Ek(i,tn()),0===(6&Zl)&&(ma=tn()+500,jg()))}break;case 13:Sk((function(){var i=Zg(a,1);if(null!==i){var u=L();mh(i,a,1,u)}})),jl(a,1)}};yn=function(a){if(13===a.tag){var i=Zg(a,134217728);if(null!==i){var u=L();mh(i,a,134217728,u)}jl(a,134217728)}};kn=function(a){if(13===a.tag){var i=lh(a),u=Zg(a,i);if(null!==u){var o=L();mh(u,a,i,o)}jl(a,i)}};wn=function(){return vn};Sn=function(a,i){var u=vn;try{return vn=a,i()}finally{vn=u}};xe=function(a,i,u){switch(i){case\"input\":bb(a,u);i=u.name;if(\"radio\"===u.type&&null!=i){for(u=a;u.parentNode;)u=u.parentNode;u=u.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+i)+'][type=\"radio\"]');for(i=0;i<u.length;i++){var o=u[i];if(o!==a&&o.form===a.form){var s=Db(o);if(!s)throw Error(p(90));Wa(o);bb(o,s)}}}break;case\"textarea\":ib(a,u);break;case\"select\":i=u.value,null!=i&&fb(a,!!u.multiple,i,!1)}};Gb=Rk;Hb=Sk;var Da={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},Fa={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};var Ia={bundleType:Fa.bundleType,version:Fa.version,rendererPackageName:Fa.rendererPackageName,rendererConfig:Fa.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:R.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:Fa.findFiberByHostInstance||kl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var Aa=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Aa.isDisabled&&Aa.supportsFiber)try{cn=Aa.inject(Ia),fn=Aa}catch(a){}}s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Da;s.createPortal=function(a,i){var u=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(i))throw Error(p(200));return dl(a,i,null,u)};s.createRoot=function(a,i){if(!ol(a))throw Error(p(299));var u=!1,o=\"\",s=ja;null!==i&&void 0!==i&&(!0===i.unstable_strictMode&&(u=!0),void 0!==i.identifierPrefix&&(o=i.identifierPrefix),void 0!==i.onRecoverableError&&(s=i.onRecoverableError));i=cl(a,1,!1,null,null,u,!1,o,s);a[cr]=i.current;sf(8===a.nodeType?a.parentNode:a);return new ml(i)};s.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var i=a._reactInternals;if(void 0===i){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a))}a=Zb(i);a=null===a?null:a.stateNode;return a};s.flushSync=function(a){return Sk(a)};s.hydrate=function(a,i,u){if(!pl(i))throw Error(p(200));return sl(null,a,i,!0,u)};s.hydrateRoot=function(a,i,u){if(!ol(a))throw Error(p(405));var o=null!=u&&u.hydratedSources||null,s=!1,w=\"\",x=ja;null!==u&&void 0!==u&&(!0===u.unstable_strictMode&&(s=!0),void 0!==u.identifierPrefix&&(w=u.identifierPrefix),void 0!==u.onRecoverableError&&(x=u.onRecoverableError));i=fl(i,null,a,1,null!=u?u:null,s,!1,w,x);a[cr]=i.current;sf(a);if(o)for(a=0;a<o.length;a++)u=o[a],s=u._getVersion,s=s(u._source),null==i.mutableSourceEagerHydrationData?i.mutableSourceEagerHydrationData=[u,s]:i.mutableSourceEagerHydrationData.push(u,s);return new nl(i)};s.render=function(a,i,u){if(!pl(i))throw Error(p(200));return sl(null,a,i,!1,u)};s.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return!!a._reactRootContainer&&(Sk((function(){sl(null,null,a,!1,(function(){a._reactRootContainer=null;a[cr]=null}))})),!0)};s.unstable_batchedUpdates=Rk;s.unstable_renderSubtreeIntoContainer=function(a,i,u,o){if(!pl(u))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,i,u,!1,o)};s.version=\"18.2.0-next-9e3b772b8-20220608\";function checkDCE(){if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(a){console.error(a)}}checkDCE();var Ba=s;var Ha=Ba;const $a=Ba.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ga=Ba.createPortal,Ja=Ba.createRoot,ai=Ba.findDOMNode,Si=Ba.flushSync,Ni=Ba.hydrate,_i=Ba.hydrateRoot,Pi=Ba.render,Qi=Ba.unmountComponentAtNode,Xi=Ba.unstable_batchedUpdates,eu=Ba.unstable_renderSubtreeIntoContainer,nu=Ba.version;export{$a as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ga as createPortal,Ja as createRoot,Ha as default,ai as findDOMNode,Si as flushSync,Ni as hydrate,_i as hydrateRoot,Pi as render,Qi as unmountComponentAtNode,Xi as unstable_batchedUpdates,eu as unstable_renderSubtreeIntoContainer,nu as version};\n\n//# sourceMappingURL=index.js.map", "var e={};function f(e,n){var t=e.length;e.push(n);e:for(;0<t;){var a=t-1>>>1,l=e[a];if(!(0<g(l,n)))break e;e[a]=n,e[t]=l,t=a}}function h(e){return 0===e.length?null:e[0]}function k(e){if(0===e.length)return null;var n=e[0],t=e.pop();if(t!==n){e[0]=t;e:for(var a=0,l=e.length,r=l>>>1;a<r;){var i=2*(a+1)-1,u=e[i],o=i+1,s=e[o];if(0>g(u,t))o<l&&0>g(s,u)?(e[a]=s,e[o]=t,a=o):(e[a]=u,e[i]=t,a=i);else{if(!(o<l&&0>g(s,t)))break e;e[a]=s,e[o]=t,a=o}}}return n}function g(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var n=performance;e.unstable_now=function(){return n.now()}}else{var t=Date,a=t.now();e.unstable_now=function(){return t.now()-a}}var l=[],r=[],i=1,u=null,o=3,s=!1,c=!1,b=!1,d=\"function\"===typeof setTimeout?setTimeout:null,_=\"function\"===typeof clearTimeout?clearTimeout:null,v=\"undefined\"!==typeof setImmediate?setImmediate:null;\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(e){for(var n=h(r);null!==n;){if(null===n.callback)k(r);else{if(!(n.startTime<=e))break;k(r),n.sortIndex=n.expirationTime,f(l,n)}n=h(r)}}function H(e){b=!1;G(e);if(!c)if(null!==h(l))c=!0,I(J);else{var n=h(r);null!==n&&K(H,n.startTime-e)}}function J(n,t){c=!1;b&&(b=!1,_(m),m=-1);s=!0;var a=o;try{G(t);for(u=h(l);null!==u&&(!(u.expirationTime>t)||n&&!M());){var i=u.callback;if(\"function\"===typeof i){u.callback=null;o=u.priorityLevel;var d=i(u.expirationTime<=t);t=e.unstable_now();\"function\"===typeof d?u.callback=d:u===h(l)&&k(l);G(t)}else k(l);u=h(l)}if(null!==u)var v=!0;else{var p=h(r);null!==p&&K(H,p.startTime-t);v=!1}return v}finally{u=null,o=a,s=!1}}var p=!1,y=null,m=-1,w=5,P=-1;function M(){return!(e.unstable_now()-P<w)}function R(){if(null!==y){var n=e.unstable_now();P=n;var t=!0;try{t=y(!0,n)}finally{t?x():(p=!1,y=null)}}else p=!1}var x;if(\"function\"===typeof v)x=function(){v(R)};else if(\"undefined\"!==typeof MessageChannel){var C=new MessageChannel,T=C.port2;C.port1.onmessage=R;x=function(){T.postMessage(null)}}else x=function(){d(R,0)};function I(e){y=e;p||(p=!0,x())}function K(n,t){m=d((function(){n(e.unstable_now())}),t)}e.unstable_IdlePriority=5;e.unstable_ImmediatePriority=1;e.unstable_LowPriority=4;e.unstable_NormalPriority=3;e.unstable_Profiling=null;e.unstable_UserBlockingPriority=2;e.unstable_cancelCallback=function(e){e.callback=null};e.unstable_continueExecution=function(){c||s||(c=!0,I(J))};e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):w=0<e?Math.floor(1e3/e):5};e.unstable_getCurrentPriorityLevel=function(){return o};e.unstable_getFirstCallbackNode=function(){return h(l)};e.unstable_next=function(e){switch(o){case 1:case 2:case 3:var n=3;break;default:n=o}var t=o;o=n;try{return e()}finally{o=t}};e.unstable_pauseExecution=function(){};e.unstable_requestPaint=function(){};e.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var t=o;o=e;try{return n()}finally{o=t}};e.unstable_scheduleCallback=function(n,t,a){var u=e.unstable_now();\"object\"===typeof a&&null!==a?(a=a.delay,a=\"number\"===typeof a&&0<a?u+a:u):a=u;switch(n){case 1:var o=-1;break;case 2:o=250;break;case 5:o=1073741823;break;case 4:o=1e4;break;default:o=5e3}o=a+o;n={id:i++,callback:t,priorityLevel:n,startTime:a,expirationTime:o,sortIndex:-1};a>u?(n.sortIndex=a,f(r,n),null===h(l)&&n===h(r)&&(b?(_(m),m=-1):b=!0,K(H,a-u))):(n.sortIndex=o,f(l,n),c||s||(c=!0,I(J)));return n};e.unstable_shouldYield=M;e.unstable_wrapCallback=function(e){var n=o;return function(){var t=o;o=n;try{return e.apply(this,arguments)}finally{o=t}}};const L=e.unstable_now,F=e.unstable_IdlePriority,E=e.unstable_ImmediatePriority,N=e.unstable_LowPriority,j=e.unstable_NormalPriority,q=e.unstable_Profiling,B=e.unstable_UserBlockingPriority,U=e.unstable_cancelCallback,W=e.unstable_continueExecution,Y=e.unstable_forceFrameRate,D=e.unstable_getCurrentPriorityLevel,z=e.unstable_getFirstCallbackNode,A=e.unstable_next,O=e.unstable_pauseExecution,Q=e.unstable_requestPaint,S=e.unstable_runWithPriority,V=e.unstable_scheduleCallback,X=e.unstable_shouldYield,Z=e.unstable_wrapCallback;export{e as default,F as unstable_IdlePriority,E as unstable_ImmediatePriority,N as unstable_LowPriority,j as unstable_NormalPriority,q as unstable_Profiling,B as unstable_UserBlockingPriority,U as unstable_cancelCallback,W as unstable_continueExecution,Y as unstable_forceFrameRate,D as unstable_getCurrentPriorityLevel,z as unstable_getFirstCallbackNode,A as unstable_next,L as unstable_now,O as unstable_pauseExecution,Q as unstable_requestPaint,S as unstable_runWithPriority,V as unstable_scheduleCallback,X as unstable_shouldYield,Z as unstable_wrapCallback};\n\n//# sourceMappingURL=index.js.map", "import {\n  AnimatePresence,\n  DeprecatedLayoutGroupContext,\n  DragControls,\n  FlatTree,\n  LayoutGroup,\n  LazyMotion,\n  MotionConfig,\n  MotionConfigContext,\n  MotionContext,\n  MotionValue,\n  PresenceContext,\n  Reorder,\n  SwitchLayoutGroupContext,\n  VisualElement,\n  __commonJS,\n  __privateAdd,\n  __privateGet,\n  __privateSet,\n  __toESM,\n  addPointerEvent,\n  addPointerInfo,\n  addScaleCorrector,\n  animate,\n  animateValue,\n  animateVisualElement,\n  animationControls,\n  animations,\n  anticipate,\n  backIn,\n  backInOut,\n  backOut,\n  buildTransform,\n  calcLength,\n  cancelFrame,\n  cancelSync,\n  checkTargetForNewValues,\n  circIn,\n  circInOut,\n  circOut,\n  clamp,\n  color,\n  complex,\n  createBox,\n  createDomMotionComponent,\n  createMotionComponent,\n  createScopedAnimate,\n  cubicBezier,\n  delay,\n  disableInstantTransitions,\n  distance,\n  distance2D,\n  domAnimation,\n  domMax,\n  easeIn,\n  easeInOut,\n  easeOut,\n  filterProps,\n  frame,\n  frameData,\n  inView,\n  interpolate,\n  invariant,\n  isBrowser,\n  isDragActive,\n  isMotionComponent,\n  isMotionValue,\n  isValidMotionProp,\n  m,\n  makeUseVisualState,\n  mirrorEasing,\n  mix,\n  motion,\n  motionValue,\n  optimizedAppearDataAttribute,\n  pipe,\n  progress,\n  px,\n  resolveMotionValue,\n  reverseEasing,\n  scroll,\n  scrollInfo,\n  spring,\n  stagger,\n  startOptimizedAppearAnimation,\n  steps,\n  sync,\n  transform,\n  unwrapMotionComponent,\n  useAnimate,\n  useAnimatedState,\n  useAnimation,\n  useAnimationControls,\n  useAnimationFrame,\n  useCycle,\n  useDomEvent,\n  useDragControls,\n  useElementScroll,\n  useForceUpdate,\n  useInView,\n  useInstantLayoutTransition,\n  useInstantTransition,\n  useInvertedScale,\n  useIsPresent,\n  useIsomorphicLayoutEffect,\n  useMotionTemplate,\n  useMotionValue,\n  useMotionValueEvent,\n  usePresence,\n  useReducedMotion,\n  useReducedMotionConfig,\n  useResetProjection,\n  useScroll,\n  useSpring,\n  useTime,\n  useTransform,\n  useUnmountEffect,\n  useVelocity,\n  useViewportScroll,\n  useWillChange,\n  visualElementStore,\n  warning,\n  wrap\n} from \"./chunk-H3UF2DYR.js\";\n\n// ../../../node_modules/hsluv/hsluv.js\nvar require_hsluv = __commonJS({\n  \"../../../node_modules/hsluv/hsluv.js\"(exports, module) {\n    var hsluv = hsluv || {};\n    hsluv.Geometry = function() {\n    };\n    hsluv.Geometry.intersectLineLine = function(a, b) {\n      var x = (a.intercept - b.intercept) / (b.slope - a.slope);\n      var y = a.slope * x + a.intercept;\n      return { x, y };\n    };\n    hsluv.Geometry.distanceFromOrigin = function(point) {\n      return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n    };\n    hsluv.Geometry.distanceLineFromOrigin = function(line) {\n      return Math.abs(line.intercept) / Math.sqrt(Math.pow(line.slope, 2) + 1);\n    };\n    hsluv.Geometry.perpendicularThroughPoint = function(line, point) {\n      var slope = -1 / line.slope;\n      var intercept = point.y - slope * point.x;\n      return { slope, intercept };\n    };\n    hsluv.Geometry.angleFromOrigin = function(point) {\n      return Math.atan2(point.y, point.x);\n    };\n    hsluv.Geometry.normalizeAngle = function(angle) {\n      var m2 = 2 * Math.PI;\n      return (angle % m2 + m2) % m2;\n    };\n    hsluv.Geometry.lengthOfRayUntilIntersect = function(theta, line) {\n      return line.intercept / (Math.sin(theta) - line.slope * Math.cos(theta));\n    };\n    hsluv.Hsluv = function() {\n    };\n    hsluv.Hsluv.getBounds = function(L) {\n      var result = [];\n      var sub1 = Math.pow(L + 16, 3) / 1560896;\n      var sub2 = sub1 > hsluv.Hsluv.epsilon ? sub1 : L / hsluv.Hsluv.kappa;\n      var _g = 0;\n      while (_g < 3) {\n        var c = _g++;\n        var m1 = hsluv.Hsluv.m[c][0];\n        var m2 = hsluv.Hsluv.m[c][1];\n        var m3 = hsluv.Hsluv.m[c][2];\n        var _g1 = 0;\n        while (_g1 < 2) {\n          var t = _g1++;\n          var top1 = (284517 * m1 - 94839 * m3) * sub2;\n          var top2 = (838422 * m3 + 769860 * m2 + 731718 * m1) * L * sub2 - 769860 * t * L;\n          var bottom = (632260 * m3 - 126452 * m2) * sub2 + 126452 * t;\n          result.push({ slope: top1 / bottom, intercept: top2 / bottom });\n        }\n      }\n      return result;\n    };\n    hsluv.Hsluv.maxSafeChromaForL = function(L) {\n      var bounds = hsluv.Hsluv.getBounds(L);\n      var min = Infinity;\n      var _g = 0;\n      while (_g < bounds.length) {\n        var bound = bounds[_g];\n        ++_g;\n        var length = hsluv.Geometry.distanceLineFromOrigin(bound);\n        min = Math.min(min, length);\n      }\n      return min;\n    };\n    hsluv.Hsluv.maxChromaForLH = function(L, H) {\n      var hrad = H / 360 * Math.PI * 2;\n      var bounds = hsluv.Hsluv.getBounds(L);\n      var min = Infinity;\n      var _g = 0;\n      while (_g < bounds.length) {\n        var bound = bounds[_g];\n        ++_g;\n        var length = hsluv.Geometry.lengthOfRayUntilIntersect(hrad, bound);\n        if (length >= 0) {\n          min = Math.min(min, length);\n        }\n      }\n      return min;\n    };\n    hsluv.Hsluv.dotProduct = function(a, b) {\n      var sum = 0;\n      var _g1 = 0;\n      var _g = a.length;\n      while (_g1 < _g) {\n        var i = _g1++;\n        sum += a[i] * b[i];\n      }\n      return sum;\n    };\n    hsluv.Hsluv.fromLinear = function(c) {\n      if (c <= 31308e-7) {\n        return 12.92 * c;\n      } else {\n        return 1.055 * Math.pow(c, 0.4166666666666667) - 0.055;\n      }\n    };\n    hsluv.Hsluv.toLinear = function(c) {\n      if (c > 0.04045) {\n        return Math.pow((c + 0.055) / 1.055, 2.4);\n      } else {\n        return c / 12.92;\n      }\n    };\n    hsluv.Hsluv.xyzToRgb = function(tuple) {\n      return [hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[0], tuple)), hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[1], tuple)), hsluv.Hsluv.fromLinear(hsluv.Hsluv.dotProduct(hsluv.Hsluv.m[2], tuple))];\n    };\n    hsluv.Hsluv.rgbToXyz = function(tuple) {\n      var rgbl = [hsluv.Hsluv.toLinear(tuple[0]), hsluv.Hsluv.toLinear(tuple[1]), hsluv.Hsluv.toLinear(tuple[2])];\n      return [hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[0], rgbl), hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[1], rgbl), hsluv.Hsluv.dotProduct(hsluv.Hsluv.minv[2], rgbl)];\n    };\n    hsluv.Hsluv.yToL = function(Y) {\n      if (Y <= hsluv.Hsluv.epsilon) {\n        return Y / hsluv.Hsluv.refY * hsluv.Hsluv.kappa;\n      } else {\n        return 116 * Math.pow(Y / hsluv.Hsluv.refY, 0.3333333333333333) - 16;\n      }\n    };\n    hsluv.Hsluv.lToY = function(L) {\n      if (L <= 8) {\n        return hsluv.Hsluv.refY * L / hsluv.Hsluv.kappa;\n      } else {\n        return hsluv.Hsluv.refY * Math.pow((L + 16) / 116, 3);\n      }\n    };\n    hsluv.Hsluv.xyzToLuv = function(tuple) {\n      var X = tuple[0];\n      var Y = tuple[1];\n      var Z = tuple[2];\n      var divider = X + 15 * Y + 3 * Z;\n      var varU = 4 * X;\n      var varV = 9 * Y;\n      if (divider != 0) {\n        varU /= divider;\n        varV /= divider;\n      } else {\n        varU = NaN;\n        varV = NaN;\n      }\n      var L = hsluv.Hsluv.yToL(Y);\n      if (L == 0) {\n        return [0, 0, 0];\n      }\n      var U = 13 * L * (varU - hsluv.Hsluv.refU);\n      var V = 13 * L * (varV - hsluv.Hsluv.refV);\n      return [L, U, V];\n    };\n    hsluv.Hsluv.luvToXyz = function(tuple) {\n      var L = tuple[0];\n      var U = tuple[1];\n      var V = tuple[2];\n      if (L == 0) {\n        return [0, 0, 0];\n      }\n      var varU = U / (13 * L) + hsluv.Hsluv.refU;\n      var varV = V / (13 * L) + hsluv.Hsluv.refV;\n      var Y = hsluv.Hsluv.lToY(L);\n      var X = 0 - 9 * Y * varU / ((varU - 4) * varV - varU * varV);\n      var Z = (9 * Y - 15 * varV * Y - varV * X) / (3 * varV);\n      return [X, Y, Z];\n    };\n    hsluv.Hsluv.luvToLch = function(tuple) {\n      var L = tuple[0];\n      var U = tuple[1];\n      var V = tuple[2];\n      var C = Math.sqrt(U * U + V * V);\n      var H;\n      if (C < 1e-8) {\n        H = 0;\n      } else {\n        var Hrad = Math.atan2(V, U);\n        H = Hrad * 180 / Math.PI;\n        if (H < 0) {\n          H = 360 + H;\n        }\n      }\n      return [L, C, H];\n    };\n    hsluv.Hsluv.lchToLuv = function(tuple) {\n      var L = tuple[0];\n      var C = tuple[1];\n      var H = tuple[2];\n      var Hrad = H / 360 * 2 * Math.PI;\n      var U = Math.cos(Hrad) * C;\n      var V = Math.sin(Hrad) * C;\n      return [L, U, V];\n    };\n    hsluv.Hsluv.hsluvToLch = function(tuple) {\n      var H = tuple[0];\n      var S = tuple[1];\n      var L = tuple[2];\n      if (L > 99.9999999) {\n        return [100, 0, H];\n      }\n      if (L < 1e-8) {\n        return [0, 0, H];\n      }\n      var max = hsluv.Hsluv.maxChromaForLH(L, H);\n      var C = max / 100 * S;\n      return [L, C, H];\n    };\n    hsluv.Hsluv.lchToHsluv = function(tuple) {\n      var L = tuple[0];\n      var C = tuple[1];\n      var H = tuple[2];\n      if (L > 99.9999999) {\n        return [H, 0, 100];\n      }\n      if (L < 1e-8) {\n        return [H, 0, 0];\n      }\n      var max = hsluv.Hsluv.maxChromaForLH(L, H);\n      var S = C / max * 100;\n      return [H, S, L];\n    };\n    hsluv.Hsluv.hpluvToLch = function(tuple) {\n      var H = tuple[0];\n      var S = tuple[1];\n      var L = tuple[2];\n      if (L > 99.9999999) {\n        return [100, 0, H];\n      }\n      if (L < 1e-8) {\n        return [0, 0, H];\n      }\n      var max = hsluv.Hsluv.maxSafeChromaForL(L);\n      var C = max / 100 * S;\n      return [L, C, H];\n    };\n    hsluv.Hsluv.lchToHpluv = function(tuple) {\n      var L = tuple[0];\n      var C = tuple[1];\n      var H = tuple[2];\n      if (L > 99.9999999) {\n        return [H, 0, 100];\n      }\n      if (L < 1e-8) {\n        return [H, 0, 0];\n      }\n      var max = hsluv.Hsluv.maxSafeChromaForL(L);\n      var S = C / max * 100;\n      return [H, S, L];\n    };\n    hsluv.Hsluv.rgbToHex = function(tuple) {\n      var h = \"#\";\n      var _g = 0;\n      while (_g < 3) {\n        var i = _g++;\n        var chan = tuple[i];\n        var c = Math.round(chan * 255);\n        var digit2 = c % 16;\n        var digit1 = (c - digit2) / 16 | 0;\n        h += hsluv.Hsluv.hexChars.charAt(digit1) + hsluv.Hsluv.hexChars.charAt(digit2);\n      }\n      return h;\n    };\n    hsluv.Hsluv.hexToRgb = function(hex) {\n      hex = hex.toLowerCase();\n      var ret = [];\n      var _g = 0;\n      while (_g < 3) {\n        var i = _g++;\n        var digit1 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 1));\n        var digit2 = hsluv.Hsluv.hexChars.indexOf(hex.charAt(i * 2 + 2));\n        var n = digit1 * 16 + digit2;\n        ret.push(n / 255);\n      }\n      return ret;\n    };\n    hsluv.Hsluv.lchToRgb = function(tuple) {\n      return hsluv.Hsluv.xyzToRgb(hsluv.Hsluv.luvToXyz(hsluv.Hsluv.lchToLuv(tuple)));\n    };\n    hsluv.Hsluv.rgbToLch = function(tuple) {\n      return hsluv.Hsluv.luvToLch(hsluv.Hsluv.xyzToLuv(hsluv.Hsluv.rgbToXyz(tuple)));\n    };\n    hsluv.Hsluv.hsluvToRgb = function(tuple) {\n      return hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hsluvToLch(tuple));\n    };\n    hsluv.Hsluv.rgbToHsluv = function(tuple) {\n      return hsluv.Hsluv.lchToHsluv(hsluv.Hsluv.rgbToLch(tuple));\n    };\n    hsluv.Hsluv.hpluvToRgb = function(tuple) {\n      return hsluv.Hsluv.lchToRgb(hsluv.Hsluv.hpluvToLch(tuple));\n    };\n    hsluv.Hsluv.rgbToHpluv = function(tuple) {\n      return hsluv.Hsluv.lchToHpluv(hsluv.Hsluv.rgbToLch(tuple));\n    };\n    hsluv.Hsluv.hsluvToHex = function(tuple) {\n      return hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hsluvToRgb(tuple));\n    };\n    hsluv.Hsluv.hpluvToHex = function(tuple) {\n      return hsluv.Hsluv.rgbToHex(hsluv.Hsluv.hpluvToRgb(tuple));\n    };\n    hsluv.Hsluv.hexToHsluv = function(s) {\n      return hsluv.Hsluv.rgbToHsluv(hsluv.Hsluv.hexToRgb(s));\n    };\n    hsluv.Hsluv.hexToHpluv = function(s) {\n      return hsluv.Hsluv.rgbToHpluv(hsluv.Hsluv.hexToRgb(s));\n    };\n    hsluv.Hsluv.m = [[3.240969941904521, -1.537383177570093, -0.498610760293], [-0.96924363628087, 1.87596750150772, 0.041555057407175], [0.055630079696993, -0.20397695888897, 1.056971514242878]];\n    hsluv.Hsluv.minv = [[0.41239079926595, 0.35758433938387, 0.18048078840183], [0.21263900587151, 0.71516867876775, 0.072192315360733], [0.019330818715591, 0.11919477979462, 0.95053215224966]];\n    hsluv.Hsluv.refY = 1;\n    hsluv.Hsluv.refU = 0.19783000664283;\n    hsluv.Hsluv.refV = 0.46831999493879;\n    hsluv.Hsluv.kappa = 903.2962962;\n    hsluv.Hsluv.epsilon = 0.0088564516;\n    hsluv.Hsluv.hexChars = \"0123456789abcdef\";\n    var root = {\n      \"hsluvToRgb\": hsluv.Hsluv.hsluvToRgb,\n      \"rgbToHsluv\": hsluv.Hsluv.rgbToHsluv,\n      \"hpluvToRgb\": hsluv.Hsluv.hpluvToRgb,\n      \"rgbToHpluv\": hsluv.Hsluv.rgbToHpluv,\n      \"hsluvToHex\": hsluv.Hsluv.hsluvToHex,\n      \"hexToHsluv\": hsluv.Hsluv.hexToHsluv,\n      \"hpluvToHex\": hsluv.Hsluv.hpluvToHex,\n      \"hexToHpluv\": hsluv.Hsluv.hexToHpluv,\n      \"lchToHpluv\": hsluv.Hsluv.lchToHpluv,\n      \"hpluvToLch\": hsluv.Hsluv.hpluvToLch,\n      \"lchToHsluv\": hsluv.Hsluv.lchToHsluv,\n      \"hsluvToLch\": hsluv.Hsluv.hsluvToLch,\n      \"lchToLuv\": hsluv.Hsluv.lchToLuv,\n      \"luvToLch\": hsluv.Hsluv.luvToLch,\n      \"xyzToLuv\": hsluv.Hsluv.xyzToLuv,\n      \"luvToXyz\": hsluv.Hsluv.luvToXyz,\n      \"xyzToRgb\": hsluv.Hsluv.xyzToRgb,\n      \"rgbToXyz\": hsluv.Hsluv.rgbToXyz,\n      \"lchToRgb\": hsluv.Hsluv.lchToRgb,\n      \"rgbToLch\": hsluv.Hsluv.rgbToLch\n    };\n    module.exports = root;\n  }\n});\n\n// ../../../node_modules/eventemitter3/index.js\nvar require_eventemitter3 = __commonJS({\n  \"../../../node_modules/eventemitter3/index.js\"(exports, module) {\n    \"use strict\";\n    var has = Object.prototype.hasOwnProperty;\n    var prefix2 = \"~\";\n    function Events() {\n    }\n    if (Object.create) {\n      Events.prototype = /* @__PURE__ */ Object.create(null);\n      if (!new Events().__proto__)\n        prefix2 = false;\n    }\n    function EE(fn, context, once) {\n      this.fn = fn;\n      this.context = context;\n      this.once = once || false;\n    }\n    function addListener(emitter, event, fn, context, once) {\n      if (typeof fn !== \"function\") {\n        throw new TypeError(\"The listener must be a function\");\n      }\n      var listener = new EE(fn, context || emitter, once), evt = prefix2 ? prefix2 + event : event;\n      if (!emitter._events[evt])\n        emitter._events[evt] = listener, emitter._eventsCount++;\n      else if (!emitter._events[evt].fn)\n        emitter._events[evt].push(listener);\n      else\n        emitter._events[evt] = [emitter._events[evt], listener];\n      return emitter;\n    }\n    function clearEvent(emitter, evt) {\n      if (--emitter._eventsCount === 0)\n        emitter._events = new Events();\n      else\n        delete emitter._events[evt];\n    }\n    function EventEmitter2() {\n      this._events = new Events();\n      this._eventsCount = 0;\n    }\n    EventEmitter2.prototype.eventNames = function eventNames() {\n      var names = [], events2, name;\n      if (this._eventsCount === 0)\n        return names;\n      for (name in events2 = this._events) {\n        if (has.call(events2, name))\n          names.push(prefix2 ? name.slice(1) : name);\n      }\n      if (Object.getOwnPropertySymbols) {\n        return names.concat(Object.getOwnPropertySymbols(events2));\n      }\n      return names;\n    };\n    EventEmitter2.prototype.listeners = function listeners(event) {\n      var evt = prefix2 ? prefix2 + event : event, handlers = this._events[evt];\n      if (!handlers)\n        return [];\n      if (handlers.fn)\n        return [handlers.fn];\n      for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n        ee[i] = handlers[i].fn;\n      }\n      return ee;\n    };\n    EventEmitter2.prototype.listenerCount = function listenerCount(event) {\n      var evt = prefix2 ? prefix2 + event : event, listeners = this._events[evt];\n      if (!listeners)\n        return 0;\n      if (listeners.fn)\n        return 1;\n      return listeners.length;\n    };\n    EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n      var evt = prefix2 ? prefix2 + event : event;\n      if (!this._events[evt])\n        return false;\n      var listeners = this._events[evt], len = arguments.length, args, i;\n      if (listeners.fn) {\n        if (listeners.once)\n          this.removeListener(event, listeners.fn, void 0, true);\n        switch (len) {\n          case 1:\n            return listeners.fn.call(listeners.context), true;\n          case 2:\n            return listeners.fn.call(listeners.context, a1), true;\n          case 3:\n            return listeners.fn.call(listeners.context, a1, a2), true;\n          case 4:\n            return listeners.fn.call(listeners.context, a1, a2, a3), true;\n          case 5:\n            return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n          case 6:\n            return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n        }\n        for (i = 1, args = new Array(len - 1); i < len; i++) {\n          args[i - 1] = arguments[i];\n        }\n        listeners.fn.apply(listeners.context, args);\n      } else {\n        var length = listeners.length, j;\n        for (i = 0; i < length; i++) {\n          if (listeners[i].once)\n            this.removeListener(event, listeners[i].fn, void 0, true);\n          switch (len) {\n            case 1:\n              listeners[i].fn.call(listeners[i].context);\n              break;\n            case 2:\n              listeners[i].fn.call(listeners[i].context, a1);\n              break;\n            case 3:\n              listeners[i].fn.call(listeners[i].context, a1, a2);\n              break;\n            case 4:\n              listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n              break;\n            default:\n              if (!args)\n                for (j = 1, args = new Array(len - 1); j < len; j++) {\n                  args[j - 1] = arguments[j];\n                }\n              listeners[i].fn.apply(listeners[i].context, args);\n          }\n        }\n      }\n      return true;\n    };\n    EventEmitter2.prototype.on = function on(event, fn, context) {\n      return addListener(this, event, fn, context, false);\n    };\n    EventEmitter2.prototype.once = function once(event, fn, context) {\n      return addListener(this, event, fn, context, true);\n    };\n    EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {\n      var evt = prefix2 ? prefix2 + event : event;\n      if (!this._events[evt])\n        return this;\n      if (!fn) {\n        clearEvent(this, evt);\n        return this;\n      }\n      var listeners = this._events[evt];\n      if (listeners.fn) {\n        if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n          clearEvent(this, evt);\n        }\n      } else {\n        for (var i = 0, events2 = [], length = listeners.length; i < length; i++) {\n          if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n            events2.push(listeners[i]);\n          }\n        }\n        if (events2.length)\n          this._events[evt] = events2.length === 1 ? events2[0] : events2;\n        else\n          clearEvent(this, evt);\n      }\n      return this;\n    };\n    EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {\n      var evt;\n      if (event) {\n        evt = prefix2 ? prefix2 + event : event;\n        if (this._events[evt])\n          clearEvent(this, evt);\n      } else {\n        this._events = new Events();\n        this._eventsCount = 0;\n      }\n      return this;\n    };\n    EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;\n    EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;\n    EventEmitter2.prefixed = prefix2;\n    EventEmitter2.EventEmitter = EventEmitter2;\n    if (\"undefined\" !== typeof module) {\n      module.exports = EventEmitter2;\n    }\n  }\n});\n\n// ../../../node_modules/process/browser.js\nvar require_browser = __commonJS({\n  \"../../../node_modules/process/browser.js\"(exports, module) {\n    var process6 = module.exports = {};\n    var cachedSetTimeout;\n    var cachedClearTimeout;\n    function defaultSetTimout() {\n      throw new Error(\"setTimeout has not been defined\");\n    }\n    function defaultClearTimeout() {\n      throw new Error(\"clearTimeout has not been defined\");\n    }\n    (function() {\n      try {\n        if (typeof setTimeout === \"function\") {\n          cachedSetTimeout = setTimeout;\n        } else {\n          cachedSetTimeout = defaultSetTimout;\n        }\n      } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n      }\n      try {\n        if (typeof clearTimeout === \"function\") {\n          cachedClearTimeout = clearTimeout;\n        } else {\n          cachedClearTimeout = defaultClearTimeout;\n        }\n      } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n      }\n    })();\n    function runTimeout(fun) {\n      if (cachedSetTimeout === setTimeout) {\n        return setTimeout(fun, 0);\n      }\n      if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n      }\n      try {\n        return cachedSetTimeout(fun, 0);\n      } catch (e) {\n        try {\n          return cachedSetTimeout.call(null, fun, 0);\n        } catch (e2) {\n          return cachedSetTimeout.call(this, fun, 0);\n        }\n      }\n    }\n    function runClearTimeout(marker) {\n      if (cachedClearTimeout === clearTimeout) {\n        return clearTimeout(marker);\n      }\n      if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n      }\n      try {\n        return cachedClearTimeout(marker);\n      } catch (e) {\n        try {\n          return cachedClearTimeout.call(null, marker);\n        } catch (e2) {\n          return cachedClearTimeout.call(this, marker);\n        }\n      }\n    }\n    var queue = [];\n    var draining = false;\n    var currentQueue;\n    var queueIndex = -1;\n    function cleanUpNextTick() {\n      if (!draining || !currentQueue) {\n        return;\n      }\n      draining = false;\n      if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n      } else {\n        queueIndex = -1;\n      }\n      if (queue.length) {\n        drainQueue();\n      }\n    }\n    function drainQueue() {\n      if (draining) {\n        return;\n      }\n      var timeout = runTimeout(cleanUpNextTick);\n      draining = true;\n      var len = queue.length;\n      while (len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n          if (currentQueue) {\n            currentQueue[queueIndex].run();\n          }\n        }\n        queueIndex = -1;\n        len = queue.length;\n      }\n      currentQueue = null;\n      draining = false;\n      runClearTimeout(timeout);\n    }\n    process6.nextTick = function(fun) {\n      var args = new Array(arguments.length - 1);\n      if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n          args[i - 1] = arguments[i];\n        }\n      }\n      queue.push(new Item(fun, args));\n      if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n      }\n    };\n    function Item(fun, array) {\n      this.fun = fun;\n      this.array = array;\n    }\n    Item.prototype.run = function() {\n      this.fun.apply(null, this.array);\n    };\n    process6.title = \"browser\";\n    process6.browser = true;\n    process6.env = {};\n    process6.argv = [];\n    process6.version = \"\";\n    process6.versions = {};\n    function noop() {\n    }\n    process6.on = noop;\n    process6.addListener = noop;\n    process6.once = noop;\n    process6.off = noop;\n    process6.removeListener = noop;\n    process6.removeAllListeners = noop;\n    process6.emit = noop;\n    process6.prependListener = noop;\n    process6.prependOnceListener = noop;\n    process6.listeners = function(name) {\n      return [];\n    };\n    process6.binding = function(name) {\n      throw new Error(\"process.binding is not supported\");\n    };\n    process6.cwd = function() {\n      return \"/\";\n    };\n    process6.chdir = function(dir) {\n      throw new Error(\"process.chdir is not supported\");\n    };\n    process6.umask = function() {\n      return 0;\n    };\n  }\n});\n\n// ../../../node_modules/react-is/cjs/react-is.production.min.js\nvar require_react_is_production_min = __commonJS({\n  \"../../../node_modules/react-is/cjs/react-is.production.min.js\"(exports) {\n    \"use strict\";\n    var b = \"function\" === typeof Symbol && Symbol.for;\n    var c = b ? Symbol.for(\"react.element\") : 60103;\n    var d = b ? Symbol.for(\"react.portal\") : 60106;\n    var e = b ? Symbol.for(\"react.fragment\") : 60107;\n    var f = b ? Symbol.for(\"react.strict_mode\") : 60108;\n    var g = b ? Symbol.for(\"react.profiler\") : 60114;\n    var h = b ? Symbol.for(\"react.provider\") : 60109;\n    var k = b ? Symbol.for(\"react.context\") : 60110;\n    var l = b ? Symbol.for(\"react.async_mode\") : 60111;\n    var m2 = b ? Symbol.for(\"react.concurrent_mode\") : 60111;\n    var n = b ? Symbol.for(\"react.forward_ref\") : 60112;\n    var p = b ? Symbol.for(\"react.suspense\") : 60113;\n    var q = b ? Symbol.for(\"react.suspense_list\") : 60120;\n    var r = b ? Symbol.for(\"react.memo\") : 60115;\n    var t = b ? Symbol.for(\"react.lazy\") : 60116;\n    var v = b ? Symbol.for(\"react.block\") : 60121;\n    var w = b ? Symbol.for(\"react.fundamental\") : 60117;\n    var x = b ? Symbol.for(\"react.responder\") : 60118;\n    var y = b ? Symbol.for(\"react.scope\") : 60119;\n    function z(a) {\n      if (\"object\" === typeof a && null !== a) {\n        var u = a.$$typeof;\n        switch (u) {\n          case c:\n            switch (a = a.type, a) {\n              case l:\n              case m2:\n              case e:\n              case g:\n              case f:\n              case p:\n                return a;\n              default:\n                switch (a = a && a.$$typeof, a) {\n                  case k:\n                  case n:\n                  case t:\n                  case r:\n                  case h:\n                    return a;\n                  default:\n                    return u;\n                }\n            }\n          case d:\n            return u;\n        }\n      }\n    }\n    function A(a) {\n      return z(a) === m2;\n    }\n    exports.AsyncMode = l;\n    exports.ConcurrentMode = m2;\n    exports.ContextConsumer = k;\n    exports.ContextProvider = h;\n    exports.Element = c;\n    exports.ForwardRef = n;\n    exports.Fragment = e;\n    exports.Lazy = t;\n    exports.Memo = r;\n    exports.Portal = d;\n    exports.Profiler = g;\n    exports.StrictMode = f;\n    exports.Suspense = p;\n    exports.isAsyncMode = function(a) {\n      return A(a) || z(a) === l;\n    };\n    exports.isConcurrentMode = A;\n    exports.isContextConsumer = function(a) {\n      return z(a) === k;\n    };\n    exports.isContextProvider = function(a) {\n      return z(a) === h;\n    };\n    exports.isElement = function(a) {\n      return \"object\" === typeof a && null !== a && a.$$typeof === c;\n    };\n    exports.isForwardRef = function(a) {\n      return z(a) === n;\n    };\n    exports.isFragment = function(a) {\n      return z(a) === e;\n    };\n    exports.isLazy = function(a) {\n      return z(a) === t;\n    };\n    exports.isMemo = function(a) {\n      return z(a) === r;\n    };\n    exports.isPortal = function(a) {\n      return z(a) === d;\n    };\n    exports.isProfiler = function(a) {\n      return z(a) === g;\n    };\n    exports.isStrictMode = function(a) {\n      return z(a) === f;\n    };\n    exports.isSuspense = function(a) {\n      return z(a) === p;\n    };\n    exports.isValidElementType = function(a) {\n      return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m2 || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n    };\n    exports.typeOf = z;\n  }\n});\n\n// ../../../node_modules/react-is/index.js\nvar require_react_is = __commonJS({\n  \"../../../node_modules/react-is/index.js\"(exports, module) {\n    \"use strict\";\n    if (true) {\n      module.exports = require_react_is_production_min();\n    } else {\n      module.exports = null;\n    }\n  }\n});\n\n// ../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\nvar require_hoist_non_react_statics_cjs = __commonJS({\n  \"../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\"(exports, module) {\n    \"use strict\";\n    var reactIs = require_react_is();\n    var 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    };\n    var KNOWN_STATICS = {\n      name: true,\n      length: true,\n      prototype: true,\n      caller: true,\n      callee: true,\n      arguments: true,\n      arity: true\n    };\n    var FORWARD_REF_STATICS = {\n      \"$$typeof\": true,\n      render: true,\n      defaultProps: true,\n      displayName: true,\n      propTypes: true\n    };\n    var MEMO_STATICS = {\n      \"$$typeof\": true,\n      compare: true,\n      defaultProps: true,\n      displayName: true,\n      propTypes: true,\n      type: true\n    };\n    var TYPE_STATICS = {};\n    TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\n    TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n    function getStatics(component) {\n      if (reactIs.isMemo(component)) {\n        return MEMO_STATICS;\n      }\n      return TYPE_STATICS[component[\"$$typeof\"]] || REACT_STATICS;\n    }\n    var defineProperty = Object.defineProperty;\n    var getOwnPropertyNames = Object.getOwnPropertyNames;\n    var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n    var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n    var getPrototypeOf = Object.getPrototypeOf;\n    var objectPrototype = Object.prototype;\n    function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n      if (typeof sourceComponent !== \"string\") {\n        if (objectPrototype) {\n          var inheritedComponent = getPrototypeOf(sourceComponent);\n          if (inheritedComponent && inheritedComponent !== objectPrototype) {\n            hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n          }\n        }\n        var keys3 = getOwnPropertyNames(sourceComponent);\n        if (getOwnPropertySymbols) {\n          keys3 = keys3.concat(getOwnPropertySymbols(sourceComponent));\n        }\n        var targetStatics = getStatics(targetComponent);\n        var sourceStatics = getStatics(sourceComponent);\n        for (var i = 0; i < keys3.length; ++i) {\n          var key7 = keys3[i];\n          if (!KNOWN_STATICS[key7] && !(blacklist && blacklist[key7]) && !(sourceStatics && sourceStatics[key7]) && !(targetStatics && targetStatics[key7])) {\n            var descriptor = getOwnPropertyDescriptor(sourceComponent, key7);\n            try {\n              defineProperty(targetComponent, key7, descriptor);\n            } catch (e) {\n            }\n          }\n        }\n      }\n      return targetComponent;\n    }\n    module.exports = hoistNonReactStatics;\n  }\n});\n\n// ../../../node_modules/fontfaceobserver/fontfaceobserver.standalone.js\nvar require_fontfaceobserver_standalone = __commonJS({\n  \"../../../node_modules/fontfaceobserver/fontfaceobserver.standalone.js\"(exports, module) {\n    (function() {\n      function l(a, b) {\n        document.addEventListener ? a.addEventListener(\"scroll\", b, false) : a.attachEvent(\"scroll\", b);\n      }\n      function m2(a) {\n        document.body ? a() : document.addEventListener ? document.addEventListener(\"DOMContentLoaded\", function c() {\n          document.removeEventListener(\"DOMContentLoaded\", c);\n          a();\n        }) : document.attachEvent(\"onreadystatechange\", function k() {\n          if (\"interactive\" == document.readyState || \"complete\" == document.readyState)\n            document.detachEvent(\"onreadystatechange\", k), a();\n        });\n      }\n      ;\n      function t(a) {\n        this.a = document.createElement(\"div\");\n        this.a.setAttribute(\"aria-hidden\", \"true\");\n        this.a.appendChild(document.createTextNode(a));\n        this.b = document.createElement(\"span\");\n        this.c = document.createElement(\"span\");\n        this.h = document.createElement(\"span\");\n        this.f = document.createElement(\"span\");\n        this.g = -1;\n        this.b.style.cssText = \"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\n        this.c.style.cssText = \"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\n        this.f.style.cssText = \"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\n        this.h.style.cssText = \"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";\n        this.b.appendChild(this.h);\n        this.c.appendChild(this.f);\n        this.a.appendChild(this.b);\n        this.a.appendChild(this.c);\n      }\n      function u(a, b) {\n        a.a.style.cssText = \"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\" + b + \";\";\n      }\n      function z(a) {\n        var b = a.a.offsetWidth, c = b + 100;\n        a.f.style.width = c + \"px\";\n        a.c.scrollLeft = c;\n        a.b.scrollLeft = a.b.scrollWidth + 100;\n        return a.g !== b ? (a.g = b, true) : false;\n      }\n      function A(a, b) {\n        function c() {\n          var a2 = k;\n          z(a2) && a2.a.parentNode && b(a2.g);\n        }\n        var k = a;\n        l(a.b, c);\n        l(a.c, c);\n        z(a);\n      }\n      ;\n      function B(a, b) {\n        var c = b || {};\n        this.family = a;\n        this.style = c.style || \"normal\";\n        this.weight = c.weight || \"normal\";\n        this.stretch = c.stretch || \"normal\";\n      }\n      var C = null, D = null, E = null, F = null;\n      function G() {\n        if (null === D)\n          if (J() && /Apple/.test(window.navigator.vendor)) {\n            var a = /AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent);\n            D = !!a && 603 > parseInt(a[1], 10);\n          } else\n            D = false;\n        return D;\n      }\n      function J() {\n        null === F && (F = !!document.fonts);\n        return F;\n      }\n      function K() {\n        if (null === E) {\n          var a = document.createElement(\"div\");\n          try {\n            a.style.font = \"condensed 100px sans-serif\";\n          } catch (b) {\n          }\n          E = \"\" !== a.style.font;\n        }\n        return E;\n      }\n      function L(a, b) {\n        return [a.style, a.weight, K() ? a.stretch : \"\", \"100px\", b].join(\" \");\n      }\n      B.prototype.load = function(a, b) {\n        var c = this, k = a || \"BESbswy\", r = 0, n = b || 3e3, H = (/* @__PURE__ */ new Date()).getTime();\n        return new Promise(function(a2, b2) {\n          if (J() && !G()) {\n            var M = new Promise(function(a3, b3) {\n              function e() {\n                (/* @__PURE__ */ new Date()).getTime() - H >= n ? b3(Error(\"\" + n + \"ms timeout exceeded\")) : document.fonts.load(L(c, '\"' + c.family + '\"'), k).then(function(c2) {\n                  1 <= c2.length ? a3() : setTimeout(e, 25);\n                }, b3);\n              }\n              e();\n            }), N = new Promise(function(a3, c2) {\n              r = setTimeout(function() {\n                c2(Error(\"\" + n + \"ms timeout exceeded\"));\n              }, n);\n            });\n            Promise.race([N, M]).then(\n              function() {\n                clearTimeout(r);\n                a2(c);\n              },\n              b2\n            );\n          } else\n            m2(function() {\n              function v() {\n                var b3;\n                if (b3 = -1 != f && -1 != g || -1 != f && -1 != h || -1 != g && -1 != h)\n                  (b3 = f != g && f != h && g != h) || (null === C && (b3 = /AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent), C = !!b3 && (536 > parseInt(b3[1], 10) || 536 === parseInt(b3[1], 10) && 11 >= parseInt(b3[2], 10))), b3 = C && (f == w && g == w && h == w || f == x && g == x && h == x || f == y && g == y && h == y)), b3 = !b3;\n                b3 && (d.parentNode && d.parentNode.removeChild(d), clearTimeout(r), a2(c));\n              }\n              function I() {\n                if ((/* @__PURE__ */ new Date()).getTime() - H >= n)\n                  d.parentNode && d.parentNode.removeChild(d), b2(Error(\"\" + n + \"ms timeout exceeded\"));\n                else {\n                  var a3 = document.hidden;\n                  if (true === a3 || void 0 === a3)\n                    f = e.a.offsetWidth, g = p.a.offsetWidth, h = q.a.offsetWidth, v();\n                  r = setTimeout(I, 50);\n                }\n              }\n              var e = new t(k), p = new t(k), q = new t(k), f = -1, g = -1, h = -1, w = -1, x = -1, y = -1, d = document.createElement(\"div\");\n              d.dir = \"ltr\";\n              u(e, L(c, \"sans-serif\"));\n              u(p, L(c, \"serif\"));\n              u(q, L(c, \"monospace\"));\n              d.appendChild(e.a);\n              d.appendChild(p.a);\n              d.appendChild(q.a);\n              document.body.appendChild(d);\n              w = e.a.offsetWidth;\n              x = p.a.offsetWidth;\n              y = q.a.offsetWidth;\n              I();\n              A(e, function(a3) {\n                f = a3;\n                v();\n              });\n              u(\n                e,\n                L(c, '\"' + c.family + '\",sans-serif')\n              );\n              A(p, function(a3) {\n                g = a3;\n                v();\n              });\n              u(p, L(c, '\"' + c.family + '\",serif'));\n              A(q, function(a3) {\n                h = a3;\n                v();\n              });\n              u(q, L(c, '\"' + c.family + '\",monospace'));\n            });\n        });\n      };\n      \"object\" === typeof module ? module.exports = B : (window.FontFaceObserver = B, window.FontFaceObserver.prototype.load = B.prototype.load);\n    })();\n  }\n});\n\n// ../../router/build/ErrorBoundary.js\nimport React2, { Component } from \"react\";\n\n// ../../router/build/renderPage.js\nimport React from \"react\";\nfunction renderPage(Page4, defaultPageStyle = {}) {\n  const element = React.isValidElement(Page4) ? React.cloneElement(Page4, { style: defaultPageStyle }) : React.createElement(Page4, { style: defaultPageStyle });\n  return element;\n}\n\n// ../../router/build/ErrorBoundary.js\nvar NotFoundError = class extends Error {\n};\nvar ErrorBoundary = class extends Component {\n  constructor(props) {\n    super(props);\n    this.state = { error: void 0, forceUpdateKey: props.forceUpdateKey };\n  }\n  static getDerivedStateFromError(error) {\n    return { error };\n  }\n  /** Resets the error when forceUpdateKey gets bumped. */\n  static getDerivedStateFromProps(nextProps, prevState) {\n    if (nextProps.forceUpdateKey !== prevState.forceUpdateKey) {\n      const newState = {\n        forceUpdateKey: nextProps.forceUpdateKey\n      };\n      if (prevState.error) {\n        newState.error = void 0;\n      }\n      return newState;\n    }\n    return null;\n  }\n  render() {\n    if (this.state.error === void 0) {\n      return this.props.children;\n    }\n    if (!(this.state.error instanceof NotFoundError)) {\n      throw this.state.error;\n    }\n    const { notFoundPage, defaultPageStyle } = this.props;\n    if (!notFoundPage) {\n      throw this.state.error;\n    }\n    return renderPage(notFoundPage, defaultPageStyle);\n  }\n};\n\n// ../../router/build/Router.js\nimport React10, { startTransition } from \"react\";\n\n// ../../router/build/RouterContext.js\nimport React4 from \"react\";\n\n// ../../router/build/useGetRouteCallback.js\nimport React3 from \"react\";\nfunction useGetRouteCallback(routes) {\n  return React3.useCallback((routeId) => routes[routeId], [routes]);\n}\n\n// ../../router/build/RouterContext.js\nvar RouterContext = React4.createContext({});\nfunction RouterAPIProvider({ api, children }) {\n  return React4.createElement(RouterContext.Provider, { value: api }, children);\n}\nfunction useRouter() {\n  return React4.useContext(RouterContext);\n}\nfunction RoutesProvider({ routes, children }) {\n  const getRoute = useGetRouteCallback(routes);\n  return React4.createElement(RouterContext.Provider, { value: { getRoute } }, children);\n}\n\n// ../../router/build/pathVariables.js\nvar pathVariablesRegExpRaw = \":([a-zA-Z][a-zA-Z0-9_]*)\";\nvar pathVariablesRegExp = new RegExp(pathVariablesRegExpRaw, \"g\");\n\n// ../../router/build/fillPathVariables.js\nfunction fillPathVariables(path, variables) {\n  return path.replace(pathVariablesRegExp, (match, name) => {\n    const value = variables[name];\n    if (typeof value !== \"string\" || value.length === 0)\n      return match;\n    return encodeURIComponent(value);\n  });\n}\n\n// ../../router/build/history.js\nimport React7, { useCallback as useCallback2 } from \"react\";\n\n// ../../router/build/computeRelativePath.js\nfunction computeRelativePath(from, to) {\n  if (!from.startsWith(\"/\") || !to.startsWith(\"/\")) {\n    throw new Error(\"from/to paths are expected to be absolute\");\n  }\n  const [fromDir] = getDirAndFile(from);\n  const [toDir, toFile] = getDirAndFile(to);\n  let relativePath = relative(fromDir, toDir);\n  if (relativePath === \"\")\n    relativePath = \".\";\n  if (!relativePath.startsWith(\".\") && !relativePath.startsWith(\"/\")) {\n    relativePath = \"./\" + relativePath;\n  }\n  return relativePath + \"/\" + toFile;\n}\nfunction getDirAndFile(path) {\n  const index = path.lastIndexOf(\"/\");\n  return [path.substring(0, index + 1), path.substring(index + 1)];\n}\nvar CHAR_DOT = 46;\nvar CHAR_FORWARD_SLASH = 47;\nvar StringPrototypeCharCodeAt = (str, index) => str.charCodeAt(index);\nvar StringPrototypeLastIndexOf = (str, searchString) => str.lastIndexOf(searchString);\nvar StringPrototypeSlice = (str, start, end) => str.slice(start, end);\nfunction relative(from, to) {\n  if (from === to)\n    return \"\";\n  from = \"/\" + normalizeString(from);\n  to = \"/\" + normalizeString(to);\n  if (from === to)\n    return \"\";\n  const fromStart = 1;\n  const fromEnd = from.length;\n  const fromLen = fromEnd - fromStart;\n  const toStart = 1;\n  const toLen = to.length - toStart;\n  const length = fromLen < toLen ? fromLen : toLen;\n  let lastCommonSep = -1;\n  let i = 0;\n  for (; i < length; i++) {\n    const fromCode = StringPrototypeCharCodeAt(from, fromStart + i);\n    if (fromCode !== StringPrototypeCharCodeAt(to, toStart + i))\n      break;\n    else if (fromCode === CHAR_FORWARD_SLASH)\n      lastCommonSep = i;\n  }\n  if (i === length) {\n    if (toLen > length) {\n      if (StringPrototypeCharCodeAt(to, toStart + i) === CHAR_FORWARD_SLASH) {\n        return StringPrototypeSlice(to, toStart + i + 1);\n      }\n      if (i === 0) {\n        return StringPrototypeSlice(to, toStart + i);\n      }\n    } else if (fromLen > length) {\n      if (StringPrototypeCharCodeAt(from, fromStart + i) === CHAR_FORWARD_SLASH) {\n        lastCommonSep = i;\n      } else if (i === 0) {\n        lastCommonSep = 0;\n      }\n    }\n  }\n  let out = \"\";\n  for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n    if (i === fromEnd || StringPrototypeCharCodeAt(from, i) === CHAR_FORWARD_SLASH) {\n      out += out.length === 0 ? \"..\" : \"/..\";\n    }\n  }\n  return `${out}${StringPrototypeSlice(to, toStart + lastCommonSep)}`;\n}\nvar allowAboveRoot = false;\nvar separator = \"/\";\nvar isPathSeparator = (code) => code === CHAR_FORWARD_SLASH;\nfunction normalizeString(path) {\n  let res = \"\";\n  let lastSegmentLength = 0;\n  let lastSlash = -1;\n  let dots = 0;\n  let code = 0;\n  for (let i = 0; i <= path.length; ++i) {\n    if (i < path.length)\n      code = StringPrototypeCharCodeAt(path, i);\n    else if (isPathSeparator(code))\n      break;\n    else\n      code = CHAR_FORWARD_SLASH;\n    if (isPathSeparator(code)) {\n      if (lastSlash === i - 1 || dots === 1) {\n      } else if (dots === 2) {\n        if (res.length < 2 || lastSegmentLength !== 2 || StringPrototypeCharCodeAt(res, res.length - 1) !== CHAR_DOT || StringPrototypeCharCodeAt(res, res.length - 2) !== CHAR_DOT) {\n          if (res.length > 2) {\n            const lastSlashIndex = StringPrototypeLastIndexOf(res, separator);\n            if (lastSlashIndex === -1) {\n              res = \"\";\n              lastSegmentLength = 0;\n            } else {\n              res = StringPrototypeSlice(res, 0, lastSlashIndex);\n              lastSegmentLength = res.length - 1 - StringPrototypeLastIndexOf(res, separator);\n            }\n            lastSlash = i;\n            dots = 0;\n            continue;\n          } else if (res.length !== 0) {\n            res = \"\";\n            lastSegmentLength = 0;\n            lastSlash = i;\n            dots = 0;\n            continue;\n          }\n        }\n        if (allowAboveRoot) {\n          res += res.length > 0 ? `${separator}..` : \"..\";\n          lastSegmentLength = 2;\n        }\n      } else {\n        if (res.length > 0)\n          res += `${separator}${StringPrototypeSlice(path, lastSlash + 1, i)}`;\n        else\n          res = StringPrototypeSlice(path, lastSlash + 1, i);\n        lastSegmentLength = i - lastSlash - 1;\n      }\n      lastSlash = i;\n      dots = 0;\n    } else if (code === CHAR_DOT && dots !== -1) {\n      ++dots;\n    } else {\n      dots = -1;\n    }\n  }\n  return res;\n}\n\n// ../../router/build/utils.js\nimport React5 from \"react\";\nfunction isObject(value) {\n  return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction isString(value) {\n  return typeof value === \"string\";\n}\nvar preloadKey = \"preload\";\nfunction isLazyComponentType(componentType) {\n  return typeof componentType === \"object\" && componentType !== null && !React5.isValidElement(componentType) && preloadKey in componentType;\n}\nfunction lazy(factory) {\n  const LazyComponent = React5.lazy(factory);\n  let factoryPromise;\n  let LoadedComponent;\n  const Component14 = React5.forwardRef(function LazyWithPreload(props, ref) {\n    return React5.createElement(LoadedComponent !== null && LoadedComponent !== void 0 ? LoadedComponent : LazyComponent, Object.assign(ref ? { ref } : {}, props));\n  });\n  Component14.preload = () => {\n    if (!factoryPromise) {\n      factoryPromise = factory().then((module) => {\n        LoadedComponent = module.default;\n        return LoadedComponent;\n      });\n    }\n    return factoryPromise;\n  };\n  return Component14;\n}\nfunction getRouteElementId(route, hash2) {\n  if (hash2 && route) {\n    if (route.elements && hash2 in route.elements) {\n      return route.elements[hash2];\n    } else {\n      return hash2;\n    }\n  }\n  return void 0;\n}\n\n// ../../router/build/getLocalizedNavigationPath.js\nasync function replacePathVariables(path, currentLocale, nextLocale, collectionId, pathVariables, collectionUtils) {\n  var _a, _b, _c;\n  let resultPath = path;\n  const resultPathVariables = { ...pathVariables };\n  const matches = Array.from(resultPath.matchAll(pathVariablesRegExp));\n  const replacements = await Promise.all(matches.map(async (match) => {\n    var _a2;\n    const pathVariableWithDelimiter = match === null || match === void 0 ? void 0 : match[0];\n    const pathVariableValue = match === null || match === void 0 ? void 0 : match[1];\n    if (!pathVariableWithDelimiter || !pathVariableValue) {\n      throw new Error(\"Failed to replace path variables: unexpected regex match group\");\n    }\n    const currentSlug = pathVariables[pathVariableValue];\n    if (!currentSlug || !isString(currentSlug)) {\n      throw new Error(`No slug found for path variable ${pathVariableValue}`);\n    }\n    const utils = await ((_a2 = collectionUtils === null || collectionUtils === void 0 ? void 0 : collectionUtils[collectionId]) === null || _a2 === void 0 ? void 0 : _a2.call(collectionUtils));\n    if (!utils || !currentLocale) {\n      return currentSlug;\n    }\n    const recordId = await utils.getRecordIdBySlug(currentSlug, currentLocale);\n    if (!recordId)\n      return currentSlug;\n    const nextSlug = await utils.getSlugByRecordId(recordId, nextLocale);\n    if (!nextSlug) {\n      return currentSlug;\n    }\n    resultPathVariables[pathVariableValue] = nextSlug;\n    return nextSlug;\n  }));\n  let lastIndex = 0;\n  let replacedPath = \"\";\n  let hasMatch = false;\n  for (let i = 0; i < matches.length; i++) {\n    const match = matches[i];\n    const replacement = replacements[i];\n    if (!match || !replacement)\n      continue;\n    replacedPath += resultPath.substring(lastIndex, match.index);\n    lastIndex = ((_a = match.index) !== null && _a !== void 0 ? _a : 0) + ((_c = (_b = match[0]) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);\n    replacedPath += replacements[i];\n    hasMatch = true;\n  }\n  if (hasMatch) {\n    resultPath = replacedPath;\n  }\n  return {\n    path: resultPath,\n    pathVariables: resultPathVariables\n  };\n}\nasync function getLocalizedNavigationPath({ currentLocale, nextLocale, route, pathVariables, collectionUtils }) {\n  const { path } = route;\n  const result = {\n    path,\n    pathVariables\n  };\n  if (!path)\n    return result;\n  if (pathVariables && route.collectionId) {\n    try {\n      const pathReplacement = await replacePathVariables(path, currentLocale, nextLocale, route.collectionId, pathVariables, collectionUtils);\n      result.path = pathReplacement.path;\n      result.pathVariables = pathReplacement.pathVariables;\n    } catch {\n    }\n  }\n  if (nextLocale.slug) {\n    result.path = \"/\" + nextLocale.slug + result.path;\n  }\n  return result;\n}\n\n// ../../router/build/pageEffects/useViewTransition.js\nimport { useCallback, useEffect, useRef } from \"react\";\n\n// ../../router/build/pageEffects/PageEffectsContext.js\nimport React6 from \"react\";\nvar defaultSitePageEffects = { global: void 0, routes: {} };\nvar PageEffectsContext = React6.createContext(defaultSitePageEffects);\nfunction PageEffectsProvider({ children, value }) {\n  return React6.createElement(PageEffectsContext.Provider, { value }, children);\n}\nfunction usePageEffects() {\n  return React6.useContext(PageEffectsContext);\n}\n\n// ../../router/build/pageEffects/getPageEffect.js\nfunction getPageEffectForRoute(currentRouteId, nextRouteId, { global: global2, routes }) {\n  var _a;\n  return ((_a = routes[currentRouteId]) === null || _a === void 0 ? void 0 : _a[nextRouteId]) || global2;\n}\n\n// ../../router/build/pageEffects/cssGeneration/linearEasing.js\nvar step = 10;\nvar maxDuration = 1e4;\nfunction createLinearEasing(generator) {\n  let time2 = step;\n  let state = generator.next(0);\n  const keyframes = [state.value];\n  while (!state.done && time2 < maxDuration) {\n    state = generator.next(time2);\n    keyframes.push(state.value);\n    time2 += step;\n  }\n  if (keyframes.length === 1)\n    keyframes.push(state.value);\n  return {\n    easing: `linear(${keyframes.join(\",\")})`,\n    duration: time2 - step\n  };\n}\n\n// ../../router/build/pageEffects/cssGeneration/masks.js\nvar cssVariable = (name) => `--view-transition-${name}`;\nfunction parseUnit(value) {\n  return [parseFloat(value), value.endsWith(\"px\") ? \"px\" : \"%\"];\n}\nfunction calcMaskPosition(mask) {\n  const { innerWidth, innerHeight } = window;\n  const [x, xUnit] = parseUnit(mask.x);\n  const [y, yUnit] = parseUnit(mask.y);\n  return {\n    x: xUnit === \"px\" ? x : innerWidth * (x / 100),\n    y: yUnit === \"px\" ? y : innerHeight * (y / 100)\n  };\n}\nvar conic = {\n  makeKeyframe: (mask, progress2, page) => {\n    let percentage = 0;\n    if (page === \"exit\" && mask.angularDirection === \"clockwise\" && progress2 === \"start\" || page === \"exit\" && mask.angularDirection === \"counter-clockwise\" && progress2 === \"end\" || page === \"enter\" && mask.angularDirection === \"counter-clockwise\" && progress2 === \"start\" || page === \"enter\" && mask.angularDirection === \"clockwise\" && progress2 === \"end\") {\n      percentage = mask.sweepAngle / 360 * 100;\n    }\n    return `${cssVariable(\"conic-offset\")}: ${percentage}%;`;\n  },\n  makeStyles: (mask, page) => {\n    const offsetToken = `var(${cssVariable(\"conic-offset\")})`;\n    const isTransparentToBlack = page === \"exit\" && mask.angularDirection === \"clockwise\" || page === \"enter\" && mask.angularDirection === \"counter-clockwise\";\n    const firstColor = isTransparentToBlack ? \"transparent\" : \"black\";\n    const secondColor = isTransparentToBlack ? \"black\" : \"transparent\";\n    let gradient = `conic-gradient(from `;\n    gradient += `${mask.angle}deg at ${mask.x} ${mask.y}, `;\n    gradient += `${firstColor} 0%, ${firstColor} ${offsetToken}, `;\n    gradient += `${secondColor} ${offsetToken}, ${secondColor} 100%)`;\n    return `mask-image: ${gradient}; -webkit-mask-image: ${gradient};`;\n  },\n  makePropertyRules: () => `\n        @property ${cssVariable(\"conic-offset\")} {\n            syntax: '<percentage>';\n            initial-value: 0%;\n            inherits: false;\n        }\n    `\n};\nvar circle = {\n  makeKeyframe: (mask, progress2) => {\n    const { x, y } = calcMaskPosition(mask);\n    if (progress2 === \"start\") {\n      return `clip-path: circle(0 at ${x}px ${y}px);`;\n    } else {\n      const endRadius = Math.hypot(Math.max(x, window.innerWidth - x), Math.max(y, window.innerHeight - y));\n      return `clip-path: circle(${endRadius}px at ${x}px ${y}px);`;\n    }\n  }\n};\nvar inset = {\n  makeKeyframe: (mask, progress2) => {\n    const { x, y } = calcMaskPosition(mask);\n    const bottom = window.innerHeight - y;\n    const right = window.innerWidth - x;\n    return progress2 === \"start\" ? `clip-path: inset(${y}px ${right}px ${bottom}px ${x}px round ${mask.round}px);` : `clip-path: inset(0 round 0);`;\n  }\n};\nvar blinds = {\n  makeKeyframe: (mask, progress2, page) => {\n    const [, unit] = parseUnit(mask.width);\n    let width = `0${unit}`;\n    if (progress2 === \"start\" && page === \"exit\" || progress2 === \"end\" && page === \"enter\") {\n      width = mask.width;\n    }\n    return `${cssVariable(\"blinds-width\")}: ${width};`;\n  },\n  makeStyles: (mask, page) => {\n    const widthToken = `var(${cssVariable(\"blinds-width\")})`;\n    const firstColor = page === \"exit\" ? \"transparent\" : \"black\";\n    const secondColor = page === \"exit\" ? \"black\" : \"transparent\";\n    let gradient = `repeating-linear-gradient(`;\n    gradient += mask.angle + 90 + \"deg, \";\n    gradient += `${firstColor} 0px, ${firstColor} ${widthToken}, `;\n    gradient += `${secondColor} ${widthToken}, ${secondColor} ${mask.width})`;\n    return `mask-image: ${gradient}; -webkit-mask-image: ${gradient};`;\n  },\n  makePropertyRules: () => {\n    return `\n            @property ${cssVariable(\"blinds-width\")} {\n                syntax: '<length-percentage>';\n                initial-value: 0px;\n                inherits: false;\n            }\n        `;\n  }\n};\nvar wipe = {\n  makeKeyframe: (_mask, progress2, page) => {\n    const offset = progress2 === \"start\" && page === \"exit\" || progress2 === \"end\" && page === \"enter\" ? 1 : 0;\n    return `${cssVariable(\"wipe-offset\")}: ${offset};`;\n  },\n  makeStyles: (mask, page) => {\n    const offsetToken = `var(${cssVariable(\"wipe-offset\")})`;\n    const firstColor = page === \"exit\" ? \"transparent\" : \"black\";\n    const secondColor = page === \"exit\" ? \"black\" : \"transparent\";\n    let gradient = `linear-gradient(`;\n    gradient += mask.angle + 90 + \"deg, \";\n    gradient += `${firstColor} calc(calc(0% - ${mask.width}) + calc(calc(100% + ${mask.width}) * ${offsetToken})), `;\n    gradient += `${secondColor} calc(calc(100% + ${mask.width}) * ${offsetToken}))`;\n    return `mask-image: ${gradient}; -webkit-mask-image: ${gradient};`;\n  },\n  makePropertyRules: () => {\n    return `\n            @property ${cssVariable(\"wipe-offset\")} {\n                syntax: '<number>';\n                initial-value: 0;\n                inherits: false;\n            }\n        `;\n  }\n};\nvar maskGenerators = { circle, conic, inset, blinds, wipe };\n\n// ../../router/build/pageEffects/cssGeneration/page.js\nvar restState = {\n  opacity: 1,\n  x: \"0px\",\n  y: \"0px\",\n  scale: 1,\n  rotate: 0,\n  rotateX: 0,\n  rotateY: 0,\n  mask: void 0\n};\nfunction valuesToCSSKeyframes(values, progress2, page, maskGenerator) {\n  var _a;\n  let keyframes = `\n      opacity: ${values.opacity};\n      transform: translate(${values.x}, ${values.y}) scale(${values.scale}) rotateX(${values.rotateX}deg) rotateY(${values.rotateY}deg) rotateZ(${values.rotate}deg);\n    `;\n  if (values.mask) {\n    keyframes += ((_a = maskGenerator === null || maskGenerator === void 0 ? void 0 : maskGenerator.makeKeyframe) === null || _a === void 0 ? void 0 : _a.call(maskGenerator, values.mask, progress2, page)) || \"\";\n  }\n  return keyframes;\n}\nfunction getMaskGenerator(type) {\n  return type ? maskGenerators[type] : void 0;\n}\nfunction createPageTransitionRules(page, { transition, ...values }) {\n  var _a;\n  const name = \"view-transition-\" + page;\n  const settings = { duration: \"0s\", easing: \"linear\" };\n  if (transition.type === \"tween\") {\n    settings.duration = transition.duration + \"s\";\n    settings.easing = `cubic-bezier(${transition.ease.join(\",\")})`;\n  } else if (transition.type === \"spring\") {\n    const { easing, duration } = createLinearEasing(spring({\n      keyframes: [0, 1],\n      stiffness: transition.stiffness,\n      damping: transition.damping,\n      mass: transition.mass,\n      restDelta: 1e-3,\n      restSpeed: 1e-4\n    }));\n    settings.duration = duration + \"ms\";\n    settings.easing = easing;\n  }\n  const maskGenerator = getMaskGenerator((_a = values === null || values === void 0 ? void 0 : values.mask) === null || _a === void 0 ? void 0 : _a.type);\n  let startKeyframes = valuesToCSSKeyframes(values, \"start\", page, maskGenerator);\n  let endKeyframes = valuesToCSSKeyframes({ ...restState, mask: values.mask }, \"end\", page, maskGenerator);\n  if (page === \"exit\") {\n    ;\n    [startKeyframes, endKeyframes] = [endKeyframes, startKeyframes];\n  }\n  return `\n        ${values.mask && (maskGenerator === null || maskGenerator === void 0 ? void 0 : maskGenerator.makePropertyRules) ? maskGenerator.makePropertyRules(values.mask) : \"\"}\n\n        @keyframes ${name} {\n            0% {\n                ${startKeyframes}\n            }\n\n            100% {\n                ${endKeyframes}\n            }\n        }\n\n        ::view-transition-${page === \"enter\" ? \"new\" : \"old\"}(root) {\n            animation-name: ${name};\n            animation-duration: ${settings.duration};\n            animation-delay: ${transition.delay}s;\n            animation-timing-function: ${settings.easing};\n            animation-fill-mode: both;\n            ${values.mask && (maskGenerator === null || maskGenerator === void 0 ? void 0 : maskGenerator.makeStyles) ? maskGenerator.makeStyles(values.mask, page) : \"\"}\n        }\n    `;\n}\n\n// ../../router/build/pageEffects/cssGeneration/index.js\nvar VIEW_TRANSITION_STYLES_ID = \"view-transition-styles\";\nvar defaultPageTransition = {\n  x: \"0px\",\n  y: \"0px\",\n  scale: 1,\n  opacity: 1,\n  rotate3d: false,\n  rotate: 0,\n  rotateX: 0,\n  rotateY: 0,\n  mask: void 0,\n  transition: {\n    type: \"tween\",\n    delay: 0,\n    duration: 0.2,\n    ease: [0.27, 0, 0.51, 1],\n    stiffness: 400,\n    damping: 30,\n    mass: 1\n  }\n};\nfunction createViewTransitionStylesheet({ exit = defaultPageTransition, enter }) {\n  const styleElement = document.createElement(\"style\");\n  styleElement.id = VIEW_TRANSITION_STYLES_ID;\n  let styleContent = `\n        @media (prefers-reduced-motion) {\n            ::view-transition-group(*),\n            ::view-transition-old(*),\n            ::view-transition-new(*) {\n                animation: none !important;\n            }\n        }\n    `;\n  const disableMixPlusLighter = exit.mask || enter.mask || exit.opacity || enter.opacity || exit.transition.delay || enter.transition.delay;\n  if (disableMixPlusLighter) {\n    styleContent += `\n            ::view-transition-old(*),\n            ::view-transition-new(*) {\n                mix-blend-mode: normal;\n            }\n        `;\n  }\n  styleContent += `\n        ::view-transition-old(*),\n        ::view-transition-new(*) {\n            backface-visibility: hidden;\n        }\n    `;\n  styleContent += createPageTransitionRules(\"exit\", exit);\n  styleContent += createPageTransitionRules(\"enter\", enter);\n  styleElement.textContent = styleContent;\n  document.head.appendChild(styleElement);\n}\nfunction removeViewTransitionStylesheet() {\n  frame.render(() => {\n    const element = document.getElementById(VIEW_TRANSITION_STYLES_ID);\n    if (element) {\n      document.head.removeChild(element);\n    }\n  });\n}\n\n// ../../router/build/pageEffects/viewTransition.js\nfunction supportsViewTransitions() {\n  return Boolean(document.startViewTransition);\n}\nfunction startViewTransition(updateView, effect) {\n  if (!supportsViewTransitions()) {\n    return void updateView();\n  }\n  createViewTransitionStylesheet(effect);\n  const transition = document.startViewTransition(updateView);\n  Promise.all([transition.ready, transition.finished]).then(removeViewTransitionStylesheet).catch(() => {\n  });\n  return transition;\n}\n\n// ../../router/build/pageEffects/useViewTransition.js\nfunction useViewTransition() {\n  const sitePageEffects = usePageEffects();\n  const resolveHasPainted = useRef(void 0);\n  useEffect(() => {\n    if (resolveHasPainted.current) {\n      resolveHasPainted.current();\n      resolveHasPainted.current = void 0;\n    }\n  });\n  return useCallback((currentRouteId, nextRouteId, update) => {\n    const pageEffect = getPageEffectForRoute(currentRouteId, nextRouteId, sitePageEffects);\n    if (pageEffect) {\n      const hasPainted = new Promise((resolve) => {\n        resolveHasPainted.current = resolve;\n      });\n      const asyncUpdate = async () => {\n        update();\n        await hasPainted;\n      };\n      return startViewTransition(asyncUpdate, pageEffect);\n    } else {\n      return update();\n    }\n  }, [sitePageEffects]);\n}\n\n// ../../router/build/history.js\nfunction pushRouteState(routeId, route, { currentRoutePath, hash: hash2, pathVariables, localeId } = {}) {\n  const { path } = route;\n  if (!path)\n    return;\n  try {\n    const newPath = getPathForRoute(route, { currentRoutePath, hash: hash2, pathVariables });\n    pushHistoryState({ routeId, hash: hash2, pathVariables, localeId }, newPath);\n  } catch {\n  }\n}\nfunction replaceHistoryState(data2, url) {\n  window.history.replaceState(\n    data2,\n    // Second arg is unused and exists for historical purposes only\n    // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState#unused\n    \"\",\n    url\n  );\n}\nfunction pushHistoryState(data2, url) {\n  window.history.pushState(\n    data2,\n    // Second arg is unused and exists for historical purposes only\n    // https://developer.mozilla.org/en-US/docs/Web/API/History/pushState#unused\n    \"\",\n    url\n  );\n}\nfunction useReplaceInitialState({ disabled, routeId, initialPathVariables, initialLocaleId }) {\n  React7.useEffect(() => {\n    if (disabled)\n      return;\n    replaceHistoryState({ routeId, pathVariables: initialPathVariables, localeId: initialLocaleId });\n  }, []);\n}\nfunction usePopStateHandler(currentRouteId, setCurrentRouteId) {\n  const startViewTransition2 = useViewTransition();\n  const viewTransitionReady = React7.useRef(void 0);\n  const popStateHandler = React7.useCallback(({ state }) => {\n    var _a, _b, _c;\n    if (!isObject(state))\n      return;\n    const { routeId, hash: hash2, pathVariables, localeId } = state;\n    if (!isString(routeId))\n      return;\n    const changeRoute = () => {\n      setCurrentRouteId(routeId, isString(localeId) ? localeId : void 0, isString(hash2) ? hash2 : void 0, isObject(pathVariables) ? pathVariables : void 0, false, true);\n    };\n    const transition = startViewTransition2(currentRouteId.current, routeId, changeRoute);\n    if (transition) {\n      void transition.updateCallbackDone.then((_a = viewTransitionReady.current) === null || _a === void 0 ? void 0 : _a.resolve).catch((_b = viewTransitionReady.current) === null || _b === void 0 ? void 0 : _b.reject);\n    } else {\n      (_c = viewTransitionReady.current) === null || _c === void 0 ? void 0 : _c.resolve();\n    }\n  }, [currentRouteId, setCurrentRouteId, startViewTransition2]);\n  const traversalHandler = useCallback2((event) => {\n    if (event.navigationType !== \"traverse\")\n      return;\n    event.intercept({\n      async handler() {\n        await new Promise((resolve, reject) => {\n          viewTransitionReady.current = { resolve, reject };\n        });\n      },\n      scroll: \"after-transition\"\n    });\n  }, []);\n  React7.useEffect(() => {\n    var _a;\n    window.addEventListener(\"popstate\", popStateHandler);\n    (_a = window.navigation) === null || _a === void 0 ? void 0 : _a.addEventListener(\"navigate\", traversalHandler);\n    return () => {\n      var _a2;\n      window.removeEventListener(\"popstate\", popStateHandler);\n      (_a2 = window.navigation) === null || _a2 === void 0 ? void 0 : _a2.removeEventListener(\"navigate\", traversalHandler);\n    };\n  }, [popStateHandler, traversalHandler]);\n}\nfunction getHashForRoute(hash2, route, hashVariables) {\n  const resolvedHash = getRouteElementId(route, hash2);\n  if (!resolvedHash)\n    return void 0;\n  const variables = Object.assign({}, route === null || route === void 0 ? void 0 : route.elements, hashVariables);\n  return resolvedHash.replace(pathVariablesRegExp, (m2, p1) => {\n    var _a;\n    return String((_a = variables[p1]) !== null && _a !== void 0 ? _a : m2);\n  });\n}\nfunction getPathForRoute(route, { currentRoutePath, hash: hash2, pathVariables, hashVariables, relative: relative2 = true }) {\n  var _a;\n  const currentPath = currentRoutePath !== null && currentRoutePath !== void 0 ? currentRoutePath : \"/\";\n  const targetPath = (_a = route === null || route === void 0 ? void 0 : route.path) !== null && _a !== void 0 ? _a : \"/\";\n  let path = targetPath;\n  if (pathVariables) {\n    path = path.replace(pathVariablesRegExp, (m2, p1) => {\n      var _a2;\n      return String((_a2 = pathVariables[p1]) !== null && _a2 !== void 0 ? _a2 : m2);\n    });\n  }\n  if (relative2) {\n    path = computeRelativePath(currentPath, path);\n  }\n  const resolvedHash = getHashForRoute(hash2, route, hashVariables);\n  return resolvedHash ? `${path}#${resolvedHash}` : path;\n}\nasync function switchLocale(options) {\n  const result = await getLocalizedNavigationPath(options);\n  try {\n    localStorage.setItem(\"preferredLocale\", options.nextLocale.code);\n  } catch (error) {\n  }\n  try {\n    if (typeof result.path !== \"string\") {\n      throw new Error(\"Expected result.path to be a string\");\n    }\n    pushHistoryState({ routeId: options.routeId, pathVariables: result.pathVariables, localeId: options.nextLocale.id }, result.path);\n  } catch {\n  }\n  return result;\n}\n\n// ../../router/build/isSamePage.js\nfunction isSamePage(a, b) {\n  if (a.routeId !== b.routeId)\n    return false;\n  if (a.pathVariables === b.pathVariables)\n    return true;\n  const aPathVariables = a.pathVariables || {};\n  const bPathVariables = b.pathVariables || {};\n  return aPathVariables.length === bPathVariables.length && Object.keys(aPathVariables).every((key7) => aPathVariables[key7] === bPathVariables[key7]);\n}\n\n// ../../router/build/useForceUpdate.js\nimport React8 from \"react\";\nfunction useForceUpdate2() {\n  const [_, setForcedRenderCount] = React8.useState(0);\n  return [_, React8.useCallback(() => setForcedRenderCount((v) => v + 1), [])];\n}\n\n// ../../router/build/useLocale.js\nimport React9 from \"react\";\nvar noopAsync = async () => {\n};\nvar defaultLocaleInfo = {\n  activeLocale: null,\n  locales: [],\n  setLocale: noopAsync\n};\nvar LocaleInfoContext = /* @__PURE__ */ React9.createContext(defaultLocaleInfo);\nfunction useLocaleInfo() {\n  return React9.useContext(LocaleInfoContext);\n}\nfunction useLocalizationInfo() {\n  const { activeLocale, locales, setLocale } = useLocaleInfo();\n  return {\n    activeLocalization: activeLocale,\n    localizations: locales,\n    setLocalization: setLocale\n  };\n}\nfunction useLocaleCode() {\n  var _a, _b;\n  return (_b = (_a = useLocaleInfo().activeLocale) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : \"en-US\";\n}\nfunction useLocale() {\n  return useLocaleCode();\n}\n\n// ../../router/build/Router.js\nfunction updateScrollPosition(hash2, smoothScroll, isHistoryTransition) {\n  const element = hash2 && document.getElementById(hash2);\n  if (element) {\n    scrollElementIntoView(element, smoothScroll);\n    return;\n  }\n  if (isHistoryTransition)\n    return;\n  window.scrollTo(0, 0);\n}\nfunction useScheduleRenderSideEffects(dep) {\n  const actions = React10.useRef([]);\n  React10.useLayoutEffect(() => {\n    var _a;\n    if (!((_a = actions.current) === null || _a === void 0 ? void 0 : _a.length))\n      return;\n    actions.current.forEach((action) => action());\n    actions.current = [];\n  }, [dep]);\n  return React10.useCallback((cb) => {\n    actions.current.push(cb);\n  }, []);\n}\nfunction Router({ defaultPageStyle, disableHistory, initialPathVariables, initialRoute, notFoundPage, collectionUtils, routes, initialLocaleId, locales = [] }) {\n  useReplaceInitialState({\n    disabled: disableHistory,\n    routeId: initialRoute,\n    initialPathVariables,\n    initialLocaleId\n  });\n  const startViewTransition2 = useViewTransition();\n  const currentRouteRef = React10.useRef(initialRoute);\n  const currentPathVariablesRef = React10.useRef(initialPathVariables);\n  const currentLocaleIdRef = React10.useRef(initialLocaleId);\n  const currentLocaleId = currentLocaleIdRef.current;\n  const activeLocale = React10.useMemo(() => {\n    var _a;\n    return (_a = locales.find(({ id, slug }) => {\n      if (!currentLocaleId)\n        return slug === \"\";\n      return id === currentLocaleId;\n    })) !== null && _a !== void 0 ? _a : null;\n  }, [currentLocaleId, locales]);\n  const [dep, forceUpdate] = useForceUpdate2();\n  const localeInfo = React10.useMemo(() => {\n    return {\n      activeLocale,\n      locales,\n      setLocale: async (localeOrLocaleId) => {\n        let localeId;\n        if (isString(localeOrLocaleId)) {\n          localeId = localeOrLocaleId;\n        } else if (isObject(localeOrLocaleId)) {\n          localeId = localeOrLocaleId.id;\n        }\n        const nextLocale = locales.find(({ id }) => id === localeId);\n        if (!nextLocale)\n          return;\n        const currentRouteId2 = currentRouteRef.current;\n        const currentRoute = routes[currentRouteId2];\n        if (!currentRoute)\n          return;\n        try {\n          const localeResult = await switchLocale({\n            currentLocale: activeLocale,\n            nextLocale,\n            route: currentRoute,\n            routeId: currentRouteId2,\n            pathVariables: currentPathVariablesRef.current,\n            collectionUtils\n          });\n          currentPathVariablesRef.current = localeResult.pathVariables;\n          currentLocaleIdRef.current = nextLocale.id;\n          startViewTransition2(currentRouteRef.current, currentRouteId2, () => startTransition(forceUpdate));\n        } catch {\n        }\n      }\n    };\n  }, [activeLocale, collectionUtils, forceUpdate, locales, routes, startViewTransition2]);\n  const scheduleSideEffect = useScheduleRenderSideEffects(dep);\n  const setCurrentRouteId = React10.useCallback((routeId, localeId, hash2, pathVariables, smoothScroll = false, isHistoryTransition = false) => {\n    currentRouteRef.current = routeId;\n    currentPathVariablesRef.current = pathVariables;\n    currentLocaleIdRef.current = localeId;\n    scheduleSideEffect(() => {\n      updateScrollPosition(hash2, smoothScroll, isHistoryTransition);\n    });\n    forceUpdate();\n  }, [forceUpdate, scheduleSideEffect]);\n  usePopStateHandler(currentRouteRef, setCurrentRouteId);\n  const navigate = React10.useCallback((routeId, hash2, pathVariables, smoothScroll) => {\n    var _a, _b;\n    const newRoute = routes[routeId];\n    if (pathVariables) {\n      const inUse = /* @__PURE__ */ new Set();\n      const path = (_a = newRoute === null || newRoute === void 0 ? void 0 : newRoute.path) !== null && _a !== void 0 ? _a : \"/\";\n      for (const match of path.matchAll(pathVariablesRegExp)) {\n        const usedVariable = match[1];\n        if (usedVariable === void 0) {\n          throw new Error(\"A matching path variable should not be undefined\");\n        }\n        inUse.add(usedVariable);\n      }\n      pathVariables = Object.fromEntries(Object.entries(pathVariables).filter(([key7]) => inUse.has(key7)));\n    }\n    const routeElementId = getRouteElementId(newRoute, hash2);\n    if (isSamePage({ routeId: currentRouteRef.current, pathVariables: currentPathVariablesRef.current }, { routeId, pathVariables })) {\n      if (((_b = window.history.state) === null || _b === void 0 ? void 0 : _b.hash) !== hash2) {\n        if (!disableHistory) {\n          const route = routes[routeId];\n          if (route) {\n            pushRouteState(routeId, route, {\n              currentRoutePath: route.path,\n              pathVariables,\n              hash: hash2,\n              localeId: currentLocaleIdRef.current\n            });\n          }\n        }\n      }\n      updateScrollPosition(routeElementId, smoothScroll, false);\n      return;\n    }\n    if (!newRoute)\n      return;\n    if (!disableHistory) {\n      const currentRoute = routes[currentRouteRef.current];\n      pushRouteState(routeId, newRoute, {\n        currentRoutePath: currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.path,\n        hash: hash2,\n        pathVariables,\n        localeId: currentLocaleIdRef.current\n      });\n    }\n    const changeRoute = () => setCurrentRouteId(routeId, currentLocaleIdRef.current, routeElementId, pathVariables, smoothScroll, false);\n    startViewTransition2(currentRouteRef.current, routeId, () => startTransition(changeRoute));\n  }, [routes, disableHistory, setCurrentRouteId, startViewTransition2]);\n  const getRoute = useGetRouteCallback(routes);\n  const currentRouteId = currentRouteRef.current;\n  const currentPathVariables = currentPathVariablesRef.current;\n  const api = React10.useMemo(() => ({\n    navigate,\n    getRoute,\n    currentRouteId,\n    currentPathVariables,\n    routes,\n    collectionUtils\n  }), [navigate, getRoute, currentRouteId, currentPathVariables, routes, collectionUtils]);\n  const current = routes[currentRouteRef.current];\n  if (!current) {\n    throw new Error(`Router cannot find route for ${currentRouteRef.current}`);\n  }\n  const pathWithFilledVariables = current.path && currentPathVariables ? fillPathVariables(current.path, currentPathVariables) : current.path;\n  const remountKey = String(currentLocaleId) + pathWithFilledVariables;\n  return React10.createElement(\n    RouterAPIProvider,\n    { api },\n    React10.createElement(\n      LocaleInfoContext.Provider,\n      { value: localeInfo },\n      React10.createElement(\n        React10.Suspense,\n        { fallback: null },\n        React10.createElement(\n          ErrorBoundary,\n          { notFoundPage, defaultPageStyle, forceUpdateKey: dep },\n          React10.createElement(React10.Fragment, { key: remountKey }, renderPage(current.page, defaultPageStyle))\n        )\n      )\n    )\n  );\n}\nfunction scrollElementIntoView(element, smoothScroll) {\n  const scrollIntoViewOptions = smoothScroll ? { behavior: \"smooth\", block: \"start\", inline: \"nearest\" } : void 0;\n  element.scrollIntoView(scrollIntoViewOptions);\n}\n\n// ../../router/build/inferInitialRouteFromPath.js\nvar memoPathRoutes;\nvar memoPaths;\nvar lastRoutes;\nfunction getRouteInfoMemo(routes) {\n  if (lastRoutes !== routes) {\n    memoPathRoutes = {};\n    for (const [routeId, { path }] of Object.entries(routes)) {\n      if (path)\n        memoPathRoutes[path] = { path, depth: pathDepth(path), routeId };\n    }\n    memoPaths = Object.values(memoPathRoutes);\n    memoPaths.sort(({ depth: depth1 }, { depth: depth2 }) => depth2 - depth1);\n    lastRoutes = routes;\n  }\n  return [memoPathRoutes, memoPaths];\n}\nfunction inferInitialRouteFromPath(routes, decodedLocationPath, fallback = true, locales = []) {\n  const [pathRoutes, paths] = getRouteInfoMemo(routes);\n  let activeLocale;\n  let localeId;\n  let locationPath = decodedLocationPath;\n  if (locales.length > 0) {\n    const firstPathSegment = locationPath.split(\"/\").find(Boolean);\n    if (firstPathSegment) {\n      activeLocale = locales.find(({ slug }) => slug === firstPathSegment);\n      if (activeLocale) {\n        localeId = activeLocale.id;\n        locationPath = locationPath.substring(activeLocale.slug.length + 1);\n      }\n    }\n    if (!localeId) {\n      const defaultLocale = locales.find(({ slug }) => slug === \"\");\n      if (defaultLocale) {\n        localeId = defaultLocale.id;\n      }\n    }\n  }\n  const exactMatch = pathRoutes[locationPath];\n  if (exactMatch) {\n    const match = matchPath(locationPath, exactMatch.path);\n    if (match.isMatch)\n      return { routeId: exactMatch.routeId, localeId, pathVariables: match.pathVariables };\n  }\n  for (const { path, routeId } of paths) {\n    const match = matchPath(locationPath, path);\n    if (match.isMatch)\n      return { routeId, localeId, pathVariables: match.pathVariables };\n  }\n  if (!fallback)\n    throw new Error(\"No exact match found for path\");\n  const rootPath = pathRoutes[\"/\"];\n  if (rootPath)\n    return { routeId: rootPath.routeId, localeId };\n  const firstRoute = Object.keys(routes)[0];\n  if (!firstRoute)\n    throw new Error(\"Router should not have undefined routes\");\n  return { routeId: firstRoute, localeId };\n}\nfunction pathDepth(path) {\n  const pathWithTrimmedSlashes = path.replace(/(?:^\\/|\\/$)/g, \"\");\n  if (pathWithTrimmedSlashes === \"\")\n    return 0;\n  return pathWithTrimmedSlashes.split(\"/\").length;\n}\nfunction matchPath(path, routePath) {\n  const pathVariablesKeys = [];\n  const safeRoutePath = escapeStringRegExp(routePath);\n  const routePathRegExpString = safeRoutePath.replace(pathVariablesRegExp, (_, name) => {\n    pathVariablesKeys.push(name);\n    return \"([^/]+)\";\n  });\n  const routePathRegExp = new RegExp(routePathRegExpString + \"$\");\n  const matches = path.match(routePathRegExp);\n  if (!matches)\n    return { isMatch: false };\n  if (matches.length === 1)\n    return { isMatch: true };\n  const pathVariables = {};\n  const pathVariablesValues = matches.slice(1);\n  for (let i = 0; i < pathVariablesKeys.length; ++i) {\n    const key7 = pathVariablesKeys[i];\n    if (key7 === void 0)\n      continue;\n    const value = pathVariablesValues[i];\n    const existingValue = pathVariables[key7];\n    if (existingValue) {\n      if (existingValue !== value) {\n        return { isMatch: false };\n      } else {\n        continue;\n      }\n    }\n    if (value === void 0) {\n      throw new Error(\"Path variable values cannot be undefined\");\n    }\n    pathVariables[key7] = value;\n  }\n  return { isMatch: true, pathVariables };\n}\nfunction escapeStringRegExp(string) {\n  return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n// ../../router/build/isRoute.js\nvar key = \"page\";\nfunction isRoute(route) {\n  return isObject(route) && key in route && route.page !== void 0;\n}\n\n// ../../router/build/useCurrentRoute.js\nimport React11, { useContext } from \"react\";\nvar CurrentRouteContext = React11.createContext(void 0);\nfunction useCurrentRoute() {\n  var _a;\n  const router = useRouter();\n  const override = useContext(CurrentRouteContext);\n  const id = override !== null && override !== void 0 ? override : router.currentRouteId;\n  if (!id)\n    return void 0;\n  const route = (_a = router.getRoute) === null || _a === void 0 ? void 0 : _a.call(router, id);\n  if (!route)\n    return void 0;\n  return {\n    ...route,\n    id,\n    pathVariables: override ? void 0 : router.currentPathVariables\n  };\n}\nfunction useCurrentRouteId() {\n  var _a;\n  return (_a = useCurrentRoute()) === null || _a === void 0 ? void 0 : _a.id;\n}\n\n// ../../router/build/useCurrentPathVariables.js\nfunction useCurrentPathVariables() {\n  var _a;\n  return (_a = useCurrentRoute()) === null || _a === void 0 ? void 0 : _a.pathVariables;\n}\n\n// ../../router/build/useRoute.js\nfunction useRoute(routeId) {\n  var _a;\n  const routerAPI = useRouter();\n  if (!routeId)\n    return void 0;\n  return (_a = routerAPI.getRoute) === null || _a === void 0 ? void 0 : _a.call(routerAPI, routeId);\n}\n\n// ../../router/build/useRouteAnchor.js\nimport React13 from \"react\";\n\n// ../../router/build/useRoutePreloader.js\nimport React12 from \"react\";\nfunction useRoutePreloader(routeIds, enabled = true) {\n  const { getRoute } = useRouter();\n  React12.useEffect(() => {\n    if (!getRoute || !enabled)\n      return;\n    for (const routeId of routeIds) {\n      const route = getRoute(routeId);\n      if (route === null || route === void 0 ? void 0 : route.page)\n        preloadComponent(route.page);\n    }\n  }, [routeIds, getRoute, enabled]);\n}\nfunction preloadComponent(component) {\n  if (isLazyComponentType(component)) {\n    void component.preload();\n  }\n}\n\n// ../../router/build/useRouteAnchor.js\nfunction useRouteAnchor(routeId, { elementId, hash: linkHash } = {}) {\n  const { navigate } = useRouter();\n  const route = useRoute(routeId);\n  const currentRouteId = useCurrentRouteId();\n  const currentRoute = useRoute(currentRouteId !== null && currentRouteId !== void 0 ? currentRouteId : \"\");\n  useRoutePreloader([routeId], true);\n  const hash2 = linkHash !== null && linkHash !== void 0 ? linkHash : elementId;\n  const href = React13.useMemo(() => getPathForRoute(route, { currentRoutePath: currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.path, hash: hash2 }), [currentRoute, hash2, route]);\n  const navigateToRoute = React13.useCallback(() => navigate === null || navigate === void 0 ? void 0 : navigate(routeId, hash2), [hash2, navigate, routeId]);\n  const onClick = React13.useCallback((event) => {\n    event.preventDefault();\n    navigateToRoute();\n  }, [navigateToRoute]);\n  return { onClick, href };\n}\n\n// ../../router/build/useRouteElementId.js\nimport React14 from \"react\";\nfunction useRouteElementId(id, targetRouteId) {\n  var _a;\n  const currentRoute = useCurrentRoute();\n  const route = (_a = useRoute(targetRouteId)) !== null && _a !== void 0 ? _a : currentRoute;\n  return React14.useMemo(() => {\n    if (!route)\n      return id;\n    return getRouteElementId(route, id);\n  }, [id, route]);\n}\n\n// ../../router/build/useRouteHandler.js\nimport React15 from \"react\";\nfunction useRouteHandler(routeId, preload = false, elementId) {\n  const { navigate } = useRouter();\n  useRoutePreloader([routeId], preload);\n  const handler = React15.useCallback(() => navigate === null || navigate === void 0 ? void 0 : navigate(routeId, elementId), [navigate, elementId, routeId]);\n  return handler;\n}\n\n// ../../library/src/utils/warnOnce.ts\nvar warningMessages = /* @__PURE__ */ new Set();\nfunction warnOnce(keyMessage, ...rest) {\n  if (warningMessages.has(keyMessage))\n    return;\n  warningMessages.add(keyMessage);\n  console.warn(keyMessage, ...rest);\n}\n\n// ../../library/src/utils/deprecation.ts\nfunction deprecationWarning(removedItem, removalVersion, replacement) {\n  const replacementText = replacement ? `, use ${replacement} instead` : \"\";\n  const warningText = `Deprecation warning: ${removedItem} will be removed in version ${removalVersion}${replacementText}.`;\n  warnOnce(warningText);\n}\n\n// ../../library/src/animation/Animatable/Observers.ts\nvar Observers = class {\n  constructor() {\n    this.observers = /* @__PURE__ */ new Set();\n    this.transactions = {};\n  }\n  add(observer) {\n    this.observers.add(observer);\n    let isCalled = false;\n    return () => {\n      if (isCalled) {\n        return;\n      }\n      isCalled = true;\n      this.remove(observer);\n    };\n  }\n  remove(observer) {\n    this.observers.delete(observer);\n  }\n  notify(change, transaction) {\n    if (transaction) {\n      const accumulatedChange = this.transactions[transaction] || change;\n      accumulatedChange.value = change.value;\n      this.transactions[transaction] = accumulatedChange;\n    } else {\n      this.callObservers(change);\n    }\n  }\n  finishTransaction(transaction) {\n    const accumulatedChange = this.transactions[transaction];\n    delete this.transactions[transaction];\n    return this.callObservers(accumulatedChange, transaction);\n  }\n  callObservers(change, transaction) {\n    const finishObservers = [];\n    new Set(this.observers).forEach((observer) => {\n      if (typeof observer === \"function\") {\n        observer(change, transaction);\n      } else {\n        observer.update(change, transaction);\n        finishObservers.push(observer.finish);\n      }\n    });\n    return finishObservers;\n  }\n};\n\n// ../../library/src/animation/Animatable/Animatable.ts\nvar Animatable = /* @__PURE__ */ (() => {\n  function Animatable2(value) {\n    deprecationWarning(\"Animatable()\", \"2.0.0\", \"the new animation API (https://www.framer.com/api/animation/)\");\n    return isAnimatable(value) ? value : new AnimatableValue(value);\n  }\n  Animatable2.transaction = (update) => {\n    const transactionId = Math.random();\n    const updatedValues = /* @__PURE__ */ new Set();\n    const updater = (animatable, value) => {\n      animatable.set(value, transactionId);\n      updatedValues.add(animatable);\n    };\n    update(updater, transactionId);\n    const finishObservers = [];\n    updatedValues.forEach((value) => {\n      finishObservers.push(...value.finishTransaction(transactionId));\n    });\n    finishObservers.forEach((finish) => {\n      finish(transactionId);\n    });\n  };\n  Animatable2.getNumber = (value, defaultValue = 0) => {\n    return Animatable2.get(value, defaultValue);\n  };\n  Animatable2.get = (value, defaultValue) => {\n    if (value === void 0 || value === null) {\n      return defaultValue;\n    }\n    if (isAnimatable(value)) {\n      return value.get();\n    }\n    return value;\n  };\n  Animatable2.objectToValues = (object) => {\n    if (!object) {\n      return object;\n    }\n    const result = {};\n    for (const key7 in object) {\n      const value = object[key7];\n      if (isAnimatable(value)) {\n        result[key7] = value.get();\n      } else {\n        result[key7] = value;\n      }\n    }\n    return result;\n  };\n  return Animatable2;\n})();\nvar onUpdateKey = \"onUpdate\";\nvar finishTransactionKey = \"finishTransaction\";\nfunction isAnimatable(value) {\n  return value !== null && typeof value === \"object\" && onUpdateKey in value && value[onUpdateKey] instanceof Function && finishTransactionKey in value && value[finishTransactionKey] instanceof Function;\n}\nfunction animatableInterpolation(value, currentInterpolation) {\n  return {\n    interpolate(from, to) {\n      const fromValue = from.get();\n      const toValue = to.get();\n      const result = Animatable(fromValue);\n      return (progress2) => {\n        const v = currentInterpolation.interpolate(fromValue, toValue)(progress2);\n        result.set(v);\n        return result;\n      };\n    },\n    difference(from, to) {\n      const v = from.get();\n      return currentInterpolation.difference(v, to.get());\n    }\n  };\n}\nvar AnimatableValue = class {\n  constructor(value) {\n    this.value = value;\n    this.observers = new Observers();\n  }\n  static interpolationFor(value, currentInterpolation) {\n    if (isAnimatable(value)) {\n      return animatableInterpolation(value, currentInterpolation);\n    }\n  }\n  get() {\n    return this.value;\n  }\n  set(value, transaction) {\n    const oldValue = this.value;\n    if (isAnimatable(value)) {\n      value = value.get();\n    }\n    this.value = value;\n    const change = {\n      value,\n      oldValue\n    };\n    this.observers.notify(change, transaction);\n  }\n  finishTransaction(transaction) {\n    return this.observers.finishTransaction(transaction);\n  }\n  onUpdate(handler) {\n    return this.observers.add(handler);\n  }\n};\n\n// ../../library/src/render/utils/roundedNumber.ts\nfunction roundedNumber(value, decimals) {\n  const d = Math.round(Math.abs(decimals));\n  const multiplier = Math.pow(10, d);\n  return Math.round(value * multiplier) / multiplier;\n}\nfunction roundedNumberString(value, decimals) {\n  const result = value.toFixed(decimals);\n  if (decimals === 0) {\n    return result;\n  }\n  return result.replace(/\\.?0+$/, \"\");\n}\nfunction roundWithOffset(value, offset) {\n  if (offset === 0) {\n    return Math.round(value);\n  }\n  offset -= offset | 0;\n  if (offset < 0) {\n    offset = 1 - offset;\n  }\n  return Math.round(value - offset) + offset;\n}\n\n// ../../library/src/render/types/Point.ts\nfunction Point(x, y) {\n  return { x, y };\n}\n((Point3) => {\n  Point3.add = (...args) => {\n    return args.reduce(\n      (previousValue, currentValue) => {\n        return { x: previousValue.x + currentValue.x, y: previousValue.y + currentValue.y };\n      },\n      { x: 0, y: 0 }\n    );\n  };\n  Point3.subtract = (a, b) => {\n    return { x: a.x - b.x, y: a.y - b.y };\n  };\n  Point3.multiply = (a, b) => {\n    return { x: a.x * b, y: a.y * b };\n  };\n  Point3.divide = (a, b) => {\n    return { x: a.x / b, y: a.y / b };\n  };\n  Point3.absolute = (point) => {\n    return {\n      x: Math.abs(point.x),\n      y: Math.abs(point.y)\n    };\n  };\n  Point3.reverse = (point) => {\n    return {\n      x: point.x * -1,\n      y: point.y * -1\n    };\n  };\n  Point3.pixelAligned = (point, offset = { x: 0, y: 0 }) => {\n    return {\n      x: roundWithOffset(point.x, offset.x),\n      y: roundWithOffset(point.y, offset.y)\n    };\n  };\n  Point3.distance = (a, b) => {\n    const deltaX = Math.abs(a.x - b.x);\n    const deltaY = Math.abs(a.y - b.y);\n    return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n  };\n  Point3.angle = (a, b) => {\n    return Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI - 90;\n  };\n  Point3.isEqual = (a, b) => {\n    return a.x === b.x && a.y === b.y;\n  };\n  Point3.rotationNormalizer = () => {\n    let lastValue;\n    return (value) => {\n      if (typeof lastValue !== \"number\") {\n        lastValue = value;\n      }\n      const diff = lastValue - value;\n      const maxDiff = Math.abs(diff) + 180;\n      const nTimes = Math.floor(maxDiff / 360);\n      if (diff < 180) {\n        value -= nTimes * 360;\n      }\n      if (diff > 180) {\n        value += nTimes * 360;\n      }\n      lastValue = value;\n      return value;\n    };\n  };\n  function center(a, b) {\n    return {\n      x: (a.x + b.x) / 2,\n      y: (a.y + b.y) / 2\n    };\n  }\n  Point3.center = center;\n  function insidePoints(point, points) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const x = point.x;\n    const y = point.y;\n    let isInside = false;\n    for (let i = 0, j = points.length - 1; i < points.length; j = i++) {\n      const xi = (_b = (_a = points[i]) == null ? void 0 : _a.x) != null ? _b : 0;\n      const yi = (_d = (_c = points[i]) == null ? void 0 : _c.y) != null ? _d : 0;\n      const xj = (_f = (_e = points[j]) == null ? void 0 : _e.x) != null ? _f : 0;\n      const yj = (_h = (_g = points[j]) == null ? void 0 : _g.y) != null ? _h : 0;\n      const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n      if (intersect)\n        isInside = !isInside;\n    }\n    return isInside;\n  }\n  Point3.insidePoints = insidePoints;\n})(Point || (Point = {}));\n\n// ../../library/src/animation/Animators/BezierAnimator.ts\nvar BezierDefaults = {\n  curve: \"ease\" /* Ease */,\n  duration: 1\n};\nfunction controlPointsForCurve(curve) {\n  switch (curve) {\n    case \"linear\" /* Linear */:\n      return [0, 0, 1, 1];\n    case \"ease\" /* Ease */:\n      return [0.25, 0.1, 0.25, 1];\n    case \"ease-in\" /* EaseIn */:\n      return [0.42, 0, 1, 1];\n    case \"ease-out\" /* EaseOut */:\n      return [0, 0, 0.58, 1];\n    case \"ease-in-out\" /* EaseInOut */:\n      return [0.42, 0, 0.58, 1];\n  }\n}\nvar BezierAnimator = class {\n  constructor(options, interpolation) {\n    this.interpolation = interpolation;\n    this.progress = 0;\n    this.next = (delta) => {\n      const { duration } = this.options;\n      this.progress += delta / duration;\n      const value = this.unitBezier.solve(this.progress, this.solveEpsilon(duration));\n      this.current = this.interpolator(value);\n      return this.current;\n    };\n    this.options = { ...BezierDefaults, ...options };\n    let controlPoints;\n    if (typeof this.options.curve === \"string\") {\n      controlPoints = controlPointsForCurve(this.options.curve);\n    } else {\n      controlPoints = this.options.curve;\n    }\n    const [p1x, p1y, p2x, p2y] = controlPoints;\n    this.unitBezier = new UnitBezier(Point(p1x, p1y), Point(p2x, p2y));\n  }\n  setFrom(value) {\n    this.current = value;\n    this.updateInterpolator();\n  }\n  setTo(value) {\n    this.destination = value;\n    this.updateInterpolator();\n  }\n  isReady() {\n    return this.interpolator !== void 0;\n  }\n  updateInterpolator() {\n    if (this.current === void 0 || this.destination === void 0) {\n      return;\n    }\n    this.interpolator = this.interpolation.interpolate(this.current, this.destination);\n  }\n  isFinished() {\n    return this.progress >= 1;\n  }\n  solveEpsilon(duration) {\n    return 1 / (200 * duration);\n  }\n};\nvar UnitBezier = class {\n  constructor(point1, point2) {\n    this.c = Point.multiply(point1, 3);\n    this.b = Point.subtract(Point.multiply(Point.subtract(point2, point1), 3), this.c);\n    this.a = Point.subtract(Point.subtract(Point(1, 1), this.c), this.b);\n  }\n  solve(x, epsilon2) {\n    return this.sampleY(this.solveForT(x, epsilon2));\n  }\n  sampleX(t) {\n    return ((this.a.x * t + this.b.x) * t + this.c.x) * t;\n  }\n  sampleY(t) {\n    return ((this.a.y * t + this.b.y) * t + this.c.y) * t;\n  }\n  sampleDerivativeX(t) {\n    return (3 * this.a.x * t + 2 * this.b.x) * t + this.c.x;\n  }\n  solveForT(x, epsilon2) {\n    let t0, t1, t2, x2, d2, i;\n    t2 = x;\n    for (i = 0; i < 8; ++i) {\n      x2 = this.sampleX(t2) - x;\n      if (Math.abs(x2) < epsilon2)\n        return t2;\n      d2 = this.sampleDerivativeX(t2);\n      if (Math.abs(d2) < epsilon2)\n        break;\n      t2 = t2 - x2 / d2;\n    }\n    t0 = 0;\n    t1 = 1;\n    t2 = x;\n    if (t2 < t0)\n      return t0;\n    if (t2 > t1)\n      return t1;\n    while (t0 < t1) {\n      x2 = this.sampleX(t2);\n      if (Math.abs(x2 - x) < epsilon2)\n        return t2;\n      if (x > x2)\n        t0 = t2;\n      else\n        t1 = t2;\n      t2 = (t1 - t0) * 0.5 + t0;\n    }\n    return t2;\n  }\n};\n\n// ../../library/src/animation/Animators/Integrator.ts\nvar Integrator = class {\n  constructor(accelerationFunction) {\n    this.accelerationForState = accelerationFunction;\n  }\n  integrateState(state, dt) {\n    const a = this.evaluateState(state);\n    const b = this.evaluateStateWithDerivative(state, dt * 0.5, a);\n    const c = this.evaluateStateWithDerivative(state, dt * 0.5, b);\n    const d = this.evaluateStateWithDerivative(state, dt, c);\n    const dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c.dx) + d.dx);\n    const dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c.dv) + d.dv);\n    state.x = state.x + dxdt * dt;\n    state.v = state.v + dvdt * dt;\n    return state;\n  }\n  evaluateState(initialState2) {\n    const dv = this.accelerationForState(initialState2);\n    return { dx: initialState2.v, dv };\n  }\n  evaluateStateWithDerivative(initialState2, dt, derivative) {\n    const state = {\n      x: initialState2.x + derivative.dx * dt,\n      v: initialState2.v + derivative.dv * dt\n    };\n    const output = {\n      dx: state.v,\n      dv: this.accelerationForState(state)\n    };\n    return output;\n  }\n};\n\n// ../../library/src/animation/Animators/FrictionAnimator.ts\nvar FrictionAnimator = class {\n  constructor(options) {\n    this.options = {\n      velocity: 0,\n      friction: 2,\n      tolerance: 1 / 10\n    };\n    Object.assign(this.options, options);\n    this.state = {\n      x: 0,\n      v: this.options.velocity\n    };\n    this.integrator = new Integrator((state) => -(this.options.friction * state.v));\n  }\n  setFrom(value) {\n    this.state.x = value;\n  }\n  setTo(value) {\n  }\n  setVelocity(velocity) {\n    this.state.v = velocity;\n  }\n  getState() {\n    return this.state;\n  }\n  isReady() {\n    return true;\n  }\n  next(delta) {\n    this.state = this.integrator.integrateState(this.state, delta);\n    return this.state.x;\n  }\n  isFinished() {\n    return Math.abs(this.state.v) < this.options.tolerance;\n  }\n};\n\n// ../../library/src/interpolation/Interpolation.ts\nfunction isInterpolatable(value) {\n  return typeof value === \"function\" && value.interpolationFor && typeof value.interpolationFor === \"function\";\n}\nvar Interpolation = {\n  /**\n   * @param from -\n   * @param to -\n   * @internal\n   */\n  handleUndefined: (from, to) => {\n    if (from === void 0) {\n      from = to;\n    }\n    if (to === void 0) {\n      to = from;\n    }\n    return [from, to];\n  }\n};\n\n// ../../library/src/interpolation/NumberInterpolation.ts\nvar NumberInterpolation = {\n  interpolate(from, to) {\n    ;\n    [from, to] = Interpolation.handleUndefined(from, to);\n    const a1 = +from;\n    const b1 = to - a1;\n    return (progress2) => {\n      const value = a1 + b1 * progress2;\n      return value;\n    };\n  },\n  difference(from, to) {\n    return to - from;\n  }\n};\n\n// ../../library/src/animation/Animators/SpringCurveValueConverter.ts\nvar epsilon = 1e-3;\nvar minDuration = 0.01;\nvar maxDuration2 = 10;\nvar minDamping = Number.MIN_VALUE;\nvar maxDamping = 1;\nfunction approximateRoot(func, derivative, initialGuess, times = 12) {\n  let result = initialGuess;\n  for (let i = 1, end = times, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n    result = result - func(result) / derivative(result);\n  }\n  return result;\n}\nfunction angularFrequency(undampedFrequency, dampingRatio) {\n  return undampedFrequency * Math.sqrt(1 - Math.pow(dampingRatio, 2));\n}\nvar SpringCurveValueConverter = {\n  computeDampingRatio: (tension, friction, mass = 1) => {\n    return friction / (2 * Math.sqrt(mass * tension));\n  },\n  // Tries to compute the duration of a spring,\n  // but can't for certain velocities and if dampingRatio >= 1\n  // In those cases it will return null\n  computeDuration: (tension, friction, velocity = 0, mass = 1) => {\n    let duration;\n    const dampingRatio = SpringCurveValueConverter.computeDampingRatio(tension, friction);\n    const undampedFrequency = Math.sqrt(tension / mass);\n    if (dampingRatio < 1) {\n      const a = Math.sqrt(1 - Math.pow(dampingRatio, 2));\n      const b = velocity / (a * undampedFrequency);\n      const c = dampingRatio / a;\n      const d = -((b - c) / epsilon);\n      if (d <= 0) {\n        return null;\n      }\n      duration = Math.log(d) / (dampingRatio * undampedFrequency);\n    } else {\n      return null;\n    }\n    return duration;\n  },\n  computeDerivedCurveOptions: (dampingRatio, duration, velocity = 0, mass = 1) => {\n    let derivative, envelope;\n    dampingRatio = Math.max(Math.min(dampingRatio, maxDamping), minDamping);\n    duration = Math.max(Math.min(duration, maxDuration2), minDuration);\n    if (dampingRatio < 1) {\n      envelope = function(envelopeUndampedFrequency) {\n        const exponentialDecay = envelopeUndampedFrequency * dampingRatio;\n        const currentDisplacement = exponentialDecay * duration;\n        const a = exponentialDecay - velocity;\n        const b = angularFrequency(envelopeUndampedFrequency, dampingRatio);\n        const c = Math.exp(-currentDisplacement);\n        return epsilon - a / b * c;\n      };\n      derivative = function(derivativeUndampedFrequency) {\n        const exponentialDecay = derivativeUndampedFrequency * dampingRatio;\n        const currentDisplacement = exponentialDecay * duration;\n        const d = currentDisplacement * velocity + velocity;\n        const e = Math.pow(dampingRatio, 2) * Math.pow(derivativeUndampedFrequency, 2) * duration;\n        const f = Math.exp(-currentDisplacement);\n        const g = angularFrequency(Math.pow(derivativeUndampedFrequency, 2), dampingRatio);\n        const factor = -envelope(derivativeUndampedFrequency) + epsilon > 0 ? -1 : 1;\n        return factor * ((d - e) * f) / g;\n      };\n    } else {\n      envelope = function(envelopeUndampedFrequency) {\n        const a = Math.exp(-envelopeUndampedFrequency * duration);\n        const b = (envelopeUndampedFrequency - velocity) * duration + 1;\n        return -epsilon + a * b;\n      };\n      derivative = function(derivativeUndampedFrequency) {\n        const a = Math.exp(-derivativeUndampedFrequency * duration);\n        const b = (velocity - derivativeUndampedFrequency) * Math.pow(duration, 2);\n        return a * b;\n      };\n    }\n    const result = {\n      tension: 100,\n      friction: 10,\n      velocity\n    };\n    const initialGuess = 5 / duration;\n    const undampedFrequency = approximateRoot(envelope, derivative, initialGuess);\n    if (!isNaN(undampedFrequency)) {\n      result.tension = Math.pow(undampedFrequency, 2) * mass;\n      result.friction = dampingRatio * 2 * Math.sqrt(mass * result.tension);\n    }\n    return result;\n  }\n};\n\n// ../../library/src/animation/Animators/SpringAnimator.ts\nvar SpringTensionFrictionDefaults = {\n  tension: 500,\n  friction: 10,\n  tolerance: 1 / 1e4,\n  velocity: 0\n};\nvar SpringDampingDurationDefaults = {\n  dampingRatio: 1,\n  duration: 1,\n  velocity: 0,\n  mass: 1\n};\nfunction isDampingDurationSpringOptions(options) {\n  if (!options) {\n    return false;\n  }\n  return typeof options.dampingRatio === \"number\" || typeof options.duration === \"number\" || typeof options.mass === \"number\";\n}\nvar SpringAnimator = class {\n  constructor(options, interpolation) {\n    this.interpolation = interpolation;\n    let _opt;\n    if (isDampingDurationSpringOptions(options)) {\n      const toPass = { ...SpringDampingDurationDefaults, ...options };\n      _opt = SpringCurveValueConverter.computeDerivedCurveOptions(\n        toPass.dampingRatio,\n        toPass.duration,\n        toPass.velocity,\n        toPass.mass\n      );\n    } else {\n      _opt = options;\n    }\n    this.options = { ...SpringTensionFrictionDefaults, ..._opt };\n    this.state = {\n      x: 0,\n      v: this.options.velocity\n    };\n    this.integrator = new Integrator((state) => -this.options.tension * state.x - this.options.friction * state.v);\n  }\n  isReady() {\n    return this.interpolator !== void 0 && this.difference !== void 0;\n  }\n  next(delta) {\n    this.state = this.integrator.integrateState(this.state, delta);\n    const value = this.interpolator(this.progress());\n    return value;\n  }\n  isFinished() {\n    const positionNearZero = Math.abs(this.state.x) < this.options.tolerance;\n    const velocityNearZero = Math.abs(this.state.v) < this.options.tolerance;\n    return positionNearZero && velocityNearZero;\n  }\n  setFrom(value) {\n    this.current = value;\n    this.updateInterpolator();\n  }\n  setVelocity(velocity) {\n    this.state.v = velocity;\n  }\n  progress() {\n    return 1 - this.state.x / this.difference;\n  }\n  // The spring always settles to 0, so we create an interpolation to the destination\n  // And calculate the progress based on the current state and the span of the interpolation\n  // This lets us integrate over state.x, even though Value is generic\n  setTo(value) {\n    this.destination = value;\n    this.difference = this.interpolation.difference(this.destination, this.current);\n    this.state.x = this.difference;\n    this.updateInterpolator();\n  }\n  /** @internal */\n  getState() {\n    return this.state;\n  }\n  updateInterpolator() {\n    if (this.current === void 0 || this.destination === void 0) {\n      return;\n    }\n    this.interpolator = this.interpolation.interpolate(this.current, this.destination);\n  }\n};\n\n// ../../library/src/animation/Animators/InertialScrollAnimator.ts\nvar Defaults = {\n  velocity: 0,\n  min: 0,\n  max: 0,\n  momentum: {\n    friction: 2,\n    tolerance: 10\n  },\n  bounce: {\n    tension: 500,\n    friction: 10,\n    tolerance: 1\n  }\n};\nvar InertialScrollAnimator = class {\n  constructor(options) {\n    this.options = Object.assign({ ...Defaults }, options);\n    this.frictionAnimator = new FrictionAnimator({\n      friction: this.options.momentum.friction,\n      tolerance: this.options.momentum.tolerance,\n      velocity: this.options.velocity\n    });\n    this.springAnimator = new SpringAnimator(\n      {\n        tension: this.options.bounce.tension,\n        friction: this.options.bounce.friction,\n        tolerance: this.options.bounce.tolerance,\n        velocity: this.options.velocity\n      },\n      NumberInterpolation\n    );\n    this.useSpring = false;\n  }\n  isReady() {\n    return true;\n  }\n  next(delta) {\n    this.current = this.currentAnimator.next(delta);\n    if (!this.useSpring) {\n      this.tryTransitionToSpring();\n    }\n    return this.current;\n  }\n  get currentAnimator() {\n    if (this.useSpring) {\n      return this.springAnimator;\n    }\n    return this.frictionAnimator;\n  }\n  isFinished() {\n    return this.currentAnimator.isFinished();\n  }\n  get state() {\n    return this.currentAnimator.getState();\n  }\n  setFrom(value) {\n    this.setState({ x: value, v: this.state.v });\n  }\n  setState(state) {\n    this.frictionAnimator.setFrom(state.x);\n    this.frictionAnimator.setVelocity(state.v);\n    if (this.isValidState()) {\n      return this.tryTransitionToSpring();\n    } else {\n      let bound = 0;\n      if (this.state.x <= this.options.min) {\n        bound = this.options.min;\n      }\n      if (this.state.x >= this.options.max) {\n        bound = this.options.max;\n      }\n      return this.transitionToSpring(bound);\n    }\n  }\n  setTo(destination) {\n    this.frictionAnimator.setTo(destination);\n    this.springAnimator.setTo(destination);\n  }\n  setLimits(min, max) {\n    this.options.min = min;\n    this.options.max = max;\n  }\n  // If the position is outside the min and max bounds, and traveling\n  // further away, then transition from friction to spring animation\n  tryTransitionToSpring() {\n    const belowMinWithVelocity = this.state.x < this.options.min && this.state.v <= 0;\n    const aboveMaxWithVelocity = this.state.x > this.options.max && this.state.v >= 0;\n    if (belowMinWithVelocity || aboveMaxWithVelocity) {\n      let bound;\n      if (belowMinWithVelocity) {\n        bound = this.options.min;\n      } else {\n        bound = this.options.max;\n      }\n      this.transitionToSpring(bound);\n    } else {\n      this.useSpring = false;\n    }\n  }\n  transitionToSpring(bound) {\n    this.springAnimator.setFrom(this.state.x);\n    this.springAnimator.setVelocity(this.state.v);\n    this.springAnimator.setTo(bound);\n    this.useSpring = true;\n  }\n  // If the position is outside the min and max bounds, but traveling\n  // back towards the bounds, check if the velocity is sufficient to\n  // carry the position back within bounds. If it is, let friction do the\n  // work. If not, the state is invalid, so use the spring.\n  isValidState() {\n    const belowMinTravelingBack = this.state.x < this.options.min && this.state.v > 0;\n    const aboveMaxTravelingBack = this.state.x > this.options.max && this.state.v < 0;\n    if (belowMinTravelingBack || aboveMaxTravelingBack) {\n      let bound;\n      if (belowMinTravelingBack) {\n        bound = this.options.min;\n      } else {\n        bound = this.options.max;\n      }\n      const friction = this.frictionAnimator.options.friction;\n      const solution = 1 - friction * (bound - this.state.x) / this.state.v;\n      return solution > 0;\n    }\n    return true;\n  }\n  // The math behind _isValidState:\n  //\n  // 1. Integrate the friction animator's acceleration to find velocity\n  //\n  //         a = - k * v\n  //     dv/dt = - k * v\n  // Int(dv/v) = - k * Int(dt)\n  //      ln v = - k * t + C\n  //\n  // => Solve for C at t = 0\n  //\n  // ln v(0) = - k * 0 + C\n  // ln v(0) = C\n  //\n  // => Plug C back into v(t)\n  //\n  //     ln v = - k * t + ln v(0)\n  // e^(ln v) = e^(- k * t) + e^(ln v(0))\n  //        v = v(0) * e^(- k * t)\n  //\n  // 2. Integrate velocity to find position\n  //\n  // Int(v) = v(0) * Int(e^(- k * t))\n  //      x = - v(0) * e^(-k * t) / k + C\n  //\n  // => Solve for C at t = 0\n  //\n  //            x(0) = - v(0) * e^(-k * 0) / k + C\n  //            x(0) = - v(0) / k + C\n  // x(0) + v(0) / k = C\n  //\n  // => Plug C back into x(t)\n  //\n  // x = - v(0) * e^(-k * t) / k + x(0) + v(0) / k\n  //\n  // 3. Check if a (real) solution exists for t for position x\n  //\n  //                                x = - v(0) * e^(-k * t) / k + x(0) + v(0) / k\n  //                         x - x(0) = - v(0) * e^(-k * t) / k + v(0) / k\n  //                   k * (x - x(0)) = - v(0) * e^(-k * t) + v(0)\n  //            k * (x - x(0)) - v(0) = - v(0) * e^(-k * t)\n  // (k * (x - x(0)) - v(0)) / - v(0) = e^(-k * t)\n  //       1 - (k * (x - x(0)) / v(0) = e^(-k * t)\n  //   ln(1 - (k * (x - x(0)) / v(0)) = -k * t\n  //\n  // Therefore, a real solution exists if 1 - (k * (x - x(0)) / v(0) > 0\n};\n\n// ../../library/src/render/types/Color/converters.ts\nvar import_hsluv = __toESM(require_hsluv(), 1);\n\n// ../../library/src/render/types/Color/CSSNames.ts\nvar cssNames = {\n  aliceblue: \"f0f8ff\",\n  antiquewhite: \"faebd7\",\n  aqua: \"0ff\",\n  aquamarine: \"7fffd4\",\n  azure: \"f0ffff\",\n  beige: \"f5f5dc\",\n  bisque: \"ffe4c4\",\n  black: \"000\",\n  blanchedalmond: \"ffebcd\",\n  blue: \"00f\",\n  blueviolet: \"8a2be2\",\n  brown: \"a52a2a\",\n  burlywood: \"deb887\",\n  burntsienna: \"ea7e5d\",\n  cadetblue: \"5f9ea0\",\n  chartreuse: \"7fff00\",\n  chocolate: \"d2691e\",\n  coral: \"ff7f50\",\n  cornflowerblue: \"6495ed\",\n  cornsilk: \"fff8dc\",\n  crimson: \"dc143c\",\n  cyan: \"0ff\",\n  darkblue: \"00008b\",\n  darkcyan: \"008b8b\",\n  darkgoldenrod: \"b8860b\",\n  darkgray: \"a9a9a9\",\n  darkgreen: \"006400\",\n  darkgrey: \"a9a9a9\",\n  darkkhaki: \"bdb76b\",\n  darkmagenta: \"8b008b\",\n  darkolivegreen: \"556b2f\",\n  darkorange: \"ff8c00\",\n  darkorchid: \"9932cc\",\n  darkred: \"8b0000\",\n  darksalmon: \"e9967a\",\n  darkseagreen: \"8fbc8f\",\n  darkslateblue: \"483d8b\",\n  darkslategray: \"2f4f4f\",\n  darkslategrey: \"2f4f4f\",\n  darkturquoise: \"00ced1\",\n  darkviolet: \"9400d3\",\n  deeppink: \"ff1493\",\n  deepskyblue: \"00bfff\",\n  dimgray: \"696969\",\n  dimgrey: \"696969\",\n  dodgerblue: \"1e90ff\",\n  firebrick: \"b22222\",\n  floralwhite: \"fffaf0\",\n  forestgreen: \"228b22\",\n  fuchsia: \"f0f\",\n  gainsboro: \"dcdcdc\",\n  ghostwhite: \"f8f8ff\",\n  gold: \"ffd700\",\n  goldenrod: \"daa520\",\n  gray: \"808080\",\n  green: \"008000\",\n  greenyellow: \"adff2f\",\n  grey: \"808080\",\n  honeydew: \"f0fff0\",\n  hotpink: \"ff69b4\",\n  indianred: \"cd5c5c\",\n  indigo: \"4b0082\",\n  ivory: \"fffff0\",\n  khaki: \"f0e68c\",\n  lavender: \"e6e6fa\",\n  lavenderblush: \"fff0f5\",\n  lawngreen: \"7cfc00\",\n  lemonchiffon: \"fffacd\",\n  lightblue: \"add8e6\",\n  lightcoral: \"f08080\",\n  lightcyan: \"e0ffff\",\n  lightgoldenrodyellow: \"fafad2\",\n  lightgray: \"d3d3d3\",\n  lightgreen: \"90ee90\",\n  lightgrey: \"d3d3d3\",\n  lightpink: \"ffb6c1\",\n  lightsalmon: \"ffa07a\",\n  lightseagreen: \"20b2aa\",\n  lightskyblue: \"87cefa\",\n  lightslategray: \"789\",\n  lightslategrey: \"789\",\n  lightsteelblue: \"b0c4de\",\n  lightyellow: \"ffffe0\",\n  lime: \"0f0\",\n  limegreen: \"32cd32\",\n  linen: \"faf0e6\",\n  magenta: \"f0f\",\n  maroon: \"800000\",\n  mediumaquamarine: \"66cdaa\",\n  mediumblue: \"0000cd\",\n  mediumorchid: \"ba55d3\",\n  mediumpurple: \"9370db\",\n  mediumseagreen: \"3cb371\",\n  mediumslateblue: \"7b68ee\",\n  mediumspringgreen: \"00fa9a\",\n  mediumturquoise: \"48d1cc\",\n  mediumvioletred: \"c71585\",\n  midnightblue: \"191970\",\n  mintcream: \"f5fffa\",\n  mistyrose: \"ffe4e1\",\n  moccasin: \"ffe4b5\",\n  navajowhite: \"ffdead\",\n  navy: \"000080\",\n  oldlace: \"fdf5e6\",\n  olive: \"808000\",\n  olivedrab: \"6b8e23\",\n  orange: \"ffa500\",\n  orangered: \"ff4500\",\n  orchid: \"da70d6\",\n  palegoldenrod: \"eee8aa\",\n  palegreen: \"98fb98\",\n  paleturquoise: \"afeeee\",\n  palevioletred: \"db7093\",\n  papayawhip: \"ffefd5\",\n  peachpuff: \"ffdab9\",\n  peru: \"cd853f\",\n  pink: \"ffc0cb\",\n  plum: \"dda0dd\",\n  powderblue: \"b0e0e6\",\n  purple: \"800080\",\n  rebeccapurple: \"663399\",\n  red: \"f00\",\n  rosybrown: \"bc8f8f\",\n  royalblue: \"4169e1\",\n  saddlebrown: \"8b4513\",\n  salmon: \"fa8072\",\n  sandybrown: \"f4a460\",\n  seagreen: \"2e8b57\",\n  seashell: \"fff5ee\",\n  sienna: \"a0522d\",\n  silver: \"c0c0c0\",\n  skyblue: \"87ceeb\",\n  slateblue: \"6a5acd\",\n  slategray: \"708090\",\n  slategrey: \"708090\",\n  snow: \"fffafa\",\n  springgreen: \"00ff7f\",\n  steelblue: \"4682b4\",\n  tan: \"d2b48c\",\n  teal: \"008080\",\n  thistle: \"d8bfd8\",\n  tomato: \"ff6347\",\n  turquoise: \"40e0d0\",\n  violet: \"ee82ee\",\n  wheat: \"f5deb3\",\n  white: \"fff\",\n  whitesmoke: \"f5f5f5\",\n  yellow: \"ff0\",\n  yellowgreen: \"9acd32\"\n};\n\n// ../../library/src/render/types/Color/Utils.ts\nfunction modulate(value, rangeA, rangeB, limit = false) {\n  const [fromLow, fromHigh] = rangeA;\n  const [toLow, toHigh] = rangeB;\n  const fromDelta = fromHigh - fromLow;\n  if (fromDelta === 0)\n    return (toHigh + toLow) / 2;\n  const toDelta = toHigh - toLow;\n  if (toDelta === 0)\n    return toLow;\n  const result = toLow + (value - fromLow) / fromDelta * toDelta;\n  if (limit === true) {\n    if (toLow < toHigh) {\n      if (result < toLow) {\n        return toLow;\n      }\n      if (result > toHigh) {\n        return toHigh;\n      }\n    } else {\n      if (result > toLow) {\n        return toLow;\n      }\n      if (result < toHigh) {\n        return toHigh;\n      }\n    }\n  }\n  return result;\n}\nfunction isNumeric(value) {\n  return !isNaN(value) && isFinite(value);\n}\nfunction percentToFraction(val) {\n  const digits = numberFromString(val);\n  if (digits !== void 0) {\n    if (val.includes(\"%\")) {\n      return digits / 100;\n    }\n    return digits;\n  }\n  return 0;\n}\nfunction numberFromString(input) {\n  const match = input.match(/\\d?\\.?\\d+/);\n  return match ? Number(match[0]) : void 0;\n}\n\n// ../../library/src/render/types/Color/types.ts\nvar ColorFormat = /* @__PURE__ */ ((ColorFormat2) => {\n  ColorFormat2[\"RGB\"] = \"rgb\";\n  ColorFormat2[\"HSL\"] = \"hsl\";\n  ColorFormat2[\"HSV\"] = \"hsv\";\n  ColorFormat2[\"HEX\"] = \"hex\";\n  ColorFormat2[\"NAME\"] = \"name\";\n  return ColorFormat2;\n})(ColorFormat || {});\nvar ColorMixModelType = /* @__PURE__ */ ((ColorMixModelType2) => {\n  ColorMixModelType2[\"RGB\"] = \"rgb\";\n  ColorMixModelType2[\"RGBA\"] = \"rgba\";\n  ColorMixModelType2[\"HSL\"] = \"hsl\";\n  ColorMixModelType2[\"HSLA\"] = \"hsla\";\n  ColorMixModelType2[\"HUSL\"] = \"husl\";\n  return ColorMixModelType2;\n})(ColorMixModelType || {});\n\n// ../../library/src/render/types/Color/converters.ts\nvar { hsluvToRgb, rgbToHsluv: rgbToHsluvExternal } = import_hsluv.default;\nfunction rgbToHsluv(r, g, b) {\n  const [h, s, l] = rgbToHsluvExternal([r / 255, g / 255, b / 255]);\n  return { h, s, l };\n}\nfunction rgbaFromHusl(h, s, l, a = 1) {\n  const rgb = hsluvToRgb([h, s, l]);\n  return {\n    r: rgb[0] * 255,\n    g: rgb[1] * 255,\n    b: rgb[2] * 255,\n    a\n  };\n}\nfunction hsvToStr(h, s, v, a) {\n  const _h = Math.round(h);\n  const _s = Math.round(s * 100);\n  const _v = Math.round(v * 100);\n  return a === void 0 || a === 1 ? \"hsv(\" + _h + \", \" + _s + \"%, \" + _v + \"%)\" : \"hsva(\" + _h + \", \" + _s + \"%, \" + _v + \"%, \" + a + \")\";\n}\nfunction rgbToRgb(r, g, b) {\n  return {\n    r: isNumeric(r) ? bound01(r, 255) * 255 : 0,\n    g: isNumeric(g) ? bound01(g, 255) * 255 : 0,\n    b: isNumeric(b) ? bound01(b, 255) * 255 : 0\n  };\n}\nfunction rgbToHex(r, g, b, allow3Char) {\n  const hex = [\n    pad2(Math.round(r).toString(16)),\n    pad2(Math.round(g).toString(16)),\n    pad2(Math.round(b).toString(16))\n  ];\n  if (allow3Char && hex[0].charAt(0) === hex[0].charAt(1) && hex[1].charAt(0) === hex[1].charAt(1) && hex[2].charAt(0) === hex[2].charAt(1)) {\n    return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n  }\n  return hex.join(\"\");\n}\nfunction rgbToHsl(r, g, b) {\n  let l;\n  let s;\n  const _r = bound01(r, 255);\n  const _g = bound01(g, 255);\n  const _b = bound01(b, 255);\n  const max = Math.max(_r, _g, _b);\n  const min = Math.min(_r, _g, _b);\n  let h = s = l = (max + min) / 2;\n  if (max === min) {\n    h = s = 0;\n  } else {\n    const d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n    switch (max) {\n      case _r:\n        h = (_g - _b) / d + (_g < _b ? 6 : 0);\n        break;\n      case _g:\n        h = (_b - _r) / d + 2;\n        break;\n      case _b:\n        h = (_r - _g) / d + 4;\n        break;\n    }\n    h /= 6;\n  }\n  return { h: h * 360, s, l };\n}\nfunction hue2rgb(p, q, t) {\n  if (t < 0) {\n    t += 1;\n  }\n  if (t > 1) {\n    t -= 1;\n  }\n  if (t < 1 / 6) {\n    return p + (q - p) * 6 * t;\n  }\n  if (t < 1 / 2) {\n    return q;\n  }\n  if (t < 2 / 3) {\n    return p + (q - p) * (2 / 3 - t) * 6;\n  }\n  return p;\n}\nfunction hslToRgb(h, s, l) {\n  let r;\n  let g;\n  let b;\n  h = bound01(h, 360);\n  s = bound01(s * 100, 100);\n  l = bound01(l * 100, 100);\n  if (s === 0) {\n    r = g = b = l;\n  } else {\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n    const p = 2 * l - q;\n    r = hue2rgb(p, q, h + 1 / 3);\n    g = hue2rgb(p, q, h);\n    b = hue2rgb(p, q, h - 1 / 3);\n  }\n  return { r: r * 255, g: g * 255, b: b * 255 };\n}\nfunction rgbToHsv(r, g, b) {\n  r = bound01(r, 255);\n  g = bound01(g, 255);\n  b = bound01(b, 255);\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  const d = max - min;\n  let h;\n  const s = max === 0 ? 0 : d / max;\n  const v = max;\n  if (max === min) {\n    h = 0;\n  } else {\n    switch (max) {\n      case r:\n        h = (g - b) / d + (g < b ? 6 : 0);\n        break;\n      case g:\n        h = (b - r) / d + 2;\n        break;\n      case b:\n        h = (r - g) / d + 4;\n        break;\n    }\n    h /= 6;\n  }\n  return { h, s, v };\n}\nfunction hsvToRgb(h, s, v) {\n  h = bound01(h, 360) * 6;\n  s = bound01(s * 100, 100);\n  v = bound01(v * 100, 100);\n  const i = Math.floor(h);\n  const f = h - i;\n  const p = v * (1 - s);\n  const q = v * (1 - f * s);\n  const t = v * (1 - (1 - f) * s);\n  const mod = i % 6;\n  const r = [v, q, p, p, t, v][mod];\n  const g = [t, v, v, q, p, p][mod];\n  const b = [p, p, t, v, v, q][mod];\n  return { r: r * 255, g: g * 255, b: b * 255 };\n}\nfunction bound01(n, max) {\n  let _max;\n  let _n;\n  if (typeof max === \"string\")\n    _max = parseFloat(max);\n  else\n    _max = max;\n  if (typeof n === \"string\") {\n    if (isOnePointZero(n)) {\n      n = \"100%\";\n    }\n    const processPercent = isPercentage(n);\n    _n = Math.min(_max, Math.max(0, parseFloat(n)));\n    if (processPercent) {\n      _n = Math.floor(_n * _max) / 100;\n    }\n  } else {\n    _n = n;\n  }\n  if (Math.abs(_n - _max) < 1e-6) {\n    return 1;\n  }\n  return _n % _max / _max;\n}\nfunction isOnePointZero(n) {\n  return typeof n === \"string\" && n.includes(\".\") && parseFloat(n) === 1;\n}\nfunction isPercentage(n) {\n  return typeof n === \"string\" && n.includes(\"%\");\n}\nfunction pad2(char) {\n  if (char.length === 1) {\n    return \"0\" + char;\n  } else {\n    return \"\" + char;\n  }\n}\nvar matchers = function() {\n  const cssInteger = \"[-\\\\+]?\\\\d+%?\";\n  const cssNumber = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n  const cssUnit = \"(?:\" + cssNumber + \")|(?:\" + cssInteger + \")\";\n  const permissiveMatch3 = \"[\\\\s|\\\\(]+(\" + cssUnit + \")[,|\\\\s]+(\" + cssUnit + \")[,|\\\\s]+(\" + cssUnit + \")\\\\s*\\\\)?\";\n  const permissiveMatch4 = \"[\\\\s|\\\\(]+(\" + cssUnit + \")[,|\\\\s]+(\" + cssUnit + \")[,|\\\\s]+(\" + cssUnit + \")[,|\\\\s]+(\" + cssUnit + \")\\\\s*\\\\)?\";\n  return {\n    rgb: new RegExp(\"rgb\" + permissiveMatch3),\n    rgba: new RegExp(\"rgba\" + permissiveMatch4),\n    hsl: new RegExp(\"hsl\" + permissiveMatch3),\n    hsla: new RegExp(\"hsla\" + permissiveMatch4),\n    hsv: new RegExp(\"hsv\" + permissiveMatch3),\n    hsva: new RegExp(\"hsva\" + permissiveMatch4),\n    hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n    hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n    hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n  };\n}();\nfunction stringToObject(inputColor) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B;\n  if (inputColor.includes(\"gradient(\"))\n    return false;\n  if (inputColor.includes(\"var(\"))\n    return false;\n  const trimLeft = /^[\\s,#]+/;\n  const trimRight = /\\s+$/;\n  let color2 = inputColor.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n  const namedColor = cssNames[color2];\n  if (namedColor) {\n    color2 = namedColor;\n  }\n  if (color2 === \"transparent\") {\n    return {\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 0,\n      format: \"name\" /* NAME */\n    };\n  }\n  let match;\n  if (match = matchers.rgb.exec(color2)) {\n    return {\n      r: parseInt((_a = match[1]) != null ? _a : \"\"),\n      g: parseInt((_b = match[2]) != null ? _b : \"\"),\n      b: parseInt((_c = match[3]) != null ? _c : \"\"),\n      a: 1,\n      format: \"rgb\" /* RGB */\n    };\n  }\n  if (match = matchers.rgba.exec(color2)) {\n    return {\n      r: parseInt((_d = match[1]) != null ? _d : \"\"),\n      g: parseInt((_e = match[2]) != null ? _e : \"\"),\n      b: parseInt((_f = match[3]) != null ? _f : \"\"),\n      a: parseFloat((_g = match[4]) != null ? _g : \"\"),\n      format: \"rgb\" /* RGB */\n    };\n  }\n  if (match = matchers.hsl.exec(color2)) {\n    return {\n      h: parseInt((_h = match[1]) != null ? _h : \"\"),\n      s: percentToFraction((_i = match[2]) != null ? _i : \"\"),\n      l: percentToFraction((_j = match[3]) != null ? _j : \"\"),\n      a: 1,\n      format: \"hsl\" /* HSL */\n    };\n  }\n  if (match = matchers.hsla.exec(color2)) {\n    return {\n      h: parseInt((_k = match[1]) != null ? _k : \"\"),\n      s: percentToFraction((_l = match[2]) != null ? _l : \"\"),\n      l: percentToFraction((_m = match[3]) != null ? _m : \"\"),\n      a: parseFloat((_n = match[4]) != null ? _n : \"\"),\n      format: \"hsl\" /* HSL */\n    };\n  }\n  if (match = matchers.hsv.exec(color2)) {\n    return {\n      h: parseInt((_o = match[1]) != null ? _o : \"\"),\n      s: percentToFraction((_p = match[2]) != null ? _p : \"\"),\n      v: percentToFraction((_q = match[3]) != null ? _q : \"\"),\n      a: 1,\n      format: \"hsv\" /* HSV */\n    };\n  }\n  if (match = matchers.hsva.exec(color2)) {\n    return {\n      h: parseInt((_r = match[1]) != null ? _r : \"\"),\n      s: percentToFraction((_s = match[2]) != null ? _s : \"\"),\n      v: percentToFraction((_t = match[3]) != null ? _t : \"\"),\n      a: parseFloat((_u = match[4]) != null ? _u : \"\"),\n      format: \"hsv\" /* HSV */\n    };\n  }\n  if (match = matchers.hex8.exec(color2)) {\n    return {\n      r: parseIntFromHex((_v = match[1]) != null ? _v : \"\"),\n      g: parseIntFromHex((_w = match[2]) != null ? _w : \"\"),\n      b: parseIntFromHex((_x = match[3]) != null ? _x : \"\"),\n      a: convertHexToDecimal((_y = match[4]) != null ? _y : \"\"),\n      format: namedColor ? \"name\" /* NAME */ : \"hex\" /* HEX */\n    };\n  }\n  if (match = matchers.hex6.exec(color2)) {\n    return {\n      r: parseIntFromHex((_z = match[1]) != null ? _z : \"\"),\n      g: parseIntFromHex((_A = match[2]) != null ? _A : \"\"),\n      b: parseIntFromHex((_B = match[3]) != null ? _B : \"\"),\n      a: 1,\n      format: namedColor ? \"name\" /* NAME */ : \"hex\" /* HEX */\n    };\n  }\n  if (match = matchers.hex4.exec(color2)) {\n    return {\n      r: parseIntFromHex(`${match[1]}${match[1]}`),\n      g: parseIntFromHex(`${match[2]}${match[2]}`),\n      b: parseIntFromHex(`${match[3]}${match[3]}`),\n      a: convertHexToDecimal(match[4] + \"\" + match[4]),\n      format: namedColor ? \"name\" /* NAME */ : \"hex\" /* HEX */\n    };\n  }\n  if (match = matchers.hex3.exec(color2)) {\n    return {\n      r: parseIntFromHex(`${match[1]}${match[1]}`),\n      g: parseIntFromHex(`${match[2]}${match[2]}`),\n      b: parseIntFromHex(`${match[3]}${match[3]}`),\n      a: 1,\n      format: namedColor ? \"name\" /* NAME */ : \"hex\" /* HEX */\n    };\n  } else {\n    return false;\n  }\n}\nfunction parseIntFromHex(hex) {\n  return parseInt(hex, 16);\n}\nfunction convertHexToDecimal(h) {\n  return parseIntFromHex(h) / 255;\n}\n\n// ../../library/src/render/types/Color/Color.ts\nvar cache = /* @__PURE__ */ new Map();\nvar Color = /* @__PURE__ */ (() => {\n  function Color2(color2, r, g, b) {\n    if (typeof color2 === \"string\") {\n      let c = cache.get(color2);\n      if (c)\n        return c;\n      c = createColor(color2);\n      if (c === void 0)\n        return { ...Color2(\"black\"), isValid: false };\n      cache.set(color2, c);\n      return c;\n    }\n    const created = createColor(color2, r, g, b);\n    return created !== void 0 ? created : { ...Color2(\"black\"), isValid: false };\n  }\n  function createColor(color2, r, g, b) {\n    if (color2 === \"\")\n      return void 0;\n    const colorData = getCompleteColorStrategy(color2, r, g, b);\n    if (colorData) {\n      const newColor = {\n        r: colorData.r,\n        g: colorData.g,\n        b: colorData.b,\n        a: colorData.a,\n        h: colorData.h,\n        s: colorData.s,\n        l: colorData.l,\n        initialValue: typeof color2 === \"string\" && colorData.format !== \"hsv\" /* HSV */ ? color2 : void 0,\n        roundA: Math.round(100 * colorData.a) / 100,\n        format: colorData.format,\n        mix: Color2.mix,\n        toValue: () => Color2.toRgbString(newColor)\n      };\n      return newColor;\n    } else {\n      return void 0;\n    }\n  }\n  const ColorMixModel = {\n    isRGB(colorModel) {\n      return colorModel === \"rgb\" /* RGB */ || colorModel === \"rgba\" /* RGBA */;\n    },\n    isHSL(colorModel) {\n      return colorModel === \"hsl\" /* HSL */ || colorModel === \"hsla\" /* HSLA */;\n    }\n  };\n  Color2.inspect = (color2, initialValue) => {\n    if (color2.format === \"hsl\" /* HSL */) {\n      return `<${color2.constructor.name} h:${color2.h} s:${color2.s} l:${color2.l} a:${color2.a}>`;\n    } else if (color2.format === \"hex\" /* HEX */ || color2.format === \"name\" /* NAME */) {\n      return `<${color2.constructor.name} \"${initialValue}\">`;\n    } else {\n      return `<${color2.constructor.name} r:${color2.r} g:${color2.g} b:${color2.b} a:${color2.a}>`;\n    }\n  };\n  Color2.isColor = (color2) => {\n    if (typeof color2 === \"string\") {\n      return Color2.isColorString(color2);\n    } else {\n      return Color2.isColorObject(color2);\n    }\n  };\n  Color2.isColorString = (colorString) => {\n    if (typeof colorString === \"string\") {\n      return stringToObject(colorString) !== false;\n    }\n    return false;\n  };\n  Color2.isColorObject = (color2) => {\n    return color2 && typeof color2 !== \"string\" && typeof color2.r === \"number\" && typeof color2.g === \"number\" && typeof color2.b === \"number\" && typeof color2.h === \"number\" && typeof color2.s === \"number\" && typeof color2.l === \"number\" && typeof color2.a === \"number\" && typeof color2.roundA === \"number\" && typeof color2.format === \"string\";\n  };\n  Color2.toString = (color2) => {\n    return Color2.toRgbString(color2);\n  };\n  Color2.toHex = (color2, allow3Char = false) => {\n    return rgbToHex(color2.r, color2.g, color2.b, allow3Char);\n  };\n  Color2.toHexString = (color2, allow3Char = false) => {\n    return `#${Color2.toHex(color2, allow3Char)}`;\n  };\n  Color2.toRgbString = (color2) => {\n    return color2.a === 1 ? \"rgb(\" + Math.round(color2.r) + \", \" + Math.round(color2.g) + \", \" + Math.round(color2.b) + \")\" : \"rgba(\" + Math.round(color2.r) + \", \" + Math.round(color2.g) + \", \" + Math.round(color2.b) + \", \" + color2.roundA + \")\";\n  };\n  Color2.toHusl = (color2) => {\n    return {\n      ...rgbToHsluv(color2.r, color2.g, color2.b),\n      a: color2.roundA\n    };\n  };\n  Color2.toHslString = (color2) => {\n    const hsl = Color2.toHsl(color2);\n    const h = Math.round(hsl.h);\n    const s = Math.round(hsl.s * 100);\n    const l = Math.round(hsl.l * 100);\n    return color2.a === 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + color2.roundA + \")\";\n  };\n  Color2.toHsv = (color2) => {\n    const hsv = rgbToHsv(color2.r, color2.g, color2.b);\n    return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: color2.a };\n  };\n  Color2.toHsvString = (color2) => {\n    const hsv = rgbToHsv(color2.r, color2.g, color2.b);\n    const h = Math.round(hsv.h * 360);\n    const s = Math.round(hsv.s * 100);\n    const v = Math.round(hsv.v * 100);\n    return color2.a === 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + color2.roundA + \")\";\n  };\n  Color2.toName = (color2) => {\n    if (color2.a === 0) {\n      return \"transparent\";\n    }\n    if (color2.a < 1) {\n      return false;\n    }\n    const hex = rgbToHex(color2.r, color2.g, color2.b, true);\n    for (const key7 of Object.keys(cssNames)) {\n      const value = cssNames[key7];\n      if (value === hex) {\n        return key7;\n      }\n    }\n    return false;\n  };\n  Color2.toHsl = (color2) => {\n    return {\n      h: Math.round(color2.h),\n      s: color2.s,\n      l: color2.l,\n      a: color2.a\n    };\n  };\n  Color2.toRgb = (color2) => {\n    return {\n      r: Math.round(color2.r),\n      g: Math.round(color2.g),\n      b: Math.round(color2.b),\n      a: color2.a\n    };\n  };\n  Color2.brighten = (color2, amount = 10) => {\n    const rgb = Color2.toRgb(color2);\n    rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n    rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n    rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n    return Color2(rgb);\n  };\n  Color2.lighten = (color2, amount = 10) => {\n    const hsl = Color2.toHsl(color2);\n    hsl.l += amount / 100;\n    hsl.l = Math.min(1, Math.max(0, hsl.l));\n    return Color2(hsl);\n  };\n  Color2.darken = (color2, amount = 10) => {\n    const hsl = Color2.toHsl(color2);\n    hsl.l -= amount / 100;\n    hsl.l = Math.min(1, Math.max(0, hsl.l));\n    return Color2(hsl);\n  };\n  Color2.saturate = (color2, amount = 10) => {\n    const hsl = Color2.toHsl(color2);\n    hsl.s += amount / 100;\n    hsl.s = Math.min(1, Math.max(0, hsl.s));\n    return Color2(hsl);\n  };\n  Color2.desaturate = (color2, amount = 10) => {\n    const hsl = Color2.toHsl(color2);\n    hsl.s -= amount / 100;\n    hsl.s = Math.min(1, Math.max(0, hsl.s));\n    return Color2(hsl);\n  };\n  Color2.grayscale = (color2) => {\n    return Color2.desaturate(color2, 100);\n  };\n  Color2.hueRotate = (color2, angle) => {\n    const hsl = Color2.toHsl(color2);\n    hsl.h += angle;\n    hsl.h = hsl.h > 360 ? hsl.h - 360 : hsl.h;\n    return Color2(hsl);\n  };\n  Color2.alpha = (color2, a = 1) => {\n    return Color2({\n      r: color2.r,\n      g: color2.g,\n      b: color2.b,\n      a\n    });\n  };\n  Color2.transparent = (color2) => {\n    return Color2.alpha(color2, 0);\n  };\n  Color2.multiplyAlpha = (color2, alphaValue = 1) => {\n    return Color2({\n      r: color2.r,\n      g: color2.g,\n      b: color2.b,\n      a: color2.a * alphaValue\n    });\n  };\n  Color2.interpolate = (colorA, colorB, model = \"rgb\" /* RGB */) => {\n    if (!Color2.isColorObject(colorA) || !Color2.isColorObject(colorB)) {\n      throw new TypeError(\"Both arguments for Color.interpolate must be Color objects\");\n    }\n    return (progress2) => {\n      const color2 = Color2.mixAsColor(colorA, colorB, progress2, false, model);\n      return color2;\n    };\n  };\n  Color2.mix = (from, toColor, { model = \"rgb\" /* RGB */ } = {}) => {\n    const fromColor = typeof from === \"string\" ? Color2(from) : from;\n    const mixer = Color2.interpolate(fromColor, toColor, model);\n    return (p) => Color2.toRgbString(mixer(p));\n  };\n  Color2.mixAsColor = (colorA, colorB, fraction2 = 0.5, limit = false, model = \"rgb\" /* RGB */) => {\n    let result = null;\n    if (ColorMixModel.isRGB(model)) {\n      result = Color2({\n        r: modulate(fraction2, [0, 1], [colorA.r, colorB.r], limit),\n        g: modulate(fraction2, [0, 1], [colorA.g, colorB.g], limit),\n        b: modulate(fraction2, [0, 1], [colorA.b, colorB.b], limit),\n        a: modulate(fraction2, [0, 1], [colorA.a, colorB.a], limit)\n      });\n    } else {\n      let hslA, hslB;\n      if (ColorMixModel.isHSL(model)) {\n        hslA = Color2.toHsl(colorA);\n        hslB = Color2.toHsl(colorB);\n      } else {\n        hslA = Color2.toHusl(colorA);\n        hslB = Color2.toHusl(colorB);\n      }\n      if (hslA.s === 0) {\n        hslA.h = hslB.h;\n      } else if (hslB.s === 0) {\n        hslB.h = hslA.h;\n      }\n      const fromH = hslA.h;\n      const toH = hslB.h;\n      let deltaH = toH - fromH;\n      if (deltaH > 180) {\n        deltaH = toH - 360 - fromH;\n      } else if (deltaH < -180) {\n        deltaH = toH + 360 - fromH;\n      }\n      const tween = {\n        h: modulate(fraction2, [0, 1], [fromH, fromH + deltaH], limit),\n        s: modulate(fraction2, [0, 1], [hslA.s, hslB.s], limit),\n        l: modulate(fraction2, [0, 1], [hslA.l, hslB.l], limit),\n        a: modulate(fraction2, [0, 1], [colorA.a, colorB.a], limit)\n      };\n      if (ColorMixModel.isHSL(model)) {\n        result = Color2(tween);\n      } else {\n        result = Color2(rgbaFromHusl(tween.h, tween.s, tween.l, tween.a));\n      }\n    }\n    return result;\n  };\n  Color2.random = (alphaValue = 1) => {\n    function gen() {\n      return Math.floor(Math.random() * 255);\n    }\n    return Color2(\"rgba(\" + gen() + \", \" + gen() + \", \" + gen() + \", \" + alphaValue + \")\");\n  };\n  Color2.grey = (amount = 0.5, alphaValue = 1) => {\n    amount = Math.floor(amount * 255);\n    return Color2(\"rgba(\" + amount + \", \" + amount + \", \" + amount + \", \" + alphaValue + \")\");\n  };\n  Color2.gray = Color2.grey;\n  Color2.rgbToHsl = (r, g, b) => {\n    return rgbToHsl(r, g, b);\n  };\n  Color2.isValidColorProperty = (name, value) => {\n    const isColorKey = name.toLowerCase().slice(-5) === \"color\" || name === \"fill\" || name === \"stroke\";\n    if (isColorKey && typeof value === \"string\" && Color2.isColorString(value)) {\n      return true;\n    }\n    return false;\n  };\n  Color2.difference = (colorA, colorB) => {\n    const _r = (colorA.r + colorB.r) / 2;\n    const deltaR = colorA.r - colorB.r;\n    const deltaG = colorA.g - colorB.g;\n    const deltaB = colorA.b - colorB.b;\n    const deltaR2 = Math.pow(deltaR, 2);\n    const deltaG2 = Math.pow(deltaG, 2);\n    const deltaB2 = Math.pow(deltaB, 2);\n    return Math.sqrt(2 * deltaR2 + 4 * deltaG2 + 3 * deltaB2 + _r * (deltaR2 - deltaB2) / 256);\n  };\n  Color2.equal = (colorA, colorB, tolerance = 0.1) => {\n    if (Math.abs(colorA.r - colorB.r) >= tolerance) {\n      return false;\n    }\n    if (Math.abs(colorA.g - colorB.g) >= tolerance) {\n      return false;\n    }\n    if (Math.abs(colorA.b - colorB.b) >= tolerance) {\n      return false;\n    }\n    if (Math.abs(colorA.a - colorB.a) * 256 >= tolerance) {\n      return false;\n    }\n    return true;\n  };\n  const channelToDecimal = interpolate([0, 255], [0, 1]);\n  function convertChannelToLinearRgb(channel) {\n    channel = channelToDecimal(channel);\n    const abs = Math.abs(channel);\n    if (abs < 0.04045)\n      return channel / 12.92;\n    return (Math.sign(channel) || 1) * Math.pow((abs + 0.055) / 1.055, 2.4);\n  }\n  Color2.luminance = (color2) => {\n    const { r, g, b } = Color2.toRgb(color2);\n    return 0.2126 * convertChannelToLinearRgb(r) + 0.7152 * convertChannelToLinearRgb(g) + 0.0722 * convertChannelToLinearRgb(b);\n  };\n  Color2.contrast = (a, b) => {\n    const l1 = Color2.luminance(a);\n    const l2 = Color2.luminance(b);\n    return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05);\n  };\n  return Color2;\n})();\nfunction getCompleteColorStrategy(colorOrR, g, b, a = 1) {\n  let completeColor;\n  if (typeof colorOrR === \"number\" && !Number.isNaN(colorOrR) && typeof g === \"number\" && !Number.isNaN(g) && typeof b === \"number\" && !Number.isNaN(b)) {\n    const _r = colorOrR;\n    const _g = g;\n    const _b = b;\n    const _a = a;\n    completeColor = getCompleteColorFromRGB({ r: _r, g: _g, b: _b, a: _a });\n  } else if (typeof colorOrR === \"string\") {\n    completeColor = getCompleteColorFromString(colorOrR);\n  } else if (typeof colorOrR === \"object\") {\n    if (colorOrR.hasOwnProperty(\"r\") && colorOrR.hasOwnProperty(\"g\") && colorOrR.hasOwnProperty(\"b\")) {\n      completeColor = getCompleteColorFromRGB(colorOrR);\n    } else {\n      completeColor = getCompleteColorFromHSL(colorOrR);\n    }\n  }\n  return completeColor;\n}\nfunction getCompleteColorFromString(color2) {\n  const result = stringToObject(color2);\n  if (result) {\n    if (result.format === \"hsl\" /* HSL */) {\n      return getCompleteColorFromHSL(result);\n    } else if (result.format === \"hsv\" /* HSV */) {\n      return getCompleteColorFromHSV(result);\n    } else {\n      return getCompleteColorFromRGB(result);\n    }\n  }\n}\nfunction getCompleteColorFromHSV(color2) {\n  const rgb = hsvToRgb(color2.h, color2.s, color2.v);\n  const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);\n  return {\n    ...hsl,\n    ...rgb,\n    format: \"rgb\" /* RGB */,\n    a: color2.a !== void 0 ? correctAlpha(color2.a) : 1\n  };\n}\nfunction getCompleteColorFromRGB(color2) {\n  const rgb = rgbToRgb(color2.r, color2.g, color2.b);\n  const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);\n  return {\n    ...hsl,\n    ...rgb,\n    format: \"rgb\" /* RGB */,\n    a: color2.a !== void 0 ? correctAlpha(color2.a) : 1\n  };\n}\nfunction getCompleteColorFromHSL(color2) {\n  let h;\n  let s;\n  let l;\n  let rgb = { r: 0, g: 0, b: 0 };\n  let hsl = { h: 0, s: 0, l: 0 };\n  h = isNumeric(color2.h) ? color2.h : 0;\n  h = (h + 360) % 360;\n  s = isNumeric(color2.s) ? color2.s : 1;\n  if (typeof color2.s === \"string\") {\n    s = numberFromString(color2.s);\n  }\n  l = isNumeric(color2.l) ? color2.l : 0.5;\n  if (typeof color2.l === \"string\") {\n    l = numberFromString(color2.l);\n  }\n  rgb = hslToRgb(h, s, l);\n  hsl = {\n    h,\n    s,\n    l\n  };\n  return {\n    ...rgb,\n    ...hsl,\n    a: color2.a === void 0 ? 1 : color2.a,\n    format: \"hsl\" /* HSL */\n  };\n}\nfunction correctAlpha(alphaValue) {\n  alphaValue = parseFloat(alphaValue);\n  if (alphaValue < 0) {\n    alphaValue = 0;\n  }\n  if (isNaN(alphaValue) || alphaValue > 1) {\n    alphaValue = 1;\n  }\n  return alphaValue;\n}\n\n// ../../library/src/interpolation/ColorInterpolation.ts\nvar ColorInterpolation = (type = \"husl\" /* HUSL */) => {\n  return {\n    interpolate(from, to) {\n      ;\n      [from, to] = Interpolation.handleUndefined(from, to);\n      return Color.interpolate(Color(from), Color(to), type);\n    },\n    difference(from, to) {\n      return Color.difference(Color(from), Color(to));\n    }\n  };\n};\n\n// ../../library/src/interpolation/NoInterpolation.ts\nvar NoInterpolation = {\n  interpolate(from, to) {\n    ;\n    [from, to] = Interpolation.handleUndefined(from, to);\n    return (progress2) => {\n      return progress2 < 0.5 ? from : to;\n    };\n  },\n  difference(from, to) {\n    return from === to ? 0 : 1;\n  }\n};\n\n// ../../library/src/interpolation/ObjectInterpolation.ts\nvar ObjectInterpolation = (valueInterpolation) => {\n  return {\n    interpolate(from, to) {\n      ;\n      [from, to] = Interpolation.handleUndefined(from, to);\n      const result = Object.assign({}, from);\n      const interpolations = {};\n      const keys3 = /* @__PURE__ */ new Set();\n      for (const key7 in from) {\n        interpolations[key7] = valueInterpolation.interpolate(from[key7], to[key7]);\n        keys3.add(key7);\n      }\n      for (const key7 in to) {\n        if (!keys3.has(key7)) {\n          interpolations[key7] = valueInterpolation.interpolate(from[key7], to[key7]);\n          keys3.add(key7);\n        }\n      }\n      return (progress2) => {\n        for (const key7 in interpolations) {\n          result[key7] = interpolations[key7](progress2);\n        }\n        return result;\n      };\n    },\n    difference(from, to) {\n      let sum = 0;\n      for (const key7 in from) {\n        const difference = valueInterpolation.difference(from[key7], to[key7]);\n        sum += Math.pow(difference, 2);\n      }\n      return Math.sqrt(sum);\n    }\n  };\n};\n\n// ../../library/src/interpolation/ValueInterpolation.ts\nvar DefaultInterpolationOptions = {\n  colorModel: \"husl\" /* HUSL */\n};\nvar ValueInterpolation = class {\n  /**\n   * @internal\n   */\n  constructor(options = DefaultInterpolationOptions) {\n    /**\n     * @internal\n     */\n    this.interpolate = (from, to) => {\n      ;\n      [from, to] = Interpolation.handleUndefined(from, to);\n      return this.interPolationForValue(from).interpolate(from, to);\n    };\n    /**\n     * @internal\n     */\n    this.difference = (from, to) => {\n      const interpolation = this.interPolationForValue(from);\n      return interpolation.difference(from, to);\n    };\n    this.options = { ...DefaultInterpolationOptions, ...options };\n  }\n  /**\n   * @internal\n   */\n  interPolationForValue(value) {\n    const type = typeof value;\n    if (type === \"number\") {\n      return NumberInterpolation;\n    } else if (type === \"boolean\" || type === \"function\") {\n      return NoInterpolation;\n    } else if (Color.isColor(value)) {\n      return ColorInterpolation(this.options.colorModel);\n    } else if (type === \"object\") {\n      if (value === null) {\n        return NoInterpolation;\n      }\n      const constructor = value.constructor;\n      if (constructor && isInterpolatable(constructor)) {\n        const interpolation = constructor.interpolationFor(value, this);\n        if (interpolation && interpolation !== this && interpolation.constructor !== ValueInterpolation) {\n          return interpolation;\n        }\n      }\n      return ObjectInterpolation(this);\n    }\n    console.warn(`No interpolation defined for ${value}`);\n    return NoInterpolation;\n  }\n};\nvar AnyInterpolation = /* @__PURE__ */ new ValueInterpolation();\n\n// ../../library/src/render/utils/isMotionValue.ts\nvar isMotionValue2 = (v) => v instanceof MotionValue;\n\n// ../../library/src/animation/Animators/PrecalculatedAnimator.ts\nvar Defaults2 = {\n  delta: 1 / 60,\n  maxValues: 1e4\n};\nvar PrecalculatedAnimator = class {\n  constructor(options) {\n    this.currentTime = 0;\n    this.options = { ...Defaults2, ...options };\n    this.animator = options.animator;\n  }\n  preCalculate() {\n    if (!this.animator.isReady()) {\n      return;\n    }\n    const { delta } = this.options;\n    this.values = [];\n    while (!this.animator.isFinished() && this.values.length < this.options.maxValues) {\n      let value = this.animator.next(this.options.delta);\n      if (typeof value === \"object\" && value) {\n        const object = value;\n        const copy = { ...object };\n        value = copy;\n      }\n      this.values.push(value);\n    }\n    this.totalTime = this.values.length * delta;\n  }\n  indexForTime(time2) {\n    return Math.max(\n      0,\n      Math.min(this.values.length - 1, Math.round(this.values.length * (time2 / this.totalTime)) - 1)\n    );\n  }\n  valueForTime(time2) {\n    const index = this.indexForTime(time2);\n    const value = this.values[index];\n    return value;\n  }\n  setFrom(value) {\n    this.animator.setFrom(value);\n    this.preCalculate();\n  }\n  setTo(end) {\n    this.animator.setTo(end);\n    this.preCalculate();\n  }\n  isReady() {\n    return this.values !== void 0 && this.values.length > 0 && this.totalTime > 0;\n  }\n  next(delta) {\n    this.currentTime += delta;\n    return this.valueForTime(this.currentTime);\n  }\n  isFinished() {\n    return this.totalTime === 0 || this.currentTime >= this.totalTime;\n  }\n  get endValue() {\n    this.preCalculate();\n    const value = this.valueForTime(this.totalTime);\n    return this.values.length > 0 ? value : this.animator.next(0);\n  }\n};\n\n// ../../library/src/utils/safeWindow.ts\nvar mockWindow = {\n  addEventListener: () => {\n  },\n  removeEventListener: () => {\n  },\n  dispatchEvent: () => false,\n  ResizeObserver: void 0,\n  onpointerdown: false,\n  onpointermove: false,\n  onpointerup: false,\n  ontouchstart: false,\n  ontouchmove: false,\n  ontouchend: false,\n  onmousedown: false,\n  onmousemove: false,\n  onmouseup: false,\n  devicePixelRatio: 1,\n  scrollX: 0,\n  scrollY: 0,\n  location: {\n    href: \"\"\n  },\n  setTimeout: () => 0,\n  clearTimeout: () => {\n  },\n  setInterval: () => 0,\n  clearInterval: () => {\n  },\n  requestAnimationFrame: () => 0,\n  cancelAnimationFrame: () => {\n  },\n  getSelection: () => null,\n  matchMedia: (query) => {\n    return {\n      matches: false,\n      media: query,\n      onchange: () => {\n      },\n      addEventListener: () => {\n      },\n      removeEventListener: () => {\n      },\n      addListener: () => {\n      },\n      removeListener: () => {\n      },\n      dispatchEvent: () => false\n    };\n  },\n  innerHeight: 0,\n  innerWidth: 0,\n  SVGSVGElement: {}\n};\nvar safeWindow = typeof window === \"undefined\" ? mockWindow : window;\n\n// ../../library/src/core/Time.ts\nvar _raf = (f) => {\n  setTimeout(f, 1 / 60);\n};\nvar __raf = safeWindow[\"requestAnimationFrame\"] || _raf;\nvar raf = (f) => __raf(f);\n\n// ../../library/src/core/EventEmitter.ts\nvar import_eventemitter3 = __toESM(require_eventemitter3(), 1);\nvar { EventEmitter: EventEmitter3 } = import_eventemitter3.default;\nvar EventEmitter = class {\n  constructor() {\n    this._emitter = new EventEmitter3();\n  }\n  eventNames() {\n    return this._emitter.eventNames();\n  }\n  eventListeners() {\n    const listeners = {};\n    for (const eventName of this._emitter.eventNames()) {\n      listeners[eventName] = this._emitter.listeners(eventName);\n    }\n    return listeners;\n  }\n  on(eventName, fn) {\n    this.addEventListener(eventName, fn, false, false, this);\n  }\n  off(eventName, fn) {\n    this.removeEventListeners(eventName, fn);\n  }\n  once(eventName, fn) {\n    this.addEventListener(eventName, fn, true, false, this);\n  }\n  unique(eventName, fn) {\n    this.addEventListener(eventName, fn, false, true, this);\n  }\n  addEventListener(eventName, fn, once, unique, context) {\n    if (unique) {\n      for (const name of this._emitter.eventNames()) {\n        if (fn === this._emitter.listeners(name)) {\n          return;\n        }\n      }\n    }\n    if (once === true) {\n      this._emitter.once(eventName, fn, context);\n    } else {\n      this._emitter.addListener(eventName, fn, context);\n    }\n  }\n  removeEventListeners(eventName, fn) {\n    if (eventName) {\n      this._emitter.removeListener(eventName, fn);\n    } else {\n      this.removeAllEventListeners();\n    }\n  }\n  removeAllEventListeners() {\n    this._emitter.removeAllListeners();\n  }\n  countEventListeners(eventName, handler) {\n    if (eventName) {\n      return this._emitter.listeners(eventName).length;\n    } else {\n      let count = 0;\n      for (const name of this._emitter.eventNames()) {\n        count += this._emitter.listeners(name).length;\n      }\n      return count;\n    }\n  }\n  emit(eventName, ...args) {\n    this._emitter.emit(eventName, ...args);\n  }\n};\n\n// ../../library/src/core/Loop.ts\nvar LoopTimeStep = 1 / 60;\nvar Loop = class extends EventEmitter {\n  /**\n   * @internal\n   */\n  constructor(start = false) {\n    super();\n    this._started = false;\n    this._frame = 0;\n    this._frameTasks = [];\n    /**\n     * @internal\n     */\n    this.tick = () => {\n      if (!this._started)\n        return;\n      raf(this.tick);\n      this.emit(\"update\", this._frame, LoopTimeStep);\n      this.emit(\"render\", this._frame, LoopTimeStep);\n      this._processFrameTasks();\n      this._frame++;\n    };\n    if (start) {\n      this.start();\n    }\n  }\n  /**\n   * To add a task to be done at the end of a frame.\n   * Tasks added from a task will be ignored. These will run after loop events have been processed.\n   * @internal\n   */\n  addFrameTask(task) {\n    this._frameTasks.push(task);\n  }\n  _processFrameTasks() {\n    var _a;\n    const postEventTasks = this._frameTasks;\n    const length = postEventTasks.length;\n    if (length === 0)\n      return;\n    for (let i = 0; i < length; i++) {\n      (_a = postEventTasks[i]) == null ? void 0 : _a.call(postEventTasks);\n    }\n    postEventTasks.length = 0;\n  }\n  /**\n   * @internal\n   */\n  static set TimeStep(value) {\n    LoopTimeStep = value;\n  }\n  /**\n   * @internal\n   */\n  static get TimeStep() {\n    return LoopTimeStep;\n  }\n  /**\n   * @internal\n   */\n  start() {\n    if (this._started)\n      return this;\n    this._frame = 0;\n    this._started = true;\n    raf(this.tick);\n    return this;\n  }\n  /**\n   * @internal\n   * @deprecated Don\u2019t use `stop` as you could be stopping the MainLoop for others.\n   */\n  stop() {\n    this._started = false;\n    return this;\n  }\n  /**\n   * @internal\n   */\n  get frame() {\n    return this._frame;\n  }\n  /**\n   * @internal\n   */\n  get time() {\n    return this._frame * LoopTimeStep;\n  }\n};\nvar MainLoop = new Loop();\n\n// ../../library/src/render/types/RenderEnvironment.ts\nvar RenderTarget = /* @__PURE__ */ ((RenderTarget2) => {\n  RenderTarget2[\"canvas\"] = \"CANVAS\";\n  RenderTarget2[\"export\"] = \"EXPORT\";\n  RenderTarget2[\"thumbnail\"] = \"THUMBNAIL\";\n  RenderTarget2[\"preview\"] = \"PREVIEW\";\n  return RenderTarget2;\n})(RenderTarget || {});\nvar RenderEnvironment = {\n  target: \"PREVIEW\" /* preview */,\n  zoom: 1\n};\nfunction executeInRenderEnvironment(customEnvironment, task) {\n  const previousEnvironment = Object.assign({}, RenderEnvironment);\n  Object.assign(RenderEnvironment, customEnvironment);\n  const result = task();\n  Object.assign(RenderEnvironment, previousEnvironment);\n  return result;\n}\nfunction setGlobalRenderEnvironment(environment2) {\n  Object.assign(RenderEnvironment, environment2);\n}\nfunction useRenderEnvironment(target, zoom) {\n  let willChangeElements = false;\n  if (RenderEnvironment.target !== target) {\n    RenderEnvironment.target = target;\n    willChangeElements = true;\n  }\n  if (RenderEnvironment.zoom !== zoom) {\n    RenderEnvironment.zoom = zoom;\n  }\n  return { willChangeElements };\n}\n((RenderTarget2) => {\n  function current() {\n    return RenderEnvironment.target;\n  }\n  RenderTarget2.current = current;\n  function hasRestrictions() {\n    const target = RenderEnvironment.target;\n    if (target === \"CANVAS\" /* canvas */)\n      return true;\n    if (target === \"EXPORT\" /* export */)\n      return true;\n    return false;\n  }\n  RenderTarget2.hasRestrictions = hasRestrictions;\n})(RenderTarget || (RenderTarget = {}));\n\n// ../../library/src/animation/Drivers/AnimationDriver.ts\nvar AnimationDriver = class {\n  constructor(animator, updateCallback, finishedCallback) {\n    this.animator = animator;\n    this.updateCallback = updateCallback;\n    this.finishedCallback = finishedCallback;\n    this.update = (frame2, elapsed) => {\n      if (this.animator.isFinished()) {\n        this.finish();\n      } else {\n        const value = this.animator.next(elapsed);\n        this.updateCallback(value);\n      }\n    };\n    if (!this.animator.isReady()) {\n      console.warn(\"AnimationDriver initialized with animator that isn't ready\");\n    }\n  }\n  finish() {\n    if (this.finishedCallback) {\n      this.finishedCallback(this.animator.isFinished());\n    }\n  }\n  isFinished() {\n    return this.animator.isFinished();\n  }\n};\n\n// ../../library/src/animation/Drivers/MainLoopDriver.ts\nvar MainLoopAnimationDriver = class extends AnimationDriver {\n  play() {\n    if (RenderEnvironment.target !== \"PREVIEW\" /* preview */) {\n      this.finishedCallback && this.finishedCallback(false);\n      return;\n    }\n    MainLoop.on(\"update\", this.update);\n  }\n  cancel() {\n    MainLoop.off(\"update\", this.update);\n  }\n  finish() {\n    MainLoop.off(\"update\", this.update);\n    super.finish();\n  }\n};\n\n// ../../library/src/animation/FramerAnimation.ts\nvar DefaultDeprecatedAnimationOptions = {\n  precalculate: false,\n  colorModel: \"husl\" /* HUSL */\n};\nvar FramerAnimation = class {\n  /**\n   * @internal\n   */\n  constructor(target, from, to, animatorClass, options, driverClass = MainLoopAnimationDriver) {\n    /**\n     * @internal\n     */\n    this.playStateSource = \"idle\";\n    /**\n     * @internal\n     */\n    this.readyPromise = Promise.resolve();\n    this.resetFinishedPromise();\n    const deprecatedAnimationOptions = { ...DefaultDeprecatedAnimationOptions };\n    const animatorOptions = {};\n    if (options) {\n      Object.assign(deprecatedAnimationOptions, options);\n      Object.assign(animatorOptions, options);\n    }\n    let interpolation;\n    if (deprecatedAnimationOptions.customInterpolation) {\n      interpolation = deprecatedAnimationOptions.customInterpolation;\n    } else {\n      interpolation = new ValueInterpolation(options);\n    }\n    let animator;\n    if (!animatorClass) {\n      animator = new BezierAnimator({}, interpolation);\n    } else {\n      animator = new animatorClass(animatorOptions, interpolation);\n    }\n    if (deprecatedAnimationOptions.precalculate) {\n      animator = new PrecalculatedAnimator({ animator });\n    }\n    animator.setFrom(from);\n    animator.setTo(to);\n    const updateCallback = (value) => {\n      FramerAnimation.driverCallbackHandler(target, value);\n    };\n    const finishedCallback = (isFinished) => {\n      if (isFinished) {\n        FramerAnimation.driverCallbackHandler(target, to);\n        if (this.playStateSource === \"running\") {\n          this.playStateValue = \"finished\";\n        }\n      }\n    };\n    this.driver = new driverClass(animator, updateCallback, finishedCallback);\n  }\n  /**\n   * @internal\n   */\n  static driverCallbackHandler(target, value) {\n    if (isAnimatable(target) || isMotionValue2(target)) {\n      target.set(value);\n    } else {\n      const targetObject = target;\n      Animatable.transaction((update) => {\n        for (const key7 in targetObject) {\n          const targetValue = targetObject[key7];\n          if (isAnimatable(targetValue)) {\n            update(targetValue, value[key7]);\n          } else {\n            targetObject[key7] = value[key7];\n          }\n        }\n      });\n    }\n  }\n  /**\n   * @internal\n   */\n  get playStateValue() {\n    return this.playStateSource;\n  }\n  /**\n   * @internal\n   */\n  set playStateValue(value) {\n    if (value !== this.playStateSource) {\n      const oldValue = value;\n      this.playStateSource = value;\n      switch (value) {\n        case \"idle\":\n          if (oldValue === \"running\") {\n            this.oncancel && this.oncancel();\n          }\n          this.readyResolve && this.readyResolve();\n          this.resetReadyPromise();\n          break;\n        case \"finished\":\n          if (oldValue === \"idle\") {\n            console.warn(\"Bad state transition\");\n            break;\n          }\n          this.onfinish && this.onfinish();\n          this.finishedResolve && this.finishedResolve();\n          break;\n        case \"running\":\n          this.resetReadyPromise();\n          break;\n      }\n      if (oldValue === \"finished\") {\n        this.resetFinishedPromise();\n      }\n      if (value === \"finished\") {\n        this.playStateValue = \"idle\";\n      }\n    }\n  }\n  /**\n   * @internal\n   */\n  get playState() {\n    return this.playStateValue;\n  }\n  /**\n   * @internal\n   */\n  resetReadyPromise() {\n    this.readyResolve = null;\n    this.readyPromise = new Promise((resolve, reject) => {\n      this.readyResolve = resolve;\n    });\n  }\n  /**\n       * Wait for the animation to be ready to play.\n       * @remarks\n       * ```jsx\n       * const animation = animate.ease(value, 100)\n       * animation.ready().then(() => {\n       *    // Animation is ready\n       * })\n  \n       * // async/await syntax\n       * const animation = animate.ease(value, 100)\n       * await animation.ready()\n       * // Animation is ready\n       * ```\n       * @returns Promise that is resolved when the animation is ready to play\n       * @public\n       */\n  get ready() {\n    return this.readyPromise;\n  }\n  /**\n   * @internal\n   */\n  resetFinishedPromise() {\n    this.finishedResolve = null;\n    this.finishedReject = null;\n    this.finishedPromise = new Promise((resolve, reject) => {\n      this.finishedResolve = resolve;\n      this.finishedReject = reject;\n    });\n    this.finishedPromise.catch((reason) => {\n    });\n  }\n  /**\n   * Wait for the animation to be finished.\n   * @remarks\n   * ```jsx\n   * // async/await syntax\n   * const animation = animate.ease(value, 100)\n   * await animation.finished()\n   * // Animation is finished\n   *\n   *\n   * const animation = animate.ease(value, 100)\n   * animation.ready().then(() => {\n   *    // Animation is finished\n   * })\n   * ```\n   * @returns Promise that is resolved when the animation is ready to play\n   * @public\n   */\n  get finished() {\n    return this.finishedPromise;\n  }\n  /**\n   * @internal\n   */\n  play() {\n    this.playStateValue = \"running\";\n    this.driver.play();\n  }\n  /**\n   * Cancels the animation if it is still running.\n   * @remarks\n   * ```jsx\n   * const animation = animate.ease(value, 100, {duration: 3})\n   * setTimeout(() => animation.cancel(), 500)\n   * ```\n   * @public\n   */\n  cancel() {\n    if (this.playStateValue !== \"running\") {\n      return;\n    }\n    this.driver.cancel();\n    if (this.playState !== \"idle\") {\n      const reason = \"AbortError\";\n      this.finishedReject && this.finishedReject(reason);\n    }\n    this.playStateValue = \"idle\";\n  }\n  /**\n   * @internal\n   */\n  finish() {\n    if (this.playStateSource === \"running\") {\n      this.playStateValue = \"finished\";\n      this.driver.finish();\n    }\n  }\n  /**\n   * @internal\n   */\n  isFinished() {\n    return this.playStateValue === \"finished\";\n  }\n};\n\n// ../../library/src/animation/Motion/MotionSetup.tsx\nimport React16 from \"react\";\n\n// ../../library/src/animation/Motion/autoValueHandlers.ts\nvar correctBorderScale = (axis) => ({\n  correct: (latest, { delta, treeScale }) => {\n    if (typeof latest === \"string\")\n      latest = parseFloat(latest);\n    if (latest === 0)\n      return \"0px\";\n    let corrected = latest;\n    if (delta && treeScale) {\n      corrected = Math.round(latest / delta[axis].scale / treeScale[axis]);\n      corrected = Math.max(corrected, 1);\n    }\n    return corrected + \"px\";\n  }\n});\n\n// ../../library/src/animation/Motion/MotionSetup.tsx\naddScaleCorrector({\n  borderTopWidth: correctBorderScale(\"y\"),\n  borderLeftWidth: correctBorderScale(\"x\"),\n  borderRightWidth: correctBorderScale(\"x\"),\n  borderBottomWidth: correctBorderScale(\"y\")\n});\nfunction MotionSetup({ children }) {\n  return /* @__PURE__ */ React16.createElement(React16.Fragment, null, children);\n}\n\n// ../../library/src/animation/Motion/startAnimation.ts\nfunction startAnimation(_key, value, target, transition = {}) {\n  warnOnce(\n    `\"startAnimation\" is unsupported. Use \"animate\" instead: https://www.framer.com/api/motion/utilities/#animate`\n  );\n  return new Promise((resolve) => {\n    animate(value, target, {\n      ...transition,\n      onComplete: () => resolve()\n    });\n  });\n}\n\n// ../../library/src/animation/animate.ts\nfunction deprecatedAnimate(from, to, animator, options) {\n  deprecationWarning(\"animate()\", \"2.0.0\", \"the new animation API (https://www.framer.com/api/animation/)\");\n  const target = from;\n  let fromValue;\n  if (isAnimatable(from) || isMotionValue2(from)) {\n    fromValue = from.get();\n  } else {\n    fromValue = Animatable.objectToValues(from);\n  }\n  const animation = new FramerAnimation(target, fromValue, to, animator, options);\n  animation.play();\n  return animation;\n}\nvar animate2 = /* @__PURE__ */ (() => {\n  function animate3(from, to, animatorOrTransition, options) {\n    return isAnimatable(from) ? deprecatedAnimate(from, to, animatorOrTransition, options) : animate(from, to, animatorOrTransition);\n  }\n  animate3.spring = (from, to, options) => {\n    return animate3(from, to, SpringAnimator, options);\n  };\n  animate3.bezier = (from, to, options) => {\n    return animate3(from, to, BezierAnimator, options);\n  };\n  animate3.linear = (from, to, options) => {\n    return animate3.bezier(from, to, { ...options, curve: \"linear\" /* Linear */ });\n  };\n  animate3.ease = (from, to, options) => {\n    return animate3.bezier(from, to, { ...options, curve: \"ease\" /* Ease */ });\n  };\n  animate3.easeIn = (from, to, options) => {\n    return animate3.bezier(from, to, { ...options, curve: \"ease-in\" /* EaseIn */ });\n  };\n  animate3.easeOut = (from, to, options) => {\n    return animate3.bezier(from, to, { ...options, curve: \"ease-out\" /* EaseOut */ });\n  };\n  animate3.easeInOut = (from, to, options) => {\n    return animate3.bezier(from, to, { ...options, curve: \"ease-in-out\" /* EaseInOut */ });\n  };\n  return animate3;\n})();\n\n// ../../library/src/components/AnimateLayout/LayoutIdContext.tsx\nimport React17, { useCallback as useCallback3, useContext as useContext2, useMemo, useRef as useRef2 } from \"react\";\n\n// ../../library/src/utils/assert.ts\nfunction assert(condition, ...msg2) {\n  var _a, _b;\n  if (condition)\n    return;\n  const e = Error(\"Assertion Error\" + (msg2.length > 0 ? \": \" + msg2.join(\" \") : \"\"));\n  if (e.stack) {\n    try {\n      const lines = e.stack.split(\"\\n\");\n      if ((_a = lines[1]) == null ? void 0 : _a.includes(\"assert\")) {\n        lines.splice(1, 1);\n        e.stack = lines.join(\"\\n\");\n      } else if ((_b = lines[0]) == null ? void 0 : _b.includes(\"assert\")) {\n        lines.splice(0, 1);\n        e.stack = lines.join(\"\\n\");\n      }\n    } catch {\n    }\n  }\n  throw e;\n}\nfunction assertNever(x, error) {\n  throw error || new Error(x ? `Unexpected value: ${x}` : \"Application entered invalid state\");\n}\n\n// ../../library/src/components/AnimateLayout/LayoutIdContext.tsx\nvar LayoutIdContext = React17.createContext({\n  getLayoutId: (args) => null,\n  persistLayoutIdCache: () => {\n  },\n  top: false,\n  enabled: true\n});\nfunction LayoutIdProvider({ children }) {\n  const context = useContext2(LayoutIdContext);\n  if (context.top)\n    return /* @__PURE__ */ React17.createElement(React17.Fragment, null, children);\n  const cache3 = useRef2({\n    // When we provide a layoutId for a node based on it's first\n    // duplicatedFrom id, we save it's layoutId mapped to it's actual id.\n    // Future screen's nodes will check this cache first, to see if they've\n    // previously been assigned a layoutId, or if any of there other\n    // duplicatedFrom ids matched a node that was previously assigned a\n    // layoutId.\n    byId: {},\n    byName: {},\n    // When we navigate from screens that were duplicated from a future\n    // screen, to that future screen, we want to do a reverse lookup on the\n    // last duplicatedFrom id, rather than the id. We need to keep them\n    // separate so they don't overlap.\n    byLastId: {},\n    byPossibleId: {},\n    byLastName: {},\n    byLayoutId: {},\n    // When we don't have a cached layoutId for all duplicatedFrom ids, we\n    // need to increment and save it so that we don't create clashing\n    // layoutIds. We also need to reset name counts between screens, so we\n    // record those separately.\n    count: {\n      byId: {},\n      byName: {}\n    }\n  });\n  const screen = useRef2({\n    byId: {},\n    byName: {},\n    byLastId: {},\n    byPossibleId: {},\n    byLastName: {},\n    byLayoutId: {}\n  });\n  const usedIds = useRef2(/* @__PURE__ */ new Set()).current;\n  const getLayoutId = useCallback3(({ id, name, duplicatedFrom }) => {\n    var _a;\n    if (!id)\n      return null;\n    const cacheKey = name ? \"byName\" : \"byId\";\n    const previousId = cache3.current[cacheKey][id];\n    if (previousId)\n      return previousId;\n    const nodeIdentifier = name || id;\n    if (!duplicatedFrom && !usedIds.has(nodeIdentifier) && (!cache3.current.byLayoutId[nodeIdentifier] || cache3.current.byLayoutId[nodeIdentifier] === nodeIdentifier)) {\n      if (cache3.current.count[cacheKey][nodeIdentifier] === void 0) {\n        cache3.current.count[cacheKey][nodeIdentifier] = 0;\n        cache3.current.byLayoutId[nodeIdentifier] = nodeIdentifier;\n        screen.current[cacheKey][id] = nodeIdentifier;\n      }\n      usedIds.add(nodeIdentifier);\n      return nodeIdentifier;\n    }\n    let possibleMatch = void 0;\n    if (duplicatedFrom == null ? void 0 : duplicatedFrom.length) {\n      for (let index = duplicatedFrom.length - 1; index >= 0; index--) {\n        const duplicatedId = duplicatedFrom[index];\n        assert(!!duplicatedId, `duplicatedId must be defined`);\n        const match = cache3.current[cacheKey][duplicatedId];\n        const byLastIdMatch = cache3.current.byLastId[duplicatedId];\n        if (byLastIdMatch && !possibleMatch) {\n          const matchedLayoutId = cache3.current.byLayoutId[byLastIdMatch];\n          const shouldUseNamedLastIdMatch = !matchedLayoutId || matchedLayoutId === name;\n          if (byLastIdMatch && !usedIds.has(byLastIdMatch) && (name ? shouldUseNamedLastIdMatch : true)) {\n            possibleMatch = [byLastIdMatch, duplicatedId];\n          }\n        }\n        const previousLayoutId = match ? cache3.current.byLayoutId[match] : void 0;\n        const shouldUseNamedMatch = !previousLayoutId || previousLayoutId === name;\n        if (match && !usedIds.has(match) && (name ? shouldUseNamedMatch : true)) {\n          screen.current[cacheKey][id] = match;\n          screen.current.byLastId[duplicatedId] = match;\n          usedIds.add(match);\n          return match;\n        }\n      }\n    }\n    const last = cache3.current.byLastId[id];\n    if (last && !usedIds.has(last)) {\n      usedIds.add(last);\n      screen.current.byId[id] = last;\n      return last;\n    }\n    if (possibleMatch) {\n      const [match, duplicatedId] = possibleMatch;\n      screen.current[cacheKey][id] = match;\n      screen.current.byLastId[duplicatedId] = match;\n      usedIds.add(match);\n      return match;\n    }\n    const possible = cache3.current.byPossibleId[id];\n    if (possible && !usedIds.has(possible)) {\n      usedIds.add(possible);\n      screen.current.byId[id] = possible;\n      return possible;\n    }\n    const rootDuplicatedId = duplicatedFrom == null ? void 0 : duplicatedFrom[0];\n    const identifier = name || rootDuplicatedId || id;\n    const value = ((_a = cache3.current.count[cacheKey][identifier]) != null ? _a : -1) + 1;\n    const { layoutId, value: nextValue } = nextLayoutId(identifier, value, usedIds);\n    cache3.current.count[cacheKey][identifier] = nextValue;\n    screen.current[cacheKey][id] = layoutId;\n    if (duplicatedFrom == null ? void 0 : duplicatedFrom.length) {\n      if (!name) {\n        const lastId = duplicatedFrom[duplicatedFrom.length - 1];\n        if (lastId) {\n          screen.current.byLastId[lastId] = layoutId;\n        }\n        if (duplicatedFrom.length > 1) {\n          for (let index = 0; index < duplicatedFrom.length - 1; index++) {\n            const possibleId = duplicatedFrom[index];\n            if (possibleId === void 0)\n              continue;\n            if (!screen.current.byPossibleId[possibleId]) {\n              screen.current.byPossibleId[possibleId] = layoutId;\n            }\n          }\n        }\n      }\n    }\n    screen.current.byLayoutId[layoutId] = nodeIdentifier;\n    usedIds.add(layoutId);\n    return layoutId;\n  }, []);\n  const persistLayoutIdCache = useCallback3(() => {\n    cache3.current = {\n      byId: {\n        ...cache3.current.byId,\n        ...screen.current.byId\n      },\n      byLastId: {\n        ...cache3.current.byLastId,\n        ...screen.current.byLastId\n      },\n      byPossibleId: {\n        ...cache3.current.byPossibleId,\n        ...screen.current.byPossibleId\n      },\n      byName: {\n        ...cache3.current.byName,\n        ...screen.current.byName\n      },\n      byLastName: { ...cache3.current.byLastName, ...screen.current.byLastName },\n      byLayoutId: { ...cache3.current.byLayoutId, ...screen.current.byLayoutId },\n      // Unlike the count.byId, we need to reset the count.byName because\n      // named layers might not have duplicatedFrom ids (e.g. imported\n      // from Figma). When we can use duplicatedFrom ids to check if an id\n      // was assigned on a previous screen, we don't increment the count,\n      // which means that the count only increments for new items, and\n      // only increments on a new screen if the node is new. Since named\n      // layers need to always match in some way between screens, we reset\n      // the count so that the second named layer on a second screen is\n      // always name-1 if it doesn't have any duplicatedFrom ids.\n      count: {\n        ...cache3.current.count,\n        byName: {}\n      }\n    };\n    screen.current = {\n      byId: {},\n      byName: {},\n      byLastId: {},\n      byPossibleId: {},\n      byLastName: {},\n      byLayoutId: {}\n    };\n    usedIds.clear();\n  }, []);\n  const contextValue = useRef2({\n    getLayoutId,\n    persistLayoutIdCache,\n    top: true,\n    enabled: true\n  }).current;\n  return /* @__PURE__ */ React17.createElement(LayoutIdContext.Provider, { value: contextValue }, children);\n}\nfunction nextLayoutId(identifier, initialValue, usedIds) {\n  let value = initialValue;\n  let layoutId = value ? `${identifier}-${value}` : identifier;\n  while (usedIds.has(layoutId)) {\n    value++;\n    layoutId = `${identifier}-${value}`;\n  }\n  return { layoutId, value };\n}\nfunction AutomaticLayoutIds({ enabled = true, ...props }) {\n  const context = useContext2(LayoutIdContext);\n  const contextValue = useMemo(() => {\n    return {\n      ...context,\n      enabled\n    };\n  }, [enabled]);\n  return /* @__PURE__ */ React17.createElement(LayoutIdContext.Provider, { ...props, value: contextValue });\n}\n\n// ../../library/src/components/Device/Device.tsx\nimport React19, { Component as Component2 } from \"react\";\n\n// ../../library/src/components/utils/useConstant.ts\nimport { useRef as useRef3 } from \"react\";\nfunction useConstant(init) {\n  const ref = useRef3(null);\n  if (ref.current === null) {\n    ref.current = init();\n  }\n  return ref.current;\n}\n\n// ../../library/src/components/Device/ErrorPlaceholder.tsx\nimport React18 from \"react\";\nvar baseStyle = {\n  background: void 0,\n  display: \"flex\",\n  flexDirection: \"column\",\n  justifyContent: \"center\",\n  alignItems: \"center\",\n  lineHeight: \"1.4em\",\n  textOverflow: \"ellipsis\",\n  overflow: \"hidden\",\n  minHeight: 0,\n  width: \"100%\",\n  height: \"100%\"\n};\nvar errorStyle = {\n  ...baseStyle,\n  border: \"1px solid rgba(149, 149, 149, 0.15)\",\n  borderRadius: 6,\n  fontSize: \"12px\",\n  backgroundColor: \"rgba(149, 149, 149, 0.1)\",\n  color: \"#a5a5a5\"\n};\nvar textStyle = {\n  overflow: \"hidden\",\n  whiteSpace: \"nowrap\",\n  textOverflow: \"ellipsis\",\n  maxWidth: \"100%\",\n  flexShrink: 0,\n  padding: `0 10px`\n};\nvar titleStyle = {\n  ...textStyle,\n  // TODO: Use Fresco tokens for this.\n  fontWeight: 500\n};\nvar messageStyle = {\n  ...textStyle,\n  whiteSpace: \"pre\",\n  maxHeight: \"calc(50% - calc(20px * var(--framerInternalCanvas-canvasPlaceholderContentScaleFactor, 1)))\",\n  WebkitMaskImage: \"linear-gradient(to bottom, black 80%, transparent 100%)\"\n};\nfunction ErrorPlaceholder(props) {\n  const { error, file } = props;\n  const title = file ? `Error in ${stripSlash(file)}` : \"Error\";\n  const message = error instanceof Error ? error.message : \"\" + error;\n  return /* @__PURE__ */ React18.createElement(\"div\", { style: errorStyle }, /* @__PURE__ */ React18.createElement(\"div\", { className: \"text\", style: titleStyle }, title), message && /* @__PURE__ */ React18.createElement(\"div\", { className: \"text\", style: messageStyle }, message));\n}\nfunction stripSlash(title) {\n  if (title.startsWith(\"./\")) {\n    return title.replace(\"./\", \"\");\n  }\n  return title;\n}\n\n// ../../library/src/components/Device/Device.tsx\nfunction getScaleData(deviceOptions, containerSize) {\n  const { componentWidth, componentHeight } = getComponentSize(deviceOptions);\n  const scaleX = containerSize.width / componentWidth;\n  const scaleY = containerSize.height / componentHeight;\n  const scale = Math.min(scaleX, scaleY, 1);\n  let screenScalePixelFix = 1;\n  if (scale < 1) {\n    const actualScreenWidth = deviceOptions.screenWidth * scale;\n    const desiredScreenWidth = actualScreenWidth + 1;\n    const screenScaleX = desiredScreenWidth / actualScreenWidth;\n    const actualScreenHeight = deviceOptions.screenHeight * scale;\n    const desiredScreenHeight = actualScreenHeight + 1;\n    const screenScaleY = desiredScreenHeight / actualScreenHeight;\n    const screenScale = Math.max(screenScaleX, screenScaleY);\n    screenScalePixelFix = screenScale;\n  }\n  return {\n    scale,\n    screenScalePixelFix,\n    scaledComponentWidth: componentWidth * scale,\n    scaledComponentHeight: componentHeight * scale,\n    scaledDeviceWidth: deviceOptions.deviceWidth * scale,\n    scaledDeviceHeight: deviceOptions.deviceHeight * scale\n  };\n}\nfunction getColorsFromTheme(theme, type) {\n  if (type === \"none\")\n    return {};\n  if (!theme)\n    return {};\n  const isDarkTheme = theme === \"dark\";\n  return {\n    shadowColor: isDarkTheme ? \"rgba(0, 0, 0, 0.55)\" : \"rgba(0, 0, 0, 0.15)\",\n    bezelColor: isDarkTheme ? \"#222\" : \"#fff\",\n    bezelShadeColor: isDarkTheme ? \"#000\" : \"rgba(0, 0, 0, 0.2)\",\n    screenColor: isDarkTheme ? \"#333\" : \"#eee\"\n  };\n}\nvar ErrorBoundary2 = class extends Component2 {\n  constructor() {\n    super(...arguments);\n    this.state = {};\n  }\n  componentDidCatch(error, info) {\n    let stack = info.componentStack.split(\"\\n\").filter((line) => line.length !== 0);\n    let currentIndex = 0;\n    for (const line of stack) {\n      if (line.startsWith(`    in ${this.constructor.name}`)) {\n        break;\n      }\n      currentIndex++;\n    }\n    stack = stack.slice(0, currentIndex);\n    this.setState({\n      lastError: {\n        error,\n        componentStack: stack\n      }\n    });\n  }\n  componentDidUpdate(_, prevState) {\n    if (this.state.lastError === void 0)\n      return;\n    if (prevState.lastError === this.state.lastError)\n      this.setState({ lastError: void 0 });\n  }\n  render() {\n    if (this.state.lastError) {\n      return /* @__PURE__ */ React19.createElement(ErrorPlaceholder, { error: this.state.lastError.error.message, file: \"Prototype\" });\n    }\n    return this.props.children;\n  }\n};\nfunction Device({\n  canResize = false,\n  children,\n  ResizeObserver: ResizeObserver2 = safeWindow.ResizeObserver,\n  ...options\n}) {\n  var _a, _b;\n  const optionsRef = React19.useRef(void 0);\n  if (optionsRef.current === void 0)\n    optionsRef.current = options;\n  const deviceAppearance = (_a = options.deviceOptions) == null ? void 0 : _a.appearance.type;\n  const scaleDataRef = React19.useRef();\n  const containerRef = React19.useRef(null);\n  const deviceRef = React19.useRef(null);\n  const screenRef = React19.useRef(null);\n  const updateImperativeScale = ({ scale, screenScalePixelFix }) => {\n    if (!scaleDataRef.current || !deviceRef.current || !screenRef.current)\n      return;\n    deviceRef.current.style.transform = `scale(${scale})`;\n    screenRef.current.style.transform = `scale(${screenScalePixelFix})`;\n  };\n  if (scaleDataRef.current === void 0 && options.deviceOptions && options.scaleTo && options.scaleTo !== \"dynamic\") {\n    const scale = scaleDataRef.current = getScaleData(options.deviceOptions, options.scaleTo);\n    updateImperativeScale(scale);\n  }\n  const invertScale = React19.useCallback(\n    (point) => {\n      if (!scaleDataRef.current)\n        return point;\n      const { scale = 1 } = scaleDataRef.current;\n      return { x: point.x / scale, y: point.y / scale };\n    },\n    [scaleDataRef]\n  );\n  const updateScale = React19.useCallback(() => {\n    var _a2;\n    const { deviceOptions, scaleTo, onScaleChange } = (_a2 = optionsRef.current) != null ? _a2 : {};\n    if (!deviceOptions || !scaleTo || scaleTo !== \"dynamic\" || !containerRef.current)\n      return;\n    if (containerRef.current.offsetWidth === 0 || containerRef.current.offsetHeight === 0)\n      return;\n    const scaleData = scaleDataRef.current = getScaleData(deviceOptions, {\n      width: containerRef.current.offsetWidth,\n      height: containerRef.current.offsetHeight\n    });\n    onScaleChange == null ? void 0 : onScaleChange(scaleData);\n    updateImperativeScale(scaleData);\n  }, []);\n  const observer = useConstant(() => {\n    if (!ResizeObserver2) {\n      return;\n    }\n    return new ResizeObserver2(() => updateScale());\n  });\n  React19.useLayoutEffect(() => {\n    optionsRef.current = {\n      deviceOptions: options.deviceOptions,\n      onScaleChange: options.onScaleChange,\n      overrideTheme: options.overrideTheme,\n      scaleTo: options.scaleTo\n    };\n  }, [options.deviceOptions, options.onScaleChange, options.overrideTheme, options.scaleTo]);\n  React19.useLayoutEffect(() => {\n    updateScale();\n  }, [updateScale]);\n  React19.useEffect(() => {\n    if (!observer || !containerRef.current)\n      return;\n    observer.observe(containerRef.current);\n    return () => observer.disconnect();\n  }, [observer]);\n  const { containerStyle, handStyle, deviceStyle, deviceImageStyle, screenStyle } = getDeviceStyle(options);\n  const resizeStyles = canResize ? {\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\",\n    height: \"100%\"\n  } : {};\n  const screenBackground = ((_b = options.deviceOptions) == null ? void 0 : _b.transparentBackground) ? \"transparent\" : \"white\";\n  return /* @__PURE__ */ React19.createElement(\"div\", { style: { ...containerStyle, ...resizeStyles }, ref: containerRef }, /* @__PURE__ */ React19.createElement(\"div\", { style: { ...deviceStyle }, ref: deviceRef }, handStyle && /* @__PURE__ */ React19.createElement(\"div\", { style: handStyle }), deviceAppearance === \"external-clay\" && deviceImageStyle && /* @__PURE__ */ React19.createElement(\"div\", { style: deviceImageStyle }), /* @__PURE__ */ React19.createElement(\n    \"div\",\n    {\n      style: {\n        ...screenStyle,\n        pointerEvents: void 0,\n        backgroundColor: children ? screenBackground : screenStyle.backgroundColor\n      },\n      ref: screenRef\n    },\n    /* @__PURE__ */ React19.createElement(MotionConfig, { transformPagePoint: invertScale }, /* @__PURE__ */ React19.createElement(ErrorBoundary2, null, children))\n  ), deviceAppearance === \"realistic\" && deviceImageStyle && /* @__PURE__ */ React19.createElement(\"div\", { style: deviceImageStyle })));\n}\nvar DEVICE_PADDING = 45;\nvar HAND_IMG_WIDTH = 2400;\nvar HAND_IMG_HEIGHT = 3740;\nvar HAND_IMG_GAP_WIDTH = 859;\nvar HAND_IMG_GAP_LEFT = 772;\nvar HAND_IMG_GAP_BOTTOM = 992 - 5;\nvar noDeviceSize = { componentWidth: 500, componentHeight: 500 };\nfunction getComponentSize(options) {\n  if (!options)\n    return noDeviceSize;\n  const { deviceWidth, deviceHeight, noPadding } = options;\n  const padding = noPadding ? 0 : DEVICE_PADDING * 2;\n  return {\n    componentWidth: deviceWidth + padding,\n    componentHeight: deviceHeight + padding\n  };\n}\nfunction getDeviceStyle({ scaleTo, deviceOptions, overrideTheme } = {}) {\n  var _a, _b, _c;\n  const noDeviceStyle = { containerStyle: {}, deviceStyle: {}, screenStyle: {} };\n  if (!deviceOptions)\n    return noDeviceStyle;\n  const { componentWidth, componentHeight } = getComponentSize(deviceOptions);\n  const overriddenColors = getColorsFromTheme(overrideTheme, deviceOptions.appearance.type);\n  const {\n    deviceWidth,\n    deviceHeight,\n    appearance,\n    screenWidth,\n    screenHeight,\n    screenMaxHeight,\n    screenOffsetTop,\n    screenOffsetLeft,\n    screenRadius,\n    screenMaskImage,\n    screenColor,\n    shadow,\n    background,\n    transparentBackground,\n    hand\n  } = deviceOptions;\n  const boxShadows = [];\n  if (appearance.type === \"clay\" && shadow) {\n    boxShadows.push(shadow);\n  }\n  let bezelStyle = void 0;\n  if (appearance.type === \"clay\") {\n    bezelStyle = {\n      borderRadius: appearance.bezelRadius,\n      backgroundColor: overriddenColors.bezelColor || appearance.bezelColor\n    };\n    if (overriddenColors.bezelShadeColor || appearance.bezelShadeColor) {\n      boxShadows.push(`inset 0 0 15px ${overriddenColors.bezelShadeColor || appearance.bezelShadeColor}`);\n    }\n  }\n  const handOffsetLeft = (_a = hand == null ? void 0 : hand.offsetLeft) != null ? _a : 0;\n  const handOffsetRight = (_b = hand == null ? void 0 : hand.offsetRight) != null ? _b : 0;\n  const handOffsetBottom = (_c = hand == null ? void 0 : hand.offsetBottom) != null ? _c : 0;\n  const handScale = (deviceWidth - handOffsetLeft - handOffsetRight) / HAND_IMG_GAP_WIDTH;\n  return {\n    containerStyle: {\n      width: scaleTo ? \"100%\" : componentWidth,\n      height: scaleTo ? \"100%\" : componentHeight,\n      flex: \"1 1 0\",\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      overflow: \"hidden\",\n      background\n    },\n    handStyle: hand && {\n      width: HAND_IMG_WIDTH * handScale,\n      height: HAND_IMG_HEIGHT * handScale,\n      position: \"absolute\",\n      pointerEvents: \"none\",\n      backgroundImage: `url(\"${hand.imageUrl}\")`,\n      backgroundSize: \"contain\",\n      backgroundRepeat: \"no-repeat\",\n      left: -HAND_IMG_GAP_LEFT * handScale + handOffsetLeft,\n      bottom: -HAND_IMG_GAP_BOTTOM * handScale + handOffsetBottom\n    },\n    deviceStyle: {\n      width: deviceWidth,\n      height: deviceHeight,\n      flexShrink: 0,\n      position: \"absolute\",\n      boxShadow: boxShadows.join(\",\"),\n      ...bezelStyle\n    },\n    deviceImageStyle: appearance.type === \"realistic\" || appearance.type === \"external-clay\" ? {\n      width: appearance.imageWidth,\n      height: appearance.imageHeight,\n      position: \"absolute\",\n      pointerEvents: \"none\",\n      overflow: \"hidden\",\n      backgroundImage: `url(\"${appearance.imageUrl}\")`,\n      backgroundPosition: \"top left\",\n      backgroundRepeat: \"no-repeat\",\n      backgroundSize: `${appearance.imageWidth}px ${appearance.imageHeight}px`,\n      // Rotate 90 degrees counter-clockwise around (0,0), then move the\n      // result down into the viewport (rightmost transform is applied first).\n      transformOrigin: \"top left\",\n      transform: appearance.rotateImage ? `translateY(${appearance.imageWidth}px) rotate(-90deg)` : void 0\n    } : void 0,\n    screenStyle: {\n      width: screenWidth,\n      height: screenHeight,\n      maxHeight: screenMaxHeight,\n      position: \"absolute\",\n      top: screenOffsetTop,\n      left: screenOffsetLeft,\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      overflow: \"hidden\",\n      borderRadius: screenRadius,\n      backgroundColor: overriddenColors.screenColor || screenColor,\n      ...screenMaskImage && {\n        maskImage: screenMaskImage,\n        WebkitMaskImage: screenMaskImage,\n        maskSize: \"contain\",\n        WebkitMaskSize: \"contain\"\n      }\n    }\n  };\n}\n\n// ../../library/src/components/Device/DeviceCodeComponent.tsx\nimport React22 from \"react\";\n\n// ../../library/src/render/types/NewConstraints.tsx\nimport React20 from \"react\";\n\n// ../../library/src/render/utils/isFiniteNumber.ts\nfunction isFiniteNumber(value) {\n  return typeof value === \"number\" && isFinite(value);\n}\nfunction finiteNumber(value) {\n  return isFiniteNumber(value) ? value : void 0;\n}\n\n// ../../library/src/utils/type-guards.ts\nfunction isEmpty(obj) {\n  return !obj || !Object.keys(obj).length && obj.constructor === Object;\n}\nfunction isReactElement(test) {\n  return typeof test !== \"string\" && typeof test !== \"number\";\n}\nfunction isReactChild(test) {\n  return test !== null && typeof test !== \"undefined\" && typeof test !== \"boolean\" && !isEmpty(test);\n}\n\n// ../../library/src/render/types/Rect.ts\nvar Rect;\n((Rect2) => {\n  function equals(rect, other) {\n    if (rect === other)\n      return true;\n    if (!rect || !other)\n      return false;\n    return rect.x === other.x && rect.y === other.y && rect.width === other.width && rect.height === other.height;\n  }\n  Rect2.equals = equals;\n  Rect2.atOrigin = (size2) => {\n    return { ...size2, x: 0, y: 0 };\n  };\n  Rect2.fromTwoPoints = (a, b) => {\n    return {\n      x: Math.min(a.x, b.x),\n      y: Math.min(a.y, b.y),\n      width: Math.abs(a.x - b.x),\n      height: Math.abs(a.y - b.y)\n    };\n  };\n  Rect2.fromRect = (rect) => {\n    return {\n      x: rect.left,\n      y: rect.top,\n      width: rect.right - rect.left,\n      height: rect.bottom - rect.top\n    };\n  };\n  Rect2.multiply = (rect, n) => {\n    return {\n      x: rect.x * n,\n      y: rect.y * n,\n      width: rect.width * n,\n      height: rect.height * n\n    };\n  };\n  Rect2.divide = (rect, n) => {\n    return (0, Rect2.multiply)(rect, 1 / n);\n  };\n  Rect2.offset = (rect, delta2) => {\n    const xOffset = typeof delta2.x === \"number\" ? delta2.x : 0;\n    const yOffset = typeof delta2.y === \"number\" ? delta2.y : 0;\n    return {\n      ...rect,\n      x: rect.x + xOffset,\n      y: rect.y + yOffset\n    };\n  };\n  function inflate(rect, value) {\n    if (value === 0)\n      return rect;\n    const doubleValue = 2 * value;\n    return {\n      x: rect.x - value,\n      y: rect.y - value,\n      width: rect.width + doubleValue,\n      height: rect.height + doubleValue\n    };\n  }\n  Rect2.inflate = inflate;\n  Rect2.pixelAligned = (rect) => {\n    const x = Math.round(rect.x);\n    const y = Math.round(rect.y);\n    const rectMaxX = Math.round(rect.x + rect.width);\n    const rectMaxY = Math.round(rect.y + rect.height);\n    const width = Math.max(rectMaxX - x, 0);\n    const height = Math.max(rectMaxY - y, 0);\n    return { x, y, width, height };\n  };\n  Rect2.halfPixelAligned = (rect) => {\n    const x = Math.round(rect.x * 2) / 2;\n    const y = Math.round(rect.y * 2) / 2;\n    const rectMaxX = Math.round((rect.x + rect.width) * 2) / 2;\n    const rectMaxY = Math.round((rect.y + rect.height) * 2) / 2;\n    const width = Math.max(rectMaxX - x, 1);\n    const height = Math.max(rectMaxY - y, 1);\n    return { x, y, width, height };\n  };\n  Rect2.round = (rect, decimals = 0) => {\n    const x = roundedNumber(rect.x, decimals);\n    const y = roundedNumber(rect.y, decimals);\n    const width = roundedNumber(rect.width, decimals);\n    const height = roundedNumber(rect.height, decimals);\n    return { x, y, width, height };\n  };\n  Rect2.roundToOutside = (rect) => {\n    const x = Math.floor(rect.x);\n    const y = Math.floor(rect.y);\n    const rectMaxX = Math.ceil(rect.x + rect.width);\n    const rectMaxY = Math.ceil(rect.y + rect.height);\n    const width = Math.max(rectMaxX - x, 0);\n    const height = Math.max(rectMaxY - y, 0);\n    return { x, y, width, height };\n  };\n  Rect2.minX = (rect) => {\n    return rect.x;\n  };\n  Rect2.maxX = (rect) => {\n    return rect.x + rect.width;\n  };\n  Rect2.minY = (rect) => {\n    return rect.y;\n  };\n  Rect2.maxY = (rect) => {\n    return rect.y + rect.height;\n  };\n  Rect2.positions = (rect) => {\n    return {\n      minX: rect.x,\n      midX: rect.x + rect.width / 2,\n      maxX: (0, Rect2.maxX)(rect),\n      minY: rect.y,\n      midY: rect.y + rect.height / 2,\n      maxY: (0, Rect2.maxY)(rect)\n    };\n  };\n  Rect2.center = (rect) => {\n    return {\n      x: rect.x + rect.width / 2,\n      y: rect.y + rect.height / 2\n    };\n  };\n  Rect2.fromPoints = (ps) => {\n    const xValues = ps.map((point) => point.x);\n    const yValues = ps.map((point) => point.y);\n    const x = Math.min(...xValues);\n    const y = Math.min(...yValues);\n    const width = Math.max(...xValues) - x;\n    const height = Math.max(...yValues) - y;\n    return { x, y, width, height };\n  };\n  Rect2.merge = (...rect) => {\n    const min = {\n      x: Math.min(...rect.map(Rect2.minX)),\n      y: Math.min(...rect.map(Rect2.minY))\n    };\n    const max = {\n      x: Math.max(...rect.map(Rect2.maxX)),\n      y: Math.max(...rect.map(Rect2.maxY))\n    };\n    return (0, Rect2.fromTwoPoints)(min, max);\n  };\n  Rect2.intersection = (rect1, rect2) => {\n    const x = Math.max(rect1.x, rect2.x);\n    const x2 = Math.min(rect1.x + rect1.width, rect2.x + rect2.width);\n    const y = Math.max(rect1.y, rect2.y);\n    const y2 = Math.min(rect1.y + rect1.height, rect2.y + rect2.height);\n    return { x, y, width: x2 - x, height: y2 - y };\n  };\n  Rect2.points = (rect) => {\n    return [\n      { x: (0, Rect2.minX)(rect), y: (0, Rect2.minY)(rect) },\n      { x: (0, Rect2.minX)(rect), y: (0, Rect2.maxY)(rect) },\n      { x: (0, Rect2.maxX)(rect), y: (0, Rect2.minY)(rect) },\n      { x: (0, Rect2.maxX)(rect), y: (0, Rect2.maxY)(rect) }\n    ];\n  };\n  Rect2.transform = (rect, matrix) => {\n    const { x: x1, y: y1 } = matrix.transformPoint({ x: rect.x, y: rect.y });\n    const { x: x2, y: y2 } = matrix.transformPoint({ x: rect.x + rect.width, y: rect.y });\n    const { x: x3, y: y3 } = matrix.transformPoint({ x: rect.x + rect.width, y: rect.y + rect.height });\n    const { x: x4, y: y4 } = matrix.transformPoint({ x: rect.x, y: rect.y + rect.height });\n    const x = Math.min(x1, x2, x3, x4);\n    const width = Math.max(x1, x2, x3, x4) - x;\n    const y = Math.min(y1, y2, y3, y4);\n    const height = Math.max(y1, y2, y3, y4) - y;\n    return { x, y, width, height };\n  };\n  Rect2.containsPoint = (rect, point) => {\n    if (point.x < (0, Rect2.minX)(rect)) {\n      return false;\n    }\n    if (point.x > (0, Rect2.maxX)(rect)) {\n      return false;\n    }\n    if (point.y < (0, Rect2.minY)(rect)) {\n      return false;\n    }\n    if (point.y > (0, Rect2.maxY)(rect)) {\n      return false;\n    }\n    if (isNaN(rect.x)) {\n      return false;\n    }\n    if (isNaN(rect.y)) {\n      return false;\n    }\n    return true;\n  };\n  Rect2.containsRect = (rectA, rectB) => {\n    for (const point of (0, Rect2.points)(rectB)) {\n      if (!(0, Rect2.containsPoint)(rectA, point)) {\n        return false;\n      }\n    }\n    return true;\n  };\n  Rect2.toCSS = (rect) => {\n    return {\n      display: \"block\",\n      transform: `translate(${rect.x}px, ${rect.y}px)`,\n      width: `${rect.width}px`,\n      height: `${rect.height}px`\n    };\n  };\n  Rect2.inset = (rect, n) => {\n    return {\n      x: rect.x + n,\n      y: rect.y + n,\n      width: Math.max(0, rect.width - 2 * n),\n      height: Math.max(0, rect.height - 2 * n)\n    };\n  };\n  Rect2.intersects = (rectA, rectB) => {\n    return !(rectB.x >= (0, Rect2.maxX)(rectA) || (0, Rect2.maxX)(rectB) <= rectA.x || rectB.y >= (0, Rect2.maxY)(rectA) || (0, Rect2.maxY)(rectB) <= rectA.y);\n  };\n  Rect2.overlapHorizontally = (rectA, rectB) => {\n    const aMax = Rect2.maxX(rectA);\n    const bMax = Rect2.maxX(rectB);\n    return aMax > rectB.x && bMax > rectA.x;\n  };\n  Rect2.overlapVertically = (rectA, rectB) => {\n    const aMax = Rect2.maxY(rectA);\n    const bMax = Rect2.maxY(rectB);\n    return aMax > rectB.y && bMax > rectA.y;\n  };\n  Rect2.doesNotIntersect = (rect, rects) => {\n    return rects.find((comparingRect) => {\n      return Rect2.intersects(comparingRect, rect);\n    }) === void 0;\n  };\n  Rect2.isEqual = (rectA, rectB) => {\n    return Rect2.equals(rectA, rectB);\n  };\n  Rect2.cornerPoints = (rect) => {\n    const rectMinX = rect.x;\n    const rectMaxX = rect.x + rect.width;\n    const rectMinY = rect.y;\n    const rectMaxY = rect.y + rect.height;\n    const corner1 = { x: rectMinX, y: rectMinY };\n    const corner2 = { x: rectMaxX, y: rectMinY };\n    const corner3 = { x: rectMaxX, y: rectMaxY };\n    const corner4 = { x: rectMinX, y: rectMaxY };\n    return [corner1, corner2, corner3, corner4];\n  };\n  Rect2.midPoints = (rect) => {\n    const rectMinX = rect.x;\n    const rectMidX = rect.x + rect.width / 2;\n    const rectMaxX = rect.x + rect.width;\n    const rectMinY = rect.y;\n    const rectMidY = rect.y + rect.height / 2;\n    const rectMaxY = rect.y + rect.height;\n    const top = { x: rectMidX, y: rectMinY };\n    const right = { x: rectMaxX, y: rectMidY };\n    const bottom = { x: rectMidX, y: rectMaxY };\n    const left = { x: rectMinX, y: rectMidY };\n    return [top, right, bottom, left];\n  };\n  Rect2.pointDistance = (rect, point) => {\n    let x = 0;\n    let y = 0;\n    if (point.x < rect.x) {\n      x = rect.x - point.x;\n    } else if (point.x > Rect2.maxX(rect)) {\n      x = point.x - Rect2.maxX(rect);\n    }\n    if (point.y < rect.y) {\n      y = rect.y - point.y;\n    } else if (point.y > Rect2.maxY(rect)) {\n      y = point.y - Rect2.maxY(rect);\n    }\n    return Point.distance({ x, y }, { x: 0, y: 0 });\n  };\n  const fromAnyDefaults = {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  };\n  Rect2.fromAny = (rect, defaults = fromAnyDefaults) => {\n    return {\n      x: rect.x || defaults.x,\n      y: rect.y || defaults.y,\n      width: rect.width || defaults.width,\n      height: rect.height || defaults.height\n    };\n  };\n  Rect2.delta = (a, b) => {\n    const pointA = { x: (0, Rect2.minX)(a), y: (0, Rect2.minY)(a) };\n    const pointB = { x: (0, Rect2.minX)(b), y: (0, Rect2.minY)(b) };\n    return {\n      x: pointA.x - pointB.x,\n      y: pointA.y - pointB.y\n    };\n  };\n  Rect2.withMinSize = (rect, minSize) => {\n    const { width: minWidth, height: minHeight } = minSize;\n    const diffX = rect.width - minWidth;\n    const diffY = rect.height - minHeight;\n    return {\n      width: Math.max(rect.width, minWidth),\n      height: Math.max(rect.height, minHeight),\n      x: rect.width < minWidth ? rect.x + diffX / 2 : rect.x,\n      y: rect.height < minHeight ? rect.y + diffY / 2 : rect.y\n    };\n  };\n  Rect2.rebaseRectOnto = (rect, anchorRect, direction, alignment) => {\n    const rebasedRect = { ...rect };\n    switch (direction) {\n      case \"bottom\":\n      case \"top\":\n        switch (alignment) {\n          case \"start\":\n            rebasedRect.x = anchorRect.x;\n            break;\n          case \"center\":\n            rebasedRect.x = anchorRect.x + anchorRect.width / 2 - rect.width / 2;\n            break;\n          case \"end\":\n            rebasedRect.x = anchorRect.x + anchorRect.width - rect.width;\n            break;\n          default:\n            assertNever(alignment);\n        }\n        break;\n      case \"left\":\n        rebasedRect.x = anchorRect.x - rect.width;\n        break;\n      case \"right\":\n        rebasedRect.x = anchorRect.x + anchorRect.width;\n        break;\n      default:\n        assertNever(direction);\n    }\n    switch (direction) {\n      case \"left\":\n      case \"right\":\n        switch (alignment) {\n          case \"start\":\n            rebasedRect.y = anchorRect.y;\n            break;\n          case \"center\":\n            rebasedRect.y = anchorRect.y + anchorRect.height / 2 - rect.height / 2;\n            break;\n          case \"end\":\n            rebasedRect.y = anchorRect.y + anchorRect.height - rect.height;\n            break;\n          default:\n            assertNever(alignment);\n        }\n        break;\n      case \"top\":\n        rebasedRect.y = anchorRect.y - rect.height;\n        break;\n      case \"bottom\":\n        rebasedRect.y = anchorRect.y + anchorRect.height;\n        break;\n      default:\n        assertNever(direction);\n    }\n    return rebasedRect;\n  };\n})(Rect || (Rect = {}));\n\n// ../../library/src/render/types/Constraints.ts\nvar constraintDefaults = {\n  left: null,\n  right: null,\n  top: null,\n  bottom: null,\n  centerX: \"50%\",\n  centerY: \"50%\",\n  aspectRatio: null,\n  parentSize: null,\n  width: 100,\n  height: 100\n};\nvar DimensionType = /* @__PURE__ */ ((DimensionType2) => {\n  DimensionType2[DimensionType2[\"FixedNumber\"] = 0] = \"FixedNumber\";\n  DimensionType2[DimensionType2[\"Percentage\"] = 1] = \"Percentage\";\n  DimensionType2[DimensionType2[\"Auto\"] = 2] = \"Auto\";\n  DimensionType2[DimensionType2[\"FractionOfFreeSpace\"] = 3] = \"FractionOfFreeSpace\";\n  DimensionType2[DimensionType2[\"Viewport\"] = 4] = \"Viewport\";\n  return DimensionType2;\n})(DimensionType || {});\nfunction isConstraintSupportingChild(child) {\n  if (!isReactChild(child) || !isReactElement(child)) {\n    return false;\n  }\n  return true;\n}\nvar ConstraintMask;\n((ConstraintMask2) => {\n  ConstraintMask2.quickfix = (constraints) => {\n    if (constraints.widthType === 2 /* Auto */ || constraints.heightType === 2 /* Auto */) {\n      constraints.aspectRatio = null;\n    }\n    if (isFiniteNumber(constraints.aspectRatio)) {\n      if (constraints.left && constraints.right) {\n        constraints.widthType = 0 /* FixedNumber */;\n      }\n      if (constraints.top && constraints.bottom) {\n        constraints.heightType = 0 /* FixedNumber */;\n      }\n      if (constraints.left && constraints.right && constraints.top && constraints.bottom) {\n        constraints.bottom = false;\n      }\n      if (constraints.widthType !== 0 /* FixedNumber */ && constraints.heightType !== 0 /* FixedNumber */) {\n        constraints.heightType = 0 /* FixedNumber */;\n      }\n    }\n    if (constraints.left && constraints.right) {\n      if (constraints.fixedSize || constraints.widthType === 2 /* Auto */ || isFiniteNumber(constraints.maxWidth)) {\n        constraints.right = false;\n      }\n      constraints.widthType = 0 /* FixedNumber */;\n    }\n    if (constraints.top && constraints.bottom) {\n      if (constraints.fixedSize || constraints.heightType === 2 /* Auto */ || isFiniteNumber(constraints.maxHeight)) {\n        constraints.bottom = false;\n      }\n      constraints.heightType = 0 /* FixedNumber */;\n    }\n    return constraints;\n  };\n})(ConstraintMask || (ConstraintMask = {}));\nfunction valueToDimensionType(value) {\n  if (typeof value === \"string\") {\n    const trimmedValue = value.trim();\n    if (trimmedValue === \"auto\")\n      return 2 /* Auto */;\n    if (trimmedValue.endsWith(\"fr\"))\n      return 3 /* FractionOfFreeSpace */;\n    if (trimmedValue.endsWith(\"%\"))\n      return 1 /* Percentage */;\n    if (trimmedValue.endsWith(\"vw\") || trimmedValue.endsWith(\"vh\"))\n      return 4 /* Viewport */;\n  }\n  return 0 /* FixedNumber */;\n}\nvar ConstraintValues;\n((ConstraintValues2) => {\n  ConstraintValues2.fromProperties = (props) => {\n    const { left, right, top, bottom, width, height, centerX, centerY, aspectRatio, autoSize } = props;\n    const constraints = ConstraintMask.quickfix({\n      left: isFiniteNumber(left) || isAnimatable(left),\n      right: isFiniteNumber(right) || isAnimatable(right),\n      top: isFiniteNumber(top) || isAnimatable(top),\n      bottom: isFiniteNumber(bottom) || isAnimatable(bottom),\n      widthType: valueToDimensionType(width),\n      heightType: valueToDimensionType(height),\n      aspectRatio: aspectRatio || null,\n      fixedSize: autoSize === true\n    });\n    let widthValue = null;\n    let heightValue = null;\n    let widthType = 0 /* FixedNumber */;\n    let heightType = 0 /* FixedNumber */;\n    if (constraints.widthType !== 0 /* FixedNumber */ && typeof width === \"string\") {\n      const parsedWidth = parseFloat(width);\n      if (width.endsWith(\"fr\")) {\n        widthType = 3 /* FractionOfFreeSpace */;\n        widthValue = parsedWidth;\n      } else if (width === \"auto\") {\n        widthType = 2 /* Auto */;\n      } else {\n        widthType = 1 /* Percentage */;\n        widthValue = parsedWidth / 100;\n      }\n    } else if (width !== void 0 && typeof width !== \"string\") {\n      widthValue = Animatable.getNumber(width);\n    }\n    if (constraints.heightType !== 0 /* FixedNumber */ && typeof height === \"string\") {\n      const parsedHeight = parseFloat(height);\n      if (height.endsWith(\"fr\")) {\n        heightType = 3 /* FractionOfFreeSpace */;\n        heightValue = parsedHeight;\n      } else if (height === \"auto\") {\n        heightType = 2 /* Auto */;\n      } else {\n        heightType = 1 /* Percentage */;\n        heightValue = parseFloat(height) / 100;\n      }\n    } else if (height !== void 0 && typeof height !== \"string\") {\n      heightValue = Animatable.getNumber(height);\n    }\n    let centerAnchorX = 0.5;\n    let centerAnchorY = 0.5;\n    if (centerX) {\n      centerAnchorX = parseFloat(centerX) / 100;\n    }\n    if (centerY) {\n      centerAnchorY = parseFloat(centerY) / 100;\n    }\n    return {\n      left: constraints.left ? Animatable.getNumber(left) : null,\n      right: constraints.right ? Animatable.getNumber(right) : null,\n      top: constraints.top ? Animatable.getNumber(top) : null,\n      bottom: constraints.bottom ? Animatable.getNumber(bottom) : null,\n      widthType,\n      heightType,\n      width: widthValue,\n      height: heightValue,\n      aspectRatio: constraints.aspectRatio || null,\n      centerAnchorX,\n      centerAnchorY\n    };\n  };\n  ConstraintValues2.toSize = (values, parentSizeInfo, autoSize, freeSpace) => {\n    let width = null;\n    let height = null;\n    const parentWidth = (parentSizeInfo == null ? void 0 : parentSizeInfo.sizing) ? Animatable.getNumber(parentSizeInfo == null ? void 0 : parentSizeInfo.sizing.width) : null;\n    const parentHeight = (parentSizeInfo == null ? void 0 : parentSizeInfo.sizing) ? Animatable.getNumber(parentSizeInfo == null ? void 0 : parentSizeInfo.sizing.height) : null;\n    const hOpposingPinsOffset = pinnedOffset(values.left, values.right);\n    if (parentWidth && isFiniteNumber(hOpposingPinsOffset)) {\n      width = parentWidth - hOpposingPinsOffset;\n    } else if (autoSize && values.widthType === 2 /* Auto */) {\n      width = autoSize.width;\n    } else if (isFiniteNumber(values.width)) {\n      switch (values.widthType) {\n        case 0 /* FixedNumber */:\n          width = values.width;\n          break;\n        case 3 /* FractionOfFreeSpace */:\n          width = freeSpace ? freeSpace.freeSpaceInParent.width / freeSpace.freeSpaceUnitDivisor.width * values.width : null;\n          break;\n        case 1 /* Percentage */:\n        case 4 /* Viewport */:\n          if (parentWidth) {\n            width = parentWidth * values.width;\n          }\n          break;\n        case 2 /* Auto */:\n          break;\n        default:\n          assertNever(values.widthType);\n      }\n    }\n    const vOpposingPinsOffset = pinnedOffset(values.top, values.bottom);\n    if (parentHeight && isFiniteNumber(vOpposingPinsOffset)) {\n      height = parentHeight - vOpposingPinsOffset;\n    } else if (autoSize && values.heightType === 2 /* Auto */) {\n      height = autoSize.height;\n    } else if (isFiniteNumber(values.height)) {\n      switch (values.heightType) {\n        case 0 /* FixedNumber */:\n          height = values.height;\n          break;\n        case 3 /* FractionOfFreeSpace */:\n          height = freeSpace ? freeSpace.freeSpaceInParent.height / freeSpace.freeSpaceUnitDivisor.height * values.height : null;\n          break;\n        case 1 /* Percentage */:\n        case 4 /* Viewport */:\n          if (parentHeight) {\n            height = parentHeight * values.height;\n          }\n          break;\n        case 2 /* Auto */:\n          break;\n        default:\n          assertNever(values.heightType);\n      }\n    }\n    return sizeAfterApplyingConstraintsAndAspectRatio(\n      width,\n      height,\n      values,\n      {\n        height: parentHeight != null ? parentHeight : 0,\n        width: parentWidth != null ? parentWidth : 0\n      },\n      parentSizeInfo == null ? void 0 : parentSizeInfo.viewport\n    );\n  };\n  ConstraintValues2.toRect = (values, parentSizeInfo = null, autoSize = null, pixelAlign = false, freeSpace = null) => {\n    var _a;\n    let x = values.left || 0;\n    let y = values.top || 0;\n    const { width, height } = ConstraintValues2.toSize(values, parentSizeInfo, autoSize, freeSpace);\n    const parentSizeForPositioning = (_a = parentSizeInfo == null ? void 0 : parentSizeInfo.positioning) != null ? _a : null;\n    const positioningParentWidth = parentSizeForPositioning ? Animatable.getNumber(parentSizeForPositioning.width) : null;\n    const positioningParentHeight = parentSizeForPositioning ? Animatable.getNumber(parentSizeForPositioning.height) : null;\n    if (values.left !== null) {\n      x = values.left;\n    } else if (positioningParentWidth && values.right !== null) {\n      x = positioningParentWidth - values.right - width;\n    } else if (positioningParentWidth) {\n      x = values.centerAnchorX * positioningParentWidth - width / 2;\n    }\n    if (values.top !== null) {\n      y = values.top;\n    } else if (positioningParentHeight && values.bottom !== null) {\n      y = positioningParentHeight - values.bottom - height;\n    } else if (positioningParentHeight) {\n      y = values.centerAnchorY * positioningParentHeight - height / 2;\n    }\n    const f = { x, y, width, height };\n    if (pixelAlign) {\n      return Rect.pixelAligned(f);\n    }\n    return f;\n  };\n})(ConstraintValues || (ConstraintValues = {}));\nvar defaultWidth = 200;\nvar defaultHeight = 200;\nfunction getConstraintValue(constraint, value, parentSize, viewport) {\n  if (typeof value === \"string\") {\n    if (value.endsWith(\"%\") && parentSize) {\n      switch (constraint) {\n        case \"maxWidth\":\n        case \"minWidth\":\n          return parseFloat(value) / 100 * parentSize.width;\n        case \"maxHeight\":\n        case \"minHeight\":\n          return parseFloat(value) / 100 * parentSize.height;\n        default:\n          break;\n      }\n    }\n    if (value.endsWith(\"vh\") && viewport) {\n      switch (constraint) {\n        case \"maxWidth\":\n        case \"minWidth\":\n          return parseFloat(value) / 100 * viewport.width;\n        case \"maxHeight\":\n        case \"minHeight\":\n          return parseFloat(value) / 100 * viewport.height;\n        default:\n          break;\n      }\n    }\n    return parseFloat(value);\n  }\n  return value;\n}\nfunction constrainHeight(height, values, parentSize, viewport) {\n  if (values.minHeight) {\n    height = Math.max(getConstraintValue(\"minHeight\", values.minHeight, parentSize, viewport), height);\n  }\n  if (values.maxHeight) {\n    height = Math.min(getConstraintValue(\"maxHeight\", values.maxHeight, parentSize, viewport), height);\n  }\n  return height;\n}\nfunction constrainWidth(width, values, parentSize, viewport) {\n  if (values.minWidth) {\n    width = Math.max(getConstraintValue(\"minWidth\", values.minWidth, parentSize, viewport), width);\n  }\n  if (values.maxWidth) {\n    width = Math.min(getConstraintValue(\"maxWidth\", values.maxWidth, parentSize, viewport), width);\n  }\n  return width;\n}\nfunction sizeAfterApplyingConstraintsAndAspectRatio(width, height, values, parentSize, viewport) {\n  let w = constrainWidth(isFiniteNumber(width) ? width : defaultWidth, values, parentSize, viewport);\n  let h = constrainHeight(isFiniteNumber(height) ? height : defaultHeight, values, parentSize, viewport);\n  if (isFiniteNumber(values.aspectRatio) && values.aspectRatio > 0) {\n    if (isFiniteNumber(values.left) && isFiniteNumber(values.right)) {\n      h = w / values.aspectRatio;\n    } else if (isFiniteNumber(values.top) && isFiniteNumber(values.bottom)) {\n      w = h * values.aspectRatio;\n    } else if (values.widthType !== 0 /* FixedNumber */) {\n      h = w / values.aspectRatio;\n    } else {\n      w = h * values.aspectRatio;\n    }\n  }\n  return {\n    width: w,\n    height: h\n  };\n}\nfunction pinnedOffset(start, end) {\n  if (!isFiniteNumber(start) || !isFiniteNumber(end))\n    return null;\n  return start + end;\n}\nfunction getMergedConstraintsProps(props, constraints) {\n  const result = {};\n  if (props.constraints) {\n    result.constraints = { ...props.constraints, ...constraints };\n  } else {\n    Object.assign(result, constraints);\n  }\n  return result;\n}\n\n// ../../library/src/render/types/NewConstraints.tsx\nfunction containsInvalidStringValues(props) {\n  if (typeof props.right === \"string\")\n    return true;\n  if (typeof props.bottom === \"string\")\n    return true;\n  if (typeof props.left === \"string\" && (!props.center || props.center === \"y\")) {\n    return true;\n  }\n  if (typeof props.top === \"string\" && (!props.center || props.center === \"x\")) {\n    return true;\n  }\n  return false;\n}\nfunction constraintsEnabled(props) {\n  if (!props._constraints)\n    return false;\n  if (containsInvalidStringValues(props))\n    return false;\n  return props._constraints.enabled;\n}\nfunction sizeFromFiniteNumberProps(props) {\n  const { size: size2 } = props;\n  let { width, height } = props;\n  if (isFiniteNumber(size2)) {\n    if (width === void 0) {\n      width = size2;\n    }\n    if (height === void 0) {\n      height = size2;\n    }\n  }\n  if (isFiniteNumber(width) && isFiniteNumber(height)) {\n    return {\n      width,\n      height\n    };\n  }\n  return null;\n}\nfunction rectFromFiniteNumberProps(props) {\n  const size2 = sizeFromFiniteNumberProps(props);\n  if (size2 === null) {\n    return null;\n  }\n  const { left, top } = props;\n  if (isFiniteNumber(left) && isFiniteNumber(top)) {\n    return {\n      x: left,\n      y: top,\n      ...size2\n    };\n  }\n  return null;\n}\nfunction calculateRect(props, parentSize, pixelAlign = true) {\n  if (props.positionFixed || props.positionAbsolute)\n    return null;\n  const parentSizeDisabled = parentSize === 1 /* Disabled */ || parentSize === 2 /* DisabledForCurrentLevel */;\n  if (!constraintsEnabled(props) || parentSizeDisabled) {\n    return rectFromFiniteNumberProps(props);\n  }\n  const constraintValues = getConstraintValues(props);\n  const enabledParentSize = deprecatedParentSize(parentSize);\n  const parentSizeInfo = enabledParentSize ? { sizing: enabledParentSize, positioning: enabledParentSize, viewport: null } : null;\n  return ConstraintValues.toRect(constraintValues, parentSizeInfo, null, pixelAlign, null);\n}\nfunction getConstraintValues(props) {\n  const { left, right, top, bottom, center, _constraints, size: size2 } = props;\n  let { width, height } = props;\n  if (width === void 0) {\n    width = size2;\n  }\n  if (height === void 0) {\n    height = size2;\n  }\n  const { aspectRatio, autoSize } = _constraints;\n  const constraintMask = ConstraintMask.quickfix({\n    left: isFiniteNumber(left),\n    right: isFiniteNumber(right),\n    top: isFiniteNumber(top),\n    bottom: isFiniteNumber(bottom),\n    widthType: valueToDimensionType(width),\n    heightType: valueToDimensionType(height),\n    aspectRatio: aspectRatio || null,\n    fixedSize: autoSize === true\n  });\n  let widthValue = null;\n  let heightValue = null;\n  let widthType = 0 /* FixedNumber */;\n  let heightType = 0 /* FixedNumber */;\n  if (constraintMask.widthType !== 0 /* FixedNumber */ && typeof width === \"string\") {\n    const parsedWidth = parseFloat(width);\n    if (width.endsWith(\"fr\")) {\n      widthType = 3 /* FractionOfFreeSpace */;\n      widthValue = parsedWidth;\n    } else if (width === \"auto\") {\n      widthType = 2 /* Auto */;\n    } else {\n      widthType = 1 /* Percentage */;\n      widthValue = parsedWidth / 100;\n    }\n  } else if (width !== void 0 && typeof width !== \"string\") {\n    widthValue = width;\n  }\n  if (constraintMask.heightType !== 0 /* FixedNumber */ && typeof height === \"string\") {\n    const parsedHeight = parseFloat(height);\n    if (height.endsWith(\"fr\")) {\n      heightType = 3 /* FractionOfFreeSpace */;\n      heightValue = parsedHeight;\n    } else if (height === \"auto\") {\n      heightType = 2 /* Auto */;\n    } else {\n      heightType = 1 /* Percentage */;\n      heightValue = parseFloat(height) / 100;\n    }\n  } else if (height !== void 0 && typeof height !== \"string\") {\n    heightValue = height;\n  }\n  let centerAnchorX = 0.5;\n  let centerAnchorY = 0.5;\n  if (center === true || center === \"x\") {\n    constraintMask.left = false;\n    if (typeof left === \"string\") {\n      centerAnchorX = parseFloat(left) / 100;\n    }\n  }\n  if (center === true || center === \"y\") {\n    constraintMask.top = false;\n    if (typeof top === \"string\") {\n      centerAnchorY = parseFloat(top) / 100;\n    }\n  }\n  return {\n    // Because we check isFiniteNumber when creating the masks,\n    // We know that left, right, top and bottom are numbers if the mask is true for the corresponding value\n    // We need to cast this because typescript does not understand that\n    left: constraintMask.left ? left : null,\n    right: constraintMask.right ? right : null,\n    top: constraintMask.top ? top : null,\n    bottom: constraintMask.bottom ? bottom : null,\n    widthType,\n    heightType,\n    width: widthValue,\n    height: heightValue,\n    aspectRatio: constraintMask.aspectRatio || null,\n    centerAnchorX,\n    centerAnchorY,\n    minHeight: props.minHeight,\n    maxHeight: props.maxHeight,\n    minWidth: props.minWidth,\n    maxWidth: props.maxWidth\n  };\n}\nvar ParentSizeState = /* @__PURE__ */ ((ParentSizeState2) => {\n  ParentSizeState2[ParentSizeState2[\"Unknown\"] = 0] = \"Unknown\";\n  ParentSizeState2[ParentSizeState2[\"Disabled\"] = 1] = \"Disabled\";\n  ParentSizeState2[ParentSizeState2[\"DisabledForCurrentLevel\"] = 2] = \"DisabledForCurrentLevel\";\n  return ParentSizeState2;\n})(ParentSizeState || {});\nvar ConstraintsContext = React20.createContext({\n  parentSize: 0 /* Unknown */\n});\nfunction deprecatedParentSize(parentSize) {\n  if (parentSize === 0 /* Unknown */ || parentSize === 1 /* Disabled */ || parentSize === 2 /* DisabledForCurrentLevel */) {\n    return null;\n  }\n  return parentSize;\n}\nfunction useParentSize() {\n  return React20.useContext(ConstraintsContext).parentSize;\n}\nfunction isSize(o) {\n  return typeof o === \"object\";\n}\nvar ProvideParentSize = (props) => {\n  const currentParentSize = useParentSize();\n  const { parentSize, children } = props;\n  const value = React20.useMemo(\n    () => ({ parentSize }),\n    // We are generating the memoKeys in runtime and react doesn't like it,\n    // but it should be safe to ignore.\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [getParentWidth(parentSize), getParentHeight(parentSize)]\n  );\n  if (currentParentSize === 1 /* Disabled */) {\n    return children ? /* @__PURE__ */ React20.createElement(React20.Fragment, null, children) : null;\n  }\n  return /* @__PURE__ */ React20.createElement(ConstraintsContext.Provider, { value }, children);\n};\nfunction getParentWidth(parentSize) {\n  return isSize(parentSize) ? parentSize.width : parentSize;\n}\nfunction getParentHeight(parentSize) {\n  return isSize(parentSize) ? parentSize.height : parentSize;\n}\nvar ConsumeParentSize = ConstraintsContext.Consumer;\nfunction useProvideParentSize(node, parentSize) {\n  return /* @__PURE__ */ React20.createElement(ProvideParentSize, { parentSize }, node);\n}\nfunction useConstraints(props) {\n  const parentSize = useParentSize();\n  const calculatedRect = calculateRect(props, parentSize, true);\n  return calculatedRect;\n}\n\n// ../../library/src/render/types/PropertyControls.ts\nvar ControlType = /* @__PURE__ */ ((ControlType2) => {\n  ControlType2[\"Boolean\"] = \"boolean\";\n  ControlType2[\"Number\"] = \"number\";\n  ControlType2[\"String\"] = \"string\";\n  ControlType2[\"RichText\"] = \"richtext\";\n  ControlType2[\"FusedNumber\"] = \"fusednumber\";\n  ControlType2[\"Enum\"] = \"enum\";\n  ControlType2[\"SegmentedEnum\"] = \"segmentedenum\";\n  ControlType2[\"Color\"] = \"color\";\n  ControlType2[\"Image\"] = \"image\";\n  ControlType2[\"ResponsiveImage\"] = \"responsiveimage\";\n  ControlType2[\"File\"] = \"file\";\n  ControlType2[\"ComponentInstance\"] = \"componentinstance\";\n  ControlType2[\"Array\"] = \"array\";\n  ControlType2[\"EventHandler\"] = \"eventhandler\";\n  ControlType2[\"Transition\"] = \"transition\";\n  ControlType2[\"Link\"] = \"link\";\n  ControlType2[\"Date\"] = \"date\";\n  ControlType2[\"Object\"] = \"object\";\n  ControlType2[\"Font\"] = \"font\";\n  ControlType2[\"PageScope\"] = \"pagescope\";\n  ControlType2[\"ScrollSectionRef\"] = \"scrollsectionref\";\n  return ControlType2;\n})(ControlType || {});\n\n// ../../library/src/modules/isFlexboxGapSupported.ts\nvar isFlexboxGapSupportedCached;\nfunction isFlexboxGapSupported() {\n  if (isFlexboxGapSupportedCached !== void 0) {\n    return isFlexboxGapSupportedCached;\n  }\n  const flex = document.createElement(\"div\");\n  Object.assign(flex.style, {\n    position: \"absolute\",\n    // avoid layout shift\n    display: \"flex\",\n    flexDirection: \"column\",\n    rowGap: \"1px\"\n  });\n  flex.appendChild(document.createElement(\"div\"));\n  flex.appendChild(document.createElement(\"div\"));\n  document.body.appendChild(flex);\n  const isSupported = flex.scrollHeight === 1;\n  if (flex.parentNode) {\n    flex.parentNode.removeChild(flex);\n  }\n  isFlexboxGapSupportedCached = isSupported;\n  return isSupported;\n}\n\n// ../../library/src/modules/workaroundFlexboxGapNotSupported.ts\nvar flexboxGapNotSupportedClass = \"flexbox-gap-not-supported\";\nvar initialized = false;\nfunction installFlexboxGapWorkaroundIfNeeded() {\n  if (initialized)\n    return;\n  initialized = true;\n  if (isFlexboxGapSupported())\n    return;\n  document.body.classList.add(flexboxGapNotSupportedClass);\n}\n\n// ../../library/src/render/utils/injectDeprecatedRichTextRules.ts\nvar richTextStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] p,\n[data-framer-component-type=\"DeprecatedRichText\"] div,\n[data-framer-component-type=\"DeprecatedRichText\"] h1,\n[data-framer-component-type=\"DeprecatedRichText\"] h2,\n[data-framer-component-type=\"DeprecatedRichText\"] h3,\n[data-framer-component-type=\"DeprecatedRichText\"] h4,\n[data-framer-component-type=\"DeprecatedRichText\"] h5,\n[data-framer-component-type=\"DeprecatedRichText\"] h6,\n[data-framer-component-type=\"DeprecatedRichText\"] li,\n[data-framer-component-type=\"DeprecatedRichText\"] ol,\n[data-framer-component-type=\"DeprecatedRichText\"] ul,\n[data-framer-component-type=\"DeprecatedRichText\"] span:not([data-text-fill]) {\n    font-family: var(--framer-font-family, Inter, Inter Placeholder, sans-serif);\n    font-style: var(--framer-font-style, normal);\n    font-weight: var(--framer-font-weight, 400);\n    color: var(--framer-text-color, #000);\n    font-size: var(--framer-font-size, 16px);\n    letter-spacing: var(--framer-letter-spacing, 0);\n    text-transform: var(--framer-text-transform, none);\n    text-decoration: var(--framer-text-decoration, none);\n    line-height: var(--framer-line-height, 1.2em);\n    text-align: var(--framer-text-alignment, start);\n}\n`;\nvar richTextParagraphSpacingStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] p:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] div:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h1:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h2:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h3:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h4:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h5:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] h6:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] ol:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] ul:not(:first-child),\n[data-framer-component-type=\"DeprecatedRichText\"] .framer-image:not(:first-child) {\n    margin-top: var(--framer-paragraph-spacing, 0);\n}\n`;\nvar richTextBackgroundMaskStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] span[data-text-fill] {\n    display: inline-block;\n    background-clip: text;\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n}\n`;\nvar richTextLinkStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] a,\n[data-framer-component-type=\"DeprecatedRichText\"] a span:not([data-text-fill]) {\n    font-family: var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n    font-style: var(--framer-link-font-style, var(--framer-font-style, normal));\n    font-weight: var(--framer-link-font-weight, var(--framer-font-weight, 400));\n    color: var(--framer-link-text-color, var(--framer-text-color, #000));\n    font-size: var(--framer-link-font-size, var(--framer-font-size, 16px));\n    text-transform: var(--framer-link-text-transform, var(--framer-text-transform, none));\n    text-decoration: var(--framer-link-text-decoration, var(--framer-text-decoration, none));\n}\n`;\nvar richTextLinkHoverStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] a:hover,\n[data-framer-component-type=\"DeprecatedRichText\"] a:hover span:not([data-text-fill]) {\n    font-family: var(--framer-link-hover-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif)));\n    font-style: var(--framer-link-hover-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));\n    font-weight: var(--framer-link-hover-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));\n    color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));\n    font-size: var(--framer-link-hover-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px)));\n    text-transform: var(--framer-link-hover-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));\n    text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));\n}\n`;\nvar richTextLinkCurrentStylesRule = `\na[data-framer-page-link-current],\na[data-framer-page-link-current] span:not([data-text-fill]) {\n    font-family: var(--framer-link-current-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif)));\n    font-style: var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));\n    font-weight: var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));\n    color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));\n    font-size: var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px)));\n    text-transform: var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));\n    text-decoration: var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));\n}\n`;\nvar richTextLinkCurrentHoverStylesRule = `\na[data-framer-page-link-current]:hover,\na[data-framer-page-link-current]:hover span:not([data-text-fill]) {\n    font-family: var(--framer-link-hover-font-family, var(--framer-link-current-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif))));\n    font-style: var(--framer-link-hover-font-style, var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal))));\n    font-weight: var(--framer-link-hover-font-weight, var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400))));\n    color: var(--framer-link-hover-text-color, var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000))));\n    font-size: var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px))));\n    text-transform: var(--framer-link-hover-text-transform, var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none))));\n    text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none))));\n}\n`;\nvar richTextBoldStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] strong {\n    font-weight: bolder;\n}\n`;\nvar richTextItalicStylesRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] em {\n    font-style: italic;\n}\n`;\nvar richTextImageRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] .framer-image {\n    display: block;\n    max-width: 100%;\n    height: auto;\n}\n`;\nvar richTextBlockElementResetRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] p,\n[data-framer-component-type=\"DeprecatedRichText\"] div,\n[data-framer-component-type=\"DeprecatedRichText\"] h1,\n[data-framer-component-type=\"DeprecatedRichText\"] h2,\n[data-framer-component-type=\"DeprecatedRichText\"] h3,\n[data-framer-component-type=\"DeprecatedRichText\"] h4,\n[data-framer-component-type=\"DeprecatedRichText\"] h5,\n[data-framer-component-type=\"DeprecatedRichText\"] h6 {\n    margin: 0;\n    padding: 0;\n}\n`;\nvar richTextStylesPresetResetRule = `\n[data-framer-component-type=\"DeprecatedRichText\"] .text-styles-preset-reset {\n    --framer-font-family: Inter, Inter Placeholder, sans-serif;\n    --framer-font-style: normal;\n    --framer-font-weight: 500;\n    --framer-text-color: #000;\n    --framer-font-size: 16px;\n    --framer-letter-spacing: 0;\n    --framer-text-transform: none;\n    --framer-text-decoration: none;\n    --framer-line-height: 1.2em;\n    --framer-text-alignment: start;\n}\n`;\nvar richTextStylesList = `\n[data-framer-component-type=\"DeprecatedRichText\"] ul,\n[data-framer-component-type=\"DeprecatedRichText\"] ol {\n    display: table;\n    width: 100%;\n    padding-left: 0;\n    margin: 0;\n}\n`;\nvar richTextStylesListItem = `\n[data-framer-component-type=\"DeprecatedRichText\"] li {\n    display: table-row;\n    counter-increment: list-item;\n    list-style: none;\n}\n`;\nvar richTextStylesNumberedListMarker = `\n[data-framer-component-type=\"DeprecatedRichText\"] ol > li::before {\n    display: table-cell;\n    width: 2.25ch;\n    box-sizing: border-box;\n    padding-right: 0.75ch;\n    content: counter(list-item) \".\";\n    white-space: nowrap;\n}\n`;\nvar richTextStylesBulletedListMarker = `\n[data-framer-component-type=\"DeprecatedRichText\"] ul > li::before {\n    display: table-cell;\n    width: 2.25ch;\n    box-sizing: border-box;\n    padding-right: 0.75ch;\n    content: \"\\u2022\";\n}\n`;\nvar deprecatedRichTextCSSRules = [\n  `[data-framer-component-type=\"DeprecatedRichText\"] { cursor: inherit; }`,\n  richTextStylesPresetResetRule,\n  richTextBlockElementResetRule,\n  richTextStylesRule,\n  richTextParagraphSpacingStylesRule,\n  richTextBackgroundMaskStylesRule,\n  richTextLinkStylesRule,\n  richTextLinkHoverStylesRule,\n  richTextLinkCurrentStylesRule,\n  richTextLinkCurrentHoverStylesRule,\n  richTextBoldStylesRule,\n  richTextItalicStylesRule,\n  richTextImageRule,\n  richTextStylesList,\n  richTextStylesListItem,\n  richTextStylesNumberedListMarker,\n  richTextStylesBulletedListMarker\n];\n\n// ../../library/src/render/utils/injectRichTextRules.ts\nvar richTextCSSRules = [\n  /* css */\n  `\n        p.framer-text,\n        div.framer-text,\n        h1.framer-text,\n        h2.framer-text,\n        h3.framer-text,\n        h4.framer-text,\n        h5.framer-text,\n        h6.framer-text,\n        ol.framer-text,\n        ul.framer-text {\n            margin: 0;\n            padding: 0;\n        }\n    `,\n  /* css */\n  `\n        p.framer-text,\n        div.framer-text,\n        h1.framer-text,\n        h2.framer-text,\n        h3.framer-text,\n        h4.framer-text,\n        h5.framer-text,\n        h6.framer-text,\n        li.framer-text,\n        ol.framer-text,\n        ul.framer-text,\n        span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-font-family, Inter, Inter Placeholder, sans-serif);\n            font-style: var(--framer-font-style, normal);\n            font-weight: var(--framer-font-weight, 400);\n            color: var(--framer-text-color, #000);\n            font-size: calc(var(--framer-font-size, 16px) * var(--framer-font-size-scale, 1));\n            letter-spacing: var(--framer-letter-spacing, 0);\n            text-transform: var(--framer-text-transform, none);\n            text-decoration: var(--framer-text-decoration, none);\n            line-height: var(--framer-line-height, 1.2em);\n            text-align: var(--framer-text-alignment, start);\n        }\n    `,\n  /* css */\n  `\n        .framer-fit-text .framer-text {\n            white-space: nowrap;\n        }\n    `,\n  /* css */\n  `\n        strong.framer-text {\n            font-family: var(--framer-font-family-bold);\n            font-style: var(--framer-font-style-bold);\n            font-weight: var(--framer-font-weight-bold, bolder);\n        }\n    `,\n  /* css */\n  `\n        em.framer-text {\n            font-family: var(--framer-font-family-italic);\n            font-style: var(--framer-font-style-italic, italic);\n            font-weight: var(--framer-font-weight-italic);\n        }\n    `,\n  /* css */\n  `\n        em.framer-text > strong.framer-text {\n            font-family: var(--framer-font-family-bold-italic);\n            font-style: var(--framer-font-style-bold-italic, italic);\n            font-weight: var(--framer-font-weight-bold-italic, bolder);\n        }\n    `,\n  /* css */\n  `\n        p.framer-text:not(:first-child),\n        div.framer-text:not(:first-child),\n        h1.framer-text:not(:first-child),\n        h2.framer-text:not(:first-child),\n        h3.framer-text:not(:first-child),\n        h4.framer-text:not(:first-child),\n        h5.framer-text:not(:first-child),\n        h6.framer-text:not(:first-child),\n        ol.framer-text:not(:first-child),\n        ul.framer-text:not(:first-child),\n        .framer-image.framer-text:not(:first-child) {\n            margin-top: var(--framer-paragraph-spacing, 0);\n        }\n    `,\n  // The first child of a list item is a paragraph. If the second child is a\n  // nested list we don't want it to have paragraph spacing.\n  /* css */\n  `\n        li.framer-text > ul.framer-text:nth-child(2),\n        li.framer-text > ol.framer-text:nth-child(2) {\n            margin-top: 0;\n        }\n    `,\n  // background-clip: text clips to the physical dimensions of text as appose\n  // to the rendered dimensions. normal text will bleed out side these\n  // constraints but since this is just a clipping mask over the area the text\n  // takes up we have cases where the text will get clipped. That is why we\n  // need to expand the area that the gradient applies to to allow users to\n  // use low line-heights. This will result in gradients not aligning\n  // perfectly to the edges of the text. but this is a acceptable trade off at\n  // this point. For now we increase the area of the clipping mask on the\n  // bottom (for descenders) and the right for italic or wide fonts.\n  /* css */\n  `\n        .framer-text[data-text-fill] {\n            display: inline-block;\n            background-clip: text;\n            -webkit-background-clip: text;\n            /* make this a transparent color if you want to visualise the clipping  */\n            -webkit-text-fill-color: transparent;\n            padding: max(0em, calc(calc(1.3em - var(--framer-line-height, 1.3em)) / 2));\n            margin: min(0em, calc(calc(1.3em - var(--framer-line-height, 1.3em)) / -2));\n        }\n    `,\n  /* css */\n  `\n        code.framer-text,\n        code.framer-text span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-code-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-code-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-code-text-color, var(--framer-text-color, #000));\n            font-size: calc(var(--framer-font-size, 16px) * var(--framer-font-size-scale, 1));\n            letter-spacing: var(--framer-letter-spacing, 0);\n            line-height: var(--framer-line-height, 1.2em);\n        }\n    `,\n  /* css */\n  `\n        a.framer-text,\n        a.framer-text span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-link-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-link-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-link-text-color, var(--framer-text-color, #000));\n            font-size: calc(var(--framer-link-font-size, var(--framer-font-size, 16px)) * var(--framer-font-size-scale, 1));\n            text-transform: var(--framer-link-text-transform, var(--framer-text-transform, none));\n            text-decoration: var(--framer-link-text-decoration, var(--framer-text-decoration, none));\n            /* Cursor inherit to overwrite the user agent stylesheet on rich text links. */\n            cursor: var(--framer-custom-cursors, pointer);\n        }\n    `,\n  /* css */\n  `\n        code.framer-text a.framer-text,\n        code.framer-text a.framer-text span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-code-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-code-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)));\n            font-size: calc(var(--framer-link-font-size, var(--framer-font-size, 16px)) * var(--framer-font-size-scale, 1));\n        }\n    `,\n  /* css */\n  `\n        a.framer-text:hover,\n        a.framer-text:hover span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-link-hover-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif)));\n            font-style: var(--framer-link-hover-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));\n            font-weight: var(--framer-link-hover-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));\n            color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));\n            font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px))) * var(--framer-font-size-scale, 1));\n            text-transform: var(--framer-link-hover-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));\n            text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));\n        }\n    `,\n  /* css */\n  `\n        code.framer-text a.framer-text:hover,\n        code.framer-text a.framer-text:hover span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-code-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-code-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000))));\n            font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px))) * var(--framer-font-size-scale, 1));\n        }\n    `,\n  /* css */\n  `\n        a.framer-text[data-framer-page-link-current],\n        a.framer-text[data-framer-page-link-current] span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-link-current-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif)));\n            font-style: var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal)));\n            font-weight: var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400)));\n            color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000)));\n            font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px))) * var(--framer-font-size-scale, 1));\n            text-transform: var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none)));\n            text-decoration: var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none)));\n        }\n    `,\n  /* css */\n  `\n        code.framer-text a.framer-text[data-framer-page-link-current],\n        code.framer-text a.framer-text[data-framer-page-link-current] span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-code-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-code-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000))));\n            font-size: calc(var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px))) * var(--framer-font-size-scale, 1));\n        }\n    `,\n  /* css */\n  `\n        a.framer-text[data-framer-page-link-current]:hover,\n        a.framer-text[data-framer-page-link-current]:hover span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-link-hover-font-family, var(--framer-link-current-font-family, var(--framer-link-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif))));\n            font-style: var(--framer-link-hover-font-style, var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style, normal))));\n            font-weight: var(--framer-link-hover-font-weight, var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight, 400))));\n            color: var(--framer-link-hover-text-color, var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color, #000))));\n            font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px)))) * var(--framer-font-size-scale, 1));\n            text-transform: var(--framer-link-hover-text-transform, var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform, none))));\n            text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration, none))));\n        }\n    `,\n  /* css */\n  `\n        code.framer-text a.framer-text[data-framer-page-link-current]:hover,\n        code.framer-text a.framer-text[data-framer-page-link-current]:hover span.framer-text:not([data-text-fill]) {\n            font-family: var(--framer-code-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));\n            font-style: var(--framer-code-font-style, var(--framer-font-style, normal));\n            font-weight: var(--framer-code-font-weight, var(--framer-font-weight, 400));\n            color: var(--framer-link-hover-text-color, var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-code-text-color, var(--framer-text-color, #000)))));\n            font-size: calc(var(--framer-link-hover-font-size, var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size, 16px)))) * var(--framer-font-size-scale, 1));\n        }\n    `,\n  /* css */\n  `\n        .framer-image.framer-text {\n            display: block;\n            max-width: 100%;\n            height: auto;\n        }\n    `,\n  /* css */\n  `\n        .text-styles-preset-reset.framer-text {\n            --framer-font-family: Inter, Inter Placeholder, sans-serif;\n            --framer-font-style: normal;\n            --framer-font-weight: 500;\n            --framer-text-color: #000;\n            --framer-font-size: 16px;\n            --framer-letter-spacing: 0;\n            --framer-text-transform: none;\n            --framer-text-decoration: none;\n            --framer-line-height: 1.2em;\n            --framer-text-alignment: start;\n        }\n    `,\n  /* css */\n  `\n        ol.framer-text {\n            --list-style-type: decimal;\n        }\n    `,\n  /* css */\n  `\n        ul.framer-text,\n        ol.framer-text {\n            display: table;\n            width: 100%;\n        }\n    `,\n  /* css */\n  `\n        li.framer-text {\n            display: table-row;\n            counter-increment: list-item;\n            list-style: none;\n        }\n    `,\n  /* css */\n  `\n        ol.framer-text > li.framer-text::before {\n            display: table-cell;\n            width: 2.25ch;\n            box-sizing: border-box;\n            padding-inline-end: 0.75ch;\n            content: counter(list-item, var(--list-style-type)) \".\";\n            white-space: nowrap;\n        }\n    `,\n  /* css */\n  `\n        ul.framer-text > li.framer-text::before {\n            display: table-cell;\n            width: 2.25ch;\n            box-sizing: border-box;\n            padding-inline-end: 0.75ch;\n            content: \"\\u2022\";\n        }\n    `,\n  /* css */\n  `\n        .framer-text-module[style*=\"aspect-ratio\"] > :first-child {\n            width: 100%;\n        }\n    `,\n  /* css */\n  `\n        @supports not (aspect-ratio: 1) {\n            .framer-text-module[style*=\"aspect-ratio\"] {\n                position: relative;\n            }\n        }\n    `,\n  /* css */\n  `\n        @supports not (aspect-ratio: 1) {\n            .framer-text-module[style*=\"aspect-ratio\"]::before {\n                content: \"\";\n                display: block;\n                padding-bottom: calc(100% / calc(var(--aspect-ratio)));\n            }\n        }\n    `,\n  /* css */\n  `\n        @supports not (aspect-ratio: 1) {\n            .framer-text-module[style*=\"aspect-ratio\"] > :first-child {\n                position: absolute;\n                top: 0;\n                left: 0;\n                height: 100%;\n            }\n        }\n    `\n];\n\n// ../../library/src/render/utils/setDocumentStyles.ts\nvar defaultCache = /* @__PURE__ */ new Set();\nvar defaultSheet;\nfunction injectCSSRule(cssRule, sheet, cache3 = defaultCache) {\n  if (!cssRule || cache3.has(cssRule) || typeof document === \"undefined\")\n    return;\n  cache3.add(cssRule);\n  if (!sheet) {\n    if (!defaultSheet) {\n      const styleElement = document.createElement(\"style\");\n      styleElement.setAttribute(\"type\", \"text/css\");\n      styleElement.setAttribute(\"data-framer-css\", \"true\");\n      if (!document.head) {\n        console.warn(\"not injecting CSS: the document is missing a <head> element\");\n        return;\n      }\n      document.head.appendChild(styleElement);\n      if (styleElement.sheet) {\n        defaultSheet = styleElement.sheet;\n      } else {\n        console.warn(\"not injecting CSS: injected <style> element does not have a sheet\", styleElement);\n        return;\n      }\n    }\n    sheet = defaultSheet;\n  }\n  try {\n    sheet.insertRule(cssRule, sheet.cssRules.length);\n  } catch {\n  }\n}\n\n// ../../library/src/render/utils/injectComponentCSSRules.ts\nvar componentCSSRules = [`[data-framer-component-type] { position: absolute; }`];\nvar textAlignmentRule = `\n[data-framer-component-type=\"Text\"] > * {\n    text-align: var(--framer-text-alignment, start);\n}`;\nvar textBlockSpanRule = `\n[data-framer-component-type=\"Text\"] span span,\n[data-framer-component-type=\"Text\"] p span,\n[data-framer-component-type=\"Text\"] h1 span,\n[data-framer-component-type=\"Text\"] h2 span,\n[data-framer-component-type=\"Text\"] h3 span,\n[data-framer-component-type=\"Text\"] h4 span,\n[data-framer-component-type=\"Text\"] h5 span,\n[data-framer-component-type=\"Text\"] h6 span {\n    display: block;\n}`;\nvar textInlineSpanRule = `\n[data-framer-component-type=\"Text\"] span span span,\n[data-framer-component-type=\"Text\"] p span span,\n[data-framer-component-type=\"Text\"] h1 span span,\n[data-framer-component-type=\"Text\"] h2 span span,\n[data-framer-component-type=\"Text\"] h3 span span,\n[data-framer-component-type=\"Text\"] h4 span span,\n[data-framer-component-type=\"Text\"] h5 span span,\n[data-framer-component-type=\"Text\"] h6 span span {\n    display: unset;\n}`;\nvar renderTextStylesRule = `\n[data-framer-component-type=\"Text\"] div div span,\n[data-framer-component-type=\"Text\"] a div span,\n[data-framer-component-type=\"Text\"] span span span,\n[data-framer-component-type=\"Text\"] p span span,\n[data-framer-component-type=\"Text\"] h1 span span,\n[data-framer-component-type=\"Text\"] h2 span span,\n[data-framer-component-type=\"Text\"] h3 span span,\n[data-framer-component-type=\"Text\"] h4 span span,\n[data-framer-component-type=\"Text\"] h5 span span,\n[data-framer-component-type=\"Text\"] h6 span span,\n[data-framer-component-type=\"Text\"] a {\n    font-family: var(--font-family);\n    font-style: var(--font-style);\n    font-weight: min(calc(var(--framer-font-weight-increase, 0) + var(--font-weight, 400)), 900);\n    color: var(--text-color);\n    letter-spacing: var(--letter-spacing);\n    font-size: var(--font-size);\n    text-transform: var(--text-transform);\n    text-decoration: var(--text-decoration);\n    line-height: var(--line-height);\n}`;\nvar textStylesRule = `\n[data-framer-component-type=\"Text\"] div div span,\n[data-framer-component-type=\"Text\"] a div span,\n[data-framer-component-type=\"Text\"] span span span,\n[data-framer-component-type=\"Text\"] p span span,\n[data-framer-component-type=\"Text\"] h1 span span,\n[data-framer-component-type=\"Text\"] h2 span span,\n[data-framer-component-type=\"Text\"] h3 span span,\n[data-framer-component-type=\"Text\"] h4 span span,\n[data-framer-component-type=\"Text\"] h5 span span,\n[data-framer-component-type=\"Text\"] h6 span span,\n[data-framer-component-type=\"Text\"] a {\n    --font-family: var(--framer-font-family);\n    --font-style: var(--framer-font-style);\n    --font-weight: var(--framer-font-weight);\n    --text-color: var(--framer-text-color);\n    --letter-spacing: var(--framer-letter-spacing);\n    --font-size: var(--framer-font-size);\n    --text-transform: var(--framer-text-transform);\n    --text-decoration: var(--framer-text-decoration);\n    --line-height: var(--framer-line-height);\n}`;\nvar linkStylesRule = `\n[data-framer-component-type=\"Text\"] a,\n[data-framer-component-type=\"Text\"] a div span,\n[data-framer-component-type=\"Text\"] a span span span,\n[data-framer-component-type=\"Text\"] a p span span,\n[data-framer-component-type=\"Text\"] a h1 span span,\n[data-framer-component-type=\"Text\"] a h2 span span,\n[data-framer-component-type=\"Text\"] a h3 span span,\n[data-framer-component-type=\"Text\"] a h4 span span,\n[data-framer-component-type=\"Text\"] a h5 span span,\n[data-framer-component-type=\"Text\"] a h6 span span {\n    --font-family: var(--framer-link-font-family, var(--framer-font-family));\n    --font-style: var(--framer-link-font-style, var(--framer-font-style));\n    --font-weight: var(--framer-link-font-weight, var(--framer-font-weight));\n    --text-color: var(--framer-link-text-color, var(--framer-text-color));\n    --font-size: var(--framer-link-font-size, var(--framer-font-size));\n    --text-transform: var(--framer-link-text-transform, var(--framer-text-transform));\n    --text-decoration: var(--framer-link-text-decoration, var(--framer-text-decoration));\n}`;\nvar linkHoverStylesRule = `\n[data-framer-component-type=\"Text\"] a:hover,\n[data-framer-component-type=\"Text\"] a div span:hover,\n[data-framer-component-type=\"Text\"] a span span span:hover,\n[data-framer-component-type=\"Text\"] a p span span:hover,\n[data-framer-component-type=\"Text\"] a h1 span span:hover,\n[data-framer-component-type=\"Text\"] a h2 span span:hover,\n[data-framer-component-type=\"Text\"] a h3 span span:hover,\n[data-framer-component-type=\"Text\"] a h4 span span:hover,\n[data-framer-component-type=\"Text\"] a h5 span span:hover,\n[data-framer-component-type=\"Text\"] a h6 span span:hover {\n    --font-family: var(--framer-link-hover-font-family, var(--framer-link-font-family, var(--framer-font-family)));\n    --font-style: var(--framer-link-hover-font-style, var(--framer-link-font-style, var(--framer-font-style)));\n    --font-weight: var(--framer-link-hover-font-weight, var(--framer-link-font-weight, var(--framer-font-weight)));\n    --text-color: var(--framer-link-hover-text-color, var(--framer-link-text-color, var(--framer-text-color)));\n    --font-size: var(--framer-link-hover-font-size, var(--framer-link-font-size, var(--framer-font-size)));\n    --text-transform: var(--framer-link-hover-text-transform, var(--framer-link-text-transform, var(--framer-text-transform)));\n    --text-decoration: var(--framer-link-hover-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration)));\n}`;\nvar linkCurrentStylesRule = `\n[data-framer-component-type=\"Text\"].isCurrent a,\n[data-framer-component-type=\"Text\"].isCurrent a div span,\n[data-framer-component-type=\"Text\"].isCurrent a span span span,\n[data-framer-component-type=\"Text\"].isCurrent a p span span,\n[data-framer-component-type=\"Text\"].isCurrent a h1 span span,\n[data-framer-component-type=\"Text\"].isCurrent a h2 span span,\n[data-framer-component-type=\"Text\"].isCurrent a h3 span span,\n[data-framer-component-type=\"Text\"].isCurrent a h4 span span,\n[data-framer-component-type=\"Text\"].isCurrent a h5 span span,\n[data-framer-component-type=\"Text\"].isCurrent a h6 span span {\n    --font-family: var(--framer-link-current-font-family, var(--framer-link-font-family, var(--framer-font-family)));\n    --font-style: var(--framer-link-current-font-style, var(--framer-link-font-style, var(--framer-font-style)));\n    --font-weight: var(--framer-link-current-font-weight, var(--framer-link-font-weight, var(--framer-font-weight)));\n    --text-color: var(--framer-link-current-text-color, var(--framer-link-text-color, var(--framer-text-color)));\n    --font-size: var(--framer-link-current-font-size, var(--framer-link-font-size, var(--framer-font-size)));\n    --text-transform: var(--framer-link-current-text-transform, var(--framer-link-text-transform, var(--framer-text-transform)));\n    --text-decoration: var(--framer-link-current-text-decoration, var(--framer-link-text-decoration, var(--framer-text-decoration)));\n}`;\nvar textCSSRules = [\n  `[data-framer-component-type=\"Text\"] { cursor: inherit; }`,\n  `[data-framer-component-text-autosized] * { white-space: pre; }`,\n  textAlignmentRule,\n  textBlockSpanRule,\n  textInlineSpanRule,\n  renderTextStylesRule,\n  textStylesRule,\n  linkStylesRule,\n  linkHoverStylesRule,\n  linkCurrentStylesRule\n];\nvar stackPositionRule = `\n:not([data-framer-generated]) > [data-framer-stack-content-wrapper] > *,\n:not([data-framer-generated]) > [data-framer-stack-content-wrapper] > [data-framer-component-type],\n:not([data-framer-generated]) > [data-framer-stack-content-wrapper] > [data-framer-legacy-stack-gap-enabled] > *,\n:not([data-framer-generated]) > [data-framer-stack-content-wrapper] > [data-framer-legacy-stack-gap-enabled] > [data-framer-component-type] {\n    position: relative;\n}`;\nvar nativeStackGapRules = [\n  `[data-framer-stack-content-wrapper][data-framer-stack-gap-enabled=\"true\"] {\n        row-gap: var(--stack-native-row-gap);\n        column-gap: var(--stack-native-column-gap);\n    }`,\n  `.${flexboxGapNotSupportedClass} [data-framer-stack-content-wrapper][data-framer-stack-gap-enabled=\"true\"] {\n        row-gap: unset;\n        column-gap: unset;\n    }`\n];\nvar stackGapRule = `\n.${flexboxGapNotSupportedClass} [data-framer-legacy-stack-gap-enabled=\"true\"] > *, [data-framer-legacy-stack-gap-enabled=\"true\"][data-framer-stack-flexbox-gap=\"false\"] {\n    margin-top: calc(var(--stack-gap-y) / 2);\n    margin-bottom: calc(var(--stack-gap-y) / 2);\n    margin-right: calc(var(--stack-gap-x) / 2);\n    margin-left: calc(var(--stack-gap-x) / 2);\n}\n`;\nvar stackDirectionRuleVertical = `\n.${flexboxGapNotSupportedClass}\n[data-framer-stack-direction-reverse=\"false\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"]\n> *:first-child,\n[data-framer-stack-direction-reverse=\"false\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"][data-framer-stack-flexbox-gap=\"false\"]\n> *:first-child,\n.${flexboxGapNotSupportedClass}\n[data-framer-stack-direction-reverse=\"true\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"]\n> *:last-child,\n[data-framer-stack-direction-reverse=\"true\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"][data-framer-stack-flexbox-gap=\"false\"]\n> *:last-child {\n    margin-top: 0;\n    margin-left: 0;\n}`;\nvar stackDirectionRuleHorizontal = `\n.${flexboxGapNotSupportedClass}\n[data-framer-stack-direction-reverse=\"false\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"]\n> *:last-child,\n[data-framer-stack-direction-reverse=\"false\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"][data-framer-stack-flexbox-gap=\"false\"]\n> *:last-child,\n.${flexboxGapNotSupportedClass}\n[data-framer-stack-direction-reverse=\"true\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"]\n> *:first-child,\n[data-framer-stack-direction-reverse=\"true\"]\n[data-framer-legacy-stack-gap-enabled=\"true\"][data-framer-stack-flexbox-gap=\"false\"]\n> *:first-child {\n    margin-right: 0;\n    margin-bottom: 0;\n}`;\nvar stackCSSRules = [\n  stackPositionRule,\n  stackGapRule,\n  ...nativeStackGapRules,\n  stackDirectionRuleVertical,\n  stackDirectionRuleHorizontal\n];\nvar navigationCSSRules = [\n  `\nNavigationContainer\n[data-framer-component-type=\"NavigationContainer\"] > *,\n[data-framer-component-type=\"NavigationContainer\"] > [data-framer-component-type] {\n    position: relative;\n}`\n];\nvar scrollCSSRules = [\n  `[data-framer-component-type=\"Scroll\"]::-webkit-scrollbar { display: none; }`,\n  `[data-framer-component-type=\"ScrollContentWrapper\"] > * { position: relative; }`\n];\nvar nativeScrollCSSRules = [\n  `[data-framer-component-type=\"NativeScroll\"] { -webkit-overflow-scrolling: touch; }`,\n  `[data-framer-component-type=\"NativeScroll\"] > * { position: relative; }`,\n  `[data-framer-component-type=\"NativeScroll\"].direction-both { overflow-x: scroll; overflow-y: scroll; }`,\n  `[data-framer-component-type=\"NativeScroll\"].direction-vertical { overflow-x: hidden; overflow-y: scroll; }`,\n  `[data-framer-component-type=\"NativeScroll\"].direction-horizontal { overflow-x: scroll; overflow-y: hidden; }`,\n  `[data-framer-component-type=\"NativeScroll\"].direction-vertical > * { width: 100% !important; }`,\n  `[data-framer-component-type=\"NativeScroll\"].direction-horizontal > * { height: 100% !important; }`,\n  `[data-framer-component-type=\"NativeScroll\"].scrollbar-hidden::-webkit-scrollbar { display: none; }`\n];\nvar deviceComponentCSSRules = [\n  `[data-framer-component-type=\"DeviceComponent\"].no-device > * { width: 100% !important; height: 100% !important; }`\n];\nvar pageContentWrapperWrapperCSSRules = [\n  `[data-framer-component-type=\"PageContentWrapper\"] > *, [data-framer-component-type=\"PageContentWrapper\"] > [data-framer-component-type] { position: relative; }`\n];\nvar presenceCSS = [\n  `[data-is-present=\"false\"], [data-is-present=\"false\"] * { pointer-events: none !important; }`\n];\nvar cursorCSS = [\n  `[data-framer-cursor=\"pointer\"] { cursor: pointer; }`,\n  `[data-framer-cursor=\"grab\"] { cursor: grab; }`,\n  `[data-framer-cursor=\"grab\"]:active { cursor: grabbing; }`\n];\nvar frameCSS = [\n  // Non-sites prototyping projects render with FrameWithMotion and Stacks. In\n  // that context this rule ensures pointer events work in a specific way\n  // designed for prototypes that we don't care about anymore in sites. We\n  // can't remove it for legacy reasons, but sites will never render any\n  // elements that are impacted by this rule. However, users can still use the\n  // <Frame> api in code, at which point this rule will kick in. We don't\n  // encourage the use of this API anymore, and bugs that come from this will\n  // be the user's concern.\n  `[data-framer-component-type=\"Frame\"] *, [data-framer-component-type=\"Stack\"] * { pointer-events: auto; }`,\n  // This is fully deprecated, and will never exist in code that is generated\n  // after 24/01/2023. There will be existing code-generated that depends on\n  // this rule existing, so we can't remove it.\n  `[data-framer-generated] * { pointer-events: unset }`\n];\nvar resetCSS = [\n  `[data-reset=\"button\"] {\n        border-width: 0;\n        padding: 0;\n        background: none;\n}`\n];\nvar hideScrollbars = [\n  `[data-hide-scrollbars=\"true\"]::-webkit-scrollbar { width: 0px; height: 0px; }`,\n  `[data-hide-scrollbars=\"true\"]::-webkit-scrollbar-thumb { background: transparent; }`\n];\nvar frameCSSRules = (isPreview) => {\n  return isPreview ? frameCSS : [];\n};\nvar svgCSSRules = [`.svgContainer svg { display: block; }`];\nvar combineCSSRules = (isPreview) => [\n  ...componentCSSRules,\n  ...textCSSRules,\n  ...richTextCSSRules,\n  ...deprecatedRichTextCSSRules,\n  ...stackCSSRules,\n  ...navigationCSSRules,\n  ...scrollCSSRules,\n  ...nativeScrollCSSRules,\n  ...pageContentWrapperWrapperCSSRules,\n  ...deviceComponentCSSRules,\n  ...presenceCSS,\n  ...cursorCSS,\n  ...frameCSSRules(isPreview),\n  ...svgCSSRules,\n  ...resetCSS,\n  ...hideScrollbars\n];\nvar combinedCSSRules = combineCSSRules(false);\nvar combinedCSSRulesForPreview = combineCSSRules(true);\nvar didInject = false;\nfunction injectComponentCSSRules() {\n  if (didInject)\n    return;\n  didInject = true;\n  const styles = RenderTarget.current() === \"PREVIEW\" /* preview */ ? combinedCSSRulesForPreview : combinedCSSRules;\n  for (const rule of styles) {\n    injectCSSRule(rule, void 0, void 0);\n  }\n}\n\n// ../../library/src/utils/utils.ts\nfunction isFunction(value) {\n  return typeof value === \"function\";\n}\nfunction isBoolean(value) {\n  return typeof value === \"boolean\";\n}\nfunction isString2(value) {\n  return typeof value === \"string\";\n}\nfunction isNumber(value) {\n  return typeof value === \"number\" && Number.isFinite(value);\n}\nfunction isArray(value) {\n  return Array.isArray(value);\n}\nfunction isObject2(value) {\n  return value !== null && typeof value === \"object\" && !isArray(value);\n}\nfunction isUndefined(value) {\n  return typeof value === \"undefined\";\n}\nfunction isValidDate(value) {\n  return value instanceof Date && !isNaN(value.getTime());\n}\n\n// ../../library/src/utils/applyControlDefaultsToReactDefaultProps.ts\nfunction isReactComponent(component) {\n  return isObject2(component) || isFunction(component);\n}\nvar optionalKey = \"optional\";\nfunction controlIsOptional(control) {\n  return !!control && optionalKey in control && control[optionalKey] === true;\n}\nfunction shouldBeNever(_) {\n}\nfunction getControlDefaultValue(control) {\n  try {\n    switch (control.type) {\n      case \"string\" /* String */:\n      case \"color\" /* Color */:\n      case \"date\" /* Date */:\n      case \"link\" /* Link */:\n        return isString2(control.defaultValue) ? control.defaultValue : void 0;\n      case \"boolean\" /* Boolean */:\n        return isBoolean(control.defaultValue) ? control.defaultValue : void 0;\n      case \"enum\" /* Enum */:\n        if (isUndefined(control.defaultValue))\n          return void 0;\n        return control.options.includes(control.defaultValue) ? control.defaultValue : void 0;\n      case \"fusednumber\" /* FusedNumber */:\n      case \"number\" /* Number */:\n        return isNumber(control.defaultValue) ? control.defaultValue : void 0;\n      case \"transition\" /* Transition */:\n        return isObject2(control.defaultValue) ? control.defaultValue : void 0;\n      case \"font\" /* Font */:\n        return isObject2(control.defaultValue) ? control.defaultValue : void 0;\n      case \"object\" /* Object */: {\n        const value = isObject2(control.defaultValue) ? control.defaultValue : {};\n        if (isObject2(control.controls)) {\n          applyControlDefaultsToDefaultProps(value, control.controls);\n        }\n        return value;\n      }\n      case \"array\" /* Array */:\n        return isArray(control.defaultValue) ? control.defaultValue : void 0;\n      case \"file\" /* File */:\n      case \"image\" /* Image */:\n      case \"richtext\" /* RichText */:\n      case \"pagescope\" /* PageScope */:\n      case \"eventhandler\" /* EventHandler */:\n      case \"segmentedenum\" /* SegmentedEnum */:\n      case \"responsiveimage\" /* ResponsiveImage */:\n      case \"componentinstance\" /* ComponentInstance */:\n      case \"scrollsectionref\" /* ScrollSectionRef */:\n        return void 0;\n      default:\n        shouldBeNever(control);\n        return void 0;\n    }\n  } catch {\n    return void 0;\n  }\n}\nfunction applyControlDefaultsToDefaultProps(defaultProps, controls) {\n  for (const controlKey in controls) {\n    const control = controls[controlKey];\n    if (!control)\n      continue;\n    const currentDefault = defaultProps[controlKey];\n    if (!isUndefined(currentDefault))\n      continue;\n    if (controlIsOptional(control))\n      continue;\n    const defaultValue = getControlDefaultValue(control);\n    if (isUndefined(defaultValue))\n      continue;\n    defaultProps[controlKey] = defaultValue;\n  }\n}\nfunction getDefaultProps(component) {\n  if (isObject2(component.defaultProps)) {\n    return component.defaultProps;\n  }\n  const defaultProps = {};\n  component.defaultProps = defaultProps;\n  return defaultProps;\n}\nfunction applyControlDefaultsToReactDefaultProps(component, controls) {\n  if (!isReactComponent(component))\n    return;\n  const defaultProps = getDefaultProps(component);\n  applyControlDefaultsToDefaultProps(defaultProps, controls);\n}\n\n// ../../library/src/utils/addPropertyControls.ts\nfunction addPropertyControls(component, propertyControls) {\n  Object.assign(component, { propertyControls });\n  applyControlDefaultsToReactDefaultProps(component, propertyControls);\n}\nfunction getPropertyControls(component) {\n  return component.propertyControls;\n}\n\n// ../../library/src/components/Device/presets.ts\nvar defaultPresetId = \"iphone-12-pro\";\nvar presetsBase = {\n  iPhonePro: {\n    // Screen mask takes care of the rounded screen corners for iPhones Pro,\n    // and actually using a radius here produces visual artifacts in Chrome.\n    screenRadius: (\n      /* 38 */\n      0\n    ),\n    clayBezelLeft: 21,\n    clayBezelRight: 21,\n    clayBezelTop: 21,\n    clayBezelBottom: 21,\n    clayBezelRadius: 38 + 21\n  },\n  iPhone8: {\n    screenRadius: 0,\n    clayBezelLeft: 24,\n    clayBezelRight: 24,\n    clayBezelTop: 96,\n    clayBezelBottom: 96,\n    clayBezelRadius: 38 * 1.5\n  },\n  iPadPro: {\n    screenRadius: 25,\n    clayBezelLeft: 38,\n    clayBezelRight: 38,\n    clayBezelTop: 38,\n    clayBezelBottom: 38,\n    clayBezelRadius: 25 + 38\n  },\n  desktop: {\n    clayBezelLeft: 20,\n    clayBezelRight: 20,\n    clayBezelTop: 20,\n    clayBezelBottom: 20,\n    clayBezelRadius: 20\n  }\n};\nvar devicePresets = [\n  {\n    id: \"iphone-12\",\n    title: \"iPhone 12\",\n    screenRadius: 0,\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 390,\n    screenHeight: 844,\n    externalClay: {\n      width: 500,\n      height: 974,\n      screenOffsetTop: 65,\n      screenOffsetLeft: 55\n    },\n    screenMask: '<g style=\"transform: scale(0.5);\"><path d=\"M171.2 0c2.3 0 4 .5 5.4 1.3 1.6 1 2.8 2.2 3.7 3.8.8 1.6 1.2 2.3 1.2 4.9 0 12 2.2 19 6.2 26.5s9.8 13.3 17.3 17.4c7.5 4 15.8 6.1 30.6 6.1h311.5c14.3 0 22.5-2.2 29.9-6.1 7.5-4 13.3-10 17.3-17.4 4-7.5 6.2-14.5 6.2-26.5 0-2.6.4-3.2 1.1-4.9.8-1.6 2-2.9 3.4-3.8 1.4-.8 3.2-1.3 5.4-1.3h54.2c40.1 0 54.7 4.2 69.4 12a81.8 81.8 0 0134 34c7.8 14.7 12 29.3 12 69.4v1457.2c0 40.1-4.2 54.7-12 69.4a81.8 81.8 0 01-34 34c-14.7 7.8-29.3 12-69.4 12H115.4c-40.1 0-54.7-4.2-69.4-12a81.8 81.8 0 01-34-34c-7.8-14.7-12-29.3-12-69.4V115.4C0 75.3 4.2 60.7 12 46a81.8 81.8 0 0134-34C60.7 4.2 75.3 0 115.4 0h55.4z\" fill=\"#000\" fill-rule=\"evenodd\"/></g>',\n    realisticImage: {\n      width: 490,\n      height: 944,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#2E2C36\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F7F3F0\" },\n        { id: \"blue\", title: \"Blue\", colorValue: \"#14496D\" },\n        { id: \"green\", title: \"Green\", colorValue: \"#DAF0D9\" },\n        { id: \"red\", title: \"Red\", colorValue: \"#DB4141\" }\n      ],\n      handOffset: { left: 29, right: 29, bottom: 29 }\n    }\n  },\n  {\n    id: \"iphone-12-mini\",\n    title: \"iPhone 12 Mini\",\n    screenRadius: 0,\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 360,\n    screenHeight: 780,\n    externalClay: {\n      width: 450,\n      height: 890,\n      screenOffsetTop: 55,\n      screenOffsetLeft: 45\n    },\n    screenMask: '<g style=\"transform: scale(0.5);\"><path d=\"M142 18c0 19 14 47 43 48h349c31 0 44-29 44-48 0-12 4-18 14-18h18c38 0 52 4 66 11 14 8 25 19 33 33v1c7 14 11 28 11 65v1340c0 38-4 52-11 66-8 14-19 25-33 33h-1c-14 7-28 11-65 11H110c-38 0-52-4-66-11-14-8-25-19-33-33v-1c-7-13-11-27-11-64V110c0-38 4-52 11-66 8-14 19-25 33-33h1C58 4 72 0 109 0h16c11 0 17 6 17 18z\" fill=\"#000\" fill-rule=\"evenodd\"/></g>',\n    realisticImage: {\n      width: 460,\n      height: 880,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#2E2C36\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F7F3F0\" },\n        { id: \"blue\", title: \"Blue\", colorValue: \"#14496D\" },\n        { id: \"green\", title: \"Green\", colorValue: \"#DAF0D9\" },\n        { id: \"red\", title: \"Red\", colorValue: \"#DB4141\" }\n      ],\n      handOffset: { left: 31.5, right: 30.5, bottom: 30 }\n    }\n  },\n  {\n    id: \"iphone-12-pro\",\n    title: \"iPhone 12 Pro\",\n    screenRadius: 0,\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 390,\n    screenHeight: 844,\n    externalClay: {\n      width: 494,\n      height: 968,\n      screenOffsetTop: 62,\n      screenOffsetLeft: 52\n    },\n    screenMask: '<g style=\"transform: scale(0.5);\"><path d=\"M171.2 0c2.3 0 4 .5 5.4 1.3 1.6 1 2.8 2.2 3.7 3.8.8 1.6 1.2 2.3 1.2 4.9 0 12 2.2 19 6.2 26.5s9.8 13.3 17.3 17.4c7.5 4 15.8 6.1 30.6 6.1h311.5c14.3 0 22.5-2.2 29.9-6.1 7.5-4 13.3-10 17.3-17.4 4-7.5 6.2-14.5 6.2-26.5 0-2.6.4-3.2 1.1-4.9.8-1.6 2-2.9 3.4-3.8 1.4-.8 3.2-1.3 5.4-1.3h54.2c40.1 0 54.7 4.2 69.4 12a81.8 81.8 0 0134 34c7.8 14.7 12 29.3 12 69.4v1457.2c0 40.1-4.2 54.7-12 69.4a81.8 81.8 0 01-34 34c-14.7 7.8-29.3 12-69.4 12H115.4c-40.1 0-54.7-4.2-69.4-12a81.8 81.8 0 01-34-34c-7.8-14.7-12-29.3-12-69.4V115.4C0 75.3 4.2 60.7 12 46a81.8 81.8 0 0134-34C60.7 4.2 75.3 0 115.4 0h55.4z\" fill=\"#000\" fill-rule=\"evenodd\"/></g>',\n    realisticImage: {\n      width: 490,\n      height: 944,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"graphite\", title: \"Graphite\", colorValue: \"#585753\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"pacific-blue\", title: \"Pacific Blue\", colorValue: \"#415D6C\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FCECD5\" }\n      ],\n      handOffset: { left: 29, right: 29, bottom: 29 }\n    }\n  },\n  {\n    id: \"iphone-12-pro-max\",\n    title: \"iPhone 12 Pro Max\",\n    screenRadius: 50,\n    // to prevent leaking pixel in the corners, see https://github.com/framer/company/issues/20429\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 428,\n    screenHeight: 926,\n    externalClay: {\n      width: 532,\n      height: 1050,\n      screenOffsetTop: 62,\n      screenOffsetLeft: 52\n    },\n    screenMask: '<path d=\"M102 0c6 0 7 3 7 9 0 10 7 23 24 23h164c13 0 22-12 22-23 0-6 1-9 7-9h34c24 0 32 2 41 7s15 11 20 20 7 17 7 41v790c0 24-2 32-7 41s-11 15-20 20-17 7-41 7H68c-24 0-32-2-41-7s-15-11-20-20-7-17-7-41V68c0-24 2-32 7-41S18 12 27 7s17-7 41-7h34z\" fill=\"#000\" fill-rule=\"evenodd\"/>',\n    realisticImage: {\n      width: 528,\n      height: 1026,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"graphite\", title: \"Graphite\", colorValue: \"#585753\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"pacific-blue\", title: \"Pacific Blue\", colorValue: \"#415D6C\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FCECD5\" }\n      ],\n      handOffset: { left: 28.5, right: 28, bottom: 29 }\n    }\n  },\n  {\n    id: \"iphone-11\",\n    title: \"iPhone 11\",\n    // Screen mask takes care of the rounded screen corners for iPhones Pro,\n    // and actually using a radius here produces visual artifacts in Chrome.\n    screenRadius: (\n      /* 38 */\n      0\n    ),\n    clayBezelLeft: 35.5,\n    clayBezelRight: 35.5,\n    clayBezelTop: 35.5,\n    clayBezelBottom: 35.5,\n    clayBezelRadius: 77,\n    screenWidth: 414,\n    screenHeight: 896,\n    externalClay: {\n      width: 524,\n      height: 1026,\n      screenOffsetTop: 65,\n      screenOffsetLeft: 55\n    },\n    screenMask: '<path d=\"M85.5 0C89.1 0 92 3 92 6.5c.3 6 1.5 10 3.4 13.5 2.2 4.1 5.5 7.4 9.6 9.6 4.2 2.2 8.9 3.4 17 3.4h170c8.1 0 12.8-1.2 17-3.4 4.1-2.2 7.4-5.5 9.6-9.6A31 31 0 00322 6.5c0-3.6 3-6.5 6.5-6.5h32.3c18.5 0 25.2 2 32 5.5 6.7 3.7 12 9 15.7 15.7 3.6 6.8 5.5 13.5 5.5 32v789.6c0 18.5-2 25.2-5.5 32-3.7 6.7-9 12-15.7 15.7-6.8 3.6-13.5 5.5-32 5.5H53.2c-18.5 0-25.2-2-32-5.5-6.7-3.7-12-9-15.7-15.7C2 868 0 861.3 0 842.8V53.2c0-18.5 2-25.2 5.5-32 3.7-6.7 9-12 15.7-15.7C28 2 34.7 0 53.2 0h32.3z\" fill=\"#000\" fill-rule=\"nonzero\"/>',\n    realisticImage: {\n      width: 514,\n      height: 996,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#202120\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F9F6EF\" },\n        { id: \"purple\", title: \"Purple\", colorValue: \"#D1CDDB\" },\n        { id: \"green\", title: \"Green\", colorValue: \"#ADE0CD\" },\n        { id: \"red\", title: \"Red\", colorValue: \"#B90D2E\" },\n        { id: \"yellow\", title: \"Yellow\", colorValue: \"#FFE680\" }\n      ],\n      handOffset: { left: 14.5, right: 14.5, bottom: 14.5 }\n    }\n  },\n  {\n    id: \"iphone-11-pro\",\n    title: \"iPhone 11 Pro\",\n    ...presetsBase.iPhonePro,\n    screenWidth: 375,\n    screenHeight: 812,\n    externalClay: {\n      width: 485,\n      height: 942,\n      screenOffsetTop: 65,\n      screenOffsetLeft: 55\n    },\n    screenMask: '<path d=\"M292 8.668V9c0 9.266-7.07 21-23.332 21h-162C90.402 30 83.332 18.266 83.332 9v-.332c0-4.285 0-8.668-7.664-8.668H43.332C16.312 0 0 16.313 0 43.332v725.336C0 795.688 16.313 812 43.332 812h288.336c27.02 0 43.332-16.313 43.332-43.332V43.332C375 16.312 358.687 0 331.668 0h-32C292 0 292 4.383 292 8.668zm0 0\"/>',\n    realisticImage: {\n      width: 475,\n      height: 912,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#52514F\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#EBEBE3\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FBD7BD\" },\n        { id: \"midnight-green\", title: \"Midnight Green\", colorValue: \"#4F5850\" }\n      ],\n      handOffset: { left: 24.5, right: 24.5, bottom: 23.5 }\n    }\n  },\n  {\n    id: \"iphone-11-pro-max\",\n    title: \"iPhone 11 Pro Max\",\n    ...presetsBase.iPhonePro,\n    screenWidth: 414,\n    screenHeight: 896,\n    externalClay: {\n      width: 524,\n      height: 1026,\n      screenOffsetTop: 65,\n      screenOffsetLeft: 55\n    },\n    screenMask: '<path d=\"M96 0c3.313 0 5.91 2.688 6 6 .18 6.645 1.191 10.148 2.938 13.41 1.917 3.586 4.73 6.402 8.316 8.317 3.586 1.918 7.441 2.941 15.445 2.941h156.602c8.004 0 11.86-1.023 15.445-2.941 3.586-1.915 6.399-4.73 8.317-8.317 1.746-3.265 2.746-6.758 2.937-13.41.094-3.313 2.688-6 6-6h46.004c17.387 0 23.687 1.809 30.043 5.21 6.355 3.4 11.344 8.388 14.742 14.743C412.191 26.31 414 32.61 414 49.996v796.008c0 17.387-1.809 23.687-5.21 30.043-3.4 6.355-8.388 11.344-14.743 14.742-6.356 3.402-12.656 5.211-30.043 5.211H49.996c-17.387 0-23.687-1.809-30.043-5.21-6.355-3.4-11.344-8.388-14.742-14.743C1.809 869.69 0 863.39 0 846.004V49.996C0 32.61 1.809 26.31 5.21 19.953c3.4-6.355 8.388-11.344 14.743-14.742C26.31 1.809 32.61 0 49.996 0zm0 0\"/>',\n    realisticImage: {\n      width: 514,\n      height: 996,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 50,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#52514F\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#EBEBE3\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FBD7BD\" },\n        { id: \"midnight-green\", title: \"Midnight Green\", colorValue: \"#4F5850\" }\n      ],\n      handOffset: { left: 23.5, right: 24.5, bottom: 24 }\n    }\n  },\n  {\n    id: \"iphone-8\",\n    title: \"iPhone 8\",\n    ...presetsBase.iPhone8,\n    screenWidth: 375,\n    screenHeight: 667,\n    externalClay: {\n      width: 491,\n      height: 971,\n      screenOffsetLeft: 58,\n      screenOffsetTop: 152\n    },\n    realisticImage: {\n      width: 475,\n      height: 927,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 130,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#28282A\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#DFE1E2\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#F6E6DB\" }\n      ],\n      handOffset: { left: 22, right: 22, bottom: 18.5 }\n    }\n  },\n  {\n    id: \"iphone-8-plus\",\n    title: \"iPhone 8 Plus\",\n    ...presetsBase.iPhone8,\n    screenWidth: 414,\n    screenHeight: 736,\n    externalClay: {\n      width: 530,\n      height: 1064,\n      screenOffsetLeft: 58,\n      screenOffsetTop: 164\n    },\n    realisticImage: {\n      width: 514,\n      height: 996,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 130,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#28282A\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#DFE1E2\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#F6E6DB\" }\n      ],\n      handOffset: { left: 21, right: 20.5, bottom: 19 }\n    }\n  },\n  {\n    id: \"iphone-se\",\n    title: \"iPhone SE\",\n    screenWidth: 320,\n    screenHeight: 568,\n    screenRadius: 0,\n    clayBezelLeft: 20,\n    clayBezelRight: 20,\n    clayBezelTop: 112,\n    clayBezelBottom: 112,\n    clayBezelRadius: 38 * 1.5,\n    externalClay: {\n      width: 436,\n      height: 872,\n      screenOffsetLeft: 58,\n      screenOffsetTop: 152\n    },\n    realisticImage: {\n      width: 420,\n      height: 828,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 130,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#EFD8BD\" },\n        { id: \"rose-gold\", title: \"Rose Gold\", colorValue: \"#F7CFCA\" }\n      ],\n      handOffset: { left: 22, right: 22, bottom: 26.5 }\n    }\n  },\n  {\n    id: \"samsung-galaxy-s7\",\n    title: \"Samsung Galaxy S7\",\n    screenRadius: 0,\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 360,\n    screenHeight: 640,\n    externalClay: {\n      width: 454,\n      height: 880,\n      screenOffsetTop: 120,\n      screenOffsetLeft: 47\n    },\n    realisticImage: {\n      width: 440,\n      height: 860,\n      screenOffsetLeft: 40,\n      screenOffsetTop: 110,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#2E2C36\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F7F3F0\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FCECD5\" }\n      ],\n      handOffset: { left: 26, right: 25.5, bottom: 32 }\n    }\n  },\n  // deprecated\n  {\n    id: \"samsung-note-10\",\n    title: \"Samsung Note 10\",\n    screenWidth: 360,\n    screenHeight: 760,\n    screenRadius: 10,\n    clayBezelLeft: 7,\n    clayBezelRight: 7,\n    clayBezelTop: 15,\n    clayBezelBottom: 15,\n    clayBezelRadius: 15\n  },\n  {\n    id: \"pixel-5\",\n    title: \"Google Pixel 5\",\n    screenRadius: 31,\n    clayBezelLeft: 22,\n    clayBezelRight: 22,\n    clayBezelTop: 22,\n    clayBezelBottom: 22,\n    clayBezelRadius: 66,\n    screenWidth: 360,\n    screenHeight: 780,\n    externalClay: {\n      width: 460,\n      height: 900,\n      screenOffsetTop: 60,\n      screenOffsetLeft: 50\n    },\n    realisticImage: {\n      width: 920 / 2,\n      height: 1760 / 2,\n      screenOffsetLeft: 100 / 2,\n      screenOffsetTop: 100 / 2,\n      availableColors: [\n        { id: \"just-black\", title: \"Just Black\", colorValue: \"#2E2C36\" },\n        { id: \"sorta-sage\", title: \"Sorta Sage\", colorValue: \"#B7C9C0\" }\n      ],\n      handOffset: {\n        left: 31.5,\n        right: 31,\n        bottom: 31\n        /* 1t */\n      }\n    }\n  },\n  {\n    id: \"pixel-4\",\n    title: \"Google Pixel 4\",\n    screenWidth: 360,\n    screenHeight: 760,\n    screenRadius: 34,\n    clayBezelLeft: 10,\n    clayBezelRight: 10,\n    clayBezelTop: 50,\n    clayBezelBottom: 25,\n    clayBezelRadius: 50,\n    externalClay: {\n      width: 460,\n      height: 938,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 89\n    },\n    realisticImage: {\n      width: 460,\n      height: 920,\n      screenOffsetLeft: 50,\n      screenOffsetTop: 80,\n      availableColors: [\n        { id: \"clearly-white\", title: \"Clearly White\", colorValue: \"#EAEDF2\" },\n        { id: \"just-black\", title: \"Just Black\", colorValue: \"#1A1A1A\" },\n        { id: \"oh-so-orange\", title: \"Oh So Orange\", colorValue: \"#FF7A68\" }\n      ],\n      handOffset: {\n        left: 35.5,\n        right: 35.5,\n        bottom: 57\n        /* 1t */\n      }\n    }\n  },\n  // Desktop ------------------------------------------------------------------------------------------------------------------------\n  {\n    id: \"macbook-air\",\n    title: \"MacBook Air\",\n    screenWidth: 1440,\n    screenHeight: 900,\n    disableRotation: true,\n    externalClay: {\n      width: 1890,\n      height: 1125,\n      screenOffsetLeft: 225,\n      screenOffsetTop: 98\n    },\n    realisticImage: {\n      width: 3848 / 2,\n      height: 2240 / 2,\n      screenOffsetLeft: 484 / 2,\n      screenOffsetTop: 196 / 2,\n      availableColors: [\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#B1B5B7\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#FCECD5\" }\n      ]\n    }\n  },\n  {\n    id: \"macbook-pro-13\",\n    title: `MacBook Pro 13\"`,\n    screenWidth: 1440,\n    screenHeight: 900,\n    disableRotation: true,\n    externalClay: {\n      width: 1914,\n      height: 1169,\n      screenOffsetLeft: 236,\n      screenOffsetTop: 109\n    },\n    realisticImage: {\n      width: 3916 / 2,\n      height: 2330 / 2,\n      screenOffsetLeft: 518 / 2,\n      screenOffsetTop: 218 / 2,\n      availableColors: [\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#B1B5B7\" }\n      ]\n    }\n  },\n  {\n    id: \"macbook-pro-16\",\n    title: `MacBook Pro 16\"`,\n    screenWidth: 1536,\n    screenHeight: 960,\n    disableRotation: true,\n    externalClay: {\n      width: 1984,\n      height: 1179,\n      screenOffsetLeft: 225,\n      screenOffsetTop: 78\n    },\n    realisticImage: {\n      width: 4032 / 2,\n      height: 2348 / 2,\n      screenOffsetLeft: 480 / 2,\n      screenOffsetTop: 148 / 2,\n      availableColors: [\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#B1B5B7\" }\n      ]\n    }\n  },\n  {\n    id: \"imac-21-5\",\n    title: `iMac 21.5\"`,\n    screenWidth: 2048,\n    screenHeight: 1152,\n    disableRotation: true,\n    externalClay: {\n      width: 2288,\n      height: 1892,\n      screenOffsetLeft: 120,\n      screenOffsetTop: 120\n    },\n    realisticImage: {\n      width: 4562 / 2,\n      height: 3796 / 2,\n      screenOffsetLeft: 232 / 2,\n      screenOffsetTop: 244 / 2\n    }\n  },\n  {\n    id: \"imac-27\",\n    title: `iMac 27\"`,\n    screenWidth: 2560,\n    screenHeight: 1440,\n    disableRotation: true,\n    externalClay: {\n      width: 2848,\n      height: 2351,\n      screenOffsetLeft: 144,\n      screenOffsetTop: 151\n    },\n    realisticImage: {\n      width: 5676 / 2,\n      height: 4720 / 2,\n      screenOffsetLeft: 278 / 2,\n      screenOffsetTop: 292 / 2,\n      availableColors: [\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E5E6E1\" },\n        { id: \"pro\", title: \"Pro\", colorValue: \"#5F5E63\" }\n      ]\n    }\n  },\n  {\n    id: \"pro-display-xdr\",\n    title: `Pro Display XDR`,\n    screenWidth: 3008,\n    screenHeight: 1692,\n    disableRotation: true,\n    externalClay: {\n      width: 3148,\n      height: 2325,\n      screenOffsetLeft: 70,\n      screenOffsetTop: 60\n    },\n    realisticImage: {\n      width: 6276 / 2,\n      height: 4695 / 2,\n      screenOffsetLeft: 130 / 2,\n      screenOffsetTop: 130 / 2\n    }\n  },\n  {\n    id: \"dell-xps\",\n    title: `Dell XPS`,\n    screenWidth: 1920,\n    screenHeight: 1080,\n    disableRotation: true,\n    externalClay: {\n      width: 2624,\n      height: 1381,\n      screenOffsetLeft: 352,\n      screenOffsetTop: 57\n    },\n    realisticImage: {\n      width: 5412 / 2,\n      height: 2746 / 2,\n      screenOffsetLeft: 786 / 2,\n      screenOffsetTop: 108 / 2\n    }\n  },\n  {\n    id: \"surface-book\",\n    title: `Microsoft Surface Book`,\n    screenWidth: 1500,\n    screenHeight: 1e3,\n    disableRotation: true,\n    externalClay: {\n      width: 2089,\n      height: 1234,\n      screenOffsetLeft: 296,\n      screenOffsetTop: 93\n    },\n    realisticImage: {\n      width: 4200 / 2,\n      height: 2508 / 2,\n      screenOffsetLeft: 600 / 2,\n      screenOffsetTop: 210 / 2\n    }\n  },\n  // Tablets ------------------------------------------------------------------------------------------------------------------------\n  {\n    id: \"ipad\",\n    title: \"iPad\",\n    screenRadius: 0,\n    screenWidth: 810,\n    screenHeight: 1080,\n    clayBezelLeft: 30,\n    clayBezelRight: 30,\n    clayBezelTop: 95,\n    clayBezelBottom: 95,\n    clayBezelRadius: 0,\n    externalClay: {\n      width: 966,\n      height: 1378,\n      screenOffsetLeft: 78,\n      screenOffsetTop: 149\n    },\n    realisticImage: {\n      width: 1920 / 2,\n      height: 2720 / 2,\n      screenOffsetLeft: 75,\n      screenOffsetTop: 140,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#EFD8BD\" }\n      ]\n    }\n  },\n  {\n    id: \"ipad-mini\",\n    title: \"iPad Mini\",\n    screenRadius: 0,\n    clayBezelLeft: 49,\n    clayBezelRight: 49,\n    clayBezelTop: 49,\n    clayBezelBottom: 49,\n    clayBezelRadius: 49,\n    screenWidth: 768,\n    screenHeight: 1024,\n    externalClay: {\n      width: 924,\n      height: 1384,\n      screenOffsetLeft: 78,\n      screenOffsetTop: 180\n    },\n    realisticImage: {\n      width: 1856 / 2,\n      height: 2728 / 2,\n      screenOffsetLeft: 160 / 2,\n      screenOffsetTop: 340 / 2,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" },\n        { id: \"gold\", title: \"Gold\", colorValue: \"#EFD8BD\" }\n      ]\n    }\n  },\n  {\n    id: \"ipad-air\",\n    title: \"iPad Air\",\n    screenRadius: 18,\n    clayBezelLeft: 49,\n    clayBezelRight: 49,\n    clayBezelTop: 49,\n    clayBezelBottom: 49,\n    clayBezelRadius: 49,\n    screenWidth: 820,\n    screenHeight: 1180,\n    externalClay: {\n      width: 994,\n      height: 1374,\n      screenOffsetLeft: 87,\n      screenOffsetTop: 97\n    },\n    realisticImage: {\n      width: 1960 / 2,\n      height: 2680 / 2,\n      screenOffsetLeft: 160 / 2,\n      screenOffsetTop: 160 / 2,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" },\n        { id: \"rose-gold\", title: \"Rose Gold\", colorValue: \"#ECCBC4\" },\n        { id: \"blue\", title: \"Blue\", colorValue: \"#CBDAE6\" },\n        { id: \"green\", title: \"Green\", colorValue: \"#DAF0D9\" }\n      ]\n    }\n  },\n  {\n    id: \"ipad-pro-11\",\n    title: \"iPad Pro 11\\u2033\",\n    screenRadius: 17,\n    clayBezelLeft: 49,\n    clayBezelRight: 49,\n    clayBezelTop: 49,\n    clayBezelBottom: 49,\n    clayBezelRadius: 49,\n    screenWidth: 834,\n    screenHeight: 1194,\n    externalClay: {\n      width: 990,\n      height: 1370,\n      screenOffsetLeft: 78,\n      screenOffsetTop: 88\n    },\n    realisticImage: {\n      width: 1968 / 2,\n      height: 2688 / 2,\n      screenOffsetLeft: 75,\n      screenOffsetTop: 75,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" }\n      ]\n    }\n  },\n  {\n    id: \"ipad-pro-12-9\",\n    title: \"iPad Pro 12.9\\u2033\",\n    ...presetsBase.iPadPro,\n    screenRadius: 17,\n    screenWidth: 1024,\n    screenHeight: 1366,\n    externalClay: {\n      width: 1180,\n      height: 1542,\n      screenOffsetLeft: 78,\n      screenOffsetTop: 88\n    },\n    realisticImage: {\n      width: 2348 / 2,\n      height: 3032 / 2,\n      screenOffsetLeft: 75,\n      screenOffsetTop: 75,\n      availableColors: [\n        { id: \"space-grey\", title: \"Space Grey\", colorValue: \"#C3C4C8\" },\n        { id: \"silver\", title: \"Silver\", colorValue: \"#E1E2E4\" }\n      ]\n    }\n  },\n  {\n    id: \"surface-3\",\n    title: \"Microsoft Surface 3\",\n    screenRadius: 0,\n    clayBezelLeft: 49,\n    clayBezelRight: 49,\n    clayBezelTop: 49,\n    clayBezelBottom: 49,\n    clayBezelRadius: 49,\n    screenWidth: 960,\n    screenHeight: 640,\n    externalClay: {\n      width: 1184,\n      height: 864,\n      screenOffsetLeft: 112,\n      screenOffsetTop: 112\n    },\n    realisticImage: {\n      width: 2280 / 2,\n      height: 1580 / 2,\n      screenOffsetLeft: 180 / 2,\n      screenOffsetTop: 150 / 2\n    }\n  },\n  {\n    id: \"surface-pro-4\",\n    title: \"Microsoft Surface Pro 4\",\n    screenRadius: 0,\n    clayBezelLeft: 49,\n    clayBezelRight: 49,\n    clayBezelTop: 49,\n    clayBezelBottom: 49,\n    clayBezelRadius: 49,\n    screenWidth: 1368,\n    screenHeight: 912,\n    externalClay: {\n      width: 1592,\n      height: 1136,\n      screenOffsetLeft: 112,\n      screenOffsetTop: 112\n    },\n    realisticImage: {\n      width: 3176 / 2,\n      height: 2224 / 2,\n      screenOffsetLeft: 220 / 2,\n      screenOffsetTop: 200 / 2\n    }\n  },\n  // Watches ------------------------------------------------------------------------------------------------------------------------\n  {\n    id: \"apple-watch-44\",\n    title: `Apple Watch 44mm`,\n    screenRadius: 33,\n    screenWidth: 184,\n    screenHeight: 224,\n    disableRotation: true,\n    externalClay: {\n      width: 298,\n      height: 502,\n      screenOffsetLeft: 57,\n      screenOffsetTop: 129\n    },\n    realisticImage: {\n      width: 548 / 2,\n      height: 908 / 2,\n      screenOffsetLeft: 90 / 2,\n      screenOffsetTop: 230 / 2,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#2E2C36\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F7F3F0\" },\n        { id: \"yellow\", title: \"Yellow\", colorValue: \"#FDDC6C\" },\n        { id: \"orange\", title: \"Orange\", colorValue: \"#F35C56\" }\n      ]\n    }\n  },\n  {\n    id: \"apple-watch-40\",\n    title: `Apple Watch 40mm`,\n    screenRadius: 27,\n    screenWidth: 162,\n    screenHeight: 197,\n    disableRotation: true,\n    externalClay: {\n      width: 280,\n      height: 463,\n      screenOffsetLeft: 59,\n      screenOffsetTop: 124\n    },\n    realisticImage: {\n      width: 504 / 2,\n      height: 854 / 2,\n      screenOffsetLeft: 90 / 2,\n      screenOffsetTop: 230 / 2,\n      availableColors: [\n        { id: \"black\", title: \"Black\", colorValue: \"#2E2C36\" },\n        { id: \"white\", title: \"White\", colorValue: \"#F7F3F0\" },\n        { id: \"yellow\", title: \"Yellow\", colorValue: \"#FDDC6C\" },\n        { id: \"orange\", title: \"Orange\", colorValue: \"#F35C56\" }\n      ]\n    }\n  },\n  // TVs ------------------------------------------------------------------------------------------------------------------------\n  {\n    id: \"tv-full-hd\",\n    title: `Full HD`,\n    screenRadius: 0,\n    screenWidth: 1920,\n    screenHeight: 1080,\n    externalClay: {\n      width: 1968,\n      height: 1168,\n      screenOffsetLeft: 24,\n      screenOffsetTop: 12\n    },\n    realisticImage: {\n      width: 4040 / 2,\n      height: 2360 / 2,\n      screenOffsetLeft: 100 / 2,\n      screenOffsetTop: 100 / 2\n    }\n  },\n  {\n    id: \"tv-4k\",\n    title: `4K`,\n    screenRadius: 0,\n    screenWidth: 3840,\n    screenHeight: 2160,\n    externalClay: {\n      width: 3908,\n      height: 2308,\n      screenOffsetLeft: 34,\n      screenOffsetTop: 24\n    },\n    realisticImage: {\n      width: 7960 / 2,\n      height: 4600 / 2,\n      screenOffsetLeft: 140 / 2,\n      screenOffsetTop: 140 / 2\n    }\n  },\n  // Old devices ------------------------------------------------------------------------------------------------------------------------\n  // deprecated\n  {\n    id: \"720p\",\n    title: \"720p\",\n    ...presetsBase.desktop,\n    screenWidth: 720,\n    screenHeight: 1280\n  },\n  // deprecated\n  {\n    id: \"900p\",\n    title: \"900p\",\n    ...presetsBase.desktop,\n    screenWidth: 900,\n    screenHeight: 1440\n  },\n  // deprecated\n  {\n    id: \"1080p\",\n    title: \"1080p\",\n    ...presetsBase.desktop,\n    screenWidth: 1080,\n    screenHeight: 1920\n  },\n  // deprecated\n  {\n    id: \"1440p\",\n    title: \"1440p\",\n    ...presetsBase.desktop,\n    screenWidth: 1440,\n    screenHeight: 2560\n  },\n  // deprecated\n  {\n    id: \"4k\",\n    title: \"4K\",\n    ...presetsBase.desktop,\n    screenWidth: 2160,\n    screenHeight: 3840\n  }\n];\nvar deviceCodeComponentPresetIds = [\n  \"iphone-12\",\n  \"iphone-12-mini\",\n  \"iphone-12-pro\",\n  \"iphone-11\",\n  \"iphone-11-pro\",\n  \"iphone-11-pro-max\",\n  \"iphone-8\",\n  \"iphone-8-plus\",\n  \"iphone-se\",\n  \"samsung-note-10\",\n  \"pixel-4\",\n  \"ipad\",\n  \"ipad-pro-11\",\n  \"ipad-pro-12-9\",\n  \"720p\",\n  \"900p\",\n  \"1080p\",\n  \"1440p\",\n  \"4k\"\n];\nvar devicePresetsMap = devicePresets.reduce(\n  (map, preset) => {\n    map[preset.id] = preset;\n    return map;\n  },\n  {}\n);\nfunction getDevicePreset(presetId) {\n  var _a;\n  return (_a = devicePresetsMap[presetId]) != null ? _a : devicePresetsMap[defaultPresetId];\n}\n\n// ../../library/src/components/Device/DeviceCodeComponentProps.ts\nvar defaultDeviceProps = {\n  preset: defaultPresetId,\n  customWidth: 375,\n  customHeight: 800,\n  customBezel: 20,\n  isMixedBezel: false,\n  bezelTop: 20,\n  bezelRight: 20,\n  bezelBottom: 20,\n  bezelLeft: 20,\n  customBezelRadius: 20,\n  customScreenRadius: 0,\n  orientation: \"portrait\",\n  skin: \"clay\",\n  theme: \"dark\",\n  shadow: true,\n  backgroundColor: void 0\n};\nfunction convertPropsToDeviceOptions(props, { forceOldClay = false } = {}) {\n  var _a, _b, _c, _d, _e, _f, _g;\n  if (props.preset === \"no-device\") {\n    return;\n  }\n  let preset;\n  if (props.preset === \"custom\") {\n    preset = {\n      screenWidth: props.customWidth,\n      screenHeight: props.customHeight,\n      screenRadius: props.customScreenRadius,\n      clayBezelTop: props.isMixedBezel ? props.bezelTop : props.customBezel,\n      clayBezelRight: props.isMixedBezel ? props.bezelRight : props.customBezel,\n      clayBezelBottom: props.isMixedBezel ? props.bezelBottom : props.customBezel,\n      clayBezelLeft: props.isMixedBezel ? props.bezelLeft : props.customBezel,\n      clayBezelRadius: props.customBezelRadius\n    };\n  } else {\n    preset = getDevicePreset(props.preset);\n  }\n  const colors = getColorsFromTheme(props.theme);\n  const shadowColor = colors.shadowColor;\n  const shadow = props.shadow ? `0 10px 30px ${shadowColor}` : void 0;\n  const rotate = !preset.disableRotation && (props.orientation === \"landscape\" || props.rotated);\n  let deviceWidth;\n  let deviceHeight;\n  let screenOffsetTop;\n  let screenOffsetLeft;\n  let colorId = props.colorId;\n  let appearance;\n  if ((props.skin === void 0 || props.skin === \"realistic\") && preset.realisticImage && props.preset) {\n    deviceWidth = preset.realisticImage.width;\n    deviceHeight = preset.realisticImage.height;\n    screenOffsetTop = preset.realisticImage.screenOffsetTop;\n    screenOffsetLeft = preset.realisticImage.screenOffsetLeft;\n    colorId = colorId != null ? colorId : colorIdForTheme(props.theme, preset.realisticImage.availableColors);\n    appearance = {\n      type: \"realistic\",\n      imageUrl: colorId ? `https://preview.framercdn.com/images/devices/${props.preset}-${colorId}.png` : `https://preview.framercdn.com/images/devices/${props.preset}.png`,\n      imageWidth: preset.realisticImage.width,\n      imageHeight: preset.realisticImage.height,\n      rotateImage: rotate\n    };\n  } else {\n    deviceWidth = preset.screenWidth + ((_a = preset.clayBezelLeft) != null ? _a : 0) + ((_b = preset.clayBezelRight) != null ? _b : 0);\n    deviceHeight = preset.screenHeight + ((_c = preset.clayBezelTop) != null ? _c : 0) + ((_d = preset.clayBezelBottom) != null ? _d : 0);\n    screenOffsetTop = (_e = preset.clayBezelTop) != null ? _e : 0;\n    screenOffsetLeft = (_f = preset.clayBezelLeft) != null ? _f : 0;\n    if (preset.externalClay && !forceOldClay) {\n      deviceWidth = preset.externalClay.width;\n      deviceHeight = preset.externalClay.height;\n      screenOffsetTop = preset.externalClay.screenOffsetTop;\n      screenOffsetLeft = preset.externalClay.screenOffsetLeft;\n      appearance = {\n        type: \"external-clay\",\n        imageUrl: `https://preview.framercdn.com/images/devices/${props.preset}-${props.theme}.svg`,\n        imageWidth: preset.externalClay.width,\n        imageHeight: preset.externalClay.height,\n        rotateImage: rotate\n      };\n    } else {\n      appearance = {\n        type: \"clay\",\n        bezelRadius: preset.clayBezelRadius !== void 0 ? `${preset.clayBezelRadius}px` : void 0,\n        bezelColor: colors.bezelColor,\n        bezelShadeColor: colors.bezelShadeColor\n      };\n    }\n  }\n  let screenWidth = preset.screenWidth;\n  let screenHeight = preset.screenHeight;\n  if (rotate) {\n    const screenOffsetRight = deviceWidth - screenWidth - screenOffsetLeft;\n    [deviceWidth, deviceHeight] = [deviceHeight, deviceWidth];\n    [screenWidth, screenHeight] = [screenHeight, screenWidth];\n    [screenOffsetTop, screenOffsetLeft] = [screenOffsetRight, screenOffsetTop];\n  }\n  const handOffset = (_g = preset.realisticImage) == null ? void 0 : _g.handOffset;\n  return {\n    deviceWidth,\n    deviceHeight,\n    appearance,\n    screenWidth,\n    screenHeight,\n    screenOffsetTop,\n    screenOffsetLeft,\n    screenRadius: preset.screenRadius !== void 0 ? `${preset.screenRadius}px` : void 0,\n    screenMaskImage: appearance.type !== \"realistic\" && preset.screenMask ? makeScreenMaskImage({\n      mask: preset.screenMask,\n      // width/height of the mask = screen width/height pre-rotation\n      width: preset.screenWidth,\n      height: preset.screenHeight,\n      rotate\n    }) : void 0,\n    screenColor: colors.screenColor,\n    shadow,\n    hand: props.hand !== void 0 && supportsHand(props) ? {\n      imageUrl: `https://preview.framercdn.com/images/hands/${props.hand}.png`,\n      offsetLeft: handOffset == null ? void 0 : handOffset.left,\n      offsetRight: handOffset == null ? void 0 : handOffset.right,\n      offsetBottom: handOffset == null ? void 0 : handOffset.bottom\n    } : void 0,\n    background: props.backgroundColor,\n    theme: props.theme,\n    colorId\n  };\n}\nfunction makeScreenMaskImage({\n  mask,\n  width,\n  height,\n  rotate = false\n}) {\n  const transform2 = rotate ? (\n    // Rotate 90 degrees counter-clockwise around (0,0), then move the\n    // result down into the viewport (rightmost transform is applied first).\n    `transform=\"translate(0 ${width}) rotate(-90)\"`\n  ) : \"\";\n  const encoded = encodeURIComponent(\n    `<svg xmlns=\"http://www.w3.org/2000/svg\" viewport=\"0 0 ${width} ${height}\" preserveAspectRatio=\"none\"><g x=\"0\" y=\"0\" ${transform2}>${mask}</g></svg>`\n  );\n  return `url(\"data:image/svg+xml;utf8,${encoded}\")`;\n}\nvar lightColors = /* @__PURE__ */ new Set([\"white\", \"silver\", \"clearly-white\", \"sorta-sage\"]);\nvar darkColors = /* @__PURE__ */ new Set([\"black\", \"space-grey\", \"graphite\", \"just-black\", \"pro\"]);\nfunction colorIdForTheme(theme, availableColors) {\n  var _a;\n  if (!availableColors)\n    return;\n  const colors = theme === \"light\" ? lightColors : darkColors;\n  for (const color2 of availableColors) {\n    if (colors.has(color2.id)) {\n      return color2.id;\n    }\n  }\n  return (_a = availableColors[0]) == null ? void 0 : _a.id;\n}\nfunction supportsHand({ preset: presetId, skin, orientation = \"portrait\" }) {\n  var _a;\n  if (!presetId || presetId === \"custom\" || presetId === \"no-device\" || orientation === \"landscape\")\n    return false;\n  const preset = getDevicePreset(presetId);\n  return skin !== \"clay\" && ((_a = preset.realisticImage) == null ? void 0 : _a.handOffset) !== void 0;\n}\n\n// ../../library/src/components/Device/usePrototypingMetaTags.ts\nimport React21 from \"react\";\nfunction applyMetaTag(name, props) {\n  var _a;\n  let tag = document.querySelector(`meta[name=\"${name}\"]`);\n  if (!tag) {\n    tag = document.createElement(\"meta\");\n    (_a = document.getElementsByTagName(\"head\")[0]) == null ? void 0 : _a.appendChild(tag);\n    tag.setAttribute(\"name\", name);\n  }\n  for (const [k, v] of Object.entries(props)) {\n    tag.setAttribute(k, v);\n  }\n}\nfunction usePrototypingMetaTags() {\n  React21.useEffect(() => {\n    applyMetaTag(\"mobile-web-app-capable\", { content: \"yes\" });\n    applyMetaTag(\"apple-mobile-web-app-capable\", { content: \"yes\" });\n    applyMetaTag(\"apple-mobile-web-app-status-bar-style\", {\n      content: \"black-translucent\"\n    });\n    applyMetaTag(\"viewport\", {\n      content: \"viewport-fit=cover, user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1\"\n    });\n  }, []);\n}\n\n// ../../library/src/components/Device/DeviceCodeComponent.tsx\nfunction DeviceCodeComponentInner({ children, ...props }) {\n  usePrototypingMetaTags();\n  const deviceOptions = convertPropsToDeviceOptions(props, { forceOldClay: true });\n  if (!deviceOptions) {\n    injectComponentCSSRules();\n    return /* @__PURE__ */ React22.createElement(\n      \"div\",\n      {\n        \"data-framer-component-type\": \"DeviceComponent\",\n        className: \"no-device\",\n        style: { width: \"100%\", height: \"100%\" }\n      },\n      /* @__PURE__ */ React22.createElement(ProvideParentSize, { parentSize: 1 /* Disabled */ }, children)\n    );\n  }\n  const child = Array.isArray(children) ? children[0] : children;\n  const resizedChild = child && React22.isValidElement(child) ? React22.cloneElement(child, {\n    width: deviceOptions.screenWidth,\n    height: deviceOptions.screenHeight\n  }) : null;\n  return /* @__PURE__ */ React22.createElement(Device, { scaleTo: \"dynamic\", deviceOptions }, resizedChild);\n}\nvar DeviceCodeComponent = /* @__PURE__ */ (() => {\n  const { componentWidth: defaultWidth2, componentHeight: defaultHeight2 } = getComponentSize(\n    convertPropsToDeviceOptions(defaultDeviceProps, { forceOldClay: true })\n  );\n  DeviceCodeComponentInner.defaultProps = {\n    width: defaultWidth2,\n    height: defaultHeight2,\n    ...defaultDeviceProps\n  };\n  const deviceCodeComponentPresets = devicePresets.filter((preset) => deviceCodeComponentPresetIds.includes(preset.id));\n  addPropertyControls(DeviceCodeComponentInner, {\n    children: {\n      title: \"Content\",\n      type: \"componentinstance\" /* ComponentInstance */\n    },\n    preset: {\n      type: \"enum\" /* Enum */,\n      options: [\"no-device\", \"custom\"].concat(deviceCodeComponentPresets.map((preset) => preset.id)),\n      optionTitles: [\"No Device\", \"Custom\"].concat(deviceCodeComponentPresets.map((preset) => preset.title))\n    },\n    customWidth: {\n      title: \"Width\",\n      type: \"number\" /* Number */,\n      min: 0,\n      displayStepper: true,\n      hidden: (props) => props.preset !== \"custom\"\n    },\n    customHeight: {\n      title: \"Height\",\n      type: \"number\" /* Number */,\n      min: 0,\n      displayStepper: true,\n      hidden: (props) => props.preset !== \"custom\"\n    },\n    customBezel: {\n      title: \"Bezel\",\n      type: \"fusednumber\" /* FusedNumber */,\n      min: 0,\n      toggleKey: \"isMixedBezel\",\n      toggleTitles: [\"a\", \"b\"],\n      valueKeys: [\"bezelTop\", \"bezelRight\", \"bezelBottom\", \"bezelLeft\"],\n      valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n      hidden: (props) => props.preset !== \"custom\"\n    },\n    customBezelRadius: {\n      title: \"Bezel Radius\",\n      type: \"number\" /* Number */,\n      min: 0,\n      displayStepper: true,\n      hidden: (props) => props.preset !== \"custom\"\n    },\n    customScreenRadius: {\n      title: \"Screen Radius\",\n      type: \"number\" /* Number */,\n      min: 0,\n      displayStepper: true,\n      hidden: (props) => props.preset !== \"custom\"\n    },\n    orientation: {\n      type: \"enum\" /* Enum */,\n      displaySegmentedControl: true,\n      options: [\"portrait\", \"landscape\"],\n      optionTitles: [\"Portrait\", \"Landscape\"],\n      optionIcons: [\"orientation-portrait\", \"orientation-landscape\"],\n      hidden: (props) => !!props.preset && !supportsOrientation(props.preset)\n    },\n    skin: {\n      title: \"Device\",\n      type: \"enum\" /* Enum */,\n      displaySegmentedControl: true,\n      options: [\"realistic\", \"clay\"],\n      optionTitles: [\"Realistic\", \"Clay\"],\n      defaultValue: \"clay\",\n      hidden: (props) => !!props.preset && !supportsRealisticSkin(props.preset)\n    },\n    theme: {\n      type: \"enum\" /* Enum */,\n      displaySegmentedControl: true,\n      options: [\"light\", \"dark\"],\n      optionTitles: [\"Light\", \"Dark\"],\n      hidden: (props) => !!props.preset && !supportsThemes(props.preset, props.skin)\n    },\n    shadow: {\n      type: \"boolean\" /* Boolean */,\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      hidden: ({ skin, preset }) => preset !== \"custom\" && skin === \"realistic\" || preset === \"no-device\"\n    },\n    hand: {\n      type: \"enum\" /* Enum */,\n      options: [void 0, \"hand-1\", \"hand-2\"],\n      optionTitles: [\"None\", \"Model 1\", \"Model 2\"],\n      hidden: (props) => !supportsHand(props)\n    },\n    backgroundColor: {\n      type: \"color\" /* Color */,\n      title: \"Background\",\n      optional: true,\n      hidden: ({ preset }) => preset === \"no-device\"\n    }\n  });\n  return DeviceCodeComponentInner;\n})();\nfunction supportsOrientation(presetId) {\n  if (presetId === \"no-device\")\n    return false;\n  if (presetId === \"custom\")\n    return true;\n  const preset = getDevicePreset(presetId);\n  return !preset.disableRotation;\n}\nfunction supportsRealisticSkin(presetId) {\n  if (presetId === \"custom\" || presetId === \"no-device\")\n    return false;\n  const preset = getDevicePreset(presetId);\n  return !!preset.realisticImage;\n}\nfunction supportsThemes(presetId, skin) {\n  if (presetId === \"no-device\")\n    return false;\n  if (presetId === \"custom\" || skin !== \"realistic\")\n    return true;\n  const preset = getDevicePreset(presetId);\n  const realisticImage = preset.realisticImage;\n  if (realisticImage === void 0) {\n    return true;\n  }\n  if (colorIdForTheme(\"dark\", realisticImage.availableColors) !== void 0) {\n    return true;\n  }\n  return false;\n}\n\n// ../../library/src/components/EmptyState.tsx\nimport React32 from \"react\";\n\n// ../../library/src/render/presentation/Frame/FrameWithMotion.tsx\nimport React31, { forwardRef, useContext as useContext5, useRef as useRef5 } from \"react\";\n\n// ../../library/src/utils/asRecord.ts\nvar asRecord = (object) => object;\n\n// ../../library/src/utils/isPropValid.ts\nfunction memoize(fn) {\n  const cache3 = /* @__PURE__ */ Object.create(null);\n  return (arg) => {\n    if (cache3[arg] === void 0)\n      cache3[arg] = fn(arg);\n    return cache3[arg];\n  };\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|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)-.*))$/;\nvar isPropValid = /* @__PURE__ */ memoize(\n  (prop) => reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110 && prop.charCodeAt(2) < 91\n  /* Z+1 */\n);\n\n// ../../library/src/render/style/BackgroundImageComponent.tsx\nimport React24 from \"react\";\n\n// ../../library/src/modules/LibraryFeaturesContext.ts\nimport React23 from \"react\";\nvar LibraryFeaturesContext = /* @__PURE__ */ React23.createContext(void 0);\nvar LibraryFeaturesProvider = LibraryFeaturesContext.Provider;\nvar useLibraryFeatures = () => {\n  const context = React23.useContext(LibraryFeaturesContext);\n  return context != null ? context : {};\n};\n\n// ../../library/src/utils/environment.ts\nvar import_process = __toESM(require_browser(), 1);\n\n// ../../library/src/utils/safeNavigator.ts\nvar safeNavigator = typeof navigator !== \"undefined\" ? navigator : void 0;\n\n// ../../library/src/utils/environment.ts\nvar isBrowser2 = () => typeof document === \"object\";\nvar isWebKit = () => {\n  var _a;\n  return ((_a = safeNavigator) == null ? void 0 : _a.userAgent.includes(\"AppleWebKit/\")) && !isChrome() && !isEdge();\n};\nvar webkitVersion = () => {\n  let version2 = -1;\n  const regexp = /AppleWebKit\\/([\\d.]+)/;\n  const result = safeNavigator && regexp.exec(safeNavigator.userAgent);\n  if (result && result[1]) {\n    version2 = parseFloat(result[1]);\n  }\n  return version2;\n};\nvar safariVersion = () => {\n  let version2 = -1;\n  const regexp = /Version\\/([\\d.]+)/;\n  const result = safeNavigator && regexp.exec(safeNavigator.userAgent);\n  if (result && result[1]) {\n    version2 = parseFloat(result[1]);\n  }\n  return version2;\n};\nvar isChrome = () => safeNavigator && /Chrome/.test(safeNavigator.userAgent) && /Google Inc/.test(safeNavigator.vendor) && !isEdge();\nvar isSafari = () => safeNavigator && /Safari/.test(safeNavigator.userAgent) && /Apple Computer/.test(safeNavigator.vendor);\nvar isFirefox = () => safeNavigator && /Firefox\\/\\d+\\.\\d+$/.test(safeNavigator.userAgent);\nvar isFramerX = () => safeNavigator && /FramerX/.test(safeNavigator.userAgent);\nvar isEdge = () => safeNavigator && /Edg\\//.test(safeNavigator.userAgent);\nvar isAndroid = () => safeNavigator && /(android)/i.test(safeNavigator.userAgent);\nvar isIOS = () => safeNavigator && /(iPhone|iPod|iPad)/i.test(safeNavigator.platform);\nvar isMacOS = () => safeNavigator && /Mac/.test(safeNavigator.platform);\nvar isWindows = () => safeNavigator && /Win/.test(safeNavigator.platform);\nvar isTouch = () => safeWindow.ontouchstart === null && safeWindow.ontouchmove === null && safeWindow.ontouchend === null;\nvar isDesktop = () => deviceType() === \"desktop\";\nvar isPhone = () => deviceType() === \"phone\";\nvar isTablet = () => deviceType() === \"tablet\";\nvar isMobile = () => isPhone() || isTablet();\nvar isFileUrl = (url) => url.startsWith(\"file://\");\nvar isDataUrl = (url) => url.startsWith(\"data:\");\nvar isTest = () => import_process.default.env.NODE_ENV === \"test\";\nvar isRelativeUrl = (url) => !/^([a-zA-Z]{1,8}:\\/\\/).*$/.test(url);\nvar isLocalServerUrl = (url) => /[a-zA-Z]{1,8}:\\/\\/127\\.0\\.0\\.1/.test(url) || /[a-zA-Z]{1,8}:\\/\\/localhost/.test(url);\nvar isLocalUrl = (url) => {\n  if (isFileUrl(url))\n    return true;\n  if (isLocalServerUrl(url))\n    return true;\n  return false;\n};\nvar isLocalAssetUrl = (url, baseUrl) => {\n  if (baseUrl === null)\n    baseUrl = safeWindow.location.href;\n  if (isDataUrl(url))\n    return false;\n  if (isLocalUrl(url))\n    return true;\n  if (isRelativeUrl(url) && isLocalUrl(baseUrl))\n    return true;\n  return false;\n};\nvar devicePixelRatio2 = () => safeWindow.devicePixelRatio;\nvar isJP2Supported = function() {\n  if (isFirefox())\n    return false;\n  return isWebKit();\n};\nvar isWebPSupported = () => isChrome();\nvar deviceType = () => {\n  if (safeNavigator && /(tablet)|(iPad)|(Nexus 9)/i.test(safeNavigator.userAgent))\n    return \"tablet\";\n  if (safeNavigator && /(mobi)/i.test(safeNavigator.userAgent))\n    return \"phone\";\n  return \"desktop\";\n};\nvar deviceOS = () => {\n  if (isMacOS())\n    return \"macos\";\n  if (isIOS())\n    return \"ios\";\n  if (isAndroid())\n    return \"android\";\n  if (isWindows())\n    return \"windows\";\n};\nvar deviceFont = (os) => {\n  if (!os) {\n    os = deviceOS();\n  }\n  const fonts = {\n    apple: \"-apple-system, BlinkMacSystemFont, SF Pro Text, SF UI Text, Helvetica Neue\",\n    google: \"Roboto, Helvetica Neue\",\n    microsoft: \"Segoe UI, Helvetica Neue\"\n  };\n  if (os === \"macos\")\n    return fonts.apple;\n  if (os === \"ios\")\n    return fonts.apple;\n  if (os === \"android\")\n    return fonts.google;\n  if (os === \"windows\")\n    return fonts.microsoft;\n  return fonts.apple;\n};\nvar environment = {\n  isWebKit,\n  webkitVersion,\n  isChrome,\n  isSafari,\n  isFirefox,\n  isFramerX,\n  isEdge,\n  isAndroid,\n  isIOS,\n  isMacOS,\n  isWindows,\n  isTouch,\n  isDesktop,\n  isPhone,\n  isTablet,\n  isMobile,\n  isFileUrl,\n  isDataUrl,\n  isRelativeUrl,\n  isLocalServerUrl,\n  isLocalUrl,\n  isLocalAssetUrl,\n  devicePixelRatio: devicePixelRatio2,\n  isJP2Supported,\n  isWebPSupported,\n  deviceType,\n  deviceOS,\n  deviceFont,\n  safariVersion\n};\n\n// ../../library/src/utils/runtimeInjection.ts\nvar mockWithWarning = (message) => {\n  return () => {\n    warnOnce(message);\n  };\n};\nvar implementation = {\n  // We need a default implementation for useImageSource and useImageElement as it is used for rendering image backgrounds which would break otherwise.\n  // The default value is used for HTML export and when using the library without Framer.\n  useImageSource(image) {\n    var _a;\n    return (_a = image.src) != null ? _a : \"\";\n  },\n  useImageElement(image, rect, nodeId) {\n    const element = new Image();\n    element.src = runtime.useImageSource(image, rect, nodeId);\n    if (image.srcSet)\n      element.srcset = image.srcSet;\n    return element;\n  },\n  canRenderOptimizedCanvasImage() {\n    return false;\n  }\n};\nvar isRuntimeInjected = false;\nvar runtimeProxy = {\n  get(target, key7, reciever) {\n    if (Reflect.has(target, key7)) {\n      return Reflect.get(target, key7, reciever);\n    }\n    if (isRuntimeInjected) {\n      return mockWithWarning(`${String(key7)} is not available in this version of Framer.`);\n    } else {\n      return mockWithWarning(`${String(key7)} is only available inside of Framer. https://www.framer.com/`);\n    }\n  }\n};\nvar runtime = new Proxy(implementation, runtimeProxy);\nfunction _injectRuntime(injectedRuntime) {\n  Object.assign(implementation, injectedRuntime);\n  isRuntimeInjected = true;\n}\n\n// ../../library/src/render/utils/imageRendering.ts\nfunction minZoomForPixelatedImageRendering(image, containerSize, devicePixelRatio3 = 1) {\n  var _a, _b, _c, _d;\n  let { width: frameWidth, height: frameHeight } = containerSize;\n  const imageWidth = (_b = (_a = image.pixelWidth) != null ? _a : image.intrinsicWidth) != null ? _b : 0;\n  const imageHeight = (_d = (_c = image.pixelHeight) != null ? _c : image.intrinsicHeight) != null ? _d : 0;\n  if (frameWidth < 1 || frameHeight < 1 || imageWidth < 1 || imageHeight < 1) {\n    return void 0;\n  }\n  frameWidth *= devicePixelRatio3;\n  frameHeight *= devicePixelRatio3;\n  const frameAspectRatio = frameWidth / frameHeight;\n  const imageAspectRatio = imageWidth / imageHeight;\n  switch (image.fit) {\n    case \"fill\":\n      if (imageAspectRatio > frameAspectRatio) {\n        return imageHeight / frameHeight;\n      } else {\n        return imageWidth / frameWidth;\n      }\n    case \"fit\":\n    case \"stretch\":\n      return Math.max(imageWidth / frameWidth, imageHeight / frameHeight);\n  }\n}\nfunction imageRenderingForZoom(zoom, minPixelatedZoom) {\n  if (minPixelatedZoom && Math.max(1, zoom) > minPixelatedZoom) {\n    return \"pixelated\";\n  }\n  return \"auto\";\n}\n\n// ../../library/src/render/style/BackgroundImageComponent.tsx\nvar wrapperStyle = {\n  position: \"absolute\",\n  borderRadius: \"inherit\",\n  top: 0,\n  right: 0,\n  bottom: 0,\n  left: 0\n};\nvar placeholderStyle = {\n  backgroundSize: \"16px 16px\",\n  backgroundImage: \"repeating-linear-gradient(45deg, rgba(180, 180, 180, 0.8) 0, rgba(180, 180, 180, 0.8) 1px, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.2) 50%)\",\n  border: \"1px solid #c4c4c4\"\n};\nfunction cssObjectFit(imageFit) {\n  switch (imageFit) {\n    case \"fit\":\n      return \"contain\";\n    case \"stretch\":\n      return \"fill\";\n    default:\n      return \"cover\";\n  }\n}\nfunction cssObjectPosition(positionX, positionY) {\n  const x = positionX != null ? positionX : \"center\";\n  const y = positionY != null ? positionY : \"center\";\n  if (x === \"center\" && y === \"center\")\n    return \"center\";\n  return x + \" \" + y;\n}\nfunction cssImageRendering(image, containerSize) {\n  if (!containerSize)\n    return \"auto\";\n  const devicePixelRatio3 = RenderTarget.current() === \"CANVAS\" /* canvas */ ? safeWindow.devicePixelRatio : 1;\n  const minPixelatedZoom = minZoomForPixelatedImageRendering(image, containerSize, devicePixelRatio3);\n  if (RenderTarget.current() === \"CANVAS\" /* canvas */) {\n    return imageRenderingForZoom(1, minPixelatedZoom);\n  } else {\n    return imageRenderingForZoom(RenderEnvironment.zoom, minPixelatedZoom);\n  }\n}\nfunction getImageStyle(image, containerSize) {\n  return {\n    display: \"block\",\n    width: \"100%\",\n    height: \"100%\",\n    borderRadius: \"inherit\",\n    objectPosition: cssObjectPosition(image.positionX, image.positionY),\n    objectFit: cssObjectFit(image.fit),\n    imageRendering: cssImageRendering(image, containerSize)\n  };\n}\nfunction StaticImage({ image, containerSize, nodeId, alt }) {\n  const source = runtime.useImageSource(image, containerSize, nodeId);\n  const imageStyle = getImageStyle(image, containerSize);\n  const [measuredSizes, setMeasuredSizes] = React24.useState();\n  const imageRef = React24.useRef(null);\n  const libraryFeatures = useLibraryFeatures();\n  React24.useEffect(() => {\n    if (!libraryFeatures.imgSizesWorkaroundEnabled)\n      return;\n    const imageElement = imageRef.current;\n    if (!imageElement)\n      return;\n    if (isTest())\n      return;\n    if (!image.sizes)\n      return;\n    const smartComponentParent = imageElement.closest(\"[data-framer-name]\");\n    if (!smartComponentParent)\n      return;\n    const imageNodeWidth = imageElement.clientWidth;\n    const currentSizes = Number(image.sizes.replace(\"px\", \"\"));\n    if (\n      // If we successfully parsed `sizes`, and...\n      !isNaN(currentSizes) && // ...if the image node is smaller than the currently set `sizes`\n      // attribute,..\n      imageNodeWidth < currentSizes\n    ) {\n      return;\n    }\n    setMeasuredSizes(imageNodeWidth + \"px\");\n  }, [image.sizes]);\n  return /* @__PURE__ */ React24.createElement(\n    \"img\",\n    {\n      ref: imageRef,\n      src: source,\n      alt: alt != null ? alt : image.alt,\n      srcSet: image.srcSet,\n      sizes: measuredSizes != null ? measuredSizes : image.sizes,\n      style: imageStyle,\n      loading: image.loading\n    }\n  );\n}\nfunction CanvasImage({ image, containerSize, nodeId }) {\n  const wrapperRef = React24.useRef(null);\n  const imageElement = runtime.useImageElement(image, containerSize, nodeId);\n  const imageStyle = getImageStyle(image, containerSize);\n  React24.useLayoutEffect(() => {\n    const wrapper = wrapperRef.current;\n    if (wrapper === null)\n      return;\n    wrapper.appendChild(imageElement);\n    return () => {\n      wrapper.removeChild(imageElement);\n    };\n  }, [imageElement]);\n  Object.assign(imageElement.style, imageStyle);\n  return /* @__PURE__ */ React24.createElement(\"div\", { ref: wrapperRef, style: { display: \"contents\", borderRadius: \"inherit\" } });\n}\nfunction OptimizedCanvasImage({ nodeId, image, containerSize }) {\n  const wrapperRef = React24.useRef(null);\n  const source = runtime.useImageSource(image, containerSize, nodeId);\n  React24.useLayoutEffect(() => {\n    const wrapper = wrapperRef.current;\n    if (wrapper === null)\n      return;\n    const imageStyle = getImageStyle(image, containerSize);\n    runtime.renderOptimizedCanvasImage(wrapper, source, imageStyle, nodeId);\n  }, [nodeId, image, source, containerSize]);\n  return /* @__PURE__ */ React24.createElement(\"div\", { ref: wrapperRef, style: { display: \"contents\", borderRadius: \"inherit\" } });\n}\nfunction BackgroundImageComponent({ layoutId, image, ...props }) {\n  if (layoutId) {\n    layoutId = layoutId + \"-background\";\n  }\n  const fallbackWrapperStyles = { ...wrapperStyle, ...placeholderStyle };\n  let imageNode = null;\n  if (isString2(image.src)) {\n    if (image.fit === \"tile\" && image.pixelWidth && image.pixelHeight) {\n      const backgroundSize = isNumber(image.backgroundSize) ? image.backgroundSize : 1;\n      const tileSize = {\n        width: Math.round(backgroundSize * image.pixelWidth),\n        height: Math.round(backgroundSize * image.pixelHeight)\n      };\n      const imageSource = runtime.useImageSource(image, tileSize);\n      fallbackWrapperStyles.backgroundImage = `url(${imageSource})`;\n      fallbackWrapperStyles.backgroundRepeat = \"repeat\";\n      fallbackWrapperStyles.backgroundPosition = cssObjectPosition(image.positionX, image.positionY);\n      if (image.pixelWidth) {\n        fallbackWrapperStyles.backgroundSize = `${(backgroundSize * (image.pixelWidth / 2)).toFixed(2)}px auto`;\n      }\n      fallbackWrapperStyles.border = 0;\n      imageNode = null;\n    } else if (RenderTarget.current() !== \"CANVAS\" /* canvas */) {\n      imageNode = /* @__PURE__ */ React24.createElement(StaticImage, { image, ...props });\n    } else if (runtime.canRenderOptimizedCanvasImage(runtime.useImageSource(image))) {\n      imageNode = /* @__PURE__ */ React24.createElement(OptimizedCanvasImage, { image, ...props });\n    } else {\n      imageNode = /* @__PURE__ */ React24.createElement(CanvasImage, { image, ...props });\n    }\n  }\n  return /* @__PURE__ */ React24.createElement(\n    motion.div,\n    {\n      layoutId,\n      style: imageNode ? wrapperStyle : fallbackWrapperStyles,\n      \"data-framer-background-image-wrapper\": true\n    },\n    imageNode\n  );\n}\n\n// ../../library/src/render/types/BackgroundImage.ts\nvar key2 = \"src\";\nvar BackgroundImage;\n((BackgroundImage2) => {\n  BackgroundImage2.isImageObject = function(image) {\n    if (!image || typeof image === \"string\")\n      return false;\n    return key2 in image;\n  };\n})(BackgroundImage || (BackgroundImage = {}));\n\n// ../../library/src/render/style/backgroundImageFromProps.ts\nfunction applyForwardOverrides(background, props) {\n  const { _forwardedOverrideId, _forwardedOverrides, id } = props;\n  const forwardedOverrideId = _forwardedOverrideId != null ? _forwardedOverrideId : id;\n  const src = _forwardedOverrides && forwardedOverrideId ? _forwardedOverrides[forwardedOverrideId] : void 0;\n  if (src && typeof src === \"string\") {\n    background = { ...background, src };\n  }\n  return background;\n}\nfunction backgroundImageFromProps(props) {\n  const { background, image } = props;\n  if (image !== void 0 && background && !BackgroundImage.isImageObject(background)) {\n    return;\n  }\n  let backgroundImage = null;\n  if (isString2(image)) {\n    backgroundImage = { alt: \"\", src: image };\n  } else {\n    backgroundImage = Animatable.get(background, null);\n  }\n  if (!BackgroundImage.isImageObject(backgroundImage)) {\n    return;\n  }\n  return applyForwardOverrides(backgroundImage, props);\n}\n\n// ../../library/src/render/style/BorderComponent.tsx\nimport React25 from \"react\";\nfunction collectBorderStyleForProps(props, style, collapseEqualBorders = true) {\n  const { borderWidth, borderStyle, borderColor } = props;\n  if (!borderWidth) {\n    return;\n  }\n  let borderTop;\n  let borderBottom;\n  let borderLeft;\n  let borderRight;\n  if (typeof borderWidth === \"number\") {\n    borderTop = borderBottom = borderLeft = borderRight = borderWidth;\n  } else {\n    borderTop = borderWidth.top || 0;\n    borderBottom = borderWidth.bottom || 0;\n    borderLeft = borderWidth.left || 0;\n    borderRight = borderWidth.right || 0;\n  }\n  if (borderTop === 0 && borderBottom === 0 && borderLeft === 0 && borderRight === 0) {\n    return;\n  }\n  if (collapseEqualBorders && borderTop === borderBottom && borderTop === borderLeft && borderTop === borderRight) {\n    style.border = `${borderTop}px ${borderStyle} ${borderColor}`;\n    return;\n  }\n  style.borderStyle = props.borderStyle;\n  style.borderColor = props.borderColor;\n  style.borderTopWidth = `${borderTop}px`;\n  style.borderBottomWidth = `${borderBottom}px`;\n  style.borderLeftWidth = `${borderLeft}px`;\n  style.borderRightWidth = `${borderRight}px`;\n}\nfunction Border(props) {\n  const layoutId = props.layoutId ? `${props.layoutId}-border` : void 0;\n  if (!props.borderWidth) {\n    return null;\n  }\n  const style = {\n    position: \"absolute\",\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0,\n    borderRadius: \"inherit\",\n    pointerEvents: \"none\"\n  };\n  if (props.border) {\n    ;\n    style.border = props.border;\n    return /* @__PURE__ */ React25.createElement(motion.div, { style });\n  }\n  collectBorderStyleForProps(props, style, false);\n  return /* @__PURE__ */ React25.createElement(motion.div, { \"data-frame-border\": true, style, layoutId });\n}\n\n// ../../library/src/render/utils/htmlElementAsMotionComponent.ts\nfunction htmlElementAsMotionComponent(asElem) {\n  return asElem && asElem !== \"search\" && asElem !== \"slot\" && asElem !== \"template\" ? motion[asElem] : motion[\"div\"];\n}\n\n// ../../library/src/render/utils/layoutHintDataPropsForCenter.ts\nvar isChrome2 = isChrome();\nfunction layoutHintDataPropsForCenter(center) {\n  const props = {};\n  if (!isChrome2 || RenderTarget.current() !== \"CANVAS\" /* canvas */) {\n    return props;\n  }\n  if (center === true || center === \"x\") {\n    props[\"data-framer-layout-hint-center-x\"] = true;\n  }\n  if (center === true || center === \"y\") {\n    props[\"data-framer-layout-hint-center-y\"] = true;\n  }\n  return props;\n}\n\n// ../../library/src/render/utils/nodeIdFromString.ts\nfunction nodeIdFromString(str) {\n  return str.replace(/^id_/, \"\").replace(/\\\\/g, \"\");\n}\n\n// ../../library/src/render/utils/performanceDebugging.ts\nfunction countNodeRender() {\n  if (true)\n    return;\n  const perf = asRecord(safeWindow)[\"perf\"];\n  if (!perf)\n    return;\n  perf.nodeRender();\n}\n\n// ../../library/src/render/utils/processOverrideForwarding.ts\nimport React26 from \"react\";\nfunction processOverrideForwarding(props, children) {\n  if (!children) {\n    children = props.children;\n    if (!children)\n      return { props, children };\n  }\n  let _forwardedOverrides = props._forwardedOverrides;\n  const extractions = props._overrideForwardingDescription;\n  if (extractions) {\n    _forwardedOverrides = void 0;\n    for (const key7 in extractions) {\n      const propName = extractions[key7];\n      const value = props[propName];\n      if (value !== void 0) {\n        if (!_forwardedOverrides) {\n          _forwardedOverrides = {};\n          props = { ...props };\n        }\n        _forwardedOverrides[key7] = props[propName];\n        delete props[propName];\n      }\n    }\n  }\n  if (!_forwardedOverrides)\n    return { props, children };\n  children = React26.Children.map(children, (child) => {\n    if (!React26.isValidElement(child))\n      return child;\n    return React26.cloneElement(child, { _forwardedOverrides });\n  });\n  return { props, children };\n}\n\n// ../../library/src/render/utils/transformTemplate.ts\nfunction transformTemplate(center) {\n  return (_, generated) => {\n    if (center === true) {\n      return `translate(-50%, -50%) ${generated}`;\n    } else {\n      if (center === \"x\") {\n        return `translateX(-50%) ${generated}`;\n      } else if (center === \"y\") {\n        return `translateY(-50%) ${generated}`;\n      }\n    }\n    return generated || \"none\";\n  };\n}\n\n// ../../library/src/render/utils/useLayoutId.ts\nimport { useContext as useContext3, useMemo as useMemo2 } from \"react\";\nfunction useLayoutId(props, { specificLayoutId, postfix } = {}) {\n  const { name, layoutIdKey, duplicatedFrom, __fromCodeComponentNode = false, drag } = props;\n  const { getLayoutId, enabled } = useContext3(LayoutIdContext);\n  return useMemo2(() => {\n    if (!enabled)\n      return props.layoutId;\n    const existingLayoutId = specificLayoutId || props.layoutId;\n    if (!existingLayoutId) {\n      if (drag || !layoutIdKey || __fromCodeComponentNode)\n        return void 0;\n    }\n    const layoutIdCandidate = existingLayoutId || getLayoutId({ id: layoutIdKey, name, duplicatedFrom });\n    if (!layoutIdCandidate)\n      return void 0;\n    return postfix ? `${layoutIdCandidate}-${postfix}` : layoutIdCandidate;\n  }, [enabled]);\n}\n\n// ../../library/src/render/utils/useMeasureLayout.ts\nimport { useContext as useContext4 } from \"react\";\n\n// ../../library/src/useIsomorphicLayoutEffect.ts\nimport { useEffect as useEffect2, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect2 = typeof document !== \"undefined\" ? useLayoutEffect : useEffect2;\n\n// ../../library/src/render/presentation/ComponentContainerContext.tsx\nimport React27 from \"react\";\nvar ComponentContainerContext = React27.createContext(false);\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js\nvar resizeObservers = [];\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js\nvar hasActiveObservations = function() {\n  return resizeObservers.some(function(ro) {\n    return ro.activeTargets.length > 0;\n  });\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js\nvar hasSkippedObservations = function() {\n  return resizeObservers.some(function(ro) {\n    return ro.skippedTargets.length > 0;\n  });\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js\nvar msg = \"ResizeObserver loop completed with undelivered notifications.\";\nvar deliverResizeLoopError = function() {\n  var event;\n  if (typeof ErrorEvent === \"function\") {\n    event = new ErrorEvent(\"error\", {\n      message: msg\n    });\n  } else {\n    event = document.createEvent(\"Event\");\n    event.initEvent(\"error\", false, false);\n    event.message = msg;\n  }\n  window.dispatchEvent(event);\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js\nvar ResizeObserverBoxOptions;\n(function(ResizeObserverBoxOptions2) {\n  ResizeObserverBoxOptions2[\"BORDER_BOX\"] = \"border-box\";\n  ResizeObserverBoxOptions2[\"CONTENT_BOX\"] = \"content-box\";\n  ResizeObserverBoxOptions2[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/freeze.js\nvar freeze = function(obj) {\n  return Object.freeze(obj);\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js\nvar ResizeObserverSize = function() {\n  function ResizeObserverSize2(inlineSize, blockSize) {\n    this.inlineSize = inlineSize;\n    this.blockSize = blockSize;\n    freeze(this);\n  }\n  return ResizeObserverSize2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js\nvar DOMRectReadOnly = function() {\n  function DOMRectReadOnly2(x, y, width, height) {\n    this.x = x;\n    this.y = y;\n    this.width = width;\n    this.height = height;\n    this.top = this.y;\n    this.left = this.x;\n    this.bottom = this.top + this.height;\n    this.right = this.left + this.width;\n    return freeze(this);\n  }\n  DOMRectReadOnly2.prototype.toJSON = function() {\n    var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n    return { x, y, top, right, bottom, left, width, height };\n  };\n  DOMRectReadOnly2.fromRect = function(rectangle) {\n    return new DOMRectReadOnly2(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n  };\n  return DOMRectReadOnly2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/element.js\nvar isSVG = function(target) {\n  return target instanceof SVGElement && \"getBBox\" in target;\n};\nvar isHidden = function(target) {\n  if (isSVG(target)) {\n    var _a = target.getBBox(), width = _a.width, height = _a.height;\n    return !width && !height;\n  }\n  var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n  return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function(obj) {\n  var _a, _b;\n  if (obj instanceof Element) {\n    return true;\n  }\n  var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n  return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function(target) {\n  switch (target.tagName) {\n    case \"INPUT\":\n      if (target.type !== \"image\") {\n        break;\n      }\n    case \"VIDEO\":\n    case \"AUDIO\":\n    case \"EMBED\":\n    case \"OBJECT\":\n    case \"CANVAS\":\n    case \"IFRAME\":\n    case \"IMG\":\n      return true;\n  }\n  return false;\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/global.js\nvar global = typeof window !== \"undefined\" ? window : {};\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js\nvar cache2 = /* @__PURE__ */ new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = /msie|trident/i.test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function(pixel) {\n  return parseFloat(pixel || \"0\");\n};\nvar size = function(inlineSize, blockSize, switchSizes) {\n  if (inlineSize === void 0) {\n    inlineSize = 0;\n  }\n  if (blockSize === void 0) {\n    blockSize = 0;\n  }\n  if (switchSizes === void 0) {\n    switchSizes = false;\n  }\n  return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n  devicePixelContentBoxSize: size(),\n  borderBoxSize: size(),\n  contentBoxSize: size(),\n  contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function(target, forceRecalculation) {\n  if (forceRecalculation === void 0) {\n    forceRecalculation = false;\n  }\n  if (cache2.has(target) && !forceRecalculation) {\n    return cache2.get(target);\n  }\n  if (isHidden(target)) {\n    cache2.set(target, zeroBoxes);\n    return zeroBoxes;\n  }\n  var cs = getComputedStyle(target);\n  var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n  var removePadding = !IE && cs.boxSizing === \"border-box\";\n  var switchSizes = verticalRegexp.test(cs.writingMode || \"\");\n  var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || \"\");\n  var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || \"\");\n  var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n  var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n  var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n  var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n  var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n  var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n  var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n  var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n  var horizontalPadding = paddingLeft + paddingRight;\n  var verticalPadding = paddingTop + paddingBottom;\n  var horizontalBorderArea = borderLeft + borderRight;\n  var verticalBorderArea = borderTop + borderBottom;\n  var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n  var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n  var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n  var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n  var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n  var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n  var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n  var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n  var boxes = freeze({\n    devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n    borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n    contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n    contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n  });\n  cache2.set(target, boxes);\n  return boxes;\n};\nvar calculateBoxSize = function(target, observedBox, forceRecalculation) {\n  var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n  switch (observedBox) {\n    case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n      return devicePixelContentBoxSize;\n    case ResizeObserverBoxOptions.BORDER_BOX:\n      return borderBoxSize;\n    default:\n      return contentBoxSize;\n  }\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js\nvar ResizeObserverEntry = function() {\n  function ResizeObserverEntry2(target) {\n    var boxes = calculateBoxSizes(target);\n    this.target = target;\n    this.contentRect = boxes.contentRect;\n    this.borderBoxSize = freeze([boxes.borderBoxSize]);\n    this.contentBoxSize = freeze([boxes.contentBoxSize]);\n    this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n  }\n  return ResizeObserverEntry2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js\nvar calculateDepthForNode = function(node) {\n  if (isHidden(node)) {\n    return Infinity;\n  }\n  var depth = 0;\n  var parent = node.parentNode;\n  while (parent) {\n    depth += 1;\n    parent = parent.parentNode;\n  }\n  return depth;\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js\nvar broadcastActiveObservations = function() {\n  var shallowestDepth = Infinity;\n  var callbacks2 = [];\n  resizeObservers.forEach(function processObserver(ro) {\n    if (ro.activeTargets.length === 0) {\n      return;\n    }\n    var entries = [];\n    ro.activeTargets.forEach(function processTarget(ot) {\n      var entry = new ResizeObserverEntry(ot.target);\n      var targetDepth = calculateDepthForNode(ot.target);\n      entries.push(entry);\n      ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n      if (targetDepth < shallowestDepth) {\n        shallowestDepth = targetDepth;\n      }\n    });\n    callbacks2.push(function resizeObserverCallback() {\n      ro.callback.call(ro.observer, entries, ro.observer);\n    });\n    ro.activeTargets.splice(0, ro.activeTargets.length);\n  });\n  for (var _i = 0, callbacks_1 = callbacks2; _i < callbacks_1.length; _i++) {\n    var callback = callbacks_1[_i];\n    callback();\n  }\n  return shallowestDepth;\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js\nvar gatherActiveObservationsAtDepth = function(depth) {\n  resizeObservers.forEach(function processObserver(ro) {\n    ro.activeTargets.splice(0, ro.activeTargets.length);\n    ro.skippedTargets.splice(0, ro.skippedTargets.length);\n    ro.observationTargets.forEach(function processTarget(ot) {\n      if (ot.isActive()) {\n        if (calculateDepthForNode(ot.target) > depth) {\n          ro.activeTargets.push(ot);\n        } else {\n          ro.skippedTargets.push(ot);\n        }\n      }\n    });\n  });\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/process.js\nvar process3 = function() {\n  var depth = 0;\n  gatherActiveObservationsAtDepth(depth);\n  while (hasActiveObservations()) {\n    depth = broadcastActiveObservations();\n    gatherActiveObservationsAtDepth(depth);\n  }\n  if (hasSkippedObservations()) {\n    deliverResizeLoopError();\n  }\n  return depth > 0;\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js\nvar trigger;\nvar callbacks = [];\nvar notify = function() {\n  return callbacks.splice(0).forEach(function(cb) {\n    return cb();\n  });\n};\nvar queueMicroTask = function(callback) {\n  if (!trigger) {\n    var toggle_1 = 0;\n    var el_1 = document.createTextNode(\"\");\n    var config = { characterData: true };\n    new MutationObserver(function() {\n      return notify();\n    }).observe(el_1, config);\n    trigger = function() {\n      el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++);\n    };\n  }\n  callbacks.push(callback);\n  trigger();\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js\nvar queueResizeObserver = function(cb) {\n  queueMicroTask(function ResizeObserver2() {\n    requestAnimationFrame(cb);\n  });\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/utils/scheduler.js\nvar watching = 0;\nvar isWatching = function() {\n  return !!watching;\n};\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n  \"resize\",\n  \"load\",\n  \"transitionend\",\n  \"animationend\",\n  \"animationstart\",\n  \"animationiteration\",\n  \"keyup\",\n  \"keydown\",\n  \"mouseup\",\n  \"mousedown\",\n  \"mouseover\",\n  \"mouseout\",\n  \"blur\",\n  \"focus\"\n];\nvar time = function(timeout) {\n  if (timeout === void 0) {\n    timeout = 0;\n  }\n  return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = function() {\n  function Scheduler2() {\n    var _this = this;\n    this.stopped = true;\n    this.listener = function() {\n      return _this.schedule();\n    };\n  }\n  Scheduler2.prototype.run = function(timeout) {\n    var _this = this;\n    if (timeout === void 0) {\n      timeout = CATCH_PERIOD;\n    }\n    if (scheduled) {\n      return;\n    }\n    scheduled = true;\n    var until = time(timeout);\n    queueResizeObserver(function() {\n      var elementsHaveResized = false;\n      try {\n        elementsHaveResized = process3();\n      } finally {\n        scheduled = false;\n        timeout = until - time();\n        if (!isWatching()) {\n          return;\n        }\n        if (elementsHaveResized) {\n          _this.run(1e3);\n        } else if (timeout > 0) {\n          _this.run(timeout);\n        } else {\n          _this.start();\n        }\n      }\n    });\n  };\n  Scheduler2.prototype.schedule = function() {\n    this.stop();\n    this.run();\n  };\n  Scheduler2.prototype.observe = function() {\n    var _this = this;\n    var cb = function() {\n      return _this.observer && _this.observer.observe(document.body, observerConfig);\n    };\n    document.body ? cb() : global.addEventListener(\"DOMContentLoaded\", cb);\n  };\n  Scheduler2.prototype.start = function() {\n    var _this = this;\n    if (this.stopped) {\n      this.stopped = false;\n      this.observer = new MutationObserver(this.listener);\n      this.observe();\n      events.forEach(function(name) {\n        return global.addEventListener(name, _this.listener, true);\n      });\n    }\n  };\n  Scheduler2.prototype.stop = function() {\n    var _this = this;\n    if (!this.stopped) {\n      this.observer && this.observer.disconnect();\n      events.forEach(function(name) {\n        return global.removeEventListener(name, _this.listener, true);\n      });\n      this.stopped = true;\n    }\n  };\n  return Scheduler2;\n}();\nvar scheduler = new Scheduler();\nvar updateCount = function(n) {\n  !watching && n > 0 && scheduler.start();\n  watching += n;\n  !watching && scheduler.stop();\n};\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObservation.js\nvar skipNotifyOnElement = function(target) {\n  return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === \"inline\";\n};\nvar ResizeObservation = function() {\n  function ResizeObservation2(target, observedBox) {\n    this.target = target;\n    this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n    this.lastReportedSize = {\n      inlineSize: 0,\n      blockSize: 0\n    };\n  }\n  ResizeObservation2.prototype.isActive = function() {\n    var size2 = calculateBoxSize(this.target, this.observedBox, true);\n    if (skipNotifyOnElement(this.target)) {\n      this.lastReportedSize = size2;\n    }\n    if (this.lastReportedSize.inlineSize !== size2.inlineSize || this.lastReportedSize.blockSize !== size2.blockSize) {\n      return true;\n    }\n    return false;\n  };\n  return ResizeObservation2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js\nvar ResizeObserverDetail = function() {\n  function ResizeObserverDetail2(resizeObserver, callback) {\n    this.activeTargets = [];\n    this.skippedTargets = [];\n    this.observationTargets = [];\n    this.observer = resizeObserver;\n    this.callback = callback;\n  }\n  return ResizeObserverDetail2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js\nvar observerMap = /* @__PURE__ */ new WeakMap();\nvar getObservationIndex = function(observationTargets, target) {\n  for (var i = 0; i < observationTargets.length; i += 1) {\n    if (observationTargets[i].target === target) {\n      return i;\n    }\n  }\n  return -1;\n};\nvar ResizeObserverController = function() {\n  function ResizeObserverController2() {\n  }\n  ResizeObserverController2.connect = function(resizeObserver, callback) {\n    var detail = new ResizeObserverDetail(resizeObserver, callback);\n    observerMap.set(resizeObserver, detail);\n  };\n  ResizeObserverController2.observe = function(resizeObserver, target, options) {\n    var detail = observerMap.get(resizeObserver);\n    var firstObservation = detail.observationTargets.length === 0;\n    if (getObservationIndex(detail.observationTargets, target) < 0) {\n      firstObservation && resizeObservers.push(detail);\n      detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n      updateCount(1);\n      scheduler.schedule();\n    }\n  };\n  ResizeObserverController2.unobserve = function(resizeObserver, target) {\n    var detail = observerMap.get(resizeObserver);\n    var index = getObservationIndex(detail.observationTargets, target);\n    var lastObservation = detail.observationTargets.length === 1;\n    if (index >= 0) {\n      lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n      detail.observationTargets.splice(index, 1);\n      updateCount(-1);\n    }\n  };\n  ResizeObserverController2.disconnect = function(resizeObserver) {\n    var _this = this;\n    var detail = observerMap.get(resizeObserver);\n    detail.observationTargets.slice().forEach(function(ot) {\n      return _this.unobserve(resizeObserver, ot.target);\n    });\n    detail.activeTargets.splice(0, detail.activeTargets.length);\n  };\n  return ResizeObserverController2;\n}();\n\n// ../../../node_modules/@juggle/resize-observer/lib/ResizeObserver.js\nvar ResizeObserver = function() {\n  function ResizeObserver2(callback) {\n    if (arguments.length === 0) {\n      throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n    }\n    if (typeof callback !== \"function\") {\n      throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n    }\n    ResizeObserverController.connect(this, callback);\n  }\n  ResizeObserver2.prototype.observe = function(target, options) {\n    if (arguments.length === 0) {\n      throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n    }\n    if (!isElement(target)) {\n      throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n    }\n    ResizeObserverController.observe(this, target, options);\n  };\n  ResizeObserver2.prototype.unobserve = function(target) {\n    if (arguments.length === 0) {\n      throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n    }\n    if (!isElement(target)) {\n      throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n    }\n    ResizeObserverController.unobserve(this, target);\n  };\n  ResizeObserver2.prototype.disconnect = function() {\n    ResizeObserverController.disconnect(this);\n  };\n  ResizeObserver2.toString = function() {\n    return \"function ResizeObserver () { [polyfill code] }\";\n  };\n  return ResizeObserver2;\n}();\n\n// ../../library/src/components/hoc/withMeasuredSize.tsx\nimport React29, { useEffect as useEffect3 } from \"react\";\n\n// ../../library/src/modules/useForceUpdate.ts\nimport React28 from \"react\";\nfunction useForceUpdate3() {\n  const [_, setForcedRenderCount] = React28.useState(0);\n  return React28.useCallback(() => setForcedRenderCount((v) => v + 1), []);\n}\n\n// ../../library/src/components/hoc/withMeasuredSize.tsx\nvar DEFAULT_SIZE = 200;\nvar _sharedResizeObserver, _callbacks;\nvar SharedObserver = class {\n  constructor() {\n    __privateAdd(this, _sharedResizeObserver, void 0);\n    __privateAdd(this, _callbacks, /* @__PURE__ */ new WeakMap());\n    var _a;\n    const ResizeObserver2 = (_a = safeWindow.ResizeObserver) != null ? _a : ResizeObserver;\n    __privateSet(this, _sharedResizeObserver, new ResizeObserver2(this.updateResizedElements.bind(this)));\n  }\n  updateResizedElements(entries) {\n    for (const entry of entries) {\n      const callbackForElement = __privateGet(this, _callbacks).get(entry.target);\n      if (callbackForElement)\n        callbackForElement(entry.contentRect);\n    }\n  }\n  observeElementWithCallback(element, callback) {\n    __privateGet(this, _sharedResizeObserver).observe(element);\n    __privateGet(this, _callbacks).set(element, callback);\n  }\n  unobserve(element) {\n    __privateGet(this, _sharedResizeObserver).unobserve(element);\n    __privateGet(this, _callbacks).delete(element);\n  }\n};\n_sharedResizeObserver = new WeakMap();\n_callbacks = new WeakMap();\nvar sharedResizeObserver = isBrowser2() ? new SharedObserver() : void 0;\nfunction useRerenderOnResize(ref) {\n  const update = useForceUpdate3();\n  useEffect3(() => {\n    const element = ref == null ? void 0 : ref.current;\n    if (!element)\n      return;\n    sharedResizeObserver == null ? void 0 : sharedResizeObserver.observeElementWithCallback(ref.current, update);\n    return () => {\n      sharedResizeObserver == null ? void 0 : sharedResizeObserver.unobserve(element);\n    };\n  }, [ref, update]);\n}\nfunction useMeasuredSize(ref) {\n  const forceUpdate = useForceUpdate3();\n  const size2 = React29.useRef(null);\n  function updateSize(newSize) {\n    if (newSize.width === 0 && newSize.height === 0)\n      return;\n    if (!size2.current || newSize.height !== size2.current.height || newSize.width !== size2.current.width) {\n      size2.current = { width: newSize.width, height: newSize.height };\n      forceUpdate();\n    }\n  }\n  useIsomorphicLayoutEffect2(() => {\n    if (!ref.current)\n      return;\n    const { offsetWidth, offsetHeight } = ref.current;\n    updateSize({\n      width: offsetWidth,\n      height: offsetHeight\n    });\n    sharedResizeObserver.observeElementWithCallback(ref.current, updateSize);\n    return () => {\n      if (!ref.current)\n        return;\n      sharedResizeObserver.unobserve(ref.current);\n    };\n  }, []);\n  return size2.current;\n}\nvar SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE = \"data-framer-size-compatibility-wrapper\";\nvar withMeasuredSize = (Component14) => (props) => {\n  var _a, _b, _c, _d;\n  const ref = React29.useRef(null);\n  const size2 = useMeasuredSize(ref);\n  const dataProps = { [SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE]: true };\n  const shouldRender = Boolean(size2);\n  const fallbackWidth = (_a = props.width) != null ? _a : DEFAULT_SIZE;\n  const fallbackHeight = (_b = props.height) != null ? _b : DEFAULT_SIZE;\n  return /* @__PURE__ */ React29.createElement(\"div\", { style: { width: \"100%\", height: \"100%\", pointerEvents: \"none\" }, ref, ...dataProps }, shouldRender && /* @__PURE__ */ React29.createElement(\n    Component14,\n    {\n      ...props,\n      width: (_c = size2 == null ? void 0 : size2.width) != null ? _c : fallbackWidth,\n      height: (_d = size2 == null ? void 0 : size2.height) != null ? _d : fallbackHeight\n    }\n  ));\n};\n\n// ../../library/src/render/utils/getMeasurableCodeComponentChildren.ts\nfunction getMeasurableCodeComponentChildren(element) {\n  const childrenCollection = element.firstElementChild && element.firstElementChild.hasAttribute(SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE) ? element.firstElementChild.children : element.children;\n  return [...childrenCollection].filter(isMeasurable).map(unwrapInlinedDisplayContents);\n}\nfunction isMeasurable(element) {\n  if (element instanceof HTMLBaseElement || element instanceof HTMLHeadElement || element instanceof HTMLLinkElement || element instanceof HTMLMetaElement || element instanceof HTMLScriptElement || element instanceof HTMLStyleElement || element instanceof HTMLTitleElement) {\n    return false;\n  }\n  return element instanceof HTMLElement || element instanceof SVGElement;\n}\nfunction unwrapInlinedDisplayContents(element) {\n  if (!(element instanceof HTMLElement))\n    return element;\n  if (element.children.length === 0)\n    return element;\n  if (element.style.display !== \"contents\")\n    return element;\n  const firstMeasurableChild = [...element.children].find(isMeasurable);\n  if (firstMeasurableChild) {\n    return unwrapInlinedDisplayContents(firstMeasurableChild);\n  }\n  return element;\n}\n\n// ../../library/src/render/utils/useMeasureLayout.ts\nfunction useMeasureLayout(props, ref, getChildren = () => [], options = {}) {\n  const { id, visible, _needsMeasure } = props;\n  const { skipHook = false } = options;\n  const inCodeComponent = Boolean(useContext4(ComponentContainerContext));\n  const onCanvas = RenderTarget.current() === \"CANVAS\" /* canvas */;\n  useIsomorphicLayoutEffect2(() => {\n    if (!onCanvas || inCodeComponent || skipHook) {\n      return;\n    }\n    if (!(ref.current && id && visible && _needsMeasure)) {\n      return;\n    }\n    runtime.queueMeasureRequest(nodeIdFromString(id), ref.current, getChildren(ref.current));\n  });\n}\nfunction measureClosestComponentContainer(element) {\n  const container = element.closest(\"[data-framer-component-container]\");\n  if (!container)\n    return;\n  runtime.queueMeasureRequest(\n    nodeIdFromString(container.id),\n    container,\n    getMeasurableCodeComponentChildren(container)\n  );\n}\n\n// ../../library/src/render/presentation/Layer.tsx\nimport { Component as Component3 } from \"react\";\n\n// ../../library/src/utils/objectKeys.ts\nvar objectKeys = Object.keys;\n\n// ../../library/src/render/utils/isEqual.ts\nfunction hasProp(o, prop) {\n  return Object.prototype.hasOwnProperty.call(o, prop);\n}\nfunction withEquals(o) {\n  if (!hasProp(o, \"equals\"))\n    return false;\n  return typeof o.equals === \"function\";\n}\nfunction valueEqual(a, b) {\n  if (a === b)\n    return true;\n  return a !== a && b !== b;\n}\nfunction arrayShallowEqual(a, b) {\n  const length = a.length;\n  if (length !== b.length)\n    return false;\n  for (let i = length; i-- !== 0; ) {\n    if (!valueEqual(a[i], b[i]))\n      return false;\n  }\n  return true;\n}\nfunction arrayDeepEqual(a, b) {\n  const length = a.length;\n  if (length !== b.length)\n    return false;\n  for (let i = length; i-- !== 0; ) {\n    if (!equal(a[i], b[i], true))\n      return false;\n  }\n  return true;\n}\nfunction mapShallowEqual(a, b) {\n  if (a.size !== b.size)\n    return false;\n  for (const [key7, aValue] of a.entries()) {\n    if (!valueEqual(aValue, b.get(key7)))\n      return false;\n  }\n  return true;\n}\nfunction mapDeepEqual(a, b) {\n  if (a.size !== b.size)\n    return false;\n  for (const [key7, aValue] of a.entries()) {\n    if (!equal(aValue, b.get(key7), true))\n      return false;\n  }\n  return true;\n}\nfunction setEqual(a, b) {\n  if (a.size !== b.size)\n    return false;\n  for (const aValue of a.keys()) {\n    if (!b.has(aValue))\n      return false;\n  }\n  return true;\n}\nfunction objectShallowEqual(a, b) {\n  const keys3 = objectKeys(a);\n  if (keys3.length !== objectKeys(b).length)\n    return false;\n  for (const key7 of keys3) {\n    if (!hasProp(b, key7))\n      return false;\n    if (key7 === \"_owner\" && hasProp(a, \"$$typeof\") && a.$$typeof) {\n      continue;\n    }\n    if (!valueEqual(a[key7], b[key7]))\n      return false;\n  }\n  return true;\n}\nfunction objectDeepEqual(a, b) {\n  const keys3 = objectKeys(a);\n  if (keys3.length !== objectKeys(b).length)\n    return false;\n  for (const key7 of keys3) {\n    if (!hasProp(b, key7))\n      return false;\n    if (key7 === \"_owner\" && hasProp(a, \"$$typeof\") && a.$$typeof) {\n      continue;\n    }\n    if (!equal(a[key7], b[key7], true))\n      return false;\n  }\n  return true;\n}\nfunction equal(a, b, deep) {\n  if (a === b)\n    return true;\n  if (!a || !b)\n    return a !== a && b !== b;\n  const typeA = typeof a;\n  const typeB = typeof b;\n  if (typeA !== typeB)\n    return false;\n  if (typeA !== \"object\")\n    return false;\n  const aIsArray = Array.isArray(a);\n  const bIsArray = Array.isArray(b);\n  if (aIsArray && bIsArray) {\n    if (deep) {\n      return arrayDeepEqual(a, b);\n    } else {\n      return arrayShallowEqual(a, b);\n    }\n  } else if (aIsArray !== bIsArray) {\n    return false;\n  }\n  const aIsMap = a instanceof Map;\n  const bIsMap = b instanceof Map;\n  if (aIsMap && bIsMap) {\n    if (deep) {\n      return mapDeepEqual(a, b);\n    } else {\n      return mapShallowEqual(a, b);\n    }\n  } else if (aIsMap !== bIsMap) {\n    return false;\n  }\n  const aIsSet = a instanceof Set;\n  const bIsSet = b instanceof Set;\n  if (aIsSet && bIsSet) {\n    return setEqual(a, b);\n  } else if (aIsSet !== bIsSet) {\n    return false;\n  }\n  const dateA = a instanceof Date;\n  const dateB = b instanceof Date;\n  if (dateA && dateB) {\n    return a.getTime() === b.getTime();\n  } else if (dateA !== dateB) {\n    return false;\n  }\n  const regexpA = a instanceof RegExp;\n  const regexpB = b instanceof RegExp;\n  if (regexpA && regexpB) {\n    return a.toString() === b.toString();\n  } else if (regexpA !== regexpB) {\n    return false;\n  }\n  if (withEquals(a) && withEquals(b)) {\n    return a.equals(b);\n  }\n  if (deep) {\n    return objectDeepEqual(a, b);\n  } else {\n    return objectShallowEqual(a, b);\n  }\n}\nfunction isEqual(a, b, deep = true) {\n  try {\n    return equal(a, b, deep);\n  } catch (error) {\n    if (error instanceof Error && error.message.match(/stack|recursion/i)) {\n      console.warn(\"Warning: isEqual does not handle circular references.\", error.name, error.message);\n      return false;\n    }\n    throw error;\n  }\n}\n\n// ../../library/src/render/utils/setLayerBacked.ts\nvar smallValue = \"0.000001px\";\nvar translateZ = ` translateZ(${smallValue})`;\nvar useTranslateZHack = isFramerX() || isSafari() || isTest();\nfunction forceLayerBackingWithMotionStyle(motionStyle) {\n  motionStyle.willChange = \"transform\";\n  const onCanvas = RenderTarget.current() === \"CANVAS\" /* canvas */;\n  if (useTranslateZHack && onCanvas) {\n    motionStyle.translateZ = smallValue;\n  }\n}\nfunction forceLayerBackingWithCSSProperties(cssProperties) {\n  cssProperties.willChange = \"transform\";\n  setTranslateZHack(cssProperties, true);\n}\nfunction setTranslateZHack(style, enabled) {\n  const onCanvas = RenderTarget.current() === \"CANVAS\" /* canvas */;\n  if (!useTranslateZHack || !onCanvas) {\n    return;\n  }\n  const transform2 = style.transform || \"\";\n  if (enabled) {\n    const hasTranslateZ = transform2.includes(translateZ);\n    if (!hasTranslateZ) {\n      style.transform = transform2 + translateZ;\n    }\n  } else {\n    style.transform = transform2.replace(translateZ, \"\");\n  }\n}\n\n// ../../library/src/render/utils/useWebkitFixes.ts\nimport { useEffect as useEffect4, useRef as useRef4 } from \"react\";\nfunction resetSetStyle(element, key7, toValue, microtask = true) {\n  if (!element) {\n    return;\n  }\n  const style = asRecord(element.style);\n  const value = toValue ? toValue : style[key7];\n  const reset = () => {\n    style[key7] = value;\n  };\n  style[key7] = null;\n  if (microtask) {\n    void Promise.resolve().then(reset);\n  } else {\n    setTimeout(reset, 0);\n  }\n}\n\n// ../../library/src/render/presentation/Layer.tsx\nvar Layer = class extends Component3 {\n  constructor() {\n    super(...arguments);\n    this.layerElement = null;\n    this.setLayerElement = (element) => {\n      this.layerElement = element;\n    };\n  }\n  static applyWillChange(props, style, usingMotionStyle) {\n    if (props.willChangeTransform) {\n      if (usingMotionStyle) {\n        forceLayerBackingWithMotionStyle(style);\n      } else {\n        forceLayerBackingWithCSSProperties(style);\n      }\n    }\n  }\n  /** @internal */\n  shouldComponentUpdate(nextProps, nextState) {\n    return nextProps._needsMeasure || this.state !== nextState || !isEqual(this.props, nextProps);\n  }\n  /** @internal */\n  componentDidUpdate(prevProps) {\n    if (asRecord(this.props)[\"clip\"] && asRecord(this.props)[\"radius\"] === 0 && asRecord(prevProps)[\"radius\"] !== 0) {\n      resetSetStyle(this.layerElement, \"overflow\", \"hidden\", false);\n    }\n  }\n};\nLayer.defaultProps = {};\n\n// ../../library/src/utils/memoize.ts\nfunction manageCache(cache3, maxEntries) {\n  const size2 = cache3.size;\n  if (size2 < maxEntries)\n    return;\n  let i = Math.round(Math.random());\n  for (const key7 of cache3.keys()) {\n    if ((++i & 1) === 1)\n      continue;\n    cache3.delete(key7);\n  }\n}\nfunction memoize2(maxEntries, cache3, key7, create) {\n  const r = cache3.get(key7);\n  if (r)\n    return r;\n  manageCache(cache3, maxEntries);\n  const g = create(key7);\n  cache3.set(key7, g);\n  return g;\n}\n\n// ../../library/src/utils/string.ts\nvar hash = (value) => {\n  let hasher = 0, i, chr;\n  if (value.length === 0)\n    return hasher;\n  for (i = 0; i < value.length; i++) {\n    chr = value.charCodeAt(i);\n    hasher = (hasher << 5) - hasher + chr;\n    hasher |= 0;\n  }\n  return hasher;\n};\n\n// ../../library/src/render/types/Color/ConvertColor.ts\nvar ConvertColor = {\n  hueRotate: (color2, angle) => {\n    return Color.toHslString(Color.hueRotate(Color(color2), angle));\n  },\n  setAlpha: (color2, alpha) => {\n    return Color.toRgbString(Color.alpha(Color(color2), alpha));\n  },\n  getAlpha: (color2) => {\n    const obj = stringToObject(color2);\n    return obj ? obj.a : 1;\n  },\n  multiplyAlpha: (color2, alpha) => {\n    return Color.toRgbString(Color.multiplyAlpha(Color(color2), alpha));\n  },\n  toHex: (color2) => {\n    return Color.toHexString(Color(color2)).toUpperCase();\n  },\n  toRgb: (color2) => {\n    return Color.toRgb(Color(color2));\n  },\n  toRgbString: (color2) => {\n    return Color.toRgbString(Color(color2));\n  },\n  toHSV: (color2) => {\n    return Color.toHsv(Color(color2));\n  },\n  toHSL: (color2) => {\n    return Color.toHsl(Color(color2));\n  },\n  toHslString: (color2) => {\n    return Color.toHslString(Color(color2));\n  },\n  toHsvString: (color2) => {\n    return Color.toHsvString(Color(color2));\n  },\n  hsvToHSLString: (hsv) => {\n    return Color.toHslString(Color(hsvToStr(hsv.h, hsv.s, hsv.v, hsv.a)));\n  },\n  hsvToHex: (hsv) => {\n    return Color.toHexString(Color(hsvToStr(hsv.h, hsv.s, hsv.v, hsv.a))).toUpperCase();\n  },\n  hsvToRgbString: (hsv) => {\n    return Color.toRgbString(Color(hsvToStr(hsv.h, hsv.s, hsv.v, hsv.a)));\n  },\n  hsvToString: (hsv) => {\n    return hsvToStr(hsv.h, hsv.s, hsv.v);\n  },\n  rgbaToString: (color2) => {\n    return Color.toRgbString(Color(color2));\n  },\n  rgbToHexString: (color2) => {\n    return Color.toHexString(Color(color2));\n  },\n  hslToString: (color2) => {\n    return Color.toHslString(Color(color2));\n  },\n  hslToRgbString: (color2) => {\n    return Color.toRgbString(Color(color2));\n  },\n  toColorPickerSquare: (h) => {\n    return Color.toRgbString(Color({ h, s: 1, l: 0.5, a: 1 }));\n  },\n  isValid: (color2) => {\n    return Color(color2).isValid !== false;\n  },\n  equals: (a, b) => {\n    if (typeof a === \"string\") {\n      a = Color(a);\n    }\n    if (typeof b === \"string\") {\n      b = Color(b);\n    }\n    return Color.equal(a, b);\n  },\n  toHexOrRgbaString: (input) => {\n    const color2 = Color(input);\n    return color2.a !== 1 ? Color.toRgbString(color2) : Color.toHexString(color2);\n  }\n};\n\n// ../../library/src/render/utils/gradientColorStops.ts\nvar CSSVariableRegExp = /var\\(.+\\)/;\nvar colorCache = /* @__PURE__ */ new Map();\nfunction cachedMultiplyAlpha(s, a) {\n  const key7 = [s, a];\n  if (CSSVariableRegExp.test(s)) {\n    return s;\n  }\n  return memoize2(1e3, colorCache, key7, () => ConvertColor.multiplyAlpha(s, a));\n}\nfunction gradientColorStops(gradient, alpha = 1) {\n  let stops;\n  if (\"stops\" in gradient) {\n    stops = gradient.stops;\n  } else {\n    stops = [\n      { value: gradient.start, position: 0 },\n      { value: gradient.end, position: 1 }\n    ];\n  }\n  if (alpha === 1) {\n    return stops;\n  } else {\n    return stops.map((stop) => ({ ...stop, value: cachedMultiplyAlpha(stop.value, alpha) }));\n  }\n}\nfunction gradientColorStopsHash(gradient, alpha) {\n  let result = 0;\n  gradientColorStops(gradient, alpha).forEach((stop) => {\n    result ^= hash(stop.value) ^ stop.position;\n  });\n  return result;\n}\n\n// ../../library/src/render/types/MultiStopGradient.ts\nvar multiStopGradientKeys = [\"stops\"];\nfunction isMultiStopGradient(value) {\n  return value && multiStopGradientKeys.every((key7) => key7 in value);\n}\n\n// ../../library/src/render/types/SimpleGradient.ts\nvar simpleGradientKeys = [\"start\", \"end\"];\nfunction isSimpleGradient(value) {\n  return value && simpleGradientKeys.every((key7) => key7 in value);\n}\n\n// ../../library/src/render/types/LinearGradient.ts\nvar linearGradientKeys = [\"angle\", \"alpha\"];\nvar LinearGradient = {\n  /**\n   * @param value -\n   */\n  isLinearGradient: (value) => {\n    return value && linearGradientKeys.every((key7) => key7 in value) && (isSimpleGradient(value) || isMultiStopGradient(value));\n  },\n  /** @internal */\n  hash: (linearGradient) => {\n    return linearGradient.angle ^ gradientColorStopsHash(linearGradient, linearGradient.alpha);\n  },\n  /** @internal */\n  toCSS: (linearGradient, overrideAngle) => {\n    const stops = gradientColorStops(linearGradient, linearGradient.alpha);\n    const angle = overrideAngle !== void 0 ? overrideAngle : linearGradient.angle;\n    const cssStops = stops.map((stop) => `${stop.value} ${stop.position * 100}%`);\n    return `linear-gradient(${angle}deg, ${cssStops.join(\", \")})`;\n  }\n};\n\n// ../../library/src/render/types/RadialGradient.ts\nvar radialGradientKeys = [\n  \"widthFactor\",\n  \"heightFactor\",\n  \"centerAnchorX\",\n  \"centerAnchorY\",\n  \"alpha\"\n];\nvar RadialGradient = {\n  /**\n   * @param value -\n   * @public\n   */\n  isRadialGradient: (value) => {\n    return value && radialGradientKeys.every((key7) => key7 in value) && (isSimpleGradient(value) || isMultiStopGradient(value));\n  },\n  /** @internal */\n  hash: (radialGradient) => {\n    return radialGradient.centerAnchorX ^ radialGradient.centerAnchorY ^ radialGradient.widthFactor ^ radialGradient.heightFactor ^ gradientColorStopsHash(radialGradient, radialGradient.alpha);\n  },\n  /** @internal */\n  toCSS: (radialGradient) => {\n    const { alpha, widthFactor, heightFactor, centerAnchorX, centerAnchorY } = radialGradient;\n    const stops = gradientColorStops(radialGradient, alpha);\n    const cssStops = stops.map((stop) => `${stop.value} ${stop.position * 100}%`);\n    return `radial-gradient(${widthFactor * 100}% ${heightFactor * 100}% at ${centerAnchorX * 100}% ${centerAnchorY * 100}%, ${cssStops.join(\", \")})`;\n  }\n};\n\n// ../../library/src/render/traits/Background.ts\nfunction collectBackgroundFromProps({ background, backgroundColor }, style) {\n  if (backgroundColor) {\n    if (typeof backgroundColor === \"string\" || isMotionValue2(backgroundColor)) {\n      style.backgroundColor = backgroundColor;\n    } else if (Color.isColorObject(background)) {\n      style.backgroundColor = background.initialValue || Color.toRgbString(background);\n    }\n  } else if (background) {\n    background = Animatable.get(background, null);\n    if (typeof background === \"string\" || isMotionValue2(background)) {\n      style.background = background;\n    } else if (LinearGradient.isLinearGradient(background)) {\n      style.background = LinearGradient.toCSS(background);\n    } else if (RadialGradient.isRadialGradient(background)) {\n      style.background = RadialGradient.toCSS(background);\n    } else if (Color.isColorObject(background)) {\n      style.backgroundColor = background.initialValue || Color.toRgbString(background);\n    }\n  }\n}\n\n// ../../library/src/render/utils/extractStyleFromProps.ts\nfunction extractStyleFromProps(props, name, styleRef, into) {\n  if (into === void 0) {\n    into = name;\n  }\n  if (props[name] !== void 0) {\n    styleRef[into] = props[name];\n    return;\n  }\n}\n\n// ../../library/src/render/presentation/Frame/getStyleForFrameProps.ts\nfunction hasLeftAndRight(style) {\n  if (!style)\n    return false;\n  return style.left !== void 0 && style.right !== void 0;\n}\nfunction hasTopAndBottom(style) {\n  if (!style)\n    return false;\n  return style.top !== void 0 && style.bottom !== void 0;\n}\nfunction getStyleForFrameProps(props) {\n  if (!props) {\n    return {};\n  }\n  const style = {};\n  if (props.preserve3d === true) {\n    style.transformStyle = \"preserve-3d\";\n  } else if (props.preserve3d === false) {\n    style.transformStyle = \"flat\";\n  }\n  if (props.backfaceVisible === true) {\n    style.backfaceVisibility = \"visible\";\n  } else if (props.backfaceVisible === false) {\n    style.backfaceVisibility = \"hidden\";\n  }\n  if (style.backfaceVisibility) {\n    style.WebkitBackfaceVisibility = style.backfaceVisibility;\n  }\n  if (props.perspective !== void 0) {\n    style.perspective = style.WebkitPerspective = props.perspective;\n  }\n  if (!props.__fromCanvasComponent) {\n    if (props.center === true) {\n      style.left = \"50%\";\n      style.top = \"50%\";\n    } else {\n      if (props.center === \"x\") {\n        style.left = \"50%\";\n      } else if (props.center === \"y\") {\n        style.top = \"50%\";\n      }\n    }\n  }\n  extractStyleFromProps(props, \"size\", style);\n  extractStyleFromProps(props, \"width\", style);\n  extractStyleFromProps(props, \"height\", style);\n  extractStyleFromProps(props, \"minWidth\", style);\n  extractStyleFromProps(props, \"minHeight\", style);\n  extractStyleFromProps(props, \"top\", style);\n  extractStyleFromProps(props, \"right\", style);\n  extractStyleFromProps(props, \"bottom\", style);\n  extractStyleFromProps(props, \"left\", style);\n  extractStyleFromProps(props, \"position\", style);\n  extractStyleFromProps(props, \"overflow\", style);\n  extractStyleFromProps(props, \"opacity\", style);\n  if (!props._border || !props._border.borderWidth)\n    extractStyleFromProps(props, \"border\", style);\n  extractStyleFromProps(props, \"borderRadius\", style);\n  extractStyleFromProps(props, \"radius\", style, \"borderRadius\");\n  extractStyleFromProps(props, \"color\", style);\n  extractStyleFromProps(props, \"shadow\", style, \"boxShadow\");\n  extractStyleFromProps(props, \"x\", style);\n  extractStyleFromProps(props, \"y\", style);\n  extractStyleFromProps(props, \"z\", style);\n  extractStyleFromProps(props, \"rotate\", style);\n  extractStyleFromProps(props, \"rotateX\", style);\n  extractStyleFromProps(props, \"rotateY\", style);\n  extractStyleFromProps(props, \"rotateZ\", style);\n  extractStyleFromProps(props, \"scale\", style);\n  extractStyleFromProps(props, \"scaleX\", style);\n  extractStyleFromProps(props, \"scaleY\", style);\n  extractStyleFromProps(props, \"skew\", style);\n  extractStyleFromProps(props, \"skewX\", style);\n  extractStyleFromProps(props, \"skewY\", style);\n  extractStyleFromProps(props, \"originX\", style);\n  extractStyleFromProps(props, \"originY\", style);\n  extractStyleFromProps(props, \"originZ\", style);\n  collectBackgroundFromProps(props, style);\n  return style;\n}\n\n// ../../library/src/render/presentation/Frame/FrameWithMotion.tsx\nfunction hasEvents(props) {\n  for (const key7 in props) {\n    if (key7 === \"drag\" || key7.startsWith(\"while\") || typeof asRecord(props)[key7] === \"function\" && key7.startsWith(\"on\") && !key7.includes(\"Animation\")) {\n      return true;\n    }\n  }\n  return false;\n}\nvar pointerEvents = [\n  \"onClick\",\n  \"onDoubleClick\",\n  \"onMouse\",\n  \"onMouseDown\",\n  \"onMouseUp\",\n  \"onTapDown\",\n  \"onTap\",\n  \"onTapUp\",\n  \"onPointer\",\n  \"onPointerDown\",\n  \"onPointerUp\",\n  \"onTouch\",\n  \"onTouchDown\",\n  \"onTouchUp\"\n];\nvar pointerEventsSet = /* @__PURE__ */ new Set([\n  ...pointerEvents,\n  ...pointerEvents.map((event) => `${event}Capture`)\n  // Add capture event variants\n]);\nfunction getCursorFromEvents(props) {\n  if (props.drag) {\n    return \"grab\";\n  }\n  for (const key7 in props) {\n    if (pointerEventsSet.has(key7)) {\n      return \"pointer\";\n    }\n  }\n  return void 0;\n}\nvar overflowKey = \"overflow\";\nfunction hasScrollableContent(props) {\n  if (hasScrollingOverflow(props))\n    return true;\n  if (!props.style)\n    return false;\n  if (hasScrollingOverflow(props.style))\n    return true;\n  return false;\n}\nfunction hasScrollingOverflow(props) {\n  if (overflowKey in props && (props[overflowKey] === \"scroll\" || props[overflowKey] === \"auto\"))\n    return true;\n  return false;\n}\nfunction unwrapFrameProps(frameProps) {\n  const {\n    left,\n    top,\n    bottom,\n    right,\n    width,\n    height,\n    center,\n    _constraints,\n    size: size2,\n    widthType,\n    heightType,\n    positionFixed,\n    positionAbsolute\n  } = frameProps;\n  const minWidth = resolveMotionValue(frameProps.minWidth);\n  const minHeight = resolveMotionValue(frameProps.minHeight);\n  const maxWidth = resolveMotionValue(frameProps.maxWidth);\n  const maxHeight = resolveMotionValue(frameProps.maxHeight);\n  const constraintProps = {\n    top: resolveMotionValue(top),\n    left: resolveMotionValue(left),\n    bottom: resolveMotionValue(bottom),\n    right: resolveMotionValue(right),\n    width: resolveMotionValue(width),\n    height: resolveMotionValue(height),\n    size: resolveMotionValue(size2),\n    center,\n    _constraints,\n    widthType,\n    heightType,\n    positionFixed,\n    positionAbsolute,\n    minWidth,\n    minHeight,\n    maxWidth,\n    maxHeight\n  };\n  return constraintProps;\n}\nvar defaultFrameRect = { x: 0, y: 0, width: 200, height: 200 };\nfunction useStyleAndRect(props) {\n  var _a, _b;\n  injectComponentCSSRules();\n  const inCodeComponent = Boolean(useContext5(ComponentContainerContext));\n  const { style, _initialStyle, __fromCanvasComponent, size: size2 } = props;\n  const unwrappedProps = unwrapFrameProps(props);\n  const constraintsRect = useConstraints(unwrappedProps);\n  const defaultStyle = {\n    display: \"block\",\n    flexShrink: 0,\n    userSelect: RenderTarget.current() !== \"PREVIEW\" /* preview */ ? \"none\" : void 0\n  };\n  if (!props.__fromCanvasComponent) {\n    defaultStyle.backgroundColor = props.background === void 0 ? \"rgba(0, 170, 255, 0.3)\" : void 0;\n  }\n  const shouldDisablePointerEvents = !hasEvents(props) && !props.__fromCanvasComponent && !hasScrollableContent(props);\n  const safeToEditPointerEvents = props.style ? !(\"pointerEvents\" in props.style) : true;\n  if (shouldDisablePointerEvents && safeToEditPointerEvents) {\n    defaultStyle.pointerEvents = \"none\";\n  }\n  const addTextCentering = React31.Children.count(props.children) > 0 && React31.Children.toArray(props.children).every((child) => {\n    return typeof child === \"string\" || typeof child === \"number\";\n  });\n  const centerTextStyle = addTextCentering && {\n    display: \"flex\",\n    alignItems: \"center\",\n    justifyContent: \"center\",\n    textAlign: \"center\"\n  };\n  const propsStyle = getStyleForFrameProps(props);\n  if (size2 === void 0 && !__fromCanvasComponent) {\n    if (!hasLeftAndRight(propsStyle)) {\n      defaultStyle.width = defaultFrameRect.width;\n    }\n    if (!hasTopAndBottom(propsStyle)) {\n      defaultStyle.height = defaultFrameRect.height;\n    }\n  }\n  if (unwrappedProps.minWidth !== void 0) {\n    defaultStyle.minWidth = unwrappedProps.minWidth;\n  }\n  if (unwrappedProps.minHeight !== void 0) {\n    defaultStyle.minHeight = unwrappedProps.minHeight;\n  }\n  let constraintsStyle = {};\n  if (constraintsEnabled(unwrappedProps)) {\n    if (constraintsRect && !isAutoSized(props)) {\n      constraintsStyle = {\n        left: constraintsRect.x,\n        top: constraintsRect.y,\n        width: constraintsRect.width,\n        height: constraintsRect.height,\n        right: void 0,\n        bottom: void 0\n      };\n    }\n  }\n  Object.assign(defaultStyle, centerTextStyle, _initialStyle, propsStyle, constraintsStyle, style);\n  Object.assign(defaultStyle, {\n    overflowX: (_a = defaultStyle.overflowX) != null ? _a : defaultStyle.overflow,\n    overflowY: (_b = defaultStyle.overflowY) != null ? _b : defaultStyle.overflow,\n    overflow: void 0\n  });\n  Layer.applyWillChange(props, defaultStyle, true);\n  let resultStyle = defaultStyle;\n  if (!defaultStyle.transform) {\n    resultStyle = { x: 0, y: 0, ...defaultStyle };\n  }\n  const onCanvas = RenderTarget.current() === \"CANVAS\" /* canvas */;\n  if (props.positionSticky) {\n    if (!onCanvas || inCodeComponent) {\n      resultStyle.position = \"sticky\";\n      resultStyle.willChange = \"transform\";\n      resultStyle.zIndex = 1;\n      resultStyle.top = props.positionStickyTop;\n      resultStyle.right = props.positionStickyRight;\n      resultStyle.bottom = props.positionStickyBottom;\n      resultStyle.left = props.positionStickyLeft;\n    }\n  } else if (onCanvas && (props.positionFixed || props.positionAbsolute)) {\n    resultStyle.position = \"absolute\";\n  }\n  if (\"rotate\" in resultStyle && resultStyle.rotate === void 0) {\n    delete resultStyle.rotate;\n  }\n  return [resultStyle, constraintsRect];\n}\nvar filteredProps = /* @__PURE__ */ new Set([\n  \"width\",\n  \"height\",\n  \"opacity\",\n  \"overflow\",\n  \"radius\",\n  \"background\",\n  \"color\",\n  \"x\",\n  \"y\",\n  \"z\",\n  \"rotate\",\n  \"rotateX\",\n  \"rotateY\",\n  \"rotateZ\",\n  \"scale\",\n  \"scaleX\",\n  \"scaleY\",\n  \"skew\",\n  \"skewX\",\n  \"skewY\",\n  \"originX\",\n  \"originY\",\n  \"originZ\"\n]);\nfunction getMotionProps(props) {\n  const motionProps = {};\n  for (const key7 in props) {\n    const isValid = isValidMotionProp(key7) || isPropValid(key7);\n    if (isValid && !filteredProps.has(key7)) {\n      motionProps[key7] = asRecord(props)[key7];\n    } else if (key7 === \"positionTransition\" || key7 === \"layoutTransition\") {\n      motionProps[\"layout\"] = true;\n      if (typeof asRecord(props)[key7] !== \"boolean\" && !props.transition) {\n        motionProps[\"transition\"] = asRecord(props)[key7];\n      }\n    }\n  }\n  return motionProps;\n}\nfunction hasDataFramerName(props) {\n  return \"data-framer-name\" in props;\n}\nvar VisibleFrame = /* @__PURE__ */ forwardRef(function VisibleFrame2(props, forwardedRef) {\n  var _a;\n  const { name, center, border, _border, __portal } = props;\n  const { props: propsWithOverrides, children } = processOverrideForwarding(props);\n  const motionProps = getMotionProps(propsWithOverrides);\n  const layoutId = useLayoutId(props);\n  const cursor = getCursorFromEvents(props);\n  const fallbackRef = useRef5(null);\n  const ref = forwardedRef != null ? forwardedRef : fallbackRef;\n  const dataProps = {\n    \"data-framer-component-type\": \"Frame\",\n    \"data-framer-cursor\": cursor,\n    \"data-framer-highlight\": cursor === \"pointer\" ? true : void 0,\n    \"data-layoutid\": layoutId,\n    \"data-framer-offset-parent-id\": asRecord(props)[\"data-framer-offset-parent-id\"]\n  };\n  if (!hasDataFramerName(props) && name) {\n    asRecord(dataProps)[\"data-framer-name\"] = name;\n  }\n  const [currentStyle, rect] = useStyleAndRect(propsWithOverrides);\n  const unwrappedProps = unwrapFrameProps(propsWithOverrides);\n  const autoSized = isAutoSized(unwrappedProps);\n  if (center && !(rect && !autoSized && constraintsEnabled(unwrappedProps))) {\n    if (!motionProps.transformTemplate)\n      motionProps.transformTemplate = transformTemplate(center);\n    Object.assign(dataProps, layoutHintDataPropsForCenter(center));\n  } else if (!motionProps.transformTemplate) {\n    motionProps.transformTemplate = void 0;\n  }\n  useMeasureLayout(props, ref);\n  const backgroundImage = backgroundImageFromProps(props);\n  const inCodeComponent = Boolean(useContext5(ComponentContainerContext));\n  const parentSize = resolveParentSize(propsWithOverrides, unwrappedProps, rect, inCodeComponent);\n  const wrappedContent = useProvideParentSize(\n    /* @__PURE__ */ React31.createElement(React31.Fragment, null, backgroundImage ? /* @__PURE__ */ React31.createElement(\n      BackgroundImageComponent,\n      {\n        alt: (_a = props.alt) != null ? _a : \"\",\n        image: backgroundImage,\n        containerSize: rect != null ? rect : void 0,\n        nodeId: props.id && nodeIdFromString(props.id),\n        layoutId\n      }\n    ) : null, children, /* @__PURE__ */ React31.createElement(Border, { ..._border, border, layoutId })),\n    parentSize\n  );\n  const MotionComponent = htmlElementAsMotionComponent(props.as);\n  const { size: size2, radius, shadow } = currentStyle;\n  if (size2 !== void 0) {\n    delete currentStyle.size;\n    if (currentStyle.height === void 0) {\n      currentStyle.height = size2;\n    }\n    if (currentStyle.width === void 0) {\n      currentStyle.width = size2;\n    }\n  }\n  if (radius !== void 0) {\n    delete currentStyle.radius;\n    currentStyle.borderRadius = radius;\n  }\n  if (shadow !== void 0) {\n    delete currentStyle.shadow;\n    currentStyle.boxShadow = shadow;\n  }\n  return /* @__PURE__ */ React31.createElement(MotionComponent, { ...dataProps, ...motionProps, layoutId, style: currentStyle, ref }, wrappedContent, __portal);\n});\nvar FrameWithMotion = /* @__PURE__ */ forwardRef(\n  function FrameWithMotion2(props, ref) {\n    countNodeRender();\n    const { visible = true } = props;\n    if (!visible)\n      return null;\n    return /* @__PURE__ */ React31.createElement(VisibleFrame, { ...props, ref });\n  }\n);\nfunction resolveParentSize(props, unwrappedProps, rect, inCodeComponent) {\n  if (inCodeComponent) {\n    const parentSize = rect ? { width: rect.width, height: rect.height } : 1 /* Disabled */;\n    return parentSize;\n  }\n  const { _usesDOMRect } = props;\n  const {\n    widthType = 0 /* FixedNumber */,\n    heightType = 0 /* FixedNumber */,\n    width,\n    height\n  } = unwrappedProps;\n  if (rect && !_usesDOMRect) {\n    return rect;\n  }\n  if (widthType === 0 /* FixedNumber */ && heightType === 0 /* FixedNumber */ && typeof width === \"number\" && typeof height === \"number\") {\n    return { width, height };\n  }\n  if (_usesDOMRect || props.positionFixed || props.positionAbsolute) {\n    return 2 /* DisabledForCurrentLevel */;\n  }\n  return 0 /* Unknown */;\n}\nfunction isAutoSized({\n  width,\n  height\n}) {\n  return width === \"auto\" || width === \"min-content\" || height === \"auto\" || height === \"min-content\";\n}\n\n// ../../library/src/components/EmptyState.tsx\nfunction EmptyState({\n  title = \"\",\n  description = \"Click and drag the connector to any frame on the canvas \\u2192\",\n  children,\n  size: size2,\n  hide,\n  insideUserCodeComponent = false,\n  position = \"absolute\"\n}) {\n  const { target } = RenderEnvironment;\n  const childCount = React32.Children.count(children);\n  if (insideUserCodeComponent && childCount === 0) {\n    return /* @__PURE__ */ React32.createElement(FrameWithMotion, { ...size2, \"data-name\": \"placeholder\" });\n  }\n  if (target !== \"CANVAS\" /* canvas */)\n    return null;\n  if (hide)\n    return null;\n  if (childCount !== 0)\n    return null;\n  return /* @__PURE__ */ React32.createElement(\n    FrameWithMotion,\n    {\n      key: \"empty-state\",\n      className: \"framerInternalUI-canvasPlaceholder\",\n      top: 0,\n      left: 0,\n      bottom: 0,\n      right: 0,\n      style: { position, ...size2 }\n    },\n    /* @__PURE__ */ React32.createElement(\n      \"div\",\n      {\n        style: {\n          display: \"flex\",\n          alignItems: \"center\",\n          lineHeight: \"1.4\",\n          height: \"100%\",\n          width: \"100%\"\n        }\n      },\n      /* @__PURE__ */ React32.createElement(\n        \"div\",\n        {\n          style: {\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            flexDirection: \"column\",\n            width: \"100%\",\n            // Use a mask to fade out the right edge of the content as it gets cropped.\n            WebkitMaskImage: `linear-gradient(90deg, black, black calc(100% - 12px * ${scaleFactor}), transparent)`\n          }\n        },\n        /* @__PURE__ */ React32.createElement(Title, null, title),\n        /* @__PURE__ */ React32.createElement(Description, null, description)\n      )\n    )\n  );\n}\nvar scaleFactor = \"var(--framerInternalCanvas-canvasPlaceholderContentScaleFactor, 1)\";\nfunction Title({ children }) {\n  return /* @__PURE__ */ React32.createElement(\n    \"span\",\n    {\n      style: {\n        display: \"flex\",\n        flexDirection: \"column\",\n        textAlign: \"center\",\n        flexGrow: 1,\n        flexShrink: 0,\n        fontWeight: 600,\n        marginBottom: \"5px\"\n      }\n    },\n    children\n  );\n}\nfunction Description({ children }) {\n  return /* @__PURE__ */ React32.createElement(\n    \"span\",\n    {\n      style: {\n        display: \"flex\",\n        flexDirection: \"column\",\n        textAlign: \"center\",\n        flexGrow: 1,\n        flexShrink: 0,\n        fontWeight: 400,\n        maxWidth: \"200px\"\n      }\n    },\n    children\n  );\n}\n\n// ../../library/src/components/Navigation.tsx\nimport React45, { Component as Component6 } from \"react\";\n\n// ../../library/src/components/AnimateLayout/SharedLayoutRoot.tsx\nimport React33, { Component as Component4 } from \"react\";\nvar TREE_ROOT_ID = \"__LAYOUT_TREE_ROOT\";\nvar SharedLayoutContext = /* @__PURE__ */ React33.createContext({\n  schedulePromoteTree: () => {\n  },\n  scheduleProjectionDidUpdate: () => {\n  },\n  initLead: () => {\n  }\n});\nvar SharedLayoutRoot = class extends Component4 {\n  constructor() {\n    super(...arguments);\n    this.shouldAnimate = false;\n    this.scheduledPromotion = false;\n    this.scheduledDidUpdate = false;\n    this.scheduleProjectionDidUpdate = () => {\n      this.scheduledDidUpdate = true;\n    };\n    // schedule a promotion to run later in getSnapshotBeforeUpdate\n    this.schedulePromoteTree = (tree, transition, shouldAnimate) => {\n      this.follow = this.lead;\n      this.shouldAnimate = shouldAnimate;\n      this.lead = tree;\n      this.transition = transition;\n      this.scheduledPromotion = true;\n    };\n    this.initLead = (tree, shouldAnimate) => {\n      this.follow = this.lead;\n      this.lead = tree;\n      if (this.follow && shouldAnimate) {\n        this.follow.layoutMaybeMutated = true;\n      }\n    };\n    this.sharedLayoutContext = {\n      schedulePromoteTree: this.schedulePromoteTree,\n      scheduleProjectionDidUpdate: this.scheduleProjectionDidUpdate,\n      initLead: this.initLead\n    };\n  }\n  // Runs after all descendent SharedLayoutTree finish taking snapshots in\n  // their getSnapshotBeforeUpdate lifecycle method.\n  getSnapshotBeforeUpdate() {\n    var _a;\n    if (!this.scheduledPromotion || !this.lead || !this.follow)\n      return null;\n    const needsReset = !!((_a = this.lead) == null ? void 0 : _a.layoutMaybeMutated) && !this.shouldAnimate;\n    this.lead.projectionNodes.forEach((projectionNode) => {\n      var _a2;\n      projectionNode == null ? void 0 : projectionNode.promote({\n        needsReset,\n        transition: this.shouldAnimate ? this.transition : void 0,\n        preserveFollowOpacity: projectionNode.options.layoutId === TREE_ROOT_ID && !((_a2 = this.follow) == null ? void 0 : _a2.isExiting)\n      });\n    });\n    if (this.shouldAnimate) {\n      this.follow.layoutMaybeMutated = true;\n    } else {\n      this.scheduleProjectionDidUpdate();\n    }\n    this.lead.layoutMaybeMutated = false;\n    this.transition = void 0;\n    this.scheduledPromotion = false;\n    return null;\n  }\n  componentDidUpdate() {\n    var _a, _b;\n    if (!this.lead)\n      return null;\n    if (this.scheduledDidUpdate) {\n      (_b = (_a = this.lead.rootProjectionNode) == null ? void 0 : _a.root) == null ? void 0 : _b.didUpdate();\n      this.scheduledDidUpdate = false;\n    }\n  }\n  render() {\n    return /* @__PURE__ */ React33.createElement(SharedLayoutContext.Provider, { value: this.sharedLayoutContext }, this.props.children);\n  }\n};\n\n// ../../library/src/components/MagicMotionCrossfadeRoot.tsx\nimport React34 from \"react\";\nvar rootStyles = {\n  width: \"100%\",\n  height: \"100%\",\n  backgroundColor: \"none\"\n};\nfunction MagicMotionCrossfadeRoot(props) {\n  return /* @__PURE__ */ React34.createElement(motion.div, { layoutId: TREE_ROOT_ID, style: rootStyles }, props.children);\n}\n\n// ../../library/src/components/NavigationContainer.tsx\nimport React44, { useContext as useContext8, useEffect as useEffect6, useRef as useRef7 } from \"react\";\n\n// ../../library/src/modules/useAppearEffect.ts\nimport React35 from \"react\";\nvar _sharedIntersectionObserver, _callbacks2;\nvar SharedIntersectionObserver = class {\n  constructor(options) {\n    __privateAdd(this, _sharedIntersectionObserver, void 0);\n    __privateAdd(this, _callbacks2, /* @__PURE__ */ new WeakMap());\n    if (!document)\n      return;\n    __privateSet(this, _sharedIntersectionObserver, new IntersectionObserver(this.resizeObserverCallback.bind(this), options));\n  }\n  resizeObserverCallback(entries, observer) {\n    for (const entry of entries) {\n      const callbackForElement = __privateGet(this, _callbacks2).get(entry.target);\n      if (callbackForElement)\n        callbackForElement([entry], observer);\n    }\n  }\n  observeElementWithCallback(element, callback) {\n    if (!__privateGet(this, _sharedIntersectionObserver))\n      return;\n    __privateGet(this, _sharedIntersectionObserver).observe(element);\n    __privateGet(this, _callbacks2).set(element, callback);\n  }\n  unobserve(element) {\n    if (!__privateGet(this, _sharedIntersectionObserver))\n      return;\n    __privateGet(this, _sharedIntersectionObserver).unobserve(element);\n    __privateGet(this, _callbacks2).delete(element);\n  }\n  get root() {\n    var _a;\n    return (_a = __privateGet(this, _sharedIntersectionObserver)) == null ? void 0 : _a.root;\n  }\n};\n_sharedIntersectionObserver = new WeakMap();\n_callbacks2 = new WeakMap();\nvar SharedIntersectionObserverContext = /* @__PURE__ */ React35.createContext(/* @__PURE__ */ new Map());\nfunction useSharedIntersectionObserver(ref, callback, options) {\n  if (typeof IntersectionObserver === \"undefined\")\n    return;\n  const key7 = useConstant(() => `${options.rootMargin}`);\n  const observers = React35.useContext(SharedIntersectionObserverContext);\n  const { enabled } = options;\n  React35.useEffect(() => {\n    var _a;\n    const element = ref.current;\n    if (!enabled || !element)\n      return;\n    let observer = observers.get(key7);\n    if (!observer || observer.root !== ((_a = options.root) == null ? void 0 : _a.current)) {\n      const { root, ...rest } = options;\n      observer = new SharedIntersectionObserver({ ...rest, root: root == null ? void 0 : root.current });\n      observers.set(key7, observer);\n    }\n    observer.observeElementWithCallback(element, callback);\n    return () => observer == null ? void 0 : observer.unobserve(element);\n  }, [enabled]);\n}\nvar thresholds = /* @__PURE__ */ new Array(100).fill(void 0).map((_, i) => i * 0.01);\nvar ViewportContext = /* @__PURE__ */ React35.createContext(null);\nfunction useAppearEffect(ref, appearCallback, options) {\n  const internalState = React35.useRef({\n    isInView: false,\n    hasAnimatedOnce: false\n  });\n  const { enabled, animateOnce, threshold, rootMargin = `0px 0px 0px 0px` } = options;\n  const callback = React35.useCallback(\n    ([entry]) => {\n      var _a;\n      if (!entry)\n        return;\n      const { isInView, hasAnimatedOnce } = internalState.current;\n      const isIntersecting = isIntersectingWithThreshold(entry, (_a = threshold == null ? void 0 : threshold.y) != null ? _a : 0);\n      if (isIntersecting && !isInView) {\n        if (animateOnce && hasAnimatedOnce)\n          return;\n        internalState.current.hasAnimatedOnce = true;\n        internalState.current.isInView = true;\n        appearCallback(true);\n        return;\n      }\n      if (!isIntersecting && isInView) {\n        internalState.current.isInView = false;\n        if (animateOnce)\n          return;\n        appearCallback(false);\n        return;\n      }\n    },\n    [animateOnce, threshold == null ? void 0 : threshold.y, appearCallback]\n  );\n  useSharedIntersectionObserver(ref, callback, {\n    threshold: thresholds,\n    rootMargin,\n    enabled: enabled != null ? enabled : true\n  });\n}\nfunction calculatedIntersection(intersectionRect, boundingClientRect) {\n  if (boundingClientRect.height === 0)\n    return 0;\n  return intersectionRect.height / Math.min(boundingClientRect.height, safeWindow.innerHeight);\n}\nfunction isIntersectingWithThreshold({ boundingClientRect, intersectionRect, isIntersecting }, threshold) {\n  if (boundingClientRect.height === 0)\n    return isIntersecting;\n  return isIntersecting && calculatedIntersection(intersectionRect, boundingClientRect) >= threshold;\n}\n\n// ../../library/src/render/presentation/Frame/index.tsx\nimport React40, { forwardRef as forwardRef2 } from \"react\";\n\n// ../../library/src/components/hoc/WithEvents.tsx\nvar import_hoist_non_react_statics2 = __toESM(require_hoist_non_react_statics_cjs(), 1);\nimport React37 from \"react\";\n\n// ../../library/src/utils/events.ts\nfunction pointForEvent(event, customTarget = null) {\n  let target;\n  if (customTarget instanceof HTMLElement) {\n    target = customTarget;\n  }\n  if (!target && event.target instanceof HTMLElement) {\n    target = event.target;\n  }\n  if (!target) {\n    return { x: event.pageX, y: event.pageY };\n  }\n  if (\"webkitConvertPointFromPageToNode\" in safeWindow) {\n    let webkitPoint = new safeWindow.WebKitPoint(event.pageX, event.pageY);\n    webkitPoint = safeWindow.webkitConvertPointFromPageToNode(target, webkitPoint);\n    return { x: webkitPoint.x, y: webkitPoint.y };\n  }\n  const rect = target.getBoundingClientRect();\n  const width = parseFloat(target.style.width);\n  const height = parseFloat(target.style.height);\n  const scale = {\n    x: width ? width / rect.width : 1,\n    y: height ? height / rect.height : 1\n  };\n  const point = {\n    x: scale.x * (event.pageX - rect.left - target.clientLeft + target.scrollLeft),\n    y: scale.y * (event.pageY - rect.top - target.clientTop + target.scrollTop)\n  };\n  return point;\n}\n\n// ../../library/src/events/FramerEvent.ts\nvar FramerEvent = class {\n  /**\n   * @internal\n   */\n  constructor(originalEvent, session) {\n    this.originalEvent = originalEvent;\n    this.session = session;\n    /**\n     * @internal\n     */\n    this.time = Date.now();\n    /**\n     * @internal\n     */\n    this.loopTime = MainLoop.time;\n    const customTarget = session && session.startEvent && session.startEvent.target || originalEvent.target;\n    const eventLike = FramerEvent.eventLikeFromOriginalEvent(originalEvent);\n    this.point = pointForEvent(eventLike, customTarget);\n    const deviceTarget = session && session.originElement ? session.originElement : document.body;\n    this.devicePoint = pointForEvent(eventLike, deviceTarget);\n    this.target = originalEvent.target || null;\n    const lastEvent = session && session.lastEvent;\n    if (originalEvent instanceof WheelEvent) {\n      this.delta = { x: originalEvent.deltaX, y: originalEvent.deltaY };\n    } else if (lastEvent && this.devicePoint && lastEvent.devicePoint) {\n      this.delta = Point.subtract(this.devicePoint, lastEvent.devicePoint);\n    } else {\n      this.delta = { x: 0, y: 0 };\n    }\n  }\n  static eventLikeFromOriginalEvent(originalEvent) {\n    if (\"touches\" in originalEvent) {\n      let touches = originalEvent.touches;\n      if (!touches || !touches.length) {\n        if (originalEvent.changedTouches && originalEvent.changedTouches.length) {\n          touches = originalEvent.changedTouches;\n        }\n      }\n      const firstTouch = touches[0];\n      if (!touches || !firstTouch) {\n        return { pageX: 0, pageY: 0, target: null };\n      }\n      const pageX = firstTouch.clientX || firstTouch.screenX || firstTouch.pageX;\n      const pageY = firstTouch.clientY || firstTouch.screenY || firstTouch.pageY;\n      return {\n        pageX,\n        pageY,\n        target: originalEvent.target\n      };\n    }\n    return originalEvent;\n  }\n  /**\n   * @internal\n   */\n  velocity(t) {\n    return this.session ? this.session.velocity(t) : { x: 0, y: 0 };\n  }\n  /**\n   * @internal\n   */\n  get offset() {\n    return this.session ? this.session.offset(this) : { x: 0, y: 0 };\n  }\n  /**\n   * @internal\n   */\n  get isLeftMouseClick() {\n    if (environment.isTouch()) {\n      return void 0;\n    }\n    if (\"button\" in this.originalEvent && \"buttons\" in this.originalEvent && \"ctrlKey\" in this.originalEvent) {\n      return (this.originalEvent.button === 0 || this.originalEvent.buttons === 1) && !this.originalEvent.ctrlKey;\n    }\n    return false;\n  }\n};\n\n// ../../library/src/components/hoc/WithDragging.tsx\nvar import_hoist_non_react_statics = __toESM(require_hoist_non_react_statics_cjs(), 1);\nimport React36 from \"react\";\n\n// ../../library/src/utils/math.ts\nvar clamp2 = (value, a, b) => {\n  const min = Math.min(a, b);\n  const max = Math.max(a, b);\n  if (value < min) {\n    value = min;\n  }\n  if (value > max) {\n    value = max;\n  }\n  return value;\n};\n\n// ../../library/src/components/hoc/WithDragging.tsx\nvar DraggingContext = React36.createContext({ dragging: false });\nfunction WithDragging(Component14) {\n  const _WithDraggingHOC = class extends React36.Component {\n    constructor(props, defaultProps) {\n      super(props, defaultProps);\n      this.state = {\n        isDragging: false\n      };\n      this.x = Animatable(0);\n      this.y = Animatable(0);\n      this.onChangePosition = (change, transaction) => {\n        if (change.value === change.oldValue) {\n          return;\n        }\n        if (this.props.onMove) {\n          this.props.onMove(this.point, this);\n        }\n      };\n      this.isMoving = false;\n      this.isAnimating = false;\n      this.directionLockAxis = null;\n      this._constraints = null;\n      this.panStart = (event) => {\n        if (!this.props.enabled) {\n          return;\n        }\n        this.isMoving = this.isAnimating;\n        this.stopAnimation();\n        this.resetdirectionLock();\n        this.layerStartPoint = this.point;\n        this.correctedLayerStartPoint = this.point;\n        if (this._constraints && this.props.bounce) {\n          this.correctedLayerStartPoint = this.constrainPosition(\n            this.correctedLayerStartPoint,\n            this._constraints,\n            1 / this.props.overdragScale\n          );\n        }\n        this.previousPoint = this.correctedLayerStartPoint;\n        if (!this.state.isDragging) {\n          this.setState({ isDragging: true });\n        }\n        if (this.props.onDragSessionStart) {\n          this.props.onDragSessionStart(event, this);\n        }\n      };\n      this.pan = (event) => {\n        const {\n          enabled,\n          speedX,\n          speedY,\n          directionLock,\n          overdragScale,\n          vertical,\n          horizontal,\n          pixelAlign,\n          onDragStart,\n          onDragWillMove,\n          onDragDidMove,\n          onDragSessionMove\n        } = this.props;\n        if (!enabled) {\n          return;\n        }\n        let point = { ...this.previousPoint };\n        point.x += event.delta.x * speedX;\n        point.y += event.delta.y * speedY;\n        this.previousPoint = { ...point };\n        if (this._constraints) {\n          point = this.constrainPosition(point, this._constraints, overdragScale);\n        }\n        if (directionLock) {\n          if (this.directionLockAxis === null) {\n            const offset = event.offset;\n            offset.x = offset.x * speedX;\n            offset.y = offset.y * speedY;\n            this.updatedirectionLock(offset);\n            return;\n          } else {\n            if (this.directionLockAxis === \"y\") {\n              point.x = this.layerStartPoint.x;\n            }\n            if (this.directionLockAxis === \"x\") {\n              point.y = this.layerStartPoint.y;\n            }\n          }\n        }\n        if (!this.state.isDragging) {\n          this.setState({ isDragging: true });\n          this.isMoving = true;\n          if (onDragStart) {\n            onDragStart(event, this);\n          }\n        }\n        if (onDragWillMove) {\n          onDragWillMove(event, this);\n        }\n        if (pixelAlign) {\n          point.x = Math.round(point.x);\n          point.y = Math.round(point.y);\n        }\n        if (!horizontal && !vertical) {\n          return;\n        }\n        let axis = null;\n        if (horizontal && !vertical) {\n          axis = \"x\";\n        } else if (vertical && !horizontal) {\n          axis = \"y\";\n        }\n        this.setPoint(point, axis);\n        if (onDragDidMove) {\n          onDragDidMove(event, this);\n        }\n        if (onDragSessionMove) {\n          onDragSessionMove(event, this);\n        }\n      };\n      this.panEnd = (event) => {\n        if (!this.props.enabled) {\n          return;\n        }\n        this.startAnimation(event);\n        const { onDragSessionEnd, onDragEnd } = this.props;\n        if (this.state.isDragging) {\n          if (onDragEnd) {\n            onDragEnd(event, this);\n          }\n        }\n        if (onDragSessionEnd) {\n          onDragSessionEnd(event, this);\n        }\n        if (this.state.isDragging) {\n          this.setState({ isDragging: false });\n        }\n        this.isMoving = this.isAnimating;\n      };\n      // Mouse Wheel\n      this.mouseWheelStart = (event) => {\n        this.correctedLayerStartPoint = this.point;\n        this.previousPoint = this.correctedLayerStartPoint;\n        this.stopAnimation();\n      };\n      this.mouseWheel = (event) => {\n        const {\n          enabled,\n          speedX,\n          speedY,\n          vertical,\n          horizontal,\n          pixelAlign,\n          onDragWillMove,\n          onDragDidMove,\n          mouseWheel\n        } = this.props;\n        if (!mouseWheel || !enabled) {\n          return;\n        }\n        let point = { ...this.point };\n        point.x -= event.delta.x * speedX;\n        point.y -= event.delta.y * speedY;\n        if (this._constraints) {\n          point = this.constrainPosition(point, this._constraints, 0, false);\n        }\n        if (onDragWillMove) {\n          onDragWillMove(event, this);\n        }\n        if (pixelAlign) {\n          point.x = Math.round(point.x);\n          point.y = Math.round(point.y);\n        }\n        if (!horizontal && !vertical) {\n          return;\n        }\n        let axis = null;\n        if (horizontal && !vertical) {\n          axis = \"x\";\n        } else if (vertical && !horizontal) {\n          axis = \"y\";\n        }\n        this.setPoint(point, axis);\n        if (onDragDidMove) {\n          onDragDidMove(event, this);\n        }\n      };\n      this.mouseWheelEnd = (event) => {\n      };\n      this.onAnimationStep = (axis, value) => {\n        if (axis === \"x\" && this.props.horizontal === false) {\n          return;\n        }\n        if (axis === \"y\" && this.props.vertical === false) {\n          return;\n        }\n        let delta = 0;\n        if (this.constraints) {\n          if (this.props.bounce) {\n            delta = value - this.getValue(axis);\n          } else {\n            const { minX, minY, maxX, maxY } = this.calculateConstraints(this._constraints);\n            if (axis === \"x\") {\n              delta = clamp2(value, minX, maxX) - this.getValue(axis);\n            }\n            if (axis === \"y\") {\n              delta = clamp2(value, minY, maxY) - this.getValue(axis);\n            }\n          }\n        } else {\n          delta = value - this.getValue(axis);\n        }\n        const updatePoint = this.point;\n        if (axis === \"x\") {\n          updatePoint[axis] = updatePoint[axis] + delta;\n        }\n        if (axis === \"y\") {\n          updatePoint[axis] = updatePoint[axis] + delta;\n        }\n        this.setPoint(updatePoint, axis);\n      };\n      this.onAnimationStop = (axis) => {\n        if (axis === \"x\" && this.props.horizontal === false) {\n          return;\n        }\n        if (axis === \"y\" && this.props.vertical === false) {\n          return;\n        }\n        if (!this.animation) {\n          return;\n        }\n        if (this.props.pixelAlign) {\n          const point = this.point;\n          point.x = Math.round(point.x);\n          point.y = Math.round(point.y);\n          this.setPoint(point, axis);\n        }\n        if (this.animation.x.isFinished() && this.animation.y.isFinished()) {\n          return this.stopAnimation();\n        }\n      };\n      this.stopAnimation = () => {\n        this.isAnimating = false;\n        this.isMoving = false;\n        if (!this.animation) {\n          return;\n        }\n        this.animation.x.cancel();\n        this.animation.y.cancel();\n        if (this.props.onDragAnimationEnd) {\n          this.props.onDragAnimationEnd(this.animation, this);\n        }\n        this.animation = null;\n      };\n      const x = this.props.left;\n      const y = this.props.top;\n      if (!x) {\n        this.x = Animatable(0);\n      } else if (isAnimatable(x)) {\n        this.x = x;\n      } else {\n        this.x = Animatable(x);\n      }\n      if (!y) {\n        this.y = Animatable(0);\n      } else if (isAnimatable(y)) {\n        this.y = y;\n      } else {\n        this.y = Animatable(y);\n      }\n      this.x.onUpdate(this.onChangePosition);\n      this.y.onUpdate(this.onChangePosition);\n      const constraints = this.props.constraints;\n      if (constraints) {\n        this.constraints = constraints;\n      }\n    }\n    UNSAFE_componentWillReceiveProps(props) {\n      if (this.props.left !== props.left && isFiniteNumber(props.left)) {\n        this.x.set(props.left);\n      }\n      if (this.props.top !== props.top && isFiniteNumber(props.top)) {\n        this.y.set(props.top);\n      }\n      const constraints = props.constraints;\n      if (constraints) {\n        this.constraints = constraints;\n      }\n    }\n    get point() {\n      return { x: this.x.get(), y: this.y.get() };\n    }\n    setPoint(point, axis = null) {\n      switch (axis) {\n        case \"x\":\n          this.x.set(point.x);\n          break;\n        case \"y\":\n          this.y.set(point.y);\n          break;\n        case null:\n          this.x.set(point.x);\n          this.y.set(point.y);\n          break;\n      }\n    }\n    getValue(axis) {\n      switch (axis) {\n        case \"x\":\n          return this.x.get();\n        case \"y\":\n          return this.y.get();\n      }\n    }\n    get width() {\n      const width = this.props.width;\n      if (!width) {\n        return 100;\n      }\n      if (isAnimatable(width)) {\n        return width.get();\n      }\n      if (typeof width === \"string\") {\n        return parseFloat(width);\n      }\n      return width;\n    }\n    get height() {\n      const height = this.props.height;\n      if (!height) {\n        return 100;\n      }\n      if (isAnimatable(height)) {\n        return height.get();\n      }\n      if (typeof height === \"string\") {\n        return parseFloat(height);\n      }\n      return height;\n    }\n    get constraints() {\n      return this._constraints;\n    }\n    set constraints(value) {\n      if (value !== null && typeof value === \"object\") {\n        this._constraints = {\n          x: value.x || 0,\n          y: value.y || 0,\n          width: value.width || 0,\n          height: value.height || 0\n        };\n      } else {\n        this._constraints = null;\n      }\n      if (this._constraints) {\n        this.updateAnimationConstraints(this._constraints);\n      }\n    }\n    get constraintsOffset() {\n      if (!this.constraints) {\n        return { x: 0, y: 0 };\n      }\n      const { minX, minY, maxX, maxY } = this.calculateConstraints(this._constraints);\n      const point = this.point;\n      const constrainedPoint = { x: clamp2(point.x, minX, maxX), y: clamp2(point.y, minY, maxY) };\n      const offset = { x: point.x - constrainedPoint.x, y: point.y - constrainedPoint.y };\n      return offset;\n    }\n    get isBeyondConstraints() {\n      const constraintsOffset = this.constraintsOffset;\n      if (constraintsOffset.x !== 0) {\n        return true;\n      }\n      if (constraintsOffset.y !== 0) {\n        return true;\n      }\n      return false;\n    }\n    clampAndScale(value, min, max, scale, scaleAllowed) {\n      if (!scaleAllowed) {\n        return clamp2(value, min, max);\n      }\n      if (value < min) {\n        value = min + (value - min) * scale;\n      }\n      if (value > max) {\n        value = max + (value - max) * scale;\n      }\n      return value;\n    }\n    calculateConstraints(bounds) {\n      if (!bounds) {\n        return { minX: Infinity, maxX: Infinity, minY: Infinity, maxY: Infinity };\n      }\n      if (bounds.width < this.width) {\n        bounds.width = this.width;\n      }\n      if (bounds.height < this.height) {\n        bounds.height = this.height;\n      }\n      const constraints = {\n        minX: Rect.minX(bounds),\n        maxX: Rect.maxX(bounds),\n        minY: Rect.minY(bounds),\n        maxY: Rect.maxY(bounds)\n      };\n      constraints.maxX -= this.width;\n      constraints.maxY -= this.height;\n      return constraints;\n    }\n    constrainPosition(proposedPoint, bounds, scale, overdrag = this.props.overdrag) {\n      const { maxX, maxY, minX, minY } = this.calculateConstraints(this._constraints);\n      const point = {\n        x: this.clampAndScale(proposedPoint.x, minX, maxX, scale, overdrag),\n        y: this.clampAndScale(proposedPoint.y, minY, maxY, scale, overdrag)\n      };\n      if (this.props.speedX === 0 || this.props.horizontal === false) {\n        point.x = proposedPoint.x;\n      }\n      if (this.props.speedY === 0 || this.props.vertical === false) {\n        point.y = proposedPoint.y;\n      }\n      return point;\n    }\n    /* private */\n    updatedirectionLock(correctedDelta) {\n      if (Math.abs(correctedDelta.y) > this.props.directionLockThreshold.y) {\n        this.directionLockAxis = \"y\";\n      } else if (Math.abs(correctedDelta.x) > this.props.directionLockThreshold.x) {\n        this.directionLockAxis = \"x\";\n      }\n      if (this.directionLockAxis !== null) {\n        if (this.props.onDragDirectionLockStart) {\n          this.props.onDragDirectionLockStart(this.directionLockAxis, this);\n        }\n      }\n    }\n    resetdirectionLock() {\n      this.directionLockAxis = null;\n    }\n    // Inertial scroll animation\n    setupAnimation() {\n      if (this.animation) {\n        return;\n      }\n      this.animation = { x: this.setupAnimationForAxis(\"x\"), y: this.setupAnimationForAxis(\"y\") };\n      this.updateAnimationConstraints(this._constraints);\n    }\n    setupAnimationForAxis(axis) {\n      const animator = new InertialScrollAnimator({\n        momentum: this.props.momentumOptions,\n        bounce: this.props.bounceOptions\n      });\n      const updateCallback = (value) => {\n        this.onAnimationStep(axis, value);\n      };\n      const doneCallback = () => {\n        this.onAnimationStop(axis);\n      };\n      return new MainLoopAnimationDriver(animator, updateCallback, doneCallback);\n    }\n    updateAnimationConstraints(constraints) {\n      if (!this.animation) {\n        return;\n      }\n      if (constraints) {\n        const { minX, minY, maxX, maxY } = this.calculateConstraints(constraints);\n        this.animation.x.animator.setLimits(minX, maxX);\n        this.animation.y.animator.setLimits(minY, maxY);\n      } else {\n        this.animation.x.animator.setLimits(-Infinity, Infinity);\n        this.animation.y.animator.setLimits(-Infinity, Infinity);\n      }\n    }\n    startAnimation(event) {\n      const { momentum, bounce, momentumVelocityMultiplier, speedX, speedY, overdrag, onDragAnimationStart } = this.props;\n      if (!(momentum || bounce)) {\n        return;\n      }\n      if (this.isBeyondConstraints === false && momentum === false) {\n        return;\n      }\n      if (this.isBeyondConstraints === false && this.state.isDragging === false) {\n        return;\n      }\n      const { minX, minY, maxX, maxY } = this.calculateConstraints(this._constraints);\n      const startAnimationX = overdrag === true || this.point.x > minX && this.point.x < maxX;\n      const startAnimationY = overdrag === true || this.point.y > minY && this.point.y < maxY;\n      if (startAnimationX === startAnimationY && startAnimationY === false) {\n        return;\n      }\n      const velocity = event.velocity(0.1);\n      let velocityX = velocity.x * momentumVelocityMultiplier * speedX;\n      let velocityY = velocity.y * momentumVelocityMultiplier * speedY;\n      if (this.directionLockAxis === \"x\") {\n        velocityY = 0;\n      }\n      if (this.directionLockAxis === \"y\") {\n        velocityX = 0;\n      }\n      this.setupAnimation();\n      this.isAnimating = true;\n      this.isMoving = true;\n      if (!this.animation) {\n        return;\n      }\n      this.animation.x.animator.setState({ x: this.point.x, v: velocityX });\n      if (startAnimationX) {\n        this.animation.x.play();\n      }\n      this.animation.y.animator.setState({ x: this.point.y, v: velocityY });\n      if (startAnimationY) {\n        this.animation.y.play();\n      }\n      if (onDragAnimationStart) {\n        onDragAnimationStart(this.animation, this);\n      }\n    }\n    wrapHandler(ownHandler, originalHandler) {\n      if (!originalHandler) {\n        return ownHandler;\n      }\n      return (event) => {\n        ownHandler(event);\n        originalHandler(event);\n      };\n    }\n    render() {\n      const { onPanStart, onPan, onPanEnd, onMouseWheelStart, onMouseWheel, onMouseWheelEnd, ...attributes } = this.props;\n      const originalProps = { ...attributes };\n      Object.keys(_WithDraggingHOC.draggingDefaultProps).forEach((key7) => {\n        delete asRecord(originalProps)[key7];\n      });\n      originalProps.onPanStart = this.wrapHandler(this.panStart, onPanStart);\n      originalProps.onPan = this.wrapHandler(this.pan, onPan);\n      originalProps.onPanEnd = this.wrapHandler(this.panEnd, onPanEnd);\n      originalProps.onMouseWheelStart = this.wrapHandler(this.mouseWheelStart, onMouseWheelStart);\n      originalProps.onMouseWheel = this.wrapHandler(this.mouseWheel, onMouseWheel);\n      originalProps.onMouseWheelEnd = this.wrapHandler(this.mouseWheelEnd, onMouseWheelEnd);\n      originalProps.left = this.x;\n      originalProps.top = this.y;\n      return /* @__PURE__ */ React36.createElement(DraggingContext.Provider, { value: { dragging: this.state.isDragging } }, /* @__PURE__ */ React36.createElement(Component14, { ...originalProps }));\n    }\n  };\n  let WithDraggingHOC = _WithDraggingHOC;\n  WithDraggingHOC.draggingDefaultProps = {\n    momentum: true,\n    momentumOptions: { friction: 2.1, tolerance: 1 },\n    momentumVelocityMultiplier: 800,\n    speedX: 1,\n    speedY: 1,\n    bounce: true,\n    bounceOptions: { friction: 40, tension: 200, tolerance: 1 },\n    directionLock: false,\n    directionLockThreshold: { x: 10, y: 10 },\n    overdrag: true,\n    overdragScale: 0.5,\n    pixelAlign: true,\n    velocityTimeout: 100,\n    velocityScale: 890,\n    horizontal: true,\n    vertical: true,\n    enabled: true,\n    constraints: {},\n    mouseWheel: false\n  };\n  WithDraggingHOC.defaultProps = Object.assign(\n    {},\n    Component14.defaultProps,\n    _WithDraggingHOC.draggingDefaultProps\n  );\n  const withDragging = WithDraggingHOC;\n  (0, import_hoist_non_react_statics.default)(withDragging, Component14);\n  return withDragging;\n}\n\n// ../../library/src/components/hoc/WithEvents.tsx\nvar hoverProps = {\n  onMouseEnter: \"mouseenter\",\n  onMouseLeave: \"mouseleave\"\n};\nvar hoverEventKeys = Object.keys(hoverProps);\nvar eventHandlerMapping = {\n  panstart: [\"onPanStart\"],\n  pan: [\"onPan\"],\n  panend: [\"onPanEnd\"],\n  tapstart: [\"onTapStart\", \"onMouseDown\"],\n  tap: [\"onTap\", \"onClick\"],\n  tapend: [\"onTapEnd\", \"onMouseUp\"],\n  mousewheelstart: [\"onMouseWheelStart\"],\n  mousewheel: [\"onMouseWheel\"],\n  mousewheelend: [\"onMouseWheelEnd\"]\n};\nvar tapEventKeys = /* @__PURE__ */ new Set([\"tapstart\", \"tap\", \"tapend\"]);\nfunction WithEvents(BaseComponent) {\n  var _a;\n  const withEvents = (_a = class extends React37.Component {\n    constructor() {\n      super(...arguments);\n      // This local variable is used to track if we should ignore a tap after a drag\n      // It's not in a state because we want to change it from the render function (so not cause a render)\n      this.shouldCancelTap = false;\n      this.activeEventListeners = /* @__PURE__ */ new Map();\n      this.hasFramerEventListener = false;\n      this.component = React37.createRef();\n    }\n    get element() {\n      return this.component.current && this.component.current.element;\n    }\n    componentDidMount() {\n      this.addEventListeners();\n    }\n    componentDidUpdate(prevProps) {\n      this.addEventListeners(prevProps);\n    }\n    componentWillUnmount() {\n      this.removeEventListeners();\n    }\n    addEventListeners(prevProps) {\n      if (this.element && !this.hasFramerEventListener) {\n        this.element.addEventListener(\"FramerEvent\", ({ detail }) => {\n          const type = detail.type;\n          const framerEvent = detail.event;\n          this.handleEvent(type, framerEvent);\n        });\n        hoverEventKeys.forEach((eventName) => this.addHoverEvent(eventName));\n        this.hasFramerEventListener = true;\n      } else if (this.element && prevProps) {\n        hoverEventKeys.forEach((eventName) => this.checkHoverEvent(eventName, prevProps));\n      } else if (!this.element) {\n        this.hasFramerEventListener = false;\n      }\n    }\n    removeEventListeners() {\n      hoverEventKeys.forEach((eventName) => this.removeHoverEvent(eventName));\n    }\n    addHoverEvent(eventName) {\n      const originalEventListener = this.props[eventName];\n      if (this.element && originalEventListener) {\n        const eventListener = (e) => {\n          const framerEvent = new FramerEvent(e);\n          originalEventListener(framerEvent);\n        };\n        this.activeEventListeners.set(eventName, eventListener);\n        const domEventName = hoverProps[eventName];\n        this.element.addEventListener(domEventName, eventListener);\n      }\n    }\n    removeHoverEvent(eventName) {\n      const eventListener = this.activeEventListeners.get(eventName);\n      if (this.element && eventListener) {\n        const domEventName = hoverProps[eventName];\n        this.element.removeEventListener(domEventName, eventListener);\n        this.activeEventListeners.delete(eventName);\n      }\n    }\n    checkHoverEvent(eventName, prevProps) {\n      if (prevProps[eventName] !== this.props[eventName]) {\n        this.removeHoverEvent(eventName);\n        this.addHoverEvent(eventName);\n      }\n    }\n    handleEvent(type, framerEvent) {\n      const eventListenerKeys = eventHandlerMapping[type];\n      if (!eventListenerKeys)\n        return;\n      eventListenerKeys.forEach((eventKey) => {\n        const eventListener = this.props[eventKey];\n        const cancelEvent = this.shouldCancelTap && tapEventKeys.has(eventKey);\n        if (eventListener && !cancelEvent) {\n          eventListener(framerEvent);\n        }\n      });\n    }\n    render() {\n      return /* @__PURE__ */ React37.createElement(DraggingContext.Consumer, null, (value) => {\n        this.shouldCancelTap = value.dragging;\n        return /* @__PURE__ */ React37.createElement(BaseComponent, { ...this.props, ref: this.component });\n      });\n    }\n  }, _a.defaultProps = Object.assign({}, BaseComponent.defaultProps), _a);\n  (0, import_hoist_non_react_statics2.default)(withEvents, BaseComponent);\n  return withEvents;\n}\n\n// ../../library/src/render/presentation/Frame/DeprecatedFrame.tsx\nimport React39 from \"react\";\n\n// ../../library/src/data/ObservableObject.ts\nvar hasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar $private = /* @__PURE__ */ Symbol(\"private\");\nvar ObservableObject = /* @__PURE__ */ (() => {\n  function ObservableObject2(initial = {}, makeAnimatables = false, observeAnimatables = true) {\n    const unproxiedState = {\n      [$private]: {\n        makeAnimatables,\n        observeAnimatables,\n        observers: new Observers(),\n        reset() {\n          for (const key7 in state) {\n            if (hasOwnProperty(state, key7)) {\n              const value = hasOwnProperty(initial, key7) ? asRecord(initial)[key7] : void 0;\n              if (value !== void 0) {\n                state[key7] = value;\n              } else {\n                delete state[key7];\n              }\n            }\n          }\n        },\n        transactions: /* @__PURE__ */ new Set()\n      }\n    };\n    const state = new Proxy(unproxiedState, sharedProxyHandler);\n    Object.assign(state, initial);\n    return state;\n  }\n  ObservableObject2.resetObject = (target) => {\n    return target[$private].reset();\n  };\n  ObservableObject2.addObserver = (target, observer) => {\n    return target[$private].observers.add(observer);\n  };\n  return ObservableObject2;\n})();\nvar ObservableObjectProxyHandler = class {\n  constructor() {\n    this.set = (target, key7, value, receiver) => {\n      if (key7 === $private) {\n        return false;\n      }\n      const privateObject = target[$private];\n      let animatable;\n      let rawValue;\n      if (isAnimatable(value)) {\n        animatable = value;\n        rawValue = animatable.get();\n      } else {\n        rawValue = value;\n      }\n      if (privateObject.makeAnimatables && typeof value !== \"function\" && typeof value !== \"object\" && !animatable) {\n        animatable = Animatable(value);\n      }\n      if (privateObject.observeAnimatables && animatable) {\n        const transactions = privateObject.transactions;\n        animatable.onUpdate({\n          update: (change, transaction) => {\n            if (transaction) {\n              transactions.add(transaction);\n            }\n            privateObject.observers.notify({ value: receiver }, transaction);\n          },\n          finish: (transaction) => {\n            if (transactions.delete(transaction)) {\n              privateObject.observers.finishTransaction(transaction);\n            }\n          }\n        });\n      }\n      let result = false;\n      let changed = true;\n      const targetValue = asRecord(target)[key7];\n      if (targetValue !== void 0) {\n        if (isAnimatable(targetValue)) {\n          changed = targetValue.get() !== rawValue;\n          targetValue.set(rawValue);\n        } else {\n          changed = targetValue !== rawValue;\n          asRecord(target)[key7] = rawValue;\n        }\n        const rawValueIsObject = rawValue !== null && typeof rawValue === \"object\";\n        if (Array.isArray(rawValue) || rawValueIsObject)\n          changed = true;\n        result = true;\n      } else {\n        if (animatable) {\n          value = animatable;\n        }\n        result = Reflect.set(target, key7, value);\n      }\n      if (changed) {\n        privateObject.observers.notify({ value: receiver });\n      }\n      return result;\n    };\n    this.get = (target, key7, receiver) => {\n      if (key7 === $private) {\n        return asRecord(target)[key7];\n      }\n      const value = Reflect.get(target, key7, receiver);\n      return typeof value === \"function\" ? value.bind(receiver) : value;\n    };\n  }\n  deleteProperty(target, key7) {\n    const result = Reflect.deleteProperty(target, key7);\n    target[$private].observers.notify({ value: target });\n    return result;\n  }\n  ownKeys(target) {\n    const keys3 = Reflect.ownKeys(target);\n    const privateIndex = keys3.indexOf($private);\n    if (privateIndex !== -1) {\n      keys3.splice(privateIndex, 1);\n    }\n    return keys3;\n  }\n  getOwnPropertyDescriptor(target, key7) {\n    if (key7 === $private) {\n      return void 0;\n    }\n    return Reflect.getOwnPropertyDescriptor(target, key7);\n  }\n};\nvar sharedProxyHandler = /* @__PURE__ */ new ObservableObjectProxyHandler();\n\n// ../../library/src/render/traits/Blending.ts\nfunction collectBlendingFromProps(node, style) {\n  if (!node.blendingMode || node.blendingMode === \"normal\")\n    return;\n  style.mixBlendMode = node.blendingMode;\n}\n\n// ../../library/src/render/traits/Opacity.ts\nvar key3 = \"opacity\";\nfunction withOpacity(target) {\n  return key3 in target;\n}\nfunction collectOpacityFromProps(props, style) {\n  if (!withOpacity(props))\n    return;\n  const opacity = Animatable.getNumber(props.opacity);\n  if (opacity === 1)\n    return;\n  style.opacity = opacity;\n}\n\n// ../../library/src/render/traits/Overflow.ts\nfunction collectOverflowFromProps(props, style) {\n  if (props.overflow) {\n    style.overflow = props.overflow;\n  }\n}\n\n// ../../library/src/render/traits/Radius.ts\nvar key4 = \"radius\";\nfunction hasRadius(props) {\n  return key4 in props;\n}\nfunction getRadiusValue(value) {\n  let num = Number(value);\n  if (typeof value === \"string\" && isNaN(num)) {\n    return value;\n  } else if (isAnimatable(value)) {\n    num = Animatable.getNumber(value);\n  }\n  return num ? `${num}px` : \"0\";\n}\nfunction hasRadiusValue(value) {\n  return value && value !== \"0\";\n}\nfunction collectRadiusFromProps(props, style) {\n  if (!hasRadius(props))\n    return;\n  const { radius } = props;\n  if (typeof radius === \"string\" || isAnimatable(radius) || isFiniteNumber(radius)) {\n    const radiusValue = getRadiusValue(radius);\n    if (hasRadiusValue(radiusValue)) {\n      style.borderTopLeftRadius = style.borderTopRightRadius = style.borderBottomRightRadius = style.borderBottomLeftRadius = radiusValue;\n    }\n  } else if (radius) {\n    const topLeft = getRadiusValue(radius.topLeft);\n    const topRight = getRadiusValue(radius.topRight);\n    const bottomRight = getRadiusValue(radius.bottomRight);\n    const bottomLeft = getRadiusValue(radius.bottomLeft);\n    if (hasRadiusValue(topLeft) || hasRadiusValue(topRight) || hasRadiusValue(bottomRight) || hasRadiusValue(bottomLeft)) {\n      style.borderTopLeftRadius = topLeft;\n      style.borderTopRightRadius = topRight;\n      style.borderBottomRightRadius = bottomRight;\n      style.borderBottomLeftRadius = bottomLeft;\n    }\n  }\n}\n\n// ../../library/src/render/traits/TextColor.ts\nfunction collectTextColorFromProps(props, style) {\n  const { color: color2 } = props;\n  if (typeof color2 === \"string\") {\n    style.color = color2;\n  } else if (Color.isColorObject(color2)) {\n    style.color = color2.initialValue || Color.toRgbString(color2);\n  }\n}\n\n// ../../library/src/render/style/shadow.tsx\nimport React38 from \"react\";\n\n// ../../library/src/render/types/Shadow.ts\nvar shadowKeys = [\"color\", \"x\", \"y\", \"blur\"];\nvar Shadow = {\n  is: (shadow) => {\n    return shadow && shadowKeys.every((key7) => key7 in shadow);\n  }\n};\nvar boxShadowKeys = [\"x\", \"y\", \"color\", \"inset\", \"blur\", \"spread\"];\nvar BoxShadow = {\n  is: (shadow) => {\n    return shadow && boxShadowKeys.every((key7) => key7 in shadow);\n  },\n  toCSS: (shadow) => {\n    const inset2 = shadow.inset ? \"inset \" : \"\";\n    return `${inset2}${shadow.x}px ${shadow.y}px ${shadow.blur}px ${shadow.spread}px ${shadow.color}`;\n  }\n};\n\n// ../../library/src/render/style/shadow.tsx\nfunction shadowsAsFilter(shadows) {\n  const filters = [];\n  if (shadows && shadows.length) {\n    const dropShadows = shadows.map((shadowItem) => {\n      return `drop-shadow(${shadowItem.x}px ${shadowItem.y}px ${shadowItem.blur}px ${shadowItem.color})`;\n    });\n    filters.push(...dropShadows);\n  }\n  return filters;\n}\nfunction collectTextShadowsForProps(props, style) {\n  if (!props.shadows || props.shadows.length === 0)\n    return;\n  const textShadow = props.shadows.map((shadow) => {\n    return `${shadow.x}px ${shadow.y}px ${shadow.blur}px ${shadow.color}`;\n  }).join(\", \");\n  if (!textShadow)\n    return;\n  style.textShadow = textShadow;\n}\nfunction collectBoxShadowsForProps(props, style) {\n  if (!props.shadows || props.shadows.length === 0)\n    return;\n  const boxShadow = props.shadows.map((shadowItem) => BoxShadow.toCSS(shadowItem)).join(\", \");\n  if (!boxShadow)\n    return;\n  style.boxShadow = boxShadow;\n}\nfunction shadowForShape(boxShadows, rect, shapeId, fillAlpha, strokeAlpha, strokeWidth, strokeClipId, svgStrokeAttributes) {\n  const definition = [];\n  let outsetElement = null;\n  let insetElement = null;\n  const needsStrokeClip = false;\n  const shadows = [];\n  const insetShadows = [];\n  const boxShadowsCount = boxShadows.length;\n  const svgShadowClass = \"svg-shadow\";\n  const svgShadowProps = RenderTarget.current() === \"CANVAS\" /* canvas */ ? { className: svgShadowClass } : {};\n  for (const shadow of boxShadows) {\n    shadow.inset ? insetShadows.push(shadow) : shadows.push(shadow);\n  }\n  if (shadows.length > 0) {\n    shadows.reverse();\n    const outsideShadowId = shapeId.add(\"_shadow_out\");\n    const normalizedFrame = Rect.atOrigin(rect);\n    const shadowRects = [normalizedFrame];\n    for (const shadow of shadows) {\n      const shadowFrame = localShadowFrame(shadow, normalizedFrame, true);\n      if (shadowFrame === null) {\n        continue;\n      }\n      shadowRects.push(shadowFrame);\n    }\n    let maxBlur = 0;\n    const filterElements = [];\n    const mergeElements = [];\n    for (let i = 0, il = shadows.length; i < il; i++) {\n      const shadow = shadows[i];\n      if (!shadow)\n        continue;\n      const shadowElements = outerShadowElements(shapeId, shadow, i);\n      maxBlur = Math.max(maxBlur, shadow.blur);\n      filterElements.push(shadowElements.filterElements);\n      mergeElements.push(shadowElements.mergeElement);\n    }\n    let expandStrokeWidth = strokeWidth;\n    if (!isFiniteNumber(expandStrokeWidth))\n      expandStrokeWidth = 0;\n    let miter = svgStrokeAttributes.strokeMiterlimit;\n    if (!isFiniteNumber(miter))\n      miter = 4;\n    let shadowRect = Rect.merge(...shadowRects);\n    shadowRect = Rect.inflate(shadowRect, (expandStrokeWidth * miter / 2 + maxBlur) * 1.1);\n    const width = rect.width + (strokeWidth ? strokeWidth / 2 : 0.1);\n    const height = rect.height + (strokeWidth ? strokeWidth / 2 : 0.1);\n    const filterX = shadowRect.x / width * 100;\n    const filterY = shadowRect.y / height * 100;\n    const filterWidth = shadowRect.width / width * 100;\n    const filterHeight = shadowRect.height / height * 100;\n    definition.push(\n      /* @__PURE__ */ React38.createElement(\n        \"filter\",\n        {\n          key: outsideShadowId.id,\n          id: outsideShadowId.id,\n          x: `${filterX.toFixed(1)}%`,\n          y: `${filterY.toFixed(1)}%`,\n          width: `${filterWidth.toFixed(1)}%`,\n          height: `${filterHeight.toFixed(1)}%`,\n          filterUnits: \"objectBoundingBox\",\n          ...svgShadowProps\n        },\n        filterElements,\n        shadows.length > 1 ? /* @__PURE__ */ React38.createElement(\"feMerge\", null, mergeElements) : null\n      )\n    );\n    outsetElement = /* @__PURE__ */ React38.createElement(\"g\", { filter: outsideShadowId.urlLink, ...svgShadowProps }, /* @__PURE__ */ React38.createElement(\n      \"use\",\n      {\n        ...svgStrokeAttributes,\n        fill: \"black\",\n        fillOpacity: fillAlpha <= 0 ? 0 : 1,\n        stroke: \"black\",\n        strokeOpacity: strokeAlpha <= 0 ? 0 : 1,\n        strokeWidth: strokeAlpha > 0 ? strokeWidth : 0,\n        xlinkHref: shapeId.link,\n        clipPath: strokeClipId.urlLink\n      }\n    ));\n  }\n  if (insetShadows.length) {\n    insetShadows.reverse();\n    const insideShadowId = shapeId.add(\"_shadow_inside\");\n    const normalizedFrame = Rect.atOrigin(rect);\n    const shadowFrames = [normalizedFrame];\n    for (const shadow of insetShadows) {\n      const shadowFrame = localShadowFrame(shadow, normalizedFrame, true);\n      if (shadowFrame === null) {\n        continue;\n      }\n      shadowFrames.push(shadowFrame);\n    }\n    const shadowRect = Rect.merge(...shadowFrames);\n    const width = rect.width + (strokeWidth ? strokeWidth / 2 : 0.1);\n    const height = rect.height + (strokeWidth ? strokeWidth / 2 : 0.1);\n    const filterX = shadowRect.x / width * 100;\n    const filterY = shadowRect.y / height * 100;\n    const filterWidth = shadowRect.width / width * 100;\n    const filterHeight = shadowRect.height / height * 100;\n    const filterElements = [];\n    const mergeElements = [];\n    for (let i = 0, il = insetShadows.length; i < il; i++) {\n      const shadow = insetShadows[i];\n      if (!shadow)\n        continue;\n      const shadowElements = innerShadowElements(shapeId, shadow, i);\n      filterElements.push(shadowElements.filterElements);\n      mergeElements.push(shadowElements.mergeElement);\n    }\n    definition.push(\n      /* @__PURE__ */ React38.createElement(\n        \"filter\",\n        {\n          key: insideShadowId.id,\n          id: insideShadowId.id,\n          x: `${filterX.toFixed(1)}%`,\n          y: `${filterY.toFixed(1)}%`,\n          width: `${filterWidth.toFixed(1)}%`,\n          height: `${filterHeight.toFixed(1)}%`,\n          filterUnits: \"objectBoundingBox\",\n          ...svgShadowProps\n        },\n        filterElements,\n        insetShadows.length > 1 ? /* @__PURE__ */ React38.createElement(\"feMerge\", null, mergeElements) : null\n      )\n    );\n    let clipPath;\n    if (needsStrokeClip) {\n      clipPath = strokeClipId.urlLink;\n    }\n    insetElement = /* @__PURE__ */ React38.createElement(\n      \"use\",\n      {\n        fill: \"black\",\n        fillOpacity: \"1\",\n        filter: insideShadowId.urlLink,\n        xlinkHref: shapeId.link,\n        clipPath,\n        ...svgShadowProps\n      }\n    );\n  }\n  return { definition, outsetElement, insetElement, needsStrokeClip };\n}\nfunction outerShadowElements(shapeID, shadow, index) {\n  const shadowKey = shapeID.add(\"_outer_shadow\" + index);\n  const offsetResultId = shadowKey.add(\"offset\").id;\n  const blurResultId = shadowKey.add(\"blur\").id;\n  const matrixResultId = shadowKey.add(\"matrix\").id;\n  const filterElements = /* @__PURE__ */ React38.createElement(\n    OuterShadowFilterElements,\n    {\n      key: shadowKey.id + \"-filters\",\n      shadow,\n      blurId: blurResultId,\n      offsetId: offsetResultId,\n      matrixId: matrixResultId\n    }\n  );\n  const mergeElement = /* @__PURE__ */ React38.createElement(\"feMergeNode\", { key: shadowKey.id + \"-merge\", in: matrixResultId });\n  return { filterElements, mergeElement };\n}\nvar OuterShadowFilterElements = (props) => {\n  const { shadow, blurId, offsetId, matrixId } = props;\n  const color2 = shadow.color;\n  const rgb = ConvertColor.toRgb(color2);\n  const r = roundedNumberString(rgb.r / 255, 3);\n  const g = roundedNumberString(rgb.g / 255, 3);\n  const b = roundedNumberString(rgb.b / 255, 3);\n  const matrixValues = `0 0 0 0 ${r}   0 0 0 0 ${g}   0 0 0 0 ${b}  0 0 0 ${rgb.a} 0`;\n  return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(\"feOffset\", { dx: shadow.x, dy: shadow.y, in: \"SourceAlpha\", result: offsetId }), /* @__PURE__ */ React38.createElement(\"feGaussianBlur\", { stdDeviation: shadow.blur / 2, in: offsetId, result: blurId }), /* @__PURE__ */ React38.createElement(\n    \"feColorMatrix\",\n    {\n      colorInterpolationFilters: \"sRGB\",\n      values: matrixValues,\n      type: \"matrix\",\n      in: blurId,\n      result: matrixId\n    }\n  ));\n};\nfunction innerShadowElements(shapeID, shadow, index) {\n  const shadowKey = shapeID.add(\"_inside_shadow\" + index);\n  const blurId = shadowKey.add(\"blur\").id;\n  const offsetId = shadowKey.add(\"offset\").id;\n  const compositeId = shadowKey.add(\"composite\").id;\n  const matrixId = shadowKey.add(\"matrix\").id;\n  const filterElements = /* @__PURE__ */ React38.createElement(\n    InnerShadowFilterElements,\n    {\n      key: shadowKey.id + \"-filters\",\n      shadow,\n      blurId,\n      offsetId,\n      compositeId,\n      matrixId\n    }\n  );\n  const mergeElement = /* @__PURE__ */ React38.createElement(\"feMergeNode\", { key: shadowKey.id + \"-merge\", in: matrixId });\n  return { filterElements, mergeElement };\n}\nvar InnerShadowFilterElements = (props) => {\n  const { shadow, blurId, offsetId, compositeId, matrixId } = props;\n  const color2 = shadow.color;\n  const rgb = ConvertColor.toRgb(color2);\n  const r = rgb.r / 255;\n  const g = rgb.g / 255;\n  const b = rgb.b / 255;\n  const matrixValues = `0 0 0 0 ${r}   0 0 0 0 ${g}   0 0 0 0 ${b}  0 0 0 ${rgb.a} 0`;\n  return /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement(\"feGaussianBlur\", { stdDeviation: shadow.blur / 2, in: \"SourceAlpha\", result: blurId }), /* @__PURE__ */ React38.createElement(\"feOffset\", { dx: shadow.x, dy: shadow.y, in: blurId, result: offsetId }), /* @__PURE__ */ React38.createElement(\"feComposite\", { in: offsetId, in2: \"SourceAlpha\", operator: \"arithmetic\", k2: \"-1\", k3: \"1\", result: compositeId }), /* @__PURE__ */ React38.createElement(\n    \"feColorMatrix\",\n    {\n      colorInterpolationFilters: \"sRGB\",\n      values: matrixValues,\n      type: \"matrix\",\n      in: compositeId,\n      result: matrixId\n    }\n  ));\n};\nfunction calcMaxRealisticShadowBlur(distance2, focus) {\n  return interpolate([0, 0.5, 1], [distance2 * 5, distance2, 0])(focus);\n}\nvar maxSpread = 5;\nfunction calcRealisticShadowSpread(diffusion) {\n  return mix(-maxSpread, 0, diffusion);\n}\nfunction localShadowFrame(shadow, frame2, isSVG2 = false) {\n  if (!isSVG2 && asRecord(shadow)[\"inset\"])\n    return null;\n  let growth = shadow.blur;\n  let minX;\n  let maxX;\n  let minY;\n  let maxY;\n  if (isSVG2) {\n    minX = -Math.abs(shadow.x) - growth;\n    maxX = Math.abs(shadow.x) + frame2.width + growth;\n    minY = -Math.abs(shadow.y) - growth;\n    maxY = Math.abs(shadow.y) + frame2.height + growth;\n  } else if (BoxShadow.is(shadow) && shadow.type === \"realistic\") {\n    growth = calcMaxRealisticShadowBlur(distance(shadow.x, shadow.y), shadow.focus) + calcRealisticShadowSpread(shadow.diffusion);\n    if (shadow.x >= 0) {\n      minX = 0 - growth;\n      maxX = shadow.x + frame2.width + growth;\n    } else {\n      minX = shadow.x - growth;\n      maxX = frame2.width + growth;\n    }\n    if (shadow.y >= 0) {\n      minY = 0 - growth;\n      maxY = shadow.y + frame2.height + growth;\n    } else {\n      minY = shadow.y - growth;\n      maxY = frame2.height + growth;\n    }\n  } else {\n    growth += shadow.spread;\n    minX = shadow.x - growth;\n    maxX = shadow.x + frame2.width + growth;\n    minY = shadow.y - growth;\n    maxY = shadow.y + frame2.height + growth;\n  }\n  if (maxX <= minX || maxY <= minY)\n    return null;\n  return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };\n}\n\n// ../../library/src/render/utils/filtersForNode.ts\nfunction collectLayerFilters(props, style) {\n  const filters = [];\n  if (isFiniteNumber(props.brightness)) {\n    filters.push(`brightness(${props.brightness / 100})`);\n  }\n  if (isFiniteNumber(props.contrast)) {\n    filters.push(`contrast(${props.contrast / 100})`);\n  }\n  if (isFiniteNumber(props.grayscale)) {\n    filters.push(`grayscale(${props.grayscale / 100})`);\n  }\n  if (isFiniteNumber(props.hueRotate)) {\n    filters.push(`hue-rotate(${props.hueRotate}deg)`);\n  }\n  if (isFiniteNumber(props.invert)) {\n    filters.push(`invert(${props.invert / 100})`);\n  }\n  if (isFiniteNumber(props.saturate)) {\n    filters.push(`saturate(${props.saturate / 100})`);\n  }\n  if (isFiniteNumber(props.sepia)) {\n    filters.push(`sepia(${props.sepia / 100})`);\n  }\n  if (isFiniteNumber(props.blur)) {\n    filters.push(`blur(${props.blur}px)`);\n  }\n  if (props.dropShadows) {\n    filters.push(...shadowsAsFilter(props.dropShadows));\n  }\n  if (filters.length === 0)\n    return;\n  style.filter = style.WebkitFilter = filters.join(\" \");\n}\nfunction collectBackgroundFilters(props, style) {\n  if (isFiniteNumber(props.backgroundBlur)) {\n    style.backdropFilter = style.WebkitBackdropFilter = `blur(${props.backgroundBlur}px)`;\n  }\n}\nfunction collectFiltersFromProps(props, style) {\n  collectBackgroundFilters(props, style);\n  collectLayerFilters(props, style);\n}\n\n// ../../library/src/render/style/collectVisualStyleFromProps.ts\nfunction collectVisualStyleFromProps(props, style, isTextNode = false) {\n  collectBackgroundFromProps(props, style);\n  collectRadiusFromProps(props, style);\n  collectFiltersFromProps(props, style);\n  collectBlendingFromProps(props, style);\n  collectOverflowFromProps(props, style);\n  collectOpacityFromProps(props, style);\n  collectTextColorFromProps(props, style);\n  if (isTextNode) {\n    collectTextShadowsForProps(props, style);\n  } else {\n    collectBoxShadowsForProps(props, style);\n  }\n}\n\n// ../../library/src/render/traits/Transform.ts\nvar { getNumber } = Animatable;\nvar transformDefaults = {\n  z: 0,\n  rotation: 0,\n  rotationX: 0,\n  rotationY: 0,\n  rotationZ: 0,\n  scale: 1,\n  scaleX: 1,\n  scaleY: 1,\n  scaleZ: 1,\n  skew: 0,\n  skewX: 0,\n  skewY: 0,\n  originX: 0.5,\n  originY: 0.5,\n  originZ: 0\n};\nfunction getRotation(rotation, rotate) {\n  if (typeof rotate === \"string\") {\n    rotate = parseFloat(rotate);\n  }\n  return isFiniteNumber(rotate) ? rotate : getNumber(rotation);\n}\nfunction collectTransformFromProps(props, rect, style) {\n  const motionStyle = style;\n  const x = typeof rect.x === \"number\" ? `${rect.x}px` : rect.x;\n  const y = typeof rect.y === \"number\" ? `${rect.y}px` : rect.y;\n  const z = getNumber(props.z);\n  const scaleZ = getNumber(props.scaleZ);\n  const originZ = getNumber(props.originZ);\n  const rotationZ = getRotation(props.rotationZ, resolveMotionValue(motionStyle.rotateZ));\n  const rotationX = getRotation(props.rotationX, resolveMotionValue(motionStyle.rotateX));\n  const rotationY = getRotation(props.rotationY, resolveMotionValue(motionStyle.rotateY));\n  const scale = getNumber(props.scale);\n  const scaleX = getNumber(props.scaleX);\n  const scaleY = getNumber(props.scaleY);\n  const skew = getNumber(props.skew);\n  const skewX = getNumber(props.skewX);\n  const skewY = getNumber(props.skewY);\n  const rotation = getRotation(props.rotation, resolveMotionValue(motionStyle.rotate));\n  const force3d = RenderEnvironment.target === \"EXPORT\" /* export */;\n  if (force3d || z !== 0 || scaleZ !== 1 || originZ !== 0 || rotationZ !== 0 || rotationX !== 0 || rotationY !== 0) {\n    style.transform = `\n            ${`translate3d(${x}, ${y}, ${z}px)`}\n            scale3d(${scaleX * scale}, ${scaleY * scale}, ${scaleZ})\n            skew(${skew}deg,${skew}deg)\n            skewX(${skewX}deg)\n            skewY(${skewY}deg)\n            translateZ(${originZ}px)\n            rotateX(${rotationX}deg)\n            rotateY(${rotationY}deg)\n            rotateZ(${(rotation + rotationZ).toFixed(4)}deg)\n            translateZ(${-originZ}px)`;\n  } else {\n    style.transform = `\n            ${`translate(${x}, ${y})`}\n            scale(${scaleX * scale}, ${scaleY * scale})\n            skew(${skew}deg,${skew}deg)\n            skewX(${skewX}deg)\n            skewY(${skewY}deg)\n            rotate(${rotation.toFixed(4)}deg)`;\n  }\n  const transformOrigin = `${getNumber(props.originX) * 100}% ${getNumber(props.originY) * 100}%`;\n  style.transformOrigin = transformOrigin;\n  style.WebkitTransformOrigin = transformOrigin;\n}\n\n// ../../library/src/render/presentation/Frame/DeprecatedFrame.tsx\nfunction cssBackgroundSize(size2) {\n  switch (size2) {\n    case \"fit\":\n      return \"contain\";\n    case \"stretch\":\n      return \"100% 100%\";\n    default:\n      return \"cover\";\n  }\n}\nfunction collectBackgroundImageFromProps(props, style) {\n  const image = backgroundImageFromProps(props);\n  if (image) {\n    style.backgroundImage = `url(\"${image.src}\")`;\n    style.backgroundSize = cssBackgroundSize(image.fit);\n    style.backgroundRepeat = \"no-repeat\";\n    style.backgroundPosition = \"center\";\n  }\n}\nfunction toPixelString(value) {\n  return isFiniteNumber(value) ? `${value}px` : value;\n}\nfunction applyLayoutProp(style, props, key7) {\n  if (props[key7] !== void 0) {\n    const value = Animatable.get(props[key7], void 0);\n    asRecord(style)[key7] = toPixelString(value);\n  }\n}\nvar DeprecatedFrame = /* @__PURE__ */ (() => {\n  const _DeprecatedFrameInner = class extends Layer {\n    constructor() {\n      super(...arguments);\n      this.element = null;\n      this.imageDidChange = false;\n      this.state = {\n        size: null\n      };\n      this.updateStyle = () => {\n        if (!this.element) {\n          return;\n        }\n        Object.assign(this.element.style, this.getStyle());\n      };\n      this.setElement = (element) => {\n        this.element = element;\n        this.setLayerElement(element);\n      };\n      this.onPropsChange = (props) => {\n        const rect = _DeprecatedFrameInner.rect(Animatable.objectToValues(props.value));\n        if (this.state.size && isAnimatable(this.state.size.width) && isAnimatable(props.value.width)) {\n          this.state.size.width.set(rect.width);\n        }\n        if (this.state.size && isAnimatable(this.state.size.height) && isAnimatable(props.value.height)) {\n          this.state.size.height.set(rect.height);\n        }\n        this.updateStyle();\n      };\n      this.onSizeChange = () => {\n        this.updateStyle();\n      };\n    }\n    static rect(props) {\n      const constraintValues = ConstraintValues.fromProperties(props);\n      const parentSizeInfo = props.parentSize ? { sizing: props.parentSize, positioning: props.parentSize, viewport: null } : null;\n      return ConstraintValues.toRect(constraintValues, parentSizeInfo, null, true);\n    }\n    get rect() {\n      return _DeprecatedFrameInner.rect(this.props);\n    }\n    static getDerivedStateFromProps(nextProps, prevState) {\n      const size2 = _DeprecatedFrameInner.updatedSize(nextProps, prevState);\n      const { target } = RenderEnvironment;\n      const nextBackgroundImageSrc = nextProps.background && BackgroundImage.isImageObject(nextProps.background) ? nextProps.background.src : null;\n      if (nextBackgroundImageSrc) {\n        return {\n          size: size2\n        };\n      }\n      if (prevState.size) {\n        if (target === \"PREVIEW\" /* preview */) {\n          return null;\n        }\n        if (prevState.size.width === size2.width && prevState.size.height === size2.height) {\n          return null;\n        }\n      }\n      return {\n        size: size2\n      };\n    }\n    static updatedSize(props, state) {\n      const rect = _DeprecatedFrameInner.rect(props);\n      let size2 = state.size;\n      const newSize = { width: rect.width, height: rect.height };\n      const { target } = RenderEnvironment;\n      if (!size2) {\n        if (target === \"PREVIEW\" /* preview */) {\n          size2 = ObservableObject(newSize, true);\n        } else {\n          size2 = newSize;\n        }\n      } else {\n        if (isAnimatable(size2.width) && isAnimatable(size2.height)) {\n          size2.width.set(newSize.width);\n          size2.height.set(newSize.height);\n        } else {\n          size2 = newSize;\n        }\n      }\n      return size2;\n    }\n    getStyle() {\n      const rect = this.rect;\n      const style = {\n        display: \"block\",\n        position: \"absolute\",\n        width: `${rect.width}px`,\n        height: `${rect.height}px`,\n        pointerEvents: void 0,\n        // TODO: this should be \"none\" for non-event consuming instances, for performance.\n        userSelect: \"none\"\n      };\n      let left = Animatable.get(this.props.left, void 0);\n      let top = Animatable.get(this.props.top, void 0);\n      Object.assign(style, this.props._initialStyle);\n      const hasParentSize = this.context.parentSize !== 1 /* Disabled */;\n      const perspective = Animatable.get(this.props.perspective, void 0);\n      style.perspective = perspective;\n      style.WebkitPerspective = perspective;\n      let backfaceVisibility = void 0;\n      const backfaceVisible = Animatable.get(this.props.backfaceVisible, void 0);\n      if (backfaceVisible === true) {\n        backfaceVisibility = \"visible\";\n      } else if (backfaceVisible === false) {\n        backfaceVisibility = \"hidden\";\n      }\n      style.backfaceVisibility = backfaceVisibility;\n      style.WebkitBackfaceVisibility = backfaceVisibility;\n      const preserve3d = Animatable.get(this.props.preserve3d, void 0);\n      if (preserve3d === true) {\n        style.transformStyle = \"preserve-3d\";\n      } else if (preserve3d === false) {\n        style.transformStyle = \"flat\";\n      }\n      if (!hasParentSize) {\n        applyLayoutProp(style, this.props, \"right\");\n        applyLayoutProp(style, this.props, \"bottom\");\n        const width = Animatable.get(this.props.width, void 0);\n        const stringWidth = toPixelString(width);\n        const height = Animatable.get(this.props.height, void 0);\n        const stringHeight = toPixelString(height);\n        if (typeof left === \"string\" && left.endsWith(\"%\") && this.props.right === null) {\n          left = `calc(${left} - calc(${stringWidth}} / 2))`;\n          style.width = stringWidth;\n        }\n        if (typeof top === \"string\" && top.endsWith(\"%\") && this.props.bottom === null) {\n          top = `calc(${top} - calc(${stringHeight} / 2))`;\n          style.height = stringHeight;\n        }\n        if (top !== void 0 && style.bottom !== void 0) {\n          style.height = void 0;\n          top = toPixelString(Animatable.get(this.props.top, void 0));\n        } else {\n          style.height = stringHeight;\n        }\n        if (left !== void 0 && style.right !== void 0) {\n          style.width = void 0;\n          left = toPixelString(Animatable.get(this.props.left, void 0));\n        } else {\n          style.width = stringWidth;\n        }\n      }\n      const transformRect = { ...rect };\n      if (typeof left !== \"undefined\") {\n        transformRect.x = left;\n      }\n      if (typeof top !== \"undefined\") {\n        transformRect.y = top;\n      }\n      collectTransformFromProps(this.props, transformRect, style);\n      collectVisualStyleFromProps(this.props, style);\n      collectBackgroundImageFromProps(this.props, style);\n      Layer.applyWillChange(this.props, style, false);\n      if (this.props.style) {\n        Object.assign(style, this.props.style);\n      }\n      return style;\n    }\n    componentDidMount() {\n      const { target } = RenderEnvironment;\n      if (target === \"PREVIEW\" /* preview */) {\n        this.propsObserver = ObservableObject(this.props, true);\n        this.propsObserverCancel = ObservableObject.addObserver(this.propsObserver, this.onPropsChange);\n        if (this.props.parentSize && isAnimatable(this.props.parentSize.width) && isAnimatable(this.props.parentSize.height)) {\n          this.sizeObserver = ObservableObject(this.props.parentSize, true);\n          this.sizeObserverCancel = ObservableObject.addObserver(this.sizeObserver, this.onSizeChange);\n        }\n      }\n    }\n    componentDidUpdate() {\n      const { target } = RenderEnvironment;\n      this.propsObserverCancel && this.propsObserverCancel();\n      this.sizeObserverCancel && this.sizeObserverCancel();\n      if (target === \"PREVIEW\" /* preview */) {\n        this.propsObserver = ObservableObject(this.props, true);\n        this.propsObserverCancel = ObservableObject.addObserver(this.propsObserver, this.onPropsChange);\n        if (this.props.parentSize && isAnimatable(this.props.parentSize.width) && isAnimatable(this.props.parentSize.height)) {\n          this.sizeObserver = ObservableObject(this.props.parentSize, true);\n          this.sizeObserverCancel = ObservableObject.addObserver(this.sizeObserver, this.onSizeChange);\n        }\n      }\n    }\n    componentWillUnmount() {\n      this.propsObserverCancel && this.propsObserverCancel();\n      this.propsObserverCancel = void 0;\n      this.sizeObserverCancel && this.sizeObserverCancel();\n      this.sizeObserverCancel = void 0;\n    }\n    render() {\n      countNodeRender();\n      const { visible, id, className } = this.props;\n      if (!visible) {\n        return null;\n      }\n      const style = this.getStyle();\n      const rect = this.rect;\n      const parentSize = { width: rect.width, height: rect.height };\n      return /* @__PURE__ */ React39.createElement(\"div\", { id, style, ref: this.setElement, className }, /* @__PURE__ */ React39.createElement(ProvideParentSize, { parentSize }, this.layoutChildren()), /* @__PURE__ */ React39.createElement(Border, { ...this.props }));\n    }\n    layoutChildren() {\n      let _forwardedOverrides = this.props._forwardedOverrides;\n      const extractions = this.props._overrideForwardingDescription;\n      if (extractions) {\n        let added = false;\n        _forwardedOverrides = {};\n        for (const [key7, value] of Object.entries(extractions)) {\n          added = true;\n          _forwardedOverrides[key7] = asRecord(this.props)[value];\n        }\n        if (!added) {\n          _forwardedOverrides = void 0;\n        }\n      }\n      let children = React39.Children.map(this.props.children, (child) => {\n        if (isConstraintSupportingChild(child)) {\n          return React39.cloneElement(child, {\n            parentSize: this.state.size,\n            _forwardedOverrides\n          });\n        } else if (_forwardedOverrides && child) {\n          return React39.cloneElement(child, { _forwardedOverrides });\n        } else {\n          return child;\n        }\n      });\n      if (children && children.length === 1 && typeof children[0] === \"string\") {\n        children = [/* @__PURE__ */ React39.createElement(Center, { key: \"0\" }, children)];\n      }\n      return children;\n    }\n  };\n  let DeprecatedFrameInner = _DeprecatedFrameInner;\n  DeprecatedFrameInner.supportsConstraints = true;\n  DeprecatedFrameInner.defaultFrameSpecificProps = {\n    ...constraintDefaults,\n    ...transformDefaults,\n    opacity: 1,\n    background: Color(\"rgba(0, 170, 255, 0.3)\"),\n    visible: true,\n    borderWidth: 0,\n    borderColor: \"#222\",\n    borderStyle: \"solid\"\n  };\n  DeprecatedFrameInner.defaultProps = {\n    ...Layer.defaultProps,\n    ..._DeprecatedFrameInner.defaultFrameSpecificProps\n  };\n  DeprecatedFrameInner.contextType = ConstraintsContext;\n  return DeprecatedFrameInner;\n})();\nfunction Center(props) {\n  const style = Object.assign(\n    {},\n    {\n      height: \"100%\",\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\",\n      fontFamily: \"Helvetica\"\n    },\n    props.style || {}\n  );\n  return /* @__PURE__ */ React39.createElement(\"div\", { style }, props.children);\n}\n\n// ../../library/src/render/presentation/Frame/isDeprecatedFrameProps.ts\nvar frameWithMotionPropsFields = [\n  \"_border\",\n  \"_constraints\",\n  \"animate\",\n  \"initial\",\n  \"variants\",\n  \"transition\",\n  \"inherit\",\n  \"center\",\n  \"initial\",\n  \"transformTemplate\",\n  \"animate\",\n  \"variants\",\n  \"transition\",\n  \"onUpdate\",\n  \"onAnimationComplete\",\n  \"onPanSessionStart\",\n  \"onTapCancel\",\n  \"whileTap\",\n  \"whileHover\",\n  \"onHoverStart\",\n  \"onHoverEnd\",\n  \"drag\",\n  \"dragDirectionLock\",\n  \"dragPropagation\",\n  \"dragConstraints\",\n  \"dragElastic\",\n  \"dragMomentum\",\n  \"dragTransition\",\n  \"onDragStart\",\n  \"onDragEnd\",\n  \"onDrag\",\n  \"onDirectionLock\",\n  \"onDragTransitionEnd\",\n  \"x\",\n  \"y\",\n  \"rotate\",\n  \"rotateX\",\n  \"rotateY\",\n  \"rotateZ\",\n  \"position\",\n  \"border\",\n  \"borderRadius\",\n  \"shadow\",\n  \"size\"\n];\nvar deprecatedFramePropsFields = [\n  \"autoSize\",\n  \"aspectRatio\",\n  \"borderWidth\",\n  \"borderStyle\",\n  \"borderColor\",\n  \"centerX\",\n  \"centerY\"\n];\nfunction isDeprecatedFrameProps(props) {\n  let field;\n  for (const propKey in props) {\n    if (isAnimatable(props[propKey]))\n      return true;\n  }\n  for (field of frameWithMotionPropsFields) {\n    if (props.hasOwnProperty(field))\n      return false;\n  }\n  for (field of deprecatedFramePropsFields) {\n    if (props.hasOwnProperty(field))\n      return true;\n  }\n  return false;\n}\n\n// ../../library/src/render/presentation/Frame/index.tsx\nvar DeprecatedFrameWithEvents = /* @__PURE__ */ WithEvents(DeprecatedFrame);\nvar Frame = /* @__PURE__ */ (() => {\n  const FrameInner = forwardRef2(function FrameInner2(props, ref) {\n    const parentSize = useParentSize();\n    if (isDeprecatedFrameProps(props)) {\n      const currentParentSize = props.parentSize || deprecatedParentSize(parentSize);\n      return /* @__PURE__ */ React40.createElement(DeprecatedFrameWithEvents, { ...props, parentSize: currentParentSize });\n    }\n    return /* @__PURE__ */ React40.createElement(FrameWithMotion, { ...props, ref });\n  });\n  FrameInner[\"displayName\"] = \"Frame\";\n  return FrameInner;\n})();\n\n// ../../library/src/components/AnimateLayout/SharedLayoutTree.tsx\nimport React41, { Component as Component5 } from \"react\";\nvar LayoutTree = class extends Component5 {\n  constructor() {\n    super(...arguments);\n    /**\n     * A list of projection nodes in the tree\n     */\n    this.projectionNodes = /* @__PURE__ */ new Map();\n    this.shouldPreserveFollowOpacity = (child) => {\n      return child.options.layoutId === TREE_ROOT_ID && !this.props.isExiting;\n    };\n    this.switchLayoutGroupContext = {\n      register: (child) => this.addChild(child),\n      deregister: (child) => this.removeChild(child),\n      // Configs to use for the initial promotion on mount in Motion\n      transition: this.props.isLead !== void 0 && this.props.animatesLayout ? this.props.transition : void 0,\n      shouldPreserveFollowOpacity: this.shouldPreserveFollowOpacity\n    };\n  }\n  componentDidMount() {\n    if (this.props.isLead) {\n      this.props.sharedLayoutContext.initLead(this, !!this.props.animatesLayout);\n    }\n  }\n  shouldComponentUpdate(nextProps) {\n    const { isLead, isExiting, isOverlayed, animatesLayout, transition, sharedLayoutContext } = nextProps;\n    this.isExiting = isExiting;\n    if (isLead === void 0)\n      return true;\n    const hasBecomeLead = !this.props.isLead && !!isLead;\n    const hasExitBeenCancelled = this.props.isExiting && !isExiting;\n    const shouldPromote = hasBecomeLead || hasExitBeenCancelled;\n    const shouldDemote = !!this.props.isLead && !isLead;\n    const overlayChanged = this.props.isOverlayed !== isOverlayed;\n    if (shouldPromote || shouldDemote) {\n      this.projectionNodes.forEach((projection) => projection == null ? void 0 : projection.willUpdate());\n    }\n    if (shouldPromote) {\n      sharedLayoutContext.schedulePromoteTree(this, transition, !!animatesLayout);\n    } else if (overlayChanged) {\n      sharedLayoutContext.scheduleProjectionDidUpdate();\n    }\n    return !!shouldPromote && !!animatesLayout;\n  }\n  addChild(child) {\n    const layoutId = child.options.layoutId;\n    if (layoutId) {\n      this.projectionNodes.set(layoutId, child);\n      this.setRootChild(child);\n    }\n  }\n  /**\n   * As children are added, make sure that `this.rootProjectionNode` is always the\n   * child with the smallest depth.\n   */\n  setRootChild(child) {\n    if (!this.rootProjectionNode)\n      return this.rootProjectionNode = child;\n    this.rootProjectionNode = this.rootProjectionNode.depth < child.depth ? this.rootProjectionNode : child;\n  }\n  removeChild(child) {\n    const layoutId = child.options.layoutId;\n    if (layoutId) {\n      this.projectionNodes.delete(layoutId);\n    }\n  }\n  render() {\n    return /* @__PURE__ */ React41.createElement(SwitchLayoutGroupContext.Provider, { value: this.switchLayoutGroupContext }, this.props.children);\n  }\n};\nvar SharedLayoutTree = (props) => {\n  const sharedLayoutContext = React41.useContext(SharedLayoutContext);\n  return /* @__PURE__ */ React41.createElement(LayoutTree, { ...props, sharedLayoutContext });\n};\n\n// ../../library/src/components/NavigationContainerContext.tsx\nimport React42, { useContext as useContext6 } from \"react\";\nvar NavigationContainerContext = React42.createContext(true);\nfunction useIsInCurrentNavigationTarget() {\n  const isInCurrentNavigationTarget = useContext6(NavigationContainerContext);\n  return isInCurrentNavigationTarget;\n}\n\n// ../../library/src/components/NavigationTargetContext.tsx\nimport React43, { createContext, useCallback as useCallback4, useContext as useContext7, useEffect as useEffect5, useRef as useRef6 } from \"react\";\n\n// ../../library/src/components/utils/useMap.ts\nfunction newMap() {\n  return /* @__PURE__ */ new Map();\n}\nfunction useMap() {\n  return useConstant(newMap);\n}\n\n// ../../library/src/components/NavigationTargetContext.tsx\nvar NavigationTargetContext = /* @__PURE__ */ createContext({ register: () => {\n}, deregister: () => {\n} });\nvar NavigationTargetWrapper = ({ isCurrent, isOverlayed, children }) => {\n  const callbacks2 = useMap();\n  const register = useCallback4(\n    (fn) => {\n      if (callbacks2.has(fn)) {\n        console.warn(\"NavigationTargetWrapper: already registered\");\n        return;\n      }\n      callbacks2.set(fn, void 0);\n    },\n    [\n      callbacks2\n      /* constant, so should never change */\n    ]\n  );\n  const deregister = useCallback4(\n    (fn) => {\n      const cleanup = callbacks2.get(fn);\n      cleanup == null ? void 0 : cleanup();\n      callbacks2.delete(fn);\n    },\n    [\n      callbacks2\n      /* constant, so should never change */\n    ]\n  );\n  const value = useRef6({ register, deregister }).current;\n  useEffect5(() => {\n    callbacks2.forEach((_, cb) => {\n      const newCleanup = cb(isCurrent, isOverlayed);\n      callbacks2.set(cb, isFunction(newCleanup) ? newCleanup : void 0);\n    });\n    return () => {\n      callbacks2.forEach((cleanup, cb) => {\n        if (!cleanup)\n          return;\n        cleanup();\n        callbacks2.set(cb, void 0);\n      });\n    };\n  }, [\n    isCurrent,\n    isOverlayed,\n    callbacks2\n    /* constant, so should never change */\n  ]);\n  return /* @__PURE__ */ React43.createElement(NavigationTargetContext.Provider, { value }, children);\n};\nfunction useOnCurrentTargetChange(callback, deps = []) {\n  const { register, deregister } = useContext7(NavigationTargetContext);\n  useEffect5(() => {\n    if (!callback)\n      return;\n    register(callback);\n    return () => deregister(callback);\n  }, [register, deregister, ...deps]);\n}\n\n// ../../library/src/components/NavigationContainer.tsx\nvar NavigationContainer = /* @__PURE__ */ React44.memo(function NavigationContainer2({\n  isLayeredContainer,\n  isCurrent,\n  isPrevious,\n  isOverlayed = false,\n  visible,\n  transitionProps,\n  children,\n  backdropColor,\n  onTapBackdrop,\n  backfaceVisible,\n  exitBackfaceVisible,\n  animation,\n  exitAnimation,\n  instant,\n  initialProps,\n  exitProps,\n  position = { top: 0, right: 0, bottom: 0, left: 0 },\n  withMagicMotion,\n  index,\n  areMagicMotionLayersPresent,\n  id,\n  isInitial\n}) {\n  const animate3 = useAnimation();\n  const presence = useContext8(PresenceContext);\n  const { persistLayoutIdCache } = useContext8(LayoutIdContext);\n  const previousState = useRef7({\n    wasCurrent: void 0,\n    wasPrevious: false,\n    wasBeingRemoved: false,\n    wasReset: true,\n    origins: getOriginProps({}, initialProps, transitionProps)\n  });\n  const viewportRef = useRef7(null);\n  const isBeingRemoved = presence !== null && !presence.isPresent;\n  if (isCurrent && previousState.current.wasCurrent === void 0)\n    persistLayoutIdCache();\n  useEffect6(() => {\n    if (isLayeredContainer || !animate3)\n      return;\n    if (isBeingRemoved) {\n      previousState.current = {\n        ...previousState.current,\n        wasBeingRemoved: isBeingRemoved\n      };\n      return;\n    }\n    const { wasPrevious, wasCurrent } = previousState.current;\n    const shouldAnimateIn = isCurrent && !wasCurrent || // If the screen was being removed as a result of a \"go back\" transition, but that removal is interrupted,\n    // resulting in this screen being restored to the current screen, we need to trigger an animation.\n    !isBeingRemoved && previousState.current.wasBeingRemoved && isCurrent;\n    const shouldAnimateOut = isPrevious && !wasPrevious;\n    const origins = getOriginProps(previousState.current.origins, initialProps, transitionProps);\n    let wasReset = previousState.current.wasReset;\n    if (shouldAnimateIn || shouldAnimateOut) {\n      animate3.stop();\n      animate3.start({\n        zIndex: index,\n        ...origins,\n        ...transitionProps\n      });\n      wasReset = false;\n    } else if (wasReset === false) {\n      animate3.stop();\n      animate3.set({ zIndex: index, ...allAnimatableProperties, opacity: 0 });\n      wasReset = true;\n    }\n    previousState.current = {\n      wasCurrent: !!isCurrent,\n      wasPrevious: !!isPrevious,\n      wasBeingRemoved: false,\n      wasReset,\n      origins\n    };\n  }, [isCurrent, isPrevious, isBeingRemoved]);\n  const transition = instant ? { type: false } : \"velocity\" in animation ? { ...animation, velocity: 0 } : animation;\n  const exitTransition = instant ? { type: false } : exitAnimation || animation;\n  const layout = { ...position };\n  if (layout.left === void 0 || layout.right === void 0)\n    layout.width = \"auto\";\n  if (layout.top === void 0 || layout.bottom === void 0)\n    layout.height = \"auto\";\n  const needsPerspective = contains3Dprops(transitionProps) || contains3Dprops(initialProps);\n  const perspective = needsPerspective && (isLayeredContainer || isCurrent || isPrevious) ? 1200 : void 0;\n  const identity = { ...allAnimatableProperties, ...previousState.current.origins };\n  const animations2 = isLayeredContainer ? {\n    initial: { ...identity, ...initialProps },\n    animate: { ...identity, ...transitionProps, transition },\n    // Overlay animations are sometimes instant\n    exit: { ...identity, ...exitProps, transition: animation }\n    // Overlay exits are always animated\n  } : {\n    animate: animate3,\n    exit: { ...identity, ...exitProps, transition: exitTransition }\n  };\n  const isPresent = isBeingRemoved || areMagicMotionLayersPresent === false ? false : true;\n  const isCurrentTarget = !!isCurrent && isPresent;\n  const forceOpacity = isCurrent && isInitial;\n  return /* @__PURE__ */ React44.createElement(\n    FrameWithMotion,\n    {\n      \"data-framer-component-type\": \"NavigationContainerWrapper\",\n      width: \"100%\",\n      height: \"100%\",\n      style: {\n        position: \"absolute\",\n        transformStyle: \"flat\",\n        backgroundColor: \"transparent\",\n        overflow: \"hidden\",\n        // Unlike Overlays, Screens set zIndex via animation controls to ensure it's set in parallel with the animation being played.\n        // However, when a screen exits, it needs to preserve it's zIndex, which can't be applied through an `exit` animation,\n        // and might be impacted by the layer created by `perspective`.\n        zIndex: isLayeredContainer || isBeingRemoved || isCurrent && withMagicMotion ? index : void 0,\n        pointerEvents: void 0,\n        visibility: visible ? \"visible\" : \"hidden\",\n        perspective\n      }\n    },\n    isLayeredContainer && /* @__PURE__ */ React44.createElement(\n      FrameWithMotion,\n      {\n        width: \"100%\",\n        height: \"100%\",\n        \"data-framer-component-type\": \"NavigationContainerBackdrop\",\n        transition: animation,\n        initial: { opacity: instant && visible ? 1 : 0 },\n        animate: { opacity: 1 },\n        exit: { opacity: 0 },\n        backgroundColor: backdropColor ? backdropColor : \"transparent\",\n        onTap: !isBeingRemoved ? onTapBackdrop : void 0\n      }\n    ),\n    /* @__PURE__ */ React44.createElement(\n      FrameWithMotion,\n      {\n        ...layout,\n        ...animations2,\n        transition: {\n          default: transition,\n          originX: { type: false },\n          originY: { type: false },\n          originZ: { type: false }\n        },\n        backgroundColor: \"transparent\",\n        backfaceVisible: !isBeingRemoved ? backfaceVisible : exitBackfaceVisible,\n        \"data-framer-component-type\": \"NavigationContainer\",\n        \"data-framer-is-current-navigation-target\": !!isCurrent,\n        style: {\n          pointerEvents: void 0,\n          // When we mount a new screen that is going to be animated in with animation controls,\n          // we need to ensure that the screen is hidden until the animation starts.\n          opacity: forceOpacity || isLayeredContainer || isCurrent && withMagicMotion ? 1 : 0\n        },\n        \"data-is-present\": isPresent ? void 0 : false,\n        ref: viewportRef\n      },\n      /* @__PURE__ */ React44.createElement(ViewportContext.Provider, { value: viewportRef }, /* @__PURE__ */ React44.createElement(NavigationContainerContext.Provider, { value: isCurrentTarget }, /* @__PURE__ */ React44.createElement(NavigationTargetWrapper, { isCurrent: isCurrentTarget, isOverlayed }, /* @__PURE__ */ React44.createElement(\n        SharedLayoutTree,\n        {\n          isLead: isCurrent,\n          animatesLayout: !!withMagicMotion,\n          transition,\n          isExiting: !isPresent,\n          isOverlayed,\n          id\n        },\n        children\n      ))))\n    )\n  );\n}, shouldUsePreviousValue);\nfunction shouldUsePreviousValue(prevProps, nextProps) {\n  if (nextProps.isCurrent === void 0)\n    return false;\n  if (prevProps.isCurrent !== nextProps.isCurrent)\n    return false;\n  if (prevProps.isPrevious !== nextProps.isPrevious)\n    return false;\n  if (nextProps.isCurrent && prevProps.isOverlayed !== nextProps.isOverlayed)\n    return false;\n  return true;\n}\nfunction getOriginProps(currentOriginProps, initialProps, transitionProps) {\n  const result = { ...currentOriginProps };\n  if (initialProps) {\n    if (isFiniteNumber(initialProps.originX))\n      result.originX = initialProps.originX;\n    if (isFiniteNumber(initialProps.originY))\n      result.originY = initialProps.originY;\n    if (isFiniteNumber(initialProps.originZ))\n      result.originZ = initialProps.originZ;\n  }\n  if (transitionProps) {\n    if (isFiniteNumber(transitionProps.originX))\n      result.originX = transitionProps.originX;\n    if (isFiniteNumber(transitionProps.originY))\n      result.originY = transitionProps.originY;\n    if (isFiniteNumber(transitionProps.originZ))\n      result.originZ = transitionProps.originZ;\n  }\n  return result;\n}\nfunction contains3Dprops(containerProps) {\n  var _a, _b, _c;\n  if (!containerProps)\n    return false;\n  const containsProps = \"rotateX\" in containerProps || \"rotateY\" in containerProps || \"z\" in containerProps;\n  if (!containsProps)\n    return false;\n  const toPropsContain3d = containerProps.rotateX !== 0 || containerProps.rotateY !== 0 || containerProps.z !== 0;\n  const fromPropsContain3d = ((_a = containerProps == null ? void 0 : containerProps.transition) == null ? void 0 : _a.rotateX.from) !== 0 || ((_b = containerProps == null ? void 0 : containerProps.transition) == null ? void 0 : _b.rotateY.from) !== 0 || ((_c = containerProps == null ? void 0 : containerProps.transition) == null ? void 0 : _c.z.from) !== 0;\n  return toPropsContain3d || fromPropsContain3d;\n}\nvar allAnimatableProperties = {\n  x: 0,\n  y: 0,\n  z: 0,\n  rotate: 0,\n  rotateX: 0,\n  rotateY: 0,\n  rotateZ: 0,\n  scale: 1,\n  scaleX: 1,\n  scaleY: 1,\n  scaleZ: 1,\n  skew: 0,\n  skewX: 0,\n  skewY: 0,\n  originX: 0.5,\n  originY: 0.5,\n  originZ: 0,\n  opacity: 1\n};\n\n// ../../library/src/components/NavigationContext.ts\nimport { createContext as createContext2 } from \"react\";\n\n// ../../library/src/components/NavigatorMock.tsx\nvar NavigatorMock = class {\n  constructor() {\n    this.warning = () => {\n      warnOnce(\"The Navigator API is only available inside of Framer: https://www.framer.com/\");\n    };\n    this.goBack = () => this.warning();\n    this.instant = () => this.warning();\n    this.fade = () => this.warning();\n    this.push = () => this.warning();\n    this.modal = () => this.warning();\n    this.overlay = () => this.warning();\n    this.flip = () => this.warning();\n    this.customTransition = () => this.warning();\n    this.magicMotion = () => this.warning();\n  }\n};\nvar navigatorMock = new NavigatorMock();\n\n// ../../library/src/components/NavigationContext.ts\nvar NavigationContext = createContext2(navigatorMock);\n\n// ../../library/src/components/NavigationTransitions.ts\nvar TransitionDefaults = {\n  Fade: {\n    exit: { opacity: 0 },\n    enter: { opacity: 0 }\n  },\n  PushLeft: {\n    exit: { x: \"-30%\" },\n    enter: { x: \"100%\" }\n  },\n  PushRight: {\n    exit: { x: \"30%\" },\n    enter: { x: \"-100%\" }\n  },\n  PushUp: {\n    exit: { y: \"-30%\" },\n    enter: { y: \"100%\" }\n  },\n  PushDown: {\n    exit: { y: \"30%\" },\n    enter: { y: \"-100%\" }\n  },\n  Instant: {\n    animation: { type: false },\n    enter: { opacity: 0 }\n  },\n  Modal: {\n    overCurrentContext: true,\n    goBackOnTapOutside: true,\n    position: { center: true },\n    enter: { opacity: 0, scale: 1.2 }\n  },\n  OverlayLeft: {\n    overCurrentContext: true,\n    goBackOnTapOutside: true,\n    position: { right: 0, top: 0, bottom: 0 },\n    enter: { x: \"100%\" }\n  },\n  OverlayRight: {\n    overCurrentContext: true,\n    goBackOnTapOutside: true,\n    position: { left: 0, top: 0, bottom: 0 },\n    enter: { x: \"-100%\" }\n  },\n  OverlayUp: {\n    overCurrentContext: true,\n    goBackOnTapOutside: true,\n    position: { bottom: 0, left: 0, right: 0 },\n    enter: { y: \"100%\" }\n  },\n  OverlayDown: {\n    overCurrentContext: true,\n    goBackOnTapOutside: true,\n    position: { top: 0, left: 0, right: 0 },\n    enter: { y: \"-100%\" }\n  },\n  FlipLeft: {\n    backfaceVisible: false,\n    exit: { rotateY: -180 },\n    enter: { rotateY: 180 }\n  },\n  FlipRight: {\n    backfaceVisible: false,\n    exit: { rotateY: 180 },\n    enter: { rotateY: -180 }\n  },\n  FlipUp: {\n    backfaceVisible: false,\n    exit: { rotateX: 180 },\n    enter: { rotateX: -180 }\n  },\n  FlipDown: {\n    backfaceVisible: false,\n    exit: { rotateX: -180 },\n    enter: { rotateX: 180 }\n  },\n  MagicMotion: {\n    withMagicMotion: true\n  }\n};\nfunction pushTransition(options) {\n  const side = options && options.appearsFrom ? options.appearsFrom : \"right\";\n  switch (side) {\n    case \"right\":\n      return TransitionDefaults.PushLeft;\n    case \"left\":\n      return TransitionDefaults.PushRight;\n    case \"bottom\":\n      return TransitionDefaults.PushUp;\n    case \"top\":\n      return TransitionDefaults.PushDown;\n  }\n}\nfunction overlayTransition(options) {\n  const side = options && options.appearsFrom ? options.appearsFrom : \"bottom\";\n  switch (side) {\n    case \"right\":\n      return TransitionDefaults.OverlayLeft;\n    case \"left\":\n      return TransitionDefaults.OverlayRight;\n    case \"bottom\":\n      return TransitionDefaults.OverlayUp;\n    case \"top\":\n      return TransitionDefaults.OverlayDown;\n  }\n}\nfunction flipTransition(options) {\n  const side = options && options.appearsFrom ? options.appearsFrom : \"bottom\";\n  switch (side) {\n    case \"right\":\n      return TransitionDefaults.FlipLeft;\n    case \"left\":\n      return TransitionDefaults.FlipRight;\n    case \"bottom\":\n      return TransitionDefaults.FlipUp;\n    case \"top\":\n      return TransitionDefaults.FlipDown;\n  }\n}\n\n// ../../library/src/components/reduceNavigationStateForAction.ts\nvar defaultState = () => ({\n  current: -1,\n  previous: -1,\n  currentOverlay: -1,\n  previousOverlay: -1,\n  visualIndex: 0,\n  overlayItemId: 0,\n  historyItemId: 0,\n  history: [],\n  overlayStack: [],\n  containers: {},\n  containerIndex: {},\n  containerVisualIndex: {},\n  containerIsRemoved: {},\n  transitionForContainer: {},\n  previousTransition: null\n});\nfunction reduceNavigationStateForAction(state, action) {\n  switch (action.type) {\n    case \"addOverlay\":\n      return addOverlay(state, action.transition, action.component);\n    case \"removeOverlay\":\n      return removeOverlay(state);\n    case \"add\":\n      return add(state, action.key, action.transition, action.component);\n    case \"remove\":\n      return remove(state);\n    case \"update\":\n      return updateComponent(state, action.key, action.component);\n    case \"back\":\n      return back(state);\n    case \"forward\":\n      return forward(state);\n    default:\n      return;\n  }\n}\nfunction updateComponent(currentState, key7, component) {\n  return {\n    ...currentState,\n    containers: {\n      ...currentState.containers,\n      [key7]: component\n    }\n  };\n}\nfunction addOverlay(currentState, transition, component) {\n  const currentOverlay = currentState.overlayStack[currentState.currentOverlay];\n  if (currentOverlay && currentOverlay.component === component)\n    return;\n  const overlayItemId = currentState.overlayItemId + 1;\n  const overlayStack = [\n    ...currentState.overlayStack,\n    {\n      key: `stack-${overlayItemId}`,\n      component,\n      transition\n    }\n  ];\n  return {\n    ...currentState,\n    overlayStack,\n    overlayItemId,\n    currentOverlay: Math.max(0, Math.min(currentState.currentOverlay + 1, overlayStack.length - 1)),\n    previousOverlay: currentState.currentOverlay\n  };\n}\nfunction removeOverlay(currentState) {\n  return {\n    ...currentState,\n    overlayStack: [],\n    currentOverlay: -1,\n    previousOverlay: currentState.currentOverlay\n  };\n}\nfunction add(currentState, key7, transition, component) {\n  if (!currentState.containers[key7])\n    currentState.containers[key7] = component;\n  currentState.history = currentState.history.slice(0, currentState.current + 1);\n  currentState.visualIndex = Math.max(currentState.history.length, 0);\n  const currentItem = currentState.history[currentState.history.length - 1];\n  const isCurrentScreen = currentItem && currentItem.key === key7;\n  currentState.overlayStack = [];\n  if (isCurrentScreen && currentState.currentOverlay > -1) {\n    return {\n      ...currentState,\n      currentOverlay: -1,\n      previousOverlay: currentState.currentOverlay\n    };\n  }\n  if (isCurrentScreen)\n    return;\n  const nextIndex = currentState.containerVisualIndex[key7];\n  const removed = currentState.containerIsRemoved[key7];\n  const shouldMoveForward = (currentItem == null ? void 0 : currentItem.key) && transition.withMagicMotion ? isNextTargetForward(key7, nextIndex, removed, currentState.history) : true;\n  currentState.history.push({\n    key: key7,\n    transition,\n    visualIndex: shouldMoveForward ? Math.max(currentState.visualIndex, 0) : currentState.containerVisualIndex[key7]\n  });\n  const current = currentState.current + 1;\n  const previous = currentState.current;\n  for (const containerKey in currentState.containerIndex) {\n    if (currentState.containerIndex[containerKey] === current) {\n      currentState.containerIndex[containerKey] = findLatestHistoryIndex(containerKey, currentState.history);\n    }\n  }\n  currentState.containerIndex[key7] = current;\n  const { containerVisualIndex, containerIsRemoved } = magicMotionPropsForAdd(currentState, key7, shouldMoveForward);\n  const transitionForContainer = updateTransitions(\n    current,\n    previous,\n    currentState.history,\n    currentState.containerIndex,\n    currentState.transitionForContainer\n  );\n  return {\n    ...currentState,\n    current,\n    previous,\n    containerVisualIndex,\n    containerIsRemoved,\n    transitionForContainer,\n    previousTransition: null,\n    currentOverlay: -1,\n    historyItemId: currentState.historyItemId + 1,\n    previousOverlay: currentState.currentOverlay\n  };\n}\nfunction back(currentState) {\n  const containers = { ...currentState.containers };\n  const nextState = remove(currentState);\n  if (!nextState)\n    return;\n  nextState.containers = containers;\n  return nextState;\n}\nfunction forward(currentState) {\n  const nextItem = currentState.history[currentState.current + 1];\n  if (!nextItem)\n    return;\n  const { key: key7, transition, component } = nextItem;\n  const history = [...currentState.history];\n  const nextState = add(currentState, key7, transition, component);\n  if (!nextState)\n    return;\n  nextState.history = history;\n  return nextState;\n}\nfunction remove(currentState) {\n  const history = [...currentState.history.slice(0, currentState.current + 1)];\n  if (history.length === 1)\n    return;\n  const currentItem = history.pop();\n  if (!currentItem)\n    return;\n  const target = history[history.length - 1];\n  assert(target, \"The navigation history must have at least one component\");\n  currentState.containerIndex[target.key] = history.length - 1;\n  const shouldRemoveContainer = history.every((item) => item.key !== currentItem.key);\n  if (shouldRemoveContainer) {\n    delete currentState.containers[currentItem.key];\n  }\n  const current = currentState.current - 1;\n  const previous = currentState.current;\n  const { containerIsRemoved, containerVisualIndex, previousTransition, visualIndex } = magicMotionPropsForRemove(\n    currentState,\n    target,\n    currentItem\n  );\n  const transitionForContainer = updateTransitions(\n    current,\n    previous,\n    currentState.history,\n    currentState.containerIndex,\n    currentState.transitionForContainer\n  );\n  return {\n    ...currentState,\n    current,\n    previous,\n    containerIsRemoved,\n    containerVisualIndex,\n    previousTransition,\n    visualIndex,\n    transitionForContainer\n  };\n}\nfunction magicMotionPropsForAdd(currentState, nextKey, shouldMoveForward) {\n  const update = {\n    containerVisualIndex: { ...currentState.containerVisualIndex },\n    containerIsRemoved: { ...currentState.containerIsRemoved }\n  };\n  if (shouldMoveForward) {\n    update.containerVisualIndex[nextKey] = currentState.history.length - 1;\n    update.containerIsRemoved[nextKey] = false;\n  } else {\n    const nextVisualIndex = currentState.containerVisualIndex[nextKey];\n    for (const [key7, visualIndex] of Object.entries(currentState.containerVisualIndex)) {\n      if (nextVisualIndex !== void 0 && visualIndex > nextVisualIndex) {\n        update.containerIsRemoved[key7] = true;\n      }\n    }\n  }\n  return update;\n}\nfunction magicMotionPropsForRemove(currentState, target, currentItem) {\n  const validTargets = [target.key, currentItem.key];\n  const nextValidTarget = currentState.history[currentState.history.length - 2];\n  const previousTransition = currentState.previousTransition === null ? null : { ...currentState.previousTransition };\n  const update = {\n    containerIsRemoved: { ...currentState.containerIsRemoved },\n    containerVisualIndex: { ...currentState.containerVisualIndex },\n    previousTransition,\n    visualIndex: currentState.visualIndex\n  };\n  if (nextValidTarget)\n    validTargets.push(nextValidTarget.key);\n  const targetVisualIndex = currentState.containerVisualIndex[target.key];\n  const currentVisualIndex = currentState.containerVisualIndex[currentItem.key];\n  const shouldRemoveLastKey = targetVisualIndex !== void 0 && currentVisualIndex !== void 0 && targetVisualIndex <= currentVisualIndex || target.visualIndex !== void 0 && target.visualIndex < currentState.history.length - 1;\n  const nextIndex = target.visualIndex;\n  if (shouldRemoveLastKey) {\n    update.containerIsRemoved[currentItem.key] = true;\n    update.containerVisualIndex[target.key] = nextIndex !== void 0 ? nextIndex : currentState.history.length - 1;\n  } else {\n    update.visualIndex = currentState.visualIndex + 1;\n    update.containerVisualIndex[target.key] = currentState.visualIndex + 1;\n  }\n  if (currentItem.transition.withMagicMotion)\n    update.previousTransition = currentItem.transition || null;\n  currentState.containerIsRemoved[target.key] = false;\n  return update;\n}\nfunction findLatestHistoryIndex(key7, history) {\n  var _a;\n  for (let index = history.length; index > history.length; index--) {\n    if (((_a = history[index]) == null ? void 0 : _a.key) === key7)\n      return index;\n  }\n  return -1;\n}\nfunction updateTransitions(current, previous, history, containerIndex, transitionForContainer) {\n  const transitions = { ...transitionForContainer };\n  for (const [key7, screenIndex] of Object.entries(containerIndex)) {\n    const transition = transitionForScreen(screenIndex, { current, previous, history });\n    if (transition) {\n      transitions[key7] = transition;\n    }\n  }\n  return transitions;\n}\nfunction isNextTargetForward(key7, index, removed, history) {\n  if (removed || index === void 0)\n    return true;\n  if (index === 0)\n    return false;\n  const forwardHistory = history.slice(index, history.length);\n  if (forwardHistory.findIndex((item) => item.key === key7) > -1)\n    return true;\n  const backwardsHistory = history.slice(0, index - 1);\n  if (backwardsHistory.findIndex((item) => item.key === key7) > -1)\n    return false;\n  return true;\n}\nfunction transitionForScreen(screenIndex, stackState) {\n  const { current, previous, history } = stackState;\n  if (screenIndex !== current && screenIndex !== previous)\n    return void 0;\n  if (screenIndex === current && current > previous) {\n    const item = history[screenIndex];\n    return sequence(\"enter\", item == null ? void 0 : item.transition.enter, item == null ? void 0 : item.transition.animation);\n  }\n  if (screenIndex === previous && current > previous) {\n    const item = history[screenIndex + 1];\n    return sequence(\"exit\", item == null ? void 0 : item.transition.exit, item == null ? void 0 : item.transition.animation);\n  }\n  if (screenIndex === current && current < previous) {\n    const item = history[screenIndex + 1];\n    return sequence(\"enter\", item == null ? void 0 : item.transition.exit, item == null ? void 0 : item.transition.animation);\n  }\n  if (screenIndex === previous && current < previous) {\n    const item = history[screenIndex];\n    return sequence(\"exit\", item == null ? void 0 : item.transition.enter, item == null ? void 0 : item.transition.animation);\n  }\n}\nvar allAnimatableKeys = objectKeys(allAnimatableProperties);\nfunction sequence(direction, transition, animation) {\n  const value = {};\n  const from = {};\n  allAnimatableKeys.forEach((property) => {\n    value[property] = allAnimatableProperties[property];\n    from[property] = {\n      ...animation,\n      from: allAnimatableProperties[property]\n    };\n  });\n  if (transition) {\n    Object.keys(transition).forEach((property) => {\n      if (transition[property] === void 0)\n        return;\n      const transitionTo = transition[property];\n      const transitionFrom = typeof transition[property] === \"string\" ? `${asRecord(allAnimatableProperties)[property]}%` : asRecord(allAnimatableProperties)[property];\n      asRecord(value)[property] = direction === \"enter\" ? transitionFrom : transitionTo;\n      from[property] = {\n        ...animation,\n        from: direction === \"enter\" ? transitionTo : transitionFrom,\n        velocity: 0\n      };\n    });\n  }\n  return {\n    ...value,\n    transition: {\n      ...from\n    }\n  };\n}\n\n// ../../library/src/components/Navigation.tsx\nvar NavigationConsumer = NavigationContext.Consumer;\nvar NavigationCallbackContext = React45.createContext(void 0);\nvar NavigationCallbackProvider = NavigationCallbackContext.Provider;\nvar IsInitialNavigationContext = React45.createContext(void 0);\nvar Navigation = class extends Component6 {\n  constructor(props) {\n    var _a;\n    super(props);\n    this.lastEventTimeStamp = null;\n    this.state = defaultState();\n    this.navigationAction = (action) => {\n      if (!this.props.enabled && this.state.history.length > 0)\n        return;\n      const newState = reduceNavigationStateForAction(this.state, action);\n      if (!newState)\n        return;\n      const { skipLayoutAnimation } = this.props;\n      const historyItem = newState.history[newState.current];\n      const withMagicMotion = action.type === \"add\" && action.transition.withMagicMotion || action.type === \"forward\" && (historyItem == null ? void 0 : historyItem.transition.withMagicMotion) || action.type === \"remove\" && !!newState.previousTransition;\n      const updateState = () => {\n        var _a;\n        this.setState(newState);\n        if (historyItem == null ? void 0 : historyItem.key) {\n          (_a = this.context) == null ? void 0 : _a.call(this, historyItem.key);\n        }\n      };\n      if (skipLayoutAnimation && !withMagicMotion) {\n        skipLayoutAnimation(updateState);\n      } else {\n        updateState();\n      }\n    };\n    this.goBack = () => {\n      var _a;\n      if (this.isSameEventTransition())\n        return;\n      this.lastEventTimeStamp = ((_a = globalThis.event) == null ? void 0 : _a.timeStamp) || null;\n      if (this.state.currentOverlay !== -1)\n        return this.navigationAction({ type: \"removeOverlay\" });\n      return this.navigationAction({ type: \"remove\" });\n    };\n    const component = this.props.children;\n    if (!component || !isReactChild(component) || !isReactElement(component))\n      return;\n    const transition = { ...TransitionDefaults.Instant };\n    const key7 = ((_a = component.key) == null ? void 0 : _a.toString()) || `stack-${this.state.historyItemId + 1}`;\n    const action = { type: \"add\", key: key7, transition, component };\n    const newState = reduceNavigationStateForAction(this.state, action);\n    if (!newState)\n      return;\n    this.state = newState;\n  }\n  componentDidMount() {\n    var _a;\n    injectComponentCSSRules();\n    const historyItem = this.state.history[this.state.current];\n    if (!historyItem)\n      return;\n    (_a = this.context) == null ? void 0 : _a.call(this, historyItem.key);\n  }\n  UNSAFE_componentWillReceiveProps(props) {\n    var _a;\n    const component = props[\"children\"];\n    if (!isReactChild(component) || !isReactElement(component))\n      return;\n    const key7 = (_a = component.key) == null ? void 0 : _a.toString();\n    if (!key7)\n      return;\n    if (this.state.history.length === 0) {\n      this.transition(component, TransitionDefaults.Instant);\n    } else {\n      this.navigationAction({ type: \"update\", key: key7, component });\n    }\n  }\n  componentWillUnmount() {\n    var _a, _b;\n    (_b = (_a = this.props).resetProjection) == null ? void 0 : _b.call(_a);\n  }\n  getStackState(options) {\n    const { current, previous, currentOverlay, previousOverlay } = this.state;\n    if (options.overCurrentContext) {\n      return {\n        current: currentOverlay,\n        previous: previousOverlay,\n        history: this.state.overlayStack\n      };\n    }\n    return {\n      current,\n      previous,\n      history: this.state.history\n    };\n  }\n  /**\n   * To prevent bubbling events from triggering multiple transitions,\n   * we ensure that the current event has a different timestamp then the event that triggered the last transition.\n   * We use Window.event to ensure that even transitions invoked by code components - and may not pass a reference to the event - are caught.\n   * This works better than measuring the time of transition calls with performance.now()\n   * because the time between calls can get longer and longer as more screens are added to the stack,\n   * preventing a deterministic time between transitions to be used to determine if they were triggered at the same time or not.\n   */\n  isSameEventTransition() {\n    if (!globalThis.event)\n      return false;\n    return this.lastEventTimeStamp === globalThis.event.timeStamp;\n  }\n  transition(component, transitionTraits, transitionOptions) {\n    var _a, _b;\n    if (this.isSameEventTransition())\n      return;\n    this.lastEventTimeStamp = ((_a = globalThis.event) == null ? void 0 : _a.timeStamp) || null;\n    if (!component || !isReactChild(component) || !isReactElement(component))\n      return;\n    const transition = { ...transitionTraits, ...transitionOptions };\n    const overCurrentContext = !!transition.overCurrentContext;\n    if (overCurrentContext)\n      return this.navigationAction({ type: \"addOverlay\", transition, component });\n    const key7 = ((_b = component.key) == null ? void 0 : _b.toString()) || `stack-${this.state.historyItemId + 1}`;\n    this.navigationAction({ type: \"add\", key: key7, transition, component });\n  }\n  instant(component) {\n    this.transition(component, TransitionDefaults.Instant, void 0);\n  }\n  fade(component, options) {\n    this.transition(component, TransitionDefaults.Fade, options);\n  }\n  push(component, options) {\n    this.transition(component, pushTransition(options), options);\n  }\n  modal(component, options) {\n    this.transition(component, TransitionDefaults.Modal, options);\n  }\n  overlay(component, options) {\n    this.transition(component, overlayTransition(options), options);\n  }\n  flip(component, options) {\n    this.transition(component, flipTransition(options), options);\n  }\n  magicMotion(component, options) {\n    this.transition(component, TransitionDefaults.MagicMotion, options);\n  }\n  customTransition(component, transition) {\n    this.transition(component, transition);\n  }\n  render() {\n    var _a, _b, _c, _d, _e;\n    const stackState = this.getStackState({ overCurrentContext: false });\n    const overlayStackState = this.getStackState({ overCurrentContext: true });\n    const activeOverlay = activeOverlayItem(overlayStackState);\n    const isOverlayVisible = overlayStackState.current > -1;\n    const isInitial = this.state.history.length === 1;\n    const contentContainers = [];\n    for (const [key7, component] of Object.entries(this.state.containers)) {\n      const index = this.state.containerIndex[key7];\n      assert(index !== void 0, \"Container's index must be registered\");\n      const visualIndex = this.state.containerVisualIndex[key7];\n      assert(visualIndex !== void 0, \"Container's visual index must be registered\");\n      const removed = this.state.containerIsRemoved[key7];\n      const historyItem = this.state.history[index];\n      const transitionProps = this.state.transitionForContainer[key7];\n      const isCurrent = index === this.state.current;\n      const isPrevious = index === this.state.previous;\n      const areMagicMotionLayersPresent = isCurrent ? false : removed;\n      const withMagicMotion = ((_a = historyItem == null ? void 0 : historyItem.transition) == null ? void 0 : _a.withMagicMotion) || isCurrent && !!this.state.previousTransition;\n      contentContainers.push(\n        /* @__PURE__ */ React45.createElement(\n          NavigationContainer,\n          {\n            key: key7,\n            id: key7,\n            index: visualIndex,\n            isInitial,\n            isCurrent,\n            isPrevious,\n            isOverlayed: isOverlayVisible,\n            visible: isCurrent || isPrevious,\n            position: (_b = historyItem == null ? void 0 : historyItem.transition) == null ? void 0 : _b.position,\n            instant: isInstantContainerTransition(index, stackState),\n            transitionProps,\n            animation: animationPropsForContainer(index, stackState),\n            backfaceVisible: getBackfaceVisibleForScreen(index, stackState),\n            exitAnimation: (_c = historyItem == null ? void 0 : historyItem.transition) == null ? void 0 : _c.animation,\n            exitBackfaceVisible: (_d = historyItem == null ? void 0 : historyItem.transition) == null ? void 0 : _d.backfaceVisible,\n            exitProps: (_e = historyItem == null ? void 0 : historyItem.transition) == null ? void 0 : _e.enter,\n            withMagicMotion,\n            areMagicMotionLayersPresent: areMagicMotionLayersPresent ? false : void 0\n          },\n          /* @__PURE__ */ React45.createElement(MagicMotionCrossfadeRoot, null, containerContent({\n            component,\n            transition: historyItem == null ? void 0 : historyItem.transition\n          }))\n        )\n      );\n    }\n    const overlayContainers = this.state.overlayStack.map((item, stackIndex) => {\n      return /* @__PURE__ */ React45.createElement(\n        NavigationContainer,\n        {\n          isLayeredContainer: true,\n          key: item.key,\n          isCurrent: stackIndex === this.state.currentOverlay,\n          position: item.transition.position,\n          initialProps: initialPropsForOverlay(stackIndex, overlayStackState),\n          transitionProps: transitionPropsForOverlay(stackIndex, overlayStackState),\n          instant: isInstantContainerTransition(stackIndex, overlayStackState, true),\n          animation: animationPropsForContainer(stackIndex, overlayStackState),\n          exitProps: item.transition.enter,\n          visible: containerIsVisible(stackIndex, overlayStackState),\n          backdropColor: backdropColorForTransition(item.transition),\n          backfaceVisible: getBackfaceVisibleForOverlay(stackIndex, overlayStackState),\n          onTapBackdrop: backdropTapAction(item.transition, this.goBack),\n          index: this.state.current + 1 + stackIndex\n        },\n        containerContent({\n          component: item.component,\n          transition: item.transition\n        })\n      );\n    });\n    return /* @__PURE__ */ React45.createElement(\n      FrameWithMotion,\n      {\n        \"data-framer-component-type\": \"NavigationRoot\",\n        top: 0,\n        left: 0,\n        width: \"100%\",\n        height: \"100%\",\n        position: \"relative\",\n        style: { overflow: \"hidden\", backgroundColor: \"unset\", pointerEvents: void 0, ...this.props.style }\n      },\n      /* @__PURE__ */ React45.createElement(NavigationContext.Provider, { value: this }, /* @__PURE__ */ React45.createElement(IsInitialNavigationContext.Provider, { value: isInitial }, /* @__PURE__ */ React45.createElement(\n        NavigationContainer,\n        {\n          isLayeredContainer: true,\n          position: void 0,\n          initialProps: {},\n          instant: false,\n          transitionProps: transitionPropsForStackWrapper(activeOverlay),\n          animation: animationForStackWrapper(activeOverlay),\n          backfaceVisible: backfaceVisibleForStackWrapper(activeOverlay),\n          visible: true,\n          backdropColor: void 0,\n          onTapBackdrop: void 0,\n          index: 0\n        },\n        /* @__PURE__ */ React45.createElement(LayoutIdProvider, null, /* @__PURE__ */ React45.createElement(SharedLayoutRoot, null, /* @__PURE__ */ React45.createElement(AnimatePresence, { presenceAffectsLayout: false }, contentContainers)))\n      ), /* @__PURE__ */ React45.createElement(AnimatePresence, null, overlayContainers)))\n    );\n  }\n};\nNavigation.defaultProps = {\n  enabled: true\n};\nNavigation.contextType = NavigationCallbackContext;\nvar animationDefault = {\n  stiffness: 500,\n  damping: 50,\n  restDelta: 1,\n  type: \"spring\"\n};\nfunction activeOverlayItem(overlayStack) {\n  let currentOverlayItem;\n  let previousOverlayItem;\n  if (overlayStack.current !== -1) {\n    currentOverlayItem = overlayStack.history[overlayStack.current];\n  } else {\n    previousOverlayItem = overlayStack.history[overlayStack.previous];\n  }\n  return { currentOverlayItem, previousOverlayItem };\n}\nfunction transitionPropsForStackWrapper({ currentOverlayItem }) {\n  return currentOverlayItem && currentOverlayItem.transition.exit;\n}\nfunction animationForStackWrapper({ currentOverlayItem, previousOverlayItem }) {\n  if (currentOverlayItem && currentOverlayItem.transition.animation) {\n    return currentOverlayItem.transition.animation;\n  }\n  if (previousOverlayItem && previousOverlayItem.transition.animation) {\n    return previousOverlayItem.transition.animation;\n  }\n  return animationDefault;\n}\nfunction backfaceVisibleForStackWrapper({ currentOverlayItem, previousOverlayItem }) {\n  if (currentOverlayItem)\n    return currentOverlayItem.transition.backfaceVisible;\n  return previousOverlayItem && previousOverlayItem.transition.backfaceVisible;\n}\nfunction backdropColorForTransition(transition) {\n  if (transition.backdropColor)\n    return transition.backdropColor;\n  if (transition.overCurrentContext)\n    return \"rgba(4,4,15,.4)\";\n  return void 0;\n}\nfunction getBackfaceVisibleForOverlay(containerIndex, stackState) {\n  const { current, history } = stackState;\n  if (containerIndex === current) {\n    const navigationItem = history[containerIndex];\n    if (navigationItem && navigationItem.transition) {\n      return navigationItem.transition.backfaceVisible;\n    }\n    return true;\n  } else if (containerIndex < current) {\n    const navigationItem = history[containerIndex + 1];\n    if (navigationItem && navigationItem.transition) {\n      return navigationItem.transition.backfaceVisible;\n    }\n    return true;\n  } else {\n    const navigationItem = history[containerIndex];\n    if (navigationItem && navigationItem.transition) {\n      return navigationItem.transition.backfaceVisible;\n    }\n    return true;\n  }\n}\nfunction initialPropsForOverlay(containerIndex, stackState) {\n  const navigationItem = stackState.history[containerIndex];\n  if (navigationItem)\n    return navigationItem.transition.enter;\n}\nfunction getBackfaceVisibleForScreen(screenIndex, stackState) {\n  var _a, _b, _c, _d;\n  const { current, previous, history } = stackState;\n  if (screenIndex === previous && current > previous || screenIndex === current && current < previous) {\n    return (_b = (_a = history[screenIndex + 1]) == null ? void 0 : _a.transition) == null ? void 0 : _b.backfaceVisible;\n  }\n  return (_d = (_c = history[screenIndex]) == null ? void 0 : _c.transition) == null ? void 0 : _d.backfaceVisible;\n}\nfunction transitionPropsForOverlay(overlayIndex, stackState) {\n  const { current, history } = stackState;\n  if (overlayIndex === current) {\n    return;\n  } else if (overlayIndex < current) {\n    const navigationItem = history[overlayIndex + 1];\n    if (navigationItem && navigationItem.transition) {\n      return navigationItem.transition.exit;\n    }\n  } else {\n    const navigationItem = history[overlayIndex];\n    if (navigationItem && navigationItem.transition) {\n      return navigationItem.transition.enter;\n    }\n  }\n}\nfunction animationPropsForContainer(containerIndex, stackState) {\n  const { current, previous, history } = stackState;\n  const containerCurrent = previous > current ? previous : current;\n  if (containerIndex < containerCurrent) {\n    const navigationItem = history[containerIndex + 1];\n    if (navigationItem && navigationItem.transition.animation) {\n      return navigationItem.transition.animation;\n    }\n  } else if (containerIndex !== containerCurrent) {\n    const navigationItem = history[containerIndex];\n    if (navigationItem && navigationItem.transition.animation) {\n      return navigationItem.transition.animation;\n    }\n  } else {\n    const navigationItem = history[containerIndex];\n    if (navigationItem == null ? void 0 : navigationItem.transition.animation) {\n      return navigationItem.transition.animation;\n    }\n  }\n  return animationDefault;\n}\nfunction isInstantContainerTransition(containerIndex, stackState, overCurrentContext) {\n  const { current, previous, history } = stackState;\n  if (overCurrentContext && history.length > 1)\n    return true;\n  if (containerIndex !== previous && containerIndex !== current)\n    return true;\n  if (current === previous)\n    return true;\n  return false;\n}\nfunction containerIsVisible(containerIndex, stackState) {\n  const { current, previous } = stackState;\n  if (containerIndex > current && containerIndex > previous)\n    return false;\n  if (containerIndex === current)\n    return true;\n  return false;\n}\nfunction containerContent(item) {\n  const content = React45.Children.map(\n    item.component,\n    (child) => {\n      var _a, _b;\n      if (!isReactChild(child) || !isReactElement(child) || !child.props) {\n        return child;\n      }\n      const props = {\n        style: (_a = child.props.style) != null ? _a : {}\n      };\n      const position = (_b = item == null ? void 0 : item.transition) == null ? void 0 : _b.position;\n      const shouldStretchWidth = !position || position.left !== void 0 && position.right !== void 0;\n      const shouldStretchHeight = !position || position.top !== void 0 && position.bottom !== void 0;\n      const canStretchStyle = \"style\" in child.props ? isObject2(child.props.style) : true;\n      if (shouldStretchWidth) {\n        const canStretchWidth = \"width\" in child.props;\n        if (canStretchWidth)\n          props.width = \"100%\";\n        if (canStretchStyle)\n          props.style.width = \"100%\";\n      }\n      if (shouldStretchHeight) {\n        const canStretchHeight = \"height\" in child.props;\n        if (canStretchHeight)\n          props.height = \"100%\";\n        if (canStretchStyle)\n          props.style.height = \"100%\";\n      }\n      return React45.cloneElement(child, props);\n    }\n  );\n  return content;\n}\nfunction backdropTapAction(transition, goBackAction) {\n  if (transition.goBackOnTapOutside !== false)\n    return goBackAction;\n}\nfunction NavigationWrapper(props) {\n  const resetProjection = useResetProjection();\n  const skipLayoutAnimation = useInstantLayoutTransition();\n  return /* @__PURE__ */ React45.createElement(Navigation, { ...props, resetProjection, skipLayoutAnimation }, props.children);\n}\n\n// ../../library/src/components/hoc/WithNavigator.tsx\nvar import_hoist_non_react_statics3 = __toESM(require_hoist_non_react_statics_cjs(), 1);\nimport React46 from \"react\";\n\n// ../../library/src/render/types/NavigationLink.ts\nvar NavigateTo = /* @__PURE__ */ ((NavigateTo2) => {\n  NavigateTo2[\"Previous\"] = \"@Previous\";\n  return NavigateTo2;\n})(NavigateTo || {});\nvar NavigationTransitionType = /* @__PURE__ */ ((NavigationTransitionType2) => {\n  NavigationTransitionType2[\"push\"] = \"push\";\n  NavigationTransitionType2[\"instant\"] = \"instant\";\n  NavigationTransitionType2[\"fade\"] = \"fade\";\n  NavigationTransitionType2[\"modal\"] = \"modal\";\n  NavigationTransitionType2[\"overlay\"] = \"overlay\";\n  NavigationTransitionType2[\"flip\"] = \"flip\";\n  NavigationTransitionType2[\"magicMotion\"] = \"magicMotion\";\n  return NavigationTransitionType2;\n})(NavigationTransitionType || {});\n\n// ../../library/src/components/hoc/WithNavigator.tsx\nfunction WithNavigator(BaseComponent, navigationTransition, navigationTransitionDirection, NavigationTarget2, navigationTransitionOptions) {\n  const InternalWithNavigator = class extends React46.Component {\n    render() {\n      return /* @__PURE__ */ React46.createElement(NavigationContext.Consumer, null, (navigation) => {\n        const navigate = () => {\n          if (navigationTransition === \"goBack\") {\n            navigation.goBack();\n            return;\n          }\n          if (!NavigationTarget2)\n            return;\n          const component = NavigationTarget2();\n          const appearsFrom = transitionDirectionToSide(navigationTransitionDirection);\n          switch (navigationTransition) {\n            case \"instant\" /* instant */:\n              navigation.instant(component);\n              break;\n            case \"fade\" /* fade */:\n              navigation.fade(component);\n              break;\n            case \"modal\" /* modal */:\n              navigation.modal(component, navigationTransitionOptions);\n              break;\n            case \"push\" /* push */:\n              navigation.push(component, { appearsFrom });\n              break;\n            case \"overlay\" /* overlay */:\n              navigation.overlay(component, {\n                ...navigationTransitionOptions,\n                appearsFrom\n              });\n              break;\n            case \"flip\" /* flip */:\n              navigation.flip(component, { appearsFrom });\n              break;\n            case \"magicMotion\" /* magicMotion */:\n              navigation.magicMotion(component, {});\n              break;\n          }\n        };\n        const { onTap, ...props } = this.props;\n        if (onTap) {\n          props.onTap = (...args) => {\n            onTap.apply(this, args);\n            navigate.apply(this, args);\n          };\n        } else {\n          props.onTap = navigate;\n        }\n        return /* @__PURE__ */ React46.createElement(BaseComponent, { ...props });\n      });\n    }\n  };\n  (0, import_hoist_non_react_statics3.default)(InternalWithNavigator, BaseComponent);\n  return InternalWithNavigator;\n}\nfunction transitionDirectionToSide(direction) {\n  switch (direction) {\n    case \"left\":\n      return \"right\";\n    case \"right\":\n      return \"left\";\n    case \"up\":\n      return \"bottom\";\n    case \"down\":\n      return \"top\";\n  }\n}\n\n// ../../library/src/components/AnimateLayout/AnimateSharedLayout.tsx\nvar AnimateSharedLayout = (props) => props.children;\n\n// ../../library/src/components/Draggable.ts\nvar Draggable = /* @__PURE__ */ WithDragging(DeprecatedFrameWithEvents);\n\n// ../../library/src/components/Page/EmulatedPage.tsx\nvar import_process3 = __toESM(require_browser(), 1);\nimport React50 from \"react\";\n\n// ../../library/src/components/Scroll/useWheelScroll.ts\nimport { useCallback as useCallback5, useRef as useRef8 } from \"react\";\n\n// ../../library/src/render/utils/debounce.ts\nfunction debounce(fn, time2) {\n  let timeout;\n  const debounced = (...args) => {\n    safeWindow.clearTimeout(timeout);\n    timeout = safeWindow.setTimeout(fn, time2, ...args);\n  };\n  const cancel = () => {\n    safeWindow.clearTimeout(timeout);\n  };\n  debounced.cancel = cancel;\n  return debounced;\n}\n\n// ../../library/src/components/Scroll/useWheelScroll.ts\nfunction useWheelScroll(ref, {\n  enabled,\n  initial,\n  prev,\n  direction,\n  constraints,\n  offsetX,\n  offsetY,\n  onScrollStart,\n  onScroll,\n  onScrollEnd\n}) {\n  const isWheelScrollActive = useRef8(false);\n  const getPointData = useCallback5(() => {\n    const point = getPoint(offsetX, offsetY);\n    const data2 = {\n      point,\n      velocity: { x: offsetX.getVelocity(), y: offsetY.getVelocity() },\n      offset: { x: point.x - initial.x, y: point.y - initial.y },\n      delta: { x: point.x - prev.x, y: point.y - prev.y }\n    };\n    prev.x = point.x;\n    prev.y = point.y;\n    return data2;\n  }, []);\n  let handler;\n  if (enabled) {\n    let clampX = function(v) {\n      return constraints.current === null ? v : clamp2(v, constraints.current.left, constraints.current.right);\n    }, clampY = function(v) {\n      return constraints.current === null ? v : clamp2(v, constraints.current.top, constraints.current.bottom);\n    }, updateX = function(delta) {\n      offsetX.stop();\n      offsetX.set(clampX(offsetX.get() - delta));\n    }, updateY = function(delta) {\n      offsetY.stop();\n      offsetY.set(clampY(offsetY.get() - delta));\n    };\n    const debouncedOnScrollEnd = debounce(() => {\n      onScrollEnd && onScrollEnd(getPointData());\n      isWheelScrollActive.current = false;\n    }, 200);\n    handler = (e) => {\n      e.preventDefault();\n      if (!isWheelScrollActive.current) {\n        const x = offsetX.get();\n        const y = offsetY.get();\n        initial.x = x;\n        initial.y = y;\n        prev.x = x;\n        prev.y = y;\n        onScrollStart && onScrollStart(getPointData());\n        isWheelScrollActive.current = true;\n      }\n      switch (direction) {\n        case \"horizontal\":\n          updateX(e.deltaX);\n          break;\n        case \"vertical\":\n          updateY(e.deltaY);\n          break;\n        default:\n          updateX(e.deltaX);\n          updateY(e.deltaY);\n      }\n      onScroll && onScroll(getPointData());\n      debouncedOnScrollEnd();\n    };\n  }\n  useDomEvent(ref, \"wheel\", handler, { passive: false });\n}\nfunction getPoint(x, y) {\n  return { x: x.get(), y: y.get() };\n}\n\n// ../../library/src/components/utils/paddingFromProps.ts\nfunction hasPaddingPerSide(props) {\n  const { paddingPerSide, paddingTop, paddingBottom, paddingLeft, paddingRight } = props;\n  return paddingPerSide !== false && (paddingTop !== void 0 || paddingBottom !== void 0 || paddingLeft !== void 0 || paddingRight !== void 0);\n}\nfunction paddingFromProps(props) {\n  const { padding = 0, paddingTop, paddingBottom, paddingLeft, paddingRight } = props;\n  if (hasPaddingPerSide(props)) {\n    return {\n      top: paddingTop !== void 0 ? paddingTop : padding,\n      bottom: paddingBottom !== void 0 ? paddingBottom : padding,\n      left: paddingLeft !== void 0 ? paddingLeft : padding,\n      right: paddingRight !== void 0 ? paddingRight : padding\n    };\n  }\n  return {\n    top: padding,\n    bottom: padding,\n    left: padding,\n    right: padding\n  };\n}\nfunction makePaddingString({\n  top,\n  left,\n  bottom,\n  right\n}) {\n  return `${top}px ${right}px ${bottom}px ${left}px`;\n}\n\n// ../../library/src/components/Page/PageContainer.tsx\nimport React49 from \"react\";\n\n// ../../library/src/components/Stack/Stack.tsx\nimport React48 from \"react\";\n\n// ../../library/src/modules/useSafariGapFix.tsx\nimport React47 from \"react\";\nfunction triggerStackReflow(element, display) {\n  if (!element)\n    return;\n  element.style.display = \"none\";\n  void element.offsetHeight;\n  element.style.display = display;\n}\nvar requiresPolyfill = Boolean(isSafari() && safariVersion() < 15.4);\nfunction useSafariGapFix(gap, ref, display) {\n  if (!requiresPolyfill)\n    return void 0;\n  const isInitialRender = React47.useRef(true);\n  const hasTriggeredReflow = React47.useRef(false);\n  const prevGapValue = React47.useRef(gap);\n  hasTriggeredReflow.current = false;\n  React47.useLayoutEffect(() => {\n    prevGapValue.current = gap;\n    if (isInitialRender.current) {\n      isInitialRender.current = false;\n      return;\n    }\n    if (!hasTriggeredReflow.current) {\n      triggerStackReflow(ref.current, display);\n      hasTriggeredReflow.current = true;\n    }\n  }, [gap, ref, prevGapValue, display]);\n  return React47.useCallback(() => {\n    if (prevGapValue.current === gap)\n      return;\n    if (!hasTriggeredReflow.current)\n      triggerStackReflow(ref.current, display);\n    hasTriggeredReflow.current = true;\n  }, [gap, ref]);\n}\n\n// ../../library/src/components/Stack/Stack.tsx\nvar Stack = /* @__PURE__ */ (() => {\n  const StackInner = React48.forwardRef(\n    function StackInner2(stackProps, forwardedRef) {\n      var _a, _b;\n      const {\n        as = \"div\",\n        direction = \"vertical\",\n        distribution = \"start\",\n        alignment = \"center\",\n        gap = 10,\n        wrap: wrap2 = false,\n        useFlexboxGap: externalUseFlexboxGap = true,\n        children,\n        style: styleProp,\n        className,\n        willChangeTransform,\n        __fromCodeComponentNode,\n        parentSize,\n        __contentWrapperStyle,\n        ...containerProps\n      } = stackProps;\n      const useFlexboxGap = Boolean(externalUseFlexboxGap || wrap2);\n      const stackRef = React48.useRef(null);\n      const onBeforeLayoutMeasure = useSafariGapFix(gap, stackRef, \"flex\");\n      const flexDirection = toFlexDirection(direction);\n      const isReverse = isReverseDirection(flexDirection);\n      const justifyContent = toJustifyOrAlignment(distribution);\n      const padding = hasPaddingPerSide(containerProps) || containerProps.padding ? makePaddingString(paddingFromProps(containerProps)) : void 0;\n      const style = { ...styleProp };\n      Layer.applyWillChange({ willChangeTransform }, style, true);\n      if (__fromCodeComponentNode && !constraintsEnabled(unwrapFrameProps(containerProps))) {\n        containerProps.width = \"100%\";\n        containerProps.height = \"100%\";\n        containerProps._constraints = { enabled: true };\n      }\n      const layoutId = useLayoutId(stackProps);\n      const { children: _children, props } = processOverrideForwarding(containerProps, children);\n      const widthType = (_a = containerProps.widthType) != null ? _a : containerProps.width === \"auto\" ? 2 /* Auto */ : 0 /* FixedNumber */;\n      const heightType = (_b = containerProps.heightType) != null ? _b : containerProps.height === \"auto\" ? 2 /* Auto */ : 0 /* FixedNumber */;\n      const fractionChildren = handleFraction(_children, direction, widthType, heightType);\n      const gapChildren = wrapInGapElementForLegacyGap(\n        fractionChildren,\n        gap,\n        flexDirection,\n        justifyContent,\n        useFlexboxGap,\n        wrap2\n      );\n      const content = useProvideParentSize(gapChildren, parentSize != null ? parentSize : 1 /* Disabled */);\n      const attributes = {\n        \"data-framer-component-type\": \"Stack\"\n      };\n      const fromCanvasComponent = containerProps.__fromCanvasComponent;\n      if (fromCanvasComponent)\n        attributes[\"data-framer-generated\"] = true;\n      const alignItems = toJustifyOrAlignment(alignment);\n      const contentWrapperStyle = {\n        display: \"flex\",\n        flexDirection,\n        flexWrap: wrap2 ? \"wrap\" : \"nowrap\",\n        justifyContent,\n        alignItems,\n        alignContent: alignItems,\n        padding,\n        ...__contentWrapperStyle\n      };\n      const gapEnabled = isGapEnabled(gap, justifyContent, wrap2);\n      if (useFlexboxGap && gapEnabled) {\n        const gapSupportedInMainAxis = isGapSupportedInMainAxis(justifyContent);\n        if (gapSupportedInMainAxis || direction !== \"horizontal\") {\n          asRecord(contentWrapperStyle)[\"--stack-native-column-gap\"] = `${gap}px`;\n        }\n        if (gapSupportedInMainAxis || direction !== \"vertical\") {\n          asRecord(contentWrapperStyle)[\"--stack-native-row-gap\"] = `${gap}px`;\n        }\n      }\n      if (contentWrapperStyle.width === void 0) {\n        contentWrapperStyle.width = widthType === 2 /* Auto */ ? \"min-content\" : \"100%\";\n      }\n      if (contentWrapperStyle.height === void 0) {\n        contentWrapperStyle.height = heightType === 2 /* Auto */ ? \"min-content\" : \"100%\";\n      }\n      if (fromCanvasComponent) {\n        if (styleProp == null ? void 0 : styleProp.width)\n          contentWrapperStyle.width = styleProp == null ? void 0 : styleProp.width;\n        if (styleProp == null ? void 0 : styleProp.height)\n          contentWrapperStyle.height = styleProp == null ? void 0 : styleProp.height;\n      }\n      return /* @__PURE__ */ React48.createElement(\n        FrameWithMotion,\n        {\n          as,\n          background: fromCanvasComponent ? void 0 : \"none\",\n          ...props,\n          layoutId,\n          ref: useForwardedRef(forwardedRef, stackRef),\n          ...attributes,\n          style,\n          className,\n          layoutScroll: true\n        },\n        /* @__PURE__ */ React48.createElement(\n          motion.div,\n          {\n            \"data-framer-stack-content-wrapper\": true,\n            \"data-framer-stack-direction-reverse\": isReverse,\n            \"data-framer-stack-gap-enabled\": gapEnabled,\n            style: contentWrapperStyle,\n            onBeforeLayoutMeasure\n          },\n          content\n        )\n      );\n    }\n  );\n  StackInner.defaultProps = {\n    distribution: \"start\"\n  };\n  StackInner.displayName = \"Stack\";\n  addPropertyControls(StackInner, {\n    direction: {\n      type: \"segmentedenum\" /* SegmentedEnum */,\n      options: [\"horizontal\", \"vertical\"],\n      title: \"Direction\",\n      defaultValue: \"vertical\"\n    },\n    distribution: {\n      type: \"enum\" /* Enum */,\n      options: [\"start\", \"center\", \"end\", \"space-between\", \"space-around\", \"space-evenly\"],\n      optionTitles: [\"Start\", \"Center\", \"End\", \"Space Between\", \"Space Around\", \"Space Evenly\"],\n      title: \"Distribute\",\n      defaultValue: \"space-around\"\n    },\n    alignment: {\n      type: \"segmentedenum\" /* SegmentedEnum */,\n      options: [\"start\", \"center\", \"end\"],\n      title: \"Align\",\n      defaultValue: \"center\"\n    },\n    gap: {\n      type: \"number\" /* Number */,\n      min: 0,\n      title: \"Gap\",\n      hidden: (props) => {\n        return props.distribution !== void 0 && [\"space-between\", \"space-around\", \"space-evenly\"].includes(props.distribution);\n      },\n      defaultValue: 10\n    },\n    padding: {\n      type: \"fusednumber\" /* FusedNumber */,\n      toggleKey: \"paddingPerSide\",\n      toggleTitles: [\"Padding\", \"Padding per side\"],\n      valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n      valueLabels: [\"t\", \"r\", \"b\", \"l\"],\n      min: 0,\n      title: \"Padding\",\n      defaultValue: 0\n    }\n  });\n  return StackInner;\n})();\nfunction isFractionDimension(dimension) {\n  return typeof dimension === \"string\" && dimension.endsWith(\"fr\");\n}\nfunction fraction(dimension) {\n  const value = parseFloat(dimension);\n  return isFiniteNumber(value) ? value : 0;\n}\nfunction handleFraction(children, direction, widthType, heightType) {\n  return React48.Children.map(children, (child) => {\n    if (!isReactChild(child) || !isReactElement(child))\n      return;\n    const isVertical = direction === \"vertical\";\n    const style = {};\n    let hasFraction = false;\n    const { style: propsStyle, size: size2 } = child.props;\n    let { width, height } = child.props;\n    if (size2 !== void 0) {\n      if (width === void 0)\n        width = size2;\n      if (height === void 0)\n        height = size2;\n    }\n    let newWidth = width;\n    let newHeight = height;\n    if (isFractionDimension(width)) {\n      hasFraction = true;\n      hasFraction = true;\n      if (isVertical) {\n        if (widthType === 2 /* Auto */) {\n          style.alignSelf = \"stretch\";\n          newWidth = \"auto\";\n        } else {\n          newWidth = `${fraction(width) * 100}%`;\n        }\n      } else {\n        newWidth = 1;\n        style.flexGrow = fraction(width);\n        style.flexBasis = 0;\n      }\n      style.width = newWidth;\n    }\n    if (isFractionDimension(height)) {\n      hasFraction = true;\n      if (isVertical) {\n        newHeight = 1;\n        style.flexGrow = fraction(height);\n        style.flexBasis = 0;\n      } else {\n        if (heightType === 2 /* Auto */) {\n          style.alignSelf = \"stretch\";\n          newHeight = \"auto\";\n        } else {\n          newHeight = `${fraction(height) * 100}%`;\n        }\n      }\n      style.height = newHeight;\n    }\n    if (!hasFraction)\n      return child;\n    const nextStyle = { ...propsStyle, ...style };\n    return React48.cloneElement(child, {\n      width: newWidth,\n      height: newHeight,\n      style: nextStyle\n    });\n  });\n}\nfunction isGapSupportedInMainAxis(justifyContent) {\n  if (!justifyContent)\n    return false;\n  return ![\"space-between\", \"space-around\", \"space-evenly\", \"stretch\"].includes(justifyContent);\n}\nfunction isGapEnabled(gap, justifyContent, wrap2) {\n  if (!gap) {\n    return false;\n  }\n  if (!wrap2 && !isGapSupportedInMainAxis(justifyContent)) {\n    return false;\n  }\n  return true;\n}\nfunction wrapInGapElementForLegacyGap(children, gap, direction, justifyContent, useFlexboxGap, wrap2) {\n  const gapStyle = {\n    // We need the wrapper to have `display: contents` to prevent the child\n    // margins from collapsing when using the fallback gap solution.\n    // https://codesandbox.io/s/dreamy-haslett-01ie5?file=/src/styles.css\n    display: \"contents\"\n  };\n  const gapEnabled = isGapEnabled(gap, justifyContent, wrap2);\n  if (gapEnabled) {\n    const isVertical = isVerticalDirection(direction);\n    asRecord(gapStyle)[\"--stack-gap-x\"] = `${isVertical ? 0 : gap}px`;\n    asRecord(gapStyle)[\"--stack-gap-y\"] = `${isVertical ? gap : 0}px`;\n  }\n  return /* @__PURE__ */ React48.createElement(\n    \"div\",\n    {\n      \"data-framer-legacy-stack-gap-enabled\": gapEnabled,\n      \"data-framer-stack-flexbox-gap\": useFlexboxGap,\n      style: gapStyle\n    },\n    children\n  );\n}\nfunction toFlexDirection(direction) {\n  switch (direction) {\n    case \"vertical\":\n      return \"column\";\n    case \"horizontal\":\n      return \"row\";\n    default:\n      return direction;\n  }\n}\nfunction isVerticalDirection(direction) {\n  return direction === \"column\" || direction === \"column-reverse\";\n}\nfunction isReverseDirection(direction) {\n  switch (direction) {\n    case \"column-reverse\":\n    case \"row-reverse\":\n      return true;\n    default:\n      return false;\n  }\n}\nfunction toJustifyOrAlignment(distribution) {\n  switch (distribution) {\n    case \"start\":\n      return \"flex-start\";\n    case \"end\":\n      return \"flex-end\";\n    default:\n      return distribution;\n  }\n}\nfunction useForwardedRef(forwardedRef, innerRef) {\n  return (element) => {\n    innerRef.current = element;\n    if (typeof forwardedRef === \"function\") {\n      forwardedRef(element);\n    } else if (forwardedRef) {\n      forwardedRef.current = element;\n    }\n  };\n}\n\n// ../../library/src/components/Page/PageContainer.tsx\nvar pageContentWrapperType = \"PageContentWrapper\";\nfunction PageContainer({\n  children,\n  effect,\n  dragEnabled,\n  direction,\n  contentHeight,\n  contentWidth,\n  alignment,\n  gap,\n  isLastPage,\n  contentOffsetRef,\n  constraintsRef,\n  directionLock,\n  onDragStart,\n  onDrag,\n  onDragEnd,\n  layoutId\n}) {\n  const isHorizontalDirection = direction === \"horizontal\";\n  const dragAxis = isHorizontalDirection ? \"x\" : \"y\";\n  const hasHorizontalGap = isHorizontalDirection && !isLastPage && gap;\n  const hasVerticalGap = !isHorizontalDirection && !isLastPage && gap;\n  const hasAutoWidth = contentWidth !== \"stretch\" && isHorizontalDirection;\n  const hasAutoHeight = contentHeight !== \"stretch\" && !isHorizontalDirection;\n  const wrapperWidth = hasAutoWidth ? \"auto\" : \"100%\";\n  const wrapperHeight = hasAutoHeight ? \"auto\" : \"100%\";\n  const containerWidth = hasHorizontalGap && wrapperWidth === \"100%\" ? `calc(100% + ${gap}px)` : wrapperWidth;\n  const containerHeight = hasVerticalGap && wrapperHeight === \"100%\" ? `calc(100% + ${gap}px)` : wrapperHeight;\n  return /* @__PURE__ */ React49.createElement(\n    FrameWithMotion,\n    {\n      position: \"relative\",\n      \"data-framer-component-type\": \"PageContainer\",\n      width: containerWidth,\n      height: containerHeight,\n      layoutId: layoutId ? `${layoutId}-container` : void 0,\n      backgroundColor: \"transparent\",\n      drag: dragEnabled ? dragAxis : false,\n      dragDirectionLock: directionLock,\n      _dragX: contentOffsetRef.current.x,\n      _dragY: contentOffsetRef.current.y,\n      dragConstraints: constraintsRef.current,\n      onDrag,\n      onDragStart,\n      onDragEnd,\n      preserve3d: true,\n      style: {\n        pointerEvents: void 0,\n        paddingRight: hasHorizontalGap ? gap : 0,\n        paddingBottom: hasVerticalGap ? gap : 0\n      }\n    },\n    /* @__PURE__ */ React49.createElement(\n      FrameWithMotion,\n      {\n        position: \"relative\",\n        \"data-framer-component-type\": pageContentWrapperType,\n        width: wrapperWidth,\n        height: wrapperHeight,\n        preserve3d: false,\n        backgroundColor: \"transparent\",\n        key: effect ? Object.keys(effect).join(\"\") : \"\",\n        style: {\n          ...effect,\n          pointerEvents: void 0,\n          display: \"flex\",\n          flexDirection: isHorizontalDirection ? \"row\" : \"column\",\n          alignItems: alignment && toJustifyOrAlignment(alignment)\n        }\n      },\n      children\n    )\n  );\n}\n\n// ../../library/src/components/Page/EmulatedPage.tsx\nvar Page = /* @__PURE__ */ React50.forwardRef(function Page2(props, forwardedRef) {\n  var _a;\n  const {\n    direction = \"horizontal\",\n    contentWidth = \"stretch\",\n    contentHeight = \"stretch\",\n    alignment = \"start\",\n    currentPage = 0,\n    animateCurrentPageUpdate = true,\n    gap: gapValue = 10,\n    padding = 0,\n    momentum = false,\n    dragEnabled = true,\n    defaultEffect = \"none\",\n    background = \"transparent\",\n    overflow = \"hidden\",\n    __fromCodeComponentNode,\n    effect,\n    children,\n    contentOffsetX,\n    contentOffsetY,\n    onChangePage,\n    onScrollStart,\n    onScroll,\n    onDragStart,\n    onDrag,\n    onDragEnd,\n    directionLock,\n    onScrollEnd,\n    onDirectionLock,\n    onUpdate,\n    wheelEnabled = false,\n    layoutId: specificLayoutId,\n    ...rest\n  } = props;\n  const layoutId = useLayoutId(props, { specificLayoutId, postfix: \"page\" });\n  const containerProps = { ...rest, background };\n  const hasMountedRef = React50.useRef(false);\n  const hasFixedSize = RenderTarget.hasRestrictions() && props.__fromCodeComponentNode && isFiniteNumber(containerProps.width) && isFiniteNumber(containerProps.height);\n  if (!hasFixedSize && __fromCodeComponentNode && !containerProps.__fromCanvasComponent) {\n    containerProps.width = \"100%\";\n    containerProps.height = \"100%\";\n    containerProps._constraints = { enabled: true };\n  }\n  const { initial, prev } = React50.useRef({\n    initial: { x: 0, y: 0 },\n    prev: { x: 0, y: 0 }\n  }).current;\n  const isHorizontal = direction === \"horizontal\";\n  let gap = gapValue;\n  if (gap < 0) {\n    warnOnce(`The 'gap' property of Page component can not be negative, but is ${gapValue}.`);\n    gap = 0;\n  }\n  injectComponentCSSRules();\n  const pageCount = React50.Children.count(children);\n  const maxOffsetRef = React50.useRef(0);\n  const constraints = React50.useRef({ top: 0, left: 0, right: 0, bottom: 0 });\n  const fallbackContainerRef = React50.useRef(null);\n  const containerRef = forwardedRef || fallbackContainerRef;\n  const scrollableRef = React50.useRef(null);\n  const pageEffectValuesRef = React50.useRef([]);\n  const pageRectsRef = React50.useRef([]);\n  const internalX = useMotionValue(isMotionValue2(contentOffsetX) ? 0 : contentOffsetX != null ? contentOffsetX : 0);\n  const internalY = useMotionValue(isMotionValue2(contentOffsetY) ? 0 : contentOffsetY != null ? contentOffsetY : 0);\n  const contentOffsetRef = React50.useRef({\n    x: isMotionValue2(contentOffsetX) ? contentOffsetX : internalX,\n    y: isMotionValue2(contentOffsetY) ? contentOffsetY : internalY\n  });\n  const currentContentPageRef = React50.useRef(currentPage);\n  const propsBoundedCurrentPageRef = React50.useRef(currentPage);\n  const latestPropsRef = React50.useRef(props);\n  latestPropsRef.current = props;\n  const lastDirectionRef = React50.useRef(props.direction);\n  const snapToPage = useSnapToPage(currentContentPageRef, contentOffsetRef, isHorizontal);\n  const [_, setForceUpdateCount] = React50.useState(0);\n  const containerSizeRef = React50.useRef({ width: 200, height: 200 });\n  if (hasFixedSize && isFiniteNumber(containerProps.width) && isFiniteNumber(containerProps.height)) {\n    containerSizeRef.current.width = containerProps.width;\n    containerSizeRef.current.height = containerProps.height;\n  }\n  const updateOnResize = React50.useCallback(() => {\n    if (!hasFixedSize)\n      setForceUpdateCount((v) => v + 1);\n  }, [hasFixedSize]);\n  React50.useEffect(() => {\n    if (RenderTarget.current() !== \"PREVIEW\" /* preview */)\n      return;\n    globalThis.addEventListener(\"resize\", updateOnResize);\n    return () => {\n      globalThis.removeEventListener(\"resize\", updateOnResize);\n    };\n  }, [updateOnResize]);\n  const applyEffects = () => {\n    pageEffectValuesRef.current.forEach((effectDictionary, index) => {\n      const values = effectValues(index, latestPropsRef, pageRectsRef, contentOffsetRef, maxOffsetRef);\n      if (!effectDictionary || !values)\n        return;\n      for (const [key7, value] of Object.entries(values)) {\n        const effectValue = effectDictionary[key7];\n        if (isMotionValue2(effectValue)) {\n          effectValue.set(value);\n        }\n      }\n    });\n  };\n  const updateMaxOffsetFromPageContents = (containerSize) => {\n    const newPageContentRects = getPageContentRects(containerRef, containerSize, direction, gap);\n    if (newPageContentRects)\n      pageRectsRef.current = newPageContentRects;\n    const newMaxOffset = getMaxOffset(\n      containerSizeRef.current,\n      pageRectsRef.current,\n      direction,\n      latestPropsRef.current\n    );\n    if (newMaxOffset !== maxOffsetRef.current) {\n      maxOffsetRef.current = newMaxOffset;\n      constraints.current.top = -newMaxOffset;\n      constraints.current.left = -newMaxOffset;\n      if (RenderTarget.current() === \"CANVAS\" /* canvas */)\n        setForceUpdateCount((v) => v + 1);\n    }\n  };\n  const measureContainerSize = () => {\n    const element = containerRef.current;\n    if (!element)\n      return null;\n    const { offsetWidth, offsetHeight } = element;\n    const currentSize = containerSizeRef.current;\n    if (offsetWidth !== currentSize.width || offsetHeight !== currentSize.height) {\n      containerSizeRef.current = {\n        width: offsetWidth,\n        height: offsetHeight\n      };\n      return containerSizeRef.current;\n    }\n    return null;\n  };\n  const updateAndSnapToPage = (newPage, mount = false) => {\n    const newBoundedCurrentPage = getBoundedCurrentPage(newPage, pageCount);\n    const boundedCurrentPageDidChange = newBoundedCurrentPage !== propsBoundedCurrentPageRef.current;\n    if (boundedCurrentPageDidChange) {\n      propsBoundedCurrentPageRef.current = newBoundedCurrentPage;\n      updateCurrentPage(newBoundedCurrentPage, currentContentPageRef, !mount ? onChangePage : void 0);\n    }\n    const offset = offsetForPage(newBoundedCurrentPage, pageCount, pageRectsRef, isHorizontal, maxOffsetRef);\n    const animated = animateCurrentPageUpdate && RenderTarget.current() !== \"CANVAS\" /* canvas */ && !mount;\n    snapToPage(newBoundedCurrentPage, offset, { animated });\n  };\n  useIsomorphicLayoutEffect2(() => {\n    if (hasMountedRef.current)\n      return;\n    requestAnimationFrame(() => {\n      var _a2;\n      currentContentPageRef.current = currentPage;\n      const contentOffset = contentOffsetRef.current;\n      contentOffset.x.on(\"change\", applyEffects);\n      contentOffset.y.on(\"change\", applyEffects);\n      applyEffects();\n      hasMountedRef.current = true;\n      const containerSize = (_a2 = measureContainerSize()) != null ? _a2 : containerSizeRef.current;\n      updateMaxOffsetFromPageContents(containerSize);\n      updateAndSnapToPage(currentContentPageRef.current, true);\n    });\n  }, []);\n  React50.useEffect(() => {\n    if (currentPage !== currentContentPageRef.current)\n      updateAndSnapToPage(currentPage);\n  }, [currentPage]);\n  const handleMeasureLifecycle = () => {\n    const newContainerSize = measureContainerSize();\n    updateMaxOffsetFromPageContents(newContainerSize != null ? newContainerSize : containerSizeRef.current);\n    updateAndSnapToPage(currentContentPageRef.current);\n    if (newContainerSize || direction !== lastDirectionRef.current) {\n      if (direction === \"horizontal\") {\n        contentOffsetRef.current.y.set(0);\n      } else {\n        contentOffsetRef.current.x.set(0);\n      }\n      lastDirectionRef.current = direction;\n    }\n  };\n  useIsomorphicLayoutEffect2(() => {\n    if (RenderTarget.current() !== \"CANVAS\" /* canvas */)\n      return;\n    handleMeasureLifecycle();\n  });\n  const onDragStartHandler = (event, info) => {\n    if (onScrollStart)\n      onScrollStart(info);\n    if (onDragStart)\n      onDragStart(event, info);\n    prev.x = initial.x = info.point.x;\n    prev.y = initial.y = info.point.y;\n  };\n  const onDragHandler = (event, info) => {\n    if (onScroll)\n      onScroll(info);\n    if (onDrag)\n      onDrag(event, info);\n    prev.x = info.point.x;\n    prev.y = info.point.y;\n  };\n  const onDragTransitionEnd = () => {\n    if (props.onDragTransitionEnd)\n      props.onDragTransitionEnd();\n    if (onScrollEnd) {\n      const { x, y } = contentOffsetRef.current;\n      const point = { x: x.get(), y: y.get() };\n      onScrollEnd({\n        point,\n        velocity: { x: x.getVelocity(), y: y.getVelocity() },\n        offset: { x: point.x - initial.x, y: point.y - initial.y },\n        delta: { x: point.x - prev.x, y: point.y - prev.y }\n      });\n    }\n  };\n  const onDragEndHandler = async (event, info) => {\n    const contentOffset = isHorizontal ? contentOffsetRef.current.x : contentOffsetRef.current.y;\n    contentOffset.stop();\n    const startPosition = contentOffset.get();\n    const axis = isHorizontal ? \"x\" : \"y\";\n    const velocity = info.velocity[axis];\n    let index = nearestPageIndex(pageRectsRef.current, startPosition, startPosition, isHorizontal, momentum);\n    if (velocity) {\n      animateValue({\n        type: \"inertia\",\n        keyframes: [startPosition],\n        velocity,\n        modifyTarget: (endPosition) => {\n          index = nearestPageIndex(pageRectsRef.current, startPosition, endPosition, isHorizontal, momentum);\n          return endPosition;\n        }\n      }).stop();\n    }\n    updateCurrentPage(index, currentContentPageRef, onChangePage);\n    const offset = offsetForPage(index, pageCount, pageRectsRef, isHorizontal, maxOffsetRef);\n    if (onDragEnd)\n      onDragEnd(event, info);\n    const handler = contentOffsetRef.current[axis];\n    handler.set(startPosition);\n    animate(handler, offset, {\n      type: \"spring\",\n      velocity,\n      stiffness: 500,\n      damping: 50,\n      onComplete: onDragTransitionEnd\n    });\n  };\n  pageEffectValuesRef.current = [];\n  const childComponents = React50.Children.map(children, (child, index) => {\n    var _a2;\n    if (!isReactChild(child) || !isReactElement(child)) {\n      return child;\n    }\n    const update = {\n      right: void 0,\n      bottom: void 0,\n      top: void 0,\n      left: void 0,\n      _constraints: {\n        enabled: false\n      }\n    };\n    if (containerProps.__fromCanvasComponent) {\n      update.style = (_a2 = child.props.style) != null ? _a2 : {};\n      if (contentWidth === \"stretch\")\n        update.style.width = \"100%\";\n      if (contentHeight === \"stretch\")\n        update.style.height = \"100%\";\n    } else {\n      if (contentWidth === \"stretch\")\n        update.width = \"100%\";\n      if (contentHeight === \"stretch\")\n        update.height = \"100%\";\n    }\n    let effectDictionary;\n    const values = effectValues(index, latestPropsRef, pageRectsRef, contentOffsetRef, maxOffsetRef);\n    if (values) {\n      effectDictionary = {};\n      for (const key7 in values) {\n        effectDictionary[key7] = motionValue(values[key7]);\n      }\n    }\n    pageEffectValuesRef.current.push(effectDictionary);\n    return /* @__PURE__ */ React50.createElement(\n      PageContainer,\n      {\n        key: index,\n        effect: effectDictionary,\n        dragEnabled,\n        direction,\n        contentHeight,\n        contentWidth,\n        alignment,\n        gap,\n        isLastPage: index === pageCount - 1,\n        contentOffsetRef,\n        constraintsRef: constraints,\n        directionLock,\n        onDragStart: onDragStartHandler,\n        onDrag: onDragHandler,\n        onDragEnd: onDragEndHandler,\n        layoutId: layoutId ? `${layoutId}-${index}` : void 0\n      },\n      React50.cloneElement(child, update)\n    );\n  });\n  useWheelScroll(scrollableRef, {\n    enabled: wheelEnabled,\n    initial,\n    prev,\n    direction,\n    constraints,\n    offsetX: contentOffsetRef.current.x,\n    offsetY: contentOffsetRef.current.y,\n    onScrollStart,\n    onScroll,\n    onScrollEnd\n  });\n  return /* @__PURE__ */ React50.createElement(\n    FrameWithMotion,\n    {\n      \"data-framer-component-type\": \"PageWrapper\",\n      preserve3d: false,\n      perspective: hasEffect(props) ? 1200 : void 0,\n      ...containerProps,\n      style: { pointerEvents: void 0, ...containerProps.style, overflow },\n      layoutId,\n      ref: containerRef,\n      onLayoutMeasure: handleMeasureLifecycle\n    },\n    /* @__PURE__ */ React50.createElement(\n      FrameWithMotion,\n      {\n        \"data-framer-component-type\": \"Page\",\n        ref: scrollableRef,\n        background: null,\n        x: contentOffsetRef.current.x,\n        y: contentOffsetRef.current.y,\n        width: \"100%\",\n        height: \"100%\",\n        preserve3d: true,\n        layout: true,\n        layoutId: layoutId !== void 0 ? layoutId + \"-page\" : void 0,\n        style: {\n          padding: makePaddingString(paddingFromProps(props)),\n          display: \"flex\",\n          flexDirection: isHorizontal ? \"row\" : \"column\",\n          pointerEvents: (_a = props.style) == null ? void 0 : _a.pointerEvents\n        }\n      },\n      /* @__PURE__ */ React50.createElement(\n        EmptyState,\n        {\n          title: \"Page\",\n          description: \"Click and drag the connector to any frame on the canvas \\u2192\",\n          children,\n          size: containerSizeRef.current,\n          insideUserCodeComponent: !__fromCodeComponentNode\n        }\n      ),\n      childComponents\n    )\n  );\n});\nfunction cubeEffect(info) {\n  const { normalizedOffset, direction } = info;\n  const isHorizontal = direction === \"horizontal\";\n  return {\n    originX: normalizedOffset < 0 ? 1 : 0,\n    originY: normalizedOffset < 0 ? 1 : 0,\n    rotateY: isHorizontal ? Math.min(Math.max(-90, normalizedOffset * 90), 90) : 0,\n    rotateX: isHorizontal ? 0 : Math.min(Math.max(-90, normalizedOffset * -90), 90),\n    backfaceVisibility: \"hidden\",\n    WebkitBackfaceVisibility: \"hidden\"\n  };\n}\nfunction coverflowEffect(info) {\n  const { normalizedOffset, direction, size: size2 } = info;\n  const isHorizontal = direction === \"horizontal\";\n  return {\n    rotateY: isHorizontal ? Math.min(45, Math.max(-45, normalizedOffset * -45)) : 0,\n    rotateX: isHorizontal ? 0 : Math.min(45, Math.max(-45, normalizedOffset * 45)),\n    originX: isHorizontal ? normalizedOffset < 0 ? 0 : 1 : 0.5,\n    originY: isHorizontal ? 0.5 : normalizedOffset < 0 ? 0 : 1,\n    x: isHorizontal ? `${normalizedOffset * -25}%` : 0,\n    y: isHorizontal ? 0 : `${normalizedOffset * -25}%`,\n    z: -Math.abs(normalizedOffset),\n    scale: 1 - Math.abs(normalizedOffset / 10)\n  };\n}\nfunction calcPileAxisOffset(offset, length) {\n  return offset * length - offset * 8;\n}\nfunction pileEffect(info) {\n  const { normalizedOffset, direction, size: size2 } = info;\n  const isHorizontal = direction === \"horizontal\";\n  const absoluteOffset = Math.abs(normalizedOffset);\n  return {\n    x: normalizedOffset < 0 && isHorizontal ? calcPileAxisOffset(absoluteOffset, size2.width) : 0,\n    y: normalizedOffset < 0 && !isHorizontal ? calcPileAxisOffset(absoluteOffset, size2.height) : 0,\n    scale: normalizedOffset < 0 ? 1 - absoluteOffset / 50 : 1\n  };\n}\nfunction wheelEffect(info) {\n  const { normalizedOffset, direction, size: size2 } = info;\n  const isHorizontal = direction === \"horizontal\";\n  const originZ = (isHorizontal ? size2.width : size2.height) * 18 / (2 * Math.PI);\n  const rotateX = isHorizontal ? 0 : normalizedOffset * -20;\n  const rotateY = isHorizontal ? normalizedOffset * 20 : 0;\n  const y = isHorizontal ? 0 : normalizedOffset * -size2.height;\n  const x = isHorizontal ? normalizedOffset * -size2.width : 0;\n  return {\n    opacity: 1 - Math.abs(normalizedOffset) / 4,\n    transform: `translate(${x}px, ${y}px) translateZ(-${originZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) translateZ(${originZ}px)`\n  };\n}\nfunction getDefaultEffect(type) {\n  switch (type) {\n    case \"cube\":\n      return cubeEffect;\n    case \"coverflow\":\n      return coverflowEffect;\n    case \"pile\":\n      return pileEffect;\n    case \"wheel\":\n      return wheelEffect;\n    default:\n      return null;\n  }\n}\nfunction nearestPageIndex(pageRects, startPosition, endPosition, isHorizontalDirection, allowSkippingPages) {\n  const distanceToStart = function(rect) {\n    const rectPosition = isHorizontalDirection ? rect.x : rect.y;\n    return Math.abs(rectPosition + startPosition);\n  };\n  const distanceToEnd = function(rect) {\n    const rectPosition = isHorizontalDirection ? rect.x : rect.y;\n    return Math.abs(rectPosition + endPosition);\n  };\n  if (allowSkippingPages) {\n    const closestPages = [...pageRects].sort((a, b) => distanceToEnd(a) - distanceToEnd(b));\n    if (!closestPages[0])\n      return -1;\n    return pageRects.indexOf(closestPages[0]);\n  } else {\n    const closestToStart = [...pageRects].sort((a, b) => distanceToStart(a) - distanceToStart(b));\n    if (closestToStart.length === 1 && closestToStart[0])\n      return pageRects.indexOf(closestToStart[0]);\n    const pageA = closestToStart[0];\n    const pageB = closestToStart[1];\n    if (!pageA || !pageB)\n      return -1;\n    const closestPages = [pageA, pageB].sort((a, b) => distanceToEnd(a) - distanceToEnd(b));\n    if (!closestPages[0])\n      return -1;\n    return pageRects.indexOf(closestPages[0]);\n  }\n}\nfunction getPageContentRects(containerRef, containerSize, direction, gap) {\n  var _a;\n  const containerElement = containerRef.current;\n  if (!containerElement)\n    return;\n  const contentWrappers = [];\n  (_a = containerElement.firstChild) == null ? void 0 : _a.childNodes.forEach((node) => {\n    const childNode = node.firstChild;\n    if (!(childNode instanceof HTMLElement))\n      return;\n    const componentType = childNode.getAttribute(\"data-framer-component-type\");\n    if (componentType === pageContentWrapperType) {\n      contentWrappers.push(childNode);\n    }\n  });\n  const sizes = [];\n  contentWrappers.forEach((contentWrapper) => {\n    if (contentWrapper instanceof HTMLElement && contentWrapper.firstChild instanceof HTMLElement) {\n      let width = contentWrapper.firstChild.offsetWidth;\n      let height = contentWrapper.firstChild.offsetHeight;\n      if (import_process3.default.env.NODE_ENV === \"test\") {\n        width = 100;\n        height = 100;\n      }\n      sizes.push({ width, height });\n    } else {\n      sizes.push(null);\n    }\n  });\n  let maxX = 0;\n  let maxY = 0;\n  const isHorizontal = direction === \"horizontal\";\n  return sizes.map((queriedSize) => {\n    const size2 = queriedSize || containerSize;\n    const x = maxX;\n    const y = maxY;\n    if (isHorizontal) {\n      maxX += size2.width + gap;\n    } else {\n      maxY += size2.height + gap;\n    }\n    return { ...size2, x, y };\n  });\n}\nfunction getMaxOffset(containerSize, pageContentRects, direction, paddingProps) {\n  const lastPageRect = pageContentRects[pageContentRects.length - 1];\n  if (!lastPageRect)\n    return 0;\n  const paddingSides = paddingFromProps(paddingProps);\n  const isHorizontal = direction === \"horizontal\";\n  const paddingStart = isHorizontal ? paddingSides.left : paddingSides.top;\n  const paddingEnd = isHorizontal ? paddingSides.right : paddingSides.bottom;\n  const pageWidth = isHorizontal ? lastPageRect.width : lastPageRect.height;\n  const containerWidth = isHorizontal ? containerSize.width : containerSize.height;\n  const freeSpace = containerWidth - paddingStart - paddingEnd - pageWidth;\n  const target = isHorizontal ? lastPageRect.x : lastPageRect.y;\n  if (freeSpace <= 0)\n    return Math.max(target, 0);\n  return Math.max(target - freeSpace, 0);\n}\nfunction offsetForPage(index, pageCount, pageRectsRef, isHorizontal, maxOffsetRef) {\n  const pageIndex = Math.max(0, Math.min(pageCount - 1, index));\n  const currentPageRect = pageRectsRef.current[pageIndex];\n  if (!currentPageRect) {\n    return 0;\n  }\n  if (isHorizontal) {\n    return -Math.min(currentPageRect.x, maxOffsetRef.current);\n  } else {\n    return -Math.min(currentPageRect.y, maxOffsetRef.current);\n  }\n}\nfunction useSnapToPage(currentContentPageRef, contentOffsetRef, isHorizontal) {\n  return (pageIndex, offset, options) => {\n    currentContentPageRef.current = pageIndex;\n    const contentOffset = isHorizontal ? contentOffsetRef.current.x : contentOffsetRef.current.y;\n    if (!options || !options.animated) {\n      contentOffset.set(offset);\n      return;\n    }\n    const axis = isHorizontal ? \"x\" : \"y\";\n    const value = contentOffsetRef.current[axis];\n    value.set(contentOffset.get());\n    animate(value, offset, {\n      type: \"spring\",\n      velocity: contentOffset.getVelocity(),\n      stiffness: 500,\n      damping: 50\n    });\n  };\n}\nfunction getBoundedCurrentPage(pageIndex, pageCount) {\n  return pageIndex >= 0 ? Math.min(pageIndex, pageCount - 1) : (pageIndex % pageCount + pageCount) % pageCount;\n}\nfunction effectValues(index, latestPropsRef, pageRectsRef, contentOffsetRef, maxOffsetRef) {\n  const {\n    direction: latestDirection = \"horizontal\",\n    defaultEffect: latestDefaultEffect,\n    effect: latestEffect,\n    gap: latestGap = 10\n  } = latestPropsRef.current;\n  const latestIsHorizontal = latestDirection === \"horizontal\";\n  const pageRect = pageRectsRef.current[index] || {\n    x: latestIsHorizontal ? index * 200 + latestGap : 0,\n    y: latestIsHorizontal ? 0 : index * 200 + latestGap,\n    width: 200,\n    height: 200\n  };\n  const effectFunction = latestEffect || getDefaultEffect(latestDefaultEffect);\n  if (!effectFunction)\n    return null;\n  let offset;\n  let normalizedOffset;\n  const contentOffset = contentOffsetRef.current;\n  const maxScrollOffset = maxOffsetRef.current;\n  if (latestIsHorizontal) {\n    offset = Math.min(pageRect.x, maxScrollOffset) + (contentOffset ? contentOffset.x.get() : 0);\n    normalizedOffset = offset / (pageRect.width + latestGap);\n  } else {\n    offset = Math.min(pageRect.y, maxScrollOffset) + (contentOffset ? contentOffset.y.get() : 0);\n    normalizedOffset = offset / (pageRect.height + latestGap);\n  }\n  const size2 = { width: pageRect.width, height: pageRect.height };\n  return effectFunction({\n    offset,\n    normalizedOffset,\n    size: size2,\n    index,\n    direction: latestDirection,\n    gap: latestGap,\n    pageCount: pageRectsRef.current.length\n  });\n}\nfunction hasEffect(props) {\n  return !!props.effect || !!getDefaultEffect(props.defaultEffect);\n}\nfunction updateCurrentPage(newPageIndex, currentContentPageRef, onChangePage) {\n  if (currentContentPageRef.current === newPageIndex)\n    return;\n  if (onChangePage)\n    onChangePage(newPageIndex, currentContentPageRef.current);\n  currentContentPageRef.current = newPageIndex;\n}\n\n// ../../library/src/components/Page/Page.tsx\nvar Page3 = /* @__PURE__ */ (() => {\n  const ContentDimension = {\n    Auto: \"auto\",\n    Stretch: \"stretch\"\n  };\n  const pageContentDimensionOptions = [ContentDimension.Auto, ContentDimension.Stretch];\n  const pageContentDimensionTitles = /* @__PURE__ */ pageContentDimensionOptions.map((option) => {\n    switch (option) {\n      case ContentDimension.Auto:\n        return \"Auto\";\n      case ContentDimension.Stretch:\n        return \"Stretch\";\n    }\n  });\n  const pageEffectOptions = [\"none\", \"cube\", \"coverflow\", \"wheel\", \"pile\"];\n  const pageEffectTitles = /* @__PURE__ */ pageEffectOptions.map((option) => {\n    switch (option) {\n      case \"none\":\n        return \"None\";\n      case \"cube\":\n        return \"Cube\";\n      case \"coverflow\":\n        return \"Cover Flow\";\n      case \"wheel\":\n        return \"Wheel\";\n      case \"pile\":\n        return \"Pile\";\n    }\n  });\n  const pageAlignmentOptions = [\"start\", \"center\", \"end\"];\n  const genericAlignmentTitles = /* @__PURE__ */ pageAlignmentOptions.map((option) => {\n    switch (option) {\n      case \"start\":\n        return \"Start\";\n      case \"center\":\n        return \"Center\";\n      case \"end\":\n        return \"End\";\n    }\n  });\n  Page.defaultProps = {\n    gap: 10,\n    directionLock: false\n  };\n  addPropertyControls(Page, {\n    direction: {\n      type: \"enum\" /* Enum */,\n      options: [\"horizontal\", \"vertical\"],\n      title: \"Direction\",\n      defaultValue: \"horizontal\",\n      displaySegmentedControl: true,\n      optionIcons: [\"direction-horizontal\", \"direction-vertical\"]\n    },\n    directionLock: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Lock\",\n      enabledTitle: \"1 Axis\",\n      disabledTitle: \"Off\",\n      defaultValue: true\n    },\n    contentWidth: {\n      type: \"enum\" /* Enum */,\n      options: pageContentDimensionOptions,\n      optionTitles: pageContentDimensionTitles,\n      title: \"Width\",\n      defaultValue: ContentDimension.Stretch,\n      displaySegmentedControl: true\n    },\n    contentHeight: {\n      type: \"enum\" /* Enum */,\n      options: pageContentDimensionOptions,\n      optionTitles: pageContentDimensionTitles,\n      title: \"Height\",\n      defaultValue: ContentDimension.Stretch,\n      displaySegmentedControl: true\n    },\n    alignment: {\n      type: \"enum\" /* Enum */,\n      options: pageAlignmentOptions,\n      optionTitles: genericAlignmentTitles,\n      title: \"Align\",\n      hidden(props) {\n        const { direction, contentWidth, contentHeight } = props;\n        const isHorizontalDirection = direction === \"horizontal\";\n        const crossDimension = isHorizontalDirection ? contentHeight : contentWidth;\n        return crossDimension === ContentDimension.Stretch;\n      },\n      defaultValue: \"start\",\n      displaySegmentedControl: true,\n      optionIcons: {\n        direction: {\n          horizontal: [\"align-top\", \"align-middle\", \"align-bottom\"],\n          vertical: [\"align-left\", \"align-center\", \"align-right\"]\n        }\n      }\n    },\n    gap: {\n      type: \"number\" /* Number */,\n      min: 0,\n      title: \"Gap\",\n      defaultValue: 0\n    },\n    padding: {\n      type: \"fusednumber\" /* FusedNumber */,\n      toggleKey: \"paddingPerSide\",\n      toggleTitles: [\"Padding\", \"Padding per side\"],\n      valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n      valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n      min: 0,\n      title: \"Padding\",\n      defaultValue: 0\n    },\n    overflow: {\n      type: \"enum\" /* Enum */,\n      title: \"Overflow\",\n      defaultValue: \"hidden\",\n      options: [\"visible\", \"hidden\"],\n      optionTitles: [\"Visible\", \"Hidden\"],\n      displaySegmentedControl: true\n    },\n    currentPage: {\n      type: \"number\" /* Number */,\n      min: 0,\n      title: \"Current\",\n      displayStepper: true,\n      defaultValue: 0\n    },\n    momentum: {\n      type: \"boolean\" /* Boolean */,\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      title: \"Momentum\",\n      defaultValue: false\n    },\n    dragEnabled: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Drag\",\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      defaultValue: true\n    },\n    wheelEnabled: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Wheel\",\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      defaultValue: false\n    },\n    defaultEffect: {\n      type: \"enum\" /* Enum */,\n      options: pageEffectOptions,\n      optionTitles: pageEffectTitles,\n      title: \"Effect\",\n      defaultValue: \"none\"\n    },\n    children: {\n      type: \"array\" /* Array */,\n      title: \"Content\",\n      control: { type: \"componentinstance\" /* ComponentInstance */, title: \"Page\" }\n    }\n  });\n  Page.supportsConstraints = true;\n  return Page;\n})();\n\n// ../../library/src/components/Screen.tsx\nimport React53, { Component as Component9 } from \"react\";\n\n// ../../library/src/events/recognizer/GestureRecognizer.ts\nfunction stateName(state) {\n  switch (state) {\n    case 2 /* Possible */:\n      return \"Possible\";\n    case 4 /* Began */:\n      return \"Began\";\n    case 8 /* Changed */:\n      return \"Changed\";\n    case 16 /* Ended */:\n      return \"Ended\";\n    case 32 /* Failed */:\n      return \"Failed\";\n    case 64 /* Cancelled */:\n      return \"Cancelled\";\n    case 128 /* Recognized */:\n      return \"Recognized\";\n    default:\n      return \"Unknown\";\n  }\n}\nfunction containsBitmask(value, bitmask) {\n  return (value & bitmask) !== 0;\n}\nvar GestureRecognizer = class {\n  constructor() {\n    this._state = 2 /* Possible */;\n    this.preventers = [];\n  }\n  get state() {\n    return this._state;\n  }\n  setState(state) {\n    this._state = state;\n  }\n  get isPrevented() {\n    let prevented = false;\n    for (const recognizer of this.preventers) {\n      if (recognizer.state & (4 /* Began */ | 8 /* Changed */ | 16 /* Ended */)) {\n        prevented = true;\n        break;\n      }\n    }\n    return prevented;\n  }\n  canBePreventedBy(recognizer) {\n    this.preventers.push(recognizer);\n  }\n  hasState(bitmask) {\n    return containsBitmask(this.state, bitmask);\n  }\n  stateSwitch(newState) {\n    let allowedStates;\n    switch (this.state) {\n      case 2 /* Possible */:\n        allowedStates = 4 /* Began */ | 128 /* Recognized */ | 32 /* Failed */;\n        break;\n      case 4 /* Began */:\n        allowedStates = 8 /* Changed */ | 64 /* Cancelled */ | 16 /* Ended */;\n        break;\n      case 8 /* Changed */:\n        allowedStates = 8 /* Changed */ | 64 /* Cancelled */ | 16 /* Ended */;\n        break;\n      case 128 /* Recognized */:\n      case 16 /* Ended */:\n      case 64 /* Cancelled */:\n      case 32 /* Failed */:\n        allowedStates = 2 /* Possible */;\n        break;\n      default:\n        allowedStates = 0;\n    }\n    if (!containsBitmask(newState, allowedStates)) {\n      console.warn(`Unallowed state change from ${stateName(this.state)} to ${stateName(newState)}`);\n      return;\n    }\n    this.setState(newState);\n  }\n  cancel() {\n    if (this.hasState(4 /* Began */ | 8 /* Changed */)) {\n      this.setState(64 /* Cancelled */);\n    }\n    this.reset();\n  }\n  reset() {\n    if (!this.hasState(2 /* Possible */)) {\n      this.stateSwitch(2 /* Possible */);\n    }\n  }\n};\n\n// ../../library/src/events/recognizer/MouseWheelGestureRecognizer.ts\nvar MouseWheelGestureRecognizer = class extends GestureRecognizer {\n  constructor() {\n    super(...arguments);\n    this.eventType = \"mousewheel\";\n    this.onMouseWheelEnd = debounce((event) => {\n      if (this.handler && this.startEvent) {\n        this.stateSwitch(16 /* Ended */);\n        this.handler.gestureEnded(this.eventType, event, this.startEvent.target);\n        this.startEvent = null;\n        this.reset();\n      }\n    }, 300);\n  }\n  pointerSessionBegan(session, event) {\n  }\n  pointerSessionMoved(session, event) {\n  }\n  pointerSessionEnded(session, event) {\n  }\n  mouseWheel(session, event) {\n    if (!this.handler)\n      return;\n    if (this.hasState(2 /* Possible */)) {\n      this.startEvent = event;\n      this.stateSwitch(4 /* Began */);\n      this.handler.gestureBegan(this.eventType, event, this.startEvent.target);\n      return;\n    }\n    if (this.hasState(4 /* Began */ | 8 /* Changed */) && this.startEvent) {\n      this.stateSwitch(8 /* Changed */);\n      this.handler.gestureChanged(this.eventType, event, this.startEvent.target);\n    }\n    this.onMouseWheelEnd(event);\n  }\n};\n\n// ../../library/src/events/recognizer/PanGestureRecognizer.ts\nvar PanGestureRecognizer = class extends GestureRecognizer {\n  constructor() {\n    super(...arguments);\n    this.eventType = \"pan\";\n  }\n  pointerSessionBegan(session, event) {\n    this.recognize(session, event);\n  }\n  pointerSessionMoved(session, event) {\n    this.recognize(session, event);\n  }\n  pointerSessionEnded(session, event) {\n    this.panend(event);\n  }\n  recognize(session, event) {\n    if (Math.abs(event.delta.x) > 0 || Math.abs(event.delta.y) > 0) {\n      if (this.startEvent) {\n        this.pan(event);\n      } else {\n        this.panstart(event);\n      }\n    }\n  }\n  reset() {\n    this.startEvent = null;\n    super.reset();\n  }\n  panstart(event) {\n    if (!this.hasState(2 /* Possible */) || event.isLeftMouseClick !== void 0 && !event.isLeftMouseClick) {\n      return;\n    }\n    this.stateSwitch(4 /* Began */);\n    this.startEvent = event;\n    if (this.handler && this.startEvent.target) {\n      this.handler.gestureBegan(this.eventType, event, this.startEvent.target);\n    }\n  }\n  pan(event) {\n    if (!this.hasState(4 /* Began */ | 8 /* Changed */)) {\n      return;\n    }\n    if (!this.startEvent) {\n      return;\n    }\n    this.stateSwitch(8 /* Changed */);\n    if (this.handler && this.startEvent.target) {\n      this.handler.gestureChanged(this.eventType, event, this.startEvent.target);\n    }\n  }\n  panend(event) {\n    if (!this.hasState(4 /* Began */ | 8 /* Changed */)) {\n      return;\n    }\n    if (!this.startEvent) {\n      return;\n    }\n    this.stateSwitch(16 /* Ended */);\n    if (this.handler && this.startEvent.target) {\n      this.handler.gestureEnded(this.eventType, event, this.startEvent.target);\n    }\n  }\n};\n\n// ../../library/src/events/recognizer/TapGestureRecognizer.ts\nvar TapGestureRecognizer = class extends GestureRecognizer {\n  constructor() {\n    super(...arguments);\n    this.eventType = \"tap\";\n  }\n  pointerSessionBegan(session, event) {\n    if (this.handler && (event.isLeftMouseClick === void 0 || event.isLeftMouseClick)) {\n      this.handler.gestureBegan(this.eventType, event, null);\n    }\n  }\n  pointerSessionMoved(session, event) {\n  }\n  pointerSessionEnded(session, event) {\n    if (this.isPrevented) {\n      this.stateSwitch(32 /* Failed */);\n    } else if (!session.startEvent || session.startEvent.target === event.target) {\n      this.stateSwitch(128 /* Recognized */);\n      if (this.handler) {\n        this.handler.gestureChanged(this.eventType, event, null);\n      }\n    } else {\n      this.stateSwitch(32 /* Failed */);\n    }\n    if (this.handler) {\n      this.handler.gestureEnded(this.eventType, event, null);\n    }\n  }\n};\n\n// ../../library/src/events/FramerEventSession.ts\nvar FramerEventSession = class {\n  constructor(dispatcher, customOrigin) {\n    this.events = [];\n    this.recognizers = [];\n    this.mouseWheelRecognizer = new MouseWheelGestureRecognizer();\n    this.dispatcher = dispatcher;\n    if (customOrigin) {\n      this.originElement = customOrigin;\n    } else {\n      this.originElement = document.body;\n    }\n    const pan = new PanGestureRecognizer();\n    const tap = new TapGestureRecognizer();\n    pan.handler = this;\n    tap.handler = this;\n    this.mouseWheelRecognizer.handler = this;\n    this.recognizers = [tap, pan];\n  }\n  get isStarted() {\n    return this.events.length !== 0;\n  }\n  get startEvent() {\n    return this.isStarted ? this.events[0] : void 0;\n  }\n  get lastEvent() {\n    return this.events[this.events.length - 1];\n  }\n  // Event handling\n  processEvent(event) {\n    this.events.push(event);\n    return event;\n  }\n  pointerDown(event) {\n    if (this.isStarted) {\n      return;\n    }\n    this.processEvent(event);\n    this.recognizers.map((r) => {\n      r.cancel();\n      r.pointerSessionBegan(this, event);\n    });\n  }\n  pointerMove(event) {\n    if (!this.isStarted) {\n      return;\n    }\n    this.processEvent(event);\n    this.recognizers.map((r) => {\n      r.pointerSessionMoved(this, event);\n    });\n  }\n  pointerUp(event) {\n    if (!this.isStarted) {\n      return;\n    }\n    this.processEvent(event);\n    this.recognizers.map((r) => {\n      r.pointerSessionEnded(this, event);\n    });\n    this.clearEvents();\n    this.recognizers.map((r) => {\n      r.reset();\n    });\n  }\n  mouseWheel(event) {\n    this.processEvent(event);\n    this.mouseWheelRecognizer.mouseWheel(this, event);\n    this.clearEvents();\n  }\n  clearEvents() {\n    this.events = [];\n  }\n  dispatch(type, event, target = null) {\n    const dispatchTarget = target || this.startEvent && this.startEvent.target || event.target;\n    if (dispatchTarget) {\n      this.dispatcher(type, event, dispatchTarget);\n    }\n  }\n  // Gesture Handler\n  gestureBegan(type, event, target) {\n    this.dispatch(`${type}start`, event, target);\n  }\n  gestureChanged(type, event, target) {\n    this.dispatch(type, event, target);\n  }\n  gestureEnded(type, event, target) {\n    this.dispatch(`${type}end`, event, target);\n  }\n  // Calculatinos\n  /**\n   * Average velocity over last n seconds in pixels per second.\n   * @param n - number of events to use for calculation\n   */\n  velocity(t = Loop.TimeStep * 2) {\n    var _a;\n    if (!this.isStarted || this.events.length < 2) {\n      return { x: 0, y: 0 };\n    }\n    const events2 = this.events;\n    let i = events2.length - 1;\n    let event = null;\n    while (i >= 0) {\n      event = (_a = events2[i]) != null ? _a : null;\n      if (!event || MainLoop.time - event.loopTime > t) {\n        break;\n      }\n      i--;\n    }\n    if (!event) {\n      return { x: 0, y: 0 };\n    }\n    const current = events2[events2.length - 1];\n    if (!current) {\n      return { x: 0, y: 0 };\n    }\n    const time2 = (MainLoop.time - event.loopTime) * 1e3;\n    if (time2 === 0) {\n      return { x: 0, y: 0 };\n    }\n    const velocity = {\n      x: (current.devicePoint.x - event.devicePoint.x) / time2,\n      y: (current.devicePoint.y - event.devicePoint.y) / time2\n    };\n    if (velocity.x === Infinity) {\n      velocity.x = 0;\n    }\n    if (velocity.y === Infinity) {\n      velocity.y = 0;\n    }\n    return velocity;\n  }\n  offset(event) {\n    if (!this.startEvent) {\n      return { x: 0, y: 0 };\n    }\n    const subtract = (pointA, pointB) => {\n      return {\n        x: pointA.x - pointB.x,\n        y: pointA.y - pointB.y\n      };\n    };\n    return subtract(event.devicePoint, this.startEvent.devicePoint);\n  }\n};\n\n// ../../library/src/events/recognizer/MouseEventListener.ts\nimport { Component as Component7 } from \"react\";\nvar MouseEventListener = class extends Component7 {\n  constructor() {\n    super(...arguments);\n    /**\n     * @internal\n     */\n    this.domMouseDown = (originalEvent) => {\n      safeWindow.addEventListener(\"mousemove\", this.domMouseMove);\n      safeWindow.addEventListener(\"mouseup\", this.domMouseUp);\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerDown(event);\n    };\n    /**\n     * @internal\n     */\n    this.domMouseMove = (originalEvent) => {\n      const leftMouseButtonOnlyDown = originalEvent.buttons === void 0 ? originalEvent.which === 1 : originalEvent.buttons === 1;\n      if (!leftMouseButtonOnlyDown) {\n        this.domMouseUp(originalEvent);\n        return;\n      }\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerMove(event);\n    };\n    /**\n     * @internal\n     */\n    this.domMouseUp = (originalEvent) => {\n      safeWindow.removeEventListener(\"mousemove\", this.domMouseMove);\n      safeWindow.removeEventListener(\"mouseup\", this.domMouseUp);\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerUp(event);\n    };\n    /**\n     * @internal\n     */\n    this.domMouseWheel = (originalEvent) => {\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.mouseWheel(event);\n    };\n  }\n  /**\n   * @internal\n   */\n  render() {\n    return this.props.children;\n  }\n  /**\n   * @internal\n   */\n  componentDidMount() {\n    safeWindow.addEventListener(\"mousedown\", this.domMouseDown);\n    safeWindow.addEventListener(\"wheel\", this.domMouseWheel);\n  }\n  /**\n   * @internal\n   */\n  componentWillUnmount() {\n    safeWindow.removeEventListener(\"mousemove\", this.domMouseMove);\n    safeWindow.removeEventListener(\"mousedown\", this.domMouseDown);\n    safeWindow.removeEventListener(\"mouseup\", this.domMouseUp);\n    safeWindow.removeEventListener(\"wheel\", this.domMouseWheel);\n  }\n};\n\n// ../../library/src/events/recognizer/TouchEventListener.ts\nimport { Component as Component8 } from \"react\";\nvar TouchEventListener = class extends Component8 {\n  constructor() {\n    super(...arguments);\n    /**\n     * @internal\n     */\n    this.domTouchStart = (originalEvent) => {\n      safeWindow.addEventListener(\"touchmove\", this.domTouchMove);\n      safeWindow.addEventListener(\"touchend\", this.domTouchEnd);\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerDown(event);\n    };\n    /**\n     * @internal\n     */\n    this.domTouchMove = (originalEvent) => {\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerMove(event);\n    };\n    /**\n     * @internal\n     */\n    this.domTouchEnd = (originalEvent) => {\n      safeWindow.removeEventListener(\"touchmove\", this.domTouchMove);\n      safeWindow.removeEventListener(\"touchend\", this.domTouchEnd);\n      const event = new FramerEvent(originalEvent, this.props.session);\n      this.props.session.pointerUp(event);\n    };\n  }\n  /**\n   * @internal\n   */\n  render() {\n    return this.props.children;\n  }\n  /**\n   * @internal\n   */\n  componentDidMount() {\n    safeWindow.addEventListener(\"touchstart\", this.domTouchStart);\n  }\n  /**\n   * @internal\n   */\n  componentWillUnmount() {\n    safeWindow.removeEventListener(\"touchstart\", this.domTouchStart);\n    safeWindow.removeEventListener(\"touchmove\", this.domTouchMove);\n    safeWindow.removeEventListener(\"touchend\", this.domTouchEnd);\n  }\n};\n\n// ../../library/src/events/FramerEventListener.ts\nvar FramerEventListener = /* @__PURE__ */ environment.isTouch() ? TouchEventListener : MouseEventListener;\n\n// ../../library/src/components/Scroll/Scroll.tsx\nimport React57 from \"react\";\n\n// ../../library/src/components/Scroll/EmulatedScroll.tsx\nimport React54, { useCallback as useCallback6, useMemo as useMemo3, useRef as useRef9 } from \"react\";\nvar directionMap = {\n  horizontal: \"x\",\n  vertical: \"y\",\n  both: true\n};\nfunction convertScrollDirectionToDrag(scrollDirection) {\n  return scrollDirection ? directionMap[scrollDirection] : scrollDirection;\n}\nvar useUpdateChildSize = ({\n  dragDirection,\n  children,\n  fromCanvasComponent\n}) => {\n  return useMemo3(() => {\n    return React54.Children.map(children, (child) => {\n      if (child === null || typeof child !== \"object\" || typeof child.type === \"string\") {\n        return child;\n      }\n      const updatedSize = {};\n      switch (dragDirection) {\n        case \"vertical\":\n          updatedSize.width = \"100%\";\n          break;\n        case \"horizontal\":\n          updatedSize.height = \"100%\";\n          break;\n        default:\n          return child;\n      }\n      const update = fromCanvasComponent ? { style: Object.assign({}, child.props.style, updatedSize) } : updatedSize;\n      return React54.cloneElement(child, update);\n    });\n  }, [dragDirection, children]);\n};\nvar numberFromOptionalMotionValue = (value) => {\n  return typeof value === \"number\" ? value : value.get();\n};\nvar EmulatedScroll = /* @__PURE__ */ React54.forwardRef(\n  function EmulatedScroll2(props, forwardedRef) {\n    const {\n      direction = \"vertical\",\n      directionLock = false,\n      dragEnabled = true,\n      dragElastic,\n      dragMomentum,\n      dragTransition,\n      wheelEnabled = true,\n      contentOffsetX = 0,\n      contentOffsetY = 0,\n      contentWidth,\n      contentHeight,\n      onScrollStart,\n      onScroll,\n      onScrollEnd,\n      onDragStart,\n      onDrag,\n      onDragEnd,\n      onUpdate,\n      onDirectionLock,\n      style,\n      children,\n      scrollAnimate,\n      resetOffset,\n      overdragEnabled = true,\n      layoutId: specificLayoutId,\n      native,\n      ...containerProps\n    } = props;\n    const layoutId = useLayoutId(props, { specificLayoutId, postfix: \"scroll\" });\n    const defaultX = useMotionValue(typeof contentOffsetX === \"number\" ? contentOffsetX : 0);\n    const defaultY = useMotionValue(typeof contentOffsetY === \"number\" ? contentOffsetY : 0);\n    const x = isMotionValue2(contentOffsetX) ? contentOffsetX : defaultX;\n    const y = isMotionValue2(contentOffsetY) ? contentOffsetY : defaultY;\n    const measuredConstraints = useRef9(null);\n    const dragControls = useDragControls();\n    const isInTarget = useIsInCurrentNavigationTarget();\n    const wasInTargetRef = useRef9(true);\n    injectComponentCSSRules();\n    function setMeasureDragConstraints(constraints) {\n      constraints = offsetToZero(constraints);\n      if (contentWidth !== void 0)\n        constraints.left = -contentWidth;\n      if (contentHeight !== void 0)\n        constraints.top = -contentHeight;\n      return measuredConstraints.current = constraints;\n    }\n    const { initial, prev } = useRef9({\n      initial: { x: 0, y: 0 },\n      prev: { x: 0, y: 0 }\n    }).current;\n    const isPreview = RenderTarget.current() === \"PREVIEW\" /* preview */;\n    const containerFallbackRef = useRef9(null);\n    const containerRef = forwardedRef || containerFallbackRef;\n    const contentRef = useRef9(null);\n    const lastOffsetRef = useRef9(null);\n    function shouldResetScroll(inTarget) {\n      const hasEnteredTarget = inTarget && wasInTargetRef.current === false;\n      return resetOffset && hasEnteredTarget;\n    }\n    function measureAndUpdateScrollOffset() {\n      if (!contentRef.current || !containerRef.current)\n        return;\n      const mustReset = shouldResetScroll(isInTarget);\n      wasInTargetRef.current = isInTarget;\n      const previous = lastOffsetRef.current;\n      if (previous === null && contentOffsetX === void 0 && contentOffsetY === void 0)\n        return;\n      const shouldUpdateOffset = previous === null || !isMotionValue2(contentOffsetX) && contentOffsetX !== previous.offsetX || !isMotionValue2(contentOffsetY) && contentOffsetY !== previous.offsetY;\n      const currentMaxXOffset = contentRef.current.offsetWidth - containerRef.current.offsetWidth;\n      const currentMaxYOffset = contentRef.current.offsetHeight - containerRef.current.offsetHeight;\n      const hasSizeChanged = currentMaxXOffset !== (previous == null ? void 0 : previous.maxXOffset) || currentMaxYOffset !== (previous == null ? void 0 : previous.maxYOffset);\n      const hasScrollOffsetChanged = (previous == null ? void 0 : previous.x) !== x.get() || (previous == null ? void 0 : previous.y) !== y.get();\n      const shouldStayPinned = hasSizeChanged && !hasScrollOffsetChanged;\n      if (mustReset || shouldUpdateOffset || shouldStayPinned) {\n        const currentOffsetX = direction !== \"vertical\" ? numberFromOptionalMotionValue(contentOffsetX) : 0;\n        const currentOffsetY = direction !== \"horizontal\" ? numberFromOptionalMotionValue(contentOffsetY) : 0;\n        const nextXOffset = -Math.min(currentOffsetX, currentMaxXOffset);\n        const nextYOffset = -Math.min(currentOffsetY, currentMaxYOffset);\n        x.set(nextXOffset);\n        y.set(nextYOffset);\n        lastOffsetRef.current = {\n          maxXOffset: currentMaxXOffset,\n          maxYOffset: currentMaxYOffset,\n          offsetX: currentOffsetX,\n          offsetY: currentOffsetY,\n          x: nextXOffset,\n          y: nextYOffset\n        };\n      }\n    }\n    useIsomorphicLayoutEffect2(() => {\n      if (RenderTarget.current() !== \"CANVAS\" /* canvas */)\n        return;\n      measureAndUpdateScrollOffset();\n    });\n    useIsomorphicLayoutEffect2(() => {\n      if (RenderTarget.current() === \"CANVAS\" /* canvas */)\n        return;\n      measureAndUpdateScrollOffset();\n    }, []);\n    React54.useEffect(() => {\n      if (shouldResetScroll(isInTarget))\n        measureAndUpdateScrollOffset();\n      if (isInTarget === false)\n        wasInTargetRef.current = false;\n    }, [isInTarget]);\n    const getLatestPoint = () => ({ x: x.get(), y: y.get() });\n    const resetInitialPoint = useCallback6(() => {\n      const point = getLatestPoint();\n      initial.x = point.x;\n      initial.y = point.y;\n      prev.x = point.x;\n      prev.y = point.y;\n    }, []);\n    const getPointData = useCallback6(() => {\n      const point = getLatestPoint();\n      const data2 = {\n        point,\n        velocity: { x: x.getVelocity(), y: y.getVelocity() },\n        offset: { x: point.x - initial.x, y: point.y - initial.y },\n        delta: { x: point.x - prev.x, y: point.y - prev.y }\n      };\n      prev.x = point.x;\n      prev.y = point.y;\n      return data2;\n    }, [x, y]);\n    const updateScrollListeners = useCallback6(() => {\n      onUpdate && onUpdate({ x: x.get(), y: y.get() });\n      onScroll && onScroll(getPointData());\n    }, [onScroll, onUpdate, getPointData, x, y]);\n    const scheduleUpdateScrollListeners = useCallback6(() => {\n      frame.update(updateScrollListeners, false, true);\n    }, [updateScrollListeners]);\n    const onMotionDragStart = (event, info) => {\n      resetInitialPoint();\n      onDragStart && onDragStart(event, info);\n      onScrollStart && onScrollStart(info);\n    };\n    const onMotionDragTransitionEnd = () => onScrollEnd && onScrollEnd(getPointData());\n    const onWheelScrollStart = (info) => {\n      onScrollStart == null ? void 0 : onScrollStart(info);\n    };\n    useWheelScroll(containerRef, {\n      enabled: wheelEnabled,\n      initial,\n      prev,\n      direction,\n      offsetX: x,\n      offsetY: y,\n      onScrollStart: onWheelScrollStart,\n      onScroll,\n      onScrollEnd,\n      constraints: measuredConstraints\n    });\n    const overdragX = useMotionValue(0);\n    const overdragY = useMotionValue(0);\n    useIsomorphicLayoutEffect2(() => {\n      const setScrollX = (xValue) => {\n        const element = containerRef.current;\n        if (!(element instanceof HTMLDivElement))\n          return;\n        element.scrollLeft = -xValue;\n        const constraints = measuredConstraints.current;\n        if (constraints && overdragEnabled) {\n          let overdragXValue = 0;\n          if (xValue > constraints.right)\n            overdragXValue = xValue;\n          if (xValue < constraints.left)\n            overdragXValue = xValue - constraints.left;\n          overdragX.set(overdragXValue);\n        }\n        scheduleUpdateScrollListeners();\n      };\n      const currentX = x.get();\n      if (currentX !== 0)\n        setScrollX(currentX);\n      return x.on(\"change\", setScrollX);\n    }, [x, overdragX, scheduleUpdateScrollListeners, overdragEnabled]);\n    useIsomorphicLayoutEffect2(() => {\n      const setScrollY = (yValue) => {\n        const element = containerRef.current;\n        if (!(element instanceof HTMLDivElement))\n          return;\n        element.scrollTop = -yValue;\n        const constraints = measuredConstraints.current;\n        if (constraints && overdragEnabled) {\n          let overdragYValue = 0;\n          if (yValue > constraints.bottom)\n            overdragYValue = yValue;\n          if (yValue < constraints.top)\n            overdragYValue = yValue - constraints.top;\n          overdragY.set(overdragYValue);\n        }\n        scheduleUpdateScrollListeners();\n      };\n      const currentY = y.get();\n      if (currentY !== 0)\n        setScrollY(currentY);\n      return y.on(\"change\", setScrollY);\n    }, [y, overdragY, scheduleUpdateScrollListeners, overdragEnabled]);\n    const nativeOnScroll = React54.useCallback(() => {\n      const element = containerRef.current;\n      if (!(element instanceof HTMLDivElement))\n        return;\n      const xDelta = Math.abs(x.get() + element.scrollLeft);\n      const yDelta = Math.abs(y.get() + element.scrollTop);\n      if (xDelta > 1)\n        x.set(-element.scrollLeft);\n      if (yDelta > 1)\n        y.set(-element.scrollTop);\n    }, [x, y]);\n    const isEmpty2 = React54.Children.count(children) === 0;\n    const width = direction !== \"vertical\" && !isEmpty2 ? \"auto\" : \"100%\";\n    const height = direction !== \"horizontal\" && !isEmpty2 ? \"auto\" : \"100%\";\n    const size2 = !containerProps.__fromCanvasComponent ? {\n      width: containerProps.__fromCodeComponentNode ? \"100%\" : containerProps.width,\n      height: containerProps.__fromCodeComponentNode ? \"100%\" : containerProps.height\n    } : {};\n    return /* @__PURE__ */ React54.createElement(\n      FrameWithMotion,\n      {\n        \"data-framer-component-type\": \"Scroll\",\n        background: \"none\",\n        ...containerProps,\n        ...size2,\n        style: {\n          ...style,\n          willChange: isPreview ? \"transform\" : void 0,\n          // allows the scroll content to be hardware accelerated\n          overflow: \"hidden\"\n        },\n        onScroll: nativeOnScroll,\n        preserve3d: containerProps.preserve3d,\n        ref: containerRef,\n        layoutId,\n        layoutScroll: true,\n        onBeforeLayoutMeasure: measureAndUpdateScrollOffset\n      },\n      /* @__PURE__ */ React54.createElement(\n        FrameWithMotion,\n        {\n          \"data-framer-component-type\": \"ScrollContentWrapper\",\n          animate: scrollAnimate,\n          drag: dragEnabled && convertScrollDirectionToDrag(direction),\n          dragDirectionLock: directionLock,\n          dragElastic,\n          dragMomentum,\n          dragTransition,\n          dragConstraints: containerRef,\n          dragControls,\n          onDragStart: onMotionDragStart,\n          onDrag,\n          onDragEnd,\n          onDragTransitionEnd: onMotionDragTransitionEnd,\n          onDirectionLock,\n          onMeasureDragConstraints: setMeasureDragConstraints,\n          width,\n          height,\n          _dragX: x,\n          _dragY: y,\n          position: \"relative\",\n          x: overdragEnabled ? overdragX : void 0,\n          y: overdragEnabled ? overdragY : void 0,\n          ref: contentRef,\n          style: {\n            display: isEmpty2 ? \"block\" : \"inline-block\",\n            willChange: isPreview ? \"transform\" : void 0,\n            // makes the scroll content hardware accelerated\n            backgroundColor: \"transparent\",\n            overflow: \"visible\",\n            minWidth: \"100%\",\n            minHeight: \"100%\"\n          },\n          preserve3d: containerProps.preserve3d\n        },\n        /* @__PURE__ */ React54.createElement(\n          EmptyState,\n          {\n            children,\n            size: {\n              width: isFiniteNumber(containerProps.width) ? containerProps.width : \"100%\",\n              height: isFiniteNumber(containerProps.height) ? containerProps.height : \"100%\"\n            },\n            insideUserCodeComponent: !containerProps.__fromCodeComponentNode,\n            title: \"Scroll\",\n            description: \"Click and drag the connector to any frame on the canvas \\u2192\"\n          }\n        ),\n        useUpdateChildSize({\n          dragDirection: direction,\n          children,\n          fromCanvasComponent: containerProps.__fromCanvasComponent\n        })\n      )\n    );\n  }\n);\nfunction offsetToZero({ top, left, right, bottom }) {\n  const width = right - left;\n  const height = bottom - top;\n  return {\n    top: -height,\n    left: -width,\n    right: 0,\n    bottom: 0\n  };\n}\n\n// ../../library/src/components/Scroll/NativeScroll.tsx\nimport React56 from \"react\";\n\n// ../../library/src/modules/cx.ts\nfunction cx(...classNames) {\n  return classNames.filter(Boolean).join(\" \");\n}\n\n// ../../library/src/components/utils/useEmulatedTouchScroll.ts\nimport React55, { useEffect as useEffect7 } from \"react\";\n\n// ../../library/src/components/utils/animatePointWithInertia.ts\nfunction isRunningAnimation(...phases) {\n  let runningAny = false;\n  let cancelledAny = false;\n  phases.forEach((phase) => {\n    runningAny = runningAny || phase === 1 /* Running */;\n    cancelledAny = cancelledAny || phase === 3 /* Cancelled */;\n  });\n  return runningAny && !cancelledAny;\n}\nfunction didFinishAnimations(...phases) {\n  return phases.every((phase) => phase === 0 /* None */ || phase === 2 /* Completed */);\n}\nvar timeConstant = 400;\nfunction animatePointWithInertia({\n  from,\n  velocity,\n  onUpdate,\n  onComplete,\n  onStop\n}) {\n  const latest = from;\n  let animationPhaseX = 0 /* None */;\n  let animationPhaseY = 0 /* None */;\n  const animations2 = [];\n  const updateHandler = () => {\n    if (isRunningAnimation(animationPhaseX, animationPhaseY)) {\n      onUpdate(latest);\n    }\n  };\n  const completionHandler = () => {\n    if (didFinishAnimations(animationPhaseX, animationPhaseY)) {\n      onComplete();\n    }\n  };\n  if (velocity.x) {\n    animationPhaseX = 1 /* Running */;\n    animations2.push(\n      animateValue({\n        keyframes: [from.x],\n        velocity: -velocity.x,\n        timeConstant,\n        onUpdate: (value) => {\n          latest.x = value;\n          frame.update(updateHandler, false, true);\n        },\n        onComplete: () => {\n          if (animationPhaseX !== 1 /* Running */) {\n            throw Error(\"animation x should be running when completing\");\n          }\n          animationPhaseX = 2 /* Completed */;\n          completionHandler();\n        }\n      })\n    );\n  }\n  if (velocity.y) {\n    animationPhaseY = 1 /* Running */;\n    animations2.push(\n      animateValue({\n        keyframes: [from.y],\n        velocity: -velocity.y,\n        timeConstant,\n        onUpdate: (value) => {\n          latest.y = value;\n          frame.update(updateHandler, false, true);\n        },\n        onComplete: () => {\n          if (animationPhaseY !== 1 /* Running */) {\n            throw Error(\"animation y should be running when completing\");\n          }\n          animationPhaseY = 2 /* Completed */;\n          completionHandler();\n        }\n      })\n    );\n  }\n  if (!isRunningAnimation(animationPhaseX, animationPhaseY)) {\n    completionHandler();\n  }\n  return {\n    stop: () => {\n      if (!isRunningAnimation(animationPhaseX, animationPhaseY))\n        return;\n      animations2.forEach((animation) => animation.stop());\n      animationPhaseX = animationPhaseX === 1 /* Running */ ? 3 /* Cancelled */ : animationPhaseX;\n      animationPhaseY = animationPhaseY === 1 /* Running */ ? 3 /* Cancelled */ : animationPhaseY;\n      onStop();\n    }\n  };\n}\n\n// ../../library/src/components/utils/useEmulatedTouchScroll.ts\nvar scrollThreshold = 3;\nvar isTouchDevice = /* @__PURE__ */ isTouch();\nvar isSafariBrowser = /* @__PURE__ */ isSafari();\nfunction getTouchAction(element) {\n  if (!(element instanceof HTMLElement))\n    return null;\n  return element.style.touchAction;\n}\nfunction canPanInDirection(element, direction) {\n  switch (direction) {\n    case \"horizontal\":\n      return getTouchAction(element) === \"pan-x\";\n    case \"vertical\":\n      return getTouchAction(element) === \"pan-y\";\n    default:\n      return false;\n  }\n}\nfunction isInteractiveElement(element) {\n  const tag = element.tagName.toLowerCase();\n  if (tag === \"input\")\n    return true;\n  if (tag === \"text\")\n    return true;\n  if (tag === \"textarea\")\n    return true;\n  return false;\n}\nfunction canStartScrollFromElement(element, direction) {\n  if (!(element instanceof Element))\n    return false;\n  if (isInteractiveElement(element))\n    return false;\n  if (element.hasAttribute(\"draggable\")) {\n    if (!canPanInDirection(element, direction)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction getEventPoint(event) {\n  return {\n    x: event.pageX,\n    y: event.pageY\n  };\n}\nfunction setPointerEvents(element, value) {\n  if (element == null ? void 0 : element.style) {\n    element.style[\"pointerEvents\"] = value;\n  }\n}\nfunction getPointerEvents(element) {\n  var _a;\n  return (_a = element == null ? void 0 : element.style) == null ? void 0 : _a[\"pointerEvents\"];\n}\nvar emptyObject = {};\nObject.freeze(emptyObject);\nfunction useEmulateTouchScroll(ref, direction, enabled) {\n  if (isTouchDevice)\n    return emptyObject;\n  if (RenderTarget.current() !== \"PREVIEW\" /* preview */)\n    return emptyObject;\n  const scrollAnimationControlsRef = React55.useRef(null);\n  useEffect7(() => {\n    if (!ref.current)\n      return;\n    const element = ref.current;\n    let phase = 0 /* Idle */;\n    let targets = null;\n    let downPoint = null;\n    let scrollOffsetStart = null;\n    let mouseMoveEvents = [];\n    function onMouseMove(event) {\n      var _a;\n      switch (phase) {\n        case 0 /* Idle */:\n        case 4 /* DragAnimation */:\n        case 3 /* DragLocked */:\n          return;\n      }\n      if (event.metaKey)\n        return;\n      const point = getEventPoint(event);\n      if (!downPoint)\n        return;\n      const offset = Point.subtract(point, downPoint);\n      if (phase === 1 /* TouchDown */ || phase === 5 /* Interrupted */) {\n        const deltaX = Math.abs(offset.x);\n        const deltaY = Math.abs(offset.y);\n        if ((deltaX > scrollThreshold || deltaY > scrollThreshold) && deltaX !== deltaY) {\n          const scrollDirection = deltaX > deltaY ? \"horizontal\" : \"vertical\";\n          const shouldIgnoreBecauseOfDirectionLock = direction === \"horizontal\" && scrollDirection === \"vertical\" || direction === \"vertical\" && scrollDirection === \"horizontal\";\n          if (shouldIgnoreBecauseOfDirectionLock) {\n            phase = 3 /* DragLocked */;\n            return;\n          }\n          phase = 2 /* Drag */;\n          targets == null ? void 0 : targets.forEach(([target]) => setPointerEvents(target, \"none\"));\n        }\n      }\n      if (isSafariBrowser)\n        event.preventDefault();\n      if (phase !== 2 /* Drag */)\n        return;\n      (_a = safeWindow.getSelection()) == null ? void 0 : _a.empty();\n      mouseMoveEvents = getRecentEvents([...mouseMoveEvents, event]);\n      if (scrollOffsetStart) {\n        if (direction !== \"vertical\")\n          element.scrollLeft = scrollOffsetStart.x - offset.x;\n        if (direction !== \"horizontal\")\n          element.scrollTop = scrollOffsetStart.y - offset.y;\n      }\n    }\n    function onMouseUp(event) {\n      safeWindow.removeEventListener(\"mousemove\", onMouseMove, false);\n      safeWindow.removeEventListener(\"mouseup\", onMouseUp);\n      if (phase === 2 /* Drag */ && targets) {\n        targets.forEach(\n          ([target, originalPointerEventsValue]) => setPointerEvents(target, originalPointerEventsValue || \"auto\")\n        );\n      }\n      targets = null;\n      const velocity = calculateVelocity({ mouseMoveEvents, mouseUpEvent: event });\n      downPoint = null;\n      if (phase === 2 /* Drag */) {\n        const shouldAnimateY = direction !== \"horizontal\" && velocity.y !== 0;\n        const shouldAnimateX = direction !== \"vertical\" && velocity.x !== 0;\n        if (!shouldAnimateY && !shouldAnimateX) {\n          phase = 0 /* Idle */;\n          return;\n        }\n        phase = 4 /* DragAnimation */;\n        scrollAnimationControlsRef.current = animatePointWithInertia({\n          from: { x: element.scrollLeft, y: element.scrollTop },\n          velocity: {\n            x: shouldAnimateX ? velocity.x : 0,\n            y: shouldAnimateY ? velocity.y : 0\n          },\n          onUpdate: (position) => {\n            if (shouldAnimateX)\n              element.scrollLeft = position.x;\n            if (shouldAnimateY)\n              element.scrollTop = position.y;\n          },\n          onStop: () => {\n            if (phase !== 5 /* Interrupted */) {\n              phase = 0 /* Idle */;\n            }\n            scrollAnimationControlsRef.current = null;\n          },\n          onComplete: () => {\n            if (phase !== 4 /* DragAnimation */) {\n              throw Error(\"On animation completion we should still be in the animation phase\");\n            }\n            phase = 0 /* Idle */;\n            scrollAnimationControlsRef.current = null;\n          }\n        });\n      } else {\n        phase = 0 /* Idle */;\n      }\n    }\n    function onMouseWheel() {\n      var _a;\n      (_a = scrollAnimationControlsRef.current) == null ? void 0 : _a.stop();\n    }\n    function onMouseDown(event) {\n      var _a;\n      if (!enabled)\n        return;\n      if (event.metaKey)\n        return;\n      if (!canStartScrollFromElement(event.target, direction)) {\n        if (phase === 4 /* DragAnimation */) {\n          phase = 0 /* Idle */;\n          (_a = scrollAnimationControlsRef.current) == null ? void 0 : _a.stop();\n        }\n        return;\n      }\n      const previousPhase = phase;\n      phase = previousPhase === 4 /* DragAnimation */ ? 5 /* Interrupted */ : 1 /* TouchDown */;\n      downPoint = getEventPoint(event);\n      targets = document.elementsFromPoint(downPoint.x, downPoint.y).filter(\n        (targetEl) => targetEl instanceof HTMLElement || targetEl instanceof SVGElement\n      ).map((targetEl) => [targetEl, getPointerEvents(targetEl)]);\n      scrollOffsetStart = { x: element.scrollLeft, y: element.scrollTop };\n      mouseMoveEvents = [];\n      if (scrollAnimationControlsRef.current) {\n        if (previousPhase !== 4 /* DragAnimation */) {\n          throw Error(\"When stopping a drag animation we need to be animating\");\n        }\n        scrollAnimationControlsRef.current.stop();\n      }\n      safeWindow.addEventListener(\"mousemove\", onMouseMove);\n      safeWindow.addEventListener(\"mouseup\", onMouseUp);\n      element.addEventListener(\"mousewheel\", onMouseWheel);\n    }\n    element.addEventListener(\"mousedown\", onMouseDown);\n    return () => {\n      var _a;\n      element.removeEventListener(\"mousedown\", onMouseDown);\n      element.removeEventListener(\"mousewheel\", onMouseWheel);\n      safeWindow.removeEventListener(\"mousemove\", onMouseMove);\n      safeWindow.removeEventListener(\"mouseup\", onMouseUp);\n      phase = 5 /* Interrupted */;\n      (_a = scrollAnimationControlsRef.current) == null ? void 0 : _a.stop();\n    };\n  }, [ref, direction, enabled]);\n  return React55.useMemo(() => {\n    return {\n      cancelEmulatedTouchScrollAnimation: () => {\n        var _a;\n        (_a = scrollAnimationControlsRef.current) == null ? void 0 : _a.stop();\n      }\n    };\n  }, []);\n}\nvar timeDelta = 4 / 60 * 1e3;\nfunction getRecentEvents(events2) {\n  const currentTime = new CustomEvent(\"getTime\").timeStamp;\n  const maxAge = currentTime - timeDelta;\n  return events2.filter((event) => event.timeStamp > maxAge);\n}\nvar zeroPoint = { x: 0, y: 0 };\nfunction calculateVelocity({\n  mouseMoveEvents,\n  mouseUpEvent\n}) {\n  const recentMouseMoveEvents = getRecentEvents(mouseMoveEvents);\n  const oldestMouseMoveEvent = recentMouseMoveEvents[0];\n  if (!oldestMouseMoveEvent)\n    return zeroPoint;\n  const deltaX = mouseUpEvent.clientX - oldestMouseMoveEvent.clientX;\n  const deltaY = mouseUpEvent.clientY - oldestMouseMoveEvent.clientY;\n  const time2 = mouseUpEvent.timeStamp - oldestMouseMoveEvent.timeStamp;\n  if (time2 === 0)\n    return zeroPoint;\n  return {\n    x: deltaX / time2 * 1e3,\n    y: deltaY / time2 * 1e3\n  };\n}\n\n// ../../library/src/components/utils/useUpdateScrollOffset.ts\nfunction useUpdateScrollOffset(ref, side, offset, cancelEmulatedTouchScrollAnimation) {\n  useIsomorphicLayoutEffect2(\n    () => {\n      if (isMotionValue2(offset)) {\n        const updateScrollLeft = () => {\n          cancelEmulatedTouchScrollAnimation == null ? void 0 : cancelEmulatedTouchScrollAnimation();\n          const element = ref.current;\n          if (element)\n            element[side] = Math.abs(offset.get());\n        };\n        updateScrollLeft();\n        return offset.on(\"change\", updateScrollLeft);\n      } else if (isFiniteNumber(offset)) {\n        const element = ref.current;\n        if (!element)\n          return;\n        cancelEmulatedTouchScrollAnimation == null ? void 0 : cancelEmulatedTouchScrollAnimation();\n        element[side] = Math.abs(offset);\n      }\n    },\n    // We only want to update on contentOffset changes\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [offset]\n  );\n}\n\n// ../../library/src/components/Scroll/NativeScroll.tsx\nvar NativeScroll = /* @__PURE__ */ React56.forwardRef(function NativeScroll2(props, forwardedRef) {\n  const {\n    direction = \"vertical\",\n    scrollBarVisible = false,\n    dragEnabled = true,\n    contentOffsetX = 0,\n    contentOffsetY = 0,\n    contentWidth,\n    contentHeight,\n    children,\n    resetOffset,\n    onScroll,\n    className,\n    // Not (yet) supported\n    directionLock = false,\n    wheelEnabled = true,\n    scrollAnimate,\n    dragTransition,\n    dragMomentum,\n    dragElastic,\n    overdragEnabled = true,\n    onScrollStart,\n    onScrollEnd,\n    onDragStart,\n    onDrag,\n    onDragEnd,\n    onUpdate,\n    onDirectionLock,\n    layoutId: specificLayoutId,\n    native,\n    // Rest\n    ...containerProps\n  } = props;\n  const layoutId = useLayoutId(props, { specificLayoutId, postfix: \"scroll\" });\n  const fallbackRef = React56.useRef(null);\n  const ref = forwardedRef || fallbackRef;\n  const { cancelEmulatedTouchScrollAnimation } = useEmulateTouchScroll(ref, direction, dragEnabled);\n  injectComponentCSSRules();\n  const isInTarget = useIsInCurrentNavigationTarget();\n  const previousIsInTargetRef = React56.useRef(isInTarget);\n  const updateScrollOffsetHandler = () => {\n    if (!resetOffset)\n      return;\n    const previousIsTarget = previousIsInTargetRef.current;\n    previousIsInTargetRef.current = isInTarget;\n    const shouldResetOffset = isInTarget && !previousIsTarget;\n    if (!shouldResetOffset)\n      return;\n    const element = ref.current;\n    if (!element)\n      return;\n    if (direction !== \"vertical\") {\n      cancelEmulatedTouchScrollAnimation == null ? void 0 : cancelEmulatedTouchScrollAnimation();\n      element.scrollLeft = Math.abs(isMotionValue2(contentOffsetX) ? contentOffsetX.get() : contentOffsetX);\n    }\n    if (direction !== \"horizontal\") {\n      cancelEmulatedTouchScrollAnimation == null ? void 0 : cancelEmulatedTouchScrollAnimation();\n      element.scrollTop = Math.abs(isMotionValue2(contentOffsetY) ? contentOffsetY.get() : contentOffsetY);\n    }\n  };\n  useIsomorphicLayoutEffect2(updateScrollOffsetHandler, [isInTarget]);\n  useUpdateScrollOffset(ref, \"scrollLeft\", contentOffsetX, cancelEmulatedTouchScrollAnimation);\n  useUpdateScrollOffset(ref, \"scrollTop\", contentOffsetY, cancelEmulatedTouchScrollAnimation);\n  const size2 = !containerProps.__fromCanvasComponent ? {\n    width: containerProps.__fromCodeComponentNode ? \"100%\" : containerProps.width,\n    height: containerProps.__fromCodeComponentNode ? \"100%\" : containerProps.height\n  } : {};\n  return /* @__PURE__ */ React56.createElement(\n    FrameWithMotion,\n    {\n      ref,\n      \"data-framer-component-type\": \"NativeScroll\",\n      background: \"none\",\n      ...containerProps,\n      ...size2,\n      onScroll,\n      layoutId,\n      onBeforeLayoutMeasure: updateScrollOffsetHandler,\n      layoutScroll: true,\n      className: cx(className, `direction-${direction}`, !scrollBarVisible && \"scrollbar-hidden\")\n    },\n    /* @__PURE__ */ React56.createElement(\n      EmptyState,\n      {\n        children,\n        size: {\n          width: isFiniteNumber(containerProps.width) ? containerProps.width : \"100%\",\n          height: isFiniteNumber(containerProps.height) ? containerProps.height : \"100%\"\n        },\n        insideUserCodeComponent: !containerProps.__fromCodeComponentNode,\n        title: \"Scroll\",\n        description: \"Click and drag the connector to any frame on the canvas \\u2192\"\n      }\n    ),\n    children\n  );\n});\n\n// ../../library/src/components/Scroll/Scroll.tsx\nvar Scroll = /* @__PURE__ */ (() => {\n  const ScrollInner = React57.forwardRef(function ScrollInner2(props, forwardedRef) {\n    if (props.native) {\n      return /* @__PURE__ */ React57.createElement(NativeScroll, { ref: forwardedRef, ...props });\n    } else {\n      return /* @__PURE__ */ React57.createElement(EmulatedScroll, { ref: forwardedRef, ...props });\n    }\n  });\n  ScrollInner.defaultProps = {\n    directionLock: false\n  };\n  addPropertyControls(ScrollInner, {\n    native: {\n      type: \"boolean\" /* Boolean */,\n      defaultValue: false\n    },\n    direction: {\n      type: \"segmentedenum\" /* SegmentedEnum */,\n      title: \"Direction\",\n      options: [\"vertical\", \"horizontal\", \"both\"],\n      defaultValue: \"vertical\"\n    },\n    contentOffsetX: {\n      type: \"number\" /* Number */,\n      title: \"Offset X\",\n      defaultValue: 0,\n      min: 0,\n      step: 10,\n      displayStepper: true,\n      hidden: ({ direction }) => direction === \"vertical\"\n    },\n    contentOffsetY: {\n      type: \"number\" /* Number */,\n      title: \"Offset Y\",\n      defaultValue: 0,\n      min: 0,\n      step: 10,\n      displayStepper: true,\n      hidden: ({ direction }) => direction === \"horizontal\"\n    },\n    directionLock: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Lock\",\n      enabledTitle: \"1 Axis\",\n      disabledTitle: \"Off\",\n      defaultValue: true,\n      hidden: ({ native }) => native === true\n    },\n    dragEnabled: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Drag\",\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      defaultValue: true\n    },\n    overdragEnabled: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Overdrag\",\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      defaultValue: true,\n      hidden: ({ native }) => native === true\n    },\n    wheelEnabled: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Wheel\",\n      enabledTitle: \"On\",\n      disabledTitle: \"Off\",\n      defaultValue: true,\n      hidden: ({ native }) => native === true\n    },\n    scrollBarVisible: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Scroll Bar\",\n      enabledTitle: \"Visible\",\n      disabledTitle: \"Hidden\",\n      defaultValue: false,\n      hidden: ({ native }) => native === false\n    },\n    resetOffset: {\n      type: \"boolean\" /* Boolean */,\n      title: \"Reset\",\n      defaultValue: false\n    }\n  });\n  ScrollInner.supportsConstraints = true;\n  return ScrollInner;\n})();\n\n// ../../library/src/components/useNavigation.ts\nimport { useContext as useContext9 } from \"react\";\nfunction useNavigation() {\n  return useContext9(NavigationContext);\n}\n\n// ../../library/src/data/Data.ts\nvar data = /* @__PURE__ */ (() => {\n  function Data2(initial = {}) {\n    const _data = ObservableObject(initial, false, false);\n    Data2.addData(_data);\n    return _data;\n  }\n  Data2._stores = [];\n  Data2.addData = (_data) => {\n    Data2._stores.push(_data);\n  };\n  Data2.reset = () => {\n    Data2._stores.forEach((target) => ObservableObject.resetObject(target));\n  };\n  Data2.addObserver = (target, observer) => {\n    return ObservableObject.addObserver(target, observer);\n  };\n  return Data2;\n})();\nvar Data = data;\n\n// ../../library/src/data/PropertyStore.ts\nvar PropertyStore = /* @__PURE__ */ (() => {\n  function PropertyStore2(initial = {}, makeAnimatables = false) {\n    deprecationWarning(\"PropertyStore\", \"1.0.0\", \"Data() or ObservableObject()\");\n    return ObservableObject(initial, makeAnimatables);\n  }\n  PropertyStore2.addObserver = (target, observer) => {\n    return ObservableObject.addObserver(target, observer);\n  };\n  return PropertyStore2;\n})();\n\n// ../../library/src/data/useData/index.ts\nimport { createContext as createContext3, useContext as useContext10, useEffect as useEffect8, useMemo as useMemo4, useState } from \"react\";\n\n// ../../library/src/data/useData/store.ts\nfunction bindActionsToStore(get, set, actions) {\n  const boundActions = {};\n  for (const key7 in actions) {\n    const action = actions[key7];\n    if (!action)\n      continue;\n    boundActions[key7] = (data2) => set(action(get(), data2));\n  }\n  return boundActions;\n}\nfunction createStore(initialState2, unboundActions) {\n  let state = initialState2;\n  let version2 = 0;\n  const subscribers = /* @__PURE__ */ new Set();\n  const notifySubscriber = (sub) => sub(version2);\n  const get = () => state;\n  const set = (latestState) => {\n    version2++;\n    state = latestState;\n    subscribers.forEach(notifySubscriber);\n  };\n  const actions = unboundActions ? bindActionsToStore(get, set, unboundActions) : set;\n  return {\n    get,\n    set,\n    getVersion: () => version2,\n    getActions: () => actions,\n    subscribe: (sub) => {\n      subscribers.add(sub);\n      return () => subscribers.delete(sub);\n    }\n  };\n}\n\n// ../../library/src/data/useData/index.ts\nvar defaultId = /* @__PURE__ */ Symbol(\"default\");\nvar DataContext = /* @__PURE__ */ createContext3(defaultId);\nfunction createData(defaultState2, actions) {\n  const stores = /* @__PURE__ */ new Map();\n  const useData2 = (id, initialState2) => {\n    const contextId = useContext10(DataContext);\n    id = id || contextId;\n    const store = useMemo4(() => {\n      if (!stores.has(id)) {\n        stores.set(id, createStore(initialState2 || defaultState2, actions));\n      }\n      return stores.get(id);\n    }, [id]);\n    const [, notifyUpdates] = useState(store.getVersion());\n    const storeValueAtHookCallTime = useMemo4(() => store.get(), [store]);\n    useEffect8(() => {\n      const unsubscribe = store.subscribe(notifyUpdates);\n      if (storeValueAtHookCallTime !== store.get())\n        notifyUpdates(store.getVersion());\n      return unsubscribe;\n    }, [store, storeValueAtHookCallTime]);\n    return [store.get(), store.getActions()];\n  };\n  return useData2;\n}\n\n// ../../library/src/deprecated/DataObserver.tsx\nimport React58, { Component as Component10 } from \"react\";\nvar initialState = { update: 0 };\nvar DataObserverContext = /* @__PURE__ */ React58.createContext({ update: NaN });\nfunction useObserveData() {\n  const context = React58.useContext(DataObserverContext);\n  return !isNaN(context.update);\n}\nvar DataObserver = class extends Component10 {\n  constructor() {\n    super(...arguments);\n    this.observers = [];\n    this.state = initialState;\n    this.taskAdded = false;\n    this.frameTask = () => {\n      this.setState({ update: this.state.update + 1 });\n      this.taskAdded = false;\n    };\n    this.observer = () => {\n      if (this.taskAdded)\n        return;\n      this.taskAdded = true;\n      MainLoop.addFrameTask(this.frameTask);\n    };\n  }\n  componentWillUnmount() {\n    this.observers.map((cancel) => cancel());\n    Data.reset();\n  }\n  render() {\n    const { children } = this.props;\n    this.observers.map((cancel) => cancel());\n    this.observers = [];\n    Data._stores.forEach((d) => {\n      const observer = Data.addObserver(d, this.observer);\n      this.observers.push(observer);\n    });\n    return /* @__PURE__ */ React58.createElement(DataObserverContext.Provider, { value: { ...this.state } }, children);\n  }\n};\n\n// ../../library/src/deprecated/WithOverride.tsx\nvar import_hoist_non_react_statics4 = __toESM(require_hoist_non_react_statics_cjs(), 1);\nimport React59, { useContext as useContext11 } from \"react\";\n\n// ../../library/src/deprecated/convertColorProps.ts\nfunction convertColorObject(prop) {\n  if (typeof prop === \"string\" || isMotionValue2(prop)) {\n    return prop;\n  } else if (LinearGradient.isLinearGradient(prop)) {\n    return LinearGradient.toCSS(prop);\n  } else if (RadialGradient.isRadialGradient(prop)) {\n    return RadialGradient.toCSS(prop);\n  } else if (Color.isColorObject(prop)) {\n    return Color.toRgbString(prop);\n  }\n  return prop;\n}\nfunction convertColorProps(props) {\n  if (props.background || props.color) {\n    const converted = Object.assign({}, props);\n    if (props.background) {\n      converted.background = convertColorObject(props.background);\n    }\n    if (props.color) {\n      converted.color = convertColorObject(props.color);\n    }\n    return converted;\n  }\n  return props;\n}\n\n// ../../library/src/deprecated/WithOverride.tsx\nfunction WithOverride(Component14, override) {\n  const useOverride = typeof override === \"function\" ? (props) => override(convertColorProps(props)) : () => convertColorProps(override);\n  const ComponentWithOverride = function(props) {\n    useContext11(DataObserverContext);\n    const overrideProps = useOverride(props);\n    const { style, ...rest } = props;\n    return /* @__PURE__ */ React59.createElement(Component14, { ...rest, ...overrideProps, _initialStyle: style });\n  };\n  (0, import_hoist_non_react_statics4.default)(ComponentWithOverride, Component14);\n  ComponentWithOverride[\"displayName\"] = `WithOverride(${Component14.displayName || Component14.name})`;\n  return ComponentWithOverride;\n}\n\n// ../../library/src/modules/withFX.tsx\nimport React67 from \"react\";\n\n// ../../library/src/modules/hocOptions.ts\nvar prefix = \"__framer__\";\nvar prefixLength = prefix.length;\nfunction extractPrefixedProps(props, keys3) {\n  const result = {};\n  const rest = {};\n  for (const key7 in props) {\n    const strippedKey = stripPrefixFromPrefixedKey(key7);\n    if (strippedKey && keys3.has(strippedKey)) {\n      result[strippedKey] = props[key7];\n      continue;\n    }\n    rest[key7] = props[key7];\n  }\n  return [result, rest];\n}\nfunction stripPrefixFromPrefixedKey(key7) {\n  if (key7.startsWith(prefix)) {\n    return key7.substr(prefixLength);\n  }\n  return void 0;\n}\n\n// ../../library/src/modules/useLoopEffect.ts\nimport React61, { useCallback as useCallback7, useEffect as useEffect9, useRef as useRef10 } from \"react\";\n\n// ../../library/src/modules/useFXValues.ts\nimport React60 from \"react\";\nvar effectValuesKeys = [\n  \"opacity\",\n  \"x\",\n  \"y\",\n  \"scale\",\n  \"rotate\",\n  \"rotateX\",\n  \"rotateY\",\n  \"transformPerspective\"\n];\nvar makeFXValues = (defaults) => {\n  var _a, _b, _c, _d, _e, _f, _g, _h;\n  return {\n    x: motionValue((_a = defaults == null ? void 0 : defaults.x) != null ? _a : 0),\n    y: motionValue((_b = defaults == null ? void 0 : defaults.y) != null ? _b : 0),\n    opacity: motionValue((_c = defaults == null ? void 0 : defaults.opacity) != null ? _c : 1),\n    scale: motionValue((_d = defaults == null ? void 0 : defaults.scale) != null ? _d : 1),\n    rotate: motionValue((_e = defaults == null ? void 0 : defaults.rotate) != null ? _e : 0),\n    rotateX: motionValue((_f = defaults == null ? void 0 : defaults.rotateX) != null ? _f : 0),\n    rotateY: motionValue((_g = defaults == null ? void 0 : defaults.rotateY) != null ? _g : 0),\n    transformPerspective: motionValue((_h = defaults == null ? void 0 : defaults.transformPerspective) != null ? _h : 0)\n  };\n};\nvar defaultFXValues = {\n  x: 0,\n  y: 0,\n  scale: 1,\n  opacity: 1,\n  transformPerspective: 0,\n  rotate: 0,\n  rotateX: 0,\n  rotateY: 0\n};\nfunction useFXValues(values, enabled) {\n  const effect = useConstant(() => ({ values: makeFXValues(enabled ? values : void 0) }));\n  React60.useEffect(() => {\n    if (enabled)\n      return;\n    for (const key7 of effectValuesKeys) {\n      const value = defaultFXValues[key7];\n      if (isUndefined(value))\n        continue;\n      effect.values[key7].set(value);\n    }\n  }, [effect, enabled]);\n  return effect;\n}\n\n// ../../library/src/modules/useLoopEffect.ts\nvar loopOptionsKeys = /* @__PURE__ */ new Set([\n  \"loopEffectEnabled\",\n  \"loopTransition\",\n  \"loop\",\n  \"loopRepeatType\",\n  \"loopRepeatDelay\"\n]);\nvar useDelay = () => {\n  const timeoutRef = useRef10();\n  useEffect9(() => {\n    return () => {\n      clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  return async (d) => new Promise((resolve) => {\n    timeoutRef.current = setTimeout(() => {\n      resolve(true);\n    }, d * 1e3);\n  });\n};\nfunction useLoop({\n  loopEffectEnabled,\n  loopRepeatDelay,\n  loopTransition,\n  loopRepeatType,\n  loop\n}) {\n  const shouldReduceMotion = useReducedMotionConfig();\n  const effect = useConstant(() => ({ values: makeFXValues() }));\n  const mirrorStateRef = React61.useRef(false);\n  const delay2 = useDelay();\n  const animateValues = async () => {\n    if (!loop)\n      return;\n    const transition = loopTransition || void 0;\n    const mirror = mirrorStateRef.current && loopRepeatType === \"mirror\";\n    const to = mirror ? defaultFXValues : loop;\n    const from = mirror ? loop : defaultFXValues;\n    mirrorStateRef.current = !mirrorStateRef.current;\n    return Promise.all(\n      effectValuesKeys.map((key7) => {\n        var _a;\n        if (shouldReduceMotion && key7 !== \"opacity\")\n          return;\n        effect.values[key7].set((_a = from[key7]) != null ? _a : defaultFXValues[key7]);\n        return new Promise((resolve) => {\n          var _a2;\n          const opts = {\n            ...transition,\n            onComplete: () => resolve()\n          };\n          animate(effect.values[key7], (_a2 = to[key7]) != null ? _a2 : from[key7], opts);\n        });\n      })\n    );\n  };\n  const start = async () => {\n    if (!loopEffectEnabled)\n      return;\n    await animateValues();\n    await delay2(loopRepeatDelay != null ? loopRepeatDelay : 0);\n    await start();\n  };\n  const stop = useCallback7(() => {\n    effectValuesKeys.forEach((key7) => {\n      effect.values[key7].stop();\n    });\n    effectValuesKeys.forEach((key7) => {\n      effect.values[key7].set(defaultFXValues[key7]);\n    });\n    mirrorStateRef.current = false;\n  }, [effect]);\n  React61.useEffect(() => {\n    if (loopEffectEnabled && loop) {\n      start();\n    } else {\n      stop();\n    }\n    return () => stop();\n  }, [loopEffectEnabled]);\n  return effect;\n}\n\n// ../../library/src/modules/useParallax.ts\nimport React62 from \"react\";\n\n// ../../library/src/modules/parallaxTransform.ts\nfunction parallaxTransform(scrollY, originalPosition, speed, offset, adjustPosition) {\n  const speedFactor = speed / 100 - 1;\n  const initialPosition = adjustPosition ? (originalPosition - offset) * speedFactor : 0;\n  const scrollOffset = -scrollY * speedFactor;\n  return initialPosition + scrollOffset;\n}\n\n// ../../library/src/modules/useParallax.ts\nvar parallaxOptionsKeys = /* @__PURE__ */ new Set([\n  \"speed\",\n  \"adjustPosition\",\n  \"offset\",\n  \"parallaxTransformEnabled\"\n]);\nfunction useParallax(options, ref, visibilityStyle) {\n  const { speed = 100, offset = 0, adjustPosition = false, parallaxTransformEnabled } = options;\n  const originalPosition = React62.useRef(null);\n  const shouldReduceMotion = useReducedMotionConfig();\n  const transform2 = React62.useCallback(\n    (yValue) => {\n      if (originalPosition.current === null)\n        return 0;\n      if (speed === 100)\n        return 0;\n      return parallaxTransform(yValue, originalPosition.current, speed, offset, adjustPosition);\n    },\n    [originalPosition, speed, offset, adjustPosition]\n  );\n  React62.useLayoutEffect(() => {\n    frame.read(() => {\n      var _a, _b, _c;\n      originalPosition.current = (_c = (_b = (_a = ref.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.top) != null ? _c : 0;\n    });\n    frame.update(() => {\n      parallaxY.set(transform2(scrollY.get()));\n      if (adjustPosition) {\n        visibility.set(visibilityStyle != null ? visibilityStyle : \"initial\");\n      }\n    });\n  }, [ref, originalPosition, adjustPosition]);\n  const { scrollY } = useScroll();\n  const parallaxY = useTransform(scrollY, transform2);\n  const visibility = useMotionValue(adjustPosition && originalPosition.current === null ? \"hidden\" : visibilityStyle);\n  const defaultValue = useMotionValue(0);\n  return {\n    values: {\n      y: shouldReduceMotion || !parallaxTransformEnabled ? defaultValue : parallaxY\n    },\n    style: parallaxTransformEnabled ? {\n      visibility\n    } : void 0\n  };\n}\n\n// ../../library/src/modules/usePresenceAnimation.ts\nimport { useLayoutEffect as useLayoutEffect2 } from \"react\";\nfunction getTransition(value) {\n  if (isString2(value) || !isObject2(value))\n    return void 0;\n  return value == null ? void 0 : value.transition;\n}\nasync function runEffectAnimation(target, effect, shouldReduceMotion, ref, appearId) {\n  const transition = getTransition(target);\n  return Promise.all(\n    effectValuesKeys.map((key7) => {\n      return new Promise((resolve) => {\n        var _a;\n        if (shouldReduceMotion && key7 !== \"opacity\")\n          return resolve();\n        const motionValue2 = effect.values[key7];\n        motionValue2.stop();\n        let value = !isObject2(target) ? defaultFXValues[key7] : (_a = target == null ? void 0 : target[key7]) != null ? _a : defaultFXValues[key7];\n        if (isMotionValue(value))\n          value = value.get();\n        if (!isNumber(value))\n          return resolve();\n        const visualElement = visualElementStore.get(ref.current);\n        if (visualElement)\n          visualElement.setBaseTarget(key7, value);\n        const handoff = isString2(appearId) && !(motionValue2 == null ? void 0 : motionValue2.hasAnimated) && safeWindow.HandoffAppearAnimations ? {\n          elapsed: safeWindow.HandoffAppearAnimations(appearId, key7, motionValue2, frame)\n        } : void 0;\n        const opts = {\n          ...transition,\n          velocity: 0,\n          elapsed: 0,\n          ...handoff,\n          onComplete: () => resolve()\n        };\n        animate(motionValue2, value, opts);\n      });\n    })\n  );\n}\nvar presenceOptionsKeys = /* @__PURE__ */ new Set([\n  \"presenceInitial\",\n  \"presenceAnimate\",\n  \"presenceExit\"\n]);\nfunction usePresenceAnimation({\n  initial: motionInitial,\n  animate: motionAnimate,\n  exit: motionExit,\n  presenceInitial,\n  presenceAnimate,\n  presenceExit\n}, ref, enabled, appearId) {\n  const initial = presenceInitial != null ? presenceInitial : motionInitial;\n  const animateConfig = presenceAnimate != null ? presenceAnimate : motionAnimate;\n  const exit = presenceExit != null ? presenceExit : motionExit;\n  const effect = useConstant(() => {\n    var _a;\n    if (!isObject2(initial))\n      return { values: makeFXValues() };\n    const defaults = {};\n    for (const key7 in initial) {\n      let value = isObject2(initial) ? (_a = asRecord(initial)) == null ? void 0 : _a[key7] : void 0;\n      if (isMotionValue(value))\n        value = value.get();\n      if (!isNumber(value))\n        continue;\n      defaults[key7] = value;\n    }\n    return { values: makeFXValues(defaults) };\n  });\n  const [isPresent, safeToRemove] = usePresence();\n  const shouldReduceMotion = useReducedMotionConfig();\n  useLayoutEffect2(() => {\n    if (!enabled) {\n      safeToRemove == null ? void 0 : safeToRemove();\n      return;\n    }\n    if (isPresent) {\n      if (initial && animateConfig) {\n        runEffectAnimation(animateConfig, effect, shouldReduceMotion, ref, appearId);\n      }\n    } else {\n      if (exit) {\n        runEffectAnimation(exit, effect, shouldReduceMotion, ref).then(() => safeToRemove());\n      } else {\n        safeToRemove();\n      }\n    }\n  }, [isPresent]);\n  return effect;\n}\n\n// ../../library/src/modules/useStyleAppearEffect.ts\nimport React65 from \"react\";\n\n// ../../library/src/modules/calculateOffsetTop.ts\nfunction calcOffsetTop(element, container) {\n  let top = 0;\n  let current = element;\n  while (current && current !== container) {\n    if (!(current instanceof HTMLElement))\n      break;\n    top += current.offsetTop;\n    current = current.offsetParent;\n  }\n  return top;\n}\n\n// ../../library/src/modules/createTransformInputRange.ts\nvar scrollObserverOffset = 1;\nfunction createTransformInputRange(transformTargets, threshold = 0, callback) {\n  var _a, _b, _c;\n  const starts = [];\n  const inputRange = [];\n  for (let index = transformTargets.length; index >= 0; index--) {\n    const { ref: targetRef, offset } = (_a = transformTargets[index]) != null ? _a : {};\n    if (!targetRef || !targetRef.current)\n      continue;\n    const offsetTop = calcOffsetTop(targetRef.current, document.documentElement);\n    const top = offsetTop - scrollObserverOffset - (offset != null ? offset : 0) - threshold;\n    const height = (_c = (_b = targetRef.current) == null ? void 0 : _b.clientHeight) != null ? _c : 0;\n    const previousTop = starts[starts.length - 1];\n    const end = Math.max(top + height, 0);\n    starts.push(top);\n    inputRange.unshift(\n      Math.max(top, 0),\n      previousTop === void 0 ? end : Math.min(end, Math.max(previousTop - 1, 0))\n    );\n    callback == null ? void 0 : callback(index);\n  }\n  return inputRange;\n}\n\n// ../../library/src/modules/useScrollDirectionChange.ts\nimport React64 from \"react\";\nfunction currentScrollDirection(offset, lastOffset = 0) {\n  if (offset < lastOffset)\n    return \"up\";\n  return \"down\";\n}\nvar scrollDirectionThreshold = 4;\nfunction useScrollDirectionChange(scrollDirection, cb, options = {}) {\n  const { direction, target } = scrollDirection != null ? scrollDirection : {};\n  const { repeat = true, enabled = true } = options;\n  React64.useEffect(() => {\n    if (!direction || !enabled)\n      return;\n    let lastOffset = void 0;\n    let directionChangeOffset = 0;\n    let lastDirection = void 0;\n    let currentTarget = void 0;\n    return scrollInfo(({ y: scrollY }) => {\n      if (!repeat && currentTarget === target)\n        return;\n      if (scrollY.current > scrollY.scrollLength)\n        return;\n      if (scrollY.current < 0)\n        return;\n      const d = currentScrollDirection(scrollY.current, lastOffset);\n      lastOffset = scrollY.current;\n      const hasDirectionChanged = d !== lastDirection;\n      lastDirection = d;\n      if (hasDirectionChanged) {\n        directionChangeOffset = scrollY.current;\n      } else {\n        const delta = Math.abs(scrollY.current - directionChangeOffset);\n        if (delta < scrollDirectionThreshold)\n          return;\n        const nextTarget = d === direction ? target : void 0;\n        if (nextTarget !== currentTarget)\n          cb(nextTarget);\n        currentTarget = nextTarget;\n      }\n    });\n  }, [direction, repeat, target, enabled, cb]);\n}\n\n// ../../library/src/modules/useStyleAppearEffect.ts\nvar styleAppearOptionsKeys = /* @__PURE__ */ new Set([\n  \"threshold\",\n  \"animateOnce\",\n  \"opacity\",\n  \"targetOpacity\",\n  \"x\",\n  \"y\",\n  \"scale\",\n  \"transition\",\n  \"rotate\",\n  \"rotateX\",\n  \"rotateY\",\n  \"perspective\",\n  \"enter\",\n  \"exit\",\n  \"animate\",\n  \"styleAppearEffectEnabled\",\n  \"targets\",\n  \"scrollDirection\"\n]);\nvar defaultOutputRange = [\"animate\", \"animate\"];\nvar defaultRanges = { inputRange: [], outputRange: [] };\nfunction createInputOutputRange(targets, threshold, hasExit) {\n  const inputRange = createTransformInputRange(targets, threshold);\n  const outputRange = [...defaultOutputRange];\n  const firstRange = inputRange[0];\n  if (!isNumber(firstRange))\n    return defaultRanges;\n  if (firstRange > 1) {\n    inputRange.unshift(0, firstRange - 1);\n    outputRange.unshift(\"initial\", \"initial\");\n  }\n  if (hasExit) {\n    const idx = inputRange.length - 1;\n    const last = inputRange[idx];\n    if (!isNumber(last))\n      return defaultRanges;\n    inputRange.push(last + 1);\n    outputRange.push(\"exit\");\n  }\n  return {\n    inputRange,\n    outputRange\n  };\n}\nfunction makeStyle(defaults) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n  return {\n    x: (_a = defaults == null ? void 0 : defaults.x) != null ? _a : defaultFXValues.x,\n    y: (_b = defaults == null ? void 0 : defaults.y) != null ? _b : defaultFXValues.y,\n    scale: (_c = defaults == null ? void 0 : defaults.scale) != null ? _c : defaultFXValues.scale,\n    opacity: (_d = defaults == null ? void 0 : defaults.opacity) != null ? _d : defaultFXValues.opacity,\n    transformPerspective: (_e = defaults == null ? void 0 : defaults.transformPerspective) != null ? _e : defaultFXValues.transformPerspective,\n    rotate: (_f = defaults == null ? void 0 : defaults.rotate) != null ? _f : defaultFXValues.rotate,\n    rotateX: (_g = defaults == null ? void 0 : defaults.rotateX) != null ? _g : defaultFXValues.rotateX,\n    rotateY: (_h = defaults == null ? void 0 : defaults.rotateY) != null ? _h : defaultFXValues.rotateY,\n    transition: (_i = defaults == null ? void 0 : defaults.transition) != null ? _i : void 0\n  };\n}\nfunction useAnimationVariants({\n  opacity,\n  targetOpacity,\n  perspective: transformPerspective,\n  enter,\n  exit,\n  animate: animateVariant,\n  ...defaultStyles\n}) {\n  return React65.useMemo(\n    () => {\n      var _a;\n      return {\n        initial: enter != null ? enter : makeStyle({\n          ...defaultStyles,\n          opacity: (_a = opacity != null ? opacity : targetOpacity) != null ? _a : 1,\n          transformPerspective\n        }),\n        animate: animateVariant != null ? animateVariant : makeStyle({\n          opacity: targetOpacity\n        }),\n        exit: exit != null ? exit : makeStyle()\n      };\n    },\n    [animateVariant, defaultStyles, enter, exit, opacity, targetOpacity, transformPerspective]\n  );\n}\nfunction useStyleAppearEffect(options, ref) {\n  const shouldReduceMotion = useReducedMotionConfig();\n  const variants = useAnimationVariants(options);\n  const enabled = options.styleAppearEffectEnabled;\n  const effect = useFXValues(enabled ? variants.initial : variants.animate, enabled);\n  const playState = React65.useRef({\n    isPlaying: false,\n    scheduledAppearState: void 0,\n    lastAppearState: !options.styleAppearEffectEnabled\n  });\n  const animation = React65.useRef();\n  const runAnimation = React65.useCallback(\n    async ({ transition, ...target }, fromInitial) => {\n      var _a;\n      const transitionWithFallback = (_a = transition != null ? transition : variants.animate.transition) != null ? _a : options.transition;\n      await animation.current;\n      animation.current = Promise.all(\n        effectValuesKeys.map((key7) => {\n          var _a2, _b;\n          if (fromInitial)\n            effect.values[key7].set((_a2 = variants.initial[key7]) != null ? _a2 : defaultFXValues[key7]);\n          const toValue = (_b = target[key7]) != null ? _b : defaultFXValues[key7];\n          const visualElement = visualElementStore.get(ref.current);\n          if (visualElement && typeof toValue !== \"object\") {\n            visualElement.setBaseTarget(key7, toValue);\n          }\n          return new Promise((resolve) => {\n            if (shouldReduceMotion && key7 !== \"opacity\") {\n              resolve();\n            } else {\n              const opts = {\n                restDelta: key7 === \"scale\" ? 1e-3 : void 0,\n                ...transitionWithFallback,\n                onComplete: () => resolve()\n              };\n              animate(effect.values[key7], toValue, opts);\n            }\n          });\n        })\n      );\n    },\n    // All dependencies are object values or stable.\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    []\n  );\n  const hasAnimatedOnce = options.animateOnce && playState.current.lastAppearState === true;\n  const animateWithIntersectionObserver = !options.targets && options.styleAppearEffectEnabled && !options.scrollDirection && !hasAnimatedOnce;\n  useAppearEffect(\n    ref,\n    (appears) => {\n      const { isPlaying, lastAppearState } = playState.current;\n      if (isPlaying) {\n        playState.current.scheduledAppearState = appears;\n        return;\n      }\n      playState.current.scheduledAppearState = void 0;\n      playState.current.lastAppearState = appears;\n      if (lastAppearState === appears)\n        return;\n      runAnimation(appears ? variants.animate : variants.exit, appears);\n    },\n    {\n      enabled: animateWithIntersectionObserver,\n      animateOnce: !!options.animateOnce,\n      threshold: {\n        y: options.threshold\n      }\n    }\n  );\n  const animateWithScrollInfo = options.targets && enabled && !options.scrollDirection;\n  React65.useEffect(() => {\n    if (!animateWithScrollInfo)\n      return;\n    const playedState = { initial: true };\n    let lastVariant = \"initial\";\n    return scrollInfo(({ y: scrollY }) => {\n      var _a;\n      const { targets } = options;\n      if (!targets)\n        return;\n      if (!targets[0] || targets[0].ref && !targets[0].ref.current)\n        return;\n      const { inputRange, outputRange } = createInputOutputRange(\n        targets,\n        ((_a = options.threshold) != null ? _a : 0) * scrollY.containerLength,\n        !!options.exit\n      );\n      if (inputRange.length === 0 || inputRange.length !== outputRange.length)\n        return;\n      const variant = transform(scrollY.current, inputRange, outputRange);\n      if (options.animateOnce && playedState[variant])\n        return;\n      playedState[variant] = true;\n      if (lastVariant === variant)\n        return;\n      lastVariant = variant;\n      const variantAnimation = asRecord(variants)[variant];\n      if (!variantAnimation)\n        return;\n      runAnimation(variantAnimation);\n    });\n  }, [animateWithScrollInfo]);\n  useScrollDirectionChange(options.scrollDirection, (target) => runAnimation(target != null ? target : variants.animate), {\n    enabled,\n    repeat: !options.animateOnce\n  });\n  return effect;\n}\n\n// ../../library/src/modules/useStyleTransformEffect.ts\nimport React66 from \"react\";\nvar styleTransformOptionsKeys = /* @__PURE__ */ new Set([\n  \"transformViewportThreshold\",\n  \"styleTransformEffectEnabled\",\n  \"transformTargets\",\n  \"spring\",\n  \"transformTrigger\"\n]);\nvar defaultValues = (transformTargets, shouldReduceMotion) => {\n  var _a, _b;\n  const initial = (_a = transformTargets == null ? void 0 : transformTargets[0]) == null ? void 0 : _a.target;\n  return shouldReduceMotion ? { opacity: (_b = initial == null ? void 0 : initial.opacity) != null ? _b : 1 } : initial;\n};\nvar defaultRanges2 = () => ({\n  opacity: [],\n  x: [],\n  y: [],\n  scale: [],\n  rotate: [],\n  rotateX: [],\n  rotateY: [],\n  transformPerspective: []\n});\nfunction useAttachOptionalSpring(values, spring2) {\n  const springs = React66.useRef({});\n  React66.useEffect(() => {\n    if (spring2 === void 0)\n      return;\n    for (const key7 of objectKeys(values)) {\n      const m2 = values[key7];\n      m2.attach((v, set) => {\n        const active = springs.current[key7];\n        if (active)\n          active.stop();\n        springs.current[key7] = animateValue({\n          keyframes: [m2.get(), v],\n          velocity: m2.getVelocity(),\n          ...spring2,\n          restDelta: 1e-3,\n          onUpdate: set\n        });\n        if (!frameData.isProcessing) {\n          const delta = performance.now() - frameData.timestamp;\n          if (delta < 40) {\n            springs.current[key7].time = delta / 1e3;\n          }\n        }\n        return m2.get();\n      });\n    }\n  }, [JSON.stringify(spring2)]);\n}\nfunction createInputOutputRanges(transformTargets, threshold) {\n  const effectKeyOutputRange = defaultRanges2();\n  const inputRange = createTransformInputRange(transformTargets, threshold, (index) => {\n    var _a, _b, _c, _d, _e;\n    const previousTarget = (_a = transformTargets[index - 1]) == null ? void 0 : _a.target;\n    const currentTarget = (_b = transformTargets[index]) == null ? void 0 : _b.target;\n    for (const key7 of effectValuesKeys)\n      (_e = effectKeyOutputRange[key7]) == null ? void 0 : _e.unshift((_c = previousTarget == null ? void 0 : previousTarget[key7]) != null ? _c : 0, (_d = currentTarget == null ? void 0 : currentTarget[key7]) != null ? _d : 0);\n  });\n  return { inputRange, effectKeyOutputRange };\n}\nfunction createPageOutputRange(transformTargets) {\n  var _a;\n  const keyOutputRange = defaultRanges2();\n  for (const { target } of transformTargets) {\n    for (const key7 of effectValuesKeys)\n      (_a = keyOutputRange[key7]) == null ? void 0 : _a.push(target[key7]);\n  }\n  return keyOutputRange;\n}\nvar pageInputRange = [0, 1];\nfunction useStyleTransform({\n  transformTrigger,\n  styleTransformEffectEnabled,\n  transformTargets,\n  spring: spring2,\n  transformViewportThreshold = 0\n}, ref) {\n  const shouldReduceMotion = useReducedMotionConfig();\n  const effect = useFXValues(defaultValues(transformTargets, shouldReduceMotion), styleTransformEffectEnabled);\n  React66.useLayoutEffect(() => {\n    var _a;\n    if (!styleTransformEffectEnabled || !transformTargets)\n      return;\n    if (transformTrigger !== \"onScrollTarget\") {\n      const outputRange = createPageOutputRange(transformTargets);\n      return scrollInfo(\n        ({ y: scrollY }) => {\n          for (const key7 of effectValuesKeys) {\n            if (shouldReduceMotion && key7 !== \"opacity\")\n              continue;\n            if (pageInputRange.length !== outputRange[key7].length)\n              continue;\n            effect.values[key7].set(transform(scrollY.progress, pageInputRange, outputRange[key7]));\n          }\n        },\n        transformTrigger === \"onInView\" ? {\n          target: (_a = ref.current) != null ? _a : void 0,\n          offset: [`start end`, `end end`]\n        } : void 0\n      );\n    } else {\n      return scrollInfo(({ y: scrollY }) => {\n        if (!transformTargets[0] || transformTargets[0].ref && !transformTargets[0].ref.current)\n          return;\n        const { inputRange: scrollYInputRange, effectKeyOutputRange } = createInputOutputRanges(\n          transformTargets,\n          transformViewportThreshold * scrollY.containerLength\n        );\n        if (scrollYInputRange.length === 0)\n          return;\n        for (const key7 of effectValuesKeys) {\n          if (shouldReduceMotion && key7 !== \"opacity\")\n            continue;\n          if (scrollYInputRange.length !== effectKeyOutputRange[key7].length)\n            continue;\n          effect.values[key7].set(transform(scrollY.current, scrollYInputRange, effectKeyOutputRange[key7]));\n        }\n      });\n    }\n  }, [\n    shouldReduceMotion,\n    transformTrigger,\n    ref,\n    transformViewportThreshold,\n    styleTransformEffectEnabled,\n    effect,\n    transformTargets\n  ]);\n  useAttachOptionalSpring(effect.values, spring2);\n  return effect;\n}\n\n// ../../library/src/modules/withFX.tsx\nvar groups = {\n  parallax: parallaxOptionsKeys,\n  styleAppear: styleAppearOptionsKeys,\n  styleTransform: styleTransformOptionsKeys,\n  loop: loopOptionsKeys,\n  presence: presenceOptionsKeys\n};\nvar groupValues = /* @__PURE__ */ objectKeys(groups);\nfunction backwardsCompatibleEnabledCheck(key7, secondaryKey, object) {\n  return !(key7 in object) && secondaryKey in object || object[key7] === true;\n}\nfunction extractFXOptions(props) {\n  const result = {\n    parallax: {},\n    styleAppear: {},\n    styleTransform: {},\n    presence: {\n      animate: props.animate,\n      initial: props.initial,\n      exit: props.exit\n    },\n    loop: {},\n    forwardedProps: {}\n  };\n  for (const key7 in props) {\n    const strippedKey = stripPrefixFromPrefixedKey(key7);\n    if (strippedKey) {\n      for (const group of groupValues) {\n        const keys3 = groups[group];\n        if (keys3 == null ? void 0 : keys3.has(strippedKey)) {\n          ;\n          result[group][strippedKey] = asRecord(props)[key7];\n          break;\n        }\n      }\n    } else {\n      ;\n      result.forwardedProps[key7] = asRecord(props)[key7];\n    }\n  }\n  result.parallax.parallaxTransformEnabled = backwardsCompatibleEnabledCheck(\n    \"parallaxTransformEnabled\",\n    \"speed\",\n    result.parallax\n  );\n  result.styleAppear.styleAppearEffectEnabled = backwardsCompatibleEnabledCheck(\n    \"styleAppearEffectEnabled\",\n    \"animateOnce\",\n    result.styleAppear\n  );\n  return result;\n}\nvar add2 = (values) => values.reduce((sum, value) => sum += value, 0);\nvar multiply = (values) => values.reduce((sum, value) => sum = sum * value, 1);\nvar reactRefObjectKey = \"current\";\nfunction isReactRefObject(value) {\n  return isObject2(value) && reactRefObjectKey in value;\n}\nfunction isVariantOrVariantList(value) {\n  return isString2(value) || Array.isArray(value);\n}\nvar withFX = (Component14) => React67.forwardRef((props, forwardedRef) => {\n  if (props.__withFX) {\n    return /* @__PURE__ */ React67.createElement(Component14, { ...props, animate: void 0, initial: void 0, exit: void 0, ref: forwardedRef });\n  }\n  if (RenderTarget.current() === \"CANVAS\" /* canvas */) {\n    const animate4 = isVariantOrVariantList(props.animate) ? props.animate : void 0;\n    const initial2 = isVariantOrVariantList(props.initial) ? props.initial : void 0;\n    return /* @__PURE__ */ React67.createElement(Component14, { ...props, animate: animate4, initial: initial2, exit: void 0, ref: forwardedRef });\n  }\n  const fallbackRef = React67.useRef(null);\n  const ref = forwardedRef != null ? forwardedRef : fallbackRef;\n  const {\n    parallax = {},\n    styleAppear = {},\n    styleTransform = {},\n    presence = {},\n    loop = {},\n    forwardedProps\n  } = extractFXOptions(props);\n  const {\n    __targetOpacity: targetOpacityValue,\n    __perspectiveFX: withPerspective,\n    __smartComponentFX: inSmartComponent = false,\n    initial,\n    animate: animate3,\n    exit\n  } = props;\n  const targetOpacity = useMotionValue(targetOpacityValue != null ? targetOpacityValue : 1);\n  const { values: presenceEffectValues } = usePresenceAnimation(\n    presence,\n    ref,\n    inSmartComponent,\n    props[optimizedAppearDataAttribute]\n  );\n  const { values: parallaxValues, style: parallaxStyle } = useParallax(parallax, ref);\n  const { values: transformValues2 } = useStyleTransform(styleTransform, ref);\n  const { values: appearEffectValues } = useStyleAppearEffect(styleAppear, ref);\n  const { values: loopValues } = useLoop(loop);\n  const fxValues = React67.useMemo(() => {\n    return {\n      scale: [appearEffectValues.scale, loopValues.scale, presenceEffectValues.scale, transformValues2.scale],\n      opacity: [\n        appearEffectValues.opacity,\n        loopValues.opacity,\n        presenceEffectValues.opacity,\n        // Ensure that the layers opacity is always represented.\n        targetOpacity,\n        transformValues2.opacity\n      ],\n      x: [appearEffectValues.x, loopValues.x, presenceEffectValues.x, transformValues2.x],\n      y: [appearEffectValues.y, loopValues.y, parallaxValues.y, presenceEffectValues.y, transformValues2.y],\n      rotate: [\n        appearEffectValues.rotate,\n        loopValues.rotate,\n        presenceEffectValues.rotate,\n        transformValues2.rotate\n      ],\n      rotateX: [\n        appearEffectValues.rotateX,\n        loopValues.rotateX,\n        presenceEffectValues.rotateX,\n        transformValues2.rotateX\n      ],\n      rotateY: [\n        appearEffectValues.rotateY,\n        loopValues.rotateY,\n        presenceEffectValues.rotateY,\n        transformValues2.rotateY\n      ],\n      transformPerspective: [\n        transformValues2.transformPerspective,\n        appearEffectValues.transformPerspective\n        // We stopped animating transformPerspective with `withFX`\n        // before introducing `useLoop`, so it does not have a value\n        // here on purpose.\n      ]\n    };\n  }, [targetOpacity, transformValues2, parallaxValues, appearEffectValues, loopValues, presenceEffectValues]);\n  const scale = useTransform(fxValues.scale, multiply);\n  const opacity = useTransform(fxValues.opacity, multiply);\n  const x = useTransform(fxValues.x, add2);\n  const y = useTransform(fxValues.y, add2);\n  const rotate = useTransform(fxValues.rotate, add2);\n  const rotateX = useTransform(fxValues.rotateX, add2);\n  const rotateY = useTransform(fxValues.rotateY, add2);\n  const transformPerspective = useTransform(fxValues.transformPerspective, add2);\n  const { drag, dragConstraints } = forwardedProps;\n  useRerenderOnResize(drag && isReactRefObject(dragConstraints) ? dragConstraints : void 0);\n  const motionValueStyle = {\n    opacity,\n    scale,\n    x,\n    y,\n    rotate,\n    rotateX,\n    rotateY\n  };\n  if (isUndefined(withPerspective)) {\n    motionValueStyle.transformPerspective = transformPerspective;\n  }\n  const motionGestures = inSmartComponent && !presence.presenceInitial ? { initial: void 0, animate: void 0, exit: void 0 } : {};\n  return /* @__PURE__ */ React67.createElement(\n    Component14,\n    {\n      ...forwardedProps,\n      ...motionGestures,\n      __withFX: true,\n      style: {\n        ...props.style,\n        ...parallaxStyle,\n        ...motionValueStyle\n      },\n      values: presenceEffectValues,\n      ref\n    }\n  );\n});\n\n// ../../library/src/deprecated/deprecatedEffects.ts\nvar withParallaxTransform = withFX;\nvar withStyleAppearEffect = withFX;\n\n// ../../library/src/modules/ComponentPresetsContext.tsx\nimport React68, { createContext as createContext4, useContext as useContext12, useRef as useRef11 } from \"react\";\nvar Context = /* @__PURE__ */ createContext4({});\nfunction ComponentPresetsProvider({ presets, children }) {\n  const lastPresets = useRef11(presets);\n  if (!isEqual(presets, lastPresets.current, false)) {\n    lastPresets.current = presets;\n  }\n  return /* @__PURE__ */ React68.createElement(Context.Provider, { value: lastPresets.current }, children);\n}\nfunction ComponentPresetsConsumer({ componentIdentifier, children }) {\n  var _a;\n  const componentPresets = useContext12(Context);\n  const presetProps = (_a = componentPresets[componentIdentifier]) != null ? _a : {};\n  return children(presetProps);\n}\n\n// ../../library/src/modules/Container.tsx\nimport React70 from \"react\";\n\n// ../../library/src/render/utils/withGeneratedLayoutId.tsx\nimport React69 from \"react\";\nvar withGeneratedLayoutId = (Component14) => React69.forwardRef((props, ref) => {\n  const layoutId = useLayoutId(props);\n  return /* @__PURE__ */ React69.createElement(Component14, { layoutId, ...props, layoutIdKey: void 0, duplicatedFrom: void 0, ref });\n});\n\n// ../../library/src/modules/Container.tsx\nvar Providers = /* @__PURE__ */ React70.forwardRef(\n  ({ children, layoutId, ...props }, ref) => {\n    const outerLayoutId = useConstant(() => layoutId ? `${layoutId}-container` : void 0);\n    return /* @__PURE__ */ React70.createElement(motion.div, { layoutId: outerLayoutId, ...props, ref }, /* @__PURE__ */ React70.createElement(ComponentContainerContext.Provider, { value: true }, /* @__PURE__ */ React70.createElement(AutomaticLayoutIds, { enabled: false }, /* @__PURE__ */ React70.createElement(LayoutGroup, { id: layoutId != null ? layoutId : \"\", inherit: \"id\" }, React70.Children.map(children, (child) => {\n      return React70.isValidElement(child) ? React70.cloneElement(child, { layoutId }) : child;\n    })))));\n  }\n);\nvar Container = /* @__PURE__ */ withGeneratedLayoutId(Providers);\n\n// ../../library/src/modules/CustomCursor.tsx\nfunction useCustomCursors(webPageCursors) {\n}\n\n// ../../library/src/modules/Floating.tsx\nimport React71 from \"react\";\nimport ReactDOM from \"react-dom\";\n\n// ../../library/src/modules/floatingPositionSafeAreaStyle.ts\nfunction invertPlacement(placement) {\n  switch (placement) {\n    case \"top\":\n      return \"bottom\";\n    case \"right\":\n      return \"left\";\n    case \"bottom\":\n      return \"top\";\n    case \"left\":\n      return \"right\";\n    default:\n      assertNever(placement);\n  }\n}\nfunction preferredOffset(point, length, max, collisionDetectionPadding = 0) {\n  const min = Math.max(point, collisionDetectionPadding);\n  if (point < min)\n    return min;\n  const size2 = length + collisionDetectionPadding;\n  if (min + size2 > max)\n    return max - size2;\n  return min;\n}\nfunction collisionAxis(placement, rect, windowSize) {\n  switch (placement) {\n    case \"top\":\n    case \"bottom\":\n      if (rect.y < 0 || rect.y + rect.height > windowSize.height)\n        return \"y\";\n      return void 0;\n    case \"left\":\n    case \"right\":\n      if (rect.x < 0 || rect.x + rect.width > windowSize.width)\n        return \"x\";\n      return void 0;\n    default:\n      assertNever(placement);\n  }\n}\nfunction getPlacementAndOffsetAvoidingScreenCollision(rect, placement, offset, windowSize) {\n  switch (collisionAxis(placement, rect, windowSize)) {\n    case \"x\":\n      return {\n        placement: invertPlacement(placement),\n        x: offset.x * -1,\n        y: offset.y\n      };\n    case \"y\":\n      return {\n        placement: invertPlacement(placement),\n        x: offset.x,\n        y: offset.y * -1\n      };\n    default:\n      return {\n        placement,\n        x: offset.x,\n        y: offset.y\n      };\n  }\n}\nfunction getSafePlacementFloatingPositionRect(anchor, element, placement, alignment, offset, collisionDetectionSize, collisionDetectionPadding) {\n  const rebasedRect = Rect.rebaseRectOnto(element, anchor, placement, alignment);\n  const preferredRect = {\n    x: rebasedRect.x + offset.x,\n    y: rebasedRect.y + offset.y,\n    width: element.width,\n    height: element.height\n  };\n  if (!collisionDetectionSize)\n    return [placement, preferredRect];\n  const {\n    x,\n    y,\n    placement: safePlacement\n  } = getPlacementAndOffsetAvoidingScreenCollision(preferredRect, placement, offset, collisionDetectionSize);\n  const rebasedCollisionRect = Rect.rebaseRectOnto(element, anchor, safePlacement, alignment);\n  return [\n    safePlacement,\n    {\n      x: preferredOffset(\n        rebasedCollisionRect.x + x,\n        element.width,\n        collisionDetectionSize.width,\n        collisionDetectionPadding\n      ),\n      y: preferredOffset(\n        rebasedCollisionRect.y + y,\n        element.height,\n        collisionDetectionSize.height,\n        collisionDetectionPadding\n      ),\n      width: element.width,\n      height: element.height\n    }\n  ];\n}\nfunction preferredPoint(a, b, points) {\n  if (Point.insidePoints(a, [b, ...points]))\n    return b;\n  return a;\n}\nvar minInset = 5;\nfunction safeAreaPolygonConstraints(rect) {\n  return {\n    constrainX: (value) => Math.min(Math.max(value, rect.x + minInset), rect.x + rect.width - minInset),\n    constrainY: (value) => Math.min(Math.max(value, rect.y + minInset), rect.y + rect.height - minInset)\n  };\n}\nvar mouseOffset = 4;\nfunction polygonPoints({ x, y }, placement, rect, { constrainX, constrainY }) {\n  const [tl, bl, tr, br] = Rect.points(rect);\n  switch (placement) {\n    case \"left\": {\n      const mousePoint = { x: constrainX(x - mouseOffset), y };\n      return [mousePoint, preferredPoint(br, bl, [mousePoint, tr]), preferredPoint(tr, tl, [mousePoint, br])];\n    }\n    case \"right\": {\n      const mousePoint = { x: constrainX(x + mouseOffset), y };\n      return [mousePoint, preferredPoint(bl, br, [mousePoint, tl]), preferredPoint(tl, tr, [mousePoint, bl])];\n    }\n    case \"top\": {\n      const mousePoint = { x, y: constrainY(y - mouseOffset) };\n      return [mousePoint, preferredPoint(bl, tl, [mousePoint, br]), preferredPoint(br, tr, [mousePoint, bl])];\n    }\n    case \"bottom\": {\n      const mousePoint = { x, y: constrainY(y + mouseOffset) };\n      return [mousePoint, preferredPoint(tl, bl, [mousePoint, tr]), preferredPoint(tr, br, [mousePoint, tl])];\n    }\n    default:\n      assertNever(placement);\n  }\n}\nfunction safeAreaInset(placement, delta) {\n  switch (placement) {\n    case \"left\":\n      return `${Math.min(delta.y, 0)}px auto auto 0px`;\n    case \"right\":\n      return `${Math.min(delta.y, 0)}px 0px auto auto`;\n    case \"top\":\n      return `0px auto auto ${Math.min(delta.x, 0)}px`;\n    case \"bottom\":\n      return `auto auto 0px ${Math.min(delta.x, 0)}px`;\n    default:\n      assertNever(placement);\n  }\n}\nfunction floatingPositionSafeAreaStyle(x, y, placement, anchorRect, floatingRect) {\n  const minX = Math.min(floatingRect.x, anchorRect.x);\n  const minY = Math.min(floatingRect.y, anchorRect.y);\n  const rect = Rect.merge(anchorRect, floatingRect);\n  const points = polygonPoints({ x, y }, placement, floatingRect, safeAreaPolygonConstraints(anchorRect)).map((point) => `${point.x - minX}px ${point.y - minY}px`).join(\", \");\n  return {\n    height: `${rect.height}px`,\n    width: `${rect.width}px`,\n    clipPath: `polygon(${points})`,\n    inset: safeAreaInset(placement, Rect.delta(anchorRect, floatingRect))\n  };\n}\nfunction valueForFloatingAlignment(alignment) {\n  switch (alignment) {\n    case \"start\":\n      return 0;\n    case \"center\":\n      return 0.5;\n    case \"end\":\n      return 1;\n    default:\n      assertNever(alignment);\n  }\n}\nfunction motionOriginFromFloatingPosition(placement = \"bottom\", alignment = \"center\") {\n  switch (placement) {\n    case \"top\":\n      return { originX: valueForFloatingAlignment(alignment), originY: 1 };\n    case \"right\":\n      return { originX: 0, originY: valueForFloatingAlignment(alignment) };\n    case \"bottom\":\n      return { originX: valueForFloatingAlignment(alignment), originY: 0 };\n    case \"left\":\n      return { originX: 1, originY: valueForFloatingAlignment(alignment) };\n    default:\n      assertNever(placement);\n  }\n}\n\n// ../../library/src/modules/Floating.tsx\nfunction isRef(value) {\n  return isObject2(value) && \"current\" in value;\n}\nfunction getAncestorInfo(anchorRef) {\n  var _a;\n  let el = anchorRef.current;\n  const info = {\n    position: \"absolute\",\n    scrolls: false\n  };\n  while (el) {\n    if ((el == null ? void 0 : el.tagName) === \"BODY\")\n      return info;\n    if (((_a = getComputedStyle(el)) == null ? void 0 : _a.position) === \"fixed\")\n      info.position = \"fixed\";\n    if (el.scrollWidth > el.clientWidth || el.scrollHeight > el.clientHeight)\n      info.scrolls = true;\n    if (info.scrolls && info.position === \"fixed\")\n      return info;\n    el = el.parentElement;\n  }\n  return info;\n}\nfunction createAnimationFrameLoop(cb) {\n  let frame2;\n  function loop() {\n    frame2 = requestAnimationFrame(() => {\n      cb();\n      loop();\n    });\n  }\n  return [loop, () => cancelAnimationFrame(frame2)];\n}\nfunction createUpdateSafeArea(safeAreaRef) {\n  let x = 0;\n  let y = 0;\n  return (anchorRect, calculatedRect, placement, event) => {\n    var _a, _b, _c;\n    if (!((_a = safeAreaRef.current) == null ? void 0 : _a.style))\n      return;\n    x = (_b = event == null ? void 0 : event.clientX) != null ? _b : x;\n    y = (_c = event == null ? void 0 : event.clientY) != null ? _c : y;\n    Object.assign(\n      safeAreaRef.current.style,\n      floatingPositionSafeAreaStyle(x, y, placement, anchorRect, calculatedRect)\n    );\n  };\n}\nfunction updatePosition(floatingPositionRef, position, rect) {\n  var _a, _b;\n  if (!floatingPositionRef.current)\n    return;\n  Object.assign(floatingPositionRef.current.style, {\n    position,\n    visibility: \"visible\",\n    // Append \"px\" because we are assigning this object straight to style.\n    left: ((_a = rect == null ? void 0 : rect.x) != null ? _a : 0) + (position === \"fixed\" ? 0 : safeWindow.scrollX) + \"px\",\n    top: ((_b = rect == null ? void 0 : rect.y) != null ? _b : 0) + (position === \"fixed\" ? 0 : safeWindow.scrollY) + \"px\"\n  });\n}\nvar FloatingStackingContext = /* @__PURE__ */ React71.createContext(/* @__PURE__ */ new Set());\nfunction useDismissFloatingLayer(anchorRef, floatingPositionRef, safeAreaRef, { safeArea, onDismiss }) {\n  const descendantStackingContext = useConstant(() => /* @__PURE__ */ new Set());\n  const ancestorStackingContext = React71.useContext(FloatingStackingContext);\n  const [isPresent, safeToRemove] = usePresence();\n  React71.useEffect(() => {\n    if (isPresent) {\n      if (!floatingPositionRef.current)\n        return;\n      floatingPositionRef.current.style.pointerEvents = \"\";\n      ancestorStackingContext.add(floatingPositionRef.current);\n    } else {\n      if (!floatingPositionRef.current)\n        return;\n      floatingPositionRef.current.style.pointerEvents = \"none\";\n      ancestorStackingContext.delete(floatingPositionRef.current);\n      safeToRemove();\n    }\n  }, [isPresent, floatingPositionRef, ancestorStackingContext]);\n  React71.useEffect(() => {\n    if (!safeArea) {\n      const handleEscape = (e) => {\n        if (e.key !== \"Escape\")\n          return;\n        onDismiss();\n      };\n      safeWindow.addEventListener(\"keyup\", handleEscape);\n      return () => safeWindow.removeEventListener(\"keyup\", handleEscape);\n    }\n    function maybeDismiss(event) {\n      if (descendantStackingContext.size !== 0)\n        return;\n      for (const element of document.elementsFromPoint(event.x, event.y)) {\n        if (element === anchorRef.current)\n          return;\n        if (element === floatingPositionRef.current)\n          return;\n        if (element === safeAreaRef.current)\n          return;\n      }\n      onDismiss();\n    }\n    safeWindow.addEventListener(\"mousemove\", maybeDismiss);\n    return () => {\n      safeWindow.removeEventListener(\"mousemove\", maybeDismiss);\n    };\n  }, [\n    onDismiss,\n    safeArea,\n    anchorRef,\n    safeAreaRef,\n    floatingPositionRef,\n    safeToRemove,\n    ancestorStackingContext,\n    descendantStackingContext\n  ]);\n  return descendantStackingContext;\n}\nfunction makeGetSafePlacementFloatingPositionRect({\n  placement,\n  alignment,\n  offset,\n  collisionDetectionSize,\n  collisionDetectionPadding\n}) {\n  return (anchor, element) => getSafePlacementFloatingPositionRect(\n    anchor,\n    element,\n    placement,\n    alignment,\n    offset,\n    collisionDetectionSize,\n    collisionDetectionPadding\n  );\n}\nfunction useDynamicMotionOrigin(initialPlacement, alignment) {\n  return useConstant(() => {\n    const { originX, originY } = motionOriginFromFloatingPosition(initialPlacement, alignment);\n    const origin = { x: motionValue(originX), y: motionValue(originY) };\n    return [\n      origin,\n      (placement) => {\n        const values = motionOriginFromFloatingPosition(placement, alignment);\n        origin.x.set(values.originX);\n        origin.y.set(values.originY);\n      }\n    ];\n  });\n}\nfunction childrenWithOrigin(child, { x, y }) {\n  if (!child || !isReactChild(child) || !isReactElement(child))\n    return null;\n  if (!isObject2(child.props.style) && !isUndefined(child.props.style))\n    return null;\n  const style = {\n    ...child.props.style,\n    originX: x,\n    originY: y\n  };\n  return React71.cloneElement(child, { style });\n}\nfunction Floating({\n  alignment,\n  placement,\n  safeArea,\n  offsetX,\n  offsetY,\n  anchorRef,\n  className,\n  children,\n  portalSelector,\n  zIndex,\n  collisionDetection = false,\n  collisionDetectionPadding,\n  onDismiss\n}) {\n  var _a;\n  const floatingPositionRef = React71.useRef(null);\n  const safeAreaRef = React71.useRef(null);\n  const contentRef = React71.useRef(null);\n  const [origin, updateOrigin] = useDynamicMotionOrigin(placement, alignment);\n  React71.useLayoutEffect(() => {\n    if (!isRef(anchorRef) || !contentRef.current || !placement || !alignment)\n      return;\n    const { position, scrolls } = getAncestorInfo(anchorRef);\n    const elementRect = contentRef.current.getBoundingClientRect();\n    const initialAnchorRect = anchorRef.current.getBoundingClientRect();\n    const offset = {\n      x: offsetX != null ? offsetX : 0,\n      y: offsetY != null ? offsetY : 0\n    };\n    const getSafePlacementRect = makeGetSafePlacementFloatingPositionRect({\n      placement,\n      alignment,\n      offset,\n      collisionDetectionSize: collisionDetection ? { width: safeWindow.innerWidth, height: safeWindow.innerHeight } : void 0,\n      collisionDetectionPadding\n    });\n    const [initialSafePlacement, initialCalculatedRect] = getSafePlacementRect(initialAnchorRect, elementRect);\n    updatePosition(floatingPositionRef, position, initialCalculatedRect);\n    updateOrigin(initialSafePlacement);\n    const updateSafeArea = createUpdateSafeArea(safeAreaRef);\n    const [loop, cancelAnimationFrameLoop] = createAnimationFrameLoop(() => {\n      const anchorRect = anchorRef.current.getBoundingClientRect();\n      const [safePlacement, calculatedRect] = getSafePlacementRect(anchorRect, elementRect);\n      updatePosition(floatingPositionRef, position, calculatedRect);\n      updateOrigin(safePlacement);\n      if (safeArea)\n        updateSafeArea(anchorRect, calculatedRect, safePlacement);\n    });\n    if (scrolls)\n      loop == null ? void 0 : loop();\n    if (!safeArea)\n      return () => cancelAnimationFrameLoop == null ? void 0 : cancelAnimationFrameLoop();\n    const handleMouseMove = (event) => {\n      const rect = anchorRef.current.getBoundingClientRect();\n      const [safePlacement, calculatedRect] = getSafePlacementRect(rect, elementRect);\n      updateSafeArea(rect, calculatedRect, safePlacement, event);\n    };\n    const anchor = anchorRef.current;\n    anchor.addEventListener(\"mousemove\", handleMouseMove);\n    return () => {\n      cancelAnimationFrameLoop == null ? void 0 : cancelAnimationFrameLoop();\n      anchor.removeEventListener(\"mousemove\", handleMouseMove);\n    };\n  }, [\n    safeArea,\n    placement,\n    alignment,\n    offsetX,\n    offsetY,\n    anchorRef,\n    collisionDetection,\n    collisionDetectionPadding,\n    updateOrigin\n  ]);\n  const descendantContext = useDismissFloatingLayer(anchorRef, floatingPositionRef, safeAreaRef, {\n    safeArea,\n    onDismiss\n  });\n  return ReactDOM.createPortal(\n    /* @__PURE__ */ React71.createElement(\n      \"div\",\n      {\n        ref: floatingPositionRef,\n        className,\n        style: {\n          // Initially rendered as hidden, but the layout effect will set\n          // to visible when the position is calculated.\n          visibility: \"hidden\",\n          width: \"auto\",\n          height: \"auto\",\n          position: \"absolute\",\n          zIndex\n        }\n      },\n      safeArea ? /* @__PURE__ */ React71.createElement(\"div\", { ref: safeAreaRef, style: { position: \"absolute\" }, \"data-safearea\": true }) : /* @__PURE__ */ React71.createElement(\"div\", { style: { position: \"fixed\", inset: 0 }, \"aria-hidden\": true, onMouseDown: onDismiss }),\n      /* @__PURE__ */ React71.createElement(FloatingStackingContext.Provider, { value: descendantContext }, /* @__PURE__ */ React71.createElement(\"div\", { ref: contentRef }, childrenWithOrigin(children, origin)))\n    ),\n    (_a = document.querySelector(portalSelector)) != null ? _a : document.body\n  );\n}\n\n// ../../library/src/modules/GeneratedComponentContext.ts\nimport React72 from \"react\";\nvar GeneratedComponentContext = /* @__PURE__ */ React72.createContext(\n  void 0\n);\n\n// ../../library/src/modules/LazyValue.ts\nvar LazyValue = class {\n  constructor(resolver) {\n    this.resolver = resolver;\n  }\n  static is(value) {\n    return value instanceof LazyValue;\n  }\n  /** Preload the value so it can be read() later. */\n  preload() {\n    if (this.status) {\n      const status = this.status;\n      if (status.type !== \"pending\")\n        return;\n      return status.promise;\n    }\n    const promise = this.resolver().then(\n      (value) => {\n        this.status = {\n          type: \"fulfilled\",\n          value\n        };\n      },\n      (error) => {\n        this.status = {\n          type: \"rejected\",\n          error\n        };\n      }\n    );\n    this.status = {\n      type: \"pending\",\n      promise\n    };\n    return promise;\n  }\n  /** Synchronously read the value after calling preload() before. */\n  read() {\n    const status = this.status;\n    if (!status) {\n      throw new Error(\"Need to call preload() before read()\");\n    }\n    switch (status.type) {\n      case \"pending\":\n        throw new Error(\"Need to wait for preload() to resolve\");\n      case \"fulfilled\":\n        return status.value;\n      case \"rejected\":\n        throw status.error;\n      default:\n        assertNever(status);\n    }\n  }\n};\n\n// ../../library/src/modules/Link.tsx\nimport React73 from \"react\";\n\n// ../../library/src/render/utils/findAnchorElement.ts\nfunction findAnchorElement(target, withinElement) {\n  if (target instanceof HTMLAnchorElement) {\n    return target;\n  }\n  if (target instanceof Element) {\n    if (target === withinElement) {\n      return null;\n    }\n    return findAnchorElement(target.parentElement, withinElement);\n  }\n  return null;\n}\n\n// ../../library/src/modules/framerPageLink.ts\nvar elementKey = \"element\";\nvar collectionKey = \"collection\";\nvar collectionItemIdKey = \"collectionItemId\";\nvar pathVariablesKey = \"pathVariables\";\nvar mediaType = \"framer/page-link,\";\nfunction isFramerPageLink(value) {\n  return isString2(value) && value.startsWith(`data:${mediaType}`);\n}\nfunction createFramerPageLink(targetId = null, options = {}) {\n  const target = targetId ? targetId : \"none\";\n  const link = new URL(`data:${mediaType}${target}`);\n  if (options.element) {\n    link.searchParams.append(elementKey, options.element);\n  }\n  if (options.collectionItem) {\n    link.searchParams.append(collectionKey, options.collectionItem.collection);\n    link.searchParams.append(collectionItemIdKey, options.collectionItem.collectionItemId);\n    link.searchParams.append(pathVariablesKey, new URLSearchParams(options.collectionItem.pathVariables).toString());\n  }\n  return link.href;\n}\nfunction parseFramerPageLink(link) {\n  if (!isFramerPageLink(link))\n    return;\n  try {\n    const url = new URL(link);\n    const target = url.pathname.substring(mediaType.length);\n    const searchParams = url.searchParams;\n    const element = searchParams.has(elementKey) ? searchParams.get(elementKey) : void 0;\n    let collectionItem;\n    const collection = searchParams.get(collectionKey);\n    const collectionItemId = searchParams.get(collectionItemIdKey);\n    const pathVariablesValue = searchParams.get(pathVariablesKey);\n    if (collection && collectionItemId && pathVariablesValue) {\n      const pathVariables = Object.fromEntries(new URLSearchParams(pathVariablesValue).entries());\n      collectionItem = {\n        collection,\n        collectionItemId,\n        pathVariables\n      };\n    }\n    return {\n      target: target === \"none\" ? null : target,\n      /**\n       * For historical reason we used to set \"element=none\" into the\n       * datalink, we no longer do that today, but we still keep this code\n       * so we could parse legacy links correctly.\n       */\n      element: element === \"none\" ? void 0 : element,\n      collectionItem\n    };\n  } catch {\n    return;\n  }\n}\nfunction shouldOpenLinkInNewTab(link) {\n  return !isFramerPageLink(link);\n}\nfunction navigateFromAttributes(navigate, element, implicitPathVariables) {\n  var _a, _b, _c;\n  let routeId = element.getAttribute(\"data-framer-page-link-target\" /* Page */);\n  let elementId;\n  let pathVariables;\n  if (routeId) {\n    elementId = (_a = element.getAttribute(\"data-framer-page-link-element\" /* Element */)) != null ? _a : void 0;\n    const pathVariablesRaw = element.getAttribute(\"data-framer-page-link-path-variables\" /* PathVariables */);\n    if (pathVariablesRaw) {\n      pathVariables = Object.fromEntries(new URLSearchParams(pathVariablesRaw).entries());\n    }\n  } else {\n    const href = element.getAttribute(\"href\");\n    if (!href)\n      return false;\n    const link = parseFramerPageLink(href);\n    if (!link || !link.target)\n      return false;\n    routeId = link.target;\n    elementId = (_b = link.element) != null ? _b : void 0;\n    pathVariables = (_c = link.collectionItem) == null ? void 0 : _c.pathVariables;\n  }\n  const smoothScroll = elementId ? element.dataset.framerSmoothScroll !== void 0 : void 0;\n  navigate(routeId, elementId, Object.assign({}, implicitPathVariables, pathVariables), smoothScroll);\n  return true;\n}\n\n// ../../library/src/modules/resolveSlug.ts\nvar noLocale = {};\nvar resolveSlugCache = /* @__PURE__ */ new WeakMap();\nfunction resolveSlug(unresolvedSlug, utilsByCollectionId, activeLocale) {\n  var _a, _b, _c, _d;\n  const cache3 = (_b = (_a = resolveSlugCache == null ? void 0 : resolveSlugCache.get(activeLocale != null ? activeLocale : noLocale)) == null ? void 0 : _a.get(unresolvedSlug.collectionId)) == null ? void 0 : _b.get(unresolvedSlug.collectionItemId);\n  if (cache3)\n    return cache3;\n  const collectionCache = (_c = resolveSlugCache.get(activeLocale != null ? activeLocale : noLocale)) != null ? _c : /* @__PURE__ */ new Map();\n  resolveSlugCache.set(activeLocale != null ? activeLocale : noLocale, collectionCache);\n  const collectionItemCache = (_d = collectionCache.get(unresolvedSlug.collectionId)) != null ? _d : /* @__PURE__ */ new Map();\n  collectionCache.set(unresolvedSlug.collectionId, collectionItemCache);\n  const lazyValue = new LazyValue(async () => {\n    try {\n      const getUtils = utilsByCollectionId[unresolvedSlug.collectionId];\n      if (!getUtils)\n        throw new Error(`Key not found in collection utils for collection id: \"${unresolvedSlug.collectionId}`);\n      const utils = await getUtils();\n      if (!utils)\n        throw new Error(\"Collection does not contain utility functions\");\n      const slug = await utils.getSlugByRecordId(unresolvedSlug.collectionItemId, activeLocale != null ? activeLocale : void 0);\n      return slug;\n    } catch (error) {\n      console.warn(`Failed to resolve slug: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n      return void 0;\n    }\n  });\n  collectionItemCache.set(unresolvedSlug.collectionItemId, lazyValue);\n  return lazyValue;\n}\n\n// ../../library/src/modules/Link.tsx\nvar linkKey = \"webPageId\";\nfunction isLinkToWebPage(link) {\n  return Boolean(link && typeof link === \"object\" && linkKey in link);\n}\nfunction createVariablesFromPageLinkCollectionItem(collectionItem) {\n  if (!collectionItem)\n    return void 0;\n  const variables = {};\n  for (const pathVariablesKey2 in collectionItem.pathVariables) {\n    const value = collectionItem.pathVariables[pathVariablesKey2];\n    if (value)\n      variables[pathVariablesKey2] = value;\n  }\n  return variables;\n}\nfunction linkFromFramerPageLink(link) {\n  if (!isFramerPageLink(link))\n    return link;\n  const parsed = parseFramerPageLink(link);\n  if (!parsed)\n    return void 0;\n  const { target, element, collectionItem } = parsed;\n  if (!target)\n    return void 0;\n  return {\n    webPageId: target,\n    hash: element != null ? element : void 0,\n    pathVariables: createVariablesFromPageLinkCollectionItem(collectionItem)\n  };\n}\nvar pathVariablesRegExp2 = /:([a-zA-Z][a-zA-Z0-9_]*)/g;\nvar PathVariablesContext = React73.createContext(void 0);\nfunction useImplicitPathVariables() {\n  var _a;\n  const contextPathVariables = React73.useContext(PathVariablesContext);\n  const currentPathVariables = (_a = useCurrentRoute()) == null ? void 0 : _a.pathVariables;\n  const pathVariables = contextPathVariables || currentPathVariables;\n  return pathVariables;\n}\nfunction linkMatchesRoute(route, { webPageId, hash: hash2, pathVariables }, implicitPathVariables) {\n  if (webPageId !== route.id)\n    return false;\n  if (hash2)\n    return false;\n  if (route.path && route.pathVariables) {\n    const combinedPathVariable = Object.assign({}, implicitPathVariables, pathVariables);\n    for (const [, key7] of route.path.matchAll(pathVariablesRegExp2)) {\n      if (!key7)\n        return false;\n      if (route.pathVariables[key7] !== combinedPathVariable[key7]) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction useLinkMatchesRoute(link) {\n  const route = useCurrentRoute();\n  const contextPathVariables = React73.useContext(PathVariablesContext);\n  if (!route)\n    return false;\n  const pageLink = isString2(link) ? linkFromFramerPageLink(link) : link;\n  return isLinkToWebPage(pageLink) ? linkMatchesRoute(route, pageLink, contextPathVariables) : false;\n}\nfunction isInternalURL(href) {\n  if (href === void 0)\n    return false;\n  if (href.startsWith(\"#\") || href.startsWith(\"/\") || href.startsWith(\".\"))\n    return true;\n  return false;\n}\nfunction isValidURL(href, isInternal) {\n  try {\n    const url = new URL(href);\n    return Boolean(url.protocol);\n  } catch {\n  }\n  return isInternal;\n}\nvar AnchorLinkTarget = /* @__PURE__ */ ((AnchorLinkTarget2) => {\n  AnchorLinkTarget2[\"_blank\"] = \"_blank\";\n  AnchorLinkTarget2[\"_self\"] = \"_self\";\n  return AnchorLinkTarget2;\n})(AnchorLinkTarget || {});\nfunction getTargetAttrValue(openInNewTab, isInternal) {\n  if (openInNewTab !== void 0) {\n    return openInNewTab ? \"_blank\" /* _blank */ : void 0;\n  }\n  return isInternal ? void 0 : \"_blank\" /* _blank */;\n}\nfunction propsForLink(href, openInNewTab = void 0) {\n  const isInternal = isInternalURL(href);\n  const anchorTarget = getTargetAttrValue(openInNewTab, isInternal);\n  return {\n    href: isValidURL(href, isInternal) ? href : `https://${href}`,\n    target: anchorTarget,\n    rel: !isInternal ? \"noopener\" : void 0\n  };\n}\nfunction createOnClickLinkHandler(router, routeId, elementId, combinedPathVariables, smoothScroll) {\n  return async (event) => {\n    var _a, _b;\n    if (event.metaKey)\n      return;\n    const anchorElement = findAnchorElement(event.target);\n    if (!anchorElement || anchorElement.getAttribute(\"target\") === \"_blank\" /* _blank */)\n      return;\n    event.preventDefault();\n    const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, routeId);\n    if (route && isLazyComponentType(route == null ? void 0 : route.page)) {\n      await route.page.preload();\n    }\n    (_b = router.navigate) == null ? void 0 : _b.call(router, routeId, elementId, combinedPathVariables, smoothScroll);\n  };\n}\nfunction propsForRoutePath(href, openInNewTab, router, currentRoute, implicitPathVariables, smoothScroll) {\n  const isInternal = isInternalURL(href);\n  if (!router.routes || !router.getRoute || !currentRoute || !isInternal) {\n    return propsForLink(href, openInNewTab);\n  }\n  try {\n    const [pathname, hash2] = href.split(\"#\", 2);\n    assert(pathname !== void 0, \"A href must have a defined pathname.\");\n    const { routeId, pathVariables } = inferInitialRouteFromPath(router.routes, pathname);\n    const route = router.getRoute(routeId);\n    if (route) {\n      preloadComponent(route.page);\n      const combinedPathVariables = Object.assign({}, implicitPathVariables, pathVariables);\n      const path = getPathForRoute(route, {\n        currentRoutePath: currentRoute.path,\n        // The hash value is already fully resolved so we don't need to\n        // provide any hashVariables.\n        hash: hash2 || void 0,\n        pathVariables: combinedPathVariables\n      });\n      const anchorTarget = getTargetAttrValue(openInNewTab, true);\n      return {\n        href: path,\n        target: anchorTarget,\n        onClick: createOnClickLinkHandler(\n          router,\n          routeId,\n          hash2 || void 0,\n          combinedPathVariables,\n          smoothScroll\n        )\n      };\n    }\n  } catch {\n  }\n  return propsForLink(href, openInNewTab);\n}\nfunction resolveSlugsWithSuspense(unresolvedPathSlugs, unresolvedHashSlugs, collectionUtils, activeLocale) {\n  const promises = [];\n  function handleSlugs(unresolvedSlugs) {\n    if (!unresolvedSlugs || !collectionUtils)\n      return void 0;\n    const result2 = {};\n    for (const slugKey in unresolvedSlugs) {\n      const unresolvedSlug = unresolvedSlugs[slugKey];\n      assert(unresolvedSlug, \"unresolvedSlug should be defined\");\n      const lazyValue = resolveSlug(unresolvedSlug, collectionUtils, activeLocale);\n      const promise = lazyValue.preload();\n      if (promise) {\n        promises.push(promise);\n      } else {\n        const value = lazyValue.read();\n        if (value) {\n          result2[slugKey] = value;\n        }\n      }\n    }\n    return result2;\n  }\n  const result = {\n    path: handleSlugs(unresolvedPathSlugs),\n    hash: handleSlugs(unresolvedHashSlugs)\n  };\n  if (promises.length) {\n    throw Promise.allSettled(promises);\n  }\n  return result;\n}\nvar Link = /* @__PURE__ */ React73.forwardRef(\n  ({ children, href, openInNewTab, smoothScroll, ...restProps }, forwardedRef) => {\n    const router = useRouter();\n    const currentRoute = useCurrentRoute();\n    const implicitPathVariables = useImplicitPathVariables();\n    const { activeLocale } = useLocaleInfo();\n    const props = React73.useMemo(() => {\n      var _a;\n      if (!href)\n        return {};\n      const pageLink = isLinkToWebPage(href) ? href : linkFromFramerPageLink(href);\n      if (!pageLink)\n        return {};\n      if (isString2(pageLink)) {\n        return propsForRoutePath(\n          pageLink,\n          openInNewTab,\n          router,\n          currentRoute,\n          implicitPathVariables,\n          smoothScroll\n        );\n      }\n      const { webPageId, hash: hash2, pathVariables, hashVariables, unresolvedHashSlugs, unresolvedPathSlugs } = pageLink;\n      const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId);\n      const hasUnresolvedSlugs = unresolvedHashSlugs || unresolvedPathSlugs;\n      const resolvedSlugs = resolveSlugsWithSuspense(\n        unresolvedPathSlugs,\n        unresolvedHashSlugs,\n        router.collectionUtils,\n        activeLocale\n      );\n      if (route)\n        preloadComponent(route.page);\n      const combinedPathVariable = Object.assign({}, implicitPathVariables, pathVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.path);\n      const combinedHashVariable = Object.assign({}, implicitPathVariables, hashVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.hash);\n      const anchorTarget = getTargetAttrValue(openInNewTab, true);\n      const resolvedHref = getPathForRoute(route, {\n        currentRoutePath: currentRoute == null ? void 0 : currentRoute.path,\n        hash: hash2,\n        pathVariables: combinedPathVariable,\n        hashVariables: combinedHashVariable\n      });\n      const resolvedHash = resolvedHref.split(\"#\", 2)[1];\n      return {\n        href: resolvedHref,\n        target: anchorTarget,\n        onClick: createOnClickLinkHandler(router, webPageId, resolvedHash, combinedPathVariable, smoothScroll),\n        \"data-framer-page-link-current\": currentRoute && linkMatchesRoute(currentRoute, pageLink, implicitPathVariables) || void 0\n      };\n    }, [href, router, activeLocale, implicitPathVariables, openInNewTab, currentRoute, smoothScroll]);\n    if (!children)\n      return null;\n    const child = React73.Children.only(children);\n    if (!React73.isValidElement(child))\n      return null;\n    return React73.cloneElement(child, { ...restProps, ...props, ref: forwardedRef != null ? forwardedRef : restProps.ref });\n  }\n);\nfunction resolveLink(href, router, implicitPathVariables) {\n  return resolveLinkInternal(href, router, implicitPathVariables);\n}\nfunction resolveLinkInternal(href, router, implicitPathVariables, resolveSlugs) {\n  const pageLink = isLinkToWebPage(href) ? href : linkFromFramerPageLink(href);\n  if (!isLinkToWebPage(pageLink))\n    return isString2(href) ? propsForLink(href).href : void 0;\n  if (!router.getRoute || !router.currentRouteId)\n    return void 0;\n  const currentRoute = router.getRoute(router.currentRouteId);\n  const { webPageId, hash: hash2, pathVariables, hashVariables, unresolvedHashSlugs, unresolvedPathSlugs } = pageLink;\n  const route = router.getRoute(webPageId);\n  const resolvedSlugs = unresolvedPathSlugs || unresolvedHashSlugs ? resolveSlugs == null ? void 0 : resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs) : void 0;\n  const combinedPathVariables = Object.assign(\n    {},\n    router.currentPathVariables,\n    implicitPathVariables,\n    pathVariables,\n    resolvedSlugs == null ? void 0 : resolvedSlugs.path\n  );\n  const combinedHashVariables = Object.assign(\n    {},\n    router.currentPathVariables,\n    implicitPathVariables,\n    hashVariables,\n    resolvedSlugs == null ? void 0 : resolvedSlugs.hash\n  );\n  return getPathForRoute(route, {\n    currentRoutePath: currentRoute == null ? void 0 : currentRoute.path,\n    hash: hash2,\n    pathVariables: combinedPathVariables,\n    hashVariables: combinedHashVariables,\n    relative: false\n  });\n}\nfunction resolvePageScope(pageLink, router) {\n  if (!router.getRoute || !router.currentRouteId)\n    return void 0;\n  const currentRoute = router.getRoute(router.currentRouteId);\n  const { webPageId } = pageLink;\n  const route = router.getRoute(webPageId);\n  return getPathForRoute(route, {\n    currentRoutePath: currentRoute == null ? void 0 : currentRoute.path,\n    relative: false\n  });\n}\n\n// ../../library/src/modules/PageRoot.tsx\nimport React74 from \"react\";\nfunction PageRoot({\n  RootComponent,\n  isWebsite,\n  routeId,\n  pathVariables,\n  routes,\n  collectionUtils,\n  notFoundPage,\n  isReducedMotion = false,\n  includeDataObserver = false,\n  localeId,\n  locales\n}) {\n  React74.useEffect(() => {\n    if (isWebsite)\n      return;\n    MainLoop.start();\n  }, []);\n  if (isWebsite) {\n    return /* @__PURE__ */ React74.createElement(MotionConfig, { reducedMotion: isReducedMotion ? \"user\" : \"never\" }, /* @__PURE__ */ React74.createElement(\n      Router,\n      {\n        initialRoute: routeId,\n        initialPathVariables: pathVariables,\n        initialLocaleId: localeId,\n        routes,\n        collectionUtils,\n        notFoundPage,\n        locales,\n        defaultPageStyle: { minHeight: \"100vh\", width: \"auto\" }\n      }\n    ));\n  } else {\n    const Wrapper = includeDataObserver ? DataObserver : React74.Fragment;\n    return /* @__PURE__ */ React74.createElement(Wrapper, null, /* @__PURE__ */ React74.createElement(RoutesProvider, { routes }, /* @__PURE__ */ React74.createElement(NavigationWrapper, null, React74.isValidElement(RootComponent) ? RootComponent : React74.createElement(\n      // @ts-expect-error to figure out how to type this properly, as tests are using different\n      // $$typeof symbol and isValidElement fails\n      RootComponent,\n      { key: routeId }\n    ))));\n  }\n}\n\n// ../../library/src/modules/PropertyOverrides.tsx\nimport React77 from \"react\";\n\n// ../../library/src/modules/withCSS.tsx\nimport React76 from \"react\";\n\n// ../../library/src/render/StyleSheetContext.ts\nimport React75 from \"react\";\nvar StyleSheetContext = /* @__PURE__ */ React75.createContext(void 0);\n\n// ../../library/src/modules/withCSS.tsx\nif (isBrowser2()) {\n  for (const node of document.querySelectorAll(\"style[data-framer-css-ssr]\")) {\n    document.head.appendChild(node);\n  }\n}\nvar componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {\n  var _a;\n  if (!isBrowser2())\n    return /* @__PURE__ */ new Set();\n  const componentsWithSSRStylesAttr = (_a = document.querySelector(\"style[data-framer-css-ssr-minified]\")) == null ? void 0 : _a.getAttribute(\"data-framer-components\");\n  if (!componentsWithSSRStylesAttr)\n    return /* @__PURE__ */ new Set();\n  return new Set(componentsWithSSRStylesAttr.split(\" \"));\n})();\nvar styleTagSSRMarker = { \"data-framer-css-ssr\": true };\nvar withCSS = (Component14, escapedCSS, componentSerializationId) => React76.forwardRef((props, ref) => {\n  var _a;\n  const { sheet, cache: cache3 } = (_a = React76.useContext(StyleSheetContext)) != null ? _a : {};\n  if (!isBrowser2()) {\n    const concatenatedCSS = Array.isArray(escapedCSS) ? escapedCSS.join(\"\\n\") : escapedCSS;\n    return /* @__PURE__ */ React76.createElement(React76.Fragment, null, /* @__PURE__ */ React76.createElement(\n      \"style\",\n      {\n        ...styleTagSSRMarker,\n        \"data-framer-component\": componentSerializationId,\n        dangerouslySetInnerHTML: { __html: concatenatedCSS }\n      }\n    ), /* @__PURE__ */ React76.createElement(Component14, { ...props, ref }));\n  }\n  React76.useInsertionEffect(() => {\n    if (componentSerializationId && componentsWithServerRenderedStyles.has(componentSerializationId))\n      return;\n    const css = Array.isArray(escapedCSS) ? escapedCSS : escapedCSS.split(\"\\n\");\n    css.forEach((rule) => rule && injectCSSRule(rule, sheet, cache3));\n  }, []);\n  return /* @__PURE__ */ React76.createElement(Component14, { ...props, ref });\n});\n\n// ../../library/src/modules/PropertyOverrides.tsx\nvar SSRParentVariantsContext = /* @__PURE__ */ React77.createContext(void 0);\nvar SSRVariantClassName = \"ssr-variant\";\nfunction propsForClonedChild(child, props, ref) {\n  var _a;\n  if (\"ref\" in child)\n    return { ...props, ref: (_a = child.ref) != null ? _a : ref };\n  return { ...props, ref };\n}\nfunction childrenWithForwardedProps(children, props, ref) {\n  return /* @__PURE__ */ React77.createElement(React77.Fragment, null, React77.Children.map(children, (child) => {\n    if (!child || !isReactChild(child) || !isReactElement(child))\n      return null;\n    return React77.cloneElement(child, propsForClonedChild(child, props, ref));\n  }));\n}\nfunction renderBranchedChildrenFromPropertyOverrides(overrides, children, props, ref, variantClassNames, primaryVariantId, parentVariants, type) {\n  const childrenArray = React77.Children.toArray(children);\n  const child = childrenArray[0];\n  if (childrenArray.length !== 1 || !React77.isValidElement(child)) {\n    console.warn(type + \": expected exactly one React element for a child\", children);\n    return childrenWithForwardedProps(children, props, ref);\n  }\n  const branches = [];\n  const nonOverriddenVariants = [];\n  for (const [variantId] of Object.entries(variantClassNames)) {\n    if (variantId === primaryVariantId)\n      continue;\n    const propOverrides = overrides[variantId];\n    if (!propOverrides || !arePropOverridesEffectivelyDifferent(child.props, propOverrides)) {\n      nonOverriddenVariants.push(variantId);\n      continue;\n    }\n    const effectiveVariants = intersection([variantId], parentVariants);\n    if (effectiveVariants.length)\n      branches.push({ variants: effectiveVariants, propOverrides });\n  }\n  if (branches.length === 0)\n    return React77.cloneElement(child, { ...props, ref });\n  const remainingVariants = [primaryVariantId, ...nonOverriddenVariants];\n  const effectiveRemainingVariants = intersection(remainingVariants, parentVariants);\n  if (effectiveRemainingVariants.length)\n    branches.unshift({ variants: effectiveRemainingVariants });\n  const displayContents = `.${SSRVariantClassName} { display: contents }`;\n  return /* @__PURE__ */ React77.createElement(React77.Fragment, null, !parentVariants && /* @__PURE__ */ React77.createElement(\"style\", { ...styleTagSSRMarker }, displayContents), branches.map(({ variants, propOverrides }) => {\n    const key7 = variants.join(\"+\");\n    let element = (\n      // We could omit the SSRParentVariantsContext if variants is\n      // the same as parentVariants, but that'd require comparing\n      // arrays, so it might not really be an optimization. And\n      // since it's just a context, it doesn't affect the size of\n      // the generated HTML.\n      /* @__PURE__ */ React77.createElement(SSRParentVariantsContext.Provider, { key: key7, value: new Set(variants) }, React77.cloneElement(child, { ...props, ...propOverrides, ref }))\n    );\n    const hiddenClassNames = generateHiddenClassNames(variants, parentVariants, variantClassNames);\n    if (hiddenClassNames.length) {\n      assert(branches.length > 1, \"Must branch out when there are hiddenClassNames\");\n      element = /* @__PURE__ */ React77.createElement(\"div\", { key: key7, className: `${SSRVariantClassName} ${hiddenClassNames.join(\" \")}` }, element);\n    } else {\n      assert(branches.length === 1, \"Cannot branch out when hiddenClassNames is empty\");\n    }\n    return element;\n  }));\n}\nvar SSRVariants = /* @__PURE__ */ React77.forwardRef(\n  function SSRVariants2({ id: nodeId, children, ...props }, ref) {\n    if (isBrowser2()) {\n      return childrenWithForwardedProps(children, props, ref);\n    }\n    const generatedComponentContext = React77.useContext(GeneratedComponentContext);\n    if (!generatedComponentContext || !generatedComponentContext.variantProps) {\n      console.warn(\"SSRVariants is missing GeneratedComponentContext\");\n      return childrenWithForwardedProps(children, props, ref);\n    }\n    const parentVariants = React77.useContext(SSRParentVariantsContext);\n    const { primaryVariantId, variantClassNames, variantProps } = generatedComponentContext;\n    const overrides = React77.useMemo(() => {\n      const nextOverrides = {};\n      for (const [variant, values] of Object.entries(variantProps)) {\n        nextOverrides[variant] = values[nodeId];\n      }\n      return nextOverrides;\n    }, [nodeId, variantProps]);\n    return renderBranchedChildrenFromPropertyOverrides(\n      overrides,\n      children,\n      props,\n      ref,\n      variantClassNames,\n      primaryVariantId,\n      parentVariants,\n      \"SSRVariants\"\n    );\n  }\n);\nfunction generateHiddenClassNames(showOnlyInVariantIds, parentVariants, variantClassNames) {\n  const classNames = [];\n  for (const [variantId, variantClassName] of Object.entries(variantClassNames)) {\n    const alreadyHiddenInParent = parentVariants && !parentVariants.has(variantId);\n    if (showOnlyInVariantIds.includes(variantId) || alreadyHiddenInParent)\n      continue;\n    const variantHash = variantClassName.split(\"-\")[2];\n    classNames.push(`hidden-${variantHash}`);\n  }\n  return classNames;\n}\nfunction intersection(variants, parentVariants) {\n  if (!parentVariants)\n    return variants;\n  return variants.filter((variant) => parentVariants.has(variant));\n}\nfunction propertyKeyDifferenceShouldBeIgnored(key7) {\n  switch (key7) {\n    case \"transformTemplate\":\n      return false;\n    default:\n      return false;\n  }\n}\nfunction arePropOverridesEffectivelyDifferent(props, propOverrides) {\n  for (const key7 of Object.keys(propOverrides)) {\n    if (propertyKeyDifferenceShouldBeIgnored(key7))\n      continue;\n    if (!isEqual(props[key7], propOverrides[key7], true)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction propsForBreakpoint(variant, props, overrides) {\n  if (!overrides || !variant)\n    return props;\n  return { ...props, ...overrides[variant] };\n}\nvar PropertyOverrides = /* @__PURE__ */ React77.forwardRef(\n  function PropertyOverrides2({ breakpoint, overrides, children, ...props }, ref) {\n    if (isBrowser2()) {\n      return childrenWithForwardedProps(children, propsForBreakpoint(breakpoint, props, overrides), ref);\n    }\n    const generatedComponentContext = React77.useContext(GeneratedComponentContext);\n    if (!generatedComponentContext) {\n      console.warn(\"PropertyOverrides is missing GeneratedComponentContext\");\n      return childrenWithForwardedProps(children, props, ref);\n    }\n    const { primaryVariantId, variantClassNames } = generatedComponentContext;\n    const parentVariants = React77.useContext(SSRParentVariantsContext);\n    return renderBranchedChildrenFromPropertyOverrides(\n      overrides,\n      children,\n      props,\n      ref,\n      variantClassNames,\n      primaryVariantId,\n      parentVariants,\n      \"PropertyOverrides\"\n    );\n  }\n);\n\n// ../../library/src/modules/ResolveLinks.tsx\nfunction ResolveLinks({ links, children }) {\n  const router = useRouter();\n  const { activeLocale } = useLocaleInfo();\n  const promises = [];\n  const resolvedLinks = links.map((link) => {\n    return resolveLinkInternal(\n      link.href,\n      router,\n      link.implicitPathVariables,\n      (unresolvedPathSlugs, unresolvedHashslugs) => {\n        function handleSlugs(slugs) {\n          const result = {};\n          for (const slugKey in slugs) {\n            const unresolvedSlug = slugs[slugKey];\n            assert(router.collectionUtils, \"collectionUtils should be defined\");\n            assert(unresolvedSlug, \"unresolvedSlug be defined\");\n            const lazyValue = resolveSlug(unresolvedSlug, router.collectionUtils, activeLocale);\n            const promise = lazyValue.preload();\n            if (promise) {\n              promises.push(promise);\n            } else {\n              const resolvedValue = lazyValue.read();\n              if (resolvedValue) {\n                result[slugKey] = resolvedValue;\n              }\n            }\n          }\n          return result;\n        }\n        return {\n          path: handleSlugs(unresolvedPathSlugs),\n          hash: handleSlugs(unresolvedHashslugs)\n        };\n      }\n    );\n  });\n  if (promises.length > 0) {\n    throw Promise.allSettled(promises);\n  }\n  return children(resolvedLinks);\n}\n\n// ../../library/src/modules/callEach.ts\nvar callEach = (...fns) => fns.forEach((fn) => fn && fn());\n\n// ../../library/src/modules/optimizeAppear.ts\nvar AnimationCollector = class {\n  constructor() {\n    this.entries = /* @__PURE__ */ new Map();\n  }\n  set(nodeId, prop, value, variantHash) {\n    const nodeEntry = this.entries.get(nodeId);\n    switch (prop) {\n      case \"transformTemplate\": {\n        assert(typeof value === \"string\", `transformTemplate must be a string, received: ${value}`);\n        if (nodeEntry) {\n          nodeEntry.transformTemplate = value;\n        } else {\n          this.entries.set(nodeId, { transformTemplate: value });\n        }\n        break;\n      }\n      case \"initial\":\n      case \"animate\": {\n        assert(typeof value === \"object\", `${prop} must be a valid object, received: ${value}`);\n        if (nodeEntry) {\n          nodeEntry[prop] = value;\n          if (!nodeEntry.variantHash) {\n            nodeEntry.variantHash = variantHash;\n          }\n        } else {\n          this.entries.set(nodeId, { [prop]: value, variantHash });\n        }\n        break;\n      }\n      default:\n        break;\n    }\n  }\n  clear() {\n    this.entries.clear();\n  }\n  toObject() {\n    return Object.fromEntries(this.entries);\n  }\n};\nvar framerAppearEffects = /* @__PURE__ */ new AnimationCollector();\nvar optimizeAppear = (prop, id, animateTargetAndTransition, variantHash) => {\n  if (!isBrowser2()) {\n    framerAppearEffects.set(id, prop, animateTargetAndTransition, variantHash);\n  }\n  return animateTargetAndTransition;\n};\nvar framerAppearTransformTemplateToken = \"__Appear_Animation_Transform__\";\nvar optimizeAppearTransformTemplate = (id, fn) => {\n  if (!isBrowser2()) {\n    const template = fn == null ? void 0 : fn({}, framerAppearTransformTemplateToken);\n    if (template === void 0)\n      return fn;\n    framerAppearEffects.set(id, \"transformTemplate\", template);\n  }\n  return fn;\n};\nvar framerAppearIdKey = \"data-framer-appear-id\";\nvar framerAppearAnimationScriptKey = \"data-framer-appear-animation\";\n\n// ../../library/src/modules/useActiveVariantCallback.ts\nimport React78 from \"react\";\nfunction rejectPending(pendingTimers, pendingPromises) {\n  pendingTimers.forEach((t) => clearTimeout(t));\n  pendingTimers.clear();\n  pendingPromises.forEach((reject) => reject && reject(\"Callback cancelled by variant change\"));\n  pendingPromises.clear();\n}\nfunction createSet() {\n  return /* @__PURE__ */ new Set();\n}\nfunction useActiveVariantCallback(baseVariant) {\n  const pendingPromises = useConstant(createSet);\n  const pendingTimers = useConstant(createSet);\n  useOnCurrentTargetChange(() => {\n    return () => rejectPending(pendingTimers, pendingPromises);\n  });\n  React78.useEffect(() => {\n    return () => rejectPending(pendingTimers, pendingPromises);\n  }, [pendingPromises, pendingTimers]);\n  React78.useEffect(() => {\n    rejectPending(pendingTimers, pendingPromises);\n  }, [baseVariant, pendingPromises, pendingTimers]);\n  return React78.useRef({\n    /**\n     * Create a callback that can be cancelled if the base variant changes.\n     */\n    activeVariantCallback: (callback) => (...args) => {\n      return new Promise((resolve, reject) => {\n        pendingPromises.add(reject);\n        return callback(...args).then(resolve);\n      }).catch(() => {\n      });\n    },\n    /**\n     * Execute a callback after a defined period of time. The callback will not\n     * be called if pending events are cancelled because the timeout will be\n     * cancelled.\n     */\n    delay: async (callback, msDelay) => {\n      await new Promise((resolve) => pendingTimers.add(globalThis.setTimeout(() => resolve(true), msDelay)));\n      callback();\n    }\n  }).current;\n}\nfunction useActiveTargetCallback() {\n  const value = useActiveVariantCallback(void 0);\n  return React78.useRef({\n    activeTargetCallback: value.activeVariantCallback,\n    delay: value.delay\n  }).current;\n}\n\n// ../../library/src/modules/useAddVariantProps.ts\nimport React79 from \"react\";\nfunction useAddVariantProps(baseVariant, gestureVariant, variantProps) {\n  return React79.useCallback(\n    (id) => {\n      var _a, _b, _c;\n      if (!variantProps)\n        return {};\n      if (!baseVariant)\n        return {};\n      if (gestureVariant) {\n        return Object.assign({}, (_a = variantProps[baseVariant]) == null ? void 0 : _a[id], (_b = variantProps[gestureVariant]) == null ? void 0 : _b[id]);\n      }\n      return ((_c = variantProps[baseVariant]) == null ? void 0 : _c[id]) || {};\n    },\n    [baseVariant, gestureVariant, variantProps]\n  );\n}\n\n// ../../library/src/modules/useBreakpointVariants.ts\nimport { startTransition as startTransition2, useCallback as useCallback8, useContext as useContext13, useEffect as useEffect10, useRef as useRef12 } from \"react\";\nfunction createMediaQueriesFromBreakpoints(breakpoints) {\n  const mediaQueries = {};\n  for (const [variant, query] of Object.entries(breakpoints)) {\n    const { min = 0, max } = query;\n    const mediaQuery = [];\n    if (min)\n      mediaQuery.push(`(min-width: ${min}px)`);\n    if (max)\n      mediaQuery.push(`(max-width: ${max}px)`);\n    if (mediaQuery.length)\n      mediaQueries[variant] = mediaQuery.join(\" and \");\n  }\n  return mediaQueries;\n}\nfunction activeMediaQueryFromWindow(mediaQueries) {\n  for (const [variant, query] of Object.entries(mediaQueries)) {\n    const mql = safeWindow.matchMedia(query);\n    if (mql.matches)\n      return variant;\n  }\n}\nfunction useHydratedBreakpointVariants(initial, mediaQueries, hydratedWithInitial = true) {\n  var _a;\n  const isInitialNavigation = useContext13(IsInitialNavigationContext);\n  const baseVariant = useRef12(isBrowser2() ? (_a = activeMediaQueryFromWindow(mediaQueries)) != null ? _a : initial : initial);\n  const basePropsVariant = useRef12(hydratedWithInitial && isInitialNavigation ? initial : baseVariant.current);\n  const forceUpdate = useForceUpdate3();\n  const instantTransition = useInstantTransition();\n  const setActiveVariantInstant = useCallback8(\n    (variant) => {\n      if (variant !== baseVariant.current || variant !== basePropsVariant.current)\n        instantTransition(() => {\n          baseVariant.current = basePropsVariant.current = variant;\n          startTransition2(() => {\n            forceUpdate();\n          });\n        });\n    },\n    [instantTransition, forceUpdate]\n  );\n  useIsomorphicLayoutEffect2(() => {\n    if (!hydratedWithInitial || isInitialNavigation !== true)\n      return;\n    setActiveVariantInstant(baseVariant.current);\n  }, []);\n  useEffect10(() => {\n    const callbacks2 = [];\n    for (const [variant, query] of Object.entries(mediaQueries)) {\n      const mql = safeWindow.matchMedia(query);\n      const callback = (event) => {\n        if (event.matches)\n          setActiveVariantInstant(variant);\n      };\n      addMQLCallback(mql, callback);\n      callbacks2.push([mql, callback]);\n    }\n    return () => callbacks2.forEach(([mql, callback]) => removeMQLCallback(mql, callback));\n  }, [mediaQueries, setActiveVariantInstant]);\n  return [baseVariant.current, basePropsVariant.current];\n}\nfunction addMQLCallback(mql, callback) {\n  if (mql.addEventListener) {\n    mql.addEventListener(\"change\", callback);\n  } else {\n    mql.addListener(callback);\n  }\n}\nfunction removeMQLCallback(mql, callback) {\n  if (mql.removeEventListener) {\n    mql.removeEventListener(\"change\", callback);\n  } else {\n    mql.removeListener(callback);\n  }\n}\nfunction useBreakpointVariants(initial, _width, breakpoints) {\n  const mediaQueries = useConstant(() => createMediaQueriesFromBreakpoints(breakpoints));\n  const [initialVariant] = useHydratedBreakpointVariants(initial, mediaQueries, true);\n  return initialVariant;\n}\nfunction removeHiddenBreakpointLayers(initial, mediaQueries, variantClassNames) {\n  var _a, _b, _c, _d, _e;\n  const activeVariant = (_a = activeMediaQueryFromWindow(mediaQueries)) != null ? _a : initial;\n  const activeVariantHash = (_b = variantClassNames[activeVariant]) == null ? void 0 : _b.split(\"-\")[2];\n  if (activeVariantHash) {\n    for (const hiddenLayer of document.querySelectorAll(`.hidden-${activeVariantHash}`)) {\n      (_c = hiddenLayer.parentNode) == null ? void 0 : _c.removeChild(hiddenLayer);\n    }\n  }\n  for (const ssrVariant of document.querySelectorAll(`.${SSRVariantClassName}`)) {\n    if (ssrVariant.childElementCount > 1) {\n      console.warn(\"SSR variant was expected to have at most one child at this point\", ssrVariant);\n      continue;\n    } else if (ssrVariant.childElementCount === 1) {\n      (_d = ssrVariant.parentNode) == null ? void 0 : _d.replaceChild(ssrVariant.firstChild, ssrVariant);\n    } else {\n      (_e = ssrVariant.parentNode) == null ? void 0 : _e.removeChild(ssrVariant);\n    }\n  }\n  for (const image of document.querySelectorAll(\"[data-framer-original-sizes]\")) {\n    const originalSizes = image.getAttribute(\"data-framer-original-sizes\");\n    if (originalSizes === \"\") {\n      image.removeAttribute(\"sizes\");\n    } else {\n      image.setAttribute(\"sizes\", originalSizes);\n    }\n    image.removeAttribute(\"data-framer-original-sizes\");\n  }\n}\n\n// ../../library/src/modules/useDataRecord.ts\nimport { useMemo as useMemo5 } from \"react\";\nfunction useDataRecord(collection, variables) {\n  return useMemo5(() => {\n    if (!Array.isArray(collection)) {\n      return null;\n    }\n    if (!variables) {\n      return null;\n    }\n    const pageRecord = collection.find((record) => {\n      return Object.entries(variables).every(([key7, value]) => {\n        const recordValue = record[key7];\n        if (value === void 0 || recordValue === void 0 || isObject2(value) || isObject2(recordValue)) {\n          return false;\n        }\n        return String(value) === String(recordValue);\n      });\n    });\n    return pageRecord != null ? pageRecord : null;\n  }, [collection, variables]);\n}\n\n// ../../library/src/modules/useDynamicRefs.ts\nimport React80, { createRef } from \"react\";\nfunction useDynamicRefs() {\n  const map = useConstant(() => /* @__PURE__ */ new Map());\n  return React80.useCallback(\n    (key7) => {\n      const existing = map.get(key7);\n      if (existing)\n        return existing;\n      const ref = createRef();\n      map.set(key7, ref);\n      return ref;\n    },\n    [map]\n  );\n}\n\n// ../../library/src/modules/useGamepad.ts\nimport React81 from \"react\";\nfunction isFramerGamepadKeydownData(value) {\n  return isObject2(value) && value.mapping !== void 0;\n}\nfunction gamepadInputsHaveChanged(previous, current) {\n  if (previous.length !== current.length)\n    return true;\n  if (!previous.every((item, i) => current[i] === item))\n    return true;\n  return false;\n}\nfunction createGamepadPoller() {\n  const handlers = /* @__PURE__ */ new Set();\n  let isConnected = false;\n  let isPolling = null;\n  let lastKeys = [];\n  const startPolling = () => {\n    const input = getGamepadInputs();\n    if (!input)\n      return;\n    const { gamepad, inputs } = input;\n    const { mapping, id } = gamepad;\n    if (gamepadInputsHaveChanged(lastKeys, inputs))\n      handlers.forEach((handler) => handler({ inputs, mapping, id }));\n    lastKeys = inputs;\n    isPolling = safeWindow.requestAnimationFrame(startPolling);\n  };\n  const handleConnection = () => {\n    if (isConnected || isPolling)\n      return;\n    startPolling();\n    isConnected = true;\n  };\n  const stopPolling = () => {\n    if (!isPolling)\n      return;\n    safeWindow.cancelAnimationFrame(isPolling);\n    isPolling = null;\n  };\n  const handleDisconnection = () => {\n    if (!isConnected)\n      return;\n    stopPolling();\n    isConnected = false;\n  };\n  const setupAndStartPolling = () => {\n    if (isPolling)\n      return;\n    const gamepad = getGamepadInputs();\n    if (!gamepad) {\n      safeWindow.addEventListener(\"gamepadconnected\", handleConnection);\n      return;\n    }\n    safeWindow.addEventListener(\"gamepaddisconnected\", handleDisconnection);\n    isConnected = true;\n    startPolling();\n  };\n  const cleanupAndStopPolling = () => {\n    if (!isPolling)\n      return;\n    safeWindow.removeEventListener(\"gamepadconnected\", handleConnection);\n    safeWindow.removeEventListener(\"gamepaddisconnected\", handleDisconnection);\n    stopPolling();\n  };\n  return {\n    register(callback) {\n      if (handlers.size === 0)\n        setupAndStartPolling();\n      handlers.add(callback);\n    },\n    unregister(callback) {\n      handlers.delete(callback);\n      if (handlers.size === 0)\n        cleanupAndStopPolling();\n    }\n  };\n}\nvar gamepadPoller = /* @__PURE__ */ createGamepadPoller();\nvar GamepadContext = /* @__PURE__ */ React81.createContext(gamepadPoller);\nfunction getGamepadInputs() {\n  let firstConnectedGamepad = null;\n  const gamepads = navigator.getGamepads();\n  for (const gamepad of gamepads) {\n    if (!gamepad)\n      continue;\n    if (!firstConnectedGamepad)\n      firstConnectedGamepad = gamepad;\n    const inputs = [...scanPressedAxis(gamepad), ...scanPressedButtons(gamepad)];\n    if (inputs.length > 0)\n      return { gamepad, inputs };\n  }\n  if (firstConnectedGamepad)\n    return { gamepad: firstConnectedGamepad, inputs: [] };\n  return null;\n}\nfunction scanPressedAxis(gamepad) {\n  const axes = [];\n  for (const [idx, axis] of gamepad.axes.entries()) {\n    if (idx > 3)\n      continue;\n    if (axis <= -0.5)\n      axes.push(`Axis ${idx}-`);\n    if (axis > 0.5)\n      axes.push(`Axis ${idx}+`);\n  }\n  return axes;\n}\nfunction scanPressedButtons(gamepad) {\n  const buttons = [];\n  for (const [idx, button] of gamepad.buttons.entries()) {\n    if (isButtonPressed(button))\n      buttons.push(`Button ${idx}`);\n  }\n  return buttons;\n}\nfunction isButtonPressed(button) {\n  return button.pressed === true || button.value > 0;\n}\nfunction useGamepad(input, callback, { mapping, on } = {}) {\n  const context = React81.useContext(GamepadContext);\n  const settings = useConstant(() => ({\n    mapping: mapping != null ? mapping : \"standard\",\n    on: on != null ? on : \"keydown\"\n  }));\n  const stateRef = React81.useRef({\n    pressed: false,\n    handler: callback\n  });\n  const cb = React81.useCallback(\n    (gamepad) => {\n      const { pressed, handler } = stateRef.current;\n      if (gamepad.inputs.includes(input) && settings.mapping === gamepad.mapping) {\n        settings.on === \"keydown\" && handler();\n        stateRef.current.pressed = true;\n      } else if (pressed) {\n        settings.on === \"keyup\" && handler();\n        stateRef.current.pressed = false;\n      }\n    },\n    [input, settings]\n  );\n  useOnCurrentTargetChange((isInTarget, isOverlayed) => {\n    const isActive = isInTarget && !isOverlayed;\n    if (isActive) {\n      context.register(cb);\n    } else {\n      context.unregister(cb);\n    }\n    return () => context.unregister(cb);\n  }, []);\n  React81.useEffect(() => {\n    return () => context.unregister(cb);\n  }, [cb, context]);\n  React81.useEffect(() => {\n    stateRef.current.handler = callback;\n  }, [callback]);\n}\n\n// ../../library/src/modules/useHotkey.ts\nimport React82 from \"react\";\nvar modifierDefaults = {\n  altKey: false,\n  ctrlKey: false,\n  metaKey: false,\n  shiftKey: false\n};\nfunction createShortcutDefinition(shortcut) {\n  const keys3 = shortcut.split(\"+\");\n  const key7 = keys3.pop();\n  if (!key7)\n    return void 0;\n  const modifiers = {};\n  for (const modifier of keys3) {\n    modifiers[`${modifier}Key`] = true;\n  }\n  return {\n    ...modifierDefaults,\n    ...modifiers,\n    key: key7\n  };\n}\nfunction useHotkey(shortcut, callback) {\n  const inTarget = React82.useRef(true);\n  const shortcutDefinition = useConstant(() => createShortcutDefinition(shortcut));\n  useOnCurrentTargetChange((isCurrentTarget, isOverlayed) => {\n    inTarget.current = isCurrentTarget && !isOverlayed;\n    return () => inTarget.current = false;\n  });\n  const eventHandler = React82.useCallback(\n    (event) => {\n      if (!shortcutDefinition)\n        return;\n      if (!inTarget.current)\n        return;\n      if (!Object.keys(shortcutDefinition).every((key7) => shortcutDefinition[key7] === asRecord(event)[key7]))\n        return;\n      event.preventDefault();\n      callback();\n    },\n    [shortcutDefinition, callback]\n  );\n  React82.useEffect(() => {\n    document.addEventListener(\"keydown\", eventHandler);\n    return () => document.removeEventListener(\"keydown\", eventHandler);\n  }, [eventHandler]);\n}\n\n// ../../library/src/modules/useIsOnFramerCanvas.ts\nfunction useIsOnFramerCanvas() {\n  return RenderTarget.current() === \"CANVAS\" /* canvas */;\n}\n\n// ../../library/src/modules/useNavigate.tsx\nfunction useNavigate() {\n  const { navigate } = useRouter();\n  const onCanvas = useIsOnFramerCanvas();\n  if (!navigate)\n    return () => {\n    };\n  return (target) => {\n    if (onCanvas)\n      return;\n    navigate(target);\n    return false;\n  };\n}\n\n// ../../library/src/modules/useOnVariantChange.ts\nimport React83 from \"react\";\nfunction callbackForVariant(map, variant) {\n  if (map[variant])\n    return map[variant];\n  if (variant in map)\n    return void 0;\n  return map.default;\n}\nfunction useOnVariantChange(variant, callbackMap) {\n  const isOnFramerCanvas = useIsOnFramerCanvas();\n  if (isOnFramerCanvas)\n    return;\n  const isActiveScreenRef = React83.useRef(true);\n  const callbackMapRef = React83.useRef(callbackMap);\n  useOnCurrentTargetChange((isCurrent, isOverlayed) => {\n    const isActiveScreen = isCurrent && !isOverlayed;\n    if (!isActiveScreenRef.current && isActiveScreen) {\n      const callback = callbackForVariant(callbackMapRef.current, variant);\n      if (callback)\n        callback();\n    }\n    isActiveScreenRef.current = isActiveScreen;\n  }, []);\n  React83.useEffect(() => {\n    if (isActiveScreenRef.current) {\n      const callback = callbackForVariant(callbackMapRef.current, variant);\n      if (callback)\n        callback();\n    }\n  }, [variant]);\n}\nfunction useOnAppear(callback) {\n  useOnVariantChange(\"default\", { default: callback });\n}\n\n// ../../library/src/modules/useOverlayState.tsx\nimport React84 from \"react\";\nfunction useOverlayState({ blockDocumentScrolling = true } = {}) {\n  const [showOverlay, setShowOverlay] = React84.useState(false);\n  const callback = React84.useCallback(\n    (show) => {\n      setShowOverlay(show);\n      if (blockDocumentScrolling === false)\n        return;\n      if (show) {\n        document.documentElement.style.setProperty(\"overflow\", \"hidden\");\n      } else {\n        document.documentElement.style.removeProperty(\"overflow\");\n      }\n    },\n    [blockDocumentScrolling]\n  );\n  React84.useEffect(\n    () => () => {\n      if (blockDocumentScrolling === false)\n        return;\n      document.documentElement.style.removeProperty(\"overflow\");\n    },\n    [blockDocumentScrolling]\n  );\n  return [showOverlay, callback];\n}\n\n// ../../library/src/modules/usePrototypeNavigate.tsx\nimport React85 from \"react\";\nasync function componentForRoute(route) {\n  if (!isRoute(route))\n    return;\n  const { page: routeComponent } = route;\n  if (!routeComponent)\n    return;\n  if (React85.isValidElement(routeComponent))\n    return routeComponent;\n  if (withPreload(routeComponent))\n    await routeComponent.preload();\n  return React85.createElement(routeComponent, { key: route.path });\n}\nvar preloadKey2 = \"preload\";\nfunction withPreload(component) {\n  return !!component && isObject2(component) && preloadKey2 in component;\n}\nfunction usePrototypeNavigate({ preload } = {}) {\n  const navigation = useNavigation();\n  const { getRoute } = useRouter();\n  const onCanvas = useIsOnFramerCanvas();\n  React85.useEffect(() => {\n    if (!navigation || onCanvas)\n      return;\n    preload == null ? void 0 : preload.forEach((componentOrRoute) => {\n      let component;\n      if (isString2(componentOrRoute)) {\n        const route = getRoute == null ? void 0 : getRoute(componentOrRoute);\n        if (isRoute(route)) {\n          component = route.page;\n        }\n      } else {\n        component = componentOrRoute;\n      }\n      if (component && withPreload(component))\n        component.preload();\n    });\n  }, []);\n  if (!navigation)\n    return () => {\n    };\n  return async (target, options = {}) => {\n    if (onCanvas)\n      return;\n    if (target === \"previous\") {\n      navigation.goBack();\n      return false;\n    }\n    const Component14 = typeof target === \"string\" ? await componentForRoute(getRoute == null ? void 0 : getRoute(target)).catch(() => {\n    }) : React85.isValidElement(target) ? target : null;\n    if (!Component14)\n      return;\n    const { appearsFrom, backdropColor, animation } = options;\n    const transitionType = options.transition || \"instant\";\n    switch (transitionType) {\n      case \"instant\":\n        navigation.instant(Component14);\n        break;\n      case \"fade\":\n        navigation.fade(Component14, { animation });\n        break;\n      case \"push\":\n        navigation.push(Component14, { appearsFrom, animation });\n        break;\n      case \"flip\":\n        navigation.flip(Component14, { appearsFrom, animation });\n        break;\n      case \"magicMotion\":\n        navigation.magicMotion(Component14, { animation });\n        break;\n      case \"modal\":\n        navigation.modal(Component14, { backdropColor, animation });\n        break;\n      case \"overlay\":\n        navigation.overlay(Component14, { appearsFrom, backdropColor, animation });\n        break;\n    }\n    return false;\n  };\n}\n\n// ../../library/src/modules/useQueryData.ts\nimport { useRef as useRef13 } from \"react\";\nvar DeepWeakMap = class {\n  constructor() {\n    this.map1 = /* @__PURE__ */ new WeakMap();\n  }\n  get(key1, key22) {\n    const map2 = this.map1.get(key1);\n    return map2 == null ? void 0 : map2.get(key22);\n  }\n  set(key1, key22, value) {\n    var _a;\n    const map2 = (_a = this.map1.get(key1)) != null ? _a : /* @__PURE__ */ new WeakMap();\n    this.map1.set(key1, map2);\n    return map2.set(key22, value);\n  }\n};\nfunction useData({ data: data2 }) {\n  const { activeLocale } = useLocaleInfo();\n  if (isArray(data2))\n    return data2;\n  const promise = data2.preload(activeLocale);\n  if (promise)\n    throw promise;\n  return data2.read(activeLocale);\n}\nvar indexCache = /* @__PURE__ */ new WeakMap();\nfunction useInsertIndex(data2) {\n  const cached = indexCache.get(data2);\n  if (cached)\n    return cached;\n  const result = data2.map((item, index) => {\n    return { ...item, index };\n  });\n  indexCache.set(data2, result);\n  return result;\n}\nvar whereCache = /* @__PURE__ */ new DeepWeakMap();\nfunction useExecuteWhere(data2, where) {\n  if (!where)\n    return data2;\n  const cached = whereCache.get(data2, where);\n  if (cached)\n    return cached;\n  const result = data2.filter((item) => {\n    return evaluateExpression(where, {\n      resolveIdentifier(identifier) {\n        return item[identifier];\n      }\n    });\n  });\n  whereCache.set(data2, where, result);\n  return result;\n}\nvar orderByCache = /* @__PURE__ */ new DeepWeakMap();\nfunction useExecuteOrderBy(data2, orderBy) {\n  if (!orderBy)\n    return data2;\n  const cached = orderByCache.get(data2, orderBy);\n  if (cached)\n    return cached;\n  const result = [...data2].sort((leftItem, rightItem) => {\n    let order = 0;\n    for (const expression of orderBy) {\n      const leftValue = evaluateExpression(expression, {\n        resolveIdentifier(identifier) {\n          return leftItem[identifier];\n        }\n      });\n      const rightValue = evaluateExpression(expression, {\n        resolveIdentifier(identifier) {\n          return rightItem[identifier];\n        }\n      });\n      if (isNumber(leftValue) && isNumber(rightValue)) {\n        order = leftValue - rightValue;\n      }\n      if (isString2(leftValue) && isString2(rightValue)) {\n        order = leftValue.localeCompare(rightValue, \"en\");\n      }\n      if (order !== 0) {\n        return expression.direction === \"desc\" /* Descending */ ? -order : order;\n      }\n    }\n    if (isNumber(leftItem.index) && isNumber(rightItem.index)) {\n      return leftItem.index - rightItem.index;\n    }\n    return 0;\n  });\n  orderByCache.set(data2, orderBy, result);\n  return result;\n}\nvar offsetCache = /* @__PURE__ */ new DeepWeakMap();\nfunction useExecuteOffset(data2, offset) {\n  if (!offset)\n    return data2;\n  const cached = offsetCache.get(data2, offset);\n  if (cached)\n    return cached;\n  const offsetValue = evaluateExpression(offset, {\n    resolveIdentifier() {\n      throw new Error(\"Can't resolve identifier\");\n    }\n  });\n  const result = isNumber(offsetValue) ? data2.slice(offsetValue) : data2;\n  offsetCache.set(data2, offset, result);\n  return result;\n}\nvar limitCache = /* @__PURE__ */ new DeepWeakMap();\nfunction useExecuteLimit(data2, limit) {\n  if (!limit)\n    return data2;\n  const cached = limitCache.get(data2, limit);\n  if (cached)\n    return cached;\n  const limitValue = evaluateExpression(limit, {\n    resolveIdentifier() {\n      throw new Error(\"Can't resolve identifier\");\n    }\n  });\n  const result = isNumber(limitValue) ? data2.slice(0, limitValue) : data2;\n  limitCache.set(data2, limit, result);\n  return result;\n}\nvar selectCache = /* @__PURE__ */ new DeepWeakMap();\nfunction useExecuteSelect(data2, select) {\n  const cached = selectCache.get(data2, select);\n  if (cached)\n    return cached;\n  const preloadPromise = preloadExpressions(select, data2);\n  if (preloadPromise)\n    throw preloadPromise;\n  const result = data2.map((item) => {\n    var _a;\n    const selected = {};\n    for (const expression of select) {\n      const name = (_a = expression.alias) != null ? _a : stringifyExpression(expression);\n      selected[name] = evaluateExpression(expression, {\n        resolveIdentifier(identifier) {\n          const value = item[identifier];\n          if (LazyValue.is(value)) {\n            return value.read();\n          }\n          return value;\n        }\n      });\n    }\n    return selected;\n  });\n  selectCache.set(data2, select, result);\n  return result;\n}\nfunction preloadExpressions(expressions, data2) {\n  const identifiers = [];\n  for (const expression of expressions) {\n    extractIdentifiers(identifiers, expression);\n  }\n  if (identifiers.length === 0)\n    return;\n  const preloadPromises = [];\n  for (const item of data2) {\n    for (const identifier of identifiers) {\n      const value = item[identifier];\n      if (!LazyValue.is(value))\n        continue;\n      const promise = value.preload();\n      if (!promise)\n        continue;\n      preloadPromises.push(promise);\n    }\n  }\n  if (preloadPromises.length === 0)\n    return;\n  return Promise.all(preloadPromises);\n}\nfunction extractIdentifiers(identifiers, expression) {\n  if (expression.type === \"Identifier\") {\n    identifiers.push(expression.name);\n  }\n  if (expression.type === \"FunctionCall\") {\n    for (const argument of expression.arguments) {\n      extractIdentifiers(identifiers, argument);\n    }\n  }\n  if (expression.type === \"Case\") {\n    if (expression.value) {\n      extractIdentifiers(identifiers, expression.value);\n    }\n    for (const condition of expression.conditions) {\n      extractIdentifiers(identifiers, condition.when);\n      extractIdentifiers(identifiers, condition.then);\n    }\n    if (expression.else) {\n      extractIdentifiers(identifiers, expression.else);\n    }\n  }\n  if (expression.type === \"UnaryOperation\") {\n    extractIdentifiers(identifiers, expression.value);\n  }\n  if (expression.type === \"BinaryOperation\") {\n    extractIdentifiers(identifiers, expression.left);\n    extractIdentifiers(identifiers, expression.right);\n  }\n  if (expression.type === \"TypeCast\") {\n    extractIdentifiers(identifiers, expression.value);\n  }\n}\nfunction useQueryData(query) {\n  const queryRef = useRef13();\n  if (queryRef.current && isEqual(queryRef.current, query)) {\n    query = queryRef.current;\n  } else {\n    queryRef.current = query;\n  }\n  let result = useData(query.from);\n  result = useInsertIndex(result);\n  result = useExecuteWhere(result, query.where);\n  result = useExecuteOrderBy(result, query.orderBy);\n  result = useExecuteOffset(result, query.offset);\n  result = useExecuteLimit(result, query.limit);\n  result = useExecuteSelect(result, query.select);\n  return result;\n}\nfunction evaluateExpression(expression, context) {\n  switch (expression.type) {\n    case \"Identifier\":\n      return context.resolveIdentifier(expression.name);\n    case \"LiteralValue\":\n      return expression.value;\n    case \"FunctionCall\":\n      return evaluateFunctionCall(expression, context);\n    case \"Case\":\n      return evaluateCase(expression, context);\n    case \"UnaryOperation\":\n      return evaluateUnaryOperation(expression, context);\n    case \"BinaryOperation\":\n      return evaluateBinaryOperation(expression, context);\n    case \"TypeCast\":\n      return evaluateTypeCast(expression, context);\n    default:\n      throw new Error(`Unsupported expression: ${JSON.stringify(expression)}`);\n  }\n}\nfunction evaluateFunctionCall(expression, context) {\n  function getArgument(index) {\n    const argument = expression.arguments[index];\n    if (argument) {\n      return evaluateExpression(argument, context);\n    }\n  }\n  switch (expression.functionName) {\n    case \"CONTAINS\": {\n      const value = getArgument(0);\n      const search = getArgument(1);\n      if (isString2(value) && isString2(search)) {\n        return value.toLowerCase().includes(search.toLowerCase());\n      }\n      return false;\n    }\n    case \"STARTS_WITH\": {\n      const value = getArgument(0);\n      const search = getArgument(1);\n      if (isString2(value) && isString2(search)) {\n        return value.toLowerCase().startsWith(search.toLowerCase());\n      }\n      return false;\n    }\n    case \"ENDS_WITH\": {\n      const value = getArgument(0);\n      const search = getArgument(1);\n      if (isString2(value) && isString2(search)) {\n        return value.toLowerCase().endsWith(search.toLowerCase());\n      }\n      return false;\n    }\n    default: {\n      throw new Error(`Unsupported function: ${expression.functionName}`);\n    }\n  }\n}\nfunction evaluateCase(expression, context) {\n  const value = expression.value && evaluateExpression(expression.value, context);\n  for (const condition of expression.conditions) {\n    const when = evaluateExpression(condition.when, context);\n    if (expression.value ? isLooseEqual(when, value) : when) {\n      return evaluateExpression(condition.then, context);\n    }\n  }\n  if (expression.else) {\n    return evaluateExpression(expression.else, context);\n  }\n}\nfunction evaluateUnaryOperation(expression, context) {\n  const value = evaluateExpression(expression.value, context);\n  switch (expression.operator) {\n    case \"not\" /* Not */: {\n      return !value;\n    }\n    default: {\n      throw new Error(`Unsupported unary operation: ${expression.operator}`);\n    }\n  }\n}\nfunction evaluateBinaryOperation(expression, context) {\n  const left = evaluateExpression(expression.left, context);\n  const right = evaluateExpression(expression.right, context);\n  switch (expression.operator) {\n    case \"and\" /* And */: {\n      return Boolean(left && right);\n    }\n    case \"or\" /* Or */: {\n      return Boolean(left || right);\n    }\n    case \"==\" /* Equals */: {\n      return isLooseEqual(left, right);\n    }\n    case \"!=\" /* NotEquals */: {\n      return !isLooseEqual(left, right);\n    }\n    case \"<\" /* LessThan */: {\n      if (isNumber(left) && isNumber(right)) {\n        return left < right;\n      }\n      if (isValidDate(left) && isValidDate(right)) {\n        return left < right;\n      }\n      return false;\n    }\n    case \"<=\" /* LessThanOrEqual */: {\n      if (isNumber(left) && isNumber(right)) {\n        return left <= right;\n      }\n      if (isValidDate(left) && isValidDate(right)) {\n        return left <= right;\n      }\n      return false;\n    }\n    case \">\" /* GreaterThan */: {\n      if (isNumber(left) && isNumber(right)) {\n        return left > right;\n      }\n      if (isValidDate(left) && isValidDate(right)) {\n        return left > right;\n      }\n      return false;\n    }\n    case \">=\" /* GreaterThanOrEqual */: {\n      if (isNumber(left) && isNumber(right)) {\n        return left >= right;\n      }\n      if (isValidDate(left) && isValidDate(right)) {\n        return left >= right;\n      }\n      return false;\n    }\n    default: {\n      throw new Error(`Unsupported binary operation: ${expression.operator}`);\n    }\n  }\n}\nfunction evaluateTypeCast(expression, context) {\n  const value = evaluateExpression(expression.value, context);\n  switch (expression.dataType) {\n    case \"BOOLEAN\": {\n      return Boolean(value);\n    }\n    case \"NUMBER\": {\n      if (isNumber(value) && isFinite(value)) {\n        return value;\n      }\n      if (isString2(value)) {\n        const parsed = parseFloat(value);\n        if (isFinite(parsed)) {\n          return parsed;\n        }\n      }\n      return 0;\n    }\n    case \"DATE\": {\n      if (value instanceof Date)\n        return value;\n      if (!isString2(value) && !isNumber(value)) {\n        return void 0;\n      }\n      return new Date(value);\n    }\n    case \"STRING\": {\n      return String(value);\n    }\n    default: {\n      throw new Error(`Unsupported type cast: ${expression.dataType}`);\n    }\n  }\n}\nfunction stringifyExpression(expression) {\n  switch (expression.type) {\n    case \"Identifier\": {\n      return expression.name;\n    }\n    default: {\n      throw new Error(`Can't stringify expression: ${JSON.stringify(expression)}`);\n    }\n  }\n}\nfunction isLooseEqual(left, right) {\n  if (left == null && right == null) {\n    return true;\n  }\n  if (isString2(left) && isString2(right)) {\n    return left.toLowerCase() === right.toLowerCase();\n  }\n  if (isValidDate(left) && isValidDate(right)) {\n    return left.getTime() === right.getTime();\n  }\n  return left === right;\n}\nfunction getWhereExpressionFromPathVariables(pathVariables) {\n  const entries = Object.entries(pathVariables).filter(([, value]) => {\n    if (isUndefined(value))\n      return false;\n    if (isObject2(value))\n      return false;\n    return true;\n  });\n  const expressions = entries.map(\n    ([name, value]) => ({\n      type: \"BinaryOperation\",\n      operator: \"==\" /* Equals */,\n      left: {\n        type: \"TypeCast\",\n        value: {\n          type: \"Identifier\",\n          name\n        },\n        dataType: \"STRING\"\n      },\n      right: {\n        type: \"LiteralValue\",\n        value: String(value)\n      }\n    })\n  );\n  if (expressions.length === 0) {\n    return {\n      type: \"LiteralValue\",\n      value: false\n    };\n  }\n  return expressions.reduce(\n    (result, expression) => ({\n      type: \"BinaryOperation\",\n      operator: \"and\" /* And */,\n      left: result,\n      right: expression\n    })\n  );\n}\n\n// ../../library/src/modules/useVariantState.ts\nimport React86 from \"react\";\nfunction createGestureVariant(variant, type) {\n  return `${variant}-${type}`;\n}\nfunction nextVariant(allVariants, currentVariant) {\n  const index = allVariants.indexOf(currentVariant);\n  let nextIndex = index + 1;\n  if (nextIndex >= allVariants.length) {\n    nextIndex = 0;\n  }\n  const nextVariant2 = allVariants[nextIndex];\n  assert(nextVariant2 !== void 0, \"nextVariant should be defined\");\n  return nextVariant2;\n}\nfunction activeTransition(transitions, variant) {\n  if (!transitions)\n    return void 0;\n  if (variant) {\n    const variantTransition = transitions[variant];\n    if (variantTransition)\n      return variantTransition;\n  }\n  return transitions.default;\n}\nvar VariantSelector = /* @__PURE__ */ ((VariantSelector2) => {\n  VariantSelector2[\"Variant\"] = \"v\";\n  return VariantSelector2;\n})(VariantSelector || {});\nfunction getGesture(enabledGestures, isHovered, isPressed) {\n  const { hover, pressed } = enabledGestures || {};\n  if (pressed && isPressed)\n    return \"pressed\";\n  if (hover && isHovered)\n    return \"hover\";\n}\nfunction createVariantClassName(baseVariant, variantClassNames) {\n  const mappedClassName = variantClassNames[baseVariant];\n  if (mappedClassName)\n    return mappedClassName;\n  return `framer-${\"v\" /* Variant */}-${baseVariant}`;\n}\nfunction safeBaseVariant(targetVariant, fallbackVariant, validBaseVariants) {\n  if (!targetVariant)\n    return fallbackVariant;\n  if (validBaseVariants.has(targetVariant))\n    return targetVariant;\n  return fallbackVariant;\n}\nvar CycleVariantState = /* @__PURE__ */ Symbol(\"cycle\");\nfunction useVariantState({\n  variant,\n  defaultVariant: externalDefaultVariant,\n  transitions: externalTransitions,\n  enabledGestures: externalEnabledGestures,\n  cycleOrder: externalCycleOrder = [],\n  variantProps = {},\n  variantClassNames = {}\n}) {\n  const forceUpdate = useForceUpdate3();\n  const validBaseVariants = useConstant(() => new Set(externalCycleOrder));\n  const internalState = React86.useRef({\n    isHovered: false,\n    isPressed: false,\n    baseVariant: safeBaseVariant(variant, externalDefaultVariant, validBaseVariants),\n    lastVariant: variant,\n    gestureVariant: void 0,\n    // When used in generated components, these are static values defined\n    // outside of the component function that also need to not result in\n    // memoized values being recalculated, so we dump them into the ref.\n    defaultVariant: externalDefaultVariant,\n    enabledGestures: externalEnabledGestures,\n    cycleOrder: externalCycleOrder,\n    transitions: externalTransitions\n  });\n  const resolveNextVariant = React86.useCallback(\n    (targetBaseVariant) => {\n      const { isHovered: isHovered2, isPressed: isPressed2, enabledGestures: enabledGestures2, defaultVariant: defaultVariant2 } = internalState.current;\n      const nextBaseVariant = safeBaseVariant(targetBaseVariant, defaultVariant2, validBaseVariants);\n      const gesture = getGesture(enabledGestures2 == null ? void 0 : enabledGestures2[nextBaseVariant], isHovered2, isPressed2);\n      const nextGestureVariant = gesture ? createGestureVariant(nextBaseVariant, gesture) : void 0;\n      return [nextBaseVariant, nextGestureVariant];\n    },\n    [validBaseVariants]\n  );\n  const setGestureState = React86.useCallback(\n    ({ isHovered: isHovered2, isPressed: isPressed2 }) => {\n      if (isHovered2 !== void 0)\n        internalState.current.isHovered = isHovered2;\n      if (isPressed2 !== void 0)\n        internalState.current.isPressed = isPressed2;\n      const { baseVariant: baseVariant2, gestureVariant: gestureVariant2, defaultVariant: defaultVariant2 } = internalState.current;\n      const [nextBase, nextGesture] = resolveNextVariant(baseVariant2);\n      if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {\n        internalState.current.baseVariant = nextBase || defaultVariant2;\n        internalState.current.gestureVariant = nextGesture;\n        forceUpdate();\n      }\n    },\n    [resolveNextVariant, forceUpdate]\n  );\n  const setVariant = React86.useCallback(\n    (proposedVariant) => {\n      const { defaultVariant: defaultVariant2, cycleOrder, baseVariant: baseVariant2, gestureVariant: gestureVariant2 } = internalState.current;\n      const nextBaseVariant = proposedVariant === CycleVariantState ? nextVariant(cycleOrder || [], baseVariant2 || defaultVariant2) : proposedVariant;\n      const [nextBase, nextGesture] = resolveNextVariant(nextBaseVariant);\n      if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {\n        internalState.current.baseVariant = nextBase || defaultVariant2;\n        internalState.current.gestureVariant = nextGesture;\n        forceUpdate();\n      }\n    },\n    [resolveNextVariant, forceUpdate]\n  );\n  if (variant !== internalState.current.lastVariant) {\n    const [nextBase, nextGesture] = resolveNextVariant(variant);\n    internalState.current.lastVariant = nextBase;\n    if (nextBase !== internalState.current.baseVariant || nextGesture !== internalState.current.gestureVariant) {\n      internalState.current.baseVariant = nextBase;\n      internalState.current.gestureVariant = nextGesture;\n    }\n  }\n  const { baseVariant, gestureVariant, defaultVariant, enabledGestures, isHovered, isPressed } = internalState.current;\n  const addVariantProps = useAddVariantProps(\n    internalState.current.baseVariant,\n    internalState.current.gestureVariant,\n    variantProps\n  );\n  return React86.useMemo(() => {\n    const variants = [];\n    if (baseVariant !== defaultVariant)\n      variants.push(baseVariant);\n    if (gestureVariant)\n      variants.push(gestureVariant);\n    return {\n      variants,\n      baseVariant,\n      gestureVariant,\n      transition: activeTransition(internalState.current.transitions, baseVariant),\n      setVariant,\n      setGestureState,\n      addVariantProps,\n      classNames: cx(\n        createVariantClassName(baseVariant, variantClassNames),\n        getGesture(enabledGestures == null ? void 0 : enabledGestures[baseVariant], isHovered, isPressed)\n      )\n    };\n  }, [\n    baseVariant,\n    gestureVariant,\n    isHovered,\n    isPressed,\n    addVariantProps,\n    setVariant,\n    defaultVariant,\n    enabledGestures,\n    setGestureState,\n    variantClassNames\n  ]);\n}\n\n// ../../library/src/modules/withMappedReactProps.tsx\nimport React87 from \"react\";\nfunction extractMappingFromInfo(info) {\n  var _a;\n  const json = (_a = info.__FramerMetadata__.exports.default.annotations) == null ? void 0 : _a.framerVariables;\n  if (!json)\n    return void 0;\n  try {\n    return JSON.parse(json);\n  } catch {\n    return void 0;\n  }\n}\nfunction withMappedReactProps(Component14, info) {\n  return (rawProps) => {\n    var _a;\n    const props = {};\n    const mapping = extractMappingFromInfo(info);\n    for (const key7 in rawProps) {\n      asRecord(props)[(_a = mapping == null ? void 0 : mapping[key7]) != null ? _a : key7] = rawProps[key7];\n    }\n    return /* @__PURE__ */ React87.createElement(Component14, { ...props });\n  };\n}\n\n// ../../library/src/modules/withVariantAppearEffect.tsx\nimport React88 from \"react\";\nvar keys = /* @__PURE__ */ new Set([\n  \"visibleVariantId\",\n  \"obscuredVariantId\",\n  \"threshold\",\n  \"animateOnce\",\n  \"variantAppearEffectEnabled\",\n  \"targets\",\n  \"exitTarget\",\n  \"scrollDirection\"\n]);\nvar defaultRanges3 = { inputRange: [], outputRange: [] };\nfunction createInputOutputRanges2(transformTargets, threshold, exitTarget) {\n  const outputRange = [];\n  const inputRange = createTransformInputRange(\n    transformTargets,\n    threshold,\n    (index) => outputRange.unshift(index, index)\n  );\n  if (exitTarget) {\n    const lastInputRange = inputRange[inputRange.length - 1];\n    if (!isNumber(lastInputRange))\n      return defaultRanges3;\n    inputRange.push(lastInputRange + 1);\n    outputRange.push(-1);\n  }\n  const firstItem = inputRange[0];\n  if (!isNumber(firstItem))\n    return defaultRanges3;\n  if (firstItem <= 1)\n    return { inputRange, outputRange };\n  return { inputRange: [0, Math.max(firstItem - 1, 0), ...inputRange], outputRange: [-1, -1, ...outputRange] };\n}\nvar withVariantAppearEffect = (Component14) => React88.forwardRef(\n  (props, forwardedRef) => {\n    if (RenderTarget.current() === \"CANVAS\" /* canvas */)\n      return /* @__PURE__ */ React88.createElement(Component14, { ...props, ref: forwardedRef });\n    const fallbackRef = React88.useRef(null);\n    const ref = forwardedRef != null ? forwardedRef : fallbackRef;\n    const [options, rest] = extractPrefixedProps(props, keys);\n    const {\n      visibleVariantId,\n      obscuredVariantId,\n      animateOnce,\n      threshold,\n      variantAppearEffectEnabled,\n      targets,\n      exitTarget,\n      scrollDirection\n    } = options;\n    const [activeVariant, setVariant] = React88.useState(obscuredVariantId);\n    const animateState = React88.useRef(false);\n    useAppearEffect(\n      ref,\n      (appears) => {\n        if (options.targets)\n          return;\n        if (options.scrollDirection)\n          return;\n        if (animateOnce && animateState.current === true)\n          return;\n        if (animateState.current === appears)\n          return;\n        animateState.current = appears;\n        if (appears) {\n          setVariant(visibleVariantId);\n        } else {\n          setVariant(obscuredVariantId);\n        }\n      },\n      {\n        enabled: variantAppearEffectEnabled,\n        animateOnce,\n        threshold: {\n          y: threshold\n        }\n      }\n    );\n    React88.useEffect(() => {\n      if (scrollDirection)\n        return;\n      if (!targets)\n        return;\n      const playedState = {};\n      let currentVariant = void 0;\n      return scrollInfo(({ y: scrollY }) => {\n        var _a, _b;\n        if (!targets[0] || targets[0].ref && !targets[0].ref.current)\n          return;\n        const { inputRange, outputRange } = createInputOutputRanges2(\n          targets,\n          (threshold != null ? threshold : 0) * scrollY.containerLength,\n          exitTarget\n        );\n        if (inputRange.length === 0 || inputRange.length !== outputRange.length)\n          return;\n        const index = Math.floor(transform(scrollY.current, inputRange, outputRange));\n        if (animateOnce && playedState[index])\n          return;\n        playedState[index] = true;\n        const variant = (_b = (_a = targets[index]) == null ? void 0 : _a.target) != null ? _b : void 0;\n        if (variant === currentVariant)\n          return;\n        currentVariant = variant;\n        setVariant(variant);\n      });\n    }, [animateOnce, threshold, targets, props.variant]);\n    useScrollDirectionChange(scrollDirection, setVariant, {\n      enabled: variantAppearEffectEnabled,\n      repeat: !animateOnce\n    });\n    if (!(\"variantAppearEffectEnabled\" in options) || variantAppearEffectEnabled === true) {\n      return /* @__PURE__ */ React88.createElement(Component14, { ...rest, variant: activeVariant != null ? activeVariant : props.variant, ref });\n    } else {\n      return /* @__PURE__ */ React88.createElement(Component14, { ...rest });\n    }\n  }\n);\n\n// ../../library/src/modules/withVariantFX.tsx\nimport React89, { useRef as useRef14 } from \"react\";\nvar withVariantFX = (Component14) => React89.forwardRef(\n  ({ initial, animate: animate3, exit, ...props }, forwardedRef) => {\n    const ref = useRef14();\n    const effect = usePresenceAnimation(\n      {\n        initial,\n        animate: animate3,\n        exit\n      },\n      forwardedRef != null ? forwardedRef : ref,\n      true\n    );\n    return /* @__PURE__ */ React89.createElement(Component14, { ...props, style: { ...props == null ? void 0 : props.style, ...effect.values }, ref: forwardedRef != null ? forwardedRef : ref });\n  }\n);\n\n// ../../library/src/render/DesignComponentWrapper.tsx\nimport React100, { Component as Component13 } from \"react\";\n\n// ../../library/src/render/componentLoader/definition.ts\nfunction isDesignDefinition(d) {\n  return d.type === \"master\";\n}\nfunction isOverride(d) {\n  return d.type === \"override\";\n}\nfunction isReactDefinition(d) {\n  return d.type !== \"master\";\n}\n\n// ../../library/src/render/presentation/DeprecatedComponentContainer.tsx\nimport React90 from \"react\";\nvar DeprecatedComponentContainer = /* @__PURE__ */ (() => {\n  var _a;\n  return _a = class extends Layer {\n    constructor() {\n      super(...arguments);\n      this.state = {};\n      this.setElement = (element) => {\n        if (this.props.innerRef) {\n          this.props.innerRef.current = element;\n        }\n        this.setLayerElement(element);\n      };\n    }\n    componentDidCatch(error, info) {\n      let stack = info.componentStack.split(\"\\n\").filter((line) => line.length !== 0);\n      let currentIndex = 0;\n      for (const line of stack) {\n        if (line.startsWith(`    in ${this.constructor.name}`)) {\n          break;\n        }\n        currentIndex++;\n      }\n      stack = stack.slice(0, currentIndex);\n      this.setState({\n        lastError: {\n          children: this.props.children,\n          name: error.name,\n          message: error.message,\n          componentStack: stack\n        }\n      });\n    }\n    renderErrorPlaceholder(file, error) {\n      const { RenderPlaceholder } = runtime;\n      return /* @__PURE__ */ React90.createElement(FrameWithMotion, { ...this.props, background: null }, /* @__PURE__ */ React90.createElement(RenderPlaceholder, { error: { error, file } }));\n    }\n    render() {\n      var _a2, _b;\n      countNodeRender();\n      let { children } = this.props;\n      const { componentIdentifier } = this.props;\n      const { lastError: error } = this.state;\n      const noChildren = !children || Array.isArray(children) && children.filter((c) => c).length === 0;\n      if (noChildren) {\n        const errorComponent = runtime.componentLoader.errorForIdentifier(componentIdentifier);\n        if (errorComponent) {\n          return this.renderErrorPlaceholder(errorComponent.file, errorComponent.error);\n        }\n      }\n      if (error && error.children === children) {\n        const component = runtime.componentLoader.componentForIdentifier(componentIdentifier);\n        const file = component ? component.file : \"???\";\n        return this.renderErrorPlaceholder(file, error.message);\n      }\n      ;\n      (_b = (_a2 = asRecord(safeWindow))[\"__checkComponentBudget__\"]) == null ? void 0 : _b.call(_a2);\n      let frameProps = this.props;\n      if (RenderTarget.current() !== \"CANVAS\" /* canvas */) {\n        const {\n          left,\n          right,\n          top,\n          bottom,\n          center,\n          centerX,\n          centerY,\n          aspectRatio,\n          parentSize,\n          width,\n          height,\n          rotation,\n          opacity,\n          visible,\n          _constraints,\n          _initialStyle,\n          name,\n          positionSticky,\n          positionStickyTop,\n          positionStickyRight,\n          positionStickyBottom,\n          positionStickyLeft,\n          // Remove the children and the componentIdentifier from the props passed into the component\n          componentIdentifier: originalComponentIdentifier,\n          children: originalChildren,\n          style,\n          duplicatedFrom,\n          widthType,\n          heightType,\n          ...childProps\n        } = frameProps;\n        children = React90.Children.map(originalChildren, (child) => {\n          if (!isReactChild(child) || !isReactElement(child)) {\n            return child;\n          }\n          if (!isPageOrScroll(originalComponentIdentifier)) {\n            return /* @__PURE__ */ React90.createElement(LayoutGroup, { inherit: false, id: this.props.__layoutId }, /* @__PURE__ */ React90.createElement(AutomaticLayoutIds, { enabled: false }, React90.cloneElement(child, childProps)));\n          }\n          return React90.cloneElement(child, childProps);\n        });\n        frameProps = {\n          style,\n          _constraints,\n          _initialStyle,\n          left,\n          right,\n          top,\n          bottom,\n          center,\n          centerX,\n          centerY,\n          aspectRatio,\n          parentSize,\n          width,\n          height,\n          rotation,\n          visible,\n          name,\n          duplicatedFrom,\n          id: frameProps.id,\n          layoutId: this.props.__layoutId,\n          widthType,\n          heightType,\n          positionSticky,\n          positionStickyTop,\n          positionStickyRight,\n          positionStickyBottom,\n          positionStickyLeft\n        };\n      }\n      return (\n        /* The background should come before the frameProps. It looks like there never should be a background in frameProps,\n         * but published design components can contain an old version of the presentation tree that expects the background\n         * that is passed to be rendered here\n         * See the stackBackgroundTest.tsx integration test for an example of such a case\n         */\n        /* @__PURE__ */ React90.createElement(ComponentContainerContext.Provider, { value: true }, /* @__PURE__ */ React90.createElement(\n          FrameWithMotion,\n          {\n            \"data-framer-component-container\": true,\n            background: null,\n            overflow: \"visible\",\n            ref: this.setElement,\n            ...frameProps\n          },\n          children\n        ))\n      );\n    }\n  }, _a.supportsConstraints = true, _a.defaultComponentContainerProps = {\n    style: {},\n    visible: true,\n    componentIdentifier: \"\"\n  }, _a.defaultProps = {\n    ...Layer.defaultProps,\n    ..._a.defaultComponentContainerProps\n  }, _a.contextType = ComponentContainerContext, _a;\n})();\nfunction isPageOrScroll(identifier) {\n  if (!identifier)\n    return false;\n  if (identifier === \"framer/Page\")\n    return true;\n  if (identifier === \"framer/Scroll\")\n    return true;\n  return false;\n}\n\n// ../../library/src/render/presentation/SVG.tsx\nimport React93 from \"react\";\n\n// ../../library/src/render/WindowContext.ts\nimport React91 from \"react\";\nvar WindowContext = /* @__PURE__ */ React91.createContext(\n  void 0\n);\nvar useProvidedWindow = () => React91.useContext(WindowContext);\n\n// ../../library/src/render/types/Line.ts\nvar Line = /* @__PURE__ */ (() => {\n  function Line2(a, b) {\n    return { a, b };\n  }\n  Line2.intersection = (lineA, lineB) => {\n    const x1 = lineA.a.x;\n    const y1 = lineA.a.y;\n    const x2 = lineA.b.x;\n    const y2 = lineA.b.y;\n    const x3 = lineB.a.x;\n    const y3 = lineB.a.y;\n    const x4 = lineB.b.x;\n    const y4 = lineB.b.y;\n    const d = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n    if (d === 0) {\n      return null;\n    }\n    const xi = ((x3 - x4) * (x1 * y2 - y1 * x2) - (x1 - x2) * (x3 * y4 - y3 * x4)) / d;\n    const yi = ((y3 - y4) * (x1 * y2 - y1 * x2) - (y1 - y2) * (x3 * y4 - y3 * x4)) / d;\n    return { x: xi, y: yi };\n  };\n  Line2.intersectionAngle = (lineA, lineB) => {\n    const deltaAX = lineA.b.x - lineA.a.x;\n    const deltaAY = lineA.b.y - lineA.a.y;\n    const deltaBX = lineB.b.x - lineB.a.x;\n    const deltaBY = lineB.b.y - lineB.a.y;\n    const angle = Math.atan2(deltaAX * deltaBY - deltaAY * deltaBX, deltaAX * deltaBX + deltaAY * deltaBY);\n    return angle * (180 / Math.PI);\n  };\n  Line2.isOrthogonal = (line) => {\n    return line.a.x === line.b.x || line.a.y === line.b.y;\n  };\n  Line2.perpendicular = (line, pointOnLine) => {\n    const deltaX = line.a.x - line.b.x;\n    const deltaY = line.a.y - line.b.y;\n    const pointB = Point(pointOnLine.x - deltaY, pointOnLine.y + deltaX);\n    return Line2(pointB, pointOnLine);\n  };\n  Line2.projectPoint = (line, point) => {\n    const perp = Line2.perpendicular(line, point);\n    return Line2.intersection(line, perp);\n  };\n  Line2.pointAtPercentDistance = (line, distance2) => {\n    const hypotenuse = Line2.distance(line);\n    const r = distance2 * hypotenuse / hypotenuse;\n    return {\n      x: r * line.b.x + (1 - r) * line.a.x,\n      y: r * line.b.y + (1 - r) * line.a.y\n    };\n  };\n  Line2.distance = (line) => {\n    return Point.distance(line.a, line.b);\n  };\n  return Line2;\n})();\n\n// ../../library/src/render/utils/elementPropertiesForGradient.ts\nfunction linearGradientLine(angle) {\n  var _a, _b;\n  const rad = angle * Math.PI / 180;\n  const offset = {\n    x: -Math.sin(rad) * 100,\n    y: Math.cos(rad) * 100\n  };\n  const anglePoint = Point(offset.x, offset.y);\n  const angleLine = Line(Point(0.5, 0.5), anglePoint);\n  const points = Rect.points({ x: 0, y: 0, width: 1, height: 1 });\n  const sortedPoints = points.map((point) => ({ point, distance: Point.distance(anglePoint, point) })).sort((a2, b2) => a2.distance - b2.distance);\n  const a = (_a = sortedPoints[0]) == null ? void 0 : _a.point;\n  const b = (_b = sortedPoints[1]) == null ? void 0 : _b.point;\n  assert(a && b, \"linearGradientLine: Must have 2 closest points.\");\n  const [c, d] = points.filter((point) => !Point.isEqual(point, a) && !Point.isEqual(point, b));\n  assert(c && d, \"linearGradientLine: Must have 2 opposing points.\");\n  const start = Line.intersection(angleLine, Line(a, b));\n  const end = Line.intersection(angleLine, Line(c, d));\n  assert(start && end, \"linearGradientLine: Must have a start and end point.\");\n  return Line(start, end);\n}\nfunction elementPropertiesForLinearGradient(gradient, id) {\n  var _a, _b, _c, _d;\n  const line = linearGradientLine(gradient.angle);\n  const stops = gradientColorStops(gradient);\n  const startPosition = (_b = (_a = stops[0]) == null ? void 0 : _a.position) != null ? _b : 0;\n  const endPosition = (_d = (_c = stops[stops.length - 1]) == null ? void 0 : _c.position) != null ? _d : 1;\n  const startPoint = Line.pointAtPercentDistance(line, startPosition);\n  const endPoint = Line.pointAtPercentDistance(line, endPosition);\n  const interpolator = interpolate([startPosition, endPosition], [0, 1]);\n  return {\n    id: `id${id}g${LinearGradient.hash(gradient)}`,\n    x1: startPoint.x,\n    y1: startPoint.y,\n    x2: endPoint.x,\n    y2: endPoint.y,\n    stops: stops.map((stop) => ({\n      color: stop.value,\n      alpha: ConvertColor.getAlpha(stop.value) * gradient.alpha,\n      position: interpolator(stop.position)\n    }))\n  };\n}\nfunction elementPropertiesForRadialGradient(gradient, id) {\n  return {\n    id: `id${id}g${RadialGradient.hash(gradient)}`,\n    widthFactor: gradient.widthFactor,\n    heightFactor: gradient.heightFactor,\n    centerAnchorX: gradient.centerAnchorX,\n    centerAnchorY: gradient.centerAnchorY,\n    stops: gradientColorStops(gradient).map((stop) => ({\n      color: stop.value,\n      alpha: ConvertColor.getAlpha(stop.value) * gradient.alpha,\n      position: stop.position\n    }))\n  };\n}\n\n// ../../library/src/render/types/RelativeNumber.ts\nfunction isRelativeNumber(value) {\n  if (!isString2(value))\n    return false;\n  const lastChar = value.charAt(value.length - 1);\n  if (lastChar !== \"%\")\n    return false;\n  const withoutLastChar = value.slice(0, -1);\n  const float = parseFloat(withoutLastChar);\n  return isNumber(float);\n}\nfunction getRelativeNumberValue(value) {\n  const withoutLastChar = value.slice(0, -1);\n  const float = parseFloat(withoutLastChar);\n  return isNumber(float) ? float : 50;\n}\n\n// ../../library/src/render/utils/imagePatternPropsForFill.tsx\nfunction getPositionXFraction(positionX) {\n  if (isRelativeNumber(positionX))\n    return getRelativeNumberValue(positionX) / 100;\n  if (positionX === \"left\")\n    return 0;\n  if (positionX === \"right\")\n    return 1;\n  return 0.5;\n}\nfunction getPositionYFraction(positionY) {\n  if (isRelativeNumber(positionY))\n    return getRelativeNumberValue(positionY) / 100;\n  if (positionY === \"top\")\n    return 0;\n  if (positionY === \"bottom\")\n    return 1;\n  return 0.5;\n}\nfunction imagePatternPropsForFill(fill, frame2, id, includeTransform) {\n  var _a, _b, _c, _d;\n  fill = Animatable.get(fill, \"#09F\");\n  if (!BackgroundImage.isImageObject(fill))\n    return void 0;\n  if (!fill.pixelWidth || !fill.pixelHeight)\n    return void 0;\n  const imageWidth = fill.pixelWidth;\n  const imageHeight = fill.pixelHeight;\n  let transform2;\n  const { fit } = fill;\n  let width = 1, height = 1;\n  let offsetX = 0;\n  let offsetY = 0;\n  if (fit === \"fill\" || fit === \"fit\" || fit === \"tile\" || !fit) {\n    let scaleX = 1;\n    let scaleY = 1;\n    const imageRatio = imageWidth / imageHeight;\n    const realWidth = frame2.height * imageRatio;\n    const realHeight = frame2.width / imageRatio;\n    const validScaleX = realWidth / frame2.width;\n    const validScaleY = realHeight / frame2.height;\n    if (fit === \"tile\") {\n      (_a = fill.backgroundSize) != null ? _a : fill.backgroundSize = 1;\n      width = Math.round(fill.backgroundSize * (imageWidth / 2));\n      height = Math.round(fill.backgroundSize * (imageHeight / 2));\n      const layerPositionX = (_b = frame2.x) != null ? _b : 0;\n      const layerPositionY = (_c = frame2.y) != null ? _c : 0;\n      let extraOffsetX = 0;\n      let extraOffsetY = 0;\n      if (includeTransform) {\n        extraOffsetX = layerPositionX;\n        extraOffsetY = layerPositionY;\n      }\n      offsetX = (frame2.width - width) * getPositionXFraction(fill.positionX) + extraOffsetX;\n      offsetY = (frame2.height - height) * getPositionYFraction(fill.positionY) + extraOffsetY;\n      transform2 = `translate(${offsetX + layerPositionX}, ${offsetY + layerPositionY})`;\n    } else {\n      if (fit === \"fill\" || !fit ? validScaleY > validScaleX : validScaleY < validScaleX) {\n        scaleY = validScaleY;\n        offsetY = (1 - validScaleY) * getPositionYFraction(fill.positionY);\n      } else {\n        scaleX = validScaleX;\n        offsetX = (1 - validScaleX) * getPositionXFraction(fill.positionX);\n      }\n      transform2 = `translate(${offsetX}, ${offsetY}) scale(${scaleX}, ${scaleY})`;\n    }\n  }\n  const imageId = `id${id}g${\"-fillImage\"}`;\n  return { id: imageId, path: (_d = fill.src) != null ? _d : \"\", transform: transform2, width, height, offsetX, offsetY };\n}\n\n// ../../library/src/render/presentation/ImagePatternElement.tsx\nimport React92 from \"react\";\n\n// ../../library/src/render/utils/imageUrlForAsset.ts\nvar mediaType2 = \"framer/asset-reference,\";\nfunction isAssetReference(value) {\n  return value.startsWith(`data:${mediaType2}`);\n}\nfunction imageUrlForAsset(asset, pixelSize) {\n  var _a;\n  if (/^\\w+:/.test(asset) && !isAssetReference(asset))\n    return asset;\n  if (typeof pixelSize !== \"number\")\n    pixelSize = void 0;\n  else if (pixelSize <= 512)\n    pixelSize = 512;\n  else if (pixelSize <= 1024)\n    pixelSize = 1024;\n  else if (pixelSize <= 2048)\n    pixelSize = 2048;\n  else\n    pixelSize = 4096;\n  const isExport = RenderTarget.current() === \"EXPORT\" /* export */;\n  return (_a = runtime.assetResolver(asset, { pixelSize, isExport })) != null ? _a : \"\";\n}\n\n// ../../library/src/render/presentation/ImagePatternElement.tsx\nvar ImagePatternElement = ({\n  id,\n  path,\n  transform: transform2,\n  repeat,\n  width,\n  height,\n  offsetX,\n  offsetY\n}) => {\n  const href = imageUrlForAsset(path);\n  return /* @__PURE__ */ React92.createElement(\n    \"pattern\",\n    {\n      id,\n      width: repeat ? width : \"100%\",\n      height: repeat ? height : \"100%\",\n      patternContentUnits: repeat ? void 0 : \"objectBoundingBox\",\n      patternUnits: repeat ? \"userSpaceOnUse\" : void 0,\n      x: repeat ? offsetX : void 0,\n      y: repeat ? offsetY : void 0\n    },\n    /* @__PURE__ */ React92.createElement(\n      \"image\",\n      {\n        key: href,\n        width: repeat ? width : 1,\n        height: repeat ? height : 1,\n        href,\n        preserveAspectRatio: \"none\",\n        transform: repeat ? void 0 : transform2,\n        x: repeat ? 0 : void 0,\n        y: repeat ? 0 : void 0\n      }\n    )\n  );\n};\n\n// ../../library/src/render/presentation/SharedSVGManager.ts\nvar useDOM = isBrowser2();\nvar SharedSVGEntry = class {\n  constructor(id, svg, innerHTML, viewBox, count = 0) {\n    this.id = id;\n    this.svg = svg;\n    this.innerHTML = innerHTML;\n    this.viewBox = viewBox;\n    this.count = count;\n  }\n};\nvar SharedSVGManager = class {\n  constructor() {\n    this.entries = /* @__PURE__ */ new Map();\n  }\n  debugGetEntries() {\n    return this.entries;\n  }\n  /** Request to render a svg, this will ensure there is a global instance and will return a\n   * template referencing the image. Must be balanced with `unsubscribe()` calls using the same\n   * svg. If called multiple times while the shared SVG exists, the generateUniqueIds and\n   * contentId parameters are ignored. */\n  subscribe(svg, generateUniqueIds, contentId) {\n    if (!svg || svg === \"\")\n      return \"\";\n    let entry = this.entries.get(svg);\n    if (!entry) {\n      if (!contentId) {\n        contentId = \"svg\" + String(hash(svg)) + \"_\" + String(svg.length);\n      }\n      let uniqueSVG = svg;\n      let svgSize;\n      const svgDom = parseSVG(svg);\n      if (svgDom) {\n        if (generateUniqueIds) {\n          prefixIdsInSVG(svgDom, contentId);\n        }\n        svgDom.id = contentId;\n        svgSize = getSVGSize(svgDom);\n        uniqueSVG = svgDom.outerHTML;\n      }\n      entry = this.createDOMElementFor(uniqueSVG, contentId, svgSize);\n      this.entries.set(svg, entry);\n    }\n    entry.count += 1;\n    return entry.innerHTML;\n  }\n  /** Returns the viewBox for the svg, or undefined if there is no viewBox. */\n  getViewBox(svg) {\n    if (!svg || svg === \"\")\n      return;\n    const entry = this.entries.get(svg);\n    return entry == null ? void 0 : entry.viewBox;\n  }\n  /** When no longer rendering an svg it must be unsubscribed from so resources can be cleaned up.\n   * Pass in the same svg as used with `subscribe()`. */\n  unsubscribe(svg) {\n    if (!svg || svg === \"\")\n      return;\n    const entry = this.entries.get(svg);\n    if (!entry)\n      return;\n    entry.count -= 1;\n    if (entry.count > 0)\n      return;\n    setTimeout(() => this.maybeRemoveEntry(svg), 5e3);\n  }\n  maybeRemoveEntry(svg) {\n    const entry = this.entries.get(svg);\n    if (!entry)\n      return;\n    if (entry.count > 0)\n      return;\n    this.entries.delete(svg);\n    this.removeDOMElement(entry);\n  }\n  removeDOMElement(entry) {\n    const containerId = \"container_\" + entry.id;\n    if (useDOM) {\n      const container = document == null ? void 0 : document.querySelector(\"#\" + containerId);\n      container == null ? void 0 : container.remove();\n    }\n  }\n  createDOMElementFor(svg, id, size2) {\n    const containerId = \"container_\" + id;\n    if (useDOM) {\n      let svgTemplates = document.querySelector(\"#svg-templates\");\n      if (!svgTemplates) {\n        svgTemplates = document.createElement(\"div\");\n        svgTemplates.id = \"svg-templates\";\n        svgTemplates.style.position = \"absolute\";\n        svgTemplates.style.top = \"0\";\n        svgTemplates.style.left = \"0\";\n        svgTemplates.style.width = \"0\";\n        svgTemplates.style.height = \"0\";\n        svgTemplates.style.overflow = \"hidden\";\n        document.body.appendChild(svgTemplates);\n      }\n      if (!document.querySelector(\"#\" + containerId)) {\n        const container = document.createElement(\"div\");\n        container.id = containerId;\n        container.innerHTML = svg;\n        if (container.firstElementChild) {\n          container.firstElementChild.id = id;\n        }\n        svgTemplates.appendChild(container);\n      }\n    }\n    const box = size2 ? `0 0 ${size2.width} ${size2.height}` : void 0;\n    const viewBox = box ? ` viewBox=\"${box}\"` : \"\";\n    const innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"width: 100%; height: 100%\"${viewBox}><use href=\"#${id}\"></use></svg>`;\n    return new SharedSVGEntry(id, svg, innerHTML, box);\n  }\n  clear() {\n    this.entries.clear();\n  }\n  /** Returns a string containing a div#svg-templates and all the current svg templates. Can be\n   * used after running `ReactDOMServer.renderToString()` */\n  generateTemplates() {\n    const output = [];\n    const style = \"position: absolute; overflow: hidden; top: 0; left: 0; width: 0; height: 0\";\n    output.push(`<div id=\"svg-templates\" style=\"${style}\">`);\n    for (const value of this.entries.values()) {\n      const containerId = \"container_\" + value.id;\n      output.push(`  <div id=\"${containerId}\">`);\n      output.push(`    ${value.svg}`);\n      output.push(\"  </div>\");\n    }\n    output.push(\"</div>\");\n    return output.join(\"\\n\");\n  }\n};\nvar sharedSVGManager = /* @__PURE__ */ new SharedSVGManager();\nfunction parseSVG(svg) {\n  if (typeof DOMParser === \"undefined\") {\n    console.warn(\"unable to find DOMParser\");\n    return;\n  }\n  try {\n    const domParser = new DOMParser();\n    const doc = domParser.parseFromString(svg, \"text/html\");\n    const node = doc.getElementsByTagName(\"svg\")[0];\n    if (!node)\n      throw Error(\"no svg element found\");\n    return node;\n  } catch {\n    return;\n  }\n}\nfunction prefixIdsInSVG(svg, prefix2) {\n  const sanitizedPrefix = sanitizeString(prefix2);\n  recursivelyPrefixId(svg, sanitizedPrefix);\n}\nfunction sanitizeString(str) {\n  return str.replace(/[^a-z0-9\\-_:.]|^[^a-z]+/gi, \"\");\n}\nfunction recursivelyPrefixId(el, prefix2) {\n  prefixId(el, prefix2);\n  const childNodes = Array.from(el.children);\n  childNodes.forEach((node) => {\n    recursivelyPrefixId(node, prefix2);\n  });\n}\nfunction prefixId(el, prefix2) {\n  const attributes = el.getAttributeNames();\n  attributes.forEach((attr) => {\n    const value = el.getAttribute(attr);\n    if (!value)\n      return;\n    if (attr === \"id\") {\n      el.setAttribute(attr, `${prefix2}_${value}`);\n    }\n    if (attr === \"href\" || attr === \"xlink:href\") {\n      const [base, fragmentIdentifier] = value.split(\"#\");\n      if (base)\n        return;\n      el.setAttribute(attr, `#${prefix2}_${fragmentIdentifier}`);\n      return;\n    }\n    const URL_REF = \"url(#\";\n    if (value.includes(URL_REF)) {\n      const prefixedValue = value.replace(URL_REF, `${URL_REF}${prefix2}_`);\n      el.setAttribute(attr, prefixedValue);\n    }\n  });\n}\nvar unitsToPixels = {\n  cm: 96 / 2.54,\n  mm: 96 / 2.54 / 10,\n  Q: 96 / 2.54 / 40,\n  in: 96,\n  pc: 96 / 6,\n  pt: 96 / 72,\n  px: 1,\n  // A few assumptions about relative units.\n  em: 16,\n  ex: 8,\n  ch: 8,\n  rem: 16\n};\nfunction parseLength(value) {\n  var _a;\n  if (!value)\n    return;\n  const m2 = /(-?[0-9.]+)([a-z%]*)/.exec(value);\n  if ((m2 == null ? void 0 : m2[1]) === void 0 || (m2 == null ? void 0 : m2[2]) === void 0)\n    return;\n  if ((_a = m2[2]) == null ? void 0 : _a.startsWith(\"%\"))\n    return;\n  return Math.round(parseFloat(m2[1]) * (unitsToPixels[m2[2]] || 1));\n}\nfunction getSVGSize(svg) {\n  const width = parseLength(svg.getAttribute(\"width\"));\n  const height = parseLength(svg.getAttribute(\"height\"));\n  if (typeof width !== \"number\" || typeof height !== \"number\")\n    return;\n  if (width <= 0 || height <= 0)\n    return;\n  return { width, height };\n}\n\n// ../../library/src/render/presentation/SVG.tsx\nfunction SVG(props) {\n  const parentSize = useParentSize();\n  const ariaId = \"svg\" + React93.useId();\n  const layoutId = useLayoutId(props);\n  const layoutRef = React93.useRef(null);\n  const providedWindow = useProvidedWindow();\n  useMeasureLayout(props, layoutRef);\n  return /* @__PURE__ */ React93.createElement(\n    SVGComponent,\n    {\n      ...props,\n      innerRef: layoutRef,\n      parentSize,\n      ariaId,\n      layoutId,\n      providedWindow\n    }\n  );\n}\nvar MAX_BACKGROUND_SVG_TEXT_LENGTH = 5e4;\nfunction containsImageReference(svg) {\n  return svg.indexOf(\"image\") >= 0;\n}\nfunction containsCustomPropertyReference(svg) {\n  return svg.indexOf(\"var(--\") >= 0;\n}\nfunction hasBorderRadius(style) {\n  return !!(style.borderRadius || style.borderBottomLeftRadius || style.borderBottomRightRadius || style.borderTopLeftRadius || style.borderTopRightRadius);\n}\nfunction sizeSVG(container, props) {\n  var _a, _b, _c;\n  const div = container.current;\n  if (!div)\n    return;\n  const localWindow = (_a = props.providedWindow) != null ? _a : safeWindow;\n  const svg = div.firstElementChild;\n  if (!svg || !(svg instanceof localWindow.SVGSVGElement))\n    return;\n  if (!svg.getAttribute(\"viewBox\")) {\n    const viewBox = sharedSVGManager.getViewBox(props.svg);\n    if (viewBox) {\n      svg.setAttribute(\"viewBox\", viewBox);\n    }\n  }\n  const { withExternalLayout, parentSize } = props;\n  const canUseCalculatedOnCanvasSize = !withExternalLayout && constraintsEnabled(props) && parentSize !== 1 /* Disabled */ && parentSize !== 2 /* DisabledForCurrentLevel */;\n  if (canUseCalculatedOnCanvasSize)\n    return;\n  const { intrinsicWidth, intrinsicHeight, _constraints } = props;\n  if (((_b = svg.viewBox.baseVal) == null ? void 0 : _b.width) === 0 && ((_c = svg.viewBox.baseVal) == null ? void 0 : _c.height) === 0 && isFiniteNumber(intrinsicWidth) && isFiniteNumber(intrinsicHeight)) {\n    svg.setAttribute(\"viewBox\", `0 0 ${intrinsicWidth} ${intrinsicHeight}`);\n  }\n  if (_constraints && _constraints.aspectRatio) {\n    svg.setAttribute(\"preserveAspectRatio\", \"\");\n  } else {\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n  }\n  svg.setAttribute(\"width\", \"100%\");\n  svg.setAttribute(\"height\", \"100%\");\n}\nvar SVGComponent = /* @__PURE__ */ (() => {\n  var _a;\n  return _a = class extends Layer {\n    constructor() {\n      super(...arguments);\n      this.container = React93.createRef();\n      this.svgElement = null;\n      this.setSVGElement = (element) => {\n        this.svgElement = element;\n        this.setLayerElement(element);\n      };\n      this.previouslyRenderedSVG = \"\";\n      this.unmountedSVG = \"\";\n    }\n    static frame(props) {\n      return calculateRect(props, props.parentSize || 0 /* Unknown */);\n    }\n    get frame() {\n      return calculateRect(this.props, this.props.parentSize || 0 /* Unknown */);\n    }\n    componentDidMount() {\n      if (this.unmountedSVG) {\n        const { svgContentId } = this.props;\n        const contentid = svgContentId ? \"svg\" + svgContentId : null;\n        sharedSVGManager.subscribe(this.unmountedSVG, !svgContentId, contentid);\n        this.previouslyRenderedSVG = this.unmountedSVG;\n      }\n      if (this.props.svgContentId)\n        return;\n      sizeSVG(this.container, this.props);\n    }\n    componentWillUnmount() {\n      sharedSVGManager.unsubscribe(this.previouslyRenderedSVG);\n      this.unmountedSVG = this.previouslyRenderedSVG;\n      this.previouslyRenderedSVG = \"\";\n    }\n    componentDidUpdate(prevProps) {\n      super.componentDidUpdate(prevProps);\n      if (this.props.svgContentId)\n        return;\n      const { fill } = this.props;\n      if (BackgroundImage.isImageObject(fill) && BackgroundImage.isImageObject(prevProps.fill) && fill.src !== prevProps.fill.src) {\n        resetSetStyle(this.svgElement, \"fill\", null, false);\n      }\n      sizeSVG(this.container, this.props);\n    }\n    collectLayout(style, innerStyle) {\n      if (this.props.withExternalLayout) {\n        innerStyle.width = \"100%\";\n        innerStyle.height = \"100%\";\n        innerStyle.aspectRatio = \"inherit\";\n        return;\n      }\n      const frame2 = this.frame;\n      const { rotation, intrinsicWidth, intrinsicHeight, width, height } = this.props;\n      const rotate = Animatable.getNumber(rotation);\n      style.opacity = isFiniteNumber(this.props.opacity) ? this.props.opacity : 1;\n      if (RenderTarget.hasRestrictions() && frame2) {\n        Object.assign(style, {\n          transform: `translate(${frame2.x}px, ${frame2.y}px) rotate(${rotate.toFixed(4)}deg)`,\n          width: `${frame2.width}px`,\n          height: `${frame2.height}px`\n        });\n        if (constraintsEnabled(this.props)) {\n          style.position = \"absolute\";\n        }\n        const xFactor = frame2.width / (intrinsicWidth || 1);\n        const yFactor = frame2.height / (intrinsicHeight || 1);\n        innerStyle.transformOrigin = \"top left\";\n        const { zoom, target } = RenderEnvironment;\n        if (target === \"EXPORT\" /* export */) {\n          const zoomFactor = zoom > 1 ? zoom : 1;\n          innerStyle.transform = `scale(${xFactor * zoomFactor}, ${yFactor * zoomFactor})`;\n          innerStyle.zoom = 1 / zoomFactor;\n        } else {\n          innerStyle.transform = `scale(${xFactor}, ${yFactor})`;\n        }\n        if (intrinsicWidth && intrinsicHeight) {\n          innerStyle.width = intrinsicWidth;\n          innerStyle.height = intrinsicHeight;\n        }\n      } else {\n        const { left, right, top, bottom } = this.props;\n        Object.assign(style, {\n          left,\n          right,\n          top,\n          bottom,\n          width,\n          height,\n          rotate\n        });\n        Object.assign(innerStyle, {\n          left: 0,\n          top: 0,\n          bottom: 0,\n          right: 0,\n          position: \"absolute\"\n        });\n      }\n    }\n    render() {\n      var _a2;\n      countNodeRender();\n      const {\n        id,\n        visible,\n        style,\n        fill,\n        svg,\n        intrinsicHeight,\n        intrinsicWidth,\n        ariaId = \"\",\n        title,\n        description,\n        layoutId,\n        className,\n        variants,\n        withExternalLayout,\n        innerRef,\n        svgContentId,\n        height,\n        opacity,\n        width,\n        ...rest\n      } = this.props;\n      if (!withExternalLayout && (!visible || !id))\n        return null;\n      const identifier = (_a2 = id != null ? id : layoutId) != null ? _a2 : \"svg\";\n      injectComponentCSSRules();\n      const frame2 = this.frame;\n      const size2 = frame2 || { width: intrinsicWidth || 100, height: intrinsicHeight || 100 };\n      const outerStyle = { ...style, imageRendering: \"pixelated\", flexShrink: 0 };\n      const innerStyle = {};\n      this.collectLayout(outerStyle, innerStyle);\n      collectOpacityFromProps(this.props, outerStyle);\n      collectFiltersFromProps(this.props, outerStyle);\n      Layer.applyWillChange(this.props, outerStyle, false);\n      let fillElement = null;\n      if (typeof fill === \"string\" || Color.isColorObject(fill)) {\n        const fillColor = Color.isColorObject(fill) ? fill.initialValue || Color.toRgbString(fill) : fill;\n        outerStyle.fill = fillColor;\n        outerStyle.color = fillColor;\n      } else if (LinearGradient.isLinearGradient(fill)) {\n        const gradient = fill;\n        const gradientId = `${encodeURI(id || \"\")}g${LinearGradient.hash(gradient)}`;\n        outerStyle.fill = `url(#${gradientId})`;\n        const { stops, x1, x2, y1, y2 } = elementPropertiesForLinearGradient(gradient, identifier);\n        fillElement = /* @__PURE__ */ React93.createElement(\n          \"svg\",\n          {\n            ref: this.setSVGElement,\n            xmlns: \"http://www.w3.org/2000/svg\",\n            width: \"100%\",\n            height: \"100%\",\n            style: { position: \"absolute\" }\n          },\n          /* @__PURE__ */ React93.createElement(\"linearGradient\", { id: gradientId, x1, x2, y1, y2 }, stops.map((stop, idx) => {\n            return /* @__PURE__ */ React93.createElement(\n              \"stop\",\n              {\n                key: idx,\n                offset: stop.position,\n                stopColor: stop.color,\n                stopOpacity: stop.alpha\n              }\n            );\n          }))\n        );\n      } else if (RadialGradient.isRadialGradient(fill)) {\n        const gradient = fill;\n        const gradientId = `${encodeURI(id || \"\")}g${RadialGradient.hash(gradient)}`;\n        outerStyle.fill = `url(#${gradientId})`;\n        const elementProperties = elementPropertiesForRadialGradient(gradient, identifier);\n        fillElement = /* @__PURE__ */ React93.createElement(\n          \"svg\",\n          {\n            ref: this.setSVGElement,\n            xmlns: \"http://www.w3.org/2000/svg\",\n            width: \"100%\",\n            height: \"100%\",\n            style: { position: \"absolute\" }\n          },\n          /* @__PURE__ */ React93.createElement(\n            \"radialGradient\",\n            {\n              id: gradientId,\n              cy: gradient.centerAnchorY,\n              cx: gradient.centerAnchorX,\n              r: gradient.widthFactor\n            },\n            elementProperties.stops.map((stop, idx) => {\n              return /* @__PURE__ */ React93.createElement(\n                \"stop\",\n                {\n                  key: idx,\n                  offset: stop.position,\n                  stopColor: stop.color,\n                  stopOpacity: stop.alpha\n                }\n              );\n            })\n          )\n        );\n      } else if (BackgroundImage.isImageObject(fill)) {\n        const imagePattern = imagePatternPropsForFill(fill, size2, identifier);\n        if (imagePattern) {\n          outerStyle.fill = `url(#${imagePattern.id})`;\n          fillElement = /* @__PURE__ */ React93.createElement(\n            \"svg\",\n            {\n              ref: this.setSVGElement,\n              xmlns: \"http://www.w3.org/2000/svg\",\n              xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n              width: \"100%\",\n              height: \"100%\",\n              style: { position: \"absolute\" }\n            },\n            /* @__PURE__ */ React93.createElement(\"defs\", null, /* @__PURE__ */ React93.createElement(ImagePatternElement, { ...imagePattern }))\n          );\n        }\n      }\n      const dataProps = {\n        \"data-framer-component-type\": \"SVG\"\n      };\n      const hasTransformTemplate = !frame2;\n      if (hasTransformTemplate) {\n        Object.assign(dataProps, layoutHintDataPropsForCenter(this.props.center));\n      }\n      const svgAsBackgroundImage = !fillElement && !outerStyle.fill && !outerStyle.background && !outerStyle.backgroundImage && svg.length < MAX_BACKGROUND_SVG_TEXT_LENGTH && !containsImageReference(svg) && !containsCustomPropertyReference(svg);\n      let content = null;\n      if (svgAsBackgroundImage) {\n        outerStyle.backgroundSize = \"100% 100%\";\n        outerStyle.backgroundImage = `url('data:image/svg+xml;utf8,${encodeURIComponent(svg)}')`;\n        sharedSVGManager.unsubscribe(this.previouslyRenderedSVG);\n        this.previouslyRenderedSVG = \"\";\n      } else {\n        const contentid = svgContentId ? \"svg\" + svgContentId : null;\n        const __html = sharedSVGManager.subscribe(svg, !svgContentId, contentid);\n        sharedSVGManager.unsubscribe(this.previouslyRenderedSVG);\n        this.previouslyRenderedSVG = svg;\n        if (hasBorderRadius(outerStyle)) {\n          outerStyle.overflow = \"hidden\";\n        }\n        content = /* @__PURE__ */ React93.createElement(React93.Fragment, null, fillElement, /* @__PURE__ */ React93.createElement(\n          \"div\",\n          {\n            key: BackgroundImage.isImageObject(fill) ? fill.src : \"\",\n            className: \"svgContainer\",\n            style: innerStyle,\n            ref: this.container,\n            dangerouslySetInnerHTML: { __html }\n          }\n        ));\n      }\n      const MotionComponent = htmlElementAsMotionComponent(this.props.as);\n      const { href, target, rel, onClick } = this.props;\n      const ariaDescriptionId = ariaId + \"desc\";\n      return /* @__PURE__ */ React93.createElement(\n        MotionComponent,\n        {\n          ...dataProps,\n          ...rest,\n          layoutId,\n          transformTemplate: hasTransformTemplate ? transformTemplate(this.props.center) : void 0,\n          id,\n          ref: innerRef,\n          style: outerStyle,\n          className,\n          variants,\n          tabIndex: this.props.tabIndex,\n          role: title || description ? \"img\" : void 0,\n          \"aria-label\": title,\n          \"aria-describedby\": description ? ariaDescriptionId : void 0,\n          ...{ href, target, rel, onClick }\n        },\n        content,\n        description && /* @__PURE__ */ React93.createElement(\"div\", { style: VISUALLY_HIDDEN_STYLES, id: ariaDescriptionId }, description)\n      );\n    }\n  }, _a.supportsConstraints = true, _a.defaultSVGProps = {\n    left: void 0,\n    right: void 0,\n    top: void 0,\n    bottom: void 0,\n    style: void 0,\n    _constraints: {\n      enabled: true,\n      aspectRatio: null\n    },\n    parentSize: 0 /* Unknown */,\n    rotation: 0,\n    visible: true,\n    svg: \"\",\n    shadows: []\n  }, _a.defaultProps = {\n    ...Layer.defaultProps,\n    ..._a.defaultSVGProps\n  }, _a;\n})();\nvar VISUALLY_HIDDEN_STYLES = {\n  clip: \"rect(1px, 1px, 1px, 1px)\",\n  clipPath: \"inset(50%)\",\n  height: \"1px\",\n  width: \"1px\",\n  margin: \"-1px\",\n  overflow: \"hidden\",\n  padding: 0,\n  position: \"absolute\"\n};\n\n// ../../library/src/render/presentation/Text.tsx\nimport React95, { useEffect as useEffect11, useRef as useRef15 } from \"react\";\n\n// ../../library/src/modules/replaceFramerPageLinks.ts\nvar htmlRegExp = /[&<>'\"]/g;\nvar escapeHTML = (str) => str.replace(\n  htmlRegExp,\n  (tag) => ({\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    \"'\": \"&#39;\",\n    '\"': \"&quot;\"\n  })[tag] || tag\n);\nvar regex = /(<([a-z]+)(?:\\s+(?!href[\\s=])[^=\\s]+=(?:'[^']*'|\"[^\"]*\"))*)(?:(\\s+href\\s*=)(?:'([^']*)'|\"([^\"]*)\"))?((?:\\s+[^=\\s]+=(?:'[^']*'|\"[^\"]*\"))*>)/gi;\nfunction replaceFramerPageLinks(rawHTML, getRoute, currentRoute, implicitPathVariables) {\n  return rawHTML.replace(\n    regex,\n    (original, pre1, tag, pre2, value1, value2, post) => {\n      var _a, _b, _c;\n      if (tag.toLowerCase() !== \"a\")\n        return original;\n      const href = value1 || value2;\n      const pageLink = parseFramerPageLink(href.replace(/&amp;/g, \"&\"));\n      if (!pageLink || !pageLink.target)\n        return original;\n      const targetRoute = getRoute(pageLink.target);\n      if (!isRoute(targetRoute) || !isRoute(currentRoute))\n        return original;\n      const targetPath = targetRoute.path;\n      const currentPath = currentRoute.path;\n      if (!targetPath || !currentPath)\n        return original;\n      let attributes = ` ${\"data-framer-page-link-target\" /* Page */}=\"${pageLink.target}\"`;\n      const elementId = getRouteElementId(targetRoute, (_a = pageLink.element) != null ? _a : void 0);\n      if (elementId) {\n        attributes += ` ${\"data-framer-page-link-element\" /* Element */}=\"${pageLink.element}\"`;\n      }\n      const link = linkFromFramerPageLink(href);\n      if (!link || isString2(link))\n        return original;\n      if (linkMatchesRoute(currentRoute, link, implicitPathVariables)) {\n        attributes += ` ${\"data-framer-page-link-current\" /* Current */}`;\n      }\n      let relativePath = targetPath;\n      const pathVariables = Object.assign({}, implicitPathVariables, (_b = pageLink.collectionItem) == null ? void 0 : _b.pathVariables);\n      if (Object.keys(pathVariables).length > 0) {\n        relativePath = relativePath.replace(pathVariablesRegExp2, (_, key7) => \"\" + pathVariables[key7]);\n      }\n      if ((_c = pageLink.collectionItem) == null ? void 0 : _c.pathVariables) {\n        const params = new URLSearchParams(pageLink.collectionItem.pathVariables);\n        attributes += ` ${\"data-framer-page-link-path-variables\" /* PathVariables */}=\"${params}\"`;\n      }\n      relativePath = computeRelativePath(currentPath, relativePath);\n      return pre1 + pre2 + `\"${escapeHTML(relativePath + (elementId ? `#${elementId}` : \"\"))}\"` + attributes + post;\n    }\n  );\n}\n\n// ../../library/src/render/fonts/fontStore.ts\nvar import_process4 = __toESM(require_browser(), 1);\n\n// ../../library/src/render/fonts/types.ts\nvar FontSourceNames = /* @__PURE__ */ ((FontSourceNames2) => {\n  FontSourceNames2[\"Google\"] = \"google\";\n  FontSourceNames2[\"Fontshare\"] = \"fontshare\";\n  FontSourceNames2[\"Local\"] = \"local\";\n  FontSourceNames2[\"Custom\"] = \"custom\";\n  return FontSourceNames2;\n})(FontSourceNames || {});\n\n// ../../library/src/render/fonts/CustomFontSource.ts\nvar customFontSelectorPrefix = \"CUSTOM;\";\nfunction getCustomFontName(fileName, properties) {\n  if (!properties)\n    return fileName.substring(0, fileName.lastIndexOf(\".\"));\n  const fontFamily = properties.font.preferredFamily === \"\" ? properties.font.fontFamily : properties.font.preferredFamily;\n  const variant = properties.font.preferredSubFamily === \"\" ? properties.font.fontSubFamily : properties.font.preferredSubFamily;\n  return `${fontFamily} ${variant}`;\n}\nvar CustomFontSource = class {\n  constructor() {\n    this.name = \"custom\" /* Custom */;\n    this.fontFamilies = [];\n    this.byFamilyName = /* @__PURE__ */ new Map();\n    this.assetsByFamily = /* @__PURE__ */ new Map();\n  }\n  importFonts(assets) {\n    this.fontFamilies.length = 0;\n    this.byFamilyName.clear();\n    this.assetsByFamily.clear();\n    const fonts = [];\n    assets.forEach((asset) => {\n      var _a;\n      if (!this.isValidCustomFontAsset(asset)) {\n        return;\n      }\n      const fontName = getCustomFontName(asset.name, asset.properties);\n      const fontFamily = this.createFontFamily(fontName);\n      const font = {\n        family: fontFamily,\n        selector: `${customFontSelectorPrefix}${fontName}`,\n        variant: this.inferVariantName(fontName),\n        postscriptName: (_a = asset.properties) == null ? void 0 : _a.font.postscriptName,\n        file: asset.url\n      };\n      fontFamily.fonts.push(font);\n      fontFamily.owner = asset.ownerType === \"team\" ? \"team\" : \"project\";\n      this.assetsByFamily.set(fontName, asset);\n      fonts.push(...fontFamily.fonts);\n    });\n    return fonts;\n  }\n  isValidCustomFontAsset(asset) {\n    var _a;\n    if (!asset.mimeType.startsWith(\"font/\"))\n      return false;\n    if (((_a = asset.properties) == null ? void 0 : _a.kind) !== \"font\")\n      return false;\n    if (!asset.properties.font)\n      return false;\n    return \"fontFamily\" in asset.properties.font;\n  }\n  inferVariantName(family) {\n    const possibleValues = [\n      \"thin\",\n      \"ultra light\",\n      \"extra light\",\n      \"light\",\n      \"normal\",\n      \"medium\",\n      \"semi bold\",\n      \"bold\",\n      \"extra bold\",\n      \"black\"\n    ];\n    const possibleValuesWithItalics = [...possibleValues.map((value) => `${value} italic`), ...possibleValues];\n    const lowerCaseFamily = family.toLowerCase();\n    const tokens = [...lowerCaseFamily.split(\" \"), ...lowerCaseFamily.split(\"-\"), ...lowerCaseFamily.split(\"_\")];\n    const foundToken = possibleValuesWithItalics.find(\n      (value) => tokens.includes(value) || tokens.includes(value.replace(/\\s+/g, \"\"))\n    );\n    if (foundToken)\n      return foundToken.replace(/(^\\w|\\s\\w)/g, (char) => char.toUpperCase());\n    return \"Regular\";\n  }\n  createFontFamily(family) {\n    const existingFontFamily = this.byFamilyName.get(family);\n    if (existingFontFamily)\n      return existingFontFamily;\n    const fontFamily = {\n      source: this.name,\n      name: family,\n      fonts: []\n    };\n    this.addFontFamily(fontFamily);\n    return fontFamily;\n  }\n  addFontFamily(fontFamily) {\n    this.fontFamilies.push(fontFamily);\n    this.byFamilyName.set(fontFamily.name, fontFamily);\n  }\n  parseSelector(selector) {\n    if (!selector.startsWith(customFontSelectorPrefix))\n      return null;\n    const tokens = selector.split(customFontSelectorPrefix);\n    if (tokens[1] === void 0)\n      return null;\n    const locator = { source: \"custom\", name: tokens[1] };\n    return locator;\n  }\n  getFontBySelector(selector, createFont = true) {\n    const locator = this.parseSelector(selector);\n    if (!locator)\n      return;\n    if (!createFont && !this.byFamilyName.get(locator.name))\n      return;\n    const fonts = this.getFontFamilyByName(locator.name).fonts;\n    const woff2Font = fonts.find((font) => {\n      var _a;\n      return (_a = font.file) == null ? void 0 : _a.endsWith(\".woff2\");\n    });\n    return woff2Font || fonts[0];\n  }\n  getFontFamilyByName(family) {\n    const foundFontFamily = this.byFamilyName.get(family);\n    if (foundFontFamily)\n      return foundFontFamily;\n    const fontFamily = {\n      source: \"custom\",\n      name: family,\n      fonts: []\n    };\n    fontFamily.fonts.push({\n      selector: `${customFontSelectorPrefix}${family}`,\n      variant: this.inferVariantName(family),\n      family: fontFamily\n    });\n    return fontFamily;\n  }\n};\n\n// ../../library/src/render/fonts/getFontVariants.ts\nfunction getFontVariants(currentVariant, variants, parseVariant) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;\n  if (variants.length === 0)\n    return {};\n  const currentVariantInfo = parseVariant(currentVariant);\n  if (!currentVariantInfo)\n    return {};\n  const { weight: currentWeight, style: currentStyle } = currentVariantInfo;\n  const variantByWeightAndStyle = /* @__PURE__ */ new Map();\n  const boldVariantByStyle = /* @__PURE__ */ new Map();\n  variants.forEach((variant) => {\n    const variantName = isString2(variant) ? variant : variant.name.toLocaleLowerCase();\n    const variantInfo = parseVariant(variantName);\n    if (!variantInfo)\n      return;\n    variantByWeightAndStyle.set(`${variantInfo.weight}-${variantInfo.style}`, variantName);\n    if (variantInfo.weight <= currentWeight)\n      return;\n    if (!boldVariantByStyle.has(variantInfo.style)) {\n      boldVariantByStyle.set(variantInfo.style, variantName);\n    }\n  });\n  let variantBold = boldVariantByStyle.get(currentStyle);\n  let variantBoldItalic = (_a = boldVariantByStyle.get(\"italic\")) != null ? _a : boldVariantByStyle.get(\"oblique\");\n  if (currentVariantInfo.weight <= 300) {\n    variantBold = (_b = variantByWeightAndStyle.get(`400-${currentStyle}`)) != null ? _b : variantBold;\n    variantBoldItalic = (_d = (_c = variantByWeightAndStyle.get(\"400-italic\")) != null ? _c : variantByWeightAndStyle.get(\"400-oblique\")) != null ? _d : variantBoldItalic;\n  } else if (currentVariantInfo.weight <= 500) {\n    variantBold = (_e = variantByWeightAndStyle.get(`700-${currentStyle}`)) != null ? _e : variantBold;\n    variantBoldItalic = (_g = (_f = variantByWeightAndStyle.get(\"700-italic\")) != null ? _f : variantByWeightAndStyle.get(\"700-oblique\")) != null ? _g : variantBoldItalic;\n  } else {\n    variantBold = (_h = variantByWeightAndStyle.get(`900-${currentStyle}`)) != null ? _h : variantBold;\n    variantBoldItalic = (_j = (_i = variantByWeightAndStyle.get(\"900-italic\")) != null ? _i : variantByWeightAndStyle.get(\"900-oblique\")) != null ? _j : variantBoldItalic;\n  }\n  const variantItalic = (_k = variantByWeightAndStyle.get(`${currentWeight}-italic`)) != null ? _k : variantByWeightAndStyle.get(`${currentWeight}-oblique`);\n  return { variantBold, variantItalic, variantBoldItalic };\n}\n\n// ../../library/src/render/fonts/parseFontshareCategories.ts\nvar knownFontshareCategories = [\"display\", \"sans\", \"serif\", \"slab\", \"handwritten\", \"script\"];\nfunction parseFontshareCategories(categoriesField) {\n  return categoriesField.split(\",\").map((category) => category.trim().toLowerCase()).filter(isKnownFontshareCategory);\n}\nfunction isKnownFontshareCategory(category) {\n  return knownFontshareCategories.includes(category);\n}\n\n// ../../library/src/render/fonts/FontshareSource.ts\nvar fontsharePrefix = \"FS;\";\nvar weightNameToNumber = {\n  thin: 100,\n  hairline: 100,\n  // Alternative name for \"thin\".\n  extralight: 200,\n  light: 300,\n  regular: 400,\n  medium: 500,\n  semibold: 600,\n  bold: 700,\n  extrabold: 800,\n  ultra: 800,\n  // Alternative name for \"extrabold\".\n  black: 900,\n  heavy: 900\n  // Alternative name for \"black\".\n};\nvar weightNames = Object.keys(weightNameToNumber);\nvar allowedVariantsRegex = new RegExp(`^(${[...weightNames, \"italic\"].join(\"|\")})`);\nvar FontshareSource = class {\n  constructor() {\n    this.name = \"fontshare\" /* Fontshare */;\n    this.fontFamilies = [];\n    this.byFamilyName = /* @__PURE__ */ new Map();\n  }\n  getFontFamilyByName(family) {\n    var _a;\n    return (_a = this.byFamilyName.get(family)) != null ? _a : null;\n  }\n  /**\n   * Parses variant a string into a weight number and style, defaulting to a\n   * weight of `400` and/or a style of `\"normal\"` depending on what isn't\n   * present in the variant string.\n   *\n   * E.g:\n   *   - `\"bold\"` becomes `{ weight: 700, style: \"normal\" }`\n   *   - `\"bold italic\"` becomes `{ weight: 700, style: \"italic\" }`\n   *   - `\"italic\"` becomes `{ weight: 400, style: \"italic\" }`\n   */\n  static parseVariant(variant) {\n    const variantSplit = variant.split(\" \");\n    const weightName = weightNames.find((weightName2) => {\n      return variantSplit.includes(weightName2);\n    });\n    const styleName = variant.includes(\"italic\") ? \"italic\" : \"normal\";\n    const weight = weightName && weightNameToNumber[weightName] || 400;\n    const style = styleName === \"italic\" ? styleName : \"normal\";\n    return {\n      weight,\n      style\n    };\n  }\n  parseSelector(selector) {\n    if (!selector.startsWith(fontsharePrefix))\n      return null;\n    const tokens = selector.split(\"-\");\n    if (tokens.length !== 2)\n      return null;\n    const [family, variant] = tokens;\n    if (!family || !variant)\n      return null;\n    return { name: family.replace(fontsharePrefix, \"\"), variant, source: this.name };\n  }\n  static createSelector(family, variant) {\n    return `${fontsharePrefix}${family}-${variant}`;\n  }\n  addFontFamily(fontFamily) {\n    this.fontFamilies.push(fontFamily);\n    this.byFamilyName.set(fontFamily.name, fontFamily);\n  }\n  importFonts(fontshareFonts) {\n    this.fontFamilies.length = 0;\n    this.byFamilyName.clear();\n    const fonts = [];\n    for (const fontshareFont of fontshareFonts) {\n      const fontStyles = fontshareFont.font_styles.filter((fontStyle) => {\n        const variant = fontStyle.name.toLowerCase();\n        const allowedVariantMatch = allowedVariantsRegex.exec(variant);\n        if (!allowedVariantMatch || variant.endsWith(\"wide\")) {\n          return false;\n        }\n        return true;\n      });\n      for (const fontStyle of fontStyles) {\n        const { name: family } = fontshareFont;\n        const variant = fontStyle.name.toLowerCase();\n        let fontFamily = this.getFontFamilyByName(family);\n        if (!fontFamily) {\n          fontFamily = { name: family, fonts: [], source: this.name };\n          this.addFontFamily(fontFamily);\n        }\n        const selector = FontshareSource.createSelector(family, variant);\n        const variantInfo = FontshareSource.parseVariant(variant) || {\n          weight: void 0,\n          style: void 0\n        };\n        const { weight, style } = variantInfo;\n        const { variantBold, variantBoldItalic, variantItalic } = getFontVariants(\n          variant,\n          fontStyles,\n          FontshareSource.parseVariant\n        );\n        const font = {\n          family: fontFamily,\n          variant,\n          selector,\n          selectorBold: variantBold ? FontshareSource.createSelector(family, variantBold) : void 0,\n          selectorBoldItalic: variantBoldItalic ? FontshareSource.createSelector(family, variantBoldItalic) : void 0,\n          selectorItalic: variantItalic ? FontshareSource.createSelector(family, variantItalic) : void 0,\n          weight,\n          style,\n          file: fontStyle.file,\n          category: mapToKnownCategory(fontshareFont.category)\n        };\n        fontFamily.fonts.push(font);\n        fonts.push(font);\n      }\n    }\n    return fonts;\n  }\n};\nfunction mapToKnownCategory(categoryString) {\n  const categoryMapping = {\n    serif: \"serif\",\n    sans: \"sans-serif\",\n    slab: \"slab\",\n    display: \"display\",\n    // As of Nov 2023, these two look similar enough \u2013 so we can map them into the same category.\n    handwritten: \"handwriting\",\n    script: \"handwriting\"\n  };\n  const category = parseFontshareCategories(categoryString)[0];\n  return category && categoryMapping[category];\n}\n\n// ../../library/src/render/fonts/GoogleFontSource.ts\nvar googleFontSelectorPrefix = \"GF;\";\nvar GoogleFontSource = class {\n  constructor() {\n    this.name = \"google\" /* Google */;\n    this.fontFamilies = [];\n    this.byFamilyName = /* @__PURE__ */ new Map();\n  }\n  getFontFamilyByName(family) {\n    var _a;\n    return (_a = this.byFamilyName.get(family)) != null ? _a : null;\n  }\n  static parseVariant(variant) {\n    if (variant === \"regular\")\n      return { style: \"normal\", weight: 400 };\n    const match = /([0-9]*)(normal|italic)?/.exec(variant);\n    if (!match)\n      return null;\n    const weight = parseInt(match[1] || \"400\");\n    const style = match[2] === \"italic\" ? \"italic\" : \"normal\";\n    return { weight, style };\n  }\n  parseSelector(selector) {\n    if (!selector.startsWith(googleFontSelectorPrefix))\n      return null;\n    const tokens = selector.split(\"-\");\n    if (tokens.length !== 2)\n      return null;\n    const [family, variant] = tokens;\n    if (!family || !variant)\n      return null;\n    return { name: family.replace(googleFontSelectorPrefix, \"\"), variant, source: this.name };\n  }\n  static createSelector(family, variant) {\n    return `${googleFontSelectorPrefix}${family}-${variant}`;\n  }\n  addFontFamily(family) {\n    const fontFamily = { name: family, fonts: [], source: this.name };\n    this.fontFamilies.push(fontFamily);\n    this.byFamilyName.set(fontFamily.name, fontFamily);\n    return fontFamily;\n  }\n  importFonts(webFonts) {\n    this.fontFamilies.length = 0;\n    this.byFamilyName.clear();\n    const fonts = [];\n    webFonts.forEach((webFont) => {\n      webFont.variants.forEach((variant) => {\n        var _a, _b;\n        const family = webFont.family;\n        let fontFamily = this.getFontFamilyByName(family);\n        if (!fontFamily) {\n          fontFamily = this.addFontFamily(family);\n        }\n        const variantInfo = (_a = GoogleFontSource.parseVariant(variant)) != null ? _a : {};\n        const { weight, style } = variantInfo;\n        const selector = GoogleFontSource.createSelector(family, variant);\n        const { variantBold, variantItalic, variantBoldItalic } = getFontVariants(\n          variant,\n          webFont.variants,\n          GoogleFontSource.parseVariant\n        );\n        const font = {\n          family: fontFamily,\n          variant,\n          selector,\n          selectorBold: variantBold ? GoogleFontSource.createSelector(family, variantBold) : void 0,\n          selectorBoldItalic: variantBoldItalic ? GoogleFontSource.createSelector(family, variantBoldItalic) : void 0,\n          selectorItalic: variantItalic ? GoogleFontSource.createSelector(family, variantItalic) : void 0,\n          weight,\n          style,\n          category: mapToKnownCategory2(webFont.category),\n          file: (_b = webFont.files[variant]) == null ? void 0 : _b.replace(\"http://\", \"https://\")\n        };\n        fontFamily.fonts.push(font);\n        fonts.push(font);\n      });\n    });\n    return fonts;\n  }\n};\nfunction mapToKnownCategory2(category) {\n  const categoryMapping = {\n    serif: \"serif\",\n    \"sans-serif\": \"sans-serif\",\n    display: \"display\",\n    handwriting: \"handwriting\",\n    monospace: \"monospace\"\n  };\n  if (!category)\n    return void 0;\n  return categoryMapping[category];\n}\n\n// ../../library/src/render/fonts/loadFont.ts\nvar import_fontfaceobserver = __toESM(require_fontfaceobserver_standalone(), 1);\nvar FONT_LOADING_TIMEOUT = 5e3;\nvar MAX_RETRIES = 3;\nvar FontLoadingError = class extends Error {\n  constructor(message) {\n    super(message);\n    this.name = \"FontLoadingError\";\n  }\n};\nvar fontRequests = /* @__PURE__ */ new Map();\nvar fontReadyPromises = /* @__PURE__ */ new Map();\nvar loadFont = (data2, doc) => loadFontWithRetries(data2, doc);\nasync function loadFontWithRetries(data2, doc, attempt = 0) {\n  const { family, url, stretch, unicodeRange } = data2;\n  const weight = data2.weight || 500;\n  const style = data2.style || \"normal\";\n  const requestId = `${family}-${style}-${weight}-${url}`;\n  if (!fontRequests.has(requestId) || attempt > 0) {\n    const fontFace = new FontFace(family, `url(${url})`, {\n      weight: isString2(weight) ? weight : weight == null ? void 0 : weight.toString(),\n      style,\n      stretch,\n      unicodeRange\n    });\n    const readyPromise = fontFace.load().then(() => {\n      doc.fonts.add(fontFace);\n      return isFontReady(family, style, weight);\n    }).catch((e) => {\n      if (e.name !== \"NetworkError\") {\n        throw e;\n      }\n      if (attempt < MAX_RETRIES) {\n        return loadFontWithRetries(data2, doc, attempt + 1);\n      }\n      throw new FontLoadingError(\n        `Font loading failed after ${attempt} retries due to network error: ${JSON.stringify({\n          family,\n          style,\n          weight,\n          url,\n          stretch,\n          unicodeRange\n        })}`\n      );\n    });\n    fontRequests.set(requestId, readyPromise);\n  }\n  await fontRequests.get(requestId);\n}\nasync function isFontReady(family, style, weight) {\n  const readyPromiseId = `${family}-${style}-${weight}`;\n  if (!fontReadyPromises.has(readyPromiseId)) {\n    const observer = new import_fontfaceobserver.default(family, {\n      style,\n      weight\n    });\n    const readyPromise = observer.load(null, FONT_LOADING_TIMEOUT);\n    fontReadyPromises.set(readyPromiseId, readyPromise);\n  }\n  try {\n    await fontReadyPromises.get(readyPromiseId);\n  } catch (e) {\n    throw new FontLoadingError(\n      `Failed to check if font is ready (${FONT_LOADING_TIMEOUT}ms timeout exceeded): ${JSON.stringify({\n        family,\n        style,\n        weight\n      })}`\n    );\n  }\n}\n\n// ../../library/src/render/fonts/fonts.ts\nvar safeFonts = {\n  Arial: {\n    Regular: { selector: \"Arial\", weight: void 0 },\n    Black: { selector: \"Arial-Black\", weight: void 0 },\n    Narrow: { selector: \"Arial Narrow\", weight: void 0 },\n    \"Rounded Bold\": { selector: \"Arial Rounded MT Bold\", weight: void 0 }\n  },\n  Avenir: {\n    Book: { selector: \"Avenir\", weight: void 0 },\n    Light: { selector: \"Avenir-Light\", weight: void 0 },\n    Medium: { selector: \"Avenir-Medium\", weight: void 0 },\n    Heavy: { selector: \"Avenir-Heavy\", weight: void 0 },\n    Black: { selector: \"Avenir-Black\", weight: void 0 }\n  },\n  \"Avenir Next\": {\n    Regular: { selector: \"Avenir Next\", weight: void 0 },\n    \"Ultra Light\": { selector: \"AvenirNext-UltraLight\", weight: void 0 },\n    Medium: { selector: \"AvenirNext-Medium\", weight: void 0 },\n    \"Demi Bold\": { selector: \"AvenirNext-DemiBold\", weight: void 0 },\n    Heavy: { selector: \"AvenirNext-Heavy\", weight: void 0 }\n  },\n  \"Avenir Next Condensed\": {\n    Regular: { selector: \"Avenir Next Condensed\", weight: void 0 },\n    \"Ultra Light\": { selector: \"AvenirNextCondensed-UltraLight\", weight: void 0 },\n    Medium: { selector: \"AvenirNextCondensed-Medium\", weight: void 0 },\n    \"Demi Bold\": { selector: \"AvenirNextCondensed-DemiBold\", weight: void 0 },\n    Heavy: { selector: \"AvenirNextCondensed-Heavy\", weight: void 0 }\n  },\n  Baskerville: {\n    Regular: { selector: \"Baskerville\", weight: void 0 },\n    \"Semi Bold\": { selector: \"Baskerville-SemiBold\", weight: void 0 }\n  },\n  \"Bodoni 72\": {\n    Book: { selector: \"Bodoni 72\", weight: void 0 },\n    Oldstyle: { selector: \"Bodoni 72 Oldstyle\", weight: void 0 },\n    Smallcaps: { selector: \"Bodoni 72 Smallcaps\", weight: void 0 }\n  },\n  Courier: { Regular: { selector: \"Courier\", weight: void 0 } },\n  \"Courier New\": { Regular: { selector: \"Courier New\", weight: void 0 } },\n  Futura: {\n    Medium: { selector: \"Futura\", weight: void 0 },\n    Condensed: { selector: \"Futura-CondensedMedium\", weight: void 0 },\n    \"Condensed ExtraBold\": { selector: \"Futura-CondensedExtraBold\", weight: void 0 }\n  },\n  Georgia: { Regular: { selector: \"Georgia\", weight: void 0 } },\n  \"Gill Sans\": {\n    Regular: { selector: \"Gill Sans\", weight: void 0 },\n    Light: { selector: \"GillSans-Light\", weight: void 0 },\n    SemiBold: { selector: \"GillSans-SemiBold\", weight: void 0 },\n    UltraBold: { selector: \"GillSans-UltraBold\", weight: void 0 }\n  },\n  Helvetica: {\n    Regular: { selector: \"Helvetica\", weight: void 0 },\n    Light: { selector: \"Helvetica-Light\", weight: void 0 },\n    Bold: { selector: \"Helvetica-Bold\", weight: void 0 },\n    Oblique: { selector: \"Helvetica-Oblique\", weight: void 0 },\n    \"Light Oblique\": { selector: \"Helvetica-LightOblique\", weight: void 0 },\n    \"Bold Oblique\": { selector: \"Helvetica-BoldOblique\", weight: void 0 }\n  },\n  \"Helvetica Neue\": {\n    Regular: { selector: \"Helvetica Neue\", weight: void 0 },\n    UltraLight: { selector: \"HelveticaNeue-UltraLight\", weight: void 0 },\n    Thin: { selector: \"HelveticaNeue-Thin\", weight: void 0 },\n    Light: { selector: \"HelveticaNeue-Light\", weight: void 0 },\n    Medium: { selector: \"HelveticaNeue-Medium\", weight: void 0 },\n    Bold: { selector: \"HelveticaNeue-Bold\", weight: void 0 },\n    Italic: { selector: \"HelveticaNeue-Italic\", weight: void 0 },\n    \"UltraLight Italic\": { selector: \"HelveticaNeue-UltraLightItalic\", weight: void 0 },\n    \"Thin Italic\": { selector: \"HelveticaNeue-ThinItalic\", weight: void 0 },\n    \"Light Italic\": { selector: \"HelveticaNeue-LightItalic\", weight: void 0 },\n    \"Medium Italic\": { selector: \"HelveticaNeue-MediumItalic\", weight: void 0 },\n    \"Bold Italic\": { selector: \"HelveticaNeue-BoldItalic\", weight: void 0 },\n    \"Condensed Bold\": { selector: \"HelveticaNeue-CondensedBold\", weight: void 0 },\n    \"Condensed Black\": { selector: \"HelveticaNeue-CondensedBlack\", weight: void 0 }\n  },\n  \"Hoefler Text\": { Regular: { selector: \"Hoefler Text\", weight: void 0 } },\n  Impact: { Regular: { selector: \"Impact\", weight: void 0 } },\n  \"Lucida Grande\": { Regular: { selector: \"Lucida Grande\", weight: void 0 } },\n  Menlo: { Regular: { selector: \"Menlo\", weight: void 0 } },\n  Monaco: { Regular: { selector: \"Monaco\", weight: void 0 } },\n  Optima: {\n    Regular: { selector: \"Optima\", weight: void 0 },\n    ExtraBlack: { selector: \"Optima-ExtraBlack\", weight: void 0 }\n  },\n  Palatino: { Regular: { selector: \"Palatino\", weight: void 0 } },\n  \"SF Pro Display\": {\n    Regular: { selector: \"__SF-UI-Display-Regular__\", weight: 400 },\n    Ultralight: { selector: \"__SF-UI-Display-Ultralight__\", weight: 100 },\n    Thin: { selector: \"__SF-UI-Display-Thin__\", weight: 200 },\n    Light: { selector: \"__SF-UI-Display-Light__\", weight: 300 },\n    Medium: { selector: \"__SF-UI-Display-Medium__\", weight: 500 },\n    Semibold: { selector: \"__SF-UI-Display-Semibold__\", weight: 600 },\n    Bold: { selector: \"__SF-UI-Display-Bold__\", weight: 700 },\n    Heavy: { selector: \"__SF-UI-Display-Heavy__\", weight: 800 },\n    Black: { selector: \"__SF-UI-Display-Black__\", weight: 900 },\n    Italic: { selector: \"__SF-UI-Display-Italic__\", weight: 400 },\n    \"Ultralight Italic\": { selector: \"__SF-UI-Display-Ultralight-Italic__\", weight: 100 },\n    \"Thin Italic\": { selector: \"__SF-UI-Display-Thin-Italic__\", weight: 200 },\n    \"Light Italic\": { selector: \"__SF-UI-Display-Light-Italic__\", weight: 300 },\n    \"Medium Italic\": { selector: \"__SF-UI-Display-Medium-Italic__\", weight: 500 },\n    \"Semibold Italic\": { selector: \"__SF-UI-Display-Semibold-Italic__\", weight: 600 },\n    \"Bold Italic\": { selector: \"__SF-UI-Display-Bold-Italic__\", weight: 700 },\n    \"Heavy Italic\": { selector: \"__SF-UI-Display-Heavy-Italic__\", weight: 800 },\n    \"Black Italic\": { selector: \"__SF-UI-Display-Black-Italic__\", weight: 900 }\n  },\n  \"SF Pro Display Condensed\": {\n    Regular: { selector: \"__SF-UI-Display-Condensed-Regular__\", weight: 400 },\n    Ultralight: { selector: \"__SF-UI-Display-Condensed-Ultralight__\", weight: 100 },\n    Thin: { selector: \"__SF-UI-Display-Condensed-Thin__\", weight: 200 },\n    Light: { selector: \"__SF-UI-Display-Condensed-Light__\", weight: 300 },\n    Medium: { selector: \"__SF-UI-Display-Condensed-Medium__\", weight: 500 },\n    Semibold: { selector: \"__SF-UI-Display-Condensed-Semibold__\", weight: 600 },\n    Bold: { selector: \"__SF-UI-Display-Condensed-Bold__\", weight: 700 },\n    Heavy: { selector: \"__SF-UI-Display-Condensed-Heavy__\", weight: 800 },\n    Black: { selector: \"__SF-UI-Display-Condensed-Black__\", weight: 900 }\n  },\n  \"SF Pro Text\": {\n    Regular: { selector: \"__SF-UI-Text-Regular__\", weight: 400 },\n    Light: { selector: \"__SF-UI-Text-Light__\", weight: 200 },\n    Medium: { selector: \"__SF-UI-Text-Medium__\", weight: 500 },\n    Semibold: { selector: \"__SF-UI-Text-Semibold__\", weight: 600 },\n    Bold: { selector: \"__SF-UI-Text-Bold__\", weight: 700 },\n    Heavy: { selector: \"__SF-UI-Text-Heavy__\", weight: 800 },\n    Italic: { selector: \"__SF-UI-Text-Italic__\", weight: 400 },\n    \"Light Italic\": { selector: \"__SF-UI-Text-Light-Italic__\", weight: 200 },\n    \"Medium Italic\": { selector: \"__SF-UI-Text-Medium-Italic__\", weight: 500 },\n    \"Semibold Italic\": { selector: \"__SF-UI-Text-Semibold-Italic__\", weight: 600 },\n    \"Bold Italic\": { selector: \"__SF-UI-Text-Bold-Italic__\", weight: 700 },\n    \"Heavy Italic\": { selector: \"__SF-UI-Text-Heavy-Italic__\", weight: 800 }\n  },\n  \"SF Pro Text Condensed\": {\n    Regular: { selector: \"__SF-UI-Text-Condensed-Regular__\", weight: 400 },\n    Light: { selector: \"__SF-UI-Text-Condensed-Light__\", weight: 200 },\n    Medium: { selector: \"__SF-UI-Text-Condensed-Medium__\", weight: 500 },\n    Semibold: { selector: \"__SF-UI-Text-Condensed-Semibold__\", weight: 600 },\n    Bold: { selector: \"__SF-UI-Text-Condensed-Bold__\", weight: 700 },\n    Heavy: { selector: \"__SF-UI-Text-Condensed-Heavy__\", weight: 800 }\n  },\n  Tahoma: { Regular: { selector: \"Tahoma\", weight: void 0 } },\n  Times: { Regular: { selector: \"Times\", weight: void 0 } },\n  \"Times New Roman\": { Regular: { selector: \"Times New Roman\", weight: void 0 } },\n  Trebuchet: { Regular: { selector: \"Trebuchet MS\", weight: void 0 } },\n  Verdana: { Regular: { selector: \"Verdana\", weight: void 0 } }\n};\nvar fontAliases = {\n  \"__SF-Compact-Display-Regular__\": \"SFCompactDisplay-Regular|.SFCompactDisplay-Regular\",\n  \"__SF-Compact-Display-Ultralight__\": \"SFCompactDisplay-Ultralight|.SFCompactDisplay-Ultralight\",\n  \"__SF-Compact-Display-Thin__\": \"SFCompactDisplay-Thin|.SFCompactDisplay-Thin\",\n  \"__SF-Compact-Display-Light__\": \"SFCompactDisplay-Light|.SFCompactDisplay-Light\",\n  \"__SF-Compact-Display-Medium__\": \"SFCompactDisplay-Medium|.SFCompactDisplay-Medium\",\n  \"__SF-Compact-Display-Semibold__\": \"SFCompactDisplay-Semibold|.SFCompactDisplay-Semibold\",\n  \"__SF-Compact-Display-Heavy__\": \"SFCompactDisplay-Heavy|.SFCompactDisplay-Heavy\",\n  \"__SF-Compact-Display-Black__\": \"SFCompactDisplay-Black|.SFCompactDisplay-Black\",\n  \"__SF-Compact-Display-Bold__\": \"SFCompactDisplay-Bold|.SFCompactDisplay-Bold\",\n  \"__SF-UI-Text-Regular__\": \".SFNSText|SFProText-Regular|SFUIText-Regular|.SFUIText\",\n  \"__SF-UI-Text-Light__\": \".SFNSText-Light|SFProText-Light|SFUIText-Light|.SFUIText-Light\",\n  \"__SF-UI-Text-Medium__\": \".SFNSText-Medium|SFProText-Medium|SFUIText-Medium|.SFUIText-Medium\",\n  \"__SF-UI-Text-Semibold__\": \".SFNSText-Semibold|SFProText-Semibold|SFUIText-Semibold|.SFUIText-Semibold\",\n  \"__SF-UI-Text-Bold__\": \".SFNSText-Bold|SFProText-Bold|SFUIText-Bold|.SFUIText-Bold\",\n  \"__SF-UI-Text-Heavy__\": \".SFNSText-Heavy|SFProText-Heavy|.SFUIText-Heavy\",\n  \"__SF-UI-Text-Italic__\": \".SFNSText-Italic|SFProText-Italic|SFUIText-Italic|.SFUIText-Italic\",\n  \"__SF-UI-Text-Light-Italic__\": \".SFNSText-LightItalic|SFProText-LightItalic|SFUIText-LightItalic|.SFUIText-LightItalic\",\n  \"__SF-UI-Text-Medium-Italic__\": \".SFNSText-MediumItalic|SFProText-MediumItalic|SFUIText-MediumItalic|.SFUIText-MediumItalic\",\n  \"__SF-UI-Text-Semibold-Italic__\": \".SFNSText-SemiboldItalic|SFProText-SemiboldItalic|SFUIText-SemiboldItalic|.SFUIText-SemiboldItalic\",\n  \"__SF-UI-Text-Bold-Italic__\": \".SFNSText-BoldItalic|SFProText-BoldItalic|SFUIText-BoldItalic|.SFUIText-BoldItalic\",\n  \"__SF-UI-Text-Heavy-Italic__\": \".SFNSText-HeavyItalic|SFProText-HeavyItalic|.SFUIText-HeavyItalic\",\n  \"__SF-Compact-Text-Regular__\": \"SFCompactText-Regular|.SFCompactText-Regular\",\n  \"__SF-Compact-Text-Light__\": \"SFCompactText-Light|.SFCompactText-Light\",\n  \"__SF-Compact-Text-Medium__\": \"SFCompactText-Medium|.SFCompactText-Medium\",\n  \"__SF-Compact-Text-Semibold__\": \"SFCompactText-Semibold|.SFCompactText-Semibold\",\n  \"__SF-Compact-Text-Bold__\": \"SFCompactText-Bold|.SFCompactText-Bold\",\n  \"__SF-Compact-Text-Heavy__\": \"SFCompactText-Heavy|.SFCompactText-Heavy\",\n  \"__SF-Compact-Text-Italic__\": \"SFCompactText-Italic|.SFCompactText-Italic\",\n  \"__SF-Compact-Text-Light-Italic__\": \"SFCompactText-LightItalic|.SFCompactText-LightItalic\",\n  \"__SF-Compact-Text-Medium-Italic__\": \"SFCompactText-MediumItalic|.SFCompactText-MediumItalic\",\n  \"__SF-Compact-Text-Semibold-Italic__\": \"SFCompactText-SemiboldItalic|.SFCompactText-SemiboldItalic\",\n  \"__SF-Compact-Text-Bold-Italic__\": \"SFCompactText-BoldItalic|.SFCompactText-BoldItalic\",\n  \"__SF-Compact-Text-Heavy-Italic__\": \"SFCompactText-HeavyItalic|.SFCompactText-HeavyItalic\",\n  \"__SF-UI-Display-Condensed-Regular__\": \".SFNSDisplayCondensed-Regular|SFUIDisplayCondensed-Regular|.SFUIDisplayCondensed-Regular\",\n  \"__SF-UI-Display-Condensed-Ultralight__\": \".SFNSDisplayCondensed-Ultralight|SFUIDisplayCondensed-Ultralight|.SFUIDisplayCondensed-Ultralight\",\n  \"__SF-UI-Display-Condensed-Thin__\": \".SFNSDisplayCondensed-Thin|SFUIDisplayCondensed-Thin|.SFUIDisplayCondensed-Thin\",\n  \"__SF-UI-Display-Condensed-Light__\": \".SFNSDisplayCondensed-Light|SFUIDisplayCondensed-Light|.SFUIDisplayCondensed-Light\",\n  \"__SF-UI-Display-Condensed-Medium__\": \".SFNSDisplayCondensed-Medium|SFUIDisplayCondensed-Medium|.SFUIDisplayCondensed-Medium\",\n  \"__SF-UI-Display-Condensed-Semibold__\": \".SFNSDisplayCondensed-Semibold|SFUIDisplayCondensed-Semibold|.SFUIDisplayCondensed-Semibold\",\n  \"__SF-UI-Display-Condensed-Bold__\": \".SFNSDisplayCondensed-Bold|SFUIDisplayCondensed-Bold|.SFUIDisplayCondensed-Bold\",\n  \"__SF-UI-Display-Condensed-Heavy__\": \".SFNSDisplayCondensed-Heavy|SFUIDisplayCondensed-Heavy|.SFUIDisplayCondensed-Heavy\",\n  \"__SF-UI-Display-Condensed-Black__\": \".SFNSDisplayCondensed-Black|.SFUIDisplayCondensed-Black\",\n  \"__SF-UI-Display-Regular__\": \".SFNSDisplay|SFProDisplay-Regular|SFUIDisplay-Regular|.SFUIDisplay\",\n  \"__SF-UI-Display-Ultralight__\": \".SFNSDisplay-Ultralight|SFProDisplay-Ultralight|SFUIDisplay-Ultralight|.SFUIDisplay-Ultralight\",\n  \"__SF-UI-Display-Thin__\": \".SFNSDisplay-Thin|SFProDisplay-Thin|SFUIDisplay-Thin|.SFUIDisplay-Thin\",\n  \"__SF-UI-Display-Light__\": \".SFNSDisplay-Light|SFProDisplay-Light|SFUIDisplay-Light|.SFUIDisplay-Light\",\n  \"__SF-UI-Display-Medium__\": \".SFNSDisplay-Medium|SFProDisplay-Medium|SFUIDisplay-Medium|.SFUIDisplay-Medium\",\n  \"__SF-UI-Display-Semibold__\": \".SFNSDisplay-Semibold|SFProDisplay-Semibold|SFUIDisplay-Semibold|.SFUIDisplay-Semibold\",\n  \"__SF-UI-Display-Bold__\": \".SFNSDisplay-Bold|SFProDisplay-Bold|SFUIDisplay-Bold|.SFUIDisplay-Bold\",\n  \"__SF-UI-Display-Heavy__\": \".SFNSDisplay-Heavy|SFProDisplay-Heavy|SFUIDisplay-Heavy|.SFUIDisplay-Heavy\",\n  \"__SF-UI-Display-Black__\": \".SFNSDisplay-Black|SFProDisplay-Black|.SFUIDisplay-Black\",\n  \"__SF-UI-Display-Italic__\": \".SFNSDisplay-Italic|SFProDisplay-Italic|SFUIDisplay-Italic\",\n  \"__SF-UI-Display-Ultralight-Italic__\": \".SFNSDisplay-UltralightItalic|SFProDisplay-UltralightItalic|SFUIDisplay-UltralightItalic|.SFUIDisplay-UltralightItalic\",\n  \"__SF-UI-Display-Thin-Italic__\": \".SFNSDisplay-ThinItalic|SFProDisplay-ThinItalic|SFUIDisplay-ThinItalic|.SFUIDisplay-ThinItalic\",\n  \"__SF-UI-Display-Light-Italic__\": \".SFNSDisplay-LightItalic|SFProDisplay-LightItalic|SFUIDisplay-LightItalic|.SFUIDisplay-LightItalic\",\n  \"__SF-UI-Display-Medium-Italic__\": \".SFNSDisplay-MediumItalic|SFProDisplay-MediumItalic|SFUIDisplay-MediumItalic|.SFUIDisplay-MediumItalic\",\n  \"__SF-UI-Display-Semibold-Italic__\": \".SFNSDisplay-SemiboldItalic|SFProDisplay-SemiboldItalic|SFUIDisplay-SemiboldItalic|.SFUIDisplay-SemiboldItalic\",\n  \"__SF-UI-Display-Bold-Italic__\": \".SFNSDisplay-BoldItalic|SFProDisplay-BoldItalic|SFUIDisplay-BoldItalic|.SFUIDisplay-BoldItalic\",\n  \"__SF-UI-Display-Heavy-Italic__\": \".SFNSDisplay-HeavyItalic|SFProDisplay-HeavyItalic|SFUIDisplay-HeavyItalic|.SFUIDisplay-HeavyItalic\",\n  \"__SF-UI-Display-Black-Italic__\": \".SFNSDisplay-BlackItalic|SFProDisplay-BlackItalic|.SFUIDisplay-BlackItalic\",\n  \"__SF-UI-Text-Condensed-Regular__\": \".SFNSTextCondensed-Regular|SFUITextCondensed-Regular|.SFUITextCondensed-Regular\",\n  \"__SF-UI-Text-Condensed-Light__\": \".SFNSTextCondensed-Light|SFUITextCondensed-Light|.SFUITextCondensed-Light\",\n  \"__SF-UI-Text-Condensed-Medium__\": \".SFNSTextCondensed-Medium|SFUITextCondensed-Medium|.SFUITextCondensed-Medium\",\n  \"__SF-UI-Text-Condensed-Semibold__\": \".SFNSTextCondensed-Semibold|SFUITextCondensed-Semibold|.SFUITextCondensed-Semibold\",\n  \"__SF-UI-Text-Condensed-Bold__\": \".SFNSTextCondensed-Bold|SFUITextCondensed-Bold|.SFUITextCondensed-Bold\",\n  \"__SF-UI-Text-Condensed-Heavy__\": \".SFNSTextCondensed-Heavy|.SFUITextCondensed-Heavy\",\n  \"__SF-Compact-Rounded-Regular__\": \"SFCompactRounded-Regular|.SFCompactRounded-Regular\",\n  \"__SF-Compact-Rounded-Ultralight__\": \"SFCompactRounded-Ultralight|.SFCompactRounded-Ultralight\",\n  \"__SF-Compact-Rounded-Thin__\": \"SFCompactRounded-Thin|.SFCompactRounded-Thin\",\n  \"__SF-Compact-Rounded-Light__\": \"SFCompactRounded-Light|.SFCompactRounded-Light\",\n  \"__SF-Compact-Rounded-Medium__\": \"SFCompactRounded-Medium|.SFCompactRounded-Medium\",\n  \"__SF-Compact-Rounded-Semibold__\": \"SFCompactRounded-Semibold|.SFCompactRounded-Semibold\",\n  \"__SF-Compact-Rounded-Bold__\": \"SFCompactRounded-Bold|.SFCompactRounded-Bold\",\n  \"__SF-Compact-Rounded-Heavy__\": \"SFCompactRounded-Heavy|.SFCompactRounded-Heavy\",\n  \"__SF-Compact-Rounded-Black__\": \"SFCompactRounded-Black|.SFCompactRounded-Black\"\n};\nvar fontFamilies = safeFonts;\n\n// ../../library/src/render/fonts/LocalFontSource.ts\nvar systemFontFamilyName = \"System Default\";\nvar LocalFontSource = class {\n  constructor() {\n    this.name = \"local\" /* Local */;\n    this.fontFamilies = [];\n    this.byFamilyName = /* @__PURE__ */ new Map();\n    this.fontAliasBySelector = /* @__PURE__ */ new Map();\n    this.fontAliases = /* @__PURE__ */ new Map();\n    this.interFontSelectors = /* @__PURE__ */ new Set();\n  }\n  getFontFamilyByName(family) {\n    var _a;\n    return (_a = this.byFamilyName.get(family)) != null ? _a : null;\n  }\n  // TODO: these are duplicated across implementations of FontSource\n  // When adding a third source, we should abstract them\n  createFontFamily(family) {\n    const fontFamily = { name: family, fonts: [], source: this.name };\n    this.addFontFamily(fontFamily);\n    return fontFamily;\n  }\n  addFontFamily(fontFamily) {\n    this.fontFamilies.push(fontFamily);\n    this.byFamilyName.set(fontFamily.name, fontFamily);\n  }\n  // end of duplication\n  importFonts() {\n    const fonts = [];\n    for (const family of Object.keys(fontFamilies)) {\n      const members = fontFamilies[family];\n      if (!members)\n        continue;\n      const fontFamily = this.createFontFamily(family);\n      for (const variant of Object.keys(members)) {\n        const member = members[variant];\n        if (!member)\n          continue;\n        const { selector, weight } = member;\n        const font = {\n          variant,\n          selector,\n          weight,\n          family: fontFamily\n        };\n        fontFamily.fonts.push(font);\n      }\n      fonts.push(...fontFamily.fonts);\n    }\n    for (const [key7, value] of Object.entries(fontAliases)) {\n      this.addFontAlias(key7, value);\n    }\n    const { fontFamily: systemFontFamily, aliases } = this.getSystemFontFamily();\n    this.addFontFamily(systemFontFamily);\n    for (const [key7, value] of aliases) {\n      this.addFontAlias(key7, value);\n    }\n    fonts.push(...systemFontFamily.fonts);\n    const interFontFamily = this.importInterFontFamily();\n    fonts.push(...interFontFamily.fonts);\n    return fonts;\n  }\n  importInterFontFamily() {\n    const inter = [\n      {\n        variant: \"Regular\",\n        selector: \"Inter\",\n        weight: 400,\n        selectorBold: \"Inter-Bold\",\n        selectorBoldItalic: \"Inter-BoldItalic\",\n        selectorItalic: \"Inter-Italic\"\n      },\n      {\n        variant: \"Thin\",\n        selector: \"Inter-Thin\",\n        weight: 100,\n        selectorBold: \"Inter\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-ThinItalic\"\n      },\n      {\n        variant: \"Extra Light\",\n        selector: \"Inter-ExtraLight\",\n        weight: 200,\n        selectorBold: \"Inter\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-ExtraLightItalic\"\n      },\n      {\n        variant: \"Light\",\n        selector: \"Inter-Light\",\n        weight: 300,\n        selectorBold: \"Inter\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-LightItalic\"\n      },\n      {\n        variant: \"Medium\",\n        selector: \"Inter-Medium\",\n        weight: 500,\n        selectorBold: \"Inter-Bold\",\n        selectorBoldItalic: \"Inter-BoldItalic\",\n        selectorItalic: \"Inter-MediumItalic\"\n      },\n      {\n        variant: \"Semibold\",\n        selector: \"Inter-SemiBold\",\n        weight: 600,\n        selectorBold: \"Inter-Black\",\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: \"Inter-SemiBoldItalic\"\n      },\n      {\n        variant: \"Bold\",\n        selector: \"Inter-Bold\",\n        weight: 700,\n        selectorBold: \"Inter-Black\",\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: \"Inter-BoldItalic\"\n      },\n      {\n        variant: \"Extra Bold\",\n        selector: \"Inter-ExtraBold\",\n        weight: 800,\n        selectorBold: \"Inter-Black\",\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: \"Inter-ExtraBoldItalic\"\n      },\n      {\n        variant: \"Black\",\n        selector: \"Inter-Black\",\n        weight: 900,\n        selectorBold: void 0,\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: void 0\n      },\n      {\n        variant: \"Thin Italic\",\n        selector: \"Inter-ThinItalic\",\n        weight: 100,\n        selectorBold: \"Inter-Italic\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-ThinItalic\"\n      },\n      {\n        variant: \"Extra Light Italic\",\n        selector: \"Inter-ExtraLightItalic\",\n        weight: 200,\n        selectorBold: \"Inter-Italic\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-ExtraLightItalic\"\n      },\n      {\n        variant: \"Light Italic\",\n        selector: \"Inter-LightItalic\",\n        weight: 300,\n        selectorBold: \"Inter-Italic\",\n        selectorBoldItalic: \"Inter-Italic\",\n        selectorItalic: \"Inter-LightItalic\"\n      },\n      {\n        variant: \"Italic\",\n        selector: \"Inter-Italic\",\n        weight: 400,\n        selectorBold: \"Inter-BoldItalic\",\n        selectorBoldItalic: \"Inter-BoldItalic\",\n        selectorItalic: \"Inter-Italic\"\n      },\n      {\n        variant: \"Medium Italic\",\n        selector: \"Inter-MediumItalic\",\n        weight: 500,\n        selectorBold: \"Inter-BoldItalic\",\n        selectorBoldItalic: \"Inter-BoldItalic\",\n        selectorItalic: \"Inter-MediumItalic\"\n      },\n      {\n        variant: \"Semibold Italic\",\n        selector: \"Inter-SemiBoldItalic\",\n        weight: 600,\n        selectorBold: \"Inter-BoldItalic\",\n        selectorBoldItalic: \"Inter-BoldItalic\",\n        selectorItalic: \"Inter-SemiBoldItalic\"\n      },\n      {\n        variant: \"Bold Italic\",\n        selector: \"Inter-BoldItalic\",\n        weight: 700,\n        selectorBold: \"Inter-BlackItalic\",\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: \"Inter-BoldItalic\"\n      },\n      {\n        variant: \"Extra Bold Italic\",\n        selector: \"Inter-ExtraBoldItalic\",\n        weight: 800,\n        selectorBold: \"Inter-BlackItalic\",\n        selectorBoldItalic: \"Inter-BlackItalic\",\n        selectorItalic: \"Inter-ExtraBoldItalic\"\n      },\n      {\n        variant: \"Black Italic\",\n        selector: \"Inter-BlackItalic\",\n        weight: 900,\n        selectorBold: void 0,\n        selectorBoldItalic: void 0,\n        selectorItalic: \"Inter-BlackItalic\"\n      }\n    ];\n    const fontFamily = this.createFontFamily(\"Inter\");\n    for (const entry of inter) {\n      const { variant, selector, weight, selectorBold, selectorBoldItalic, selectorItalic } = entry;\n      const font = {\n        variant,\n        selector,\n        selectorBold,\n        selectorBoldItalic,\n        selectorItalic,\n        weight,\n        family: fontFamily,\n        style: /italic/i.test(selector) ? \"italic\" : \"normal\"\n      };\n      fontFamily.fonts.push(font);\n    }\n    fontFamily.fonts.forEach((t) => this.interFontSelectors.add(t.selector));\n    return fontFamily;\n  }\n  addFontAlias(key7, value) {\n    this.fontAliases.set(key7, value);\n    this.fontAliasBySelector.set(value, key7);\n  }\n  getSystemFontFamily() {\n    const fontFamilies2 = (\n      // System fonts - Taken from https://furbo.org/stuff/systemfonts-new.html - \"All Platforms\" section\n      \"system-ui|-apple-system|BlinkMacSystemFont|Segoe UI|Roboto|Oxygen|Ubuntu|Cantarell|Fira Sans|Droid Sans|Helvetica Neue|sans-serif\"\n    );\n    const fontFamily = { name: systemFontFamilyName, fonts: [], source: this.name };\n    const aliases = /* @__PURE__ */ new Map();\n    const weights = [400, 100, 200, 300, 500, 600, 700, 800, 900];\n    const styles = [\"normal\", \"italic\"];\n    for (const style of styles) {\n      for (const weight of weights) {\n        const variant = createVariantName(weight, style);\n        const alias = `__SystemDefault-${weight}-${style}__`;\n        const font = {\n          variant,\n          selector: alias,\n          style,\n          weight,\n          family: fontFamily\n        };\n        fontFamily.fonts.push(font);\n        aliases.set(alias, fontFamilies2);\n      }\n    }\n    return { fontFamily, aliases };\n  }\n  getFontAliasBySelector(selector) {\n    return this.fontAliasBySelector.get(selector) || null;\n  }\n  getFontSelectorByAlias(alias) {\n    return this.fontAliases.get(alias) || null;\n  }\n  /** Font family aliases are in the format of `__Alias-Name__` */\n  isFontFamilyAlias(value) {\n    if (value && value.match(/^__.*__$/))\n      return true;\n    return false;\n  }\n};\nvar fontWeightNames = {\n  \"100\": \"Thin\",\n  \"200\": \"Extra Light\",\n  \"300\": \"Light\",\n  \"400\": \"Normal\",\n  \"500\": \"Medium\",\n  \"600\": \"Semi Bold\",\n  \"700\": \"Bold\",\n  \"800\": \"Extra Bold\",\n  \"900\": \"Black\"\n};\nfunction createVariantName(weight, style) {\n  const friendlyStyle = style === \"normal\" ? \"Regular\" : \"Italic\";\n  if (weight === 400) {\n    return friendlyStyle;\n  }\n  if (style !== \"normal\") {\n    return `${fontWeightNames[weight]} ${friendlyStyle}`;\n  }\n  return `${fontWeightNames[weight]}`;\n}\n\n// ../../library/src/render/fonts/fontStore.ts\nvar FontStore = class {\n  constructor() {\n    /**\n     * Enabling the `FontStore` will make Text components automatically load\n     * their fonts on render. Otherwise font loading is the responsibility of\n     * the environment.\n     */\n    this.enabled = false;\n    this.bySelector = /* @__PURE__ */ new Map();\n    this.loadedSelectors = /* @__PURE__ */ new Set();\n    this.googleFamilyNames = /* @__PURE__ */ new Set();\n    this.local = new LocalFontSource();\n    this.google = new GoogleFontSource();\n    this.fontshare = new FontshareSource();\n    this.custom = new CustomFontSource();\n    this.bySelector = /* @__PURE__ */ new Map();\n    this.importLocalFonts();\n    const defaultFont = this.getFontBySelector(\"Inter\");\n    assert(defaultFont, \"Can\\u2019t find Inter font\");\n    this.defaultFont = defaultFont;\n  }\n  addFont(font) {\n    this.bySelector.set(font.selector, font);\n  }\n  getAvailableFonts() {\n    return Array.from(this.bySelector.values());\n  }\n  importLocalFonts() {\n    this.local.importFonts().forEach((font) => {\n      this.addFont(font);\n      if (!this.local.interFontSelectors.has(font.selector)) {\n        this.loadFont(font);\n      }\n    });\n  }\n  async importGoogleFonts() {\n    if (!this.getGoogleFontsListPromise) {\n      this.getGoogleFontsListPromise = runtime.fetchGoogleFontsList();\n      const googleFonts = await this.getGoogleFontsListPromise;\n      this.google.importFonts(googleFonts).forEach((font) => {\n        this.googleFamilyNames.add(font.family.name.toLowerCase());\n        this.addFont(font);\n      });\n    }\n    return this.getGoogleFontsListPromise;\n  }\n  async importFontshareFonts() {\n    if (!this.getFontshareFontsListPromise) {\n      this.getFontshareFontsListPromise = runtime.fetchFontshareFontsList();\n      const fontshareFonts = await this.getFontshareFontsListPromise;\n      this.fontshare.importFonts(fontshareFonts).forEach((font) => {\n        if (!this.googleFamilyNames.has(font.family.name.toLowerCase())) {\n          this.addFont(font);\n        }\n      });\n    }\n    return this.getFontshareFontsListPromise;\n  }\n  importCustomFonts(assets) {\n    this.bySelector.forEach((_, key7) => {\n      if (key7.startsWith(customFontSelectorPrefix)) {\n        this.bySelector.delete(key7);\n      }\n    });\n    this.custom.importFonts(assets).forEach((font) => this.addFont(font));\n  }\n  getFontFamily(info) {\n    const fontFamily = this[info.source].getFontFamilyByName(info.name);\n    return fontFamily;\n  }\n  getFontBySelector(selector, createFont = true) {\n    if (selector.startsWith(customFontSelectorPrefix)) {\n      return this.custom.getFontBySelector(selector, createFont);\n    }\n    return this.bySelector.get(selector);\n  }\n  // Function called by draft to get font properties for a selector, before the (google) font is available in the store\n  // It replaces a previous function that created Font instances and added them to the store\n  // on the fly while rendering drafts, which caused issues (overriding real google font info with fake instances with partial data).\n  // Ideally this should not happen, but that's a fix for another day\n  getDraftPropertiesBySelector(selector) {\n    const font = this.getFontBySelector(selector);\n    if (font) {\n      return {\n        style: font.style,\n        weight: font.weight,\n        variant: font.variant,\n        family: font.family.name,\n        source: font.family.source,\n        category: font.category\n      };\n    }\n    const googleLocator = this.google.parseSelector(selector);\n    if (googleLocator) {\n      const fontVariant = GoogleFontSource.parseVariant(googleLocator.variant);\n      if (fontVariant) {\n        return {\n          style: fontVariant.style,\n          weight: fontVariant.weight,\n          variant: googleLocator.variant,\n          family: googleLocator.name,\n          source: \"google\" /* Google */,\n          category: void 0\n        };\n      }\n    }\n    const fontshareLocator = this.fontshare.parseSelector(selector);\n    if (fontshareLocator) {\n      const fontVariant = FontshareSource.parseVariant(fontshareLocator.variant);\n      if (fontVariant) {\n        return {\n          style: fontVariant.style,\n          weight: fontVariant.weight,\n          variant: fontshareLocator.variant,\n          family: fontshareLocator.name,\n          source: \"fontshare\" /* Fontshare */,\n          category: void 0\n        };\n      }\n    }\n    return null;\n  }\n  isSelectorLoaded(selector) {\n    return this.loadedSelectors.has(selector);\n  }\n  /**\n   * Load a single font\n   * */\n  async loadFont(font) {\n    if (this.isSelectorLoaded(font.selector)) {\n      return 0 /* AlreadyLoaded */;\n    }\n    if (font.family.source === \"local\" /* Local */) {\n      if (this.local.interFontSelectors.has(font.selector) && import_process4.default.env.NODE_ENV !== \"test\") {\n        await isFontReady(font.family.name, font.style, font.weight);\n      }\n      this.loadedSelectors.add(font.selector);\n      return 1 /* Loaded */;\n    }\n    if (!font.file) {\n      return Promise.reject(`Unable to load font: ${font.selector}`);\n    }\n    await loadFont(\n      {\n        family: font.family.name,\n        url: font.file,\n        weight: font.weight,\n        style: font.style\n      },\n      document\n    );\n    this.loadedSelectors.add(font.selector);\n    return 1 /* Loaded */;\n  }\n  async loadFontsFromSelectors(selectors) {\n    if (!this.enabled)\n      return [];\n    const googleFontsRequested = selectors.some((selector) => selector.startsWith(googleFontSelectorPrefix));\n    const fontshareFontsRequested = selectors.some((selector) => selector.startsWith(fontsharePrefix));\n    if (googleFontsRequested || fontshareFontsRequested) {\n      try {\n        await this.importGoogleFonts();\n      } catch (error) {\n        warnOnce(\"Failed to load Google fonts:\", error);\n      }\n      try {\n        await this.importFontshareFonts();\n      } catch (error) {\n        warnOnce(\"Failed to load Fontshare fonts:\", error);\n      }\n    }\n    const fonts = selectors.map((s) => this.bySelector.get(s)).filter((f) => !!f);\n    return Promise.allSettled(fonts.map((f) => this.loadFont(f)));\n  }\n  async loadFonts(fontSelectors) {\n    const results = await this.loadFontsFromSelectors(fontSelectors);\n    const newlyLoadedFontCount = results.filter(\n      (result) => result.status === \"fulfilled\" && result.value === 1 /* Loaded */\n    ).length;\n    return { newlyLoadedFontCount };\n  }\n  // Deprecated methods that are kept for backwards compatibility with any compiled code that might still be using them\n  /**\n   * @deprecated This method\u2019s API is confusing as 1) it works for all fonts,\n   * not just missing ones, 2) it supports both async/await and a callback,\n   * but the callback is called only if *all* fonts have been loaded. Use\n   * `loadFonts` instead.\n   */\n  async loadMissingFonts(fontSelectors, fontsLoadedCallback) {\n    const selectors = fontSelectors.filter((selector) => {\n      return !fontStore.isSelectorLoaded(selector);\n    });\n    if (selectors.length === 0)\n      return;\n    await fontStore.loadWebFontsFromSelectors(selectors);\n    const isEachFontLoaded = selectors.every((selector) => {\n      return fontStore.isSelectorLoaded(selector);\n    });\n    if (isEachFontLoaded && fontsLoadedCallback)\n      fontsLoadedCallback();\n  }\n  /**\n   * @deprecated This method is misleading as it works with all fonts, not\n   * just web fonts. Use `loadFonts` instead. (In Framer, \u201Cweb fonts\u201D has a\n   * specific meaning: it refers to Google/Fontshare fonts and exludes custom\n   * and local fonts. See e.g. `WebFontStore` and the \u201CWeb\u201D/\u201CCustom\u201D toggle in\n   * the font picker in the UI. More context: https://github.com/framer/FramerStudio/pull/15778#discussion_r1395120760)\n   */\n  async loadWebFontsFromSelectors(selectors) {\n    return this.loadFontsFromSelectors(selectors);\n  }\n};\nvar fontStore = /* @__PURE__ */ new FontStore();\nPromise.allSettled = Promise.allSettled || ((promises) => Promise.all(\n  promises.map(\n    (p) => p.then((v) => ({ status: \"fulfilled\", value: v })).catch((e) => ({ status: \"rejected\", reason: e }))\n  )\n));\n\n// ../../library/src/render/fonts/useFontLoadStatus.tsx\nimport React94 from \"react\";\nfunction useFontLoadStatus(fontSelectors = [], timeout = 5e3) {\n  const missingFontSelectors = fontSelectors.filter((s) => !fontStore.isSelectorLoaded(s));\n  const [fontLoadStatus, setFontLoadStatus] = React94.useState(\n    missingFontSelectors.length ? \"loading\" : \"done\"\n  );\n  React94.useEffect(() => {\n    if (!missingFontSelectors.length)\n      return;\n    setFontLoadStatus(\"loading\");\n    const timer = setTimeout(() => {\n      setFontLoadStatus(\"timeout\");\n    }, timeout);\n    fontStore.loadFonts(missingFontSelectors).then(() => {\n      clearTimeout(timer);\n      setFontLoadStatus(\"done\");\n    });\n  }, [fontSelectors.join(\", \"), missingFontSelectors.join(\", \")]);\n  return fontLoadStatus;\n}\n\n// ../../library/src/render/utils/isShallowEqualArray.ts\nfunction isShallowEqualArray(a, b) {\n  return a.length === b.length && a.every((v, i) => v === b[i]);\n}\n\n// ../../library/src/render/presentation/Text.tsx\nvar Text = /* @__PURE__ */ React95.forwardRef(function Text2(props, forwardedRef) {\n  var _a, _b;\n  const parentSize = useParentSize();\n  const layoutId = useLayoutId(props);\n  const fallbackLayoutRef = useRef15(null);\n  const layoutRef = forwardedRef != null ? forwardedRef : fallbackLayoutRef;\n  const { navigate, getRoute } = useRouter();\n  const currentRoute = useCurrentRoute();\n  useRoutePreloader((_a = props.preload) != null ? _a : []);\n  const onCanvas = useIsOnFramerCanvas();\n  const matchesCurrentRoute = useLinkMatchesRoute(props.__link);\n  const fontLoadStatus = useFontLoadStatus(props.fonts);\n  useMeasureLayout(props, layoutRef);\n  const { fonts, __fromCanvasComponent } = props;\n  const prevFontsRef = useRef15([]);\n  const fontsDidChange = !isShallowEqualArray((_b = prevFontsRef.current) != null ? _b : [], fonts != null ? fonts : []);\n  prevFontsRef.current = fonts;\n  useEffect11(() => {\n    if (!fontsDidChange || !fonts)\n      return;\n    fontStore.loadFonts(fonts).then(({ newlyLoadedFontCount }) => {\n      if (!__fromCanvasComponent || !layoutRef.current || RenderTarget.current() !== \"CANVAS\" /* canvas */)\n        return;\n      if (newlyLoadedFontCount === 0)\n        return;\n      measureClosestComponentContainer(layoutRef.current);\n    });\n  }, [fonts]);\n  const implicitPathVariables = useImplicitPathVariables();\n  const interceptPageLinks = React95.useCallback(\n    (event) => {\n      const anchorElement = findAnchorElement(event.target, layoutRef.current);\n      if (event.metaKey || !navigate || !anchorElement)\n        return;\n      const didNavigate = navigateFromAttributes(navigate, anchorElement, implicitPathVariables);\n      if (didNavigate) {\n        event.preventDefault();\n      }\n    },\n    [navigate, implicitPathVariables]\n  );\n  useEffect11(() => {\n    var _a2;\n    (_a2 = layoutRef.current) == null ? void 0 : _a2.addEventListener(\"click\", interceptPageLinks);\n    const ref = layoutRef.current;\n    return () => ref == null ? void 0 : ref.removeEventListener(\"click\", interceptPageLinks);\n  }, [interceptPageLinks]);\n  const rawHTML = React95.useMemo(() => {\n    if (!props.rawHTML || onCanvas || !getRoute || !currentRoute)\n      return props.rawHTML;\n    return replaceFramerPageLinks(props.rawHTML, getRoute, currentRoute, implicitPathVariables);\n  }, [props.rawHTML, getRoute, onCanvas, currentRoute, implicitPathVariables]);\n  return /* @__PURE__ */ React95.createElement(\n    TextComponent,\n    {\n      ...props,\n      innerRef: layoutRef,\n      layoutId,\n      parentSize,\n      fontLoadStatus,\n      rawHTML,\n      matchesCurrentRoute\n    }\n  );\n});\nvar TextComponent = /* @__PURE__ */ (() => {\n  var _a;\n  return _a = class extends Layer {\n    constructor() {\n      super(...arguments);\n      this.setElement = (element) => {\n        if (this.props.innerRef) {\n          this.props.innerRef.current = element;\n        }\n        this.setLayerElement(element);\n      };\n      /** Used by the ComponentContainerContext */\n      this.renderMain = (inCodeComponent) => {\n        countNodeRender();\n        const {\n          font,\n          visible,\n          alignment,\n          willChangeTransform,\n          opacity,\n          id,\n          layoutId,\n          className,\n          transition,\n          variants,\n          name,\n          __fromCanvasComponent,\n          _initialStyle,\n          widthType,\n          heightType,\n          _usesDOMRect,\n          autoSize,\n          style: styleProp,\n          fontLoadStatus,\n          matchesCurrentRoute,\n          preload,\n          tabIndex,\n          ...rest\n        } = this.props;\n        if (!visible) {\n          return null;\n        }\n        injectComponentCSSRules();\n        const isHidden2 = this.props.isEditable && this.props.environment() === \"CANVAS\" /* canvas */;\n        const justifyContent = convertVerticalAlignment(this.props.verticalAlignment);\n        const style = {\n          outline: \"none\",\n          display: \"flex\",\n          flexDirection: \"column\",\n          justifyContent,\n          opacity: isHidden2 ? 0 : opacity,\n          flexShrink: 0\n        };\n        if (_initialStyle) {\n          for (const key7 in _initialStyle) {\n            if (key7.startsWith(\"--framer\")) {\n              asRecord(style)[key7] = asRecord(_initialStyle)[key7];\n            }\n          }\n        }\n        const dataProps = {\n          \"data-framer-component-type\": \"Text\",\n          \"data-framer-name\": name\n        };\n        if (autoSize) {\n          asRecord(dataProps)[\"data-framer-component-text-autosized\"] = \"true\";\n        }\n        this.collectLayout(style, inCodeComponent);\n        collectFiltersFromProps(this.props, style);\n        collectTextShadowsForProps(this.props, style);\n        if (style.opacity === 1 || style.opacity === void 0) {\n          delete style.opacity;\n        }\n        if (willChangeTransform) {\n          forceLayerBackingWithCSSProperties(style);\n        }\n        let rawHTML = this.props.rawHTML;\n        const text = this.getOverrideText() || this.props.text;\n        if (isString2(text)) {\n          if (rawHTML) {\n            rawHTML = replaceDraftHTMLWithText(rawHTML, text);\n          } else {\n            rawHTML = `<p style=\"font: ${font}\">${text}</p>`;\n          }\n        }\n        if (this.props.style) {\n          Object.assign(style, this.props.style);\n        }\n        const centeringTransformTemplate = this.transformTemplate;\n        if (centeringTransformTemplate)\n          Object.assign(dataProps, layoutHintDataPropsForCenter(this.props.center));\n        if (rawHTML) {\n          style.lineHeight = \"1px\";\n          style.fontSize = \"0px\";\n          if (RenderTarget.current() === \"CANVAS\" /* canvas */ && fontLoadStatus === \"loading\") {\n            style.visibility = \"hidden\";\n          }\n          if (RenderTarget.current() === \"CANVAS\" /* canvas */ && fontLoadStatus === \"timeout\") {\n            style.backgroundColor = \"rgba(255, 0, 0, 0.3)\";\n          }\n          Object.assign(style, styleProp);\n          if (alignment)\n            asRecord(style)[\"--framer-text-alignment\"] = alignment;\n          const tabIndexProps = getTabIndexProps(tabIndex);\n          return /* @__PURE__ */ React95.createElement(\n            motion.div,\n            {\n              layoutId,\n              id,\n              ...tabIndexProps,\n              ...dataProps,\n              ...rest,\n              style,\n              transformTemplate: centeringTransformTemplate,\n              dangerouslySetInnerHTML: { __html: rawHTML },\n              \"data-center\": this.props.center,\n              className: cx(className, matchesCurrentRoute && \"isCurrent\"),\n              transition,\n              variants,\n              ref: this.setElement\n            }\n          );\n        }\n      };\n    }\n    get frame() {\n      return calculateRect(this.props, this.props.parentSize || 0 /* Unknown */, false);\n    }\n    getOverrideText() {\n      const { _forwardedOverrideId, _forwardedOverrides, id } = this.props;\n      const forwardedOverrideId = _forwardedOverrideId != null ? _forwardedOverrideId : id;\n      if (forwardedOverrideId && _forwardedOverrides) {\n        const text = _forwardedOverrides[forwardedOverrideId];\n        if (isString2(text)) {\n          return text;\n        }\n      }\n    }\n    render() {\n      return /* @__PURE__ */ React95.createElement(ComponentContainerContext.Consumer, null, this.renderMain);\n    }\n    collectLayout(style, inCodeComponent) {\n      if (this.props.withExternalLayout)\n        return;\n      const frame2 = this.frame;\n      const {\n        rotation,\n        autoSize,\n        positionSticky,\n        positionStickyTop,\n        positionStickyRight,\n        positionStickyBottom,\n        positionStickyLeft,\n        width: externalWidth,\n        height: externalHeight,\n        _usesDOMRect,\n        positionFixed,\n        positionAbsolute\n      } = this.props;\n      const rotate = Animatable.getNumber(rotation);\n      const isDOMLayoutAutoSized = _usesDOMRect && (externalWidth === \"auto\" || externalHeight === \"auto\");\n      if (frame2 && !isDOMLayoutAutoSized && RenderTarget.hasRestrictions()) {\n        Object.assign(style, {\n          transform: `translate(${frame2.x}px, ${frame2.y}px) rotate(${rotate.toFixed(4)}deg)`,\n          // Using \u201Cauto\u201D fixes wrapping problems where our size calculation does not work out well when zooming the\n          // text (due to rendering differences).\n          // TODO: When the `autoSize` prop is removed, it's safe to leave\n          // this at `${frame.width}px`, because all auto cases will be\n          // handled by DOM layout in the `else` side of the conditional\n          width: autoSize ? \"auto\" : `${frame2.width}px`,\n          minWidth: `${frame2.width}px`,\n          height: `${frame2.height}px`\n        });\n      } else {\n        const { left, right, top, bottom } = this.props;\n        let width;\n        let height;\n        if (autoSize) {\n          width = \"auto\";\n          height = \"auto\";\n        } else {\n          if (!isFiniteNumber(left) || !isFiniteNumber(right)) {\n            width = externalWidth;\n          }\n          if (!isFiniteNumber(top) || !isFiniteNumber(bottom)) {\n            height = externalHeight;\n          }\n        }\n        Object.assign(style, {\n          left,\n          right,\n          top,\n          bottom,\n          width,\n          height,\n          rotate\n        });\n      }\n      const onCanvas = RenderTarget.current() === \"CANVAS\" /* canvas */;\n      if (positionSticky) {\n        if (!onCanvas || inCodeComponent) {\n          style.position = \"sticky\";\n          style.willChange = \"transform\";\n          style.zIndex = 1;\n          style.top = positionStickyTop;\n          style.right = positionStickyRight;\n          style.bottom = positionStickyBottom;\n          style.left = positionStickyLeft;\n        }\n      } else if (onCanvas && (positionFixed || positionAbsolute)) {\n        style.position = \"absolute\";\n      }\n    }\n    get transformTemplate() {\n      const { _usesDOMRect, widthType, heightType, __fromCanvasComponent } = this.props;\n      if (this.props.transformTemplate)\n        return this.props.transformTemplate;\n      const frame2 = this.frame;\n      const isDOMLayoutAutoSized = _usesDOMRect && (widthType === 2 /* Auto */ || heightType === 2 /* Auto */);\n      const hasTransformTemplate = !frame2 || !RenderTarget.hasRestrictions() || __fromCanvasComponent || isDOMLayoutAutoSized;\n      if (hasTransformTemplate)\n        return transformTemplate(this.props.center);\n    }\n  }, _a.supportsConstraints = true, _a.defaultTextProps = {\n    opacity: void 0,\n    left: void 0,\n    right: void 0,\n    top: void 0,\n    bottom: void 0,\n    _constraints: {\n      enabled: true,\n      aspectRatio: null\n    },\n    rotation: 0,\n    visible: true,\n    alignment: void 0,\n    verticalAlignment: \"top\",\n    shadows: [],\n    font: \"16px \" + deviceFont()\n  }, _a.defaultProps = {\n    ...Layer.defaultProps,\n    ..._a.defaultTextProps,\n    isEditable: false,\n    environment: RenderTarget.current,\n    withExternalLayout: false,\n    fontLoadStatus: \"loading\"\n  }, _a;\n})();\nvar linkTag = \"(?:<a[^>]*>)?\";\nvar linkClosingTag = \"(?:</a>)?\";\nvar outerTag = \"<[^>]+>\";\nvar outerClosingTag = \"</[^>]+>\";\nvar blockTag = \"<(?:div|span)[^>]*>\";\nvar blockClosingTag = \"</(?:div|span)>\";\nvar inlineTag = \"<[^>]+>\";\nvar inlineClosingTag = \"</[^>]+>\";\nvar textContentRegex = new RegExp(\n  `^(${linkTag}${outerTag}${blockTag}${inlineTag}).*?(${inlineClosingTag}).*?(${blockClosingTag}${outerClosingTag}${linkClosingTag})$`,\n  //                                              ^^^ this is the content we want to replace\n  //                                                                      ^^^ this is the content we want to discard\n  \"s\"\n  // let the \".\" also match newlines\n);\nfunction replaceDraftHTMLWithText(rawHTML, text) {\n  return rawHTML.replace(\n    textContentRegex,\n    (_, openingTags, inlineClosingTag2, closingTags) => openingTags + text + inlineClosingTag2 + \"<br>\" + closingTags\n  );\n}\nfunction convertVerticalAlignment(verticalAlignment) {\n  switch (verticalAlignment) {\n    case \"top\":\n      return \"flex-start\";\n    case \"center\":\n      return \"center\";\n    case \"bottom\":\n      return \"flex-end\";\n  }\n}\nfunction getTabIndexProps(tabIndex) {\n  if (tabIndex === void 0)\n    return {};\n  return { tabIndex };\n}\n\n// ../../library/src/render/presentation/Vector.tsx\nimport React98 from \"react\";\n\n// ../../library/src/utils/internalId.ts\nvar keys2 = /* @__PURE__ */ new Map();\nvar InternalID = class {\n  constructor(id) {\n    this.id = id;\n    this._link = null;\n    this._urllink = null;\n  }\n  add(str) {\n    return InternalID.forKey(this.id + str);\n  }\n  toString() {\n    return this.id;\n  }\n  get link() {\n    const res = this._link;\n    if (res)\n      return res;\n    return this._link = \"#\" + this.id;\n  }\n  get urlLink() {\n    const res = this._urllink;\n    if (res)\n      return res;\n    return this._urllink = \"url(#\" + this.id + \")\";\n  }\n  static forKey(key7) {\n    let res = keys2.get(key7);\n    if (res)\n      return res;\n    res = new InternalID(\"a\" + (1e3 + keys2.size) + \"z\");\n    keys2.set(key7, res);\n    return res;\n  }\n};\n\n// ../../library/src/render/types/PathSegment.ts\nvar PathSegment = class {\n  constructor(value) {\n    // #region withClassDiscriminator\n    // NOTE: this implementation carefully copies the implementation of `withClassDiscriminator`\n    // from Vekter. If making changes here, make sure to sync them to `withClassDiscriminator` as well.\n    this.__class = \"PathSegment\";\n    // #endregion\n    this.x = 0;\n    // The anchor point of the segment.\n    this.y = 0;\n    this.handleMirroring = \"straight\";\n    this.handleOutX = 0;\n    // Describes the out tangent of the segment.\n    this.handleOutY = 0;\n    this.handleInX = 0;\n    // Describes the in tangent of the segment.\n    this.handleInY = 0;\n    this.radius = 0;\n    if (value) {\n      Object.assign(this, value);\n    }\n  }\n  merge(value) {\n    return Object.assign(Object.create(Object.getPrototypeOf(this)), this, value);\n  }\n};\nPathSegment.displayName = \"WithClassDiscriminatorMixin(PathSegment)\";\nPathSegment.prototype.__class = \"PathSegment\";\n((PathSegment2) => {\n  PathSegment2.point = (pathSegment) => {\n    return { x: pathSegment.x, y: pathSegment.y };\n  };\n  PathSegment2.handleOut = (pathSegment) => {\n    return { x: pathSegment.handleOutX, y: pathSegment.handleOutY };\n  };\n  PathSegment2.handleIn = (pathSegment) => {\n    return { x: pathSegment.handleInX, y: pathSegment.handleInY };\n  };\n  PathSegment2.calculatedHandleOut = (pathSegment) => {\n    switch (pathSegment.handleMirroring) {\n      case \"symmetric\":\n      case \"disconnected\":\n      case \"asymmetric\":\n        return Point.add((0, PathSegment2.point)(pathSegment), (0, PathSegment2.handleOut)(pathSegment));\n      default:\n        return { x: pathSegment.x, y: pathSegment.y };\n    }\n  };\n  PathSegment2.calculatedHandleIn = (pathSegment) => {\n    switch (pathSegment.handleMirroring) {\n      case \"symmetric\":\n        return Point.subtract((0, PathSegment2.point)(pathSegment), (0, PathSegment2.handleOut)(pathSegment));\n      case \"disconnected\":\n      case \"asymmetric\":\n        return Point.add((0, PathSegment2.point)(pathSegment), (0, PathSegment2.handleIn)(pathSegment));\n      default:\n        return (0, PathSegment2.point)(pathSegment);\n    }\n  };\n  PathSegment2.curveDefault = (points, index) => {\n    if (points.length > 2) {\n      let pointBefore;\n      let pointAfter;\n      if (index === 0) {\n        pointBefore = points[points.length - 1];\n      } else {\n        pointBefore = points[index - 1];\n      }\n      if (index === points.length - 1) {\n        pointAfter = points[0];\n      } else {\n        pointAfter = points[index + 1];\n      }\n      assert(pointBefore, \"pointBefore should be defined\");\n      assert(pointAfter, \"pointAfter should be defined\");\n      const delta = Point.subtract((0, PathSegment2.point)(pointAfter), (0, PathSegment2.point)(pointBefore));\n      return { x: delta.x / 4, y: delta.y / 4 };\n    }\n    return { x: 10, y: 10 };\n  };\n})(PathSegment || (PathSegment = {}));\n\n// ../../library/src/render/traits/Path.ts\nvar key5 = \"pathSegments\";\nfunction withPath(target) {\n  return key5 in target;\n}\nvar pathDefaults = {\n  pathSegments: [],\n  pathClosed: false\n};\nfunction toSVGPath(withPaths, translate = { x: 0, y: 0 }, canvasMode = \"CANVAS\" /* canvas */) {\n  let pathElements = [];\n  let paths = [];\n  if (Array.isArray(withPaths)) {\n    paths = withPaths;\n  } else {\n    paths = [withPaths];\n  }\n  paths.forEach((path) => {\n    const { pathClosed, pathSegments } = path;\n    const segmentCount = pathSegments.length;\n    if (segmentCount === 0)\n      return \"\";\n    for (let i = 0; i < segmentCount; i++) {\n      const segment = pathSegments[i];\n      assert(segment, \"Path segment must be defined\");\n      let nextSegment;\n      let prevSegment;\n      const isFirstSegment = i === 0;\n      const isLastSegment = i === segmentCount - 1;\n      if (!isLastSegment) {\n        nextSegment = pathSegments[i + 1];\n      } else if (pathClosed) {\n        nextSegment = pathSegments[0];\n      }\n      if (!isFirstSegment) {\n        prevSegment = pathSegments[i - 1];\n      } else if (pathClosed) {\n        prevSegment = pathSegments[segmentCount - 1];\n      }\n      if (i === 0) {\n        pathElements.push(\"M\");\n      } else if (prevSegment && isStraightCurve(prevSegment, segment)) {\n        pathElements.push(\"L\");\n      }\n      pathElements.push(segment.x + translate.x, segment.y + translate.y);\n      if (nextSegment && !isStraightCurve(segment, nextSegment)) {\n        const handleOut = PathSegment.calculatedHandleOut(segment);\n        const handleIn = PathSegment.calculatedHandleIn(nextSegment);\n        pathElements.push(\n          \"C\",\n          handleOut.x + translate.x,\n          handleOut.y + translate.y,\n          handleIn.x + translate.x,\n          handleIn.y + translate.y\n        );\n      }\n      if (isLastSegment && nextSegment) {\n        if (isStraightCurve(segment, nextSegment)) {\n          pathElements.push(\"Z\");\n        } else {\n          pathElements.push(nextSegment.x + translate.x, nextSegment.y + translate.y, \"Z\");\n        }\n      }\n    }\n  });\n  if (canvasMode === \"EXPORT\" /* export */ || canvasMode === \"PREVIEW\" /* preview */) {\n    pathElements = pathElements.map((value) => isFiniteNumber(value) ? roundedNumberString(value, 3) : value);\n  }\n  return pathElements.join(\" \");\n}\nfunction isStraightCurve(fromSegment, toSegment) {\n  const fromStraight = fromSegment.handleMirroring === \"straight\" || fromSegment.handleOutX === 0 && fromSegment.handleOutY === 0;\n  const toStraight = toSegment.handleMirroring === \"straight\" || toSegment.handleInX === 0 && toSegment.handleInY === 0;\n  return fromStraight && toStraight;\n}\n\n// ../../library/src/render/types/svgElementAttributeDefaults.ts\nvar svgElementAttributeDefaults = {\n  stroke: \"none\",\n  strokeWidth: 1,\n  strokeLinecap: \"butt\",\n  strokeLinejoin: \"miter\",\n  strokeMiterlimit: 4,\n  strokeDasharray: \"0\",\n  strokeDashoffset: 0,\n  strokeOpacity: 1,\n  fill: \"black\",\n  fillRule: \"nonzero\",\n  fillOpacity: 1\n};\n\n// ../../library/src/render/utils/createTransformValues.ts\nfunction createTransformValues(baseTransform, mode) {\n  let { x, y } = baseTransform;\n  const { width, height, rotation } = baseTransform;\n  if (mode === \"resetXYKeepFraction\") {\n    x = x - Math.floor(x);\n    y = y - Math.floor(y);\n  } else if (mode === \"resetXY\") {\n    x = 0;\n    y = 0;\n  }\n  return { x, y, width, height, rotation };\n}\nfunction getTransformMode(isRootVectorNode, includeTransform) {\n  if (includeTransform !== void 0) {\n    if (includeTransform) {\n      return \"asIs\";\n    }\n  } else {\n    if (!isRootVectorNode) {\n      return \"asIs\";\n    }\n  }\n  if (isRootVectorNode) {\n    return \"resetXYKeepFraction\";\n  } else {\n    return \"resetXY\";\n  }\n}\nfunction transformValues(rect, rotation, isRootVectorNode, includeTransform) {\n  const transformMode = getTransformMode(isRootVectorNode, includeTransform);\n  const baseTransform = { ...rect, rotation };\n  const transform2 = createTransformValues(baseTransform, transformMode);\n  return transform2;\n}\n\n// ../../library/src/render/utils/transformString.ts\nfunction transformString(transform2) {\n  if (transform2 === void 0) {\n    return void 0;\n  }\n  const { x, y, rotation, width, height } = transform2;\n  let result;\n  if (x !== 0 || y !== 0) {\n    result = `translate(${roundedNumberString(x, 3)} ${roundedNumberString(y, 3)})`;\n  }\n  if (rotation !== 0) {\n    const roundedRotation = roundedNumberString(rotation, 4);\n    const roundedWidth = roundedNumberString(width / 2, 3);\n    const roundedHeight = roundedNumberString(height / 2, 3);\n    const rotationString = `rotate(${roundedRotation} ${roundedWidth} ${roundedHeight})`;\n    result = result ? `${result} ${rotationString}` : rotationString;\n  }\n  return result;\n}\n\n// ../../library/src/render/presentation/GradientElement.tsx\nimport React96, { Component as Component11 } from \"react\";\nvar LinearGradientElement = class extends Component11 {\n  render() {\n    const { id, stops, x1, x2, y1, y2 } = this.props;\n    return /* @__PURE__ */ React96.createElement(\"linearGradient\", { id, x1, x2, y1, y2 }, stops.map((stop, idx) => {\n      return /* @__PURE__ */ React96.createElement(\"stop\", { key: idx, offset: stop.position, stopColor: stop.color, stopOpacity: stop.alpha });\n    }));\n  }\n};\nvar RadialGradientElement = class extends Component11 {\n  render() {\n    const { centerAnchorX, centerAnchorY, id, widthFactor, heightFactor, stops } = this.props;\n    return /* @__PURE__ */ React96.createElement(\n      \"radialGradient\",\n      {\n        id,\n        cy: centerAnchorY,\n        cx: centerAnchorX,\n        r: widthFactor,\n        gradientTransform: `translate(${centerAnchorX}, ${centerAnchorY}) scale(1 ${heightFactor / widthFactor}) translate(-${centerAnchorX}, -${centerAnchorY})`\n      },\n      stops.map((stop, idx) => {\n        return /* @__PURE__ */ React96.createElement(\"stop\", { key: idx, offset: stop.position, stopColor: stop.color, stopOpacity: stop.alpha });\n      })\n    );\n  }\n};\n\n// ../../library/src/render/presentation/SVGRoot.tsx\nimport React97, { Component as Component12 } from \"react\";\nvar SVGRoot = class extends Component12 {\n  render() {\n    const { children, frame: frame2, innerRef } = this.props;\n    const { width, height } = frame2;\n    const fx = Math.floor(frame2.x);\n    const fy = Math.floor(frame2.y);\n    const svgStyle = {\n      position: \"absolute\",\n      width: Math.ceil(width),\n      height: Math.ceil(height),\n      overflow: \"visible\",\n      display: \"block\",\n      transform: `translate(${fx}px, ${fy}px)`\n    };\n    Layer.applyWillChange(this.props, svgStyle, false);\n    return /* @__PURE__ */ React97.createElement(\n      \"svg\",\n      {\n        width: \"100%\",\n        height: \"100%\",\n        xmlns: \"http://www.w3.org/2000/svg\",\n        xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n        style: svgStyle,\n        ref: innerRef\n      },\n      children\n    );\n  }\n};\n\n// ../../library/src/render/presentation/Vector.tsx\nvar Vector = /* @__PURE__ */ (() => {\n  var _a;\n  return _a = class extends Layer {\n    render() {\n      var _a2, _b;\n      countNodeRender();\n      const {\n        opacity,\n        calculatedPath,\n        d,\n        insideStroke,\n        shapeId,\n        strokeEnabled,\n        strokeClipId,\n        strokeWidth,\n        idAttribute,\n        rect,\n        shadows,\n        strokeAlpha,\n        name,\n        includeTransform,\n        isRootVectorNode,\n        rotation,\n        id,\n        lineCap,\n        lineJoin,\n        strokeColor,\n        strokeMiterLimit,\n        strokeDashArray,\n        strokeDashOffset,\n        fill,\n        variants,\n        transition\n      } = this.props;\n      if (!id || !shapeId || !strokeClipId)\n        return null;\n      const rotate = (_b = (_a2 = this.props.rotate) != null ? _a2 : rotation) != null ? _b : 0;\n      const { target } = RenderEnvironment;\n      const transform2 = transformValues(rect, rotate, isRootVectorNode, includeTransform);\n      let vectorFill;\n      let fillAlpha = 0;\n      let imagePattern;\n      let linearGradient;\n      let radialGradient;\n      if (isString2(fill) || Color.isColorObject(fill)) {\n        const fillColor = Color.isColorObject(fill) ? fill.initialValue || Color.toRgbString(fill) : fill;\n        if (fillColor !== \"transparent\") {\n          vectorFill = fillColor;\n          fillAlpha = ConvertColor.getAlpha(vectorFill);\n        }\n      } else if (LinearGradient.isLinearGradient(fill)) {\n        linearGradient = elementPropertiesForLinearGradient(fill, id);\n        vectorFill = `url(#${linearGradient.id})`;\n        fillAlpha = 1;\n      } else if (RadialGradient.isRadialGradient(fill)) {\n        radialGradient = elementPropertiesForRadialGradient(fill, id);\n        vectorFill = `url(#${radialGradient.id})`;\n        fillAlpha = 1;\n      } else if (BackgroundImage.isImageObject(fill)) {\n        imagePattern = imagePatternPropsForFill(fill, transform2, id, includeTransform);\n        if (imagePattern) {\n          vectorFill = `url(#${imagePattern.id})`;\n          fillAlpha = 1;\n        }\n      }\n      if (vectorFill === svgElementAttributeDefaults.fill) {\n        vectorFill = void 0;\n      }\n      if (vectorFill === void 0) {\n        vectorFill = \"transparent\";\n      }\n      const fillEnabled = vectorFill !== void 0 && vectorFill !== \"transparent\" && fillAlpha !== 0;\n      if (!fillEnabled && !strokeEnabled) {\n        fillAlpha = 1;\n      }\n      let mainElement;\n      let strokeClipPath = null;\n      let shapeReference = null;\n      let strokeElement = null;\n      let pathTranslate;\n      let elementTransform;\n      const translatePaths = target === \"EXPORT\" /* export */;\n      if (transform2.rotation === 0 && translatePaths) {\n        pathTranslate = transform2;\n      } else {\n        pathTranslate = { x: 0, y: 0 };\n        elementTransform = transformString(transform2);\n      }\n      const pathAttributes = {\n        d: d != null ? d : toSVGPath(calculatedPath, pathTranslate, target),\n        transform: elementTransform\n      };\n      const svgStrokeAttributes = {};\n      if (strokeEnabled && strokeWidth !== 0) {\n        svgStrokeAttributes.strokeWidth = strokeWidth;\n        svgStrokeAttributes.stroke = strokeColor;\n        svgStrokeAttributes.strokeLinecap = lineCap;\n        svgStrokeAttributes.strokeLinejoin = lineJoin;\n        if (lineJoin === \"miter\") {\n          svgStrokeAttributes.strokeMiterlimit = strokeMiterLimit;\n        }\n        svgStrokeAttributes.strokeDasharray = strokeDashArray;\n        if (strokeDashOffset !== 0) {\n          svgStrokeAttributes.strokeDashoffset = strokeDashOffset;\n        }\n      }\n      for (const key7 in svgElementAttributeDefaults) {\n        if (asRecord(svgStrokeAttributes)[key7] === asRecord(svgElementAttributeDefaults)[key7]) {\n          asRecord(svgStrokeAttributes)[key7] = void 0;\n        }\n      }\n      const internalShapeId = InternalID.forKey(shapeId);\n      const internalStrokeClipId = InternalID.forKey(strokeClipId);\n      const shadow = shadowForShape(\n        shadows,\n        rect,\n        internalShapeId,\n        fillAlpha,\n        strokeAlpha,\n        strokeWidth,\n        internalStrokeClipId,\n        svgStrokeAttributes\n      );\n      const currentName = target === \"PREVIEW\" /* preview */ ? name || void 0 : void 0;\n      if (shadow.insetElement !== null || shadow.outsetElement !== null || insideStroke) {\n        pathAttributes.id = internalShapeId.id;\n        shapeReference = /* @__PURE__ */ React98.createElement(motion.path, { ...{ ...pathAttributes }, variants, transition });\n        if (shadow.needsStrokeClip || insideStroke) {\n          strokeClipPath = /* @__PURE__ */ React98.createElement(\"clipPath\", { id: internalStrokeClipId.id }, /* @__PURE__ */ React98.createElement(\"use\", { xlinkHref: internalShapeId.link }));\n        }\n        if (shadow.insetElement !== null && strokeEnabled && strokeWidth && strokeWidth > 0) {\n          mainElement = /* @__PURE__ */ React98.createElement(\"use\", { xlinkHref: internalShapeId.link, fill: vectorFill, strokeOpacity: \"0\", name: currentName });\n          strokeElement = /* @__PURE__ */ React98.createElement(\n            \"use\",\n            {\n              xlinkHref: internalShapeId.link,\n              clipPath: internalStrokeClipId.urlLink,\n              fill: \"transparent\",\n              ...svgStrokeAttributes,\n              strokeWidth\n            }\n          );\n        } else {\n          mainElement = /* @__PURE__ */ React98.createElement(\n            \"use\",\n            {\n              xlinkHref: internalShapeId.link,\n              fill: vectorFill,\n              clipPath: internalStrokeClipId.urlLink,\n              ...svgStrokeAttributes,\n              strokeWidth,\n              name: currentName\n            }\n          );\n        }\n      } else {\n        pathAttributes.id = idAttribute;\n        mainElement = /* @__PURE__ */ React98.createElement(\n          motion.path,\n          {\n            ...{\n              ...pathAttributes,\n              fill: vectorFill,\n              ...svgStrokeAttributes\n            },\n            name: currentName,\n            variants,\n            transition\n          }\n        );\n      }\n      const imagePatternElement = imagePattern ? /* @__PURE__ */ React98.createElement(\n        ImagePatternElement,\n        {\n          ...imagePattern,\n          repeat: BackgroundImage.isImageObject(fill) && fill.fit === \"tile\"\n        }\n      ) : void 0;\n      let gradient;\n      if (linearGradient) {\n        gradient = /* @__PURE__ */ React98.createElement(LinearGradientElement, { ...linearGradient });\n      } else if (radialGradient) {\n        gradient = /* @__PURE__ */ React98.createElement(RadialGradientElement, { ...radialGradient });\n      }\n      let defs = null;\n      if (shapeReference || strokeClipPath || shadow.definition && shadow.definition.length || gradient || imagePatternElement) {\n        defs = /* @__PURE__ */ React98.createElement(\"defs\", null, shapeReference, strokeClipPath, shadow.definition, gradient, imagePatternElement);\n      }\n      const opacityValue = opacity != null ? opacity : variants ? 1 : void 0;\n      if (defs === null && shadow.outsetElement === null && shadow.insetElement === null && strokeElement === null) {\n        mainElement = /* @__PURE__ */ React98.createElement(\n          motion.path,\n          {\n            ...{\n              ...pathAttributes,\n              fill: vectorFill,\n              ...svgStrokeAttributes\n            },\n            opacity: opacityValue,\n            variants,\n            transition,\n            name: currentName\n          }\n        );\n        return this.renderElement(mainElement);\n      }\n      return this.renderElement(\n        /* @__PURE__ */ React98.createElement(motion.g, { opacity: opacityValue, variants, transition }, defs, shadow.outsetElement, mainElement, shadow.insetElement, strokeElement)\n      );\n    }\n    renderElement(element) {\n      var _a2, _b;\n      const { isRootVectorNode, width, height, rect, willChangeTransform, includeTransform } = this.props;\n      const frame2 = (_b = (_a2 = this.props.frame) != null ? _a2 : rect) != null ? _b : { x: 0, y: 0, width: 100, height: 100 };\n      if (!isRootVectorNode)\n        return element;\n      if (includeTransform)\n        return element;\n      return /* @__PURE__ */ React98.createElement(\n        SVGRoot,\n        {\n          frame: frame2,\n          width,\n          height,\n          willChangeTransform,\n          innerRef: this.setLayerElement\n        },\n        element\n      );\n    }\n  }, _a.defaultVectorProps = {\n    isRootVectorNode: false,\n    name: null,\n    includeTransform: void 0,\n    defaultFillColor: void 0,\n    defaultStrokeColor: void 0,\n    defaultStrokeWidth: void 0,\n    defaultStrokeAlignment: \"center\",\n    width: 100,\n    height: 100,\n    rotation: 0,\n    rotate: void 0,\n    frame: void 0,\n    opacity: void 0,\n    calculatedPath: [],\n    d: void 0,\n    shapeId: void 0,\n    insideStroke: false,\n    strokeEnabled: true,\n    strokeClipId: void 0,\n    strokeWidth: void 0,\n    idAttribute: void 0,\n    transition: void 0,\n    shadows: [],\n    strokeAlpha: 1,\n    rect: { x: 0, y: 0, width: 0, height: 0 },\n    lineCap: \"butt\",\n    strokeColor: \"#0AF\",\n    lineJoin: \"miter\",\n    strokeMiterLimit: 4,\n    strokeDashArray: \"0\",\n    strokeDashOffset: 0,\n    fill: \"rgba(0,170,255,0.5)\"\n  }, _a.defaultProps = {\n    ...Layer.defaultProps,\n    ..._a.defaultVectorProps\n  }, _a;\n})();\n\n// ../../library/src/render/presentation/VectorGroup.tsx\nimport React99 from \"react\";\nvar VectorGroup = /* @__PURE__ */ (() => {\n  var _a;\n  return _a = class extends Layer {\n    render() {\n      countNodeRender();\n      const {\n        id,\n        name: nameProp,\n        opacity,\n        visible,\n        targetName,\n        defaultName,\n        children,\n        includeTransform,\n        x,\n        y,\n        width,\n        height,\n        rotation,\n        isRootVectorNode\n      } = this.props;\n      if (!visible)\n        return null;\n      const { target } = RenderEnvironment;\n      const rect = { x, y, width, height };\n      const transform2 = transformValues(rect, rotation, isRootVectorNode, includeTransform);\n      const addNames = target === \"PREVIEW\" /* preview */;\n      let name = void 0;\n      if (addNames) {\n        if (targetName) {\n          name = targetName;\n        } else if (nameProp) {\n          name = nameProp;\n        } else {\n          name = defaultName;\n        }\n      }\n      return this.renderElement(\n        /* @__PURE__ */ React99.createElement(\"g\", { transform: transformString(transform2), ...{ id, name, opacity } }, children)\n      );\n    }\n    renderElement(element) {\n      const { isRootVectorNode, width, height, frame: frame2, willChangeTransform, includeTransform } = this.props;\n      if (!isRootVectorNode)\n        return element;\n      if (includeTransform)\n        return element;\n      return /* @__PURE__ */ React99.createElement(\n        SVGRoot,\n        {\n          frame: frame2,\n          width,\n          height,\n          willChangeTransform,\n          innerRef: this.setLayerElement\n        },\n        element\n      );\n    }\n  }, _a.defaultVectorGroupProps = {\n    name: void 0,\n    opacity: void 0,\n    visible: true,\n    x: 0,\n    y: 0,\n    rotation: 0,\n    width: 100,\n    height: 100,\n    targetName: void 0,\n    defaultName: \"\",\n    isRootVectorNode: false,\n    includeTransform: void 0,\n    frame: { x: 0, y: 0, width: 100, height: 100 }\n  }, _a.defaultProps = {\n    ...Layer.defaultProps,\n    ..._a.defaultVectorGroupProps\n  }, _a;\n})();\n\n// ../../library/src/render/DesignComponentWrapper.tsx\nvar _CanvasStore = class {\n  constructor() {\n    this.canvas = { children: [] };\n    this.listeners = [];\n    this.ids = [];\n  }\n  static shared(data2) {\n    if (data2) {\n      const store = new _CanvasStore();\n      store.setCanvas(data2);\n      return store;\n    }\n    if (!_CanvasStore.__shared) {\n      _CanvasStore.__shared = new _CanvasStore();\n    }\n    return _CanvasStore.__shared;\n  }\n  updateNode(presentationNode) {\n    const id = presentationNode.props.id;\n    let children = this.canvas.children;\n    if (!children) {\n      this.canvas.children = children = [];\n    }\n    let found = false;\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i];\n      if ((child == null ? void 0 : child.props.id) === id) {\n        found = true;\n        children[i] = presentationNode;\n        break;\n      }\n    }\n    if (!found) {\n      children.push(presentationNode);\n    }\n    this.setCanvas(this.canvas);\n  }\n  setCanvas(canvas) {\n    if (!canvas.children)\n      return;\n    this.canvas = canvas;\n    this.listeners.forEach((l, at) => {\n      const id = this.ids[at];\n      if (!id)\n        return;\n      const data2 = findNodeFor(canvas, id);\n      l.setState({ data: data2 });\n    });\n  }\n  registerListener(listener, idOrName) {\n    this.listeners.push(listener);\n    this.ids.push(idOrName);\n    return findNodeFor(this.canvas, idOrName);\n  }\n  removeListener(listener) {\n    const at = this.listeners.indexOf(listener);\n    if (at === -1)\n      return;\n    this.listeners.splice(at, 1);\n    this.ids.splice(at, 1);\n  }\n};\nvar CanvasStore = _CanvasStore;\nCanvasStore.__shared = null;\nvar builtInComponents = { Frame, Vector, Stack, VectorGroup, SVG, Text, DeprecatedComponentContainer };\nvar DesignComponent = class extends Component13 {\n  _typeForName(name) {\n    const builtIn = asRecord(builtInComponents)[name];\n    if (builtIn)\n      return builtIn;\n    const codeComponent = runtime.componentLoader.componentForIdentifier(name);\n    if (codeComponent && isReactDefinition(codeComponent)) {\n      return codeComponent.class;\n    }\n    return Frame;\n  }\n  _renderData(presentation, componentProps, topLevelProps) {\n    ;\n    asRecord(safeWindow)[\"__checkBudget__\"]();\n    const { componentClass, name } = presentation;\n    let { props, children } = presentation;\n    props = { ...props, _constraints: { enabled: false } };\n    const type = this._typeForName(componentClass);\n    if (!type)\n      return null;\n    if (topLevelProps) {\n      const { style, ...rest } = props;\n      props = { ...rest, ...topLevelProps, _initialStyle: style };\n    }\n    if (!props.size && props._sizeOfMasterOnCanvas) {\n      if (!props.width) {\n        props.width = props._sizeOfMasterOnCanvas.width;\n      }\n      if (!props.height) {\n        props.height = props._sizeOfMasterOnCanvas.height;\n      }\n    }\n    if (name && componentProps.hasOwnProperty(name)) {\n      if (componentClass === \"Text\") {\n        const text = componentProps[name];\n        if (text) {\n          props = { ...props, text: componentProps[name] };\n        }\n      } else {\n        const orig = props.background;\n        const background = { src: componentProps[name], fit: orig.fit };\n        props = { ...props, background };\n      }\n    }\n    const c = children && children.map((child) => this._renderData(child, componentProps, void 0));\n    children = children ? c : [];\n    return React100.createElement(type, props, children);\n  }\n  render() {\n    ;\n    asRecord(safeWindow)[\"__checkBudget__\"]();\n    const data2 = this.state.data;\n    if (!data2) {\n      throw new Error(\"Unable to connect to canvas data store.\");\n    }\n    return this._renderData(this.state.data, this.props, this.props);\n  }\n};\nfunction isNode(id, presentation) {\n  const { name, props } = presentation;\n  return props && props.id === id || name === id;\n}\nfunction findNodeFor(presentation, id) {\n  if (!presentation)\n    return null;\n  if (isNode(id, presentation)) {\n    return presentation;\n  }\n  const { children } = presentation;\n  if (!children || !isArray(children))\n    return null;\n  for (const child of children) {\n    if (isNode(id, child)) {\n      return child;\n    }\n  }\n  for (const child of children) {\n    const result = findNodeFor(child, id);\n    if (result)\n      return result;\n  }\n  return null;\n}\nfunction createDesignComponent(canvasStore, id, propertyControls, width = 200, height = 200) {\n  var _a;\n  return _a = class extends DesignComponent {\n    static rect(props) {\n      const constraintValues = ConstraintValues.fromProperties(props);\n      const parentSizeInfo = props.parentSize ? { sizing: props.parentSize, positioning: props.parentSize, viewport: null } : null;\n      return ConstraintValues.toRect(constraintValues, parentSizeInfo, null);\n    }\n    static size(props, parentSize, freeSpace) {\n      const constraintValues = ConstraintValues.fromProperties(props);\n      return ConstraintValues.toSize(constraintValues, parentSize || null, null, freeSpace);\n    }\n    constructor(props, context) {\n      super(props, context);\n      const data2 = canvasStore.registerListener(this, id);\n      this.state = { data: data2 };\n    }\n    render() {\n      const maybeRenderWithProvider = (renderNode) => {\n        const nodeId = nodeIdFromString(id);\n        if (!this.state.data && renderNode) {\n          ;\n          asRecord(safeWindow)[\"__checkBudget__\"]();\n          const el = renderNode(nodeId);\n          if (el && React100.isValidElement(el) && typeof el.type !== \"string\") {\n            return React100.createElement(WithOverride(el.type, this.props), el.props);\n          }\n        }\n        return super.render();\n      };\n      return /* @__PURE__ */ React100.createElement(RenderNodeContext.Consumer, null, maybeRenderWithProvider);\n    }\n    componentWillUnmount() {\n      canvasStore.removeListener(this);\n    }\n  }, _a.displayName = `DesignComponent(${id})`, _a.propertyControls = propertyControls, _a.supportsConstraints = true, _a.defaultProps = {\n    _sizeOfMasterOnCanvas: {\n      width,\n      height\n    }\n  }, _a;\n}\nvar RenderNodeContext = React100.createContext(null);\nvar RenderNodeProvider = RenderNodeContext.Provider;\n\n// ../../library/src/render/componentLoader/package.ts\nvar localPackageFallbackIdentifier = \"|local|\";\n\n// ../../library/src/render/presentation/CustomProperties.tsx\nimport React101 from \"react\";\nfunction CustomProperties({\n  children,\n  customProperties\n}) {\n  return /* @__PURE__ */ React101.createElement(\"div\", { style: customProperties }, children);\n}\n\n// ../../library/src/render/presentation/Image.tsx\nimport React102 from \"react\";\nvar Image2 = /* @__PURE__ */ React102.forwardRef(function Image3(props, ref) {\n  const { background, children, alt, ...rest } = props;\n  const style = { ...rest.style };\n  if (background) {\n    delete style.background;\n  }\n  const MotionComponent = htmlElementAsMotionComponent(props.as);\n  return /* @__PURE__ */ React102.createElement(MotionComponent, { ...rest, style, ref }, background && /* @__PURE__ */ React102.createElement(BackgroundImageComponent, { image: background, alt }), children);\n});\n\n// ../../library/src/render/presentation/PresentationTree.ts\nfunction convertPresentationTree(node, converter, componentDefinitionProvider, getCachedNode, skipCodeComponentPropsCache = false) {\n  const cachedNode = getCachedNode && getCachedNode(node);\n  if (cachedNode)\n    return cachedNode;\n  let children;\n  if (isCodeComponentContainerPresentation(node)) {\n    children = convertCodeComponentContainer(\n      componentDefinitionProvider,\n      node,\n      converter,\n      getCachedNode,\n      skipCodeComponentPropsCache\n    );\n  } else if (node.children) {\n    children = node.children.map(\n      (n) => convertPresentationTree(\n        n,\n        converter,\n        componentDefinitionProvider,\n        getCachedNode,\n        skipCodeComponentPropsCache\n      )\n    );\n  }\n  return converter(node, children);\n}\nfunction isCodeComponentContainerPresentation(value) {\n  return !!value.codeComponentIdentifier;\n}\nfunction convertCodeComponentContainer(componentDefinitionProvider, node, converter, getCachedNode, skipCodeComponentPropsCache = false) {\n  var _a;\n  const codeComponentChildren = node.getComponentChildren ? node.getComponentChildren(componentDefinitionProvider) : [];\n  const codeComponentSlots = node.getComponentSlotChildren ? node.getComponentSlotChildren(componentDefinitionProvider) : {};\n  let codeComponentPresentation;\n  const props = node.getCodeComponentProps ? node.getCodeComponentProps(componentDefinitionProvider, { skipCache: skipCodeComponentPropsCache }) : void 0;\n  if (node.cache.codeComponentPresentation) {\n    codeComponentPresentation = node.cache.codeComponentPresentation;\n    if (!isShallowEqualArray(codeComponentPresentation.children, codeComponentChildren)) {\n      codeComponentPresentation.cache.reactElement = null;\n      codeComponentPresentation.children = codeComponentChildren;\n    }\n    if (!isEqual(codeComponentPresentation.props, props)) {\n      codeComponentPresentation.cache.reactElement = null;\n      codeComponentPresentation.cache.props = null;\n      codeComponentPresentation.props = props;\n    }\n  } else {\n    const { id: containerId, codeComponentIdentifier: identifier, codeComponentPackageVersion } = node;\n    node.cache.codeComponentPresentation = codeComponentPresentation = new CodeComponentPresentation(\n      containerId + identifier,\n      identifier,\n      codeComponentPackageVersion,\n      props,\n      codeComponentChildren\n    );\n  }\n  codeComponentPresentation.props.placeholders = node.cache.placeholders;\n  const slotKeys = Object.keys(codeComponentSlots);\n  if (slotKeys.length) {\n    codeComponentPresentation.props = { ...codeComponentPresentation.props };\n    codeComponentPresentation.props.__slotKeys = slotKeys;\n    for (const slotKey of slotKeys) {\n      const slotChildren = (_a = codeComponentSlots[slotKey]) == null ? void 0 : _a.map(\n        (child) => convertPresentationTree(\n          child,\n          converter,\n          componentDefinitionProvider,\n          getCachedNode,\n          skipCodeComponentPropsCache\n        )\n      );\n      codeComponentPresentation.props[slotKey] = slotChildren;\n    }\n  }\n  return [\n    converter(\n      codeComponentPresentation,\n      codeComponentPresentation.children.map(\n        (child) => convertPresentationTree(\n          child,\n          converter,\n          componentDefinitionProvider,\n          getCachedNode,\n          skipCodeComponentPropsCache\n        )\n      )\n    )\n  ];\n}\nvar CodeComponentPresentation = class {\n  constructor(id, componentIdentifier, packageVersion, props, children, codeOverrideIdentifier) {\n    this.id = id;\n    this.componentIdentifier = componentIdentifier;\n    this.packageVersion = packageVersion;\n    this.props = props;\n    this.children = children;\n    this.codeOverrideIdentifier = codeOverrideIdentifier;\n    this.cache = {};\n  }\n  getProps() {\n    return {\n      ...this.props,\n      id: this.id,\n      key: this.id\n    };\n  }\n  rect(_parentSizeInfo) {\n    return { x: 0, y: 0, width: 0, height: 0 };\n  }\n};\n\n// ../../library/src/render/presentation/RichText.tsx\nimport React104, { Children, cloneElement, forwardRef as forwardRef4, isValidElement, useContext as useContext15, useRef as useRef17 } from \"react\";\n\n// ../../library/src/render/presentation/DeprecatedRichText.tsx\nimport * as React103 from \"react\";\nimport { useRef as useRef16 } from \"react\";\nvar htmlEscapes = {\n  \"&\": \"&amp;\",\n  \"<\": \"&lt;\",\n  \">\": \"&gt;\",\n  '\"': \"&quot;\",\n  \"'\": \"&#39;\"\n};\nvar reUnescapedHtml = /[&<>\"']/g;\nvar reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\nfunction escapeHTML2(str) {\n  return str && reHasUnescapedHtml.test(str) ? str.replace(reUnescapedHtml, (chr) => {\n    var _a;\n    return (_a = htmlEscapes[chr]) != null ? _a : \"\";\n  }) : str || \"\";\n}\nvar deprecatedRichTextPlaceholder = \"{{ text-placeholder }}\";\nvar richTextWrapperClassName = \"rich-text-wrapper\";\nvar DeprecatedRichText = /* @__PURE__ */ React103.forwardRef(\n  function Text3(props, forwardedRef) {\n    var _a, _b;\n    const {\n      id,\n      name,\n      html,\n      htmlFromDesign,\n      text,\n      textFromDesign,\n      fonts = [],\n      width,\n      height,\n      left,\n      right,\n      top,\n      bottom,\n      center,\n      className,\n      stylesPresetsClassName,\n      visible = true,\n      opacity,\n      rotation = 0,\n      verticalAlignment = \"top\",\n      isEditable = false,\n      willChangeTransform,\n      environment: environment2 = RenderTarget.current,\n      withExternalLayout = false,\n      positionSticky,\n      positionStickyTop,\n      positionStickyRight,\n      positionStickyBottom,\n      positionStickyLeft,\n      __htmlStructure,\n      __fromCanvasComponent = false,\n      _forwardedOverrideId,\n      _forwardedOverrides,\n      _usesDOMRect,\n      children,\n      ...rest\n    } = props;\n    const parentSize = useParentSize();\n    const layoutId = useLayoutId(props);\n    const fallbackLayoutRef = useRef16(null);\n    const layoutRef = forwardedRef != null ? forwardedRef : fallbackLayoutRef;\n    const { navigate, getRoute } = useRouter();\n    const currentRoute = useCurrentRoute();\n    useRoutePreloader((_a = props.preload) != null ? _a : []);\n    useMeasureLayout(props, layoutRef);\n    const inCodeComponent = React103.useContext(ComponentContainerContext);\n    const isOnCanvas = useIsOnFramerCanvas();\n    let textOrOverride = text;\n    const forwardedOverrideId = _forwardedOverrideId != null ? _forwardedOverrideId : id;\n    if (forwardedOverrideId && _forwardedOverrides) {\n      const override = _forwardedOverrides[forwardedOverrideId];\n      if (typeof override === \"string\") {\n        textOrOverride = override;\n      }\n    }\n    let innerHTML = \"\";\n    if (textOrOverride) {\n      const escapedText = escapeHTML2(textOrOverride);\n      innerHTML = __htmlStructure ? __htmlStructure.replace(deprecatedRichTextPlaceholder, escapedText) : `<p>${escapedText}</p>`;\n    } else if (html) {\n      innerHTML = html;\n    } else if (textFromDesign) {\n      const escapedText = escapeHTML2(textFromDesign);\n      innerHTML = __htmlStructure ? __htmlStructure.replace(deprecatedRichTextPlaceholder, escapedText) : `<p>${escapedText}</p>`;\n    } else if (htmlFromDesign) {\n      innerHTML = htmlFromDesign;\n    }\n    const implicitPathVariables = useImplicitPathVariables();\n    const innerHTMLWithReplacedFramerPageLinks = React103.useMemo(() => {\n      if (isOnCanvas || !getRoute || !currentRoute)\n        return innerHTML;\n      return replaceFramerPageLinks(innerHTML, getRoute, currentRoute, implicitPathVariables);\n    }, [isOnCanvas, innerHTML, getRoute, currentRoute, implicitPathVariables]);\n    React103.useEffect(() => {\n      const container = layoutRef.current;\n      if (container === null)\n        return;\n      function interceptPageLinks(event) {\n        const anchorElement = findAnchorElement(event.target, layoutRef.current);\n        if (event.metaKey || !navigate || !anchorElement || anchorElement.getAttribute(\"target\") === \"_blank\" /* _blank */)\n          return;\n        const didNavigate = navigateFromAttributes(navigate, anchorElement, implicitPathVariables);\n        if (didNavigate) {\n          event.preventDefault();\n        }\n      }\n      container.addEventListener(\"click\", interceptPageLinks);\n      return () => {\n        container.removeEventListener(\"click\", interceptPageLinks);\n      };\n    }, [navigate, implicitPathVariables]);\n    useLoadFonts(fonts, __fromCanvasComponent, layoutRef);\n    if (!visible)\n      return null;\n    injectComponentCSSRules();\n    const isHidden2 = isEditable && environment2() === \"CANVAS\" /* canvas */;\n    const style = {\n      outline: \"none\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: convertVerticalAlignment2(verticalAlignment),\n      opacity: isHidden2 ? 0 : opacity,\n      flexShrink: 0\n    };\n    const restrictedRenderTarget = RenderTarget.hasRestrictions();\n    const frame2 = calculateRect(props, parentSize || 0 /* Unknown */, false);\n    const isAutoSized2 = _usesDOMRect && (width === \"auto\" || height === \"auto\");\n    const hasTransformTemplate = !!props.transformTemplate || !frame2 || !restrictedRenderTarget || __fromCanvasComponent || isAutoSized2;\n    const template = hasTransformTemplate ? (_b = props.transformTemplate) != null ? _b : transformTemplate(center) : void 0;\n    if (!withExternalLayout) {\n      if (frame2 && restrictedRenderTarget && !isAutoSized2) {\n        const rotate = Animatable.getNumber(rotation).toFixed(4);\n        style.transform = `translate(${frame2.x}px, ${frame2.y}px) rotate(${rotate}deg)`;\n        style.width = frame2.width;\n        style.minWidth = frame2.width;\n        style.height = frame2.height;\n      } else {\n        style.left = left;\n        style.right = right;\n        style.top = top;\n        style.bottom = bottom;\n        style.width = width;\n        style.height = height;\n        style.rotate = rotation;\n      }\n      if (positionSticky) {\n        if (!isOnCanvas || inCodeComponent) {\n          style.position = \"sticky\";\n          style.willChange = \"transform\";\n          style.zIndex = 1;\n          style.top = positionStickyTop;\n          style.right = positionStickyRight;\n          style.bottom = positionStickyBottom;\n          style.left = positionStickyLeft;\n        }\n      } else if (isOnCanvas && (props.positionFixed || props.positionAbsolute)) {\n        style.position = \"absolute\";\n      }\n    }\n    collectFiltersFromProps(props, style);\n    collectTextShadowsForProps(props, style);\n    if (willChangeTransform) {\n      forceLayerBackingWithCSSProperties(style);\n    }\n    Object.assign(style, props.style);\n    return /* @__PURE__ */ React103.createElement(\n      motion.div,\n      {\n        id,\n        ref: layoutRef,\n        ...rest,\n        style,\n        layoutId,\n        \"data-framer-name\": name,\n        \"data-framer-component-type\": \"DeprecatedRichText\",\n        \"data-center\": center,\n        className: cx(className, stylesPresetsClassName, richTextWrapperClassName),\n        transformTemplate: template,\n        dangerouslySetInnerHTML: { __html: innerHTMLWithReplacedFramerPageLinks }\n      }\n    );\n  }\n);\nfunction convertVerticalAlignment2(verticalAlignment) {\n  switch (verticalAlignment) {\n    case \"top\":\n      return \"flex-start\";\n    case \"center\":\n      return \"center\";\n    case \"bottom\":\n      return \"flex-end\";\n  }\n}\nfunction useLoadFonts(fonts, fromCanvasComponent, containerRef) {\n  const prevFontsRef = useRef16([]);\n  if (!isShallowEqualArray(prevFontsRef.current, fonts)) {\n    prevFontsRef.current = fonts;\n    fontStore.loadFonts(fonts).then(({ newlyLoadedFontCount }) => {\n      if (!fromCanvasComponent || !containerRef.current || RenderTarget.current() !== \"CANVAS\" /* canvas */)\n        return;\n      if (newlyLoadedFontCount > 0) {\n        measureClosestComponentContainer(containerRef.current);\n      }\n    });\n  }\n}\n\n// ../../library/src/render/presentation/RichText.tsx\nvar FitText = /* @__PURE__ */ forwardRef4(\n  ({ viewBoxScale, viewBox, children, ...props }, ref) => {\n    return /* @__PURE__ */ React104.createElement(motion.svg, { ref, ...props, viewBox }, /* @__PURE__ */ React104.createElement(\n      motion.foreignObject,\n      {\n        width: \"100%\",\n        height: \"100%\",\n        className: \"framer-fit-text\",\n        transform: `scale(${viewBoxScale})`,\n        style: { overflow: \"visible\", transformOrigin: \"center center\" }\n      },\n      children\n    ));\n  }\n);\nvar RichTextContainer = /* @__PURE__ */ forwardRef4(\n  (props, ref) => {\n    var _a;\n    const {\n      __fromCanvasComponent = false,\n      _forwardedOverrideId,\n      _forwardedOverrides,\n      _usesDOMRect,\n      as,\n      bottom,\n      center,\n      children,\n      environment: environment2 = RenderTarget.current,\n      fonts = [],\n      height,\n      isEditable = false,\n      left,\n      name,\n      opacity,\n      positionSticky,\n      positionStickyBottom,\n      positionStickyLeft,\n      positionStickyRight,\n      positionStickyTop,\n      right,\n      rotation = 0,\n      style,\n      _initialStyle,\n      stylesPresetsClassNames,\n      text: plainText,\n      top,\n      verticalAlignment = \"top\",\n      visible = true,\n      width,\n      willChangeTransform,\n      withExternalLayout = false,\n      viewBox,\n      viewBoxScale = 1,\n      ...rest\n    } = props;\n    const parentSize = useParentSize();\n    const isOnCanvas = useIsOnFramerCanvas();\n    const inCodeComponent = useContext15(ComponentContainerContext);\n    const layoutId = useLayoutId(props);\n    const fallbackRef = useRef17(null);\n    const containerRef = ref != null ? ref : fallbackRef;\n    useMeasureLayout(props, containerRef);\n    useLoadFonts(fonts, __fromCanvasComponent, containerRef);\n    if (!visible)\n      return null;\n    injectComponentCSSRules();\n    const isHidden2 = isEditable && environment2() === \"CANVAS\" /* canvas */;\n    const containerStyle = {\n      outline: \"none\",\n      display: \"flex\",\n      flexDirection: \"column\",\n      justifyContent: convertVerticalAlignment2(verticalAlignment),\n      opacity: isHidden2 ? 0 : opacity,\n      flexShrink: 0\n    };\n    const restrictedRenderTarget = RenderTarget.hasRestrictions();\n    const frame2 = calculateRect(props, parentSize || 0 /* Unknown */, false);\n    const isAutoSized2 = _usesDOMRect && (width === \"auto\" || height === \"auto\");\n    const hasTransformTemplate = !!props.transformTemplate || !frame2 || !restrictedRenderTarget || __fromCanvasComponent || isAutoSized2;\n    const template = hasTransformTemplate ? (_a = props.transformTemplate) != null ? _a : transformTemplate(center) : void 0;\n    if (!withExternalLayout) {\n      if (frame2 && restrictedRenderTarget && !isAutoSized2) {\n        const rotate = Animatable.getNumber(rotation).toFixed(4);\n        containerStyle.transform = `translate(${frame2.x}px, ${frame2.y}px) rotate(${rotate}deg)`;\n        containerStyle.width = frame2.width;\n        containerStyle.minWidth = frame2.width;\n        containerStyle.height = frame2.height;\n      } else {\n        containerStyle.left = left;\n        containerStyle.right = right;\n        containerStyle.top = top;\n        containerStyle.bottom = bottom;\n        containerStyle.width = width;\n        containerStyle.height = height;\n        containerStyle.rotate = rotation;\n      }\n      if (positionSticky) {\n        if (!isOnCanvas || inCodeComponent) {\n          containerStyle.position = \"sticky\";\n          containerStyle.willChange = \"transform\";\n          containerStyle.zIndex = 1;\n          containerStyle.top = positionStickyTop;\n          containerStyle.right = positionStickyRight;\n          containerStyle.bottom = positionStickyBottom;\n          containerStyle.left = positionStickyLeft;\n        }\n      } else if (isOnCanvas && (props.positionFixed || props.positionAbsolute)) {\n        containerStyle.position = \"absolute\";\n      }\n    }\n    collectFiltersFromProps(props, containerStyle);\n    collectTextShadowsForProps(props, containerStyle);\n    if (willChangeTransform) {\n      forceLayerBackingWithCSSProperties(containerStyle);\n    }\n    Object.assign(containerStyle, _initialStyle, style);\n    if (layoutId) {\n      rest.layout = \"preserve-aspect\";\n    }\n    const Component14 = htmlElementAsMotionComponent(props.as);\n    if (isString2(props.viewBox)) {\n      if (props.as !== void 0) {\n        return /* @__PURE__ */ React104.createElement(\n          Component14,\n          {\n            ...rest,\n            ref: containerRef,\n            style: containerStyle,\n            layoutId,\n            transformTemplate: template,\n            \"data-framer-name\": name,\n            \"data-framer-component-type\": \"RichTextContainer\"\n          },\n          /* @__PURE__ */ React104.createElement(\n            FitText,\n            {\n              viewBox,\n              viewBoxScale,\n              style: { width: \"100%\", height: \"100%\" }\n            },\n            children && styleRichTextChildren(children, stylesPresetsClassNames, plainText)\n          )\n        );\n      } else {\n        return /* @__PURE__ */ React104.createElement(\n          FitText,\n          {\n            ...rest,\n            ref: containerRef,\n            style: containerStyle,\n            layoutId,\n            viewBox,\n            viewBoxScale,\n            transformTemplate: template,\n            \"data-framer-name\": name,\n            \"data-framer-component-type\": \"RichTextContainer\"\n          },\n          children && styleRichTextChildren(children, stylesPresetsClassNames, plainText)\n        );\n      }\n    }\n    return /* @__PURE__ */ React104.createElement(\n      Component14,\n      {\n        ...rest,\n        ref: containerRef,\n        style: containerStyle,\n        layoutId,\n        transformTemplate: template,\n        \"data-framer-name\": name,\n        \"data-framer-component-type\": \"RichTextContainer\"\n      },\n      children && styleRichTextChildren(children, stylesPresetsClassNames, plainText)\n    );\n  }\n);\nfunction styleRichTextChildren(element, stylesPresetsClassNames, plainText) {\n  let children = Children.toArray(element.props.children);\n  if (isString2(plainText)) {\n    children = children.slice(0, 1);\n  }\n  children = children.map((child) => {\n    if (isValidElement(child)) {\n      return styleRichTextChildren(child, stylesPresetsClassNames, plainText);\n    }\n    if (isString2(plainText)) {\n      return plainText;\n    }\n    return child;\n  });\n  const { [\"data-preset-tag\"]: dataPresetTag, ...props } = element.props;\n  if (isString2(element.type) || isMotionComponent(element.type)) {\n    const tag = dataPresetTag || unwrapMotionComponent(element.type) || element.type;\n    const stylesPresetClassName = isString2(tag) ? stylesPresetsClassNames == null ? void 0 : stylesPresetsClassNames[tag] : void 0;\n    props.className = cx(\"framer-text\", props.className, stylesPresetClassName);\n  }\n  return cloneElement(element, props, ...children);\n}\nvar RichText = /* @__PURE__ */ forwardRef4(\n  ({ children, html, htmlFromDesign, ...props }, ref) => {\n    const content = html || children || htmlFromDesign;\n    if (isString2(content)) {\n      if (!props.stylesPresetsClassName && isObject2(props.stylesPresetsClassNames)) {\n        props.stylesPresetsClassName = Object.values(props.stylesPresetsClassNames).join(\" \");\n      }\n      const contentProp = {\n        // We need to use the original prop name.\n        [isString2(html) ? \"html\" : \"htmlFromDesign\"]: content\n      };\n      return /* @__PURE__ */ React104.createElement(DeprecatedRichText, { ...props, ...contentProp, ref });\n    }\n    if (!props.stylesPresetsClassNames && isString2(props.stylesPresetsClassName)) {\n      const [h1, h2, h3, p, a] = props.stylesPresetsClassName.split(\" \");\n      if (h1 === void 0 || h2 === void 0 || h3 === void 0 || p === void 0 || a === void 0) {\n        console.warn(`Encountered invalid stylesPresetsClassNames: ${props.stylesPresetsClassNames}`);\n      } else {\n        props.stylesPresetsClassNames = { h1, h2, h3, p, a };\n      }\n    }\n    return /* @__PURE__ */ React104.createElement(RichTextContainer, { ...props, ref }, isValidElement(content) ? content : void 0);\n  }\n);\n\n// ../../library/src/render/traits/Shape.ts\nvar key6 = \"calculatedPaths\";\nfunction withShape(target) {\n  return key6 in target;\n}\n\n// ../../library/src/render/types/Size.ts\nvar Size = /* @__PURE__ */ (() => {\n  function Size2(width, height) {\n    return { width, height };\n  }\n  Size2.equals = (sizeA, sizeB) => {\n    if (sizeA === sizeB)\n      return true;\n    if (!sizeA || !sizeB)\n      return false;\n    return sizeA.width === sizeB.width && sizeA.height === sizeB.height;\n  };\n  Size2.update = (fromSize, toSize, keepAspectRatio = false) => {\n    let { width, height } = fromSize;\n    const sizeRatio = width / height;\n    width = toSize.width !== void 0 ? toSize.width : width;\n    height = toSize.height !== void 0 ? toSize.height : height;\n    if (keepAspectRatio) {\n      if (toSize.width === void 0 && toSize.height !== void 0) {\n        width = toSize.height * sizeRatio;\n      }\n      if (toSize.width !== void 0 && toSize.height === void 0 && sizeRatio !== 0) {\n        height = toSize.width / sizeRatio;\n      }\n    }\n    return { width, height };\n  };\n  Size2.subtract = (sizeA, sizeB) => {\n    return {\n      width: Math.max(0, sizeA.width - sizeB.width),\n      height: Math.max(0, sizeA.height - sizeB.height)\n    };\n  };\n  Size2.zero = Size2(0, 0);\n  Size2.isZero = function(size2) {\n    return size2 === Size2.zero || size2.width === 0 && size2.height === 0;\n  };\n  Size2.defaultIfZero = function(width, height, size2) {\n    if (Size2.isZero(size2)) {\n      return Size2(width, height);\n    }\n    return size2;\n  };\n  return Size2;\n})();\n\n// ../../library/src/render/utils/annotateTypeOnStringify.ts\nfunction annotateTypeOnStringify(ctor, typeName) {\n  const existingToJSON = ctor.prototype.toJSON;\n  ctor.prototype.toJSON = function() {\n    const base = existingToJSON ? existingToJSON.apply(this) : this;\n    return Object.assign({}, base, { __type__: typeName });\n  };\n  return ctor;\n}\nfunction isOfAnnotatedType(object, typeName) {\n  return object && object.__type__ && object.__type__ === typeName;\n}\n\n// ../../library/src/render/utils/dom.ts\nvar frameFromElement = (element) => {\n  const frame2 = Rect.fromRect(element.getBoundingClientRect());\n  frame2.x = frame2.x + safeWindow.scrollX;\n  frame2.y = frame2.y + safeWindow.scrollY;\n  return frame2;\n};\nvar frameFromElements = (elements) => {\n  return Rect.merge(...elements.map(frameFromElement));\n};\nvar convertToPageFrame = (frame2, element) => {\n  const point = convertToPagePoint(frame2, element);\n  return {\n    x: point.x,\n    y: point.y,\n    width: frame2.width,\n    height: frame2.height\n  };\n};\nvar convertFromPageFrame = (frame2, element) => {\n  const point = convertFromPagePoint(frame2, element);\n  return {\n    x: point.x,\n    y: point.y,\n    width: frame2.width,\n    height: frame2.height\n  };\n};\nvar getPageFrame = (element) => {\n  const rect = element.getBoundingClientRect();\n  return {\n    x: rect.left + safeWindow.scrollX,\n    y: rect.top + safeWindow.scrollY,\n    width: rect.width,\n    height: rect.height\n  };\n};\nvar fromEventForPage = (event) => {\n  return {\n    x: event.pageX,\n    y: event.pageY\n  };\n};\nvar fromEventForClient = (event) => {\n  return {\n    x: event.clientX,\n    y: event.clientY\n  };\n};\nvar convertToPagePoint = (point, element) => {\n  const frame2 = getPageFrame(element);\n  return {\n    x: point.x + frame2.x,\n    y: point.y + frame2.y\n  };\n};\nvar convertFromPagePoint = (point, element) => {\n  const frame2 = getPageFrame(element);\n  return {\n    x: point.x - frame2.x,\n    y: point.y - frame2.y\n  };\n};\nvar dispatchKeyDownEvent = (keyCode, options = {}) => {\n  const keyboardEvent = new KeyboardEvent(\"keydown\", {\n    bubbles: true,\n    keyCode,\n    ...options\n  });\n  const activeElement = document.activeElement;\n  if (activeElement) {\n    activeElement.dispatchEvent(keyboardEvent);\n  }\n};\nvar DOM = {\n  frameFromElement,\n  frameFromElements,\n  convertToPageFrame,\n  convertFromPageFrame,\n  getPageFrame,\n  fromEventForPage,\n  fromEventForClient,\n  convertToPagePoint,\n  convertFromPagePoint\n};\n\n// ../../library/src/render/utils/gradientForShape.tsx\nfunction gradientForShape(nodeId, node) {\n  if (LinearGradient.isLinearGradient(node.fill)) {\n    return elementPropertiesForLinearGradient(node.fill, nodeId);\n  }\n  if (RadialGradient.isRadialGradient(node.fill)) {\n    return elementPropertiesForRadialGradient(node.fill, nodeId);\n  }\n  return void 0;\n}\n\n// ../../library/src/render/utils/throttle.ts\nfunction throttle(fn, time2) {\n  let previous = 0;\n  let timeout;\n  const later = (...args) => {\n    previous = Date.now();\n    timeout = void 0;\n    fn(...args);\n  };\n  return (...args) => {\n    const now = Date.now();\n    const remaining = time2 - (now - previous);\n    if (remaining <= 0 || remaining > time2) {\n      if (timeout) {\n        safeWindow.clearTimeout(timeout);\n        timeout = void 0;\n      }\n      previous = now;\n      fn(...args);\n    } else if (!timeout) {\n      timeout = safeWindow.setTimeout(later, remaining, ...args);\n    }\n  };\n}\n\n// ../../library/src/utils/addActionControls.ts\nfunction addActionControls(action, title, controls) {\n  runtime.addActionControls(action, title, controls);\n}\n\n// ../../library/src/utils/addFonts.ts\nfunction addFonts(component, fonts) {\n  Object.assign(component, { fonts });\n}\nfunction getFonts(component) {\n  const fonts = component.fonts;\n  return fonts || [];\n}\n\n// ../../library/src/utils/network.ts\nfunction loadJSON(url) {\n  return fetch(url, { mode: \"cors\" }).then((res) => res.json());\n}\n\n// ../../library/src/utils/inspectObjectType.ts\nfunction inspectObjectType(item) {\n  let className;\n  if ((item.constructor !== null ? item.constructor.name : void 0) !== null && (item.constructor !== null ? item.constructor.name : void 0) !== \"Object\") {\n    return item.constructor.name;\n  }\n  const extract = function(str) {\n    if (!str) {\n      return null;\n    }\n    const regex2 = /\\[object (\\w+)\\]/;\n    const match = regex2.exec(str);\n    if (match) {\n      return match[1];\n    }\n    return null;\n  };\n  if (item.toString) {\n    className = extract(item.toString());\n    if (className) {\n      return className;\n    }\n  }\n  if (item.constructor !== null ? item.constructor.toString : void 0) {\n    className = extract(item.constructor !== null ? item.constructor.toString() : void 0);\n    if (className) {\n      return className.replace(\"Constructor\", \"\");\n    }\n  }\n  return \"Object\";\n}\n\n// ../../library/src/utils/inspect.ts\nfunction inspect(item, max, l) {\n  if (max === void 0) {\n    max = 5;\n  }\n  if (l === void 0) {\n    l = 0;\n  }\n  if (item === null) {\n    return \"null\";\n  }\n  if (item === void 0) {\n    return \"undefined\";\n  }\n  if (isObject2(item) && isFunction(item.toInspect)) {\n    return item.toInspect();\n  }\n  if (isString2(item)) {\n    return `\"${item}\"`;\n  }\n  if (isNumber(item)) {\n    return `${item}`;\n  }\n  if (isFunction(item)) {\n    let code = item.toString().slice(\"function \".length).replace(/\\n/g, \"\").replace(/\\s+/g, \" \");\n    const limit = 50;\n    if (code.length > limit && l > 0) {\n      code = `${code.slice(0, +limit + 1 || void 0).trim()}\\u2026 }`;\n    }\n    return `<Function ${code}>`;\n  }\n  if (isArray(item)) {\n    if (l > max) {\n      return \"[...]\";\n    }\n    return `[${item.map((i) => inspect(i, max, (l || 0) + 1)).join(\", \")}]`;\n  }\n  if (isObject2(item)) {\n    let objectInfo;\n    const objectType = inspectObjectType(item);\n    if (/HTML\\w+?Element/.test(objectType)) {\n      return `<${objectType}>`;\n    }\n    if (l > max) {\n      objectInfo = \"{...}\";\n    } else {\n      const itemKeys = Object.keys(item);\n      objectInfo = `{${itemKeys.map((k) => `${k}:${inspect(item[k], max, (l || 0) + 1)}`).join(\", \")}}`;\n    }\n    if (objectType === \"Object\") {\n      return objectInfo;\n    }\n    return `<${objectType} ${objectInfo}>`;\n  }\n  return `${item}`;\n}\n\n// ../../library/src/utils/print.ts\nfunction print(...args) {\n  const line = args.map((arg) => {\n    return inspect(arg);\n  }).join(\", \");\n  console.log(line);\n}\n\n// ../../library/src/utils/useInitialRouteComponent.ts\nimport { useEffect as useEffect13, useState as useState2 } from \"react\";\nfunction initialRouteComponent(component) {\n  if (!component)\n    return null;\n  if (withPreload(component))\n    return null;\n  return component;\n}\nfunction useInitialRouteComponent(routes, homeNodeId) {\n  var _a;\n  const InitialRouteComponent = (_a = routes[homeNodeId]) == null ? void 0 : _a.page;\n  const [RouteComponent2, setRouteComponent] = useState2(\n    initialRouteComponent(InitialRouteComponent)\n  );\n  useEffect13(() => {\n    if (withPreload(InitialRouteComponent)) {\n      InitialRouteComponent.preload().then(setRouteComponent);\n    }\n  }, []);\n  return RouteComponent2;\n}\n\n// ../../library/package.json\nvar package_default = {\n  name: \"framer\",\n  version: \"2.4.1\",\n  main: \"build/index.js\",\n  type: \"module\",\n  exports: {\n    \".\": \"./build/index.js\",\n    \"./package.json\": \"./package.json\",\n    \"./*\": \"./build/*\"\n  },\n  files: [\n    \"build\",\n    \"CHANGELOG.md\",\n    \"README.md\",\n    \"LICENSE.md\",\n    \"postinstall.cjs\"\n  ],\n  types: \"./build/index.d.ts\",\n  author: \"Framer\",\n  license: \"MIT\",\n  scripts: {\n    prepublishOnly: \"make build\",\n    coverage: \"yarn :jest --coverage\",\n    lint: \"yarn :eslint ./src --ext .ts,.tsx --format codeframe --quiet\",\n    \"lint:fix\": \"yarn lint --fix\",\n    test: \"yarn :jest\",\n    watch: \"yarn :jest --watch\",\n    postinstall: \"node postinstall.cjs\"\n  },\n  dependencies: {\n    \"@framerjs/router\": \"workspace:*\",\n    \"@juggle/resize-observer\": \"^3.3.1\",\n    eventemitter3: \"^3.1.0\",\n    fontfaceobserver: \"^2.1.0\",\n    \"hoist-non-react-statics\": \"^3.3.2\",\n    hsluv: \"^0.0.3\"\n  },\n  devDependencies: {\n    \"@testing-library/dom\": \"^8.19.1\",\n    \"@testing-library/jest-dom\": \"^5.16.5\",\n    \"@testing-library/react\": \"^13.4.0\",\n    \"@testing-library/user-event\": \"^14.4.3\",\n    \"@types/google.fonts\": \"1.0.3\",\n    \"@types/hsluv\": \"https://github.com/framer/typed_hsluv#bump\",\n    \"@types/node\": \"^18.17.15\",\n    \"@types/react\": \"^18.0.26\",\n    \"@types/react-dom\": \"^18.0.10\",\n    \"@types/yargs\": \"^17.0.19\",\n    \"@typescript-eslint/eslint-plugin\": \"^6.16.0\",\n    \"@typescript-eslint/parser\": \"^6.16.0\",\n    chalk: \"^4.1.2\",\n    eslint: \"^8.56.0\",\n    immutable: \"^3.8.2\",\n    \"jest-diff\": \"^29.3.1\",\n    \"jest-junit\": \"^15.0.0\",\n    react: \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\",\n    rollup: \"^3.17.2\",\n    \"rollup-plugin-dts\": \"^5.1.0\",\n    semver: \"^7.5.2\",\n    typescript: \"^5.3.3\",\n    yargs: \"^17.6.2\"\n  },\n  peerDependencies: {\n    \"framer-motion\": \"^10.13.1\",\n    react: \"^18.2.0\",\n    \"react-dom\": \"^18.2.0\"\n  },\n  tsdoc: {\n    tsdocFlavor: \"AEDoc\"\n  },\n  framer: {\n    components: [\n      {\n        name: \"Scroll\",\n        children: true,\n        properties: [\n          {\n            key: \"direction\",\n            title: \"Direction\",\n            kind: \"enum\",\n            options: [\n              \"horizontal\",\n              \"vertical\",\n              \"both\"\n            ]\n          }\n        ]\n      },\n      {\n        name: \"Page\"\n      }\n    ]\n  }\n};\n\n// ../../library/src/version.ts\nvar { version } = package_default;\n\n// ../../library/src/animation/Motion/addChildHack.ts\nMotionValue.prototype.addChild = function({ transformer = (v) => v }) {\n  const child = motionValue(transformer(this.get()));\n  this.onChange((v) => child.set(transformer(v)));\n  return child;\n};\n\n// ../../library/src/indexInternal.ts\nif (false) {\n  MainLoop.start();\n}\nexport {\n  AnchorLinkTarget,\n  Animatable,\n  AnimatePresence,\n  AnimateSharedLayout,\n  AnyInterpolation,\n  AutomaticLayoutIds,\n  BackgroundImage,\n  BezierAnimator,\n  BoxShadow,\n  CanvasStore,\n  Color,\n  ColorFormat,\n  ColorMixModelType,\n  ComponentContainerContext,\n  ComponentPresetsConsumer,\n  ComponentPresetsProvider,\n  ConstraintMask,\n  ConstraintValues,\n  Container,\n  ControlType,\n  ConvertColor,\n  CustomProperties,\n  CycleVariantState,\n  DOM,\n  Data,\n  DataContext,\n  DataObserver,\n  DataObserverContext,\n  DeprecatedComponentContainer,\n  DeprecatedFrameWithEvents,\n  DeprecatedLayoutGroupContext,\n  Device,\n  DeviceCodeComponent,\n  DimensionType,\n  DragControls,\n  Draggable,\n  EmptyState,\n  ErrorPlaceholder,\n  FlatTree,\n  Floating,\n  FontSourceNames,\n  Frame,\n  FrameWithMotion,\n  FramerAnimation,\n  FramerEvent,\n  FramerEventListener,\n  FramerEventSession,\n  GamepadContext,\n  GeneratedComponentContext,\n  Image2 as Image,\n  InternalID,\n  Layer,\n  LayoutGroup,\n  DeprecatedLayoutGroupContext as LayoutGroupContext,\n  LayoutIdContext,\n  LazyMotion,\n  LazyValue,\n  LibraryFeaturesProvider,\n  Line,\n  LinearGradient,\n  Link,\n  MainLoop,\n  MotionConfig,\n  MotionConfigContext,\n  MotionContext,\n  MotionSetup,\n  MotionValue,\n  NavigateTo,\n  NavigationWrapper as Navigation,\n  NavigationCallbackProvider,\n  NavigationConsumer,\n  NavigationTransitionType,\n  NotFoundError,\n  ObservableObject,\n  Page3 as Page,\n  PageEffectsProvider,\n  PageRoot,\n  ParentSizeState,\n  PathSegment,\n  PathVariablesContext,\n  Point,\n  PresenceContext,\n  PropertyOverrides,\n  PropertyStore,\n  RadialGradient,\n  Rect,\n  RenderNodeProvider,\n  RenderTarget,\n  Reorder,\n  ResolveLinks,\n  RichText,\n  SSRVariants,\n  SVG,\n  Scroll,\n  Shadow,\n  Size,\n  SpringAnimator,\n  Stack,\n  StyleSheetContext,\n  SwitchLayoutGroupContext,\n  Text,\n  ValueInterpolation,\n  VariantSelector,\n  Vector,\n  VectorGroup,\n  VisualElement,\n  WindowContext,\n  WithNavigator,\n  WithOverride,\n  _injectRuntime,\n  addActionControls,\n  addFonts,\n  addPointerEvent,\n  addPointerInfo,\n  addPropertyControls,\n  addScaleCorrector,\n  animate2 as animate,\n  animateValue,\n  animateVisualElement,\n  animationControls,\n  animations,\n  annotateTypeOnStringify,\n  anticipate,\n  backIn,\n  backInOut,\n  backOut,\n  backgroundImageFromProps,\n  buildTransform,\n  calcLength,\n  calculateRect,\n  callEach,\n  cancelFrame,\n  cancelSync,\n  checkTargetForNewValues,\n  circIn,\n  circInOut,\n  circOut,\n  clamp,\n  collectVisualStyleFromProps,\n  color,\n  combinedCSSRulesForPreview,\n  complex,\n  constraintsEnabled,\n  convertPresentationTree,\n  convertPropsToDeviceOptions,\n  createBox,\n  createData,\n  createDesignComponent,\n  createDomMotionComponent,\n  createFramerPageLink,\n  createMotionComponent,\n  createScopedAnimate,\n  cssBackgroundSize,\n  cubicBezier,\n  cx,\n  debounce,\n  defaultDeviceProps,\n  delay,\n  devicePresets,\n  disableInstantTransitions,\n  dispatchKeyDownEvent,\n  distance,\n  distance2D,\n  domAnimation,\n  domMax,\n  easeIn,\n  easeInOut,\n  easeOut,\n  environment,\n  executeInRenderEnvironment,\n  filterProps,\n  finiteNumber,\n  fontStore,\n  forceLayerBackingWithCSSProperties,\n  fraction,\n  frame,\n  frameData,\n  frameFromElement,\n  frameFromElements,\n  framerAppearAnimationScriptKey,\n  framerAppearEffects,\n  framerAppearIdKey,\n  framerAppearTransformTemplateToken,\n  getComponentSize,\n  getDevicePreset,\n  getFonts,\n  getMeasurableCodeComponentChildren,\n  getMergedConstraintsProps,\n  getPropertyControls,\n  getWhereExpressionFromPathVariables,\n  gradientForShape,\n  imagePatternPropsForFill,\n  imageUrlForAsset,\n  inView,\n  inferInitialRouteFromPath,\n  injectComponentCSSRules,\n  installFlexboxGapWorkaroundIfNeeded,\n  interpolate,\n  invariant,\n  isAnimatable,\n  isBrowser,\n  isDesignDefinition,\n  isDragActive,\n  isEqual,\n  isFiniteNumber,\n  isFractionDimension,\n  isFramerGamepadKeydownData,\n  isFramerPageLink,\n  isGapEnabled,\n  isMotionComponent,\n  isMotionValue2 as isMotionValue,\n  isOfAnnotatedType,\n  isOverride,\n  isReactDefinition,\n  isRelativeNumber,\n  isShallowEqualArray,\n  isStraightCurve,\n  isValidMotionProp,\n  lazy,\n  loadFont,\n  loadJSON,\n  localPackageFallbackIdentifier,\n  localShadowFrame,\n  m,\n  makePaddingString,\n  makeUseVisualState,\n  memoize2 as memoize,\n  mirrorEasing,\n  mix,\n  modulate,\n  motion,\n  motionValue,\n  optimizeAppear,\n  optimizeAppearTransformTemplate,\n  optimizedAppearDataAttribute,\n  paddingFromProps,\n  parseFramerPageLink,\n  pathDefaults,\n  pipe,\n  print,\n  progress,\n  propsForLink,\n  px,\n  removeHiddenBreakpointLayers,\n  resolveLink,\n  resolveMotionValue,\n  resolvePageScope,\n  reverseEasing,\n  roundWithOffset,\n  roundedNumber,\n  roundedNumberString,\n  scroll,\n  scrollInfo,\n  setGlobalRenderEnvironment,\n  sharedSVGManager,\n  shouldOpenLinkInNewTab,\n  spring,\n  stagger,\n  startAnimation,\n  startOptimizedAppearAnimation,\n  steps,\n  sync,\n  systemFontFamilyName,\n  throttle,\n  toFlexDirection,\n  toJustifyOrAlignment,\n  toSVGPath,\n  transform,\n  transformString,\n  transformTemplate,\n  unwrapMotionComponent,\n  useActiveTargetCallback,\n  useActiveVariantCallback,\n  useAddVariantProps,\n  useAnimate,\n  useAnimatedState,\n  useAnimation,\n  useAnimationControls,\n  useAnimationFrame,\n  useBreakpointVariants,\n  useCurrentPathVariables,\n  useCurrentRouteId,\n  useCustomCursors,\n  useCycle,\n  useDataRecord,\n  useAnimatedState as useDeprecatedAnimatedState,\n  useInvertedScale as useDeprecatedInvertedScale,\n  useDomEvent,\n  useDragControls,\n  useDynamicRefs,\n  useElementScroll,\n  useForceUpdate,\n  useGamepad,\n  useHotkey,\n  useHydratedBreakpointVariants,\n  useInView,\n  useInitialRouteComponent,\n  useInstantLayoutTransition,\n  useInstantTransition,\n  useInvertedScale,\n  useIsInCurrentNavigationTarget,\n  useIsOnFramerCanvas,\n  useIsPresent,\n  useIsomorphicLayoutEffect,\n  useLocale,\n  useLocaleCode,\n  useLocaleInfo,\n  useLocalizationInfo,\n  useMeasureLayout,\n  useMotionTemplate,\n  useMotionValue,\n  useMotionValueEvent,\n  useNavigate,\n  useNavigation,\n  useObserveData,\n  useOnAppear,\n  useOnCurrentTargetChange,\n  useOnVariantChange,\n  useOverlayState,\n  usePageEffects,\n  usePresence,\n  usePrototypeNavigate,\n  useProvidedWindow,\n  useQueryData,\n  useReducedMotion,\n  useReducedMotionConfig,\n  useRenderEnvironment,\n  useResetProjection,\n  useRoute,\n  useRouteAnchor,\n  useRouteElementId,\n  useRouteHandler,\n  useRouter,\n  useScroll,\n  useSpring,\n  useTime,\n  useTransform,\n  useUnmountEffect,\n  useVariantState,\n  useVelocity,\n  useViewportScroll,\n  useWillChange,\n  valueToDimensionType,\n  version,\n  visualElementStore,\n  warning,\n  withCSS,\n  withFX,\n  withGeneratedLayoutId,\n  withMappedReactProps,\n  withMeasuredSize,\n  withOpacity,\n  withParallaxTransform,\n  withPath,\n  withShape,\n  withStyleAppearEffect,\n  withVariantAppearEffect,\n  withVariantFX,\n  wrap\n};\n/**\n * @license Emotion v11.0.0\n * MIT License\n *\n * Copyright (c) Emotion team and other contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/*! Bundled license information:\n\nreact-is/cjs/react-is.production.min.js:\n  (** @license React v16.13.1\n   * react-is.production.min.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//# sourceMappingURL=framer.UCFJXIJH.js.map\n"],
  "mappings": "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",
  "names": ["npm_react_18_2_exports", "__export", "j", "I", "x", "P", "D", "V", "L", "U", "q", "z", "B", "H", "W", "e", "Y", "J", "K", "X", "Z", "ee", "te", "re", "ne", "oe", "ue", "ae", "ce", "ie", "fe", "se", "le", "pe", "ye", "de", "_e", "me", "e", "t", "r", "n", "o", "u", "a", "c", "i", "f", "s", "l", "p", "A", "y", "d", "_", "E", "F", "G", "m", "h", "v", "b", "C", "M", "N", "O", "escape", "w", "Q", "R", "S", "T", "$", "k", "g", "j", "I", "x", "P", "D", "V", "L", "U", "q", "z", "B", "H", "W", "Y", "J", "K", "X", "Z", "ee", "te", "re", "ne", "oe", "ue", "ae", "ce", "ie", "fe", "se", "le", "pe", "ye", "de", "_e", "me", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "cb", "mod", "__copyProps", "to", "from", "except", "desc", "key", "__toESM", "isNodeMode", "target", "__accessCheck", "obj", "member", "msg", "__privateGet", "getter", "__privateAdd", "value", "__privateSet", "setter", "require_memoize_browser_cjs", "exports", "memoize", "fn", "cache", "arg", "require_is_prop_valid_browser_cjs", "_interopDefault", "ex", "reactPropsRegex", "index", "prop", "MotionConfigContext", "z", "p", "MotionContext", "PresenceContext", "isBrowser", "useIsomorphicLayoutEffect", "fe", "ue", "camelToDash", "str", "optimizedAppearDataId", "optimizedAppearDataAttribute", "LayoutGroupContext", "SwitchLayoutGroupContext", "LazyContext", "useVisualElement", "Component2", "visualState", "props", "createVisualElement2", "parent", "re", "lazyContext", "presenceContext", "reducedMotionConfig", "visualElementRef", "pe", "visualElement", "ie", "wantsHandoff", "window", "isRefObject", "ref", "useMotionRef", "externalRef", "te", "instance", "isVariantLabel", "v", "isAnimationControls", "variantPriorityOrder", "variantProps", "isControllingVariants", "name", "isVariantNode", "getCurrentTreeVariants", "context", "initial", "animate2", "useCreateMotionContext", "se", "variantLabelsAsDependency", "featureProps", "featureDefinitions", "loadFeatures", "features", "motionComponentSymbol", "createMotionComponent", "preloadedFeatures2", "useRender", "useVisualState2", "MotionComponent", "MeasureLayout2", "configAndProps", "useLayoutId", "isStatic", "initialLayoutGroupConfig", "isStrict", "B", "ForwardRefComponent", "Y", "layoutId", "layoutGroupId", "scaleCorrectors", "addScaleCorrector", "correctors", "isMotionValue", "transformPropOrder", "transformProps", "translateAlias", "numTransforms", "buildTransform", "transform2", "enableHardwareAcceleration", "allowTransformNone", "transformIsDefault", "transformTemplate", "transformString", "i", "transformName", "clamp", "min", "max", "sanitize", "floatRegex", "colorRegex", "singleColorRegex", "isString", "createUnitType", "unit", "degrees", "percent", "px", "vh", "vw", "progressPercentage", "validMotionProps", "isValidMotionProp", "shouldForward", "loadExternalIsValidProp", "isValidProp", "filterProps", "isDom", "forwardMotionProps", "filteredProps", "isKeyframesTarget", "isCustomValue", "resolveFinalValueInKeyframes", "resolveMotionValue", "unwrappedValue", "resolveVariantFromProps", "definition", "custom", "currentValues", "currentVelocity", "useConstant", "init", "makeState", "scrapeMotionValuesFromProps3", "createRenderState", "onMount", "state", "makeLatestValues", "makeUseVisualState", "config", "make", "scrapeMotionValues", "values", "motionValues", "isControllingVariants$1", "isVariantNode$1", "isInitialAnimationBlocked", "variantToSet", "resolved", "transitionEnd", "transition", "valueTarget", "noop", "any", "Queue", "process2", "createRenderStep", "runNextFrame", "thisFrame", "nextFrame", "numToRun", "isProcessing", "flushNextFrame", "toKeepAlive", "step", "callback", "keepAlive", "immediate", "addToCurrentFrame", "queue", "frameData2", "stepsOrder", "maxElapsed", "createRenderBatcher", "scheduleNextBatch", "allowKeepAlive", "useDefaultElapsed", "steps2", "acc", "processStep", "stepId", "processBatch", "timestamp", "wake", "frame", "cancelFrame", "frameData", "steps", "isPrimaryPointer", "event", "extractEventInfo", "pointType", "addPointerInfo", "handler", "addDomEvent", "eventName", "options", "addPointerEvent", "combineFunctions", "a", "b", "pipe", "transformers", "createLock", "lock", "openLock", "globalHorizontalLock", "globalVerticalLock", "getGlobalLock", "drag2", "openHorizontal", "openVertical", "isDragActive", "openGestureLock", "warning", "invariant", "calcBezier", "t", "a1", "a2", "subdivisionPrecision", "subdivisionMaxIterations", "binarySubdivide", "x", "lowerBound", "upperBound", "mX1", "mX2", "currentX", "currentT", "cubicBezier", "mY1", "mY2", "getTForX", "aX", "easeIn", "easeOut", "easeInOut", "mirrorEasing", "easing", "reverseEasing", "circIn", "circOut", "circInOut", "backOut", "backIn", "backInOut", "anticipate", "number", "alpha", "scale", "isColorString", "type", "testProp", "splitColor", "aName", "bName", "cName", "c", "alpha2", "clampRgbUnit", "rgbUnit", "rgba", "red", "green", "blue", "alpha$1", "parseHex", "r", "g", "hex", "hsla", "hue", "saturation", "lightness", "color", "mix", "progress2", "checkStringStartsWith", "token", "isCSSVariableName", "isCSSVariableToken", "cssVariableRegex", "test", "_a", "_b", "cssVarTokeniser", "colorTokeniser", "numberTokeniser", "tokenise", "info", "regex", "countKey", "parse", "matches", "analyseComplexValue", "originalValue", "parseComplexValue", "createTransformer", "source", "numColors", "numVars", "tokenised", "numValues", "output", "convertNumbersToZero", "getAnimatableNone", "parsed", "complex", "progress", "toFromDifference", "hueToRgb", "q", "hslaToRgba", "mixLinearColor", "fromExpo", "colorTypes", "getColorType", "asRGBA", "color2", "model", "mixColor", "fromRGBA", "toRGBA", "blended", "mixImmediate", "origin", "getMixer", "mixComplex", "mixArray", "blendValue", "fromThis", "mixObject", "template", "originStats", "targetStats", "mixNumber", "detectMixerFactory", "createMixers", "ease2", "customMixer", "mixers", "mixerFactory", "numMixers", "mixer", "easingFunction", "interpolate", "input", "isClamp", "inputLength", "interpolator", "progressInRange", "secondsToMilliseconds", "seconds", "millisecondsToSeconds", "milliseconds", "velocityPerSecond", "velocity", "frameDuration", "velocitySampleDuration", "calcGeneratorVelocity", "resolveValue", "current", "prevT", "safeMin", "minDuration", "maxDuration", "minDamping", "maxDamping", "findSpring", "duration", "bounce", "mass", "envelope", "derivative", "dampingRatio", "undampedFreq2", "exponentialDecay", "delta", "calcAngularFreq", "e", "f", "initialGuess", "undampedFreq", "approximateRoot", "stiffness", "rootIterations", "result", "durationKeys", "physicsKeys", "isSpringType", "keys2", "getSpringOptions", "springOptions", "derived", "spring", "keyframes2", "restDelta", "restSpeed", "damping", "isResolvedFromDuration", "initialVelocity", "initialDelta", "undampedAngularFreq", "isGranularScale", "resolveSpring", "angularFreq", "dampedAngularFreq", "freqForT", "isBelowVelocityThreshold", "isBelowDisplacementThreshold", "isEasingArray", "easingLookup", "easingDefinitionToFunction", "x1", "y1", "x2", "y2", "fillOffset", "offset", "remaining", "offsetProgress", "defaultOffset", "arr", "convertOffsetToTimes", "o", "defaultEasing", "keyframes", "keyframeValues", "times", "easingFunctions", "absoluteTimes", "mapTimeToKeyframe", "inertia", "power", "timeConstant", "bounceDamping", "bounceStiffness", "modifyTarget", "isOutOfBounds", "nearestBoundary", "amplitude", "ideal", "calcDelta", "calcLatest", "applyFriction", "latest", "timeReachedBoundary", "spring$1", "checkCatchBoundary", "hasUpdatedFrame", "frameloopDriver", "update", "passTimestamp", "maxGeneratorDuration", "calcGeneratorDuration", "generator", "timeStep", "types", "animateValue", "autoplay", "delay2", "driver", "keyframes$1", "repeat", "repeatDelay", "repeatType", "onPlay", "onStop", "onComplete", "onUpdate", "speed", "hasStopped", "resolveFinishedPromise", "currentFinishedPromise", "updateFinishedPromise", "resolve", "animationDriver", "generatorFactory", "mapNumbersToKeyframes", "mirroredGenerator", "playState", "holdTime", "startTime", "cancelTime", "calculatedDuration", "resolvedDuration", "totalDuration", "currentTime", "tick", "timeWithoutDelay", "isInDelayPhase", "elapsed", "frameGenerator", "currentIteration", "iterationProgress", "iterationIsOdd", "done", "isAnimationFinished", "finish", "stopAnimationDriver", "cancel", "play", "now", "controls", "reject", "newTime", "newSpeed", "addUniqueItem", "item", "removeItem", "moveItem", "fromIndex", "toIndex", "startIndex", "endIndex", "SubscriptionManager", "numSubscriptions", "isFloat", "collectMotionValues", "MotionValue", "render", "subscription", "unsubscribe", "eventManagers", "passiveEffect", "stopPassiveEffect", "prev", "startAnimation", "motionValue", "isNumericalString", "isZeroValueString", "maxDefaults", "applyDefaultFilter", "number2", "defaultValue", "functionRegex", "filter", "functions", "int", "numberValueTypes", "defaultValueTypes", "getDefaultValueType", "getAnimatableNone2", "defaultValueType", "testValueType", "auto", "dimensionValueTypes", "findDimensionValueType", "valueTypes", "findValueType", "getCurrent", "getVelocity", "resolveVariant", "setMotionValue", "setTarget", "setVariants", "variantLabels", "variant", "child", "setValues", "checkTargetForNewValues", "newValueKeys", "numNewValues", "targetValue", "getOriginFromTransition", "getOrigin", "transitionOrigin", "instantAnimationState", "isBezierDefinition", "isWaapiSupportedEasing", "supportedWaapiEasing", "cubicBezierAsString", "d", "mapEasingToNativeEasing", "animateStyle", "element", "valueName", "keyframeOptions", "getFinalKeyframe", "memo", "supportsWaapi", "acceleratedValues", "sampleDelta", "maxDuration2", "requiresPregeneratedKeyframes", "createAcceleratedAnimation", "sampleAnimation", "pregeneratedKeyframes", "animation", "cancelAnimation", "safeCancel", "timeline", "createInstantAnimation", "setValue", "underDampedSpring", "criticallyDampedSpring", "keyframesTransition", "ease", "getDefaultTransition", "valueKey", "isAnimatable", "isNone", "getKeyframes", "isTargetAnimatable", "defaultOrigin", "animatableTemplateValue", "noneKeyframeIndexes", "isTransitionDefined", "when", "_delay", "delayChildren", "staggerChildren", "staggerDirection", "getValueTransition", "animateMotionValue", "valueTransition", "originKeyframe", "targetKeyframe", "isOriginAnimatable", "acceleratedAnimation", "isWillChangeMotionValue", "shouldBlockAnimation", "protectedKeys", "needsAnimating", "shouldBlock", "hasKeyframesChanged", "animateTarget", "transitionOverride", "willChange", "animations2", "animationTypeState", "appearId", "canSkip", "animateVariant", "getAnimation", "getChildAnimations", "forwardDelay", "animateChildren", "first", "last", "maxStaggerDuration", "generateStaggerDuration", "sortByTreeOrder", "animateVisualElement", "resolvedDefinition", "shallowCompare", "next", "prevLength", "reversePriorityOrder", "numAnimationTypes", "animateList", "createAnimationState", "createState", "isInitialRender", "buildResolvedTypeValues", "setAnimateFunction", "makeAnimator", "animateChanges", "changedActiveType", "removedKeys", "encounteredKeys", "removedVariantIndex", "typeState", "propIsVariant", "activeDelta", "isInherited", "variantDidChange", "checkVariantsDidChange", "shouldAnimateType", "definitionList", "resolvedValues", "prevResolvedValues", "allKeys", "markToAnimate", "fallbackAnimation", "fallbackTarget", "shouldAnimate", "setActive", "isActive", "_a2", "createTypeState", "Feature", "node", "AnimationFeature", "prevAnimate", "id", "ExitAnimationFeature", "isPresent2", "onExitComplete", "prevIsPresent", "exitAnimation", "register", "animations", "distance", "distance2D", "xDelta", "yDelta", "calcLength", "axis", "isNear", "maxDistance", "calcAxisDelta", "calcBoxDelta", "calcRelativeAxis", "relative", "calcRelativeBox", "calcRelativeAxisPosition", "layout2", "calcRelativePosition", "createAxisDelta", "createDelta", "createAxis", "createBox", "usePresence", "id4", "ae", "compareByDepth", "a", "b", "FlatTree", "child", "addUniqueItem", "removeItem", "callback", "delay", "timeout", "start", "checkElapsed", "timestamp", "elapsed", "cancelFrame", "frame", "visualElementStore", "prefersReducedMotion", "hasReducedMotionListener", "initPrefersReducedMotion", "isBrowser", "window", "motionMediaQuery", "setReducedMotionPreferences", "updateMotionValuesFromProps", "element", "next", "prev", "willChange", "key", "nextValue", "prevValue", "isMotionValue", "isWillChangeMotionValue", "motionValue", "existingValue", "latestValue", "featureNames", "featureDefinitions", "numFeatures", "propEventHandlers", "numVariantProps", "variantProps", "VisualElement", "parent", "props", "presenceContext", "reducedMotionConfig", "visualState", "options", "latestValues", "renderState", "isControllingVariants", "isVariantNode", "initialMotionValues", "value", "_props", "_prevProps", "instance", "remove", "valueIsTransform", "transformProps", "removeOnChange", "removeOnRenderRequest", "other", "children", "renderedProps", "isStrict", "preloadedFeatures2", "initialLayoutGroupConfig", "ProjectionNodeConstructor", "MeasureLayout2", "i", "name", "isEnabled", "FeatureConstructor", "ProjectionNode", "MeasureLayoutComponent", "layoutId", "layout2", "drag2", "dragConstraints", "layoutScroll", "layoutRoot", "isRefObject", "feature", "createBox", "target", "canMutate", "listener", "startAtParent", "context2", "context", "prop", "isVariantLabel", "closestVariantNode", "unsubscribe", "defaultValue", "_a", "initial", "valueFromInitial", "resolveVariantFromProps", "eventName", "SubscriptionManager", "args", "createMotionProxy", "createConfig", "custom", "Component2", "customMotionComponentConfig", "createMotionComponent", "componentCache", "_target", "lowercaseSVGElements", "isSVGComponent", "isForcedMotionValue", "scaleCorrectors", "getValueAsType", "type", "buildHTMLStyles", "state", "transformTemplate", "style", "vars", "transform2", "transformOrigin", "hasTransform2", "hasTransformOrigin", "transformIsNone", "isCSSVariableName", "valueType", "numberValueTypes", "valueAsType", "buildTransform", "originX", "originY", "originZ", "createHtmlRenderState", "copyRawValuesOnly", "source", "useInitialMotionValues", "isStatic", "se", "useStyle", "styleProp", "useHTMLProps", "htmlProps", "calcOrigin", "origin", "offset", "size", "px", "calcSVGTransformOrigin", "dimensions", "pxOriginX", "pxOriginY", "dashKeys", "camelKeys", "buildSVGPath", "attrs", "length", "spacing", "useDashCase", "keys2", "pathLength", "pathSpacing", "buildSVGAttrs", "attrX", "attrY", "attrScale", "pathOffset", "latest", "isSVGTag2", "createSvgRenderState", "isSVGTag", "tag", "useSVGProps", "_isStatic", "visualProps", "rawStyles", "createUseRender", "forwardMotionProps", "ref", "elementProps", "filterProps", "renderedChildren", "B", "renderHTML", "projection", "camelCaseAttributes", "renderSVG", "_styleProp", "camelToDash", "scrapeMotionValuesFromProps", "prevProps", "newValues", "scrapeMotionValuesFromProps2", "targetKey", "transformPropOrder", "svgMotionConfig", "makeUseVisualState", "htmlMotionConfig", "createDomMotionConfig", "createVisualElement2", "addHoverEvent", "node", "isActive", "callbackName", "handleEvent", "event", "info", "isDragActive", "addPointerEvent", "HoverGesture", "Feature", "pipe", "FocusGesture", "isFocusVisible", "addDomEvent", "isNodeOrChild", "fireSyntheticPointerEvent", "handler", "syntheticPointerEvent", "extractEventInfo", "PressGesture", "noop", "startEvent", "startInfo", "removePointerUpListener", "endEvent", "endInfo", "onTap", "onTapCancel", "removePointerCancelListener", "cancelEvent", "cancelInfo", "handleKeydown", "keydownEvent", "handleKeyup", "keyupEvent", "removeKeydownListener", "handleBlur", "removeBlurListener", "onTapStart", "whileTap", "removePointerListener", "removeFocusListener", "observerCallbacks", "observers", "fireObserverCallback", "entry", "fireAllObserverCallbacks", "entries", "initIntersectionObserver", "root", "lookupRoot", "rootObservers", "observeIntersection", "rootInteresectionObserver", "thresholdNames", "InViewFeature", "viewport", "rootMargin", "amount", "once", "onIntersectionUpdate", "isIntersecting", "onViewportEnter", "onViewportLeave", "hasViewportOptionChanged", "prevViewport", "gestureAnimations", "PanSession", "handlers", "transformPagePoint", "contextWindow", "info2", "getPanInfo", "isPanStarted", "isDistancePastThreshold", "distance2D", "point3", "timestamp2", "frameData", "onStart", "onMove", "event2", "transformPoint", "onEnd", "onSessionEnd", "panInfo", "isPrimaryPointer", "initialInfo", "point2", "onSessionStart", "subtractPoint", "history", "lastDevicePoint", "startDevicePoint", "getVelocity2", "timeDelta", "timestampedPoint", "lastPoint", "secondsToMilliseconds", "time", "millisecondsToSeconds", "currentVelocity", "applyConstraints", "min", "max", "elastic", "mix", "calcRelativeAxisConstraints", "axis", "calcRelativeConstraints", "layoutBox", "top", "left", "bottom", "right", "calcViewportAxisConstraints", "layoutAxis", "constraintsAxis", "calcViewportConstraints", "constraintsBox", "calcOrigin2", "sourceLength", "calcLength", "targetLength", "progress", "clamp", "rebaseAxisConstraints", "constraints", "relativeConstraints", "defaultElastic", "resolveDragElastic", "dragElastic", "resolveAxisElastic", "minLabel", "maxLabel", "resolvePointElastic", "label", "eachAxis", "convertBoundingBoxToBox", "convertBoxToBoundingBox", "x", "y", "transformBoxPoints", "transformPoint2", "topLeft", "bottomRight", "isIdentityScale", "scale2", "hasScale", "scaleX", "scaleY", "hasTransform", "values", "has2DTranslate", "is2DTranslate", "scalePoint", "originPoint", "distanceFromOrigin", "scaled", "applyPointDelta", "translate", "boxScale", "applyAxisDelta", "applyBoxDelta", "box", "applyTreeDeltas", "treeScale", "treePath", "isSharedTransition", "treeLength", "delta", "transformBox", "snapToDefault", "translateAxis", "distance2", "transformAxis", "transforms", "scaleKey", "originKey", "axisOrigin", "xKeys", "yKeys", "measureViewportBox", "measurePageBox", "rootProjectionNode2", "viewportBox", "scroll2", "getContextWindow", "current", "elementDragControls", "VisualElementDragControls", "visualElement", "originEvent", "snapToCursor", "dragPropagation", "onDragStart", "getGlobalLock", "percent", "measuredAxis", "animationState", "dragDirectionLock", "onDirectionLock", "onDrag", "getCurrentDirection", "isDragging", "velocity", "onDragEnd", "_point", "shouldDrag", "axisValue", "prevConstraints", "onMeasureDragConstraints", "constraintsElement", "invariant", "measuredConstraints", "userConstraints", "dragMomentum", "dragTransition", "dragSnapToOrigin", "onDragTransitionEnd", "momentumAnimations", "transition", "bounceStiffness", "bounceDamping", "inertia2", "animateMotionValue", "dragKey", "externalMotionValue", "boxProgress", "stopPointerListener", "dragListener", "measureDragConstraints", "stopMeasureLayoutListener", "stopResizeListener", "stopLayoutUpdateListener", "hasLayoutChanged", "motionValue2", "direction", "currentDirection", "lockThreshold", "DragGesture", "dragControls", "asyncHandler", "PanGesture", "pointerDownEvent", "onPanSessionStart", "onPanStart", "onPan", "onPanEnd", "globalProjectionState", "pixelsToPercent", "pixels", "correctBorderRadius", "correctBoxShadow", "projectionDelta", "original", "shadow", "complex", "template", "xScale", "yScale", "averageScale", "MeasureLayoutWithContext", "e", "layoutGroup", "switchLayoutGroup", "addScaleCorrector", "defaultScaleCorrectors", "layoutDependency", "isPresent2", "stack", "promoteContext", "safeToRemove", "MeasureLayout", "usePresence", "re", "LayoutGroupContext", "SwitchLayoutGroupContext", "borders", "numBorders", "asNumber", "isPx", "mixValues", "follow", "lead", "progress2", "shouldCrossfadeOpacity", "isOnlyMember", "easeCrossfadeIn", "easeCrossfadeOut", "borderLabel", "followRadius", "getRadius", "leadRadius", "radiusName", "compress", "circOut", "easing", "p", "copyAxisInto", "originAxis", "copyBoxInto", "originBox", "removePointDelta", "removeAxisDelta", "sourceAxis", "removeAxisTransforms", "xKeys2", "yKeys2", "removeBoxTransforms", "sourceBox", "isAxisDeltaZero", "isDeltaZero", "boxEquals", "boxEqualsRounded", "aspectRatio", "NodeStack", "prevLead", "indexOfNode", "member", "preserveFollowOpacity", "crossfade", "resumingFrom", "buildProjectionTransform", "latestTransform", "xTranslate", "yTranslate", "rotate", "rotateX", "rotateY", "elementScaleX", "elementScaleY", "record", "data", "isSVGElement", "animateSingleValue", "keyframes2", "motionValue$1", "transformAxes", "hiddenVisibility", "animationTarget", "id2", "projectionFrameData", "createProjectionNode", "attachResizeListener", "defaultParent", "measureScroll", "checkIsScrollRoot", "resetTransform", "propagateDirtyNodes", "resolveTargetDelta", "calcProjection", "cleanDirtyNodes", "subscriptionManager", "isLayoutDirty", "cancelDelay", "resizeUnblockUpdate", "finishAnimation", "hasRelativeTargetChanged", "newLayout", "layoutTransition", "defaultLayoutTransition", "onLayoutAnimationStart", "onLayoutAnimationComplete", "targetChanged", "hasOnlyRelativeTargetChanged", "animationOptions", "getValueTransition", "resetRotation", "shouldNotifyListeners", "clearMeasurements", "clearIsLayoutDirty", "resetTransformStyle", "updateLayout", "notifyLayoutUpdate", "now", "steps", "clearSnapshot", "removeLeadSnapshots", "prevLayout", "phase", "needsMeasurement", "isResetRequested", "hasProjection", "transformTemplateValue", "transformTemplateHasChanged", "removeTransform", "pageBox", "roundBox", "boxWithoutScroll", "rootScroll", "transformOnly", "withTransforms", "boxWithoutTransform", "nodeBox", "forceRecalculation", "isShared", "relativeParent", "calcRelativePosition", "calcRelativeBox", "canSkip", "prevTreeScaleX", "prevTreeScaleY", "createDelta", "prevProjectionTransform", "calcBoxDelta", "notifyAll2", "snapshot", "snapshotLatestValues", "mixedValues", "targetDelta", "relativeLayout", "snapshotSource", "layoutSource", "isSharedLayoutAnimation", "hasOpacityCrossfade", "prevRelativeTarget", "mixAxisDelta", "mixBox", "targetWithTransforms", "shouldAnimatePositionOnly", "xLength", "yLength", "config", "needsReset", "hasRotate", "resetValues", "_b", "styles", "resolveMotionValue", "emptyStyles", "valuesToRender", "correct", "applyTo", "corrected", "num", "measuredLayout", "animationType", "axisSnapshot", "layoutDelta", "visualDelta", "parentSnapshot", "parentLayout", "relativeSnapshot", "onExitComplete", "output", "mixAxis", "from", "to", "userAgentContains", "string", "navigator", "roundPoint", "roundAxis", "isNear", "DocumentProjectionNode", "notify2", "rootProjectionNode", "HTMLProjectionNode", "documentNode", "drag", "splitCSSVariableRegex", "parseCSSVariable", "match", "token", "fallback", "maxDepth", "getVariableValue", "depth", "resolved", "trimmed", "isNumericalString", "isCSSVariableToken", "resolveCSSVariables", "transitionEnd", "positionalKeys", "isPositionalKey", "hasPositionalKey", "isNumOrPxType", "v", "number", "getPosFromMatrix", "matrix", "pos", "getTranslateFromMatrix", "pos2", "pos3", "_bbox", "matrix3d", "transformKeys", "nonTranslationalTransformKeys", "removeNonTranslationalTransform", "removedTransforms", "positionalValues", "paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "convertChangedValueTypes", "changedKeys", "originBbox", "elementComputedStyle", "display", "targetBbox", "checkAndConvertChangedValueTypes", "targetPositionalKeys", "removedTransformValues", "hasAttemptedToRemoveTransformValues", "changedValueTypeKeys", "fromType", "findDimensionValueType", "toType", "isKeyframesTarget", "numKeyframes", "fromIndex", "scrollY", "convertedTarget", "unitConversion", "parseDomVariant", "DOMVisualElement", "transformValues", "isMounted", "getOrigin", "checkTargetForNewValues", "parsed", "getComputedStyle2", "HTMLVisualElement", "defaultType", "getDefaultValueType", "computedStyle", "SVGVisualElement", "createDomVisualElement", "layout", "preloadedFeatures", "animations", "motion", "m", "createMotionProxy", "createDomMotionConfig", "useIsMounted", "isMounted", "pe", "useIsomorphicLayoutEffect", "useForceUpdate", "forcedRenderCount", "setForcedRenderCount", "ye", "forceRender", "te", "frame", "useUnmountEffect", "callback", "ue", "PopChildMeasure", "I", "prevProps", "element", "size", "PopChild", "children", "isPresent2", "id4", "ae", "ref", "ie", "width", "height", "top", "left", "style", "B", "q", "PresenceChild", "initial", "onExitComplete", "custom", "presenceAffectsLayout", "mode", "presenceChildren", "useConstant", "newChildrenMap", "context", "se", "childId", "isComplete", "_", "key", "PresenceContext", "getChildKey", "child", "updateChildLookup", "allChildren", "onlyElements", "filtered", "j", "J", "AnimatePresence", "exitBeforeEnter", "invariant", "re", "LayoutGroupContext", "filteredChildren", "childrenToRender", "exitingChildren", "presentChildren", "isInitialRender", "x", "presentKeys", "targetKeys", "numPresent", "i", "component", "insertionIndex", "exitingComponent", "onExit", "leftOverKeys", "childKey", "leftOverKey", "presentChild", "presentChildKey", "MotionConfig", "isValidProp", "config", "loadExternalIsValidProp", "MotionConfigContext", "DeprecatedLayoutGroupContext", "z", "notify", "node", "nodeGroup", "nodes", "subscriptions", "dirtyAll", "unsubscribe", "shouldInheritGroup", "inherit", "shouldInheritId", "LayoutGroup", "children", "id4", "layoutGroupContext", "re", "LayoutGroupContext", "deprecatedLayoutGroupContext", "forceRender", "key", "useForceUpdate", "context", "pe", "upstreamId", "memoizedContext", "se", "B", "useMotionValue", "initial", "value", "useConstant", "motionValue", "isStatic", "MotionConfigContext", "setLatest", "ye", "ue", "isCustomValueType", "v", "getMixer2", "transform", "args", "useImmediate", "argOffset", "inputValue", "inputRange", "outputRange", "options", "interpolator", "interpolate", "useCombineMotionValues", "values", "combineValues", "updateValue", "useIsomorphicLayoutEffect", "scheduleUpdate", "frame", "cancelFrame", "useComputed", "compute", "collectMotionValues", "useTransform", "input", "inputRangeOrTransformer", "transformer", "useListTransform", "latest", "numValues", "ReorderContext", "checkReorder", "order", "offset", "velocity", "index", "item2", "nextOffset", "nextItem", "item", "nextLayout", "nextItemCenter", "mix", "moveItem", "ReorderGroup", "as", "axis", "onReorder", "props", "externalRef", "Component2", "motion", "isReordering", "invariant", "layout2", "idx", "entry", "compareMin", "newOrder", "getValue", "Group", "Y", "a", "b", "useDefaultMotionValue", "defaultValue", "isMotionValue", "ReorderItem", "style", "onDrag", "point2", "zIndex", "latestX", "latestY", "registerItem", "updateOrder", "event", "gesturePoint", "measured", "Item", "domAnimation", "createDomVisualElement", "animations", "gestureAnimations", "domMax", "drag", "layout", "resolveElements", "elements", "scope", "selectorCache", "_a", "root", "invariant", "resizeHandlers", "observer", "getElementSize", "target", "borderBoxSize", "inlineSize", "blockSize", "notifyTarget", "contentRect", "handler", "notifyAll", "entries", "createResizeObserver", "resizeElement", "element", "elementHandlers", "windowCallbacks", "windowResizeHandler", "createWindowResizeHandler", "size", "window", "info", "callback", "resizeWindow", "resize", "a", "b", "maxElapsed2", "createAxisInfo", "createScrollInfo", "keys", "updateAxisInfo", "axisName", "time", "axis", "length", "position", "prev", "prevTime", "progress", "elapsed", "velocityPerSecond", "updateScrollInfo", "calcInset", "container", "inset", "current", "svgBoundingBox", "parentBoundingBox", "x", "y", "svg", "parent", "ScrollOffset", "namedEdges", "resolveEdge", "edge", "delta", "asNumber2", "defaultOffset2", "resolveOffset", "offset", "containerLength", "targetLength", "targetInset", "offsetDefinition", "targetPoint", "containerPoint", "point", "getTargetSize", "resolveOffsets", "options", "lengthLabel", "targetSize", "containerSize", "hasChanged", "numOffsets", "i", "interpolate", "defaultOffset", "measure", "node", "createOnScrollHandler", "onScroll", "scrollListeners", "resizeListeners", "onScrollHandlers", "getEventTarget", "scrollInfo", "containerHandlers", "containerHandler", "measureAll", "updateAll", "frameData", "notifyAll2", "listener2", "frame", "listener", "cancelFrame", "currentHandlers", "scrollListener", "refWarning", "name", "ref", "warning", "createScrollMotionValues", "motionValue", "useScroll", "layoutEffect", "values", "useConstant", "useIsomorphicLayoutEffect", "ue", "useAnimationFrame", "callback", "initialTimestamp", "pe", "isStatic", "re", "MotionConfigContext", "ue", "provideTimeSinceStart", "timestamp", "delta", "frame", "cancelFrame", "useReducedMotion", "hasReducedMotionListener", "initPrefersReducedMotion", "shouldReduceMotion", "ye", "prefersReducedMotion", "useReducedMotionConfig", "reducedMotionPreference", "reducedMotion", "re", "MotionConfigContext", "stopAnimation", "visualElement", "value", "animationControls", "hasMounted", "subscribers", "controls", "definition", "transitionOverride", "invariant", "animations2", "animateVisualElement", "setValues", "wrap", "min", "max", "v", "rangeSize", "observeTimeline", "update", "timeline", "prevProgress", "onFrame", "currentTime", "progress2", "frame", "cancelFrame", "supportsScrollTimeline", "memo", "window", "GroupPlaybackControls", "onResolve", "onReject", "propName", "newValue", "i", "cancelAll", "animation", "cancelTimeline", "time", "speed", "methodName", "isDOMKeyframes", "keyframes2", "createVisualElement", "element", "options", "node", "isSVGElement", "SVGVisualElement", "HTMLVisualElement", "visualElementStore", "createGeneratorEasing", "scale2", "generator", "spring", "duration", "calcGeneratorDuration", "maxGeneratorDuration", "millisecondsToSeconds", "calcNextTime", "current", "next", "prev", "labels", "_a", "getEasingForSegment", "easing", "isEasingArray", "eraseKeyframes", "sequence", "startTime", "endTime", "keyframe", "removeItem", "addKeyframes", "offset", "mix", "compareByTime", "a", "b", "defaultSegmentEasing", "createAnimationsFromSequence", "defaultTransition", "sequenceTransition", "scope", "defaultDuration", "animationDefinitions", "sequences", "elementCache", "timeLabels", "prevTime", "totalDuration", "segment", "subject", "transition", "maxDuration3", "resolveValueSequence", "valueKeyframes", "valueTransition", "valueSequence", "elementIndex", "numElements", "valueKeyframesAsList", "keyframesAsList", "delay2", "times", "defaultOffset", "type", "remainingTransition", "ease2", "calculatedDelay", "numKeyframes", "absoluteDelta", "isNumberKeyframesArray", "delta", "springTransition", "secondsToMilliseconds", "springEasing", "targetTime", "remainder", "fillOffset", "isMotionValue", "subjectSequence", "getSubjectSequence", "getValueSequence", "elements", "resolveElements", "key", "getValueTransition2", "valueSequences", "valueOffset", "valueEasing", "at", "progress", "name", "isNumber", "animateElements", "elementOrSelector", "animateTarget", "isSequence", "animateSequence", "animateSingleValue", "createScopedAnimate", "scopedAnimate", "valueOrElementOrSequence", "animate", "useAnimationControls", "controls", "useConstant", "animationControls", "useIsomorphicLayoutEffect", "useAnimation", "thresholds", "inView", "elementOrSelector", "onStart", "root", "rootMargin", "amount", "elements", "resolveElements", "activeIntersections", "onIntersectionChange", "entries", "entry", "onEnd", "newOnEnd", "observer2", "element", "useInView", "ref", "margin", "once", "isInView", "setInView", "ye", "ue", "onEnter", "options", "isMotionComponent", "component", "motionComponentSymbol", "unwrapMotionComponent", "useInstantLayoutTransition", "startTransition", "callback", "rootProjectionNode", "useInstantTransition", "forceUpdate", "forcedRenderCount", "useForceUpdate", "startInstantLayoutTransition", "unlockOnFrameRef", "pe", "ue", "frame", "instantAnimationState", "useResetProjection", "te", "root", "rootProjectionNode", "createObject", "useVisualState", "makeUseVisualState", "createObject", "cancelSync", "stepsOrder", "acc", "key", "process2", "cancelFrame", "npm_react_dom_18_2_exports", "__export", "$a", "Ga", "Ja", "Ha", "ai", "Si", "Ni", "_i", "Pi", "Qi", "Xi", "eu", "nu", "npm_scheduler_0_23_exports", "__export", "e", "F", "E", "N", "j", "q", "B", "U", "W", "Y", "D", "z", "A", "L", "O", "Q", "S", "V", "X", "Z", "e", "f", "n", "t", "a", "l", "g", "h", "k", "r", "i", "u", "o", "s", "c", "b", "d", "_", "v", "navigator", "G", "H", "I", "J", "K", "m", "M", "p", "y", "w", "P", "R", "x", "C", "T", "L", "F", "E", "N", "j", "q", "B", "U", "W", "Y", "D", "z", "A", "O", "Q", "S", "V", "X", "Z", "u", "npm_react_18_2_exports", "e", "o", "npm_scheduler_0_23_exports", "s", "w", "x", "p", "a", "i", "C", "z", "fa", "ha", "N", "window", "_", "j", "P", "T", "oa", "pa", "qa", "v", "M", "F", "sa", "ta", "R", "O", "I", "U", "V", "A", "B", "H", "$", "K", "Y", "Z", "X", "ee", "le", "Ka", "ae", "ie", "Ma", "ce", "Oa", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "ab", "bb", "cb", "db", "fe", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "de", "pe", "ob", "be", "ye", "rb", "sb", "we", "ub", "vb", "Se", "xb", "xe", "ze", "_e", "Bb", "Cb", "Db", "Eb", "Fb", "Gb", "Hb", "Pe", "Jb", "Kb", "Te", "Re", "Nb", "We", "Qe", "He", "$e", "Ye", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "qe", "Xe", "en", "nn", "tn", "rn", "ln", "an", "un", "on", "sn", "cn", "fn", "mc", "dn", "nc", "pn", "hn", "gn", "mn", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "Ac", "Bc", "Cc", "vn", "Dc", "bn", "yn", "kn", "wn", "Sn", "En", "xn", "Cn", "zn", "Nn", "Ln", "_n", "jn", "Pn", "Sc", "Tc", "Uc", "Vc", "Wc", "Xc", "Yc", "Zc", "$c", "ad", "bd", "b", "Tn", "Dn", "ed", "fd", "gd", "hd", "Mn", "jd", "Fn", "Rn", "On", "nd", "od", "pd", "qd", "rd", "In", "Un", "Vn", "Wn", "Qn", "An", "Bn", "Hn", "zd", "$n", "Kn", "Yn", "Zn", "Gn", "qn", "Xn", "Jn", "et", "nt", "tt", "rt", "lt", "at", "Pd", "it", "ut", "ot", "st", "ct", "ft", "dt", "pt", "ht", "gt", "mt", "vt", "bt", "yt", "kt", "wt", "St", "ge", "he", "Et", "je", "ke", "xt", "me", "ne", "oe", "Ct", "zt", "re", "se", "te", "ue", "ve", "Nt", "_t", "jt", "Lt", "Ae", "Be", "Ce", "De", "Ee", "Fe", "Ge", "Pt", "Ie", "Je", "Ke", "Le", "Me", "Ne", "Oe", "Tt", "Dt", "Mt", "Ft", "Rt", "Ue", "Ve", "Ot", "It", "Ut", "Ze", "Vt", "Wt", "Qt", "At", "Bt", "Ht", "ff", "$t", "Kt", "Yt", "Zt", "Gt", "qt", "nf", "D", "fr", "pf", "qf", "Xt", "sf", "tf", "cr", "vf", "wf", "Jt", "er", "zf", "Af", "Bf", "nr", "tr", "Ef", "rr", "lr", "ar", "ir", "If", "Kf", "Lf", "Mf", "ur", "or", "sr", "dr", "pr", "hr", "gr", "Uf", "E", "G", "mr", "vr", "br", "yr", "Yf", "Zf", "$f", "ag", "bg", "cg", "dg", "kr", "wr", "Sr", "hg", "ig", "jg", "Er", "xr", "Cr", "zr", "Nr", "Lr", "_r", "jr", "Pr", "tg", "ug", "vg", "wg", "Tr", "Dr", "Mr", "Fr", "Ag", "Bg", "Cg", "Dg", "Eg", "Fg", "Gg", "Hg", "Ig", "Jg", "Rr", "Lg", "Or", "Ir", "Ur", "Vr", "Qg", "Rg", "Sg", "Tg", "Tl", "Vg", "Wr", "Xg", "Yg", "Zg", "Qr", "ah", "bh", "ch", "dh", "Zl", "eh", "fh", "gh", "aa", "ih", "Ar", "kh", "Br", "L", "lh", "mh", "oh", "ph", "qh", "rh", "sh", "th", "uh", "vh", "c", "d", "wh", "f", "g", "h", "xh", "k", "m", "yh", "l", "zh", "Ah", "q", "r", "y", "n", "t", "J", "Hr", "$r", "Kr", "Yr", "Zr", "Gr", "Hh", "Ih", "Jh", "Kh", "Lh", "qr", "Mh", "Xr", "Oh", "Jr", "tl", "ll", "ul", "vl", "yl", "wl", "Sl", "El", "xl", "Q", "Wh", "Xh", "zl", "Nl", "Ll", "Cl", "bi", "ci", "di", "ei", "fi", "gi", "hi", "ii", "ji", "ki", "li", "mi", "Gl", "ni", "oi", "pi", "qi", "ri", "si", "ti", "ui", "vi", "wi", "xi", "yi", "zi", "Ai", "Bi", "Ci", "Di", "Ei", "Fi", "Gi", "Hi", "Ii", "Ji", "Ki", "Li", "Mi", "_l", "Oi", "ba", "ya", "Ri", "ka", "Ti", "Ui", "Vi", "Wi", "Pl", "Yi", "Zi", "$i", "aj", "bj", "cj", "dj", "ej", "na", "ea", "hj", "ij", "jj", "kj", "lj", "mj", "Dl", "oj", "pj", "qj", "rj", "sj", "tj", "uj", "vj", "wj", "xj", "yj", "zj", "Ml", "Fl", "Rl", "Ol", "Ej", "S", "Fj", "Gj", "ra", "ma", "Ij", "Jj", "Il", "Ul", "Vl", "Wl", "Mj", "W", "Nj", "Ql", "Pj", "Qj", "Rj", "Sj", "Tj", "Uj", "Vj", "Wj", "Xj", "Al", "Bl", "Zj", "ak", "bk", "ck", "dk", "ek", "fk", "ga", "hk", "ik", "jk", "kk", "lk", "Hl", "$l", "Kl", "Yl", "Xl", "Jl", "la", "ia", "ua", "ca", "da", "va", "wa", "Ea", "xa", "Ca", "za", "Na", "La", "Dk", "Ek", "Fk", "Gk", "Hk", "Ik", "Jk", "Kk", "Lk", "Mk", "Nk", "Ok", "Pk", "Qk", "Rk", "Sk", "Tk", "Uk", "Vk", "_a", "Xk", "Yk", "Zk", "$k", "al", "bl", "cl", "dl", "el", "fl", "gl", "hl", "il", "jl", "kl", "ja", "ml", "nl", "ol", "pl", "ql", "rl", "sl", "Da", "Fa", "Ia", "Aa", "checkDCE", "Ba", "Ha", "$a", "Ga", "Ja", "ai", "Si", "Ni", "_i", "Pi", "Qi", "Xi", "eu", "nu", "require_hsluv", "__commonJS", "exports", "module", "hsluv", "a", "b", "x", "y", "point", "line", "slope", "intercept", "angle", "m2", "theta", "L", "result", "sub1", "sub2", "_g", "m1", "m3", "_g1", "t", "top1", "top2", "bottom", "bounds", "min", "bound", "length", "H", "hrad", "sum", "i", "c", "tuple", "rgbl", "Y", "X", "Z", "divider", "varU", "varV", "U", "V", "C", "Hrad", "S", "max", "h", "chan", "digit2", "digit1", "hex", "ret", "n", "s", "root", "require_eventemitter3", "has", "prefix2", "Events", "EE", "fn", "context", "once", "addListener", "emitter", "event", "listener", "evt", "clearEvent", "EventEmitter2", "names", "events2", "name", "handlers", "l", "ee", "listeners", "a1", "a2", "a3", "a4", "a5", "len", "args", "j", "require_browser", "process6", "cachedSetTimeout", "cachedClearTimeout", "defaultSetTimout", "defaultClearTimeout", "runTimeout", "fun", "runClearTimeout", "marker", "queue", "draining", "currentQueue", "queueIndex", "cleanUpNextTick", "drainQueue", "timeout", "Item", "array", "noop", "dir", "require_react_is_production_min", "d", "e", "f", "g", "k", "p", "q", "r", "v", "w", "z", "u", "A", "require_react_is", "require_hoist_non_react_statics_cjs", "reactIs", "REACT_STATICS", "KNOWN_STATICS", "FORWARD_REF_STATICS", "MEMO_STATICS", "TYPE_STATICS", "getStatics", "component", "defineProperty", "getOwnPropertyNames", "getOwnPropertySymbols", "getOwnPropertyDescriptor", "getPrototypeOf", "objectPrototype", "hoistNonReactStatics", "targetComponent", "sourceComponent", "blacklist", "inheritedComponent", "keys3", "targetStatics", "sourceStatics", "key7", "descriptor", "require_fontfaceobserver_standalone", "B", "D", "E", "F", "G", "J", "window", "K", "b2", "M", "b3", "c2", "N", "I", "renderPage", "Page4", "defaultPageStyle", "NotFoundError", "ErrorBoundary", "props", "error", "nextProps", "prevState", "newState", "notFoundPage", "useGetRouteCallback", "routes", "routeId", "RouterContext", "RouterAPIProvider", "api", "children", "useRouter", "RoutesProvider", "getRoute", "pathVariablesRegExpRaw", "pathVariablesRegExp", "fillPathVariables", "path", "variables", "match", "value", "computeRelativePath", "from", "to", "fromDir", "getDirAndFile", "toDir", "toFile", "relativePath", "relative", "index", "CHAR_DOT", "CHAR_FORWARD_SLASH", "StringPrototypeCharCodeAt", "str", "StringPrototypeLastIndexOf", "searchString", "StringPrototypeSlice", "start", "end", "normalizeString", "fromStart", "fromEnd", "fromLen", "toStart", "toLen", "lastCommonSep", "fromCode", "out", "allowAboveRoot", "separator", "isPathSeparator", "code", "res", "lastSegmentLength", "lastSlash", "dots", "lastSlashIndex", "isObject", "isString", "preloadKey", "isLazyComponentType", "componentType", "lazy", "factory", "LazyComponent", "factoryPromise", "LoadedComponent", "Component14", "ref", "getRouteElementId", "route", "hash2", "replacePathVariables", "currentLocale", "nextLocale", "collectionId", "pathVariables", "collectionUtils", "_a", "_b", "_c", "resultPath", "resultPathVariables", "matches", "replacements", "_a2", "pathVariableWithDelimiter", "pathVariableValue", "currentSlug", "utils", "recordId", "nextSlug", "lastIndex", "replacedPath", "hasMatch", "replacement", "getLocalizedNavigationPath", "pathReplacement", "defaultSitePageEffects", "PageEffectsContext", "PageEffectsProvider", "usePageEffects", "getPageEffectForRoute", "currentRouteId", "nextRouteId", "global2", "step", "maxDuration", "createLinearEasing", "generator", "time2", "state", "keyframes", "cssVariable", "parseUnit", "calcMaskPosition", "mask", "innerWidth", "innerHeight", "xUnit", "yUnit", "conic", "progress2", "page", "percentage", "offsetToken", "isTransparentToBlack", "firstColor", "secondColor", "gradient", "circle", "inset", "right", "blinds", "unit", "width", "widthToken", "wipe", "_mask", "offset", "maskGenerators", "restState", "valuesToCSSKeyframes", "values", "maskGenerator", "getMaskGenerator", "type", "createPageTransitionRules", "transition", "settings", "easing", "duration", "spring", "startKeyframes", "endKeyframes", "VIEW_TRANSITION_STYLES_ID", "defaultPageTransition", "createViewTransitionStylesheet", "exit", "enter", "styleElement", "styleContent", "removeViewTransitionStylesheet", "frame", "element", "supportsViewTransitions", "startViewTransition", "updateView", "effect", "useViewTransition", "sitePageEffects", "resolveHasPainted", "pe", "ue", "te", "update", "pageEffect", "hasPainted", "resolve", "pushRouteState", "currentRoutePath", "localeId", "newPath", "getPathForRoute", "pushHistoryState", "replaceHistoryState", "data2", "url", "useReplaceInitialState", "disabled", "initialPathVariables", "initialLocaleId", "usePopStateHandler", "setCurrentRouteId", "startViewTransition2", "viewTransitionReady", "popStateHandler", "changeRoute", "traversalHandler", "reject", "getHashForRoute", "hashVariables", "resolvedHash", "p1", "relative2", "currentPath", "switchLocale", "options", "isSamePage", "aPathVariables", "bPathVariables", "useForceUpdate2", "_", "setForcedRenderCount", "noopAsync", "defaultLocaleInfo", "LocaleInfoContext", "useLocaleInfo", "useLocaleCode", "_a", "_b", "useLocaleInfo", "updateScrollPosition", "hash2", "smoothScroll", "isHistoryTransition", "element", "scrollElementIntoView", "window", "useScheduleRenderSideEffects", "dep", "actions", "e", "_a", "action", "cb", "Router", "defaultPageStyle", "disableHistory", "initialPathVariables", "initialRoute", "notFoundPage", "collectionUtils", "routes", "initialLocaleId", "locales", "useReplaceInitialState", "startViewTransition2", "useViewTransition", "currentRouteRef", "currentPathVariablesRef", "currentLocaleIdRef", "currentLocaleId", "activeLocale", "id", "slug", "forceUpdate", "useForceUpdate2", "localeInfo", "localeOrLocaleId", "localeId", "isString", "isObject", "nextLocale", "currentRouteId2", "currentRoute", "localeResult", "switchLocale", "Z", "scheduleSideEffect", "setCurrentRouteId", "routeId", "pathVariables", "usePopStateHandler", "navigate", "_b", "newRoute", "inUse", "path", "match", "pathVariablesRegExp", "usedVariable", "key7", "routeElementId", "getRouteElementId", "isSamePage", "route", "pushRouteState", "changeRoute", "getRoute", "useGetRouteCallback", "currentRouteId", "currentPathVariables", "api", "current", "pathWithFilledVariables", "fillPathVariables", "remountKey", "RouterAPIProvider", "LocaleInfoContext", "ErrorBoundary", "renderPage", "scrollIntoViewOptions", "memoPathRoutes", "memoPaths", "lastRoutes", "getRouteInfoMemo", "pathDepth", "depth1", "depth2", "inferInitialRouteFromPath", "decodedLocationPath", "fallback", "pathRoutes", "paths", "locationPath", "firstPathSegment", "defaultLocale", "exactMatch", "matchPath", "rootPath", "firstRoute", "pathWithTrimmedSlashes", "routePath", "pathVariablesKeys", "routePathRegExpString", "escapeStringRegExp", "_", "name", "routePathRegExp", "matches", "pathVariablesValues", "i", "value", "existingValue", "string", "key", "isRoute", "CurrentRouteContext", "useCurrentRoute", "router", "useRouter", "override", "re", "useCurrentPathVariables", "_a", "useCurrentRoute", "useRoute", "routeId", "routerAPI", "useRouter", "useRoutePreloader", "routeIds", "enabled", "getRoute", "e", "route", "preloadComponent", "component", "isLazyComponentType", "useRouteElementId", "id", "targetRouteId", "_a", "currentRoute", "useCurrentRoute", "route", "useRoute", "e", "getRouteElementId", "warningMessages", "warnOnce", "keyMessage", "rest", "deprecationWarning", "removedItem", "removalVersion", "replacement", "replacementText", "warningText", "Observers", "observer", "isCalled", "change", "transaction", "accumulatedChange", "finishObservers", "Animatable", "Animatable2", "value", "isAnimatable", "AnimatableValue", "update", "transactionId", "updatedValues", "animatable", "finish", "defaultValue", "object", "result", "key7", "onUpdateKey", "finishTransactionKey", "animatableInterpolation", "currentInterpolation", "from", "to", "fromValue", "toValue", "progress2", "v", "oldValue", "handler", "roundedNumber", "decimals", "d", "multiplier", "roundWithOffset", "value", "offset", "Point", "x", "y", "Point3", "args", "previousValue", "currentValue", "a", "b", "point", "deltaX", "deltaY", "lastValue", "diff", "maxDiff", "nTimes", "center", "insidePoints", "points", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "isInside", "i", "j", "xi", "yi", "xj", "yj", "minDamping", "SpringTensionFrictionDefaults", "import_hsluv", "__toESM", "require_hsluv", "cssNames", "modulate", "value", "rangeA", "rangeB", "limit", "fromLow", "fromHigh", "toLow", "toHigh", "fromDelta", "toDelta", "result", "isNumeric", "percentToFraction", "val", "digits", "numberFromString", "input", "match", "hsluvToRgb", "rgbToHsluvExternal", "import_hsluv", "rgbToHsluv", "r", "g", "b", "h", "s", "l", "rgbaFromHusl", "a", "rgb", "hsvToStr", "v", "_h", "_s", "_v", "rgbToRgb", "isNumeric", "bound01", "rgbToHex", "allow3Char", "hex", "pad2", "rgbToHsl", "_r", "_g", "_b", "max", "min", "d", "hue2rgb", "p", "q", "t", "hslToRgb", "rgbToHsv", "hsvToRgb", "i", "f", "mod", "n", "_max", "_n", "isOnePointZero", "processPercent", "isPercentage", "char", "matchers", "cssInteger", "cssUnit", "permissiveMatch3", "permissiveMatch4", "stringToObject", "inputColor", "_a", "_c", "_d", "_e", "_f", "_i", "_j", "_k", "_l", "_m", "_o", "_p", "_q", "_t", "_u", "_w", "_x", "_y", "_z", "_A", "_B", "trimLeft", "trimRight", "color2", "namedColor", "cssNames", "match", "percentToFraction", "parseIntFromHex", "convertHexToDecimal", "cache", "Color", "Color2", "c", "createColor", "created", "colorData", "getCompleteColorStrategy", "newColor", "ColorMixModel", "colorModel", "initialValue", "colorString", "hsl", "hsv", "key7", "amount", "angle", "alphaValue", "colorA", "colorB", "model", "progress2", "from", "toColor", "fromColor", "mixer", "fraction2", "limit", "result", "modulate", "hslA", "hslB", "fromH", "toH", "deltaH", "tween", "gen", "name", "value", "deltaR", "deltaG", "deltaB", "deltaR2", "deltaG2", "deltaB2", "tolerance", "channelToDecimal", "interpolate", "convertChannelToLinearRgb", "channel", "abs", "l1", "l2", "colorOrR", "completeColor", "getCompleteColorFromRGB", "getCompleteColorFromString", "getCompleteColorFromHSL", "getCompleteColorFromHSV", "correctAlpha", "numberFromString", "isMotionValue2", "v", "MotionValue", "Defaults2", "mockWindow", "query", "safeWindow", "window", "_raf", "f", "__raf", "raf", "import_eventemitter3", "__toESM", "require_eventemitter3", "EventEmitter3", "EventEmitter", "listeners", "eventName", "fn", "once", "unique", "context", "name", "handler", "count", "args", "LoopTimeStep", "Loop", "start", "task", "_a", "postEventTasks", "length", "i", "value", "MainLoop", "RenderTarget", "RenderTarget2", "RenderEnvironment", "RenderTarget2", "current", "RenderEnvironment", "hasRestrictions", "target", "RenderTarget", "correctBorderScale", "axis", "latest", "delta", "treeScale", "corrected", "addScaleCorrector", "assert", "condition", "msg2", "_a", "_b", "e", "lines", "assertNever", "x", "error", "LayoutIdContext", "args", "LayoutIdProvider", "children", "re", "cache3", "pe", "screen", "usedIds", "getLayoutId", "te", "id", "name", "duplicatedFrom", "cacheKey", "previousId", "nodeIdentifier", "possibleMatch", "index", "duplicatedId", "match", "byLastIdMatch", "matchedLayoutId", "shouldUseNamedLastIdMatch", "previousLayoutId", "shouldUseNamedMatch", "last", "possible", "rootDuplicatedId", "identifier", "value", "layoutId", "nextValue", "nextLayoutId", "lastId", "possibleId", "persistLayoutIdCache", "contextValue", "initialValue", "AutomaticLayoutIds", "enabled", "props", "context", "se", "useConstant", "init", "ref", "baseStyle", "errorStyle", "textStyle", "titleStyle", "messageStyle", "ErrorPlaceholder", "file", "title", "stripSlash", "message", "HAND_IMG_GAP_BOTTOM", "isFiniteNumber", "value", "isEmpty", "obj", "isReactElement", "test", "isReactChild", "Rect", "Rect2", "equals", "rect", "other", "size2", "a", "b", "n", "delta2", "xOffset", "yOffset", "inflate", "value", "doubleValue", "x", "y", "rectMaxX", "rectMaxY", "width", "height", "decimals", "roundedNumber", "ps", "xValues", "point", "yValues", "min", "max", "rect1", "rect2", "x2", "y2", "matrix", "x1", "y1", "x3", "y3", "x4", "y4", "rectA", "rectB", "aMax", "bMax", "rects", "comparingRect", "rectMinX", "rectMinY", "rectMidX", "rectMidY", "Point", "fromAnyDefaults", "defaults", "pointA", "pointB", "minSize", "minWidth", "minHeight", "diffX", "diffY", "anchorRect", "direction", "alignment", "rebasedRect", "assertNever", "ConstraintMask", "ConstraintMask2", "constraints", "isFiniteNumber", "valueToDimensionType", "value", "trimmedValue", "ConstraintValues", "ConstraintValues2", "props", "left", "right", "top", "bottom", "width", "height", "centerX", "centerY", "aspectRatio", "autoSize", "isAnimatable", "widthValue", "heightValue", "widthType", "heightType", "parsedWidth", "Animatable", "parsedHeight", "centerAnchorX", "centerAnchorY", "values", "parentSizeInfo", "freeSpace", "parentWidth", "parentHeight", "hOpposingPinsOffset", "pinnedOffset", "assertNever", "vOpposingPinsOffset", "sizeAfterApplyingConstraintsAndAspectRatio", "pixelAlign", "_a", "x", "y", "parentSizeForPositioning", "positioningParentWidth", "positioningParentHeight", "f", "Rect", "defaultWidth", "defaultHeight", "getConstraintValue", "constraint", "parentSize", "viewport", "constrainHeight", "constrainWidth", "w", "h", "start", "end", "containsInvalidStringValues", "props", "constraintsEnabled", "sizeFromFiniteNumberProps", "size2", "width", "height", "isFiniteNumber", "rectFromFiniteNumberProps", "left", "top", "calculateRect", "parentSize", "pixelAlign", "parentSizeDisabled", "constraintValues", "getConstraintValues", "enabledParentSize", "deprecatedParentSize", "parentSizeInfo", "ConstraintValues", "right", "bottom", "center", "_constraints", "aspectRatio", "autoSize", "constraintMask", "ConstraintMask", "valueToDimensionType", "widthValue", "heightValue", "widthType", "heightType", "parsedWidth", "parsedHeight", "centerAnchorX", "centerAnchorY", "ConstraintsContext", "e", "deprecatedParentSize", "parentSize", "useParentSize", "isSize", "o", "ProvideParentSize", "props", "currentParentSize", "children", "value", "getParentWidth", "getParentHeight", "ConsumeParentSize", "useProvideParentSize", "node", "useConstraints", "calculateRect", "ControlType", "ControlType2", "isFlexboxGapSupportedCached", "isFlexboxGapSupported", "flex", "isSupported", "flexboxGapNotSupportedClass", "initialized", "installFlexboxGapWorkaroundIfNeeded", "richTextStylesRule", "richTextParagraphSpacingStylesRule", "richTextBackgroundMaskStylesRule", "richTextLinkStylesRule", "richTextLinkHoverStylesRule", "richTextLinkCurrentStylesRule", "richTextLinkCurrentHoverStylesRule", "richTextBoldStylesRule", "richTextItalicStylesRule", "richTextImageRule", "richTextBlockElementResetRule", "richTextStylesPresetResetRule", "richTextStylesList", "richTextStylesListItem", "richTextStylesNumberedListMarker", "richTextStylesBulletedListMarker", "deprecatedRichTextCSSRules", "richTextCSSRules", "defaultCache", "defaultSheet", "injectCSSRule", "cssRule", "sheet", "cache3", "styleElement", "componentCSSRules", "textAlignmentRule", "textBlockSpanRule", "textInlineSpanRule", "renderTextStylesRule", "textStylesRule", "linkStylesRule", "linkHoverStylesRule", "linkCurrentStylesRule", "textCSSRules", "stackPositionRule", "nativeStackGapRules", "stackGapRule", "stackDirectionRuleVertical", "stackDirectionRuleHorizontal", "stackCSSRules", "navigationCSSRules", "scrollCSSRules", "nativeScrollCSSRules", "deviceComponentCSSRules", "pageContentWrapperWrapperCSSRules", "presenceCSS", "cursorCSS", "frameCSS", "resetCSS", "hideScrollbars", "frameCSSRules", "isPreview", "svgCSSRules", "combineCSSRules", "combinedCSSRules", "combinedCSSRulesForPreview", "didInject", "injectComponentCSSRules", "styles", "RenderTarget", "rule", "isFunction", "isBoolean", "isString2", "isNumber", "isArray", "isObject2", "isUndefined", "isValidDate", "isReactComponent", "component", "optionalKey", "controlIsOptional", "control", "getControlDefaultValue", "control", "isString2", "isBoolean", "isUndefined", "isNumber", "isObject2", "value", "applyControlDefaultsToDefaultProps", "isArray", "defaultProps", "controls", "controlKey", "currentDefault", "controlIsOptional", "defaultValue", "getDefaultProps", "component", "applyControlDefaultsToReactDefaultProps", "isReactComponent", "addPropertyControls", "propertyControls", "presetsBase", "devicePresets", "devicePresetsMap", "devicePresets", "map", "preset", "asRecord", "object", "memoize", "fn", "cache3", "arg", "reactPropsRegex", "isPropValid", "prop", "LibraryFeaturesContext", "e", "LibraryFeaturesProvider", "useLibraryFeatures", "context", "import_process", "__toESM", "require_browser", "safeNavigator", "navigator", "isBrowser2", "safariVersion", "version2", "result", "safeNavigator", "isChrome", "isEdge", "isSafari", "isFramerX", "safeNavigator", "isEdge", "isTest", "import_process", "mockWithWarning", "message", "warnOnce", "implementation", "image", "_a", "rect", "nodeId", "element", "runtime", "isRuntimeInjected", "runtimeProxy", "target", "key7", "reciever", "minZoomForPixelatedImageRendering", "image", "containerSize", "devicePixelRatio3", "_a", "_b", "_c", "_d", "frameWidth", "frameHeight", "imageWidth", "imageHeight", "frameAspectRatio", "imageAspectRatio", "imageRenderingForZoom", "zoom", "minPixelatedZoom", "wrapperStyle", "placeholderStyle", "cssObjectFit", "imageFit", "cssObjectPosition", "positionX", "positionY", "x", "y", "cssImageRendering", "RenderTarget", "safeWindow", "RenderEnvironment", "getImageStyle", "StaticImage", "nodeId", "alt", "source", "runtime", "imageStyle", "measuredSizes", "setMeasuredSizes", "e", "imageRef", "libraryFeatures", "useLibraryFeatures", "imageElement", "isTest", "imageNodeWidth", "currentSizes", "CanvasImage", "wrapperRef", "wrapper", "OptimizedCanvasImage", "BackgroundImageComponent", "layoutId", "props", "fallbackWrapperStyles", "imageNode", "isString2", "backgroundSize", "isNumber", "tileSize", "imageSource", "motion", "key2", "BackgroundImage", "BackgroundImage2", "applyForwardOverrides", "background", "_forwardedOverrideId", "_forwardedOverrides", "id", "forwardedOverrideId", "src", "backgroundImageFromProps", "backgroundImage", "Animatable", "collectBorderStyleForProps", "style", "collapseEqualBorders", "borderWidth", "borderStyle", "borderColor", "borderTop", "borderBottom", "borderLeft", "borderRight", "Border", "htmlElementAsMotionComponent", "asElem", "isChrome2", "isChrome", "layoutHintDataPropsForCenter", "center", "nodeIdFromString", "str", "processOverrideForwarding", "props", "children", "_forwardedOverrides", "extractions", "key7", "propName", "e", "child", "transformTemplate", "center", "_", "generated", "useLayoutId", "specificLayoutId", "postfix", "name", "layoutIdKey", "duplicatedFrom", "__fromCodeComponentNode", "drag", "getLayoutId", "enabled", "re", "LayoutIdContext", "se", "existingLayoutId", "layoutIdCandidate", "useIsomorphicLayoutEffect2", "fe", "ue", "ComponentContainerContext", "resizeObservers", "hasActiveObservations", "ro", "hasSkippedObservations", "msg", "deliverResizeLoopError", "event", "window", "ResizeObserverBoxOptions", "ResizeObserverBoxOptions2", "freeze", "obj", "ResizeObserverSize", "ResizeObserverSize2", "inlineSize", "blockSize", "DOMRectReadOnly", "DOMRectReadOnly2", "x", "y", "width", "height", "_a", "top", "right", "bottom", "left", "rectangle", "isSVG", "target", "isHidden", "_b", "offsetWidth", "offsetHeight", "isElement", "scope", "isReplacedElement", "global", "cache2", "scrollRegexp", "verticalRegexp", "IE", "parseDimension", "pixel", "size", "switchSizes", "zeroBoxes", "calculateBoxSizes", "forceRecalculation", "cs", "svg", "removePadding", "canScrollVertically", "canScrollHorizontally", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "borderTop", "borderRight", "borderBottom", "borderLeft", "horizontalPadding", "verticalPadding", "horizontalBorderArea", "verticalBorderArea", "horizontalScrollbarThickness", "verticalScrollbarThickness", "widthReduction", "heightReduction", "contentWidth", "contentHeight", "borderBoxWidth", "borderBoxHeight", "boxes", "calculateBoxSize", "observedBox", "borderBoxSize", "contentBoxSize", "devicePixelContentBoxSize", "ResizeObserverEntry", "ResizeObserverEntry2", "calculateDepthForNode", "node", "depth", "parent", "broadcastActiveObservations", "shallowestDepth", "callbacks2", "entries", "ot", "entry", "targetDepth", "_i", "callbacks_1", "callback", "gatherActiveObservationsAtDepth", "process3", "trigger", "callbacks", "notify", "cb", "queueMicroTask", "toggle_1", "el_1", "config", "queueResizeObserver", "watching", "isWatching", "CATCH_PERIOD", "observerConfig", "events", "time", "timeout", "scheduled", "Scheduler", "Scheduler2", "_this", "until", "elementsHaveResized", "scheduler", "updateCount", "n", "skipNotifyOnElement", "ResizeObservation", "ResizeObservation2", "size2", "ResizeObserverDetail", "ResizeObserverDetail2", "resizeObserver", "observerMap", "getObservationIndex", "observationTargets", "i", "ResizeObserverController", "ResizeObserverController2", "detail", "options", "firstObservation", "index", "lastObservation", "ResizeObserver", "ResizeObserver2", "useForceUpdate3", "setForcedRenderCount", "v", "_sharedResizeObserver", "_callbacks", "SharedObserver", "__privateAdd", "_a", "ResizeObserver2", "safeWindow", "ResizeObserver", "__privateSet", "entries", "entry", "callbackForElement", "__privateGet", "element", "callback", "sharedResizeObserver", "isBrowser2", "useRerenderOnResize", "ref", "update", "useForceUpdate3", "ue", "SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE", "getMeasurableCodeComponentChildren", "element", "SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE", "isMeasurable", "unwrapInlinedDisplayContents", "firstMeasurableChild", "useMeasureLayout", "props", "ref", "getChildren", "options", "id", "visible", "_needsMeasure", "skipHook", "inCodeComponent", "re", "ComponentContainerContext", "onCanvas", "RenderTarget", "useIsomorphicLayoutEffect2", "runtime", "nodeIdFromString", "measureClosestComponentContainer", "container", "objectKeys", "hasProp", "o", "prop", "withEquals", "valueEqual", "a", "b", "arrayShallowEqual", "length", "i", "arrayDeepEqual", "equal", "mapShallowEqual", "key7", "aValue", "mapDeepEqual", "setEqual", "objectShallowEqual", "keys3", "objectDeepEqual", "deep", "typeA", "aIsArray", "bIsArray", "aIsMap", "bIsMap", "aIsSet", "bIsSet", "dateA", "dateB", "regexpA", "regexpB", "isEqual", "error", "smallValue", "translateZ", "useTranslateZHack", "isFramerX", "isSafari", "isTest", "forceLayerBackingWithMotionStyle", "motionStyle", "forceLayerBackingWithCSSProperties", "cssProperties", "setTranslateZHack", "style", "enabled", "transform2", "resetSetStyle", "toValue", "microtask", "asRecord", "value", "reset", "Layer", "I", "usingMotionStyle", "nextProps", "nextState", "prevProps", "manageCache", "cache3", "maxEntries", "memoize2", "create", "r", "g", "hash", "hasher", "chr", "ConvertColor", "color2", "angle", "Color", "alpha", "obj", "stringToObject", "hsv", "hsvToStr", "h", "input", "CSSVariableRegExp", "colorCache", "cachedMultiplyAlpha", "s", "gradientColorStops", "gradient", "stops", "stop", "gradientColorStopsHash", "result", "multiStopGradientKeys", "isMultiStopGradient", "simpleGradientKeys", "isSimpleGradient", "linearGradientKeys", "LinearGradient", "linearGradient", "overrideAngle", "cssStops", "radialGradientKeys", "RadialGradient", "radialGradient", "widthFactor", "heightFactor", "centerAnchorX", "centerAnchorY", "collectBackgroundFromProps", "background", "backgroundColor", "isMotionValue2", "Animatable", "extractStyleFromProps", "name", "styleRef", "into", "hasLeftAndRight", "hasTopAndBottom", "getStyleForFrameProps", "hasEvents", "pointerEvents", "pointerEventsSet", "event", "getCursorFromEvents", "overflowKey", "hasScrollableContent", "hasScrollingOverflow", "unwrapFrameProps", "frameProps", "left", "top", "bottom", "right", "width", "height", "center", "_constraints", "size2", "widthType", "heightType", "positionFixed", "positionAbsolute", "minWidth", "resolveMotionValue", "minHeight", "maxWidth", "maxHeight", "defaultFrameRect", "useStyleAndRect", "_a", "_b", "injectComponentCSSRules", "_initialStyle", "__fromCanvasComponent", "unwrappedProps", "constraintsRect", "useConstraints", "defaultStyle", "shouldDisablePointerEvents", "safeToEditPointerEvents", "centerTextStyle", "e", "child", "propsStyle", "constraintsStyle", "constraintsEnabled", "isAutoSized", "resultStyle", "filteredProps", "getMotionProps", "motionProps", "isValidMotionProp", "isPropValid", "hasDataFramerName", "VisibleFrame", "Y", "forwardedRef", "border", "_border", "__portal", "propsWithOverrides", "children", "processOverrideForwarding", "layoutId", "useLayoutId", "cursor", "fallbackRef", "pe", "dataProps", "currentStyle", "rect", "autoSized", "transformTemplate", "layoutHintDataPropsForCenter", "backgroundImage", "backgroundImageFromProps", "parentSize", "resolveParentSize", "wrappedContent", "useProvideParentSize", "BackgroundImageComponent", "Border", "MotionComponent", "htmlElementAsMotionComponent", "radius", "shadow", "FrameWithMotion", "_usesDOMRect", "TREE_ROOT_ID", "SharedLayoutContext", "e", "SharedLayoutRoot", "I", "tree", "transition", "shouldAnimate", "_a", "needsReset", "projectionNode", "_a2", "_b", "rootStyles", "MagicMotionCrossfadeRoot", "props", "motion", "_sharedIntersectionObserver", "_callbacks2", "SharedIntersectionObserver", "options", "__privateAdd", "__privateSet", "entries", "observer", "entry", "callbackForElement", "__privateGet", "element", "callback", "SharedIntersectionObserverContext", "useSharedIntersectionObserver", "ref", "key7", "useConstant", "observers", "enabled", "root", "rest", "thresholds", "_", "i", "ViewportContext", "useAppearEffect", "appearCallback", "internalState", "animateOnce", "threshold", "rootMargin", "isInView", "hasAnimatedOnce", "isIntersecting", "isIntersectingWithThreshold", "calculatedIntersection", "intersectionRect", "boundingClientRect", "safeWindow", "import_hoist_non_react_statics2", "__toESM", "require_hoist_non_react_statics_cjs", "import_hoist_non_react_statics", "__toESM", "require_hoist_non_react_statics_cjs", "DraggingContext", "e", "hoverProps", "hoverEventKeys", "hasOwnProperty", "obj", "prop", "$private", "ObservableObject", "ObservableObject2", "initial", "makeAnimatables", "observeAnimatables", "unproxiedState", "Observers", "key7", "state", "value", "asRecord", "sharedProxyHandler", "target", "observer", "ObservableObjectProxyHandler", "receiver", "privateObject", "animatable", "rawValue", "isAnimatable", "Animatable", "transactions", "change", "transaction", "result", "changed", "targetValue", "rawValueIsObject", "keys3", "privateIndex", "key3", "withOpacity", "target", "collectOpacityFromProps", "props", "style", "opacity", "Animatable", "shadowsAsFilter", "shadows", "filters", "dropShadows", "shadowItem", "collectTextShadowsForProps", "props", "style", "textShadow", "shadow", "collectLayerFilters", "props", "style", "filters", "isFiniteNumber", "shadowsAsFilter", "collectBackgroundFilters", "collectFiltersFromProps", "getNumber", "Animatable", "LayoutTree", "I", "child", "TREE_ROOT_ID", "nextProps", "isLead", "isExiting", "isOverlayed", "animatesLayout", "transition", "sharedLayoutContext", "hasBecomeLead", "hasExitBeenCancelled", "shouldPromote", "shouldDemote", "overlayChanged", "projection", "layoutId", "e", "SwitchLayoutGroupContext", "SharedLayoutTree", "props", "SharedLayoutContext", "NavigationContainerContext", "newMap", "useMap", "useConstant", "NavigationTargetContext", "z", "NavigationTargetWrapper", "isCurrent", "isOverlayed", "children", "callbacks2", "register", "te", "fn", "deregister", "cleanup", "value", "pe", "ue", "_", "cb", "newCleanup", "isFunction", "e", "useOnCurrentTargetChange", "callback", "deps", "re", "NavigationContainer", "isLayeredContainer", "isPrevious", "visible", "transitionProps", "backdropColor", "onTapBackdrop", "backfaceVisible", "exitBackfaceVisible", "animation", "exitAnimation", "instant", "initialProps", "exitProps", "position", "withMagicMotion", "index", "areMagicMotionLayersPresent", "id", "isInitial", "animate3", "useAnimation", "presence", "PresenceContext", "persistLayoutIdCache", "LayoutIdContext", "previousState", "getOriginProps", "viewportRef", "isBeingRemoved", "wasPrevious", "wasCurrent", "shouldAnimateIn", "shouldAnimateOut", "origins", "wasReset", "allAnimatableProperties", "transition", "exitTransition", "layout", "perspective", "contains3Dprops", "identity", "animations2", "isPresent", "isCurrentTarget", "forceOpacity", "FrameWithMotion", "ViewportContext", "NavigationContainerContext", "SharedLayoutTree", "shouldUsePreviousValue", "prevProps", "nextProps", "currentOriginProps", "result", "isFiniteNumber", "containerProps", "_a", "_b", "_c", "toPropsContain3d", "fromPropsContain3d", "NavigatorMock", "warnOnce", "navigatorMock", "NavigationContext", "TransitionDefaults", "pushTransition", "options", "overlayTransition", "flipTransition", "defaultState", "reduceNavigationStateForAction", "state", "action", "addOverlay", "removeOverlay", "add", "remove", "updateComponent", "back", "forward", "currentState", "key7", "component", "currentOverlay", "overlayItemId", "overlayStack", "currentItem", "isCurrentScreen", "nextIndex", "removed", "shouldMoveForward", "isNextTargetForward", "current", "previous", "containerKey", "findLatestHistoryIndex", "containerVisualIndex", "containerIsRemoved", "magicMotionPropsForAdd", "transitionForContainer", "updateTransitions", "containers", "nextState", "nextItem", "history", "target", "assert", "item", "previousTransition", "visualIndex", "magicMotionPropsForRemove", "nextKey", "update", "nextVisualIndex", "validTargets", "nextValidTarget", "targetVisualIndex", "currentVisualIndex", "shouldRemoveLastKey", "containerIndex", "transitions", "screenIndex", "transitionForScreen", "stackState", "sequence", "allAnimatableKeys", "objectKeys", "direction", "from", "property", "transitionTo", "transitionFrom", "asRecord", "NavigationConsumer", "NavigationCallbackContext", "NavigationCallbackProvider", "IsInitialNavigationContext", "Navigation", "I", "props", "newState", "skipLayoutAnimation", "historyItem", "updateState", "isReactChild", "isReactElement", "injectComponentCSSRules", "previousOverlay", "transitionTraits", "transitionOptions", "_d", "_e", "overlayStackState", "activeOverlay", "activeOverlayItem", "isOverlayVisible", "contentContainers", "isInstantContainerTransition", "animationPropsForContainer", "getBackfaceVisibleForScreen", "MagicMotionCrossfadeRoot", "containerContent", "overlayContainers", "stackIndex", "initialPropsForOverlay", "transitionPropsForOverlay", "containerIsVisible", "backdropColorForTransition", "getBackfaceVisibleForOverlay", "backdropTapAction", "transitionPropsForStackWrapper", "animationForStackWrapper", "backfaceVisibleForStackWrapper", "LayoutIdProvider", "SharedLayoutRoot", "AnimatePresence", "animationDefault", "currentOverlayItem", "previousOverlayItem", "navigationItem", "overlayIndex", "containerCurrent", "overCurrentContext", "child", "shouldStretchWidth", "shouldStretchHeight", "canStretchStyle", "isObject2", "goBackAction", "NavigationWrapper", "resetProjection", "useResetProjection", "useInstantLayoutTransition", "import_hoist_non_react_statics3", "__toESM", "require_hoist_non_react_statics_cjs", "import_process3", "__toESM", "require_browser", "requiresPolyfill", "isSafari", "safariVersion", "cx", "classNames", "emptyObject", "timeDelta", "data", "Data2", "initial", "_data", "ObservableObject", "target", "observer", "Data", "initialState", "DataObserverContext", "e", "DataObserver", "I", "initialState", "MainLoop", "cancel", "Data", "children", "d", "observer", "e", "DataObserverContext", "import_hoist_non_react_statics4", "__toESM", "require_hoist_non_react_statics_cjs", "prefix", "prefixLength", "stripPrefixFromPrefixedKey", "key7", "prefix", "prefixLength", "effectValuesKeys", "makeFXValues", "defaults", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "motionValue", "defaultFXValues", "useFXValues", "values", "enabled", "effect", "useConstant", "e", "value", "isUndefined", "loopOptionsKeys", "useDelay", "timeoutRef", "pe", "ue", "d", "resolve", "useLoop", "loopEffectEnabled", "loopRepeatDelay", "loopTransition", "loopRepeatType", "loop", "shouldReduceMotion", "useReducedMotionConfig", "mirrorStateRef", "delay2", "animateValues", "transition", "mirror", "to", "from", "_a2", "opts", "animate", "start", "stop", "te", "parallaxTransform", "scrollY", "originalPosition", "speed", "offset", "adjustPosition", "speedFactor", "initialPosition", "scrollOffset", "parallaxOptionsKeys", "useParallax", "options", "ref", "visibilityStyle", "parallaxTransformEnabled", "transform2", "yValue", "frame", "parallaxY", "visibility", "useScroll", "useTransform", "useMotionValue", "defaultValue", "getTransition", "isString2", "isObject2", "runEffectAnimation", "target", "appearId", "motionValue2", "isMotionValue", "isNumber", "visualElement", "visualElementStore", "handoff", "safeWindow", "presenceOptionsKeys", "usePresenceAnimation", "motionInitial", "motionAnimate", "motionExit", "presenceInitial", "presenceAnimate", "presenceExit", "initial", "animateConfig", "exit", "asRecord", "isPresent", "safeToRemove", "usePresence", "fe", "calcOffsetTop", "element", "container", "top", "current", "scrollObserverOffset", "createTransformInputRange", "transformTargets", "threshold", "callback", "starts", "inputRange", "index", "targetRef", "height", "previousTop", "end", "currentScrollDirection", "lastOffset", "scrollDirectionThreshold", "useScrollDirectionChange", "scrollDirection", "cb", "direction", "repeat", "directionChangeOffset", "lastDirection", "currentTarget", "scrollInfo", "hasDirectionChanged", "nextTarget", "styleAppearOptionsKeys", "defaultOutputRange", "defaultRanges", "createInputOutputRange", "targets", "hasExit", "outputRange", "firstRange", "idx", "last", "makeStyle", "_i", "useAnimationVariants", "opacity", "targetOpacity", "transformPerspective", "enter", "animateVariant", "defaultStyles", "useStyleAppearEffect", "variants", "playState", "animation", "runAnimation", "fromInitial", "transitionWithFallback", "toValue", "hasAnimatedOnce", "animateWithIntersectionObserver", "useAppearEffect", "appears", "isPlaying", "lastAppearState", "animateWithScrollInfo", "playedState", "lastVariant", "variant", "transform", "variantAnimation", "styleTransformOptionsKeys", "defaultValues", "defaultRanges2", "useAttachOptionalSpring", "spring2", "springs", "objectKeys", "m2", "v", "set", "active", "animateValue", "frameData", "delta", "createInputOutputRanges", "effectKeyOutputRange", "previousTarget", "createPageOutputRange", "keyOutputRange", "pageInputRange", "useStyleTransform", "transformTrigger", "styleTransformEffectEnabled", "transformViewportThreshold", "scrollYInputRange", "groups", "groupValues", "backwardsCompatibleEnabledCheck", "secondaryKey", "object", "extractFXOptions", "props", "result", "strippedKey", "group", "keys3", "add2", "sum", "multiply", "reactRefObjectKey", "isReactRefObject", "isVariantOrVariantList", "withFX", "Component14", "forwardedRef", "RenderTarget", "animate4", "initial2", "fallbackRef", "parallax", "styleAppear", "styleTransform", "presence", "forwardedProps", "targetOpacityValue", "withPerspective", "inSmartComponent", "animate3", "presenceEffectValues", "optimizedAppearDataAttribute", "parallaxValues", "parallaxStyle", "transformValues2", "appearEffectValues", "loopValues", "fxValues", "scale", "x", "y", "rotate", "rotateX", "rotateY", "drag", "dragConstraints", "useRerenderOnResize", "motionValueStyle", "motionGestures", "withStyleAppearEffect", "withFX", "withGeneratedLayoutId", "Component14", "e", "props", "ref", "layoutId", "useLayoutId", "Providers", "children", "outerLayoutId", "useConstant", "motion", "ComponentContainerContext", "AutomaticLayoutIds", "LayoutGroup", "child", "Container", "GeneratedComponentContext", "e", "LazyValue", "resolver", "value", "status", "promise", "error", "assertNever", "findAnchorElement", "target", "withinElement", "elementKey", "collectionKey", "collectionItemIdKey", "pathVariablesKey", "mediaType", "isFramerPageLink", "isString2", "parseFramerPageLink", "link", "isFramerPageLink", "url", "target", "mediaType", "searchParams", "element", "elementKey", "collectionItem", "collection", "collectionKey", "collectionItemId", "collectionItemIdKey", "pathVariablesValue", "pathVariablesKey", "pathVariables", "navigateFromAttributes", "navigate", "element", "implicitPathVariables", "_a", "_b", "_c", "routeId", "elementId", "pathVariables", "pathVariablesRaw", "href", "link", "parseFramerPageLink", "smoothScroll", "noLocale", "resolveSlugCache", "resolveSlug", "unresolvedSlug", "utilsByCollectionId", "activeLocale", "_d", "cache3", "collectionCache", "collectionItemCache", "lazyValue", "LazyValue", "getUtils", "utils", "error", "linkKey", "isLinkToWebPage", "createVariablesFromPageLinkCollectionItem", "collectionItem", "variables", "pathVariablesKey2", "value", "linkFromFramerPageLink", "isFramerPageLink", "parsed", "target", "pathVariablesRegExp2", "PathVariablesContext", "e", "useImplicitPathVariables", "contextPathVariables", "currentPathVariables", "useCurrentRoute", "linkMatchesRoute", "route", "webPageId", "hash2", "combinedPathVariable", "key7", "isInternalURL", "href", "isValidURL", "isInternal", "getTargetAttrValue", "openInNewTab", "isInternal", "propsForLink", "href", "isInternalURL", "anchorTarget", "isValidURL", "createOnClickLinkHandler", "router", "routeId", "elementId", "combinedPathVariables", "smoothScroll", "event", "_a", "_b", "anchorElement", "findAnchorElement", "route", "isLazyComponentType", "propsForRoutePath", "currentRoute", "implicitPathVariables", "pathname", "hash2", "assert", "pathVariables", "inferInitialRouteFromPath", "preloadComponent", "path", "getPathForRoute", "resolveSlugsWithSuspense", "unresolvedPathSlugs", "unresolvedHashSlugs", "collectionUtils", "activeLocale", "promises", "handleSlugs", "unresolvedSlugs", "result2", "slugKey", "unresolvedSlug", "lazyValue", "resolveSlug", "promise", "value", "result", "Link", "e", "children", "restProps", "forwardedRef", "useRouter", "useCurrentRoute", "useImplicitPathVariables", "useLocaleInfo", "props", "pageLink", "isLinkToWebPage", "linkFromFramerPageLink", "isString2", "webPageId", "hashVariables", "hasUnresolvedSlugs", "resolvedSlugs", "combinedPathVariable", "combinedHashVariable", "resolvedHref", "resolvedHash", "linkMatchesRoute", "child", "resolveLink", "resolveLinkInternal", "resolveSlugs", "combinedHashVariables", "PageRoot", "RootComponent", "isWebsite", "routeId", "pathVariables", "routes", "collectionUtils", "notFoundPage", "isReducedMotion", "includeDataObserver", "localeId", "locales", "e", "MainLoop", "MotionConfig", "Router", "Wrapper", "DataObserver", "RoutesProvider", "NavigationWrapper", "StyleSheetContext", "isBrowser2", "node", "componentsWithServerRenderedStyles", "_a", "componentsWithSSRStylesAttr", "styleTagSSRMarker", "withCSS", "Component14", "escapedCSS", "componentSerializationId", "props", "ref", "sheet", "cache3", "concatenatedCSS", "rule", "injectCSSRule", "SSRParentVariantsContext", "SSRVariantClassName", "propsForClonedChild", "child", "childrenWithForwardedProps", "children", "isReactChild", "isReactElement", "renderBranchedChildrenFromPropertyOverrides", "overrides", "variantClassNames", "primaryVariantId", "parentVariants", "type", "childrenArray", "branches", "nonOverriddenVariants", "variantId", "propOverrides", "arePropOverridesEffectivelyDifferent", "effectiveVariants", "intersection", "remainingVariants", "effectiveRemainingVariants", "displayContents", "variants", "key7", "element", "hiddenClassNames", "generateHiddenClassNames", "assert", "generateHiddenClassNames", "showOnlyInVariantIds", "parentVariants", "variantClassNames", "classNames", "variantId", "variantClassName", "alreadyHiddenInParent", "variantHash", "intersection", "variants", "variant", "propertyKeyDifferenceShouldBeIgnored", "key7", "arePropOverridesEffectivelyDifferent", "props", "propOverrides", "isEqual", "propsForBreakpoint", "overrides", "PropertyOverrides", "e", "breakpoint", "children", "ref", "isBrowser2", "childrenWithForwardedProps", "generatedComponentContext", "GeneratedComponentContext", "primaryVariantId", "SSRParentVariantsContext", "renderBranchedChildrenFromPropertyOverrides", "AnimationCollector", "nodeId", "prop", "value", "variantHash", "nodeEntry", "assert", "framerAppearEffects", "framerAppearTransformTemplateToken", "framerAppearIdKey", "framerAppearAnimationScriptKey", "rejectPending", "pendingTimers", "pendingPromises", "t", "reject", "createSet", "useActiveVariantCallback", "baseVariant", "useConstant", "useOnCurrentTargetChange", "e", "callback", "args", "resolve", "msDelay", "useAddVariantProps", "baseVariant", "gestureVariant", "variantProps", "e", "id", "_a", "_b", "_c", "activeMediaQueryFromWindow", "mediaQueries", "variant", "query", "safeWindow", "useHydratedBreakpointVariants", "initial", "hydratedWithInitial", "_a", "isInitialNavigation", "re", "IsInitialNavigationContext", "baseVariant", "pe", "isBrowser2", "basePropsVariant", "forceUpdate", "useForceUpdate3", "instantTransition", "useInstantTransition", "setActiveVariantInstant", "te", "Z", "useIsomorphicLayoutEffect2", "ue", "callbacks2", "mql", "callback", "event", "addMQLCallback", "removeMQLCallback", "removeHiddenBreakpointLayers", "initial", "mediaQueries", "variantClassNames", "_a", "_b", "_c", "_d", "_e", "activeVariant", "activeMediaQueryFromWindow", "activeVariantHash", "hiddenLayer", "ssrVariant", "SSRVariantClassName", "image", "originalSizes", "useIsOnFramerCanvas", "RenderTarget", "DeepWeakMap", "key1", "key22", "map2", "value", "_a", "useData", "data2", "activeLocale", "useLocaleInfo", "isArray", "promise", "indexCache", "useInsertIndex", "cached", "result", "item", "index", "whereCache", "useExecuteWhere", "where", "evaluateExpression", "identifier", "orderByCache", "useExecuteOrderBy", "orderBy", "leftItem", "rightItem", "order", "expression", "leftValue", "rightValue", "isNumber", "isString2", "offsetCache", "useExecuteOffset", "offset", "offsetValue", "limitCache", "useExecuteLimit", "limit", "limitValue", "selectCache", "useExecuteSelect", "select", "preloadPromise", "preloadExpressions", "selected", "name", "stringifyExpression", "LazyValue", "expressions", "identifiers", "extractIdentifiers", "preloadPromises", "argument", "condition", "useQueryData", "query", "queryRef", "pe", "isEqual", "context", "evaluateFunctionCall", "evaluateCase", "evaluateUnaryOperation", "evaluateBinaryOperation", "evaluateTypeCast", "getArgument", "search", "when", "isLooseEqual", "left", "right", "isValidDate", "parsed", "getWhereExpressionFromPathVariables", "pathVariables", "isUndefined", "isObject2", "createGestureVariant", "variant", "type", "nextVariant", "allVariants", "currentVariant", "nextIndex", "nextVariant2", "assert", "activeTransition", "transitions", "variantTransition", "getGesture", "enabledGestures", "isHovered", "isPressed", "hover", "pressed", "createVariantClassName", "baseVariant", "variantClassNames", "mappedClassName", "safeBaseVariant", "targetVariant", "fallbackVariant", "validBaseVariants", "CycleVariantState", "useVariantState", "variant", "externalDefaultVariant", "externalTransitions", "externalEnabledGestures", "externalCycleOrder", "variantProps", "forceUpdate", "useForceUpdate3", "useConstant", "internalState", "e", "resolveNextVariant", "targetBaseVariant", "isHovered2", "isPressed2", "enabledGestures2", "defaultVariant2", "nextBaseVariant", "gesture", "nextGestureVariant", "createGestureVariant", "setGestureState", "baseVariant2", "gestureVariant2", "nextBase", "nextGesture", "setVariant", "proposedVariant", "cycleOrder", "nextVariant", "gestureVariant", "defaultVariant", "addVariantProps", "useAddVariantProps", "variants", "activeTransition", "cx", "WindowContext", "e", "useProvidedWindow", "Line", "Line2", "a", "b", "lineA", "lineB", "x1", "y1", "x2", "y2", "x3", "y3", "x4", "y4", "d", "xi", "yi", "deltaAX", "deltaAY", "deltaBX", "deltaBY", "line", "pointOnLine", "deltaX", "deltaY", "pointB", "Point", "point", "perp", "distance2", "hypotenuse", "r", "linearGradientLine", "angle", "_a", "_b", "rad", "offset", "anglePoint", "angleLine", "points", "Rect", "sortedPoints", "a2", "b2", "assert", "c", "start", "end", "elementPropertiesForLinearGradient", "gradient", "id", "_c", "_d", "stops", "gradientColorStops", "startPosition", "endPosition", "startPoint", "endPoint", "interpolator", "interpolate", "LinearGradient", "stop", "ConvertColor", "elementPropertiesForRadialGradient", "RadialGradient", "isRelativeNumber", "value", "isString2", "withoutLastChar", "float", "isNumber", "getRelativeNumberValue", "getPositionXFraction", "positionX", "getPositionYFraction", "positionY", "imagePatternPropsForFill", "fill", "frame2", "includeTransform", "Animatable", "BackgroundImage", "imageWidth", "imageHeight", "transform2", "fit", "width", "height", "offsetX", "offsetY", "scaleX", "scaleY", "imageRatio", "realWidth", "realHeight", "validScaleX", "validScaleY", "layerPositionX", "layerPositionY", "extraOffsetX", "extraOffsetY", "mediaType2", "isAssetReference", "imageUrlForAsset", "asset", "pixelSize", "isExport", "RenderTarget", "runtime", "ImagePatternElement", "path", "repeat", "href", "useDOM", "isBrowser2", "SharedSVGEntry", "svg", "innerHTML", "viewBox", "count", "SharedSVGManager", "generateUniqueIds", "contentId", "entry", "hash", "uniqueSVG", "svgSize", "svgDom", "parseSVG", "prefixIdsInSVG", "getSVGSize", "containerId", "container", "size2", "svgTemplates", "box", "output", "style", "sharedSVGManager", "node", "prefix2", "sanitizedPrefix", "sanitizeString", "recursivelyPrefixId", "str", "el", "prefixId", "attr", "base", "fragmentIdentifier", "URL_REF", "prefixedValue", "unitsToPixels", "parseLength", "m2", "SVG", "props", "parentSize", "useParentSize", "ariaId", "layoutId", "useLayoutId", "layoutRef", "providedWindow", "useMeasureLayout", "SVGComponent", "MAX_BACKGROUND_SVG_TEXT_LENGTH", "containsImageReference", "containsCustomPropertyReference", "hasBorderRadius", "sizeSVG", "div", "localWindow", "safeWindow", "withExternalLayout", "constraintsEnabled", "intrinsicWidth", "intrinsicHeight", "_constraints", "isFiniteNumber", "Layer", "element", "calculateRect", "svgContentId", "contentid", "prevProps", "resetSetStyle", "innerStyle", "rotation", "rotate", "xFactor", "yFactor", "zoom", "target", "RenderEnvironment", "zoomFactor", "left", "right", "top", "bottom", "_a2", "visible", "title", "description", "className", "variants", "innerRef", "opacity", "rest", "identifier", "injectComponentCSSRules", "outerStyle", "collectOpacityFromProps", "collectFiltersFromProps", "fillElement", "Color", "fillColor", "gradientId", "idx", "elementProperties", "imagePattern", "dataProps", "hasTransformTemplate", "layoutHintDataPropsForCenter", "svgAsBackgroundImage", "content", "__html", "MotionComponent", "htmlElementAsMotionComponent", "rel", "onClick", "ariaDescriptionId", "transformTemplate", "VISUALLY_HIDDEN_STYLES", "htmlRegExp", "escapeHTML", "tag", "regex", "replaceFramerPageLinks", "rawHTML", "getRoute", "currentRoute", "implicitPathVariables", "original", "pre1", "pre2", "value1", "value2", "post", "pageLink", "parseFramerPageLink", "targetRoute", "isRoute", "targetPath", "currentPath", "attributes", "elementId", "getRouteElementId", "link", "linkFromFramerPageLink", "linkMatchesRoute", "relativePath", "pathVariables", "pathVariablesRegExp2", "_", "key7", "params", "computeRelativePath", "import_process4", "__toESM", "require_browser", "customFontSelectorPrefix", "getCustomFontName", "fileName", "properties", "fontFamily", "variant", "CustomFontSource", "assets", "fonts", "asset", "_a", "fontName", "font", "family", "possibleValues", "possibleValuesWithItalics", "value", "lowerCaseFamily", "tokens", "foundToken", "char", "existingFontFamily", "selector", "createFont", "locator", "foundFontFamily", "getFontVariants", "currentVariant", "variants", "parseVariant", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "currentVariantInfo", "currentWeight", "currentStyle", "variantByWeightAndStyle", "boldVariantByStyle", "variantName", "isString2", "variantInfo", "variantBold", "variantBoldItalic", "variantItalic", "knownFontshareCategories", "parseFontshareCategories", "categoriesField", "category", "isKnownFontshareCategory", "fontsharePrefix", "weightNameToNumber", "weightNames", "allowedVariantsRegex", "FontshareSource", "variantSplit", "weightName", "weightName2", "styleName", "fontshareFonts", "fontshareFont", "fontStyles", "fontStyle", "weight", "style", "mapToKnownCategory", "categoryString", "categoryMapping", "googleFontSelectorPrefix", "GoogleFontSource", "match", "webFonts", "webFont", "mapToKnownCategory2", "import_fontfaceobserver", "__toESM", "require_fontfaceobserver_standalone", "FONT_LOADING_TIMEOUT", "MAX_RETRIES", "FontLoadingError", "message", "fontRequests", "fontReadyPromises", "loadFont", "data2", "doc", "loadFontWithRetries", "attempt", "url", "stretch", "unicodeRange", "requestId", "fontFace", "readyPromise", "isFontReady", "e", "readyPromiseId", "safeFonts", "fontAliases", "fontFamilies", "systemFontFamilyName", "LocalFontSource", "members", "member", "key7", "systemFontFamily", "aliases", "interFontFamily", "inter", "entry", "selectorBold", "selectorBoldItalic", "selectorItalic", "t", "fontFamilies2", "weights", "styles", "createVariantName", "alias", "fontWeightNames", "friendlyStyle", "FontStore", "defaultFont", "assert", "runtime", "googleFonts", "_", "info", "googleLocator", "fontVariant", "fontshareLocator", "import_process4", "selectors", "googleFontsRequested", "fontshareFontsRequested", "error", "warnOnce", "s", "f", "fontSelectors", "result", "fontsLoadedCallback", "fontStore", "promises", "p", "v", "isShallowEqualArray", "a", "b", "v", "i", "linkTag", "linkClosingTag", "outerTag", "outerClosingTag", "blockTag", "blockClosingTag", "inlineTag", "inlineClosingTag", "textContentRegex", "PathSegment", "value", "PathSegment2", "pathSegment", "Point", "points", "index", "pointBefore", "pointAfter", "assert", "delta", "_CanvasStore", "data2", "store", "presentationNode", "id", "children", "found", "child", "canvas", "l", "at", "findNodeFor", "listener", "idOrName", "CanvasStore", "isNode", "id", "presentation", "name", "props", "findNodeFor", "children", "isArray", "child", "result", "RenderNodeContext", "e", "RenderNodeProvider", "Image2", "e", "props", "ref", "background", "children", "alt", "rest", "style", "MotionComponent", "htmlElementAsMotionComponent", "BackgroundImageComponent", "htmlEscapes", "reUnescapedHtml", "reHasUnescapedHtml", "escapeHTML2", "str", "chr", "_a", "deprecatedRichTextPlaceholder", "richTextWrapperClassName", "DeprecatedRichText", "Y", "props", "forwardedRef", "_b", "id", "name", "html", "htmlFromDesign", "text", "textFromDesign", "fonts", "width", "height", "left", "right", "top", "bottom", "center", "className", "stylesPresetsClassName", "visible", "opacity", "rotation", "verticalAlignment", "isEditable", "willChangeTransform", "environment2", "RenderTarget", "withExternalLayout", "positionSticky", "positionStickyTop", "positionStickyRight", "positionStickyBottom", "positionStickyLeft", "__htmlStructure", "__fromCanvasComponent", "_forwardedOverrideId", "_forwardedOverrides", "_usesDOMRect", "children", "rest", "parentSize", "useParentSize", "layoutId", "useLayoutId", "fallbackLayoutRef", "pe", "layoutRef", "navigate", "getRoute", "useRouter", "currentRoute", "useCurrentRoute", "useRoutePreloader", "useMeasureLayout", "inCodeComponent", "re", "ComponentContainerContext", "isOnCanvas", "useIsOnFramerCanvas", "textOrOverride", "forwardedOverrideId", "override", "innerHTML", "escapedText", "implicitPathVariables", "useImplicitPathVariables", "innerHTMLWithReplacedFramerPageLinks", "se", "replaceFramerPageLinks", "ue", "container", "interceptPageLinks", "event", "anchorElement", "findAnchorElement", "navigateFromAttributes", "useLoadFonts", "injectComponentCSSRules", "isHidden2", "style", "convertVerticalAlignment2", "restrictedRenderTarget", "frame2", "calculateRect", "isAutoSized2", "template", "transformTemplate", "rotate", "Animatable", "collectFiltersFromProps", "collectTextShadowsForProps", "forceLayerBackingWithCSSProperties", "B", "motion", "cx", "fromCanvasComponent", "containerRef", "prevFontsRef", "isShallowEqualArray", "fontStore", "newlyLoadedFontCount", "measureClosestComponentContainer", "FitText", "viewBoxScale", "viewBox", "ref", "e", "RichTextContainer", "as", "_initialStyle", "stylesPresetsClassNames", "plainText", "fallbackRef", "containerStyle", "Component14", "htmlElementAsMotionComponent", "isString2", "styleRichTextChildren", "element", "j", "child", "J", "dataPresetTag", "isMotionComponent", "tag", "unwrapMotionComponent", "stylesPresetClassName", "q", "RichText", "content", "isObject2", "contentProp", "h1", "h2", "h3", "p", "a", "addFonts", "component", "fonts", "getFonts", "package_default", "version", "MotionValue", "transformer", "v", "child", "motionValue"]
}
