{"version":3,"file":"ExclusiveAudioPlayback.w1O2--TS.mjs","names":["useRef","isMotionValue","isMotionValue","useRef","useCallback","isMotionValue","animate","useMemo","useState","useRef","useCallback","isMotionValue","useState","_Fragment","useRef","useCallback","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/0tL3NK6Gdibfi84549mt/wxfj3uKBUiepHMkJD9XI/lodash.js","https:/framer.com/m/framer/lodash.js@0.3.0","https:/framerusercontent.com/modules/AHY1z1xp5QsxaZBkEL9H/7Qvf2RhlgA8L1UHMchaV/Slider.js","https:/framerusercontent.com/modules/NRKVbMFYrBaqL0rx532t/2NLwQRLJdaV5jyzPAzvG/Audio.js","https:/framerusercontent.com/modules/kpc1RJXxasi3tEC8SImu/VbEXKeuAf0KwmfuR9Z7C/ExclusiveAudioPlayback.js"],"sourcesContent":["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","export function mstoMinAndSec(millis) {\n    const minutes = Math.floor(millis / 60000);\n    const seconds = parseInt((millis % 60000 / 1000).toFixed(0));\n    return minutes + \":\" + (seconds < 10 ? \"0\" : \"\") + seconds;\n}\nexport function secondsToMinutes(seconds) {\n    const minutes = Math.floor(seconds / 60);\n    const s = Math.floor(seconds % 60);\n    return minutes + \":\" + (s < 10 ? \"0\" : \"\") + s;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"mstoMinAndSec\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./time.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","/** Error message constants. */ var FUNC_ERROR_TEXT = \"Expected a function\";\n/* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min;\n/** Used as references for various `Number` constants. */ var NAN = 0 / 0;\n/** Used to match leading and trailing whitespace. */ var reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt;\nvar now = function() {\n    return Date.now();\n};\nfunction isObject(value) {\n    var type = typeof value;\n    return value != null && (type == \"object\" || type == \"function\");\n}\nfunction isObjectLike(value) {\n    return value != null && typeof value == \"object\";\n}\nfunction toNumber(value) {\n    if (typeof value == \"number\") {\n        return value;\n    }\n    if (typeof value == \"symbol\") {\n        return NAN;\n    }\n    if (isObject(value)) {\n        var other = typeof value.valueOf == \"function\" ? value.valueOf() : value;\n        value = isObject(other) ? other + \"\" : other;\n    }\n    if (typeof value != \"string\") {\n        return value === 0 ? value : +value;\n    }\n    value = value.replace(reTrim, \"\");\n    var isBinary = reIsBinary.test(value);\n    return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\nexport function debounce(func, wait, options) {\n    var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;\n    if (typeof func != \"function\") {\n        throw new TypeError(FUNC_ERROR_TEXT);\n    }\n    wait = toNumber(wait) || 0;\n    if (isObject(options)) {\n        leading = !!options.leading;\n        maxing = \"maxWait\" in options;\n        maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    function invokeFunc(time) {\n        var args = lastArgs, thisArg = lastThis;\n        lastArgs = lastThis = undefined;\n        lastInvokeTime = time;\n        result = func.apply(thisArg, args);\n        return result;\n    }\n    function leadingEdge(time) {\n        // Reset any `maxWait` timer.\n        lastInvokeTime = time;\n        // Start the timer for the trailing edge.\n        timerId = setTimeout(timerExpired, wait);\n        // Invoke the leading edge.\n        return leading ? invokeFunc(time) : result;\n    }\n    function remainingWait(time) {\n        var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;\n        return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n    }\n    function shouldInvoke(time) {\n        var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;\n        // Either this is the first call, activity has stopped and we're at the\n        // trailing edge, the system time has gone backwards and we're treating\n        // it as the trailing edge, or we've hit the `maxWait` limit.\n        return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n    }\n    function timerExpired() {\n        var time = now();\n        if (shouldInvoke(time)) {\n            return trailingEdge(time);\n        }\n        // Restart the timer.\n        timerId = setTimeout(timerExpired, remainingWait(time));\n    }\n    function trailingEdge(time) {\n        timerId = undefined;\n        // Only invoke if we have `lastArgs` which means `func` has been\n        // debounced at least once.\n        if (trailing && lastArgs) {\n            return invokeFunc(time);\n        }\n        lastArgs = lastThis = undefined;\n        return result;\n    }\n    function cancel() {\n        if (timerId !== undefined) {\n            clearTimeout(timerId);\n        }\n        lastInvokeTime = 0;\n        lastArgs = lastCallTime = lastThis = timerId = undefined;\n    }\n    function flush() {\n        return timerId === undefined ? result : trailingEdge(now());\n    }\n    function debounced() {\n        var time = now(), isInvoking = shouldInvoke(time);\n        lastArgs = arguments;\n        lastThis = this;\n        lastCallTime = time;\n        if (isInvoking) {\n            if (timerId === undefined) {\n                return leadingEdge(lastCallTime);\n            }\n            if (maxing) {\n                // Handle invocations in a tight loop.\n                clearTimeout(timerId);\n                timerId = setTimeout(timerExpired, wait);\n                return invokeFunc(lastCallTime);\n            }\n        }\n        if (timerId === undefined) {\n            timerId = setTimeout(timerExpired, wait);\n        }\n        return result;\n    }\n    debounced.cancel = cancel;\n    debounced.flush = flush;\n    return debounced;\n}\nexport function throttle(func, wait, options) {\n    var leading = true, trailing = true;\n    if (typeof func != \"function\") {\n        throw new TypeError(FUNC_ERROR_TEXT);\n    }\n    if (isObject(options)) {\n        leading = \"leading\" in options ? !!options.leading : leading;\n        trailing = \"trailing\" in options ? !!options.trailing : trailing;\n    }\n    return debounce(func, wait, {\n        leading: leading,\n        maxWait: wait,\n        trailing: trailing\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"throttle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"debounce\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./lodash.map","/*\n * lodash (framer/lodash@0.3.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/0tL3NK6Gdibfi84549mt/wxfj3uKBUiepHMkJD9XI/lodash.js\"\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{animate,transform,motion,useTransform}from\"framer-motion\";import{useRef,useState,useCallback}from\"react\";import{isMotionValue,useOnChange,useAutoMotionValue}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{throttle}from\"https://framer.com/m/framer/lodash.js@0.3.0\";var KnobOptions;(function(KnobOptions){KnobOptions[\"Hide\"]=\"Hide\";KnobOptions[\"Hover\"]=\"Hover\";KnobOptions[\"Show\"]=\"Show\";})(KnobOptions||(KnobOptions={}));/**\n * SLIDER\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 20\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */ export const Slider=withCSS(function Slider(props){const{value:valueProp,trackHeight,fillColor,focusColor,min,max,onChange,onChangeLive,onMax,onMin,trackColor,trackRadius,knobSize,knobColor,constrainKnob,shadow,shouldAnimateChange,transition,overdrag,knobSetting,style}=props;const[hovered,setHovered]=useState(false);const[focused,setFocused]=useState(false);const onCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldAnimate=shouldAnimateChange&&!onCanvas;const isConstrained=constrainKnob&&knobSetting===KnobOptions.Show;const showKnob=knobSetting!==KnobOptions.Hide;const input=useRef();const knobPadding=8;// Main setting function\nconst updateValue=useCallback((newVal,target)=>{throttledInputUpdate(newVal);if(onChange)onChange(newVal);if(shouldAnimate)animate(target,newVal,transition);else requestAnimationFrame(()=>target.set(newVal));},[transition,shouldAnimate,onChange]);// \"value\" is the source of truth\n// It can be controlled via props with a motionvalue or number 0.0 - 1.0\n// Local changes are always allowed and are reported back up using \"onChange\" callback\nconst value=useAutoMotionValue(valueProp,{onChange:updateValue,transform:value=>transform(value,[0,100],[min,max])});const knobX=useTransform(value,[min,max],[\"0%\",\"100%\"]);const normalizedValue=useTransform(value,[min,max],[0,1]);const throttledInputUpdate=useCallback(throttle(val=>{var ref;if((ref=input.current)===null||ref===void 0?void 0:ref.value)input.current.value=val;},100),[input]);// Live updating callback\nuseOnChange(value,val=>{if(isMotionValue(valueProp))throttledInputUpdate(val);if(onMax&&val>=max)onMax();if(onMin&&val<=min)onMin();if(onChangeLive)onChangeLive(val);});// Read changes from input element\nconst handleInputChange=e=>{updateValue(parseFloat(e.target.value),value);};// Handle tapping on the know to trigger update\nconst handleMouseDown=e=>{if(parseFloat(e.target.value)!==0)updateValue(parseFloat(e.target.value),value);};const handleMouseUp=()=>{};const totalKnobWidth=showKnob?knobSize+knobPadding:knobPadding;const totalHeight=Math.max(knobSize+knobPadding,trackHeight);return /*#__PURE__*/ _jsxs(\"div\",{className:\"framer-default-slider\",onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{position:\"relative\",...style,alignItems:\"center\",justifyContent:\"flex-start\",border:`0px solid ${focusColor}`,\"--framer-default-slider-height\":totalHeight,\"--framer-default-slider-width\":totalKnobWidth},children:[/*#__PURE__*/ _jsx(\"input\",{ref:input,style:{flexShrink:0,minHeight:totalHeight,opacity:0,margin:0,display:\"flex\",...style,WebkitTapHighlightColor:\"rgba(0, 0, 0, 0)\",...!isConstrained&&{width:`calc(100% + ${totalKnobWidth}px)`,marginLeft:-totalKnobWidth/2}},onFocus:()=>setFocused(true),onBlur:()=>setFocused(false),type:\"range\",min:min,max:max,defaultValue:-1,step:\"any\",onChange:handleInputChange,onMouseDown:handleMouseDown,onMouseUp:handleMouseUp}),/*#__PURE__*/ _jsx(\"div\",{style:{background:trackColor,position:\"absolute\",top:`calc(50% - ${Math.ceil(trackHeight/2)}px)`,borderRadius:trackRadius,display:\"flex\",height:trackHeight,width:\"100%\",transformOrigin:\"left\",pointerEvents:\"none\",overflow:\"hidden\"},children:/*#__PURE__*/ _jsx(motion.div,{style:{height:trackHeight,width:\"100%\",background:fillColor,scaleX:normalizedValue,position:\"absolute\",top:`calc(50% - ${Math.ceil(trackHeight/2)}px)`,transformOrigin:\"left\",pointerEvents:\"none\"}})}),/*#__PURE__*/ _jsx(motion.div,{style:{x:knobX,position:\"absolute\",display:\"flex\",top:`calc(50% - ${Math.floor(knobSize/2)}px)`,pointerEvents:\"none\",...isConstrained?{width:`calc(100% - ${knobSize}px`,left:0}:{width:`100%`,left:-knobSize/2}},children:/*#__PURE__*/ _jsx(motion.div,{initial:false,animate:{scale:hovered&&knobSetting===KnobOptions.Hover||knobSetting===KnobOptions.Show?1:0},transition:{type:\"spring\",stiffness:900,damping:40},style:{transformOrigin:\"50% 50%\",width:knobSize,height:knobSize,borderRadius:\"50%\",background:knobColor,pointerEvents:\"none\",boxShadow:`0px 1px 2px 0px ${shadow}, \n                                0px 2px 4px 0px ${shadow}, \n                                0px 4px 8px 0px ${shadow}`}})})]});},[\".framer-default-slider input[type=range] {  width: 100%; height: 100% background:transparent margin: 0;}\",\".framer-default-slider input[type=range]:focus { outline: none; }\",\".framer-default-slider input[type=range]::-ms-track { width: 100%; cursor: pointer; background: transparent; border-color: transparent; color: transparent; }\",\".framer-default-slider input[type=range]::-webkit-slider-thumb { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",\".framer-default-slider input[type=range]::-moz-range-thumb { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",\".framer-default-slider input[type=range]::-ms-thumb  { height: var(--framer-default-slider-height, 0px); width: var(--framer-default-slider-width, 0px); border-radius: 0;  background: none; }\",]);Slider.displayName=\"Slider\";Slider.defaultProps={height:20,width:200,trackHeight:4,fillColor:\"#09F\",trackColor:\"#DDD\",knobColor:\"#FFF\",focusColor:\"rgba(0, 153, 255,0)\",shadow:\"rgba(0,0,0,0.1)\",knobSize:20,overdrag:true,min:0,max:100,value:50,trackRadius:5,knobSetting:KnobOptions.Show,constrainKnob:false,transition:{type:\"spring\",delay:0,stiffness:750,damping:50},shouldAnimateChange:true};addPropertyControls(Slider,{fillColor:{title:\"Tint\",type:ControlType.Color},trackColor:{title:\"Track\",type:ControlType.Color},knobColor:{title:\"Knob\",type:ControlType.Color},shadow:{type:ControlType.Color,title:\"Shadow\"},// focusColor: {\n//     title: \"Focus\",\n//     type: ControlType.Color,\n// },\nshouldAnimateChange:{type:ControlType.Boolean,title:\"Changes\",enabledTitle:\"Animate\",disabledTitle:\"Instant\"},transition:{type:ControlType.Transition,defaultValue:Slider.defaultProps.transition},knobSetting:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Knob\",options:[\"Hide\",\"Hover\",\"Show\"]},constrainKnob:{type:ControlType.Boolean,title:\"Constrain\",enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:({knobSetting})=>knobSetting!==KnobOptions.Show},knobSize:{type:ControlType.Number,title:\"Knob\",min:10,max:100,hidden:({knobSetting})=>knobSetting===KnobOptions.Hide},value:{type:ControlType.Number,title:\"Value\",min:0,max:100,unit:\"%\"},trackHeight:{title:\"Height\",type:ControlType.Number,min:0},min:{title:\"Min\",type:ControlType.Number,displayStepper:true},trackRadius:{type:ControlType.Number,displayStepper:true,min:0,max:200,title:\"Radius\"},max:{title:\"Max\",type:ControlType.Number,displayStepper:true},onChange:{type:ControlType.EventHandler},onMax:{type:ControlType.EventHandler},onMin:{type:ControlType.EventHandler}});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Slider\":{\"type\":\"reactComponent\",\"name\":\"Slider\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"20\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Slider.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useRef,useState,useEffect,useCallback}from\"react\";import{addPropertyControls,ControlType,RenderTarget,withCSS}from\"framer\";import{MotionValue,motion,animate,useMotionValueEvent}from\"framer-motion\";import{useOnEnter,usePadding,useRadius,paddingControl,borderRadiusControl,useOnChange,containerStyles,secondsToMinutes,useAutoMotionValue,useOnExit,fontStack,useFontControls}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";// https://framer.com/projects/Default-Utilities-Assets--jihcMELbo9gizWK43snH-gymPh\nimport{Slider}from\"https://framerusercontent.com/modules/AHY1z1xp5QsxaZBkEL9H/7Qvf2RhlgA8L1UHMchaV/Slider.js\";const isMotionValue=v=>v instanceof MotionValue;var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));function PlayTime(props){const{currentTime,startTime}=props;const[playTime,setPlayTime]=useState(\"0:00\");useEffect(()=>{setPlayTime(secondsToMinutes(startTime));},[startTime]);useOnChange(currentTime,latest=>{setPlayTime(secondsToMinutes(latest));});return /*#__PURE__*/_jsx(_Fragment,{children:playTime});}const checkIfPlaying=player=>player.current&&!player.current.paused&&!player.current.ended&&player.current.readyState>2;/**\n * AUDIO\n *\n * Audio player component optimized for smart components.\n *\n * @framerIntrinsicWidth 240\n * @framerIntrinsicHeight 50\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export const Audio=withCSS(function Audio(props){const{playing,background,progressColor,trackHeight,gap,trackColor,srcUrl,srcType,srcFile,loop,font,autoPlay,progress,volume,showTime,showTrack,playPauseCursor,showPlayPause,onTimeUpdate,onMetadata,onPlay,onPause,onEnd,pauseOnExit,onPlayGlobalPauseOption}=props;let iconCursor=\"pointer\";if(!!playPauseCursor){iconCursor=playPauseCursor;}else if(props?.style?.cursor){iconCursor=props.style.cursor;}// Defaults to false, only switches to play if possible\nconst[isPlaying,setIsPlaying]=useState(false);const[duration,setDuration]=useState(0);// Audio element ref and non-state info\nconst player=useRef();const playerInfo=useRef({ready:false,animation:null});// Track progress in ms, always in sync with audio element\nconst trackProgress=useAutoMotionValue(progress,{transform:value=>value*.01,onChange:(newValue,value)=>{if(player.current.duration){player.current.currentTime=newValue*player.current.duration;handlePlayStateUpdate(\"motionHook\");}}});const padding=usePadding(props);const borderRadius=useRadius(props);const{fontSize}=useFontControls(props);const shouldPlay=RenderTarget.current()===RenderTarget.preview;const shouldPausePlayers=onPlayGlobalPauseOption===\"pause\";const url=srcType===\"URL\"?srcUrl:srcFile;const shouldAutoPlay=shouldPlay&&playing;// Sync UI with state of the audio element\n// TODO look into better more performant ways of doing this\nconst handlePlayStateUpdate=useCallback(_=>{const currentDuration=player.current.duration;const currentTime=player.current.currentTime;playerInfo.current?.animation?.stop();if(Math.abs(currentTime-trackProgress.get())>.5){trackProgress.set(currentTime);}if(!shouldPlay)return;const isNowPlaying=checkIfPlaying(player);if(isPlaying!==isNowPlaying)setIsPlaying(isNowPlaying);if(isNowPlaying&&shouldPlay){playerInfo.current.animation=animate(trackProgress,currentDuration,{type:\"tween\",ease:\"linear\",duration:currentDuration-currentTime});}},[shouldPlay,isPlaying]);const pauseAllAudioPlayers=()=>{const audioPlayerElements=document.querySelectorAll(\".framer-audio\");audioPlayerElements.forEach(el=>{el.pause();});};// Always use this for playing audio\n// No logic in here as it is async & can fail\nconst playAudio=()=>{if(shouldPlay)player.current.play().catch(e=>{})// It's likely fine, swallow error\n;};const pauseAudio=()=>{player.current.pause();playerInfo.current?.animation?.stop();};const handleMetadata=()=>{if(onMetadata)onMetadata({duration:player.current.duration});setDuration(player.current.duration);};const initProgress=()=>{if(!isMotionValue(progress)){player.current.currentTime=progress*.01*player.current.duration;}};const handleReady=()=>{// This tries to run on every pause\n// We use playerInfo.ready to only call on initial load of a source\nif(!playerInfo.current.ready){if(shouldAutoPlay)playAudio();playerInfo.current.ready=true;initProgress();}};// Handle seek event from slider\nconst handleSeek=val=>{if(player.current.currentTime){player.current.currentTime=val;handlePlayStateUpdate(\"handleSeek\");}};const handleEnd=()=>{if(onEnd)onEnd();};const handlePlayClick=()=>{if(shouldPausePlayers)pauseAllAudioPlayers();playAudio();};// Control audio via props\nuseEffect(()=>{if(shouldPlay){// In preview when prop changes, pause/play\nif(playing===true)playAudio();else pauseAudio();}else{// Only set the state for canvas use\nif(playing===true)setIsPlaying(true);else setIsPlaying(false);}},[playing]);useEffect(()=>{// Do this in an effect to correct on optimised sites\nif(player.current?.duration)setDuration(player.current.duration);},[]);// Call event callbacks\nuseEffect(()=>{if(playerInfo.current.ready&&isPlaying&&onPlay)onPlay();else if(playerInfo.current.ready&&onPause)onPause();},[isPlaying]);// Volume Control\nuseEffect(()=>{player.current.volume=volume/100;},[volume]);// Reset ready state when src changes\nuseEffect(()=>{playerInfo.current.ready=false;},[srcFile,srcType,srcUrl]);// Play on navigation\nuseOnEnter(()=>{if(shouldAutoPlay)playAudio();});useOnExit(()=>{if(pauseOnExit)player.current.pause();});useMotionValueEvent(trackProgress,\"change\",val=>{const progressPercent=player.current?.duration?val/player.current.duration*100:null;if(onTimeUpdate){onTimeUpdate(val,progressPercent,secondsToMinutes(val));}});const iconStyles={marginRight:showTime||showTrack?gap:0,flexShrink:0,cursor:iconCursor};return /*#__PURE__*/_jsxs(\"div\",{style:{...containerStyles,position:\"relative\",overflow:\"hidden\",background,padding,borderRadius},children:[/*#__PURE__*/_jsx(\"audio\",{src:url,loop:loop,className:\"framer-audio\",ref:player,// For why preload=none (and not metadata or auto or intersection observer),\n// see https://framer-team.slack.com/archives/C07D1C7KQQ3/p1761760078523569?thread_ts=1761728391.430019&cid=C07D1C7KQQ3\npreload:\"none\",autoPlay:shouldAutoPlay,onLoadedMetadata:handleMetadata,onCanPlayThrough:handleReady,// Listen to all events for status changes\nonPlaying:()=>handlePlayStateUpdate(\"playingEvent\"),onPlay:()=>handlePlayStateUpdate(\"playEvent\"),onSeeked:()=>handlePlayStateUpdate(\"seekEvent\"),onPause:()=>handlePlayStateUpdate(\"pauseEvent\"),onEnded:()=>handleEnd()}),showPlayPause&&/*#__PURE__*/_jsx(_Fragment,{children:isPlaying?/*#__PURE__*/_jsx(PauseIcon,{width:16,whileTap:{scale:.9},onClick:()=>pauseAudio(),style:iconStyles,\"aria-label\":\"pause audio\"}):/*#__PURE__*/_jsx(PlayIcon,{width:16,whileTap:{scale:.9},onClick:handlePlayClick,style:iconStyles,\"aria-label\":\"play audio\"})}),showTime&&/*#__PURE__*/_jsxs(\"p\",{style:{userSelect:\"none\",color:\"#333\",fontWeight:500,letterSpacing:-.25,margin:0,flexShrink:0,fontFamily:fontStack,fontVariantNumeric:\"tabular-nums\",marginRight:showTrack?gap:0,...font},children:[/*#__PURE__*/_jsx(PlayTime,{startTime:duration*(isMotionValue(progress)?progress.get():progress*.01),currentTime:trackProgress}),/*#__PURE__*/_jsx(\"span\",{style:{padding:\"0 2px\"},children:\"/\"}),duration>0?secondsToMinutes(duration):\"1:34\"]}),showTrack&&/*#__PURE__*/_jsx(Slider,{style:{width:\"100%\"},value:trackProgress,fillColor:progressColor,knobSetting:\"Hover\",shadow:`rgba(0,0,0,0)`,knobSize:10,knobColor:progressColor,onChange:handleSeek,shouldAnimateChange:false,min:0,max:duration,trackColor:trackColor})]});},[\".framer-audio-icon { outline: none; }\",\".framer-audio-icons:focus-visible { outline: auto; }\"]);Audio.defaultProps={background:\"#EBEBEB\",trackColor:\"#FFFFFF\",font:{fontSize:12},progressColor:\"#333333\",srcUrl:\"https://assets.mixkit.co/music/preview/mixkit-tech-house-vibes-130.mp3\",srcType:\"URL\",pauseOnExit:true,borderRadius:8,padding:15,progress:0,volume:25,loop:false,playing:true,autoPlay:true,showTime:true,showTrack:true,showPlayPause:true,onPlayGlobalPauseOption:\"continue\",trackHeight:4,gap:15,height:50,width:240};addPropertyControls(Audio,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\" \",placeholder:\".../example.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\" \",allowedFileTypes:[\"mp4\",\"mp3\",\"wav\",\"m4a\"],hidden(props){return props.srcType===\"URL\";}},playing:{title:\"Playing\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},loop:{title:\"Loop\",type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\"},// autoPlay: {\n//     type: ControlType.Boolean,\n//     title: \"Autoplay\",\n//     enabledTitle: \"Yes\",\n//     disabledTitle: \"No\",\n// },\nprogress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\"},progressColor:{title:\"Progress\",type:ControlType.Color,defaultValue:Audio.defaultProps.progressColor},trackColor:{title:\"Track\",type:ControlType.Color,defaultValue:Audio.defaultProps.trackColor},background:{title:\"Player\",type:ControlType.Color,defaultValue:Audio.defaultProps.background},font:{title:\"Font\",// @ts-ignore – Internal\ntype:ControlType.Font,displayFontSize:true},...paddingControl,...borderRadiusControl,gap:{type:ControlType.Number,min:0,max:100,displayStepper:true},showPlayPause:{type:ControlType.Boolean,title:\"Play/Pause\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},showTrack:{type:ControlType.Boolean,title:\"Track\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},showTime:{type:ControlType.Boolean,title:\"Time\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},pauseOnExit:{type:ControlType.Boolean,title:\"On Leave\",enabledTitle:\"Pause\",disabledTitle:\"Continue\"},onPlayGlobalPauseOption:{type:ControlType.Enum,title:\"On Play\",options:[\"continue\",\"pause\"],optionTitles:[\"Continue All\",\"Pause All\"]},onPlay:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onEnd:{type:ControlType.EventHandler},onTimeUpdate:{type:ControlType.EventHandler}});const trackStyle={borderRadius:10,width:\"100%\",overflow:\"hidden\"};const trackParentStyle={position:\"relative\",border:\"1px solid red\",display:\"flex\",alignItems:\"center\",height:\"100%\",width:\"100%\"};function PlayIcon(props){return /*#__PURE__*/_jsx(motion.svg,{...props,className:\"framer-audio-icon\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 16 16\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M 5.379 1.292 C 4.968 1.033 4.449 1.017 4.023 1.251 C 3.598 1.486 3.334 1.933 3.333 2.419 L 3.333 13.581 C 3.334 14.067 3.598 14.514 4.023 14.749 C 4.449 14.983 4.968 14.967 5.379 14.708 L 14.215 9.127 C 14.602 8.883 14.836 8.457 14.836 8 C 14.836 7.543 14.602 7.117 14.215 6.873 Z\",fill:\"#333\"})});}function PauseIcon(props){return /*#__PURE__*/_jsxs(motion.svg,{...props,className:\"framer-audio-icon\",xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 16 16\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M 3 3 C 3 2.448 3.448 2 4 2 L 6 2 C 6.552 2 7 2.448 7 3 L 7 13 C 7 13.552 6.552 14 6 14 L 4 14 C 3.448 14 3 13.552 3 13 Z\",fill:\"#343434\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M 9 3 C 9 2.448 9.448 2 10 2 L 12 2 C 12.552 2 13 2.448 13 3 L 13 13 C 13 13.552 12.552 14 12 14 L 10 14 C 9.448 14 9 13.552 9 13 Z\",fill:\"#343434\"})]});}\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Audio\":{\"type\":\"reactComponent\",\"name\":\"Audio\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"240\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"50\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Audio.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useCallback,useEffect,useRef}from\"react\";// Create a Framer code override named ExclusiveAudioPlayback. It will be applied to existing canvas Audio component instances used as compact demo players. On any play event originating from the wrapped player, pause every other HTML audio element currently playing on the document, without changing their current time. The wrapped player itself must continue normally. Use a scoped wrapper/ref and a capture-phase document listener; clean up listeners on unmount. Preserve the wrapped component’s styling and all props. Do not create a new visual component or controls.\nexport function ExclusiveAudioPlayback(Component){return /*#__PURE__*/forwardRef(function ExclusiveAudioPlaybackOverride(props,ref){const scopedRootRef=useRef(null);const WrappedComponent=Component;useEffect(()=>{if(typeof document===\"undefined\")return;const onPlayCapture=event=>{const playingAudio=event.target;if(!(playingAudio instanceof HTMLAudioElement))return;const allAudioElements=document.querySelectorAll(\"audio\");allAudioElements.forEach(audioElement=>{if(audioElement!==playingAudio&&!audioElement.paused){audioElement.pause();}});};document.addEventListener(\"play\",onPlayCapture,true);return()=>{document.removeEventListener(\"play\",onPlayCapture,true);};},[]);const onWrapperClickCapture=useCallback(event=>{const target=event.target;if(!(target instanceof Element))return;const nativeInteractive=target.closest(\"button, a, input, select, textarea, label, summary, audio, video\");if(nativeInteractive)return;const scope=scopedRootRef.current;if(!scope)return;const audioElement=scope.querySelector(\"audio\");if(!audioElement)return;event.preventDefault();event.stopPropagation();if(audioElement.paused){void audioElement.play();}else{audioElement.pause();}},[]);return /*#__PURE__*/_jsx(\"div\",{ref:scopedRootRef,onClickCapture:onWrapperClickCapture,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(WrappedComponent,{...props,ref:ref})});});}\nexport const __FramerMetadata__ = {\"exports\":{\"ExclusiveAudioPlayback\":{\"type\":\"reactHoc\",\"name\":\"ExclusiveAudioPlayback\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ExclusiveAudioPlayback.map"],"mappings":"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"}