{"version":3,"file":"useAutoMotionValue.js@_0.3.CxeVXW1S.mjs","names":["useRef","useCallback","animate"],"sources":["https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.js","https:/framer.com/m/framer/useAutoMotionValue.js@^0.3.0"],"sourcesContent":["import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map","import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map","/*\n * useAutoMotionValue (framer/useAutoMotionValue@0.3.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.js\"\n"],"mappings":"6SAAgC,CACnB,EAAc,GAAG,aAAa,KCD8S,SAAgB,EAAmB,EAAW,EAAQ,CAE/Y,IAAM,EAAWA,EAAO,EAAQ,CAAO,EAAUA,GAAQ,CAAO,EAAgBA,EAAO,GAAM,CAAO,EAAW,EAAa,SAAS,GAAG,EAAa,OAC/I,EAAc,GAAgD,aAAc,EAAQ,aAAa,EAAE,CACnG,EAASC,EAAY,GAAgD,SAAS,CAAC,GAAG,EAAc,CAAC,CACjG,EAAYA,EAAY,GAA4B,EAAW,SAAyC,UAAW,EAAW,QAAQ,UAAU,EAAM,CAAC,EAAQ,EAAE,CAAC,CAClK,EAAO,MAAgB,EAAc,EAAW,CAAC,EAAW,EAAY,EAAY,EAAW,CAAC,CAAC,CAIqG,OAH5M,MAAc,CAAC,GAAG,CAAC,EAAc,EAAW,EAAE,EAAgB,QAAQ,CAAC,IAAI,EAAS,IAAM,EAAS,EAAY,EAAW,EAAE,EAAI,EAAU,UAAW,MAA0B,EAAI,MAAM,CACtL,GAAS,EAAS,EAAS,EAAO,CAC3B,EAAW,SAA2C,SAAU,CAAC,EAC3E,EAAU,QAAQC,EAAQ,EAAO,EAAe,EAAW,SAA2C,WAAW,CAAO,EAAO,IAAI,EAAS,CAAG,EAAgB,QAAQ,IAAO,CAAC,EAAW,GAAG,EAAa,CAAC,CAAQ,mBAVnK,IAAqD,IAA4H,IAAwH"}