{"version":3,"sources":["jsdelivr-header.js","/npm/@motionone/utils@10.18.0/dist/array.es.js","/npm/@motionone/utils@10.18.0/dist/clamp.es.js","/npm/@motionone/utils@10.18.0/dist/defaults.es.js","/npm/@motionone/utils@10.18.0/dist/is-number.es.js","/npm/@motionone/utils@10.18.0/dist/is-easing-list.es.js","/npm/@motionone/utils@10.18.0/dist/wrap.es.js","/npm/@motionone/utils@10.18.0/dist/easing.es.js","/npm/@motionone/utils@10.18.0/dist/mix.es.js","/npm/@motionone/utils@10.18.0/dist/noop.es.js","/npm/@motionone/utils@10.18.0/dist/progress.es.js","/npm/@motionone/utils@10.18.0/dist/offset.es.js","/npm/@motionone/utils@10.18.0/dist/interpolate.es.js","/npm/@motionone/utils@10.18.0/dist/is-cubic-bezier.es.js","/npm/@motionone/utils@10.18.0/dist/is-easing-generator.es.js","/npm/@motionone/utils@10.18.0/dist/is-function.es.js","/npm/@motionone/utils@10.18.0/dist/is-string.es.js","/npm/@motionone/utils@10.18.0/dist/time.es.js","/npm/@motionone/utils@10.18.0/dist/velocity.es.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,SAAS,EAAc,EAAO,EAAM,CAChC,EAAM,QAAQ,CAAI,IAAM,IAAM,EAAM,KAAK,CAAI,CACjD,CACA,SAAS,EAAW,EAAK,EAAM,CAC3B,MAAM,EAAQ,EAAI,QAAQ,CAAI,EAC9B,EAAQ,IAAM,EAAI,OAAO,EAAO,CAAC,CACrC,CCNK,MAAC,EAAQ,CAAC,EAAK,EAAK,IAAM,KAAK,IAAI,KAAK,IAAI,EAAG,CAAG,EAAG,CAAG,ECAvD,EAAW,CACb,SAAU,GACV,MAAO,EACP,SAAU,EACV,OAAQ,EACR,OAAQ,MACZ,ECNM,EAAY,GAAU,OAAO,GAAU,SCEvC,EAAgB,GAAW,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAS,EAAO,CAAC,CAAC,ECFvE,EAAO,CAAC,EAAK,EAAK,IAAM,CAC1B,MAAM,EAAY,EAAM,EACxB,QAAW,EAAI,GAAO,EAAa,GAAa,EAAa,CACjE,ECAA,SAAS,EAAoB,EAAQ,EAAG,CACpC,OAAO,EAAa,CAAM,EAAI,EAAO,EAAK,EAAG,EAAO,OAAQ,CAAC,CAAC,EAAI,CACtE,CCLK,MAAC,EAAM,CAAC,EAAK,EAAK,IAAa,CAAC,EAAW,EAAM,EAAW,EAAM,ECAjE,EAAO,IAAM,CAAE,EACf,EAAc,GAAM,ECDpB,EAAW,CAAC,EAAK,EAAK,IAAU,EAAM,IAAQ,EAAI,GAAK,EAAQ,IAAQ,EAAM,GCGnF,SAAS,EAAW,EAAQ,EAAW,CACnC,MAAM,EAAM,EAAO,EAAO,OAAS,CAAC,EACpC,QAAS,EAAI,EAAG,GAAK,EAAW,IAAK,CACjC,MAAM,EAAiB,EAAS,EAAG,EAAW,CAAC,EAC/C,EAAO,KAAK,EAAI,EAAK,EAAG,CAAc,CAAC,CAC3C,CACJ,CACA,SAAS,EAAc,EAAQ,CAC3B,MAAM,EAAS,CAAC,CAAC,EACjB,OAAA,EAAW,EAAQ,EAAS,CAAC,EACtB,CACX,CCPA,SAAS,EAAY,EAAQ,EAAQ,EAAc,EAAO,MAAM,EAAG,EAAS,EAAY,CACpF,MAAM,EAAS,EAAO,OAOhB,EAAY,EAAS,EAAM,OACjC,OAAA,EAAY,GAAK,EAAW,EAAO,CAAS,EACpC,GAAM,CACV,IAAI,EAAI,EACR,KAAO,EAAI,EAAS,GACZ,EAAA,EAAI,EAAM,EAAI,CAAC,GADA,IACnB,CAGJ,IAAI,EAAkB,EAAM,EAAG,EAAG,EAAS,EAAM,CAAC,EAAG,EAAM,EAAI,CAAC,EAAG,CAAC,CAAC,EAErE,OAAA,EADsB,EAAoB,EAAQ,CAAC,EACnB,CAAe,EACxC,EAAI,EAAO,CAAC,EAAG,EAAO,EAAI,CAAC,EAAG,CAAe,CACxD,CACJ,CC1BK,MAAC,EAAiB,GAAW,MAAM,QAAQ,CAAM,GAAK,EAAS,EAAO,CAAC,CAAC,ECFvE,EAAqB,GAAW,OAAO,GAAW,UACpD,EAAQ,EAAO,gBCDb,EAAc,GAAU,OAAO,GAAU,WCAzC,EAAY,GAAU,OAAO,GAAU,SCAvC,EAAO,CACT,GAAK,GAAY,EAAU,IAC3B,EAAI,GAAiB,EAAe,GACxC,ECGA,SAAS,EAAkB,EAAU,EAAe,CAChD,OAAO,EAAgB,GAAY,IAAO,GAAiB,CAC/D","file":"/npm/@motionone/utils@10.18.0/dist/index.es.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@motionone/utils@10.18.0/dist/index.es.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","function addUniqueItem(array, item) {\n    array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n    const index = arr.indexOf(item);\n    index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const defaults = {\n    duration: 0.3,\n    delay: 0,\n    endDelay: 0,\n    repeat: 0,\n    easing: \"ease\",\n};\n\nexport { defaults };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const wrap = (min, max, v) => {\n    const rangeSize = max - min;\n    return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n    return isEasingList(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\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(mix(min, 1, offsetProgress));\n    }\n}\nfunction defaultOffset(length) {\n    const offset = [0];\n    fillOffset(offset, length - 1);\n    return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n    const length = output.length;\n    /**\n     * If the input length is lower than the output we\n     * fill the input to match. This currently assumes the input\n     * is an animation progress value so is a good candidate for\n     * moving outside the function.\n     */\n    const remainder = length - input.length;\n    remainder > 0 && fillOffset(input, remainder);\n    return (t) => {\n        let i = 0;\n        for (; i < length - 2; i++) {\n            if (t < input[i + 1])\n                break;\n        }\n        let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n        const segmentEasing = getEasingForSegment(easing, i);\n        progressInRange = segmentEasing(progressInRange);\n        return mix(output[i], output[i + 1], progressInRange);\n    };\n}\n\nexport { interpolate };\n","import { isNumber } from './is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\n\nexport { isCubicBezier };\n","const isEasingGenerator = (easing) => typeof easing === \"object\" &&\n    Boolean(easing.createAnimation);\n\nexport { isEasingGenerator };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","const time = {\n    ms: (seconds) => seconds * 1000,\n    s: (milliseconds) => milliseconds / 1000,\n};\n\nexport { time };\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"]}