{"version":3,"sources":["jsdelivr-header.js","/npm/motion-utils@12.29.2/src/array.ts","/npm/motion-utils@12.29.2/src/clamp.ts","/npm/motion-utils@12.29.2/src/format-error-message.ts","/npm/motion-utils@12.29.2/src/errors.ts","/npm/motion-utils@12.29.2/src/global-config.ts","/npm/motion-utils@12.29.2/src/is-numerical-string.ts","/npm/motion-utils@12.29.2/src/is-object.ts","/npm/motion-utils@12.29.2/src/is-zero-value-string.ts","/npm/motion-utils@12.29.2/src/memo.ts","/npm/motion-utils@12.29.2/src/noop.ts","/npm/motion-utils@12.29.2/src/pipe.ts","/npm/motion-utils@12.29.2/src/progress.ts","/npm/motion-utils@12.29.2/src/subscription-manager.ts","/npm/motion-utils@12.29.2/src/time-conversion.ts","/npm/motion-utils@12.29.2/src/velocity-per-second.ts","/npm/motion-utils@12.29.2/src/warn-once.ts","/npm/motion-utils@12.29.2/src/wrap.ts","/npm/motion-utils@12.29.2/src/easing/cubic-bezier.ts","/npm/motion-utils@12.29.2/src/easing/modifiers/mirror.ts","/npm/motion-utils@12.29.2/src/easing/modifiers/reverse.ts","/npm/motion-utils@12.29.2/src/easing/back.ts","/npm/motion-utils@12.29.2/src/easing/anticipate.ts","/npm/motion-utils@12.29.2/src/easing/circ.ts","/npm/motion-utils@12.29.2/src/easing/ease.ts","/npm/motion-utils@12.29.2/src/easing/steps.ts","/npm/motion-utils@12.29.2/src/easing/utils/is-easing-array.ts","/npm/motion-utils@12.29.2/src/easing/utils/get-easing-for-segment.ts","/npm/motion-utils@12.29.2/src/easing/utils/is-bezier-definition.ts","/npm/motion-utils@12.29.2/src/easing/utils/map.ts"],"names":[],"mappings":"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","file":"/npm/motion-utils@12.29.2/dist/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/motion-utils@12.29.2/dist/cjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export function addUniqueItem<T>(arr: T[], item: T) {\n    if (arr.indexOf(item) === -1) arr.push(item)\n}\n\nexport function removeItem<T>(arr: T[], item: T) {\n    const index = arr.indexOf(item)\n    if (index > -1) arr.splice(index, 1)\n}\n\n// Adapted from array-move\nexport function moveItem<T>([...arr]: T[], fromIndex: number, toIndex: number) {\n    const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex\n\n    if (startIndex >= 0 && startIndex < arr.length) {\n        const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex\n\n        const [item] = arr.splice(fromIndex, 1)\n        arr.splice(endIndex, 0, item)\n    }\n\n    return arr\n}\n","export const clamp = (min: number, max: number, v: number) => {\n    if (v > max) return max\n    if (v < min) return min\n    return v\n}\n","export function formatErrorMessage(message: string, errorCode?: string) {\n    return errorCode\n        ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n        : message\n}\n","import { formatErrorMessage } from \"./format-error-message\"\n\nexport type DevMessage = (\n    check: boolean,\n    message: string,\n    errorCode?: string\n) => void\n\nlet warning: DevMessage = () => {}\nlet invariant: DevMessage = () => {}\n\nif (\n    typeof process !== \"undefined\" &&\n    process.env?.NODE_ENV !== \"production\"\n) {\n    warning = (check, message, errorCode) => {\n        if (!check && typeof console !== \"undefined\") {\n            console.warn(formatErrorMessage(message, errorCode))\n        }\n    }\n\n    invariant = (check, message, errorCode) => {\n        if (!check) {\n            throw new Error(formatErrorMessage(message, errorCode))\n        }\n    }\n}\n\nexport { invariant, warning }\n","export const MotionGlobalConfig: {\n    skipAnimations?: boolean\n    instantAnimations?: boolean\n    useManualTiming?: boolean\n    WillChange?: any\n    mix?: <T>(a: T, b: T) => (p: number) => T\n} = {}\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nexport const isNumericalString = (v: string) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v)\n","export function isObject(value: unknown): value is object {\n    return typeof value === \"object\" && value !== null\n}\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nexport const isZeroValueString = (v: string) => /^0[^.\\s]+$/u.test(v)\n","/*#__NO_SIDE_EFFECTS__*/\nexport function memo<T extends any>(callback: () => T) {\n    let result: T | undefined\n\n    return () => {\n        if (result === undefined) result = callback()\n        return result\n    }\n}\n","/*#__NO_SIDE_EFFECTS__*/\nexport const noop = <T>(any: T): T => any\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: Function, b: Function) => (v: any) => b(a(v))\nexport const pipe = (...transformers: Function[]) =>\n    transformers.reduce(combineFunctions)\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*/\n/*#__NO_SIDE_EFFECTS__*/\nexport const progress = (from: number, to: number, value: number) => {\n    const toFromDifference = to - from\n\n    return toFromDifference === 0 ? 1 : (value - from) / toFromDifference\n}\n","import { addUniqueItem, removeItem } from \"./array\"\n\ntype GenericHandler = (...args: any) => void\n\nexport class SubscriptionManager<Handler extends GenericHandler> {\n    private subscriptions: Handler[] = []\n\n    add(handler: Handler): VoidFunction {\n        addUniqueItem(this.subscriptions, handler)\n        return () => removeItem(this.subscriptions, handler)\n    }\n\n    notify(\n        a?: Parameters<Handler>[0],\n        b?: Parameters<Handler>[1],\n        c?: Parameters<Handler>[2]\n    ) {\n        const numSubscriptions = this.subscriptions.length\n\n        if (!numSubscriptions) return\n\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        } else {\n            for (let i = 0; i < numSubscriptions; i++) {\n                /**\n                 * Check whether the handler exists before firing as it's possible\n                 * the subscriptions were modified during this loop running.\n                 */\n                const handler = this.subscriptions[i]\n                handler && handler(a, b, c)\n            }\n        }\n    }\n\n    getSize() {\n        return this.subscriptions.length\n    }\n\n    clear() {\n        this.subscriptions.length = 0\n    }\n}\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n\n/*#__NO_SIDE_EFFECTS__*/\nexport const secondsToMilliseconds = (seconds: number) => seconds * 1000\n\n/*#__NO_SIDE_EFFECTS__*/\nexport const millisecondsToSeconds = (milliseconds: number) =>\n    milliseconds / 1000\n","/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/\nexport function velocityPerSecond(velocity: number, frameDuration: number) {\n    return frameDuration ? velocity * (1000 / frameDuration) : 0\n}\n","import { formatErrorMessage } from \"./format-error-message\"\n\nconst warned = new Set<string>()\n\nexport function hasWarned(message: string) {\n    return warned.has(message)\n}\n\nexport function warnOnce(\n    condition: boolean,\n    message: string,\n    errorCode?: string\n) {\n    if (condition || warned.has(message)) return\n\n    console.warn(formatErrorMessage(message, errorCode))\n    warned.add(message)\n}\n","export const wrap = (min: number, max: number, v: number) => {\n    const rangeSize = max - min\n    return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min\n}\n","/*\n  Bezier function generator\n  This has been modified from Gaëtan Renaudeau's BezierEasing\n  https://github.com/gre/bezier-easing/blob/master/src/index.js\n  https://github.com/gre/bezier-easing/blob/master/LICENSE\n  \n  I've removed the newtonRaphsonIterate algo because in benchmarking it\n  wasn't noticeably faster than binarySubdivision, indeed removing it\n  usually improved times, depending on the curve.\n  I also removed the lookup table, as for the added bundle size and loop we're\n  only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n  to 12 to compensate and this still tended to be faster for no perceivable\n  loss in accuracy.\n  Usage\n    const easeOut = cubicBezier(.17,.67,.83,.67);\n    const x = easeOut(0.5); // returns 0.627...\n*/\n\nimport { noop } from \"../noop\"\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t: number, a1: number, a2: number) =>\n    (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n    t\n\nconst subdivisionPrecision = 0.0000001\nconst subdivisionMaxIterations = 12\n\nfunction binarySubdivide(\n    x: number,\n    lowerBound: number,\n    upperBound: number,\n    mX1: number,\n    mX2: number\n) {\n    let currentX: number\n    let currentT: number\n    let i: number = 0\n\n    do {\n        currentT = lowerBound + (upperBound - lowerBound) / 2.0\n        currentX = calcBezier(currentT, mX1, mX2) - x\n        if (currentX > 0.0) {\n            upperBound = currentT\n        } else {\n            lowerBound = currentT\n        }\n    } while (\n        Math.abs(currentX) > subdivisionPrecision &&\n        ++i < subdivisionMaxIterations\n    )\n\n    return currentT\n}\n\nexport function cubicBezier(\n    mX1: number,\n    mY1: number,\n    mX2: number,\n    mY2: number\n) {\n    // If this is a linear gradient, return linear easing\n    if (mX1 === mY1 && mX2 === mY2) return noop\n\n    const getTForX = (aX: number) => binarySubdivide(aX, 0, 1, mX1, mX2)\n\n    // If animation is at start/end, return t without easing\n    return (t: number) =>\n        t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2)\n}\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n\nimport { EasingModifier } from \"../types\"\n\n// the second half of the animation. Turns easeIn into easeInOut.\nexport const mirrorEasing: EasingModifier = (easing) => (p) =>\n    p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2\n","// Accepts an easing function and returns a new one that outputs reversed values.\n\nimport { EasingModifier } from \"../types\"\n\n// Turns easeIn into easeOut.\nexport const reverseEasing: EasingModifier = (easing) => (p) =>\n    1 - easing(1 - p)\n","import { cubicBezier } from \"./cubic-bezier\"\nimport { mirrorEasing } from \"./modifiers/mirror\"\nimport { reverseEasing } from \"./modifiers/reverse\"\n\nexport const backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99)\nexport const backIn = /*@__PURE__*/ reverseEasing(backOut)\nexport const backInOut = /*@__PURE__*/ mirrorEasing(backIn)\n","import { backIn } from \"./back\"\n\nexport const anticipate = (p: number) =>\n    (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)))\n","import { mirrorEasing } from \"./modifiers/mirror\"\nimport { reverseEasing } from \"./modifiers/reverse\"\nimport { EasingFunction } from \"./types\"\n\nexport const circIn: EasingFunction = (p) => 1 - Math.sin(Math.acos(p))\nexport const circOut = reverseEasing(circIn)\nexport const circInOut = mirrorEasing(circIn)\n","import { cubicBezier } from \"./cubic-bezier\"\n\nexport const easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1)\nexport const easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1)\nexport const easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1)\n","import { clamp } from \"../clamp\"\nimport type { EasingFunction } from \"./types\"\n\n/*\n  Create stepped version of 0-1 progress\n\n  @param [int]: Number of steps\n  @param [number]: Current value\n  @return [number]: Stepped value\n*/\nexport type Direction = \"start\" | \"end\"\n\nexport function steps(\n    numSteps: number,\n    direction: Direction = \"end\"\n): EasingFunction {\n    return (progress: number) => {\n        progress =\n            direction === \"end\"\n                ? Math.min(progress, 0.999)\n                : Math.max(progress, 0.001)\n        const expanded = progress * numSteps\n        const rounded =\n            direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded)\n\n        return clamp(0, 1, rounded / numSteps)\n    }\n}\n","import { Easing } from \"../types\"\n\nexport const isEasingArray = (ease: any): ease is Easing[] => {\n    return Array.isArray(ease) && typeof ease[0] !== \"number\"\n}\n","import { wrap } from \"../../wrap\"\nimport { Easing } from \"../types\"\nimport { isEasingArray } from \"./is-easing-array\"\n\nexport function getEasingForSegment(\n    easing: Easing | Easing[],\n    i: number\n): Easing {\n    return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing\n}\n","import { BezierDefinition, Easing } from \"../types\"\n\nexport const isBezierDefinition = (\n    easing: Easing | Easing[]\n): easing is BezierDefinition =>\n    Array.isArray(easing) && typeof easing[0] === \"number\"\n","import { invariant } from \"../../errors\"\nimport { noop } from \"../../noop\"\nimport { anticipate } from \"../anticipate\"\nimport { backIn, backInOut, backOut } from \"../back\"\nimport { circIn, circInOut, circOut } from \"../circ\"\nimport { cubicBezier } from \"../cubic-bezier\"\nimport { easeIn, easeInOut, easeOut } from \"../ease\"\nimport { Easing, EasingFunction } from \"../types\"\nimport { isBezierDefinition } from \"./is-bezier-definition\"\n\nconst easingLookup = {\n    linear: noop,\n    easeIn,\n    easeInOut,\n    easeOut,\n    circIn,\n    circInOut,\n    circOut,\n    backIn,\n    backInOut,\n    backOut,\n    anticipate,\n}\n\nconst isValidEasing = (easing: Easing): easing is keyof typeof easingLookup => {\n    return typeof easing === \"string\"\n}\n\nexport const easingDefinitionToFunction = (\n    definition: Easing\n): EasingFunction => {\n    if (isBezierDefinition(definition)) {\n        // If cubic bezier definition, create bezier curve\n        invariant(\n            definition.length === 4,\n            `Cubic bezier arrays must contain four numerical values.`,\n            \"cubic-bezier-length\"\n        )\n\n        const [x1, y1, x2, y2] = definition\n        return cubicBezier(x1, y1, x2, y2)\n    } else if (isValidEasing(definition)) {\n        // Else lookup from table\n        invariant(\n            easingLookup[definition] !== undefined,\n            `Invalid easing type '${definition}'`,\n            \"invalid-easing-type\"\n        )\n        return easingLookup[definition]\n    }\n\n    return definition\n}\n"]}