{"version":3,"file":"Path_Section_Follow.CWT27JSv.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/UkcYlmodglzjKOMp0rMZ/AyfvO6Iqgs6lqlEXz4yt/Path_Section_Follow.js"],"sourcesContent":["// @ts-nocheck\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";function easeIn(t){return t*t;}function easeOut(t){const p=t-1;return 1-p*p;}function easeInOut(t){return t<.5?2*t*t:-1+(4-2*t)*t;}function linearEasing(t){return t;}/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function PathSectionFollower({pathInput,animation,sectionStyle,showPath,pathStyle}){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const containerRef=useRef(null);const[pathBounds,setPathBounds]=useState({width:200,height:200});const[scale,setScale]=useState(1);const[sectionPosition,setSectionPosition]=useState(null);const[pathLength,setPathLength]=useState(0);const[extractedPath,setExtractedPath]=useState(\"\");// Extract path data from SVG or use direct path\nuseEffect(()=>{let pathData=pathInput.trim();// Check if it's an SVG string\nif(pathData.includes(\"<svg\")||pathData.includes(\"<path\")){try{// Create a temporary container to parse the SVG\nconst parser=new DOMParser;const doc=parser.parseFromString(pathData,\"image/svg+xml\");const pathElements=doc.querySelectorAll(\"path\");if(pathElements.length>0){// Get the first path's d attribute\npathData=pathElements[0].getAttribute(\"d\")||\"\";// Try to extract viewBox for better scaling\nconst svgElement=doc.querySelector(\"svg\");if(svgElement){const viewBox=svgElement.getAttribute(\"viewBox\");const width=svgElement.getAttribute(\"width\");const height=svgElement.getAttribute(\"height\");if(viewBox){const[x,y,w,h]=viewBox.split(\" \").map(Number);setPathBounds({width:w,height:h});}else if(width&&height){setPathBounds({width:parseFloat(width),height:parseFloat(height)});}}}else{// If no path found, use the original string as path data\npathData=pathInput;}}catch(e){// If parsing fails, assume it's raw path data\npathData=pathInput;}}setExtractedPath(pathData);},[pathInput]);useEffect(()=>{if(!extractedPath)return;const svgNamespace=\"http://www.w3.org/2000/svg\";const tempSvg=document.createElementNS(svgNamespace,\"svg\");const newPath=document.createElementNS(svgNamespace,\"path\");newPath.setAttribute(\"d\",extractedPath);tempSvg.appendChild(newPath);document.body.appendChild(tempSvg);const bbox=newPath.getBBox();const totalLength=newPath.getTotalLength();// Only update bounds if not already set from SVG parsing\nif(pathBounds.width===200&&pathBounds.height===200){setPathBounds({width:bbox.width+bbox.x*2,height:bbox.height+bbox.y*2});}setPathLength(totalLength);document.body.removeChild(tempSvg);},[extractedPath]);useEffect(()=>{if(!containerRef.current)return;const updateScale=()=>{const container=containerRef.current;const containerWidth=container.offsetWidth;const containerHeight=container.offsetHeight;const scaleX=containerWidth/pathBounds.width;const scaleY=containerHeight/pathBounds.height;const newScale=Math.min(scaleX,scaleY,1);setScale(newScale);};updateScale();const resizeObserver=new ResizeObserver(updateScale);resizeObserver.observe(containerRef.current);return()=>{resizeObserver.disconnect();};},[pathBounds]);useEffect(()=>{if(isCanvas||!extractedPath)return;const svgNamespace=\"http://www.w3.org/2000/svg\";const tempSvg=document.createElementNS(svgNamespace,\"svg\");const newPath=document.createElementNS(svgNamespace,\"path\");newPath.setAttribute(\"d\",extractedPath);tempSvg.appendChild(newPath);document.body.appendChild(tempSvg);const totalPathLength=newPath.getTotalLength();const easingFunction={linear:linearEasing,easeIn:easeIn,easeOut:easeOut,easeInOut:easeInOut}[animation.easingType]||linearEasing;let animationFrameID=null;const startTime=performance.now();const totalDuration=animation.duration*1e3;const startDelay=animation.startDelay*1e3;const sectionLengthRatio=sectionStyle.length/100;// Total cycle time includes delay + duration\nconst cycleTime=startDelay+totalDuration;const animate=timestamp=>{const totalElapsed=timestamp-startTime;// Calculate which cycle we're in and position within cycle\nlet cycleElapsed;let inDelay=false;if(animation.loop){// For looping, calculate position within current cycle\ncycleElapsed=totalElapsed%cycleTime;inDelay=cycleElapsed<startDelay;}else{// For non-looping, just use total elapsed time\ncycleElapsed=totalElapsed;inDelay=cycleElapsed<startDelay;}// During delay period, don't show anything\nif(inDelay){setSectionPosition(null);animationFrameID=requestAnimationFrame(animate);return;}// Calculate progress within the animation portion (after delay)\nlet progress=(cycleElapsed-startDelay)/totalDuration;if(!animation.loop){progress=Math.min(progress,1);}else if(animation.mirror&&progress>1){// Handle mirror mode for extended cycles\nconst mirrorCycle=Math.floor(progress);const mirrorProgress=progress%1;progress=mirrorCycle%2===0?mirrorProgress:1-mirrorProgress;}const easedProgress=easingFunction(progress);// Calculate section position - start from negative to move section in from outside\nconst totalRange=1+sectionLengthRatio// Total range including off-screen portion\n;const adjustedProgress=easedProgress*totalRange-sectionLengthRatio;// Only show section when it's at least partially on the path\nif(adjustedProgress<0&&adjustedProgress+sectionLengthRatio<=0){setSectionPosition(null);animationFrameID=requestAnimationFrame(animate);return;}const sectionStart=Math.max(0,adjustedProgress);const sectionEnd=Math.min(1,adjustedProgress+sectionLengthRatio);// Get points for the section\nconst points=[];const numPoints=Math.max(50,Math.floor(totalPathLength*sectionLengthRatio/2));for(let i=0;i<=numPoints;i++){const localT=i/numPoints;const globalT=sectionStart+(sectionEnd-sectionStart)*localT;const point=newPath.getPointAtLength(globalT*totalPathLength);// Determine color based on whether section has passed midpoint\nlet color=sectionStyle.color1;if(sectionStyle.useGradient){// Check if the current section position is past 50% of the path\nconst sectionMidpoint=adjustedProgress+sectionLengthRatio/2;color=sectionMidpoint>=.5?sectionStyle.color2:sectionStyle.color1;}points.push({x:point.x*scale,y:point.y*scale,color:color});}setSectionPosition(points);// Continue animation if looping or not yet finished\nif(animation.loop||totalElapsed<cycleTime){animationFrameID=requestAnimationFrame(animate);}};animationFrameID=requestAnimationFrame(animate);// Clean up\ndocument.body.removeChild(tempSvg);return()=>{if(animationFrameID)cancelAnimationFrame(animationFrameID);};},[extractedPath,animation,sectionStyle,isCanvas,scale,pathLength]);const containerStyle={position:\"relative\",width:\"100%\",height:\"100%\",minWidth:`${pathBounds.width}px`,minHeight:`${pathBounds.height}px`,overflow:\"visible\"};const svgStyle={position:\"absolute\",top:0,left:0,width:`${pathBounds.width*scale}px`,height:`${pathBounds.height*scale}px`,overflow:\"visible\",pointerEvents:\"none\"};// Canvas preview\nif(isCanvas){const gradientId=\"pathGradient\";return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:containerStyle,children:/*#__PURE__*/_jsxs(\"svg\",{style:svgStyle,viewBox:`0 0 ${pathBounds.width} ${pathBounds.height}`,preserveAspectRatio:\"xMidYMid meet\",children:[/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradientId,x1:\"0%\",y1:\"0%\",x2:\"100%\",y2:\"0%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:sectionStyle.color1}),/*#__PURE__*/_jsx(\"stop\",{offset:\"50%\",stopColor:sectionStyle.color2})]})}),showPath&&/*#__PURE__*/_jsx(\"path\",{d:extractedPath,fill:\"none\",stroke:pathStyle.color,strokeWidth:pathStyle.thickness,strokeDasharray:pathStyle.dashed?\"5,5\":\"none\",opacity:pathStyle.opacity}),/*#__PURE__*/_jsx(\"path\",{d:extractedPath,fill:\"none\",stroke:sectionStyle.useGradient?`url(#${gradientId})`:sectionStyle.color1,strokeWidth:sectionStyle.thickness,strokeLinecap:sectionStyle.capStyle,strokeLinejoin:sectionStyle.joinStyle,strokeDasharray:`${pathLength*sectionStyle.length/100} ${pathLength}`,strokeDashoffset:pathLength*.3,opacity:sectionStyle.opacity})]})});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:containerStyle,children:/*#__PURE__*/_jsxs(\"svg\",{style:svgStyle,viewBox:`0 0 ${pathBounds.width} ${pathBounds.height}`,preserveAspectRatio:\"xMidYMid meet\",children:[showPath&&/*#__PURE__*/_jsx(\"path\",{d:extractedPath,fill:\"none\",stroke:pathStyle.color,strokeWidth:pathStyle.thickness,strokeDasharray:pathStyle.dashed?\"5,5\":\"none\",opacity:pathStyle.opacity}),sectionPosition&&sectionPosition.length>1&&/*#__PURE__*/_jsx(\"polyline\",{points:sectionPosition.map(p=>`${p.x/scale},${p.y/scale}`).join(\" \"),fill:\"none\",stroke:sectionPosition[0].color,strokeWidth:sectionStyle.thickness,strokeLinecap:sectionStyle.capStyle,strokeLinejoin:sectionStyle.joinStyle,opacity:sectionStyle.opacity})]})});}PathSectionFollower.defaultProps={pathInput:\"M10 80 Q 95 10 180 80\",animation:{duration:3,startDelay:0,easingType:\"linear\",loop:true,mirror:false},sectionStyle:{length:25,thickness:4,color1:\"#FF0000\",color2:\"#0000FF\",useGradient:false,opacity:1,capStyle:\"round\",joinStyle:\"round\"},showPath:true,pathStyle:{color:\"#CCCCCC\",thickness:1,opacity:.5,dashed:false}};addPropertyControls(PathSectionFollower,{pathInput:{type:ControlType.String,title:\"Path\",defaultValue:\"M10 80 Q 95 10 180 80\",displayTextArea:true,description:\"SVG path data or complete SVG markup\"},animation:{type:ControlType.Object,title:\"Animation\",controls:{duration:{type:ControlType.Number,title:\"Duration\",min:.1,max:30,step:.1,defaultValue:3,unit:\"s\"},startDelay:{type:ControlType.Number,title:\"Start Delay\",min:0,max:10,step:.1,defaultValue:0,unit:\"s\"},easingType:{type:ControlType.Enum,title:\"Easing\",options:[\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In Out\"],defaultValue:\"linear\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"}}},sectionStyle:{type:ControlType.Object,title:\"Section Style\",controls:{length:{type:ControlType.Number,title:\"Length\",min:1,max:100,step:1,defaultValue:25,unit:\"%\"},thickness:{type:ControlType.Number,title:\"Thickness\",min:1,max:50,step:.5,defaultValue:4,unit:\"px\"},useGradient:{type:ControlType.Boolean,title:\"Switch Colors\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},color1:{type:ControlType.Color,title:\"Color 1\",defaultValue:\"#FF0000\"},color2:{type:ControlType.Color,title:\"Color 2\",defaultValue:\"#0000FF\",hidden:props=>!props.useGradient},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.01,defaultValue:1},capStyle:{type:ControlType.Enum,title:\"Cap Style\",options:[\"butt\",\"round\",\"square\"],optionTitles:[\"Butt\",\"Round\",\"Square\"],defaultValue:\"round\"},joinStyle:{type:ControlType.Enum,title:\"Join Style\",options:[\"miter\",\"round\",\"bevel\"],optionTitles:[\"Miter\",\"Round\",\"Bevel\"],defaultValue:\"round\"}}},showPath:{type:ControlType.Boolean,title:\"Show Path\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},pathStyle:{type:ControlType.Object,title:\"Path Style\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#CCCCCC\"},thickness:{type:ControlType.Number,title:\"Thickness\",min:.5,max:20,step:.5,defaultValue:1,unit:\"px\"},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.01,defaultValue:.5},dashed:{type:ControlType.Boolean,title:\"Dashed\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}},hidden:props=>!props.showPath,description:\"v1.0 \\n[via SegmentUI](https://www.segmentUI.com)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PathSectionFollower\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Path_Section_Follow.map"],"mappings":"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"}