{"version":3,"file":"WavyTicker.DFnrt2GC.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/0Tgc2SlXfmSiciva8afn/LCaStzFt2jJsuJdboo3i/WavyTicker.js"],"sourcesContent":["// Wavy ticker component for displaying anything\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,startTransition,useMemo,useCallback}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useAnimationFrame}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */function WavyTicker(props){const{images=[],interactionType=\"auto\",speed=50,scrollSpeed=1,direction=\"left\",slowdownOnHover=.3,waveStyle=\"wavy\",waveAmplitude=20,waveFrequency=.005,itemSize=80,gap=32,padding=40,verticalAlign=\"center\",fadeEdges=true,fadeDistance=15,imageWidth=120,imageHeight=80,borderRadius=0}=props;const containerRef=useRef(null);const[offset,setOffset]=useState(0);const[isHovered,setIsHovered]=useState(false);const[scrollOffset,setScrollOffset]=useState(0);const targetScrollOffset=useRef(0);const isStatic=useIsStaticRenderer();const itemRefs=useRef([]);const[itemWidths,setItemWidths]=useState([]);const[containerWidth,setContainerWidth]=useState(0);const[containerHeight,setContainerHeight]=useState(0);const isVertical=direction===\"up\"||direction===\"down\";// Track container dimensions\nuseEffect(()=>{if(!containerRef.current)return;const updateDimensions=()=>{if(containerRef.current){setContainerWidth(containerRef.current.offsetWidth);setContainerHeight(containerRef.current.offsetHeight);}};updateDimensions();window.addEventListener(\"resize\",updateDimensions);return()=>window.removeEventListener(\"resize\",updateDimensions);},[]);// Measure item widths after render\nuseEffect(()=>{if(itemRefs.current.length>0&&images.length>0){const widths=itemRefs.current.slice(0,images.length).map(ref=>ref?ref.offsetWidth||itemSize:itemSize);setItemWidths(widths);}},[images,itemSize]);// Calculate dynamic height based on wave effect\nconst calculatedHeight=useMemo(()=>{const waveHeight=waveStyle===\"wavy\"?waveAmplitude*2:0;const baseHeight=itemSize+waveHeight+padding*2;return Math.max(5,baseHeight);},[itemSize,waveAmplitude,padding,waveStyle]);// Track scroll position\nuseEffect(()=>{if(isStatic||interactionType!==\"scroll\")return;const handleScroll=()=>{targetScrollOffset.current=window.scrollY*scrollSpeed;};window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",handleScroll);},[isStatic,interactionType,scrollSpeed]);// Animation loop\nuseAnimationFrame((time,delta)=>{if(isStatic)return;if(interactionType===\"auto\"){const effectiveSpeed=isHovered?speed*slowdownOnHover:speed;startTransition(()=>{setOffset(prev=>prev+effectiveSpeed*delta/1e3);});}else{startTransition(()=>{setScrollOffset(prev=>{const diff=targetScrollOffset.current-prev;return prev+diff*.15;});});}});// Mouse event handlers\nconst handleMouseEnter=useCallback(()=>{if(interactionType===\"auto\"){startTransition(()=>setIsHovered(true));}},[interactionType]);const handleMouseLeave=useCallback(()=>{if(interactionType===\"auto\"){startTransition(()=>setIsHovered(false));}},[interactionType]);// Guard against empty items\nif(!images||images.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:Math.max(5,calculatedHeight),minHeight:5,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:`${padding}px 0`},children:/*#__PURE__*/_jsx(\"p\",{style:{color:\"#999\",fontSize:14},children:\"Add images to display\"})});}// Calculate dimensions\nconst widthsToUse=itemWidths.length===images.length?itemWidths:images.map(()=>itemSize);const totalWidth=widthsToUse.reduce((sum,width)=>sum+width+gap,0);const totalHeight=images.length*(itemSize+gap);const viewportWidth=containerWidth||(typeof window!==\"undefined\"?window.innerWidth:1200);const viewportHeight=containerHeight||(typeof window!==\"undefined\"?window.innerHeight:800);// Calculate repeats needed for seamless loop\nconst repeats=isVertical?Math.max(3,Math.ceil(viewportHeight/totalHeight)+2):Math.max(3,Math.ceil(viewportWidth/totalWidth)+2);// Create repeated items array\nconst allItems=useMemo(()=>{return Array.from({length:repeats},()=>images).flat();},[repeats,images]);const allWidths=useMemo(()=>{return Array.from({length:repeats},()=>widthsToUse).flat();},[repeats,widthsToUse]);// Calculate offset with proper wrapping\nconst currentOffset=interactionType===\"scroll\"?scrollOffset:offset;const loopLength=isVertical?totalHeight:totalWidth;// Calculate final position based on direction with proper wrapping\nlet finalOffset;if(direction===\"left\"){// Moving left: content moves left (negative direction)\nconst wrappedOffset=(currentOffset%loopLength+loopLength)%loopLength;finalOffset=-wrappedOffset;}else if(direction===\"right\"){// Moving right: content moves right (positive direction)\nconst wrappedOffset=(currentOffset%loopLength+loopLength)%loopLength;finalOffset=wrappedOffset-loopLength;}else if(direction===\"up\"){// Moving up: content moves up (negative direction)\nconst wrappedOffset=(currentOffset%loopLength+loopLength)%loopLength;finalOffset=-wrappedOffset;}else{// Moving down: content moves down (positive direction)\nconst wrappedOffset=(currentOffset%loopLength+loopLength)%loopLength;finalOffset=wrappedOffset-loopLength;}// Vertical alignment styles\nconst verticalStyles=useMemo(()=>{switch(verticalAlign){case\"top\":return{top:padding,bottom:\"auto\",transform:\"\"};case\"bottom\":return{top:\"auto\",bottom:padding,transform:\"\"};default:return{top:\"50%\",bottom:\"auto\",transform:\"translateY(-50%)\"};}},[verticalAlign,padding]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:isVertical?\"100%\":Math.max(5,calculatedHeight),minHeight:5,overflow:\"hidden\",position:\"relative\",display:\"flex\",alignItems:verticalAlign===\"top\"?\"flex-start\":verticalAlign===\"bottom\"?\"flex-end\":\"center\",...fadeEdges&&!isVertical&&{maskImage:`linear-gradient(to right, transparent 0%, black ${fadeDistance}%, black ${100-fadeDistance}%, transparent 100%)`,WebkitMaskImage:`linear-gradient(to right, transparent 0%, black ${fadeDistance}%, black ${100-fadeDistance}%, transparent 100%)`},...fadeEdges&&isVertical&&{maskImage:`linear-gradient(to bottom, transparent 0%, black ${fadeDistance}%, black ${100-fadeDistance}%, transparent 100%)`,WebkitMaskImage:`linear-gradient(to bottom, transparent 0%, black ${fadeDistance}%, black ${100-fadeDistance}%, transparent 100%)`}},onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:isVertical?\"column\":\"row\",gap:`${gap}px`,position:\"absolute\",left:isVertical?0:undefined,top:isVertical?0:undefined,width:isVertical?\"100%\":undefined,...!isVertical&&verticalStyles,transform:isVertical?`translateY(${finalOffset}px)`:`translateX(${finalOffset}px) ${verticalStyles.transform}`,transformStyle:\"preserve-3d\",willChange:\"transform\"},children:allItems.map((item,index)=>{// Calculate position for wave effect\nlet position=0;for(let i=0;i<index;i++){position+=(isVertical?itemSize:allWidths[i])+gap;}const itemWidth=allWidths[index]||itemSize;const waveOffset=waveStyle===\"wavy\"?Math.sin((position+currentOffset)*waveFrequency)*waveAmplitude:0;const isOriginalItem=index<images.length;return /*#__PURE__*/_jsx(\"div\",{ref:isOriginalItem?el=>{itemRefs.current[index]=el;}:undefined,style:{minWidth:isVertical?\"100%\":imageWidth,width:isVertical?\"100%\":imageWidth,height:imageHeight,flexShrink:0,transform:isVertical?`translateX(${waveOffset}px)`:`translateY(${waveOffset}px)`,willChange:\"transform\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",borderRadius:`${borderRadius}px`},children:/*#__PURE__*/_jsx(\"img\",{src:item.src,alt:item.alt||\"\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})},`item-${index}`);})})});}addPropertyControls(WavyTicker,{images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.ResponsiveImage},maxCount:20,defaultValue:[{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Image 1\"},{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Image 2\"},{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Image 3\"}]},// Movement Section\ninteractionType:{type:ControlType.Enum,title:\"Movement\",options:[\"auto\",\"scroll\"],optionTitles:[\"Auto\",\"On Scroll\"],defaultValue:\"auto\",displaySegmentedControl:true,description:\"Auto moves continuously, On Scroll moves based on page scroll\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"up\",\"down\"],optionTitles:[\"←\",\"→\",\"↑\",\"↓\"],defaultValue:\"left\",displaySegmentedControl:true},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:50,min:10,max:200,step:10,description:\"How fast the ticker moves automatically\",hidden:({interactionType})=>interactionType===\"scroll\"},scrollSpeed:{type:ControlType.Number,title:\"Scroll Speed\",defaultValue:1,min:.1,max:5,step:.1,description:\"Multiplier for how much the ticker moves when scrolling\",hidden:({interactionType})=>interactionType===\"auto\"},slowdownOnHover:{type:ControlType.Number,title:\"Hover Speed\",defaultValue:.3,min:0,max:1,step:.1,description:\"Speed multiplier on hover (0 = stop, 1 = full speed)\",hidden:({interactionType})=>interactionType===\"scroll\"},// Wave Effect Section\nwaveStyle:{type:ControlType.Enum,title:\"Wave Effect\",options:[\"straight\",\"wavy\"],optionTitles:[\"Off\",\"On\"],defaultValue:\"wavy\",displaySegmentedControl:true},waveAmplitude:{type:ControlType.Number,title:\"Wave Height\",defaultValue:20,min:0,max:100,step:5,unit:\"px\",description:\"How tall the wave peaks are\",hidden:({waveStyle})=>waveStyle===\"straight\"},waveFrequency:{type:ControlType.Number,title:\"Wave Frequency\",defaultValue:.005,min:.001,max:.02,step:.001,description:\"How many waves appear (higher = more waves)\",hidden:({waveStyle})=>waveStyle===\"straight\"},// Layout Section\nimageWidth:{type:ControlType.Number,title:\"Image Width\",defaultValue:120,min:40,max:400,step:10,unit:\"px\",description:\"Width of each image container\"},imageHeight:{type:ControlType.Number,title:\"Image Height\",defaultValue:80,min:40,max:400,step:10,unit:\"px\",description:\"Height of each image container\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:0,min:0,max:100,step:1,unit:\"px\",description:\"Rounded corners for images\"},itemSize:{type:ControlType.Number,title:\"Item Height\",defaultValue:80,min:40,max:200,step:10,unit:\"px\",description:\"Height of each item in the ticker\",hidden:()=>true},gap:{type:ControlType.Number,title:\"Spacing\",defaultValue:32,min:0,max:100,step:4,unit:\"px\",description:\"Space between items\"},verticalAlign:{type:ControlType.Enum,title:\"Vertical Align\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"center\",displaySegmentedControl:true,description:\"Vertical position of items within the ticker\"},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:40,min:0,max:100,step:10,unit:\"px\",description:\"Vertical padding around the ticker content\"},// Edge Fade Section\nfadeEdges:{type:ControlType.Boolean,title:\"Fade Edges\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Gradually fade items at the left and right edges\"},fadeDistance:{type:ControlType.Number,title:\"Fade Width\",defaultValue:15,min:0,max:50,step:1,unit:\"%\",description:\"How far the fade extends from each edge\",hidden:({fadeEdges})=>!fadeEdges}});export default WavyTicker;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WavyTicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WavyTicker.map"],"mappings":"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"}