{"version":3,"file":"resolve-element-DyRr9E6l.js","sources":["../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/noop.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/frameloop/frame.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/errors.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/clamp.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/utils/sanitize.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/utils/float-regex.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/utils/is-nullish.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/utils/single-color-regex.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/color/index.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/utils/color-regex.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/pipe.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/progress.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/number.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/color.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/mix/index.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/interpolate.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/utils/memo.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","../../node_modules/.pnpm/framer-motion@11.11.9_react-dom@18.3.1_react@18.3.1/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs"],"sourcesContent":["const noop = (any) => any;\n\nexport { noop };\n","function createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { read, resolveKeyframes, update, preRender, render, postRender } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n read.process(state);\n resolveKeyframes.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, frameSteps };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","const createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { mixNumber } from './number.mjs';\nimport { warning } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { memo } from '../../../utils/memo.mjs';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","import { invariant } from '../../../utils/errors.mjs';\n\nfunction resolveElements(elements, scope, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n let root = document;\n if (scope) {\n invariant(Boolean(scope.current), \"Scope provided, but no element detected.\");\n root = scope.current;\n }\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = root.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = root.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n"],"names":["noop","any","createRenderStep","runNextFrame","thisFrame","nextFrame","isProcessing","flushNextFrame","toKeepAlive","latestFrameData","triggerCallback","callback","step","keepAlive","immediate","queue","frameData","stepsOrder","maxElapsed","createRenderBatcher","scheduleNextBatch","allowKeepAlive","useDefaultElapsed","state","flagRunNextFrame","steps","acc","key","read","resolveKeyframes","update","preRender","render","postRender","processBatch","timestamp","wake","process","i","frame","cancelFrame","frameSteps","invariant","checkStringStartsWith","token","isCSSVariableName","startsAsVariableToken","isCSSVariableToken","value","singleCssVariableRegex","clamp","min","max","v","number","alpha","scale","createUnitType","unit","degrees","percent","px","vh","vw","progressPercentage","sanitize","floatRegex","isNullish","singleColorRegex","isColorString","type","testProp","splitColor","aName","bName","cName","a","b","c","clampRgbUnit","rgbUnit","rgba","red","green","blue","alpha$1","parseHex","r","g","hex","hsla","hue","saturation","lightness","color","colorRegex","test","_a","_b","NUMBER_TOKEN","COLOR_TOKEN","VAR_TOKEN","VAR_FUNCTION_TOKEN","SPLIT_TOKEN","complexRegex","analyseComplexValue","originalValue","values","indexes","types","split","parsedValue","parseComplexValue","createTransformer","source","numSections","output","convertNumbersToZero","getAnimatableNone","parsed","complex","velocityPerSecond","velocity","frameDuration","combineFunctions","pipe","transformers","progress","from","to","toFromDifference","mixNumber","hueToRgb","p","q","t","hslaToRgba","mixImmediate","mixLinearColor","fromExpo","expo","colorTypes","getColorType","asRGBA","model","mixColor","fromRGBA","toRGBA","blended","invisibleValues","mixVisibility","origin","target","mixNumber$1","getMixer","mixComplex","mixArray","mixObject","numValues","blendValue","matchOrder","orderedOrigin","pointers","originIndex","originValue","template","originStats","targetStats","mix","createMixers","ease","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","input","isClamp","inputLength","interpolator","progressInRange","fillOffset","offset","remaining","offsetProgress","defaultOffset","arr","memo","result","supportsScrollTimeline","resolveElements","elements","scope","selectorCache","root"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}