{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/PcBYnjC4AiG8f8hbkOC3/WKaey5C6iMqiYOxKTJvF/AutoscrollOverrides.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useState,useRef,useEffect}from\"react\";import{useScroll,useInView,useMotionValueEvent,useMotionValue,animate,motion}from\"framer-motion\";const AUTOSCROLL_SPEED=30;export function withAutoScroll(Component){return props=>{const ref=useRef();const x=useMotionValue(0);const{scrollX}=useScroll({container:ref});const isInView=useInView(ref);const[animationControls,setAnimationControls]=useState();const onContainerMutation=useCallback(records=>{if(ref.current&&animationControls){const[record]=records;if(record.type===\"childList\"&&(record.addedNodes.length||record.removedNodes.length)){animationControls.pause();scrollTo(0,\"instant\");const target=Math.max(ref.current.scrollWidth-ref.current.clientWidth,0);const controls=animate(x,[0,target],{ease:\"linear\",duration:target/AUTOSCROLL_SPEED,repeatType:\"mirror\",repeat:Infinity,repeatDelay:0});controls.play();setAnimationControls(controls);}}},[animationControls]);useMutationObserver(ref,onContainerMutation);useEffect(()=>{if(isInView&&!animationControls){const target=Math.max(ref.current.scrollWidth-ref.current.clientWidth,0);const controls=animate(x,[0,Math.max(ref.current.scrollWidth-ref.current.clientWidth,0)],{ease:\"linear\",duration:target/AUTOSCROLL_SPEED,repeatType:\"mirror\",repeat:Infinity,repeatDelay:0});controls.play();setAnimationControls(controls);}},[isInView,ref,animationControls,x]);useEffect(()=>{if(animationControls){if(!isInView){animationControls.pause();}else{animationControls.play();}}},[isInView,animationControls]);const scrollTo=useCallback((left,behavior=\"smooth\")=>{ref.current?.scrollTo({left,behavior});},[ref]);const[direction,setDirection]=useState(\"RIGHT\");useMotionValueEvent(x,\"change\",latest=>{scrollTo(latest,\"auto\");});const onMouseEnter=useCallback(()=>{if(animationControls){animationControls.pause();const time=animationControls.time;const target=Math.max(ref.current.scrollWidth-ref.current.clientWidth,0);const mod=Math.floor(time/(target/AUTOSCROLL_SPEED))%2;setDirection(mod===1?\"LEFT\":\"RIGHT\");}},[animationControls]);const onMouseLeave=useCallback(()=>{if(animationControls&&isInView){const target=Math.max(ref.current.scrollWidth-ref.current.clientWidth,0);animationControls.time=direction===\"LEFT\"?target/AUTOSCROLL_SPEED+target/AUTOSCROLL_SPEED*(ref.current.scrollWidth-ref.current.clientWidth-scrollX.get())/(ref.current.scrollWidth-ref.current.clientWidth):target/AUTOSCROLL_SPEED*(scrollX.get()/Math.max(ref.current.scrollWidth-ref.current.clientWidth,0));animationControls.play();}},[animationControls,isInView,scrollX,ref,direction]);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,onMouseEnter:onMouseEnter,onMouseLeave:onMouseLeave,onTouchStart:onMouseEnter});};}export function withResponsiveAutoScroll(Component){return props=>{const x=useMotionValue(0);const[isEnabled,setIsEnabled]=useState(false);const[width,setWidth]=useState(0);const ref=useRef();const onResize=useCallback(()=>{if(ref.current){const parentElement=ref.current.parentElement.parentElement;const parentComputedStyle=getComputedStyle(parentElement);const parentWidth=parentElement.clientWidth-(parseFloat(parentComputedStyle.paddingLeft)+parseFloat(parentComputedStyle.paddingRight));const width=ref.current.clientWidth;if(width>parentWidth){setIsEnabled(true);setWidth(width);}else{setIsEnabled(false);setWidth(0);}}},[]);const onRef=useCallback(value=>{ref.current=value;if(value){onResize();}},[onResize]);useEffect(()=>{const listener=()=>{onResize();};window.addEventListener(\"resize\",listener,{passive:true});return()=>{window.removeEventListener(\"resize\",listener);};},[]);return /*#__PURE__*/_jsxs(motion.div,{initial:{x:0},animate:{x:width?-(width+8):0},transition:{repeatType:\"loop\",duration:6,delay:3,repeat:Infinity,ease:\"linear\"},style:{display:\"flex\",gap:8},children:[/*#__PURE__*/_jsx(Component,{...props,ref:onRef}),isEnabled?/*#__PURE__*/_jsx(Component,{...props}):null]});};}const defaultOptions={attributes:false,characterData:false,childList:true,subtree:false};function useMutationObserver(ref,callback,options=defaultOptions){useEffect(()=>{if(ref.current){const observer=new MutationObserver(callback);observer.observe(ref.current,options);return()=>{observer.disconnect();};}},[callback,options]);}\nexport const __FramerMetadata__ = {\"exports\":{\"withAutoScroll\":{\"type\":\"reactHoc\",\"name\":\"withAutoScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResponsiveAutoScroll\":{\"type\":\"reactHoc\",\"name\":\"withResponsiveAutoScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AutoscrollOverrides.map"],
  "mappings": "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",
  "names": ["AUTOSCROLL_SPEED", "withAutoScroll", "Component", "props", "ref", "pe", "x", "useMotionValue", "scrollX", "useScroll", "isInView", "useInView", "animationControls", "setAnimationControls", "ye", "onContainerMutation", "te", "records", "record", "scrollTo", "target", "controls", "animate", "useMutationObserver", "ue", "left", "behavior", "direction", "setDirection", "useMotionValueEvent", "latest", "onMouseEnter", "time", "mod", "onMouseLeave", "p", "withResponsiveAutoScroll", "isEnabled", "setIsEnabled", "width", "setWidth", "onResize", "parentElement", "parentComputedStyle", "parentWidth", "onRef", "value", "listener", "window", "u", "motion", "defaultOptions", "callback", "options", "observer"]
}
