{"version":3,"file":"5912-e8102712d059bb9835d6.js","mappings":"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","sources":["webpack://lcci/./node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/generators/spring.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/mix-color.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/mix-complex.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/interpolate.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/generators/decay.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/index.mjs","webpack://lcci/./node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/animation/utils/easing.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack://lcci/./node_modules/popmotion/dist/es/animations/inertia.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://lcci/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://lcci/./node_modules/framesync/dist/es/on-next-frame.mjs","webpack://lcci/./node_modules/framesync/dist/es/index.mjs","webpack://lcci/./node_modules/framesync/dist/es/create-render-step.mjs","webpack://lcci/./node_modules/popmotion/dist/es/easing/utils.mjs","webpack://lcci/./node_modules/popmotion/dist/es/easing/index.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/clamp.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/inc.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/mix.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/pipe.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/progress.mjs","webpack://lcci/./node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/color/hex.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/color/hsla.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/color/index.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/color/rgba.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/color/utils.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/complex/filter.mjs","webpack://lcci/./node_modules/style-value-types/dist/es/complex/index.mjs"],"sourcesContent":["import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","function 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","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), 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 (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\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 invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false,\n });\n from = 0;\n to = 100;\n }\n const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\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 '\".concat(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\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\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\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\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: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\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\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\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 _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\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 /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\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 /**\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;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\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 if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\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 origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(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(__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, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\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 */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\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 = window.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\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (var i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\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\nexport { secondsToMilliseconds };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\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 * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"6.5.1\";\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 velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = 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 // 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 // Update update subscribers\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n // Update velocity subscribers\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n _this.renderSubscribers.notify(_this.current);\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 _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\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 * ```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 * @privateRemarks\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.hasAnimated = true;\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}());\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\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 (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [name, value] = v.slice(0, -1).split('(');\n if (name === 'drop-shadow')\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, '');\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n"],"names":["calcAngularFreq","undampedFreq","dampingRatio","Math","sqrt","durationKeys","physicsKeys","isSpringType","options","keys","some","key","undefined","spring","_a","from","to","restSpeed","restDelta","state","done","value","stiffness","damping","mass","velocity","duration","isResolvedFromDuration","springOptions","Object","assign","derived","bounce","envelope","derivative","maxDuration","clamp","exponentialDecay","delta","exp","d","e","pow","f","g","initialGuess","result","i","approximateRoot","isNaN","findSpring","getSpringOptions","resolveSpring","zero","resolveVelocity","createSpring","initialVelocity","initialDelta","undampedAngularFreq","min","abs","angularFreq","t","sin","cos","dampedAngularFreq","freqForT","sinh","cosh","next","current","currentVelocity","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","a","b","_t","hueToRgb","p","q","hslaToRgba","hue","saturation","lightness","alpha","red","green","blue","round","mixLinearColor","v","fromExpo","toExpo","max","colorTypes","hex","rgba","hsla","getColorType","find","type","test","notAnimatable","color","mixColor","fromColorType","toColorType","fromColor","parse","toColor","blended","mix","transform","getMixer","origin","target","mixComplex","mixArray","output","numValues","length","blendValue","map","fromThis","mixObject","analyse","parsed","complex","numNumbers","numRGB","numHSL","template","originStats","targetStats","pipe","mixNumber","interpolate","input","isClamp","ease","mixer","inputLength","Array","isArray","concat","reverse","mixers","customMixer","mixerFactory","numMixers","easingFunction","push","createMixers","interpolator","progress","fastInterpolate","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","slowInterpolate","defaultEasing","values","easing","splice","keyframes","offset","times","o","convertOffsetToTimes","_value","defaultOffset","createInterpolator","types","power","timeConstant","modifyTarget","amplitude","ideal","loopElapsed","elapsed","delay","framesync","update","passTimestamp","start","stop","animate","_b","_c","autoplay","driver","repeat","repeatMax","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate","driverControls","latest","interpolateFromNumber","repeatCount","computedDuration","isComplete","isForwardPlayback","animator","config","Set","has","detectAnimationFromOptions","call","animation","hasRepeatDelayElapsed","reverseElapsed","a1","a2","c","calcBezier","getSlope","kSampleStepSize","cubicBezier","mX1","mY1","mX2","mY2","sampleValues","Float32Array","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","getTForX","easingLookup","linear","easeIn","easeInOut","easeOut","circIn","circInOut","circOut","backIn","backInOut","backOut","anticipate","bounceIn","bounceInOut","bounceOut","easingDefinitionToFunction","definition","isAnimatable","startsWith","underDampedSpring","criticallyDampedSpring","linearTween","defaultTransitions","x","y","z","rotate","rotateX","rotateY","rotateZ","scaleX","scaleY","scale","opacity","backgroundColor","default","legacyRepeatWarning","getPopmotionAnimationOptions","transition","valueKey","transitionFactory","hydrateKeyframes","when","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","yoyo","flip","loop","isEasingArray","convertTransitionToAnimationOptions","isZero","parseFloat","indexOf","getZeroUnit","potentialUnitType","getValueTransition","startAnimation","delayTimer","controls","valueTransition","get","isTargetAnimatable","isOriginAnimatable","getVelocity","set","bounceStiffness","bounceDamping","currentAnimation","isOutOfBounds","boundaryNearest","startSpring","boundary","heading","prev","checkBoundary","inertia","finalTarget","getAnimation","getDelayFromTransition","window","setTimeout","clearTimeout","getAnimatableNone","defaultValueType","defaultValueTypes","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","filter","WebkitFilter","getDefaultValueType","addUniqueItem","arr","item","removeItem","index","SubscriptionManager","this","subscriptions","prototype","add","handler","_this","notify","numSubscriptions","getSize","clear","secondsToMilliseconds","seconds","MotionValue","init","version","timeDelta","lastUpdated","updateSubscribers","velocityUpdateSubscribers","renderSubscribers","canTrackVelocity","updateAndNotify","render","timestamp","scheduleVelocityCheck","velocityCheck","hasAnimated","onChange","subscription","clearListeners","onRenderRequest","attach","passiveEffect","getPrevious","Promise","resolve","stopAnimation","then","clearAnimation","isAnimating","destroy","motionValue","defaultTimestep","getCurrentTime","performance","now","Date","onNextFrame","callback","requestAnimationFrame","useDefaultElapsed","runNextFrame","isProcessing","stepsOrder","steps","reduce","acc","toRun","toRunNextFrame","numToRun","flushNextFrame","toKeepAlive","WeakSet","step","schedule","keepAlive","immediate","addToCurrentFrame","buffer","cancel","delete","process","frameData","createRenderStep","sync","startLoop","cancelSync","flushSync","processStep","stepId","processFrame","forEach","getFrameData","reverseEasing","mirrorEasing","createBackIn","acos","backEasing","createAnticipate","p2","isNum","combineFunctions","transformers","toFromDifference","velocityPerSecond","frameDuration","r","substr","parseInt","alpha$1","hasOwnProperty","clampRgbUnit","rgbUnit","isColorString","testProp","Boolean","splitColor","aName","bName","cName","match","maxDefaults","applyDefaultFilter","name","slice","split","number","unit","replace","defaultValue","functionRegex","functions","join","colorToken","numberToken","numColors","colors","numbers","tokenised","createTransformer","convertNumbersToZero","_d","transformer"],"sourceRoot":""}