{"version":3,"file":"5503-bundle.js?1738747637004","mappings":"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zf,GAAY/F,KAAK4lB,MAAM7f,GAErG,EACO4f,CACX,CA7EqC,CA6EnC7E,IAqEEmG,GAAc,IAAI/mB,IA1DJ,CACd,UACA,SACA,WACA,OACA,OACA,UACA,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,eACA,SACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,WACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,SACA,SACA,OACA,WACA,QACA,MACA,SAUJ,SAASgnB,GAAeC,GACpB,MAA4B,iBAAdA,GAA0BF,GAAY9T,IAAIgU,EAC5D,CAKA,IAAIC,IAAkB,IAAAC,eAAc,MAEhCC,IAAgB,IAAAD,eAAc,CAC9BE,eAAgB,CAAC,IAErB,SAASC,KACL,OAAO,IAAAC,YAAWH,IAAeC,cACrC,CAUA,IAuCIG,GAAmB,IAAIxnB,IAAI,CAC3B,UACA,UACA,OACA,QACA,WACA,aACA,oBACA,kBACA,SACA,UACA,SACA,WACA,4BACA,sBACA,mBACA,sBACA,WACA,cACA,SACA,YACA,2BACA,kBACA,sBACA,OACA,eACA,eACA,kBACA,oBACA,SACA,SACA,cACA,eACA,kBACA,iBACA,QACA,aACA,WACA,oBACA,QACA,aACA,cACA,aACA,WACA,aACA,iBAUJ,SAASynB,GAAkB5hB,GACvB,OAAO2hB,GAAiBvU,IAAIpN,EAChC,CAEA,IAAI6hB,GAAc,SAAU7hB,GAAO,OAAQ4hB,GAAkB5hB,EAAM,EAcnE,IACI,IAAI8hB,GAAuB,WAC3BD,GAAc,SAAU7hB,GAEpB,OAAIA,EAAIE,WAAW,OACP0hB,GAAkB5hB,GAGnB8hB,GAAqB9hB,EAEpC,CACJ,CACA,MAAOlF,GAEP,CAsDA,IAAIinB,GAAgB,SAAU3mB,GAC1B,OAAOA,aAAiBM,CAC5B,EAEA,SAASsmB,GAAoBhiB,EAAKlF,GAC9B,IAAImnB,EAASnnB,EAAGmnB,OAAQC,EAAWpnB,EAAGonB,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ACA,KACA,IACA,SACA,UACA,UACA,UACA,SACA,aACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,OACA,MACA,SAEFzE,WAAY,CACVn8C,EAAG,CAAC,QACJ+hD,IAAK,CAAC,MAAO,YACbje,MAAO,CACL,CAAC,OAAQ,YACT,CAAC,YAAY,IAEfke,GAAI,CAAC,CAAC,YAAa,mBACnBC,IAAK,CAAC,YAAa,YACnBC,WAAY,CAAC,QACbC,IAAK,CAAC,QACNC,IAAK,CAAC,QACNC,EAAG,CAAC,QACJ,IAAK,CACH,OACA,SACA,gBACA,YACA,SACA,QACA,MACA,kBACA,aACA,YACA,iBACA,OACA,SACA,cACA,cACA,OACA,UACA,UACA,UACA,QACA,OACA,UACA,QACA,UACA,SACA,WACA,MACA,WACA,UACA,UACA,QACA,UACA,SACA,WACA,SACA,QACA,KACA,QACA,OACA,YACA,QACA,SACA,WACA,OACA,SACA,UACA,SACA,OACA,SACA,WACA,MACA,MACA,OACA,UACA,QACA,QACA,WACA,QACA,OACA,OACA,QACA,UACA,WACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,aAGJpC,SAAU,CACRnc,MAAO,CACLn+B,KAAM,WACN28C,UAAU,I,kBCjKT,SAASC,EAAWC,GAEzB,MAAM9hD,EAEJ8hD,GAA0B,iBAAVA,GAAqC,SAAfA,EAAM78C,KAExC68C,EAAM9hD,OAAS,GACf8hD,EAIN,MAAwB,iBAAV9hD,GAA4D,KAAtCA,EAAM2Y,QAAQ,eAAgB,GACpE,C","sources":["webpack://klubble.app.client/../../../node_modules/framer-motion/dist/framer-motion.es.js","webpack://klubble.app.client/../../../node_modules/framesync/dist/framesync.es.js","webpack://klubble.app.client/../../../node_modules/hey-listen/dist/hey-listen.es.js","webpack://klubble.app.client/../../../node_modules/history/esm/history.js","webpack://klubble.app.client/../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://klubble.app.client/../../../node_modules/@hookform/resolvers/dist/resolvers.mjs","webpack://klubble.app.client/../../../node_modules/@hookform/resolvers/yup/dist/yup.mjs","webpack://klubble.app.client/../../../node_modules/hast-util-parse-selector/lib/index.js","webpack://klubble.app.client/../../../node_modules/hastscript/lib/core.js","webpack://klubble.app.client/../../../node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","webpack://klubble.app.client/../../../node_modules/hastscript/lib/svg.js","webpack://klubble.app.client/../../../node_modules/hastscript/lib/html.js","webpack://klubble.app.client/../../../node_modules/hast-util-from-parse5/lib/index.js","webpack://klubble.app.client/../../../node_modules/hast-util-to-parse5/lib/index.js","webpack://klubble.app.client/../../../node_modules/html-void-elements/index.js","webpack://klubble.app.client/../../../node_modules/hast-util-raw/lib/index.js","webpack://klubble.app.client/../../../node_modules/hast-util-sanitize/lib/index.js","webpack://klubble.app.client/../../../node_modules/hast-util-sanitize/lib/schema.js","webpack://klubble.app.client/../../../node_modules/hast-util-whitespace/index.js"],"sourcesContent":["import { __values, __read, __assign, __rest, __spread, __extends } from 'tslib';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { velocityPerSecond, cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut, inertia, animate as animate$1, mix, clamp, distance, progress, pipe, interpolate, wrap } from 'popmotion';\nimport { invariant, warning } from 'hey-listen';\nimport { complex, number, color, px, percent, degrees, vw, vh, scale, alpha, progressPercentage } from 'style-value-types';\nimport React, { useRef, createContext, useContext, useEffect, createElement, useMemo, useLayoutEffect, forwardRef, Fragment, Component as Component$1, useCallback, useState, cloneElement, Children, isValidElement } from 'react';\n\nvar isRefObject = function (ref) {\n return typeof ref === \"object\" && ref.hasOwnProperty(\"current\");\n};\n\n/**\n * A generic subscription manager.\n */\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = new Set();\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n this.subscriptions.add(handler);\n return function () { return void _this.subscriptions.delete(handler); };\n };\n SubscriptionManager.prototype.notify = function (\n /**\n * Using ...args would be preferable but it's array creation and this\n * might be fired every frame.\n */\n a, b, c) {\n var e_1, _a;\n if (!this.subscriptions.size)\n return;\n try {\n for (var _b = __values(this.subscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n handler(a, b, c);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.clear();\n };\n return SubscriptionManager;\n}());\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\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 function MotionValue(init) {\n var _this = this;\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n }\n };\n this.set(init, false);\n this.canTrackVelocity = isFloat(this.current);\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 * @library\n *\n * ```jsx\n * function 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.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @motion\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.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @internalremarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\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 * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\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 MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\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 MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n 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 MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\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 MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\n/**\n * @internal\n */\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\" + definition + \"'\");\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nvar isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restDelta: 0.5,\n restSpeed: 10,\n}); };\nvar overDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 100 : 30,\n restDelta: 0.01,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: overDampedSpring,\n scaleY: overDampedSpring,\n scale: overDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: overDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n var when = _a.when, delay = _a.delay, delayChildren = _a.delayChildren, staggerChildren = _a.staggerChildren, staggerDirection = _a.staggerDirection, repeat = _a.repeat, repeatType = _a.repeatType, repeatDelay = _a.repeatDelay, from = _a.from, transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var yoyo = _a.yoyo, loop = _a.loop, flip = _a.flip, ease = _a.ease, times = _a.times, transition = __rest(_a, [\"yoyo\", \"loop\", \"flip\", \"ease\", \"times\"]);\n var options = __assign({}, transition);\n if (times) {\n options.offset = times;\n }\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b, _c, _d, _e;\n return ((_e = (_d = (_b = (_a = transition[key]) === null || _a === void 0 ? void 0 : _a.delay) !== null && _b !== void 0 ? _b : (_c = transition[\"default\"]) === null || _c === void 0 ? void 0 : _c.delay) !== null && _d !== void 0 ? _d : transition.delay) !== null && _e !== void 0 ? _e : 0);\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spread(options.to);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n origin = complex.getAnimatableNone(target);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \" + key + \" from \\\"\" + origin + \"\\\" to \\\"\" + target + \"\\\". \" + origin + \" is not an animatable value - to enable this animation set \" + origin + \" to a value animatable to \" + target + \" via the `style` property.\");\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate$1(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a;\n value.set(target);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n *\n * @internal\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\n/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n/**\n * ValueType for ints\n */\nvar int = __assign(__assign({}, number), { transform: Math.round });\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = {\n // Color props\n color: 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 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: 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 * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spread(dimensionValueTypes, [color, complex]);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\n/**\n * Decides if the supplied variable is a function that returns a variant\n */\nfunction isVariantResolver(variant) {\n return typeof variant === \"function\";\n}\n/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\n/**\n * Resovles a variant if it's a variant resolver\n */\nfunction resolveVariant(visualElement, variant, custom) {\n var resolved = {};\n if (!variant) {\n return resolved;\n }\n else if (isVariantResolver(variant)) {\n resolved = variant(custom !== null && custom !== void 0 ? custom : visualElement.getVariantPayload(), getCurrent(visualElement), getVelocity(visualElement));\n }\n else {\n resolved = variant;\n }\n return __assign({ transition: visualElement.getDefaultTransition() }, resolved);\n}\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition, _a) {\n var priority = (_a === void 0 ? {} : _a).priority;\n var _b = visualElement.makeTargetAnimatable(resolveVariant(visualElement, definition), false), _c = _b.transitionEnd, transitionEnd = _c === void 0 ? {} : _c, transition = _b.transition, target = __rest(_b, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n if (!priority)\n visualElement.baseTarget[key] = value;\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spread(variantLabels).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n setTarget(visualElement, visualElement.getVariant(key));\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b;\n var _c;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n // If this is a keyframes value, we can attempt to use the first value in the\n // array as that's going to be the first value of the animation anyway\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n // If it isn't a keyframes or the first keyframes value was set as `null`, read the\n // value from the DOM. It might be worth investigating whether to check props (for SVG)\n // or props.style (for HTML) if the value exists there before attempting to read.\n if (value === null) {\n var readValue = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readNativeValue(key);\n value = readValue !== undefined ? readValue : target[key];\n invariant(value !== null, \"No initial value for \\\"\" + key + \"\\\" can be inferred. Ensure an initial value for \\\"\" + key + \"\\\" is defined on the component.\");\n }\n if (typeof value === \"string\" && isNumericalString(value)) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n value = complex.getAnimatableNone(targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_b = (_c = origin)[key]) !== null && _b !== void 0 ? _b : (_c[key] = value);\n visualElement.baseTarget[key] = value;\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] = (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\n/**\n * @internal\n */\nfunction startVisualElementAnimation(visualElement, definition, opts) {\n if (opts === void 0) { opts = {}; }\n if (opts.priority) {\n visualElement.activeOverrides.add(opts.priority);\n }\n visualElement.resetIsAnimating(opts.priority);\n var animation;\n if (isVariantLabels(definition)) {\n animation = animateVariantLabels(visualElement, definition, opts);\n }\n else if (isVariantLabel(definition)) {\n animation = animateVariant(visualElement, definition, opts);\n }\n else {\n animation = animateTarget(visualElement, definition, opts);\n }\n visualElement.onAnimationStart();\n return animation.then(function () { return visualElement.onAnimationComplete(); });\n}\nfunction animateVariantLabels(visualElement, variantLabels, opts) {\n var animations = __spread(variantLabels).reverse()\n .map(function (label) { return animateVariant(visualElement, label, opts); });\n return Promise.all(animations);\n}\nfunction animateVariant(visualElement, label, opts) {\n var _a;\n var priority = (opts && opts.priority) || 0;\n var variantDefinition = visualElement.getVariant(label);\n var variant = resolveVariant(visualElement, variantDefinition, opts && opts.custom);\n var transition = variant.transition || {};\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getAnimation = variantDefinition\n ? function () { return animateTarget(visualElement, variant, opts); }\n : function () { return Promise.resolve(); };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getChildrenAnimations = ((_a = visualElement.variantChildrenOrder) === null || _a === void 0 ? void 0 : _a.size) ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a;\n return animateChildren(visualElement, label, delayChildren + forwardDelay, transition.staggerChildren, transition.staggerDirection, priority, opts === null || opts === void 0 ? void 0 : opts.custom);\n }\n : function () { return Promise.resolve(); };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n var when = transition.when;\n if (when) {\n var _b = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildrenAnimations]\n : [getChildrenAnimations, getAnimation], 2), first = _b[0], last = _b[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildrenAnimations(opts === null || opts === void 0 ? void 0 : opts.delay)]);\n }\n}\nfunction animateChildren(visualElement, variantLabel, delayChildren, staggerChildren, staggerDirection, priority, custom) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n if (priority === void 0) { priority = 0; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildrenOrder.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) { return i * staggerChildren; }\n : function (i) { return maxStaggerDuration - i * staggerChildren; };\n Array.from(visualElement.variantChildrenOrder).forEach(function (child, i) {\n var animation = animateVariant(child, variantLabel, {\n priority: priority,\n delay: delayChildren + generateStaggerDuration(i),\n custom: custom,\n });\n animations.push(animation);\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction animateTarget(visualElement, definition, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.delay, delay = _c === void 0 ? 0 : _c, _d = _b.priority, priority = _d === void 0 ? 0 : _d, transitionOverride = _b.transitionOverride, custom = _b.custom;\n var targetAndTransition = resolveVariant(visualElement, definition, custom);\n if (transitionOverride)\n targetAndTransition.transition = transitionOverride;\n var _e = visualElement.makeTargetAnimatable(targetAndTransition), transitionEnd = _e.transitionEnd, transition = _e.transition, target = __rest(_e, [\"transitionEnd\", \"transition\"]);\n if (priority)\n visualElement.resolvedOverrides[priority] = target;\n var animations = [];\n for (var key in target) {\n var value = visualElement.getValue(key);\n if (!value || !target || target[key] === undefined)\n continue;\n var valueTarget = target[key];\n if (!priority) {\n visualElement.baseTarget[key] = resolveFinalValueInKeyframes(valueTarget);\n }\n if (visualElement.isAnimating.has(key))\n continue;\n visualElement.isAnimating.add(key);\n animations.push(startAnimation(key, value, valueTarget, __assign({ delay: delay }, transition)));\n }\n var allAnimations = Promise.all(animations);\n return transitionEnd\n ? allAnimations.then(function () {\n return setTarget(visualElement, transitionEnd, { priority: priority });\n })\n : allAnimations;\n}\n\nfunction setOverride(visualElement, definition, index) {\n var _a;\n visualElement.overrides[index] = definition;\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setOverride(child, definition, index);\n });\n}\nfunction startOverride(visualElement, index) {\n var override = visualElement.overrides[index];\n if (override) {\n return startVisualElementAnimation(visualElement, override, {\n priority: index,\n });\n }\n}\nfunction clearOverride(visualElement, index) {\n var _a;\n (_a = visualElement.variantChildrenOrder) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n clearOverride(child, index);\n });\n var override = visualElement.overrides[index];\n if (!override)\n return;\n visualElement.activeOverrides.delete(index);\n var highest = getHighestOverridePriortiy(visualElement);\n visualElement.resetIsAnimating();\n if (highest) {\n var highestOverride = visualElement.overrides[highest];\n highestOverride && startOverride(visualElement, highest);\n }\n // Figure out which remaining values were affected by the override and animate those\n var overrideTarget = visualElement.resolvedOverrides[index];\n if (!overrideTarget)\n return;\n var remainingValues = {};\n for (var key in visualElement.baseTarget) {\n if (overrideTarget[key] !== undefined) {\n remainingValues[key] = visualElement.baseTarget[key];\n }\n }\n visualElement.onAnimationStart();\n animateTarget(visualElement, remainingValues).then(function () {\n visualElement.onAnimationComplete();\n });\n}\nfunction getHighestOverridePriortiy(visualElement) {\n if (!visualElement.activeOverrides.size)\n return 0;\n return Math.max.apply(Math, __spread(Array.from(visualElement.activeOverrides)));\n}\n\n/**\n * VisualElement is an abstract class that provides a generic animation-optimised interface to the\n * underlying renderer.\n *\n * Currently many features interact directly with HTMLVisualElement/SVGVisualElement\n * but the idea is we can create, for instance, a ThreeVisualElement that extends\n * VisualElement and we can quickly offer all the same features.\n */\nvar VisualElement = /** @class */ (function () {\n function VisualElement(parent, ref) {\n var _this = this;\n // An iterable list of current children\n this.children = new Set();\n /**\n * A set of values that we animate back to when a value is cleared of all overrides.\n */\n this.baseTarget = {};\n /**\n * A series of target overrides that we can animate to/from when overrides are set/cleared.\n */\n this.overrides = [];\n /**\n * A series of target overrides as they were originally resolved.\n */\n this.resolvedOverrides = [];\n /**\n * A Set of currently active override indexes\n */\n this.activeOverrides = new Set();\n /**\n * A Set of value keys that are currently animating.\n */\n this.isAnimating = new Set();\n // The latest resolved MotionValues\n this.latest = {};\n // A map of MotionValues used to animate this element\n this.values = new Map();\n // Unsubscription callbacks for MotionValue subscriptions\n this.valueSubscriptions = new Map();\n // A configuration for this VisualElement, each derived class can extend this.\n this.config = {};\n this.isMounted = false;\n // A pre-bound call to the user-provided `onUpdate` callback. This won't\n // be called more than once per frame.\n this.update = function () { return _this.config.onUpdate(_this.latest); };\n // Pre-bound version of render\n this.triggerRender = function () { return _this.render(); };\n // This function gets passed to the rendered component's `ref` prop\n // and is used to mount/unmount the VisualElement\n this.ref = function (element) {\n element ? _this.mount(element) : _this.unmount();\n if (!_this.externalRef)\n return;\n if (typeof _this.externalRef === \"function\") {\n _this.externalRef(element);\n }\n else if (isRefObject(_this.externalRef)) {\n _this.externalRef.current = element;\n }\n };\n // Create a relationship with the provided parent.\n this.parent = parent;\n this.rootParent = parent ? parent.rootParent : this;\n this.treePath = parent ? __spread(parent.treePath, [parent]) : [];\n // Calculate the depth of this node in the VisualElement graph\n this.depth = parent ? parent.depth + 1 : 0;\n // A reference to any externally-defined React ref. This might live better\n // outside the VisualElement and be handled in a hook.\n this.externalRef = ref;\n }\n VisualElement.prototype.getVariantPayload = function () {\n return this.config.custom;\n };\n VisualElement.prototype.getVariant = function (label) {\n var _a;\n return (_a = this.config.variants) === null || _a === void 0 ? void 0 : _a[label];\n };\n VisualElement.prototype.addVariantChild = function (visualElement) {\n if (!this.variantChildren)\n this.variantChildren = new Set();\n this.variantChildren.add(visualElement);\n };\n VisualElement.prototype.addVariantChildOrder = function (visualElement) {\n if (!this.variantChildrenOrder)\n this.variantChildrenOrder = new Set();\n this.variantChildrenOrder.add(visualElement);\n };\n VisualElement.prototype.onAnimationStart = function () {\n var _a, _b;\n (_b = (_a = this.config).onAnimationStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n VisualElement.prototype.onAnimationComplete = function () {\n var _a, _b;\n this.isMounted && ((_b = (_a = this.config).onAnimationComplete) === null || _b === void 0 ? void 0 : _b.call(_a));\n };\n VisualElement.prototype.getDefaultTransition = function () {\n return this.config.transition;\n };\n VisualElement.prototype.resetIsAnimating = function (priority) {\n var _a;\n if (priority === void 0) { priority = 0; }\n this.isAnimating.clear();\n // If this isn't the highest priority gesture, block the animation\n // of anything that's currently being animated\n if (priority < getHighestOverridePriortiy(this)) {\n this.checkOverrideIsAnimating(priority);\n }\n (_a = this.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n return child.resetIsAnimating(priority);\n });\n };\n VisualElement.prototype.checkOverrideIsAnimating = function (priority) {\n var numOverrides = this.overrides.length;\n for (var i = priority + 1; i < numOverrides; i++) {\n var resolvedOverride = this.resolvedOverrides[i];\n if (resolvedOverride) {\n for (var key in resolvedOverride) {\n this.isAnimating.add(key);\n }\n }\n }\n };\n VisualElement.prototype.subscribe = function (child) {\n var _this = this;\n this.children.add(child);\n return function () { return _this.children.delete(child); };\n };\n // Check whether this element has a MotionValue of the provided key\n VisualElement.prototype.hasValue = function (key) {\n return this.values.has(key);\n };\n // Add a MotionValue\n VisualElement.prototype.addValue = function (key, value) {\n if (this.hasValue(key))\n this.removeValue(key);\n this.values.set(key, value);\n this.setSingleStaticValue(key, value.get());\n this.subscribeToValue(key, value);\n };\n // Remove a MotionValue\n VisualElement.prototype.removeValue = function (key) {\n var _a;\n (_a = this.valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n this.valueSubscriptions.delete(key);\n this.values.delete(key);\n delete this.latest[key];\n };\n VisualElement.prototype.getValue = function (key, defaultValue) {\n var value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = new MotionValue(defaultValue);\n this.addValue(key, value);\n }\n return value;\n };\n // Iterate over all MotionValues\n VisualElement.prototype.forEachValue = function (callback) {\n this.values.forEach(callback);\n };\n // Get the underlying rendered instance of this VisualElement. For instance in\n // HTMLVisualElement this will be a HTMLElement.\n VisualElement.prototype.getInstance = function () {\n return this.element;\n };\n VisualElement.prototype.updateConfig = function (config) {\n if (config === void 0) { config = {}; }\n this.config = __assign({}, config);\n };\n // Set a single `latest` value\n VisualElement.prototype.setSingleStaticValue = function (key, value) {\n this.latest[key] = value;\n };\n // Statically set values to `latest` without needing a MotionValue\n VisualElement.prototype.setStaticValues = function (values, value) {\n if (typeof values === \"string\") {\n this.setSingleStaticValue(values, value);\n }\n else {\n for (var key in values) {\n this.setSingleStaticValue(key, values[key]);\n }\n }\n };\n VisualElement.prototype.scheduleRender = function () {\n sync.render(this.triggerRender, false, true);\n };\n VisualElement.prototype.scheduleUpdateLayoutDelta = function () {\n sync.preRender(this.rootParent.updateLayoutDelta, false, true);\n };\n VisualElement.prototype.subscribeToValue = function (key, value) {\n var _this = this;\n var onChange = function (latest) {\n _this.setSingleStaticValue(key, latest);\n // Schedule onUpdate if we have an onUpdate listener and the component has mounted\n _this.element &&\n _this.config.onUpdate &&\n sync.update(_this.update, false, true);\n };\n var onRender = function () {\n _this.element && _this.scheduleRender();\n };\n var unsubscribeOnChange = value.onChange(onChange);\n var unsubscribeOnRender = value.onRenderRequest(onRender);\n this.valueSubscriptions.set(key, function () {\n unsubscribeOnChange();\n unsubscribeOnRender();\n });\n };\n // Mount the VisualElement with the actual DOM element\n VisualElement.prototype.mount = function (element) {\n invariant(!!element, \"No ref found. Ensure components created with motion.custom forward refs using React.forwardRef\");\n if (this.parent) {\n this.removeFromParent = this.parent.subscribe(this);\n }\n /**\n * Save the element to this.element as a semantic API, this.current to the VisualElement\n * is compatible with existing RefObject APIs.\n */\n this.element = this.current = element;\n };\n // Unmount the VisualElement and cancel any scheduled updates\n VisualElement.prototype.unmount = function () {\n var _this = this;\n this.forEachValue(function (_, key) { return _this.removeValue(key); });\n cancelSync.update(this.update);\n cancelSync.render(this.render);\n this.removeFromParent && this.removeFromParent();\n };\n return VisualElement;\n}());\n\nfunction noop(any) {\n return any;\n}\n\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToAxisBox(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertAxisBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.y;\n return {\n top: y.min,\n bottom: y.max,\n left: x.min,\n right: x.max,\n };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoundingBox(_a, transformPoint) {\n var top = _a.top, left = _a.left, bottom = _a.bottom, right = _a.right;\n if (transformPoint === void 0) { transformPoint = noop; }\n var topLeft = transformPoint({ x: left, y: top });\n var bottomRight = transformPoint({ x: right, y: bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n/**\n * Create an empty axis box of zero size\n */\nfunction axisBox() {\n return { x: { min: 0, max: 1 }, y: { min: 0, max: 1 } };\n}\nfunction copyAxisBox(box) {\n return {\n x: __assign({}, box.x),\n y: __assign({}, box.y),\n };\n}\n/**\n * Create an empty box delta\n */\nvar zeroDelta = {\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n};\nfunction delta() {\n return {\n x: __assign({}, zeroDelta),\n y: __assign({}, zeroDelta),\n };\n}\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"perspective\", \"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Used to store the keys of all transforms that will distorted a measured bounding box.\n */\nvar boxDistortingKeys = new Set();\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n var isDistorting = new Set([\"rotate\", \"skew\"]).has(operationKey);\n transformAxes.forEach(function (axesKey) {\n var key = operationKey + axesKey;\n transformProps.push(key);\n isDistorting && boxDistortingKeys.add(key);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, transformKeys, transformTemplate, transformIsDefault, enableHardwareAcceleration, allowTransformNone) {\n if (enableHardwareAcceleration === void 0) { enableHardwareAcceleration = true; }\n if (allowTransformNone === void 0) { allowTransformNone = true; }\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += (translateAlias[key] || key) + \"(\" + transform[key] + \") \";\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return originX + \" \" + originY + \" \" + originZ;\n}\n/**\n * Build a transform style that takes a calculated delta between the element's current\n * space on screen and projects it into the desired space.\n */\nfunction buildLayoutProjectionTransform(_a, treeScale) {\n var x = _a.x, y = _a.y;\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n var xTranslate = x.translate / treeScale.x;\n var yTranslate = y.translate / treeScale.y;\n return \"translate3d(\" + xTranslate + \"px, \" + yTranslate + \"px, 0) scale(\" + x.scale + \", \" + y.scale + \")\";\n}\nvar identityProjection = buildLayoutProjectionTransform(delta(), {\n x: 1,\n y: 1,\n});\n/**\n * Take the calculated delta origin and apply it as a transform string.\n */\nfunction buildLayoutProjectionTransformOrigin(_a) {\n var x = _a.x, y = _a.y;\n return x.origin * 100 + \"% \" + y.origin * 100 + \"% 0\";\n}\n/**\n * Build a transform string only from the properties that distort bounding box measurements\n * (rotate and skew)\n */\nfunction buildBoxDistortingTransforms(transform, transformKeys) {\n var transformString = \"\";\n transformKeys.sort(sortTransformProps);\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n if (boxDistortingKeys.has(key)) {\n transformString += key + \"(\" + transform[key] + \") \";\n }\n }\n return transformString;\n}\n\n/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nfunction isCSSVariable$1(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\" + current + \"\\\". This may indicate a circular fallback dependency.\");\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable$1(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof HTMLElement))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable$1(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable$1(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nfunction pixelsToPercent(pixels, axis) {\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nfunction correctBorderRadius(latest, viewportBox) {\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n var x = pixelsToPercent(latest, viewportBox.x);\n var y = pixelsToPercent(latest, viewportBox.y);\n return x + \"% \" + y + \"%\";\n}\nvar varToken = \"_$css\";\nfunction correctBoxShadow(latest, _viewportBox, delta, treeScale) {\n var original = latest;\n /**\n * We need to first strip and store CSS variables from the string.\n */\n var containsCSSVariables = latest.includes(\"var(\");\n var cssVariables = [];\n if (containsCSSVariables) {\n latest = latest.replace(cssVariableRegex, function (match) {\n cssVariables.push(match);\n return varToken;\n });\n }\n var shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n var template = complex.createTransformer(latest);\n var offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n var xScale = delta.x.scale * treeScale.x;\n var yScale = delta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n var averageScale = mix(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n var output = template(shadow);\n if (containsCSSVariables) {\n var i_1 = 0;\n output = output.replace(varToken, function () {\n var cssVariable = cssVariables[i_1];\n i_1++;\n return cssVariable;\n });\n }\n return output;\n}\nvar borderCorrectionDefinition = {\n process: correctBorderRadius,\n};\nvar valueScaleCorrection = {\n borderRadius: __assign(__assign({}, borderCorrectionDefinition), { applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ] }),\n borderTopLeftRadius: borderCorrectionDefinition,\n borderTopRightRadius: borderCorrectionDefinition,\n borderBottomLeftRadius: borderCorrectionDefinition,\n borderBottomRightRadius: borderCorrectionDefinition,\n boxShadow: {\n process: correctBoxShadow,\n },\n};\n/**\n * @internal\n */\nfunction addScaleCorrection(correctors) {\n for (var key in correctors) {\n valueScaleCorrection[key] = correctors[key];\n }\n}\n\n/**\n * Build style and CSS variables\n *\n * This function converts a Motion style prop:\n *\n * { x: 100, width: 100, originX: 0.5 }\n *\n * Into an object with default value types applied and default\n * transform order set:\n *\n * {\n * transform: 'translateX(100px) translateZ(0)`,\n * width: '100px',\n * transformOrigin: '50% 50%'\n * }\n *\n * Styles are saved to `style` and CSS vars to `vars`.\n *\n * This function works with mutative data structures.\n */\nfunction buildHTMLStyles(latest, style, vars, transform, transformOrigin, transformKeys, _a, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox) {\n var enableHardwareAcceleration = _a.enableHardwareAcceleration, transformTemplate = _a.transformTemplate, allowTransformNone = _a.allowTransformNone;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable. Transforms and transform origins are kept seperately\n * for further processing\n */\n for (var key in latest) {\n var value = latest[key];\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = getDefaultValueType(key);\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag and enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n if (!transformIsNone)\n continue;\n // If all the transform keys we've so far encountered are their default value\n // then check to see if this one isn't\n var defaultValue = valueType.default !== undefined ? valueType.default : 0;\n if (value !== defaultValue)\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n // If this is a transform origin, flag and enable further transform-origin processing\n transformOrigin[key] = valueAsType;\n hasTransformOrigin = true;\n }\n else if (key !== \"transform\" || typeof value !== \"function\") {\n // Handle all remaining values. Decide which map to save to depending\n // on whether this is a CSS variable\n var bucket = isCSSVariable(key) ? vars : style;\n // If we need to perform scale correction, and we have a handler for this\n // value type (ie borderRadius), perform it\n if (isLayoutProjectionEnabled && valueScaleCorrection[key]) {\n var corrected = valueScaleCorrection[key].process(value, targetBox, delta, treeScale);\n /**\n * Scale-correctable values can define a number of other values to break\n * down into. For instance borderRadius needs applying to borderBottomLeftRadius etc\n */\n var applyTo = valueScaleCorrection[key].applyTo;\n if (applyTo) {\n var num = applyTo.length;\n for (var i = 0; i < num; i++) {\n bucket[applyTo[i]] = corrected;\n }\n }\n else {\n bucket[key] = corrected;\n }\n }\n else {\n bucket[key] = valueAsType;\n }\n }\n }\n /**\n * Build transform and transformOrigin. If we're performing layout projection these need\n * to be based off the deltaFinal data. Any user-set origins will have been pre-baked\n * into the deltaFinal.\n */\n if (isLayoutProjectionEnabled) {\n style.transform = buildLayoutProjectionTransform(deltaFinal, treeScale);\n if (style.transform === identityProjection)\n style.transform = \"\";\n /**\n * If we have transform styles, build only those that distort bounding boxes (rotate/skew)\n * as translations and scales will already have been used to calculate deltaFinal.\n */\n if (hasTransform) {\n style.transform +=\n \" \" + buildBoxDistortingTransforms(transform, transformKeys);\n style.transform = style.transform.trim();\n }\n if (transformTemplate) {\n style.transform = transformTemplate(transform, style.transform);\n }\n style.transformOrigin = buildLayoutProjectionTransformOrigin(deltaFinal);\n }\n else {\n if (hasTransform) {\n style.transform = buildTransform(transform, transformKeys, transformTemplate, transformIsNone, enableHardwareAcceleration, allowTransformNone);\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n }\n}\n\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetAxis(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction resetBox(box, originBox) {\n resetAxis(box.x, originBox.x);\n resetAxis(box.y, originBox.y);\n}\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n var distanceFromOrigin = point - originPoint;\n var scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate, scale, originPoint, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, _a) {\n var x = _a.x, y = _a.y;\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction applyAxisTransforms(final, axis, transforms, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n // Copy the current axis to the final axis before mutation\n final.min = axis.min;\n final.max = axis.max;\n var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n var originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(final, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction applyBoxTransforms(finalBox, box, transforms) {\n applyAxisTransforms(finalBox.x, box.x, transforms, xKeys);\n applyAxisTransforms(finalBox.y, box.y, transforms, yKeys);\n}\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate, scale, origin, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n if (origin === void 0) { origin = 0.5; }\n var originPoint = mix(axis.min, axis.max, origin) - translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale);\n}\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms) {\n removeAxisTransforms(box.x, transforms, xKeys);\n removeAxisTransforms(box.y, transforms, yKeys);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within HTMLVisualElement.updateLayoutDelta\n */\nfunction applyTreeDeltas(box, treePath) {\n var treeLength = treePath.length;\n for (var i = 0; i < treeLength; i++) {\n applyBoxDelta(box, treePath[i].delta);\n }\n}\n\nvar clampProgress = function (v) { return clamp(0, 1, v); };\n/**\n * Returns true if the provided value is within maxDistance of the provided target\n */\nfunction isNear(value, target, maxDistance) {\n if (target === void 0) { target = 0; }\n if (maxDistance === void 0) { maxDistance = 0.01; }\n return distance(value, target) < maxDistance;\n}\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n var origin = 0.5;\n var sourceLength = calcLength(source);\n var targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clampProgress(origin);\n}\n/**\n * Update the AxisDelta with a transform that projects source into target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateAxisDelta(delta, source, target, origin) {\n delta.origin = origin === undefined ? calcOrigin(source, target) : origin;\n delta.originPoint = mix(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001))\n delta.scale = 1;\n delta.translate =\n mix(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate))\n delta.translate = 0;\n}\n/**\n * Update the BoxDelta with a transform that projects the source into the target.\n *\n * The transform `origin` is optional. If not provided, it'll be automatically\n * calculated based on the relative positions of the two bounding boxes.\n */\nfunction updateBoxDelta(delta, source, target, origin) {\n updateAxisDelta(delta.x, source.x, target.x, origin);\n updateAxisDelta(delta.y, source.y, target.y, origin);\n}\n/**\n * Update the treeScale by incorporating the parent's latest scale into its treeScale.\n */\nfunction updateTreeScale(treeScale, parentTreeScale, parentDelta) {\n treeScale.x = parentTreeScale.x * parentDelta.x.scale;\n treeScale.y = parentTreeScale.y * parentDelta.y.scale;\n}\n\n// Call a handler once for each axis\nfunction eachAxis(handler) {\n return [handler(\"x\"), handler(\"y\")];\n}\n\n/**\n * Measure and return the element bounding box.\n *\n * We convert the box into an AxisBox2D to make it easier to work with each axis\n * individually and programmatically.\n *\n * This function optionally accepts a transformPagePoint function which allows us to compensate\n * for, for instance, measuring the element within a scaled plane like a Framer devivce preview component.\n */\nfunction getBoundingBox(element, transformPagePoint) {\n var box = element.getBoundingClientRect();\n return convertBoundingBoxToAxisBox(transformBoundingBox(box, transformPagePoint));\n}\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) { return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n}; };\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.render();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a) {\n var x = _a.x;\n return x.max - x.min;\n },\n height: function (_a) {\n var y = _a.y;\n return y.max - y.min;\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.getBoundingBox();\n var elementComputedStyle = visualElement.getComputedStyle();\n var display = elementComputedStyle.display, top = elementComputedStyle.top, left = elementComputedStyle.left, bottom = elementComputedStyle.bottom, right = elementComputedStyle.right, transform = elementComputedStyle.transform;\n var originComputedStyle = { top: top, left: left, bottom: bottom, right: right, transform: transform };\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValues(\"display\", target.display || \"block\");\n }\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.render();\n var targetBbox = visualElement.getBoundingBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, positionalValues[key](originBbox, originComputedStyle));\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var to = target[key];\n var fromType = findDimensionValueType(from);\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n for (var i = to[0] === null ? 1 : 0; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var 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 }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) && (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues = removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.render();\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\n/**\n * A VisualElement for HTMLElements\n */\nvar HTMLVisualElement = /** @class */ (function (_super) {\n __extends(HTMLVisualElement, _super);\n function HTMLVisualElement() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n *\n */\n _this.defaultConfig = {\n enableHardwareAcceleration: true,\n allowTransformNone: true,\n };\n /**\n * A mutable record of styles we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.style = {};\n /**\n * A record of styles we only want to apply via React. This gets set in useMotionValues\n * and applied in the render function. I'd prefer this to live somewhere else to decouple\n * VisualElement from React but works for now.\n */\n _this.reactStyle = {};\n /**\n * A mutable record of CSS variables we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.vars = {};\n /**\n * A mutable record of transforms we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.transform = {};\n /**\n * A mutable record of transform origins we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.transformOrigin = {};\n /**\n * A mutable record of transform keys we want to apply to the rendered Element. We order\n * this to order transforms in the desired order. We use a mutable data structure to reduce GC during animations.\n */\n _this.transformKeys = [];\n _this.config = _this.defaultConfig;\n /**\n * ========================================\n * Layout\n * ========================================\n */\n _this.isLayoutProjectionEnabled = false;\n /**\n * A set of layout update event handlers. These are only called once all layouts have been read,\n * making it safe to perform DOM write operations.\n */\n _this.layoutUpdateListeners = new SubscriptionManager();\n _this.layoutMeasureListeners = new SubscriptionManager();\n _this.viewportBoxUpdateListeners = new SubscriptionManager();\n /**\n * Keep track of whether the viewport box has been updated since the last render.\n * If it has, we want to fire the onViewportBoxUpdate listener.\n */\n _this.hasViewportBoxUpdated = false;\n /**\n * The visual target we want to project our component into on a given frame\n * before applying transforms defined in `animate` or `style`.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.targetBoxFinal = axisBox();\n /**\n * The overall scale of the local coordinate system as transformed by all parents\n * of this component. We use this for scale correction on our calculated layouts\n * and scale-affected values like `boxShadow`.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.treeScale = { x: 1, y: 1 };\n _this.prevTreeScale = { x: 1, y: 1 };\n /**\n * The delta between the boxCorrected and the desired\n * targetBox (before user-set transforms are applied). The calculated output will be\n * handed to the renderer and used as part of the style correction calculations, for\n * instance calculating how to display the desired border-radius correctly.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.delta = delta();\n /**\n * The delta between the boxCorrected and the desired targetBoxFinal. The calculated\n * output will be handed to the renderer and used to project the boxCorrected into\n * the targetBoxFinal.\n *\n * This is considered mutable to avoid object creation on each frame.\n */\n _this.deltaFinal = delta();\n /**\n * The computed transform string to apply deltaFinal to the element. Currently this is only\n * being used to diff and decide whether to render on the current frame, but a minor optimisation\n * could be to provide this to the buildHTMLStyle function.\n */\n _this.deltaTransform = identityProjection;\n /**\n *\n */\n _this.stopLayoutAxisAnimation = {\n x: function () { },\n y: function () { },\n };\n _this.isTargetBoxLocked = false;\n /**\n *\n */\n _this.axisProgress = {\n x: motionValue(0),\n y: motionValue(0),\n };\n _this.updateLayoutDelta = function () {\n _this.isLayoutProjectionEnabled && _this.box && _this.updateLayoutDeltas();\n /**\n * Ensure all children layouts are also updated.\n *\n * This uses a pre-bound function executor rather than a lamda to avoid creating a new function\n * multiple times per frame (source of mid-animation GC)\n */\n _this.children.forEach(fireUpdateLayoutDelta);\n };\n return _this;\n }\n /**\n * When a value is removed, we want to make sure it's removed from all rendered data structures.\n */\n HTMLVisualElement.prototype.removeValue = function (key) {\n _super.prototype.removeValue.call(this, key);\n delete this.vars[key];\n delete this.style[key];\n };\n /**\n * Empty the mutable data structures by re-creating them. We can do this every React render\n * as the comparative workload to the rest of the render is very low and this is also when\n * we want to reflect values that might have been removed by the render.\n */\n HTMLVisualElement.prototype.clean = function () {\n this.style = {};\n this.vars = {};\n this.transform = {};\n };\n HTMLVisualElement.prototype.updateConfig = function (config) {\n if (config === void 0) { config = {}; }\n this.config = __assign(__assign({}, this.defaultConfig), config);\n };\n /**\n * Read a value directly from the HTMLElement style.\n */\n HTMLVisualElement.prototype.read = function (key) {\n return this.getComputedStyle()[key] || 0;\n };\n HTMLVisualElement.prototype.addValue = function (key, value) {\n _super.prototype.addValue.call(this, key, value);\n // If we have rotate values we want to foce the layoutOrigin used in layout projection\n // to the center of the element.\n if (key.startsWith(\"rotate\"))\n this.layoutOrigin = 0.5;\n };\n /**\n * Read a value directly from the HTMLElement in case it's not defined by a Motion\n * prop. If it's a transform, we just return a pre-defined default value as reading these\n * out of a matrix is either error-prone or can incur a big payload for little benefit.\n */\n HTMLVisualElement.prototype.readNativeValue = function (key) {\n if (isTransformProp(key)) {\n var defaultValueType = getDefaultValueType(key);\n return defaultValueType ? defaultValueType.default || 0 : 0;\n }\n else {\n return this.read(key);\n }\n };\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n HTMLVisualElement.prototype.makeTargetAnimatable = function (_a, parseDOMValues) {\n if (parseDOMValues === void 0) { parseDOMValues = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var transformValues = this.config.transformValues;\n var origin = getOrigin(target, transition || {}, this);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\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 (parseDOMValues) {\n checkTargetForNewValues(this, target, origin);\n var parsed = parseDomVariant(this, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition,\n transitionEnd: transitionEnd }, target);\n };\n HTMLVisualElement.prototype.enableLayoutProjection = function () {\n this.isLayoutProjectionEnabled = true;\n };\n HTMLVisualElement.prototype.hide = function () {\n if (this.isVisible === false)\n return;\n this.isVisible = false;\n this.scheduleRender();\n };\n HTMLVisualElement.prototype.show = function () {\n if (this.isVisible === true)\n return;\n this.isVisible = true;\n this.scheduleRender();\n };\n /**\n * Register an event listener to fire when the layout is updated. We might want to expose support\n * for this via a `motion` prop.\n */\n HTMLVisualElement.prototype.onLayoutUpdate = function (callback) {\n return this.layoutUpdateListeners.add(callback);\n };\n HTMLVisualElement.prototype.onLayoutMeasure = function (callback) {\n return this.layoutMeasureListeners.add(callback);\n };\n HTMLVisualElement.prototype.onViewportBoxUpdate = function (callback) {\n return this.viewportBoxUpdateListeners.add(callback);\n };\n /**\n * To be called when all layouts are successfully updated. In turn we can notify layoutUpdate\n * subscribers.\n */\n HTMLVisualElement.prototype.layoutReady = function (config) {\n this.layoutUpdateListeners.notify(this.box, this.prevViewportBox || this.box, config);\n };\n /**\n * Measure and return the Element's bounding box. We convert it to a AxisBox2D\n * structure to make it easier to work on each individual axis generically.\n */\n HTMLVisualElement.prototype.getBoundingBox = function () {\n var transformPagePoint = this.config.transformPagePoint;\n return getBoundingBox(this.element, transformPagePoint);\n };\n HTMLVisualElement.prototype.getBoundingBoxWithoutTransforms = function () {\n var bbox = this.getBoundingBox();\n removeBoxTransforms(bbox, this.latest);\n return bbox;\n };\n /**\n * Return the computed style after a render.\n */\n HTMLVisualElement.prototype.getComputedStyle = function () {\n return window.getComputedStyle(this.element);\n };\n /**\n * Record the bounding box as it exists before a re-render.\n */\n HTMLVisualElement.prototype.snapshotBoundingBox = function () {\n this.prevViewportBox = this.getBoundingBoxWithoutTransforms();\n /**\n * Update targetBox to match the prevViewportBox. This is just to ensure\n * that targetBox is affected by scroll in the same way as the measured box\n */\n this.rebaseTargetBox(false, this.prevViewportBox);\n };\n HTMLVisualElement.prototype.rebaseTargetBox = function (force, box) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (box === void 0) { box = this.box; }\n var _a = this.axisProgress, x = _a.x, y = _a.y;\n var shouldRebase = this.box &&\n !this.isTargetBoxLocked &&\n !x.isAnimating() &&\n !y.isAnimating();\n if (force || shouldRebase) {\n eachAxis(function (axis) {\n var _a = box[axis], min = _a.min, max = _a.max;\n _this.setAxisTarget(axis, min, max);\n });\n }\n };\n HTMLVisualElement.prototype.measureLayout = function () {\n var _this = this;\n this.box = this.getBoundingBox();\n this.boxCorrected = copyAxisBox(this.box);\n if (!this.targetBox)\n this.targetBox = copyAxisBox(this.box);\n this.layoutMeasureListeners.notify(this.box, this.prevViewportBox || this.box);\n sync.update(function () { return _this.rebaseTargetBox(); });\n };\n HTMLVisualElement.prototype.lockTargetBox = function () {\n this.isTargetBoxLocked = true;\n };\n HTMLVisualElement.prototype.unlockTargetBox = function () {\n this.stopLayoutAnimation();\n this.isTargetBoxLocked = false;\n };\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n HTMLVisualElement.prototype.resetTransform = function () {\n var transformTemplate = this.config.transformTemplate;\n this.element.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform\n this.scheduleRender();\n };\n /**\n * Set new min/max boundaries to project an axis into\n */\n HTMLVisualElement.prototype.setAxisTarget = function (axis, min, max) {\n var targetAxis = this.targetBox[axis];\n targetAxis.min = min;\n targetAxis.max = max;\n // Flag that we want to fire the onViewportBoxUpdate event handler\n this.hasViewportBoxUpdated = true;\n this.rootParent.scheduleUpdateLayoutDelta();\n };\n /**\n *\n */\n HTMLVisualElement.prototype.startLayoutAxisAnimation = function (axis, transition) {\n var _this = this;\n var _a;\n var progress = this.axisProgress[axis];\n var _b = this.targetBox[axis], min = _b.min, max = _b.max;\n var length = max - min;\n progress.clearListeners();\n progress.set(min);\n progress.set(min); // Set twice to hard-reset velocity\n progress.onChange(function (v) { return _this.setAxisTarget(axis, v, v + length); });\n return (_a = this.animateMotionValue) === null || _a === void 0 ? void 0 : _a.call(this, axis, progress, 0, transition);\n };\n HTMLVisualElement.prototype.stopLayoutAnimation = function () {\n var _this = this;\n eachAxis(function (axis) { return _this.axisProgress[axis].stop(); });\n };\n /**\n * Update the layout deltas to reflect the relative positions of the layout\n * and the desired target box\n */\n HTMLVisualElement.prototype.updateLayoutDeltas = function () {\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n resetBox(this.boxCorrected, this.box);\n /**\n * If this component has a parent, update this treeScale by incorporating the parent's\n * delta into its treeScale.\n */\n if (this.parent) {\n this.prevTreeScale.x = this.treeScale.x;\n this.prevTreeScale.y = this.treeScale.y;\n updateTreeScale(this.treeScale, this.parent.treeScale, this.parent.delta);\n }\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.boxCorrected, this.treePath);\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n updateBoxDelta(this.delta, this.boxCorrected, this.targetBox, this.layoutOrigin);\n /**\n * If we have a listener for the viewport box, fire it.\n */\n this.hasViewportBoxUpdated &&\n this.viewportBoxUpdateListeners.notify(this.targetBox, this.delta);\n this.hasViewportBoxUpdated = false;\n /**\n * Ensure this element renders on the next frame if the projection transform has changed.\n */\n var deltaTransform = buildLayoutProjectionTransform(this.delta, this.treeScale);\n if (deltaTransform !== this.deltaTransform ||\n // Also compare calculated treeScale, for values that rely on only this for scale correction.\n this.prevTreeScale.x !== this.treeScale.x ||\n this.prevTreeScale.y !== this.treeScale.y) {\n this.scheduleRender();\n }\n this.deltaTransform = deltaTransform;\n };\n HTMLVisualElement.prototype.updateTransformDeltas = function () {\n if (!this.isLayoutProjectionEnabled || !this.box)\n return;\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n applyBoxTransforms(this.targetBoxFinal, this.targetBox, this.latest);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its actual layout\n * into the desired bounding box.\n */\n updateBoxDelta(this.deltaFinal, this.boxCorrected, this.targetBoxFinal, this.layoutOrigin);\n };\n /**\n * ========================================\n * Build & render\n * ========================================\n */\n /**\n * Build a style prop using the latest resolved MotionValues\n */\n HTMLVisualElement.prototype.build = function () {\n this.updateTransformDeltas();\n if (this.isVisible !== undefined) {\n this.style.visibility = this.isVisible ? \"visible\" : \"hidden\";\n }\n buildHTMLStyles(this.latest, this.style, this.vars, this.transform, this.transformOrigin, this.transformKeys, this.config, this.isLayoutProjectionEnabled && !!this.box, this.delta, this.deltaFinal, this.treeScale, this.targetBoxFinal);\n };\n /**\n * Render the Element by rebuilding and applying the latest styles and vars.\n */\n HTMLVisualElement.prototype.render = function () {\n // Rebuild the latest animated values into style and vars caches.\n this.build();\n // Directly assign style into the Element's style prop. In tests Object.assign is the\n // fastest way to assign styles.\n Object.assign(this.element.style, this.style);\n // Loop over any CSS variables and assign those.\n for (var key in this.vars) {\n this.element.style.setProperty(key, this.vars[key]);\n }\n };\n return HTMLVisualElement;\n}(VisualElement));\n/**\n * Pre-bound version of updateLayoutDelta so we're not creating a new function multiple\n * times per frame.\n */\nvar fireUpdateLayoutDelta = function (child) {\n return child.updateLayoutDelta();\n};\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nfunction calcOrigin$1(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin$1(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin$1(originY, dimensions.y, dimensions.height);\n return pxOriginX + \" \" + pxOriginY;\n}\n\n// Convert a progress 0-1 to a pixels value based on the provided length\nvar progressToPixels = function (progress, length) {\n return px.transform(progress * length);\n};\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, totalLength, length, spacing, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 0) { useDashCase = true; }\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = progressToPixels(-offset, totalLength);\n // Build the dash array\n var pathLength = progressToPixels(length, totalLength);\n var pathSpacing = progressToPixels(spacing, totalLength);\n attrs[keys.array] = pathLength + \" \" + pathSpacing;\n}\n\nvar unmeasured = { x: 0, y: 0, width: 0, height: 0 };\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(_a, style, vars, attrs, transform, transformOrigin, transformKeys, config, dimensions, totalPathLength, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n /**\n * With SVG we treat all animated values as attributes rather than CSS, so we build into attrs\n */\n buildHTMLStyles(latest, attrs, vars, transform, transformOrigin, transformKeys, config, isLayoutProjectionEnabled, delta, deltaFinal, treeScale, targetBox);\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (originX !== undefined || originY !== undefined || style.transform) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions || unmeasured, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been measured\n if (totalPathLength !== undefined && pathLength !== undefined) {\n buildSVGPath(attrs, totalPathLength, pathLength, pathSpacing, pathOffset, false);\n }\n return attrs;\n}\n\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n]);\n\nvar CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\n/**\n * A VisualElement for SVGElements. Inherits from and extends HTMLVisualElement as the two\n * share data structures.\n */\nvar SVGVisualElement = /** @class */ (function (_super) {\n __extends(SVGVisualElement, _super);\n function SVGVisualElement() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * A mutable record of attributes we want to apply directly to the rendered Element\n * every frame. We use a mutable data structure to reduce GC during animations.\n */\n _this.attrs = {};\n /**\n * We disable hardware acceleration for SVG transforms as they're not currently able to be accelerated.\n */\n _this.defaultConfig = {\n enableHardwareAcceleration: false,\n };\n /**\n * Without duplicating this call from HTMLVisualElement we end up with HTMLVisualElement.defaultConfig\n * being assigned to config\n */\n _this.config = _this.defaultConfig;\n return _this;\n }\n /**\n * Measure the SVG element on mount. This can affect page rendering so there might be a\n * better time to perform this - for instance dynamically only if there's a transform-origin dependent\n * transform being set (like rotate)\n */\n SVGVisualElement.prototype.mount = function (element) {\n _super.prototype.mount.call(this, element);\n this.measure();\n };\n /**\n * Update the SVG dimensions and path length\n */\n SVGVisualElement.prototype.measure = function () {\n try {\n this.dimensions =\n typeof this.element.getBBox ===\n \"function\"\n ? this.element.getBBox()\n : this.element.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n this.dimensions = { x: 0, y: 0, width: 0, height: 0 };\n }\n if (isPath(this.element)) {\n this.totalPathLength = this.element.getTotalLength();\n }\n };\n /**\n * Empty the mutable data structures in case attrs have been removed between renders.\n */\n SVGVisualElement.prototype.clean = function () {\n _super.prototype.clean.call(this);\n this.attrs = {};\n };\n /**\n * Read an attribute directly from the SVGElement\n */\n SVGVisualElement.prototype.read = function (key) {\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return this.element.getAttribute(key);\n };\n SVGVisualElement.prototype.build = function () {\n this.updateTransformDeltas();\n buildSVGAttrs(this.latest, this.style, this.vars, this.attrs, this.transform, this.transformOrigin, this.transformKeys, this.config, this.dimensions, this.totalPathLength, this.isLayoutProjectionEnabled && !!this.box, this.delta, this.deltaFinal, this.treeScale, this.targetBoxFinal);\n };\n SVGVisualElement.prototype.render = function () {\n // Update HTML styles and CSS variables\n _super.prototype.render.call(this);\n // Loop through attributes and apply them to the SVGElement\n for (var key in this.attrs) {\n this.element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, this.attrs[key]);\n }\n };\n return SVGVisualElement;\n}(HTMLVisualElement));\nfunction isPath(element) {\n return element.tagName === \"path\";\n}\n\n/**\n * @internal\n */\n/**\n * @internal\n */\nvar svgElements = [\n \"animate\",\n \"circle\",\n \"clipPath\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"filter\",\n \"foreignObject\",\n \"g\",\n \"image\",\n \"line\",\n \"linearGradient\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialGradient\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"textPath\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nvar svgTagNames = new Set(svgElements);\n/**\n * Determine whether this is a HTML or SVG component based on if the provided\n * Component is a string and a recognised SVG tag. A potentially better way to\n * do this would be to offer a `motion.customSVG` function and determine this\n * when we generate the `motion.circle` etc components.\n */\nfunction isSVGComponent(Component) {\n return typeof Component === \"string\" && svgTagNames.has(Component);\n}\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nvar MotionContext = createContext({\n variantContext: {},\n});\nfunction useVariantContext() {\n return useContext(MotionContext).variantContext;\n}\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\n/**\n * DOM-flavoured variation of the useVisualElement hook. Used to create either a HTMLVisualElement\n * or SVGVisualElement for the component.\n *\n */\nvar useDomVisualElement = function (Component, props, isStatic, ref) {\n var parent = useVisualElementContext();\n var visualElement = useConstant(function () {\n var DOMVisualElement = isSVGComponent(Component)\n ? SVGVisualElement\n : HTMLVisualElement;\n return new DOMVisualElement(parent, ref);\n });\n visualElement.updateConfig(__assign(__assign(__assign({}, visualElement.config), { enableHardwareAcceleration: !isStatic }), props));\n visualElement.layoutId = props.layoutId;\n var presenceContext = useContext(PresenceContext);\n /**\n * Update VisualElement with presence data.\n */\n var isPresent = presenceContext === null ? true : presenceContext.isPresent;\n visualElement.isPresent =\n props.isPresent !== undefined ? props.isPresent : isPresent;\n /**\n *\n */\n var presenceId = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id;\n visualElement.isPresenceRoot = !parent || parent.presenceId !== presenceId;\n /**\n * TODO: Investigate if we need this\n */\n useEffect(function () {\n if (props.onViewportBoxUpdate) {\n return visualElement.onViewportBoxUpdate(props.onViewportBoxUpdate);\n }\n }, [props.onViewportBoxUpdate]);\n return visualElement;\n};\n\n/**\n * A list of all valid MotionProps.\n *\n * @internalremarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"onLayoutAnimationComplete\",\n \"onViewportBoxUpdate\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"whileHover\",\n \"whileTap\",\n \"onHoverEnd\",\n \"onHoverStart\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nvar isPropValid = function (key) { return !isValidMotionProp(key); };\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n var emotionIsPropValid_1 = require(\"@emotion/is-prop-valid\").default;\n isPropValid = function (key) {\n // Handle events explicitly as Emotion validates them all as true\n if (key.startsWith(\"on\")) {\n return !isValidMotionProp(key);\n }\n else {\n return emotionIsPropValid_1(key);\n }\n };\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props) {\n var domProps = {};\n for (var key in props) {\n if (isPropValid(key))\n domProps[key] = props[key];\n }\n return domProps;\n}\n\nfunction buildHTMLProps(visualElement, _a) {\n var drag = _a.drag;\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {\n style: __assign(__assign(__assign({}, visualElement.reactStyle), visualElement.style), visualElement.vars),\n };\n if (!!drag) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n htmlProps.style.userSelect = \"none\";\n // Disable scrolling on the draggable direction\n htmlProps.style.touchAction =\n drag === true ? \"none\" : \"pan-\" + (drag === \"x\" ? \"y\" : \"x\");\n }\n return htmlProps;\n}\n\n/**\n * Build React props for SVG elements\n */\nfunction buildSVGProps(visualElement) {\n return __assign(__assign({}, visualElement.attrs), { style: __assign({}, visualElement.reactStyle) });\n}\n\nfunction render(Component, props, visualElement) {\n // Only filter props from components we control, ie `motion.div`. If this\n // is a custom component pass along everything provided to it.\n var forwardedProps = typeof Component === \"string\" ? filterProps(props) : props;\n /**\n * Every render, empty and rebuild the animated values to be applied to our Element.\n * During animation these data structures are used in a mutable fashion to reduce\n * garbage collection, but between renders we can flush them to remove values\n * that might have been taken out of the provided props.\n */\n visualElement.clean();\n visualElement.build();\n // Generate props to visually render this component\n var visualProps = isSVGComponent(Component)\n ? buildSVGProps(visualElement)\n : buildHTMLProps(visualElement, props);\n return createElement(Component, __assign(__assign(__assign({}, forwardedProps), { ref: visualElement.ref }), visualProps));\n}\n\nvar isMotionValue = function (value) {\n return value instanceof MotionValue;\n};\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) && !!valueScaleCorrection[key]));\n}\n/**\n * Scrape props for MotionValues and add/remove them to this component's\n * VisualElement\n */\nfunction useMotionValues(visualElement, props) {\n var prev = useConstant(empty);\n /**\n * Remove MotionValues that are no longer present\n */\n for (var key in prev) {\n var isForced = isForcedMotionValue(key, props);\n var existsAsProp = props[key] !== undefined;\n var existsAsStyle = props.style && props.style[key] !== undefined;\n var propIsMotionValue = existsAsProp && isMotionValue(props[key]);\n var styleIsMotionValue = existsAsStyle && isMotionValue(props.style[key]);\n var transformRemoved = isForced && !existsAsProp && !existsAsStyle;\n var motionValueRemoved = !isForced && !propIsMotionValue && !styleIsMotionValue;\n if (transformRemoved || motionValueRemoved) {\n visualElement.removeValue(key);\n delete prev[key];\n }\n }\n /**\n * Add incoming MotionValues\n */\n addMotionValues(visualElement, prev, props, false, props);\n if (props.style)\n addMotionValues(visualElement, prev, props.style, true, props);\n /**\n * Transform custom values if provided a handler, ie size -> width/height\n * Ideally we'd ditch this by removing support for size and other custom values from Framer.\n */\n if (props.transformValues) {\n visualElement.reactStyle = props.transformValues(visualElement.reactStyle);\n }\n}\n/**\n * Add incoming MotionValues\n *\n * TODO: Type the VisualElements properly\n */\nfunction addMotionValues(visualElement, prev, source, isStyle, props) {\n if (isStyle === void 0) { isStyle = false; }\n if (isStyle)\n visualElement.reactStyle = {};\n for (var key in source) {\n var value = source[key];\n var foundMotionValue = false;\n if (isMotionValue(value)) {\n // If this is a MotionValue, add it if it isn't a reserved key\n if (!reservedNames.has(key)) {\n visualElement.addValue(key, value);\n foundMotionValue = true;\n }\n }\n else if (isForcedMotionValue(key, props)) {\n // If this is a transform prop, always create a MotionValue\n // to ensure we can reconcile them all together.\n if (!visualElement.hasValue(key)) {\n visualElement.addValue(key, motionValue(value));\n }\n else if (value !== prev[key]) {\n if (isMotionValue(prev[key])) {\n /**\n * If the previous value was a MotionValue, and this value isn't,\n * we want to create a new MotionValue rather than update one that's been removed.\n */\n visualElement.addValue(key, motionValue(value));\n }\n else {\n /**\n * Otherwise, we just want to ensure the MotionValue is of the latest value.\n */\n var motion = visualElement.getValue(key);\n motion.set(value);\n }\n }\n foundMotionValue = true;\n }\n else if (isStyle) {\n visualElement.reactStyle[key] = value;\n }\n if (foundMotionValue)\n prev[key] = value;\n }\n}\n/**\n * These are props we accept as MotionValues but don't want to add\n * to the VisualElement\n */\nvar reservedNames = new Set([]);\nvar empty = function () { return ({}); };\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n features: [],\n isStatic: false,\n});\n/**\n * MotionConfig can be used in combination with the `m` component to cut bundle size\n * and dynamically load only the features you use.\n *\n * ```jsx\n * import {\n * m as motion,\n * AnimationFeature,\n * MotionConfig\n * } from \"framer-motion\"\n *\n * export function App() {\n * return (\n * \n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction MotionConfig(_a) {\n var children = _a.children, _b = _a.features, features = _b === void 0 ? [] : _b, props = __rest(_a, [\"children\", \"features\"]);\n var pluginContext = useContext(MotionConfigContext);\n var loadedFeatures = __spread(pluginContext.features, features);\n // We do want to rerender children when the number of loaded features changes\n var value = useMemo(function () { return ({ features: loadedFeatures }); }, [\n loadedFeatures.length,\n ]);\n // Mutative to prevent triggering rerenders in all listening\n // components every time this component renders\n for (var key in props) {\n value[key] = props[key];\n }\n return (createElement(MotionConfigContext.Provider, { value: value }, children));\n}\n\nfunction checkShouldInheritVariant(_a) {\n var animate = _a.animate, variants = _a.variants, inherit = _a.inherit;\n return inherit === undefined ? !!variants && !animate : inherit;\n}\n\n/**\n * Load features via renderless components based on the provided MotionProps\n */\nfunction useFeatures(defaultFeatures, isStatic, visualElement, props) {\n var plugins = useContext(MotionConfigContext);\n // If this is a static component, or we're rendering on the server, we don't load\n // any feature components\n if (isStatic || typeof window === \"undefined\")\n return null;\n var allFeatures = __spread(defaultFeatures, plugins.features);\n var numFeatures = allFeatures.length;\n var features = [];\n // Decide which features we should render and add them to the returned array\n for (var i = 0; i < numFeatures; i++) {\n var _a = allFeatures[i], shouldRender = _a.shouldRender, key = _a.key, getComponent = _a.getComponent;\n if (shouldRender(props)) {\n var Component = getComponent(props);\n Component &&\n features.push(createElement(Component, __assign({ key: key }, props, { visualElement: visualElement, inherit: checkShouldInheritVariant(props) })));\n }\n }\n return features;\n}\n\nvar Presence;\n(function (Presence) {\n Presence[Presence[\"Entering\"] = 0] = \"Entering\";\n Presence[Presence[\"Present\"] = 1] = \"Present\";\n Presence[Presence[\"Exiting\"] = 2] = \"Exiting\";\n})(Presence || (Presence = {}));\nvar VisibilityAction;\n(function (VisibilityAction) {\n VisibilityAction[VisibilityAction[\"Hide\"] = 0] = \"Hide\";\n VisibilityAction[VisibilityAction[\"Show\"] = 1] = \"Show\";\n})(VisibilityAction || (VisibilityAction = {}));\n\n/**\n * Default handlers for batching VisualElements\n */\nvar defaultHandler = {\n measureLayout: function (child) { return child.measureLayout(); },\n layoutReady: function (child) { return child.layoutReady(); },\n};\n/**\n * Sort VisualElements by tree depth, so we process the highest elements first.\n */\nvar sortByDepth = function (a, b) {\n return a.depth - b.depth;\n};\n/**\n * Create a batcher to process VisualElements\n */\nfunction createBatcher() {\n var queue = new Set();\n var add = function (child) { return queue.add(child); };\n var flush = function (_a) {\n var _b = _a === void 0 ? defaultHandler : _a, measureLayout = _b.measureLayout, layoutReady = _b.layoutReady;\n var order = Array.from(queue).sort(sortByDepth);\n /**\n * Write: Reset any transforms on children elements so we can read their actual layout\n */\n order.forEach(function (child) { return child.resetTransform(); });\n /**\n * Read: Measure the actual layout\n */\n order.forEach(measureLayout);\n /**\n * Write: Notify the VisualElements they're ready for further write operations.\n */\n order.forEach(layoutReady);\n /**\n * After all children have started animating, ensure any Entering components are set to Present.\n * If we add deferred animations (set up all animations and then start them in two loops) this\n * could be moved to the start loop. But it needs to happen after all the animations configs\n * are generated in AnimateSharedLayout as this relies on presence data\n */\n order.forEach(function (child) {\n if (child.isPresent)\n child.presence = Presence.Present;\n });\n queue.clear();\n };\n return { add: add, flush: flush };\n}\nfunction isSharedLayout(context) {\n return !!context.forceUpdate;\n}\nvar SharedLayoutContext = createContext(createBatcher());\n/**\n * @internal\n */\nvar FramerTreeLayoutContext = createContext(createBatcher());\n\nvar isBrowser = typeof window !== \"undefined\";\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nfunction useSnapshotOnUnmount(visualElement) {\n var syncLayout = useContext(SharedLayoutContext);\n var framerSyncLayout = useContext(FramerTreeLayoutContext);\n useIsomorphicLayoutEffect(function () { return function () {\n if (isSharedLayout(syncLayout)) {\n syncLayout.remove(visualElement);\n }\n if (isSharedLayout(framerSyncLayout)) {\n framerSyncLayout.remove(visualElement);\n }\n }; }, []);\n}\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useOpaqueId when released in React\n var id = useUniqueId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useUniqueId = function () { return useConstant(incrementId); };\n\n/**\n * Use callback either only on the initial render or on all renders. In concurrent mode\n * the \"initial\" render might run multiple times\n *\n * @param callback - Callback to run\n * @param isInitialOnly - Set to `true` to only run on initial render, or `false` for all renders. Defaults to `false`.\n *\n * @public\n */\nfunction useInitialOrEveryRender(callback, isInitialOnly) {\n if (isInitialOnly === void 0) { isInitialOnly = false; }\n var isInitialRender = useRef(true);\n if (!isInitialOnly || (isInitialOnly && isInitialRender.current)) {\n callback();\n }\n isInitialRender.current = false;\n}\n\n/**\n * This hook is resonsible for creating the variant-propagation tree\n * relationship between VisualElements.\n */\nfunction useVariants(visualElement, _a, isStatic) {\n var _b, _c;\n var variants = _a.variants, initial = _a.initial, animate = _a.animate, whileTap = _a.whileTap, whileHover = _a.whileHover;\n var _d = useVariantContext(), parent = _d.parent, parentInitial = _d.initial, parentAnimate = _d.animate;\n var presenceContext = useContext(PresenceContext);\n /**\n * We only add this VisualElement to the variant tree *if* we're:\n * 1. Being provided a variants prop\n * 2. Being used to control variants (ie animate, whileHover etc)\n * 3. Or being passed animation controls, which we have to assume may control variants\n * Otherwise this component should be \"invisible\" to variant propagation. This is a concession\n * to Framer which uses a `motion` component in every `Frame` and it might be if we change that\n * in the future that this restriction is removed.\n */\n var controlsVariants = isVariantLabel$1(animate) ||\n isVariantLabel$1(whileTap) ||\n isVariantLabel$1(whileHover) ||\n isAnimationControls(animate);\n var isVariantNode = variants || controlsVariants;\n /**\n * Override initial with one from a parent `AnimatePresence`, if present\n */\n initial = (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) !== null && _b !== void 0 ? _b : initial;\n /**\n * If initial is false, and animate isn't animation controls, we assign animate\n * to initial and set our values to that for the initial render.\n */\n if (initial === false && !isAnimationControls(animate)) {\n initial = animate;\n }\n var context = useMemo(function () { return ({\n parent: isVariantNode ? visualElement : parent,\n initial: isVariantLabel$1(initial) ? initial : parentInitial,\n animate: isVariantLabel$1(animate) ? animate : parentAnimate,\n }); }, \n /**\n * Only create a new context value (thereby re-rendering children) if this\n * is a static component and `initial` changes.\n */\n [isStatic ? initial : null]);\n // Set initial state. If this is a static component (ie in Framer canvas), respond to updates\n // in `initial`.\n useInitialOrEveryRender(function () {\n var initialToApply = initial || parentInitial;\n initialToApply && setValues(visualElement, initialToApply);\n }, !isStatic);\n /**\n * Subscribe to the parent visualElement if this is a participant in the variant tree\n */\n isVariantNode && !controlsVariants && (parent === null || parent === void 0 ? void 0 : parent.addVariantChild(visualElement));\n /**\n * If this component isn't exiting the tree, clear all the children in the render phase.\n * This will allow children to resubscribe in the correct order to ensure the correct stagger order.\n */\n isPresent(presenceContext) && ((_c = visualElement.variantChildrenOrder) === null || _c === void 0 ? void 0 : _c.clear());\n /**\n * Subscribe to the propagated parent.\n */\n useEffect(function () {\n isVariantNode && (parent === null || parent === void 0 ? void 0 : parent.addVariantChildOrder(visualElement));\n });\n /**\n * Track mount status so children can detect whether they were present during the\n * component's initial mount.\n */\n useEffect(function () {\n visualElement.isMounted = true;\n return function () {\n var _a;\n visualElement.isMounted = false;\n (_a = parent === null || parent === void 0 ? void 0 : parent.variantChildren) === null || _a === void 0 ? void 0 : _a.delete(visualElement);\n };\n }, []);\n /**\n * We want to update the \"base\" (or fallback) value on the initial render.\n */\n useInitialOrEveryRender(function () {\n visualElement.forEachValue(function (value, key) {\n visualElement.baseTarget[key] = value.get();\n });\n }, true);\n return context;\n}\nfunction isVariantLabel$1(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\nfunction isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n *\n * @internal\n */\nfunction createMotionComponent(Component, _a) {\n var defaultFeatures = _a.defaultFeatures, useVisualElement = _a.useVisualElement, render = _a.render;\n function MotionComponent(props, externalRef) {\n /**\n * If a component is static, we only visually update it as a\n * result of a React re-render, rather than any interactions or animations.\n * If this component or any ancestor is static, we disable hardware acceleration\n * and don't load any additional functionality.\n */\n var isStatic = useContext(MotionConfigContext).isStatic;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n var visualElement = useVisualElement(Component, props, isStatic, externalRef);\n /**\n * Scrape MotionValues from props and add/remove them to/from the VisualElement.\n */\n useMotionValues(visualElement, props);\n /**\n * Add the visualElement as a node in the variant tree.\n */\n var variantContext = useVariants(visualElement, props, isStatic);\n /**\n * Load features as renderless components unless the component isStatic\n */\n var features = useFeatures(defaultFeatures, isStatic, visualElement, props);\n /**\n * Only create a new context value when the sub-contexts change.\n */\n var context = useMemo(function () { return ({ visualElement: visualElement, variantContext: variantContext }); }, [\n visualElement,\n variantContext,\n ]);\n var component = render(Component, props, visualElement);\n /**\n * If this component is a child of AnimateSharedLayout, we need to snapshot the component\n * before it's unmounted. This lives here rather than in features/layout/Measure because\n * as a child component its unmount effect runs after this component has been unmounted.\n */\n useSnapshotOnUnmount(visualElement);\n // The mount order and hierarchy is specific to ensure our element ref is hydrated by the time\n // all plugins and features has to execute.\n return (createElement(Fragment, null,\n createElement(MotionContext.Provider, { value: context }, component),\n features));\n }\n return forwardRef(MotionComponent);\n}\n\nfunction createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\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(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\n\nfunction addDomEvent(target, eventName, handler, options) {\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler, options); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nfunction isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nfunction getViewportPointFromEvent(event) {\n return extractEventInfo(event, \"client\");\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nvar isBrowser$1 = typeof window !== \"undefined\";\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser$1 && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser$1 && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser$1 && window.onmousedown === null;\n};\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var transformPagePoint = (_a === void 0 ? {} : _a).transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `