{"version":3,"file":"LineDrawSVG.b_GXHO8a.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/nIaw2Rxktsl2PZ7T6gLo/UiNxzVRCjeF4qGIsHUD7/LineDrawSVG.js"],"sourcesContent":["// Line Draw Component with scroll-based and viewport-triggered animation modes\n// Supports SVG path drawing with customizable stroke, colors, transitions, and scroll triggers\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{motion,useInView,useScroll,useTransform,useMotionValue}from\"framer-motion\";// Helper functions to convert SVG shapes to path data\nfunction lineToPath(x1,y1,x2,y2){return`M ${x1} ${y1} L ${x2} ${y2}`;}function circleToPath(cx,cy,r){const cxNum=parseFloat(cx);const cyNum=parseFloat(cy);const rNum=parseFloat(r);return`M ${cxNum-rNum} ${cyNum} A ${rNum} ${rNum} 0 1 0 ${cxNum+rNum} ${cyNum} A ${rNum} ${rNum} 0 1 0 ${cxNum-rNum} ${cyNum}`;}function ellipseToPath(cx,cy,rx,ry){const cxNum=parseFloat(cx);const cyNum=parseFloat(cy);const rxNum=parseFloat(rx);const ryNum=parseFloat(ry);return`M ${cxNum-rxNum} ${cyNum} A ${rxNum} ${ryNum} 0 1 0 ${cxNum+rxNum} ${cyNum} A ${rxNum} ${ryNum} 0 1 0 ${cxNum-rxNum} ${cyNum}`;}function rectToPath(x,y,width,height){const xNum=parseFloat(x);const yNum=parseFloat(y);const wNum=parseFloat(width);const hNum=parseFloat(height);return`M ${xNum} ${yNum} L ${xNum+wNum} ${yNum} L ${xNum+wNum} ${yNum+hNum} L ${xNum} ${yNum+hNum} Z`;}function polylineToPath(points){const coords=points.trim().split(/\\s+|,/).filter(p=>p);if(coords.length<2)return\"\";let path=`M ${coords[0]} ${coords[1]}`;for(let i=2;i<coords.length;i+=2){path+=` L ${coords[i]} ${coords[i+1]}`;}return path;}function polygonToPath(points){return polylineToPath(points)+\" Z\";}/**\n * Line Draw\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function LineDrawSVG(props){const{svgCode='<svg viewBox=\"0 0 100 100\"><path d=\"M10,50 Q30,10 50,50 T90,50\" fill=\"none\"/></svg>',mode=\"viewport\",strokeColor=\"#000000\",strokeWidth=2,lineCap=\"round\",lineJoin=\"round\",viewportAmount=.5,transition,replay=false,replayDelay=1,scrollStartId=\"\",scrollEndId=\"\"}=props;const containerRef=useRef(null);const svgRef=useRef(null);const[pathLengths,setPathLengths]=useState([]);const[isAnimating,setIsAnimating]=useState(false);const[replayKey,setReplayKey]=useState(0);const isStatic=useIsStaticRenderer();const isInView=useInView(containerRef,{amount:viewportAmount,once:!replay});// Scroll progress tracking\nconst scrollProgress=useMotionValue(0);const{scrollYProgress}=useScroll();const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Parse SVG and extract paths\nconst{viewBox,pathsData}=useMemo(()=>{if(typeof window===\"undefined\"){return{viewBox:\"0 0 100 100\",pathsData:[]};}const parser=new DOMParser;const doc=parser.parseFromString(svgCode,\"image/svg+xml\");const svg=doc.querySelector(\"svg\");if(!svg){return{viewBox:\"0 0 100 100\",pathsData:[]};}const vb=svg.getAttribute(\"viewBox\")||\"0 0 100 100\";const pathElements=Array.from(svg.querySelectorAll(\"path, polyline, polygon, line, circle, ellipse, rect\"));const extractedPaths=pathElements.map(path=>{const tagName=path.tagName.toLowerCase();const data={tagName};if(tagName===\"path\"){data.d=path.getAttribute(\"d\")||\"\";}else if(tagName===\"polyline\"||tagName===\"polygon\"){data.points=path.getAttribute(\"points\")||\"\";}else if(tagName===\"line\"){data.x1=path.getAttribute(\"x1\")||\"0\";data.y1=path.getAttribute(\"y1\")||\"0\";data.x2=path.getAttribute(\"x2\")||\"0\";data.y2=path.getAttribute(\"y2\")||\"0\";}else if(tagName===\"circle\"){data.cx=path.getAttribute(\"cx\")||\"0\";data.cy=path.getAttribute(\"cy\")||\"0\";data.r=path.getAttribute(\"r\")||\"0\";}else if(tagName===\"ellipse\"){data.cx=path.getAttribute(\"cx\")||\"0\";data.cy=path.getAttribute(\"cy\")||\"0\";data.rx=path.getAttribute(\"rx\")||\"0\";data.ry=path.getAttribute(\"ry\")||\"0\";}else if(tagName===\"rect\"){data.x=path.getAttribute(\"x\")||\"0\";data.y=path.getAttribute(\"y\")||\"0\";data.width=path.getAttribute(\"width\")||\"0\";data.height=path.getAttribute(\"height\")||\"0\";}return data;});return{viewBox:vb,pathsData:extractedPaths};},[svgCode]);// Calculate path lengths\nuseEffect(()=>{if(!svgRef.current||isStatic)return;const lengths=[];const pathElements=svgRef.current.querySelectorAll(\"path, polyline, polygon, line, circle, ellipse, rect\");pathElements.forEach(path=>{if(path instanceof SVGGeometryElement){const length=path.getTotalLength();lengths.push(length);}});startTransition(()=>setPathLengths(lengths));},[svgCode,isStatic]);// Handle scroll-based animation\nuseEffect(()=>{if(mode!==\"scroll\"||isStatic||typeof window===\"undefined\")return;const updateScrollProgress=()=>{const scrollY=window.scrollY;const windowHeight=window.innerHeight;let startElement=null;let endElement=null;// If no IDs are set, use the component itself as trigger\nif(!scrollStartId&&!scrollEndId){if(containerRef.current){const rect=containerRef.current.getBoundingClientRect();const elementTop=scrollY+rect.top;const elementBottom=elementTop+rect.height;const scrollStart=elementTop-windowHeight;const scrollEnd=elementBottom-windowHeight;const totalDistance=scrollEnd-scrollStart;const currentProgress=scrollY-scrollStart;const progress=Math.max(0,Math.min(1,currentProgress/totalDistance));scrollProgress.set(progress);}return;}if(scrollStartId){startElement=document.getElementById(scrollStartId);}if(scrollEndId){endElement=document.getElementById(scrollEndId);}if(!startElement){scrollProgress.set(0);return;}const startRect=startElement.getBoundingClientRect();const startTop=scrollY+startRect.top;const startBottom=startTop+startRect.height;let endTop=startBottom;if(endElement){const endRect=endElement.getBoundingClientRect();endTop=scrollY+endRect.top;}const scrollStart=startTop-windowHeight;const scrollEnd=endTop-windowHeight;const totalDistance=scrollEnd-scrollStart;const currentProgress=scrollY-scrollStart;const progress=Math.max(0,Math.min(1,currentProgress/totalDistance));scrollProgress.set(progress);};updateScrollProgress();window.addEventListener(\"scroll\",updateScrollProgress);window.addEventListener(\"resize\",updateScrollProgress);return()=>{window.removeEventListener(\"scroll\",updateScrollProgress);window.removeEventListener(\"resize\",updateScrollProgress);};},[mode,scrollStartId,scrollEndId,scrollProgress,isStatic]);// Handle viewport-based replay\nuseEffect(()=>{if(mode!==\"viewport\"||!replay||!isInView||isStatic)return;const timer=setTimeout(()=>{startTransition(()=>setReplayKey(prev=>prev+1));},replayDelay*1e3);return()=>clearTimeout(timer);},[isInView,replay,replayDelay,mode,isStatic]);// Trigger animation state\nuseEffect(()=>{if(mode===\"viewport\"){if(isInView){startTransition(()=>setIsAnimating(true));}else if(!replay){// Reset animation state when leaving viewport if replay is off\nstartTransition(()=>{setIsAnimating(false);setReplayKey(prev=>prev+1);});}}},[isInView,mode,replay]);if(pathsData.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\",fontSize:14},children:\"Invalid SVG\"});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"svg\",{ref:svgRef,viewBox:viewBox,style:{width:\"100%\",height:\"100%\",overflow:\"visible\"},children:pathsData.map((pathData,index)=>{const{tagName}=pathData;let pathD=\"\";if(tagName===\"path\"){pathD=pathData.d||\"\";}else if(tagName===\"polyline\"){pathD=polylineToPath(pathData.points||\"\");}else if(tagName===\"polygon\"){pathD=polygonToPath(pathData.points||\"\");}else if(tagName===\"line\"){pathD=lineToPath(pathData.x1||\"0\",pathData.y1||\"0\",pathData.x2||\"0\",pathData.y2||\"0\");}else if(tagName===\"circle\"){pathD=circleToPath(pathData.cx||\"0\",pathData.cy||\"0\",pathData.r||\"0\");}else if(tagName===\"ellipse\"){pathD=ellipseToPath(pathData.cx||\"0\",pathData.cy||\"0\",pathData.rx||\"0\",pathData.ry||\"0\");}else if(tagName===\"rect\"){pathD=rectToPath(pathData.x||\"0\",pathData.y||\"0\",pathData.width||\"0\",pathData.height||\"0\");}if(!pathD)return null;const pathLength=pathLengths[index]||1e3;// Show fully drawn SVG in canvas mode\nif(isCanvas){return /*#__PURE__*/_jsx(\"path\",{d:pathD,stroke:strokeColor,strokeWidth:strokeWidth,strokeLinecap:lineCap,strokeLinejoin:lineJoin,fill:\"none\"},index);}if(mode===\"viewport\"){return /*#__PURE__*/_jsx(motion.path,{d:pathD,stroke:strokeColor,strokeWidth:strokeWidth,strokeLinecap:lineCap,strokeLinejoin:lineJoin,fill:\"none\",strokeDasharray:pathLength,initial:{strokeDashoffset:pathLength},animate:{strokeDashoffset:isAnimating?0:pathLength},transition:transition||{duration:2,ease:\"easeInOut\"}},`${index}-${replayKey}`);}else{const drawProgress=useTransform(scrollProgress,[0,1],[pathLength,0]);return /*#__PURE__*/_jsx(motion.path,{d:pathD,stroke:strokeColor,strokeWidth:strokeWidth,strokeLinecap:lineCap,strokeLinejoin:lineJoin,fill:\"none\",strokeDasharray:pathLength,style:{strokeDashoffset:drawProgress}},index);}})})});}addPropertyControls(LineDrawSVG,{svgCode:{type:ControlType.String,title:\"SVG Code\",displayTextArea:true,defaultValue:'<svg viewBox=\"0 0 484 1819\"><path d=\"M462.869 23C29.3691 404.5 181.869 732 220.869 797C259.869 862 410.869 896.045 410.869 756.5C410.869 554.5 43.8593 567 31.3691 767.5C21.8691 920 198.369 1123 246.869 1389C285.669 1601.8 182.369 1748 125.869 1794.5\" fill=\"none\"/></svg>'},mode:{type:ControlType.Enum,title:\"Mode\",options:[\"viewport\",\"scroll\"],optionTitles:[\"Viewport\",\"Scroll\"],defaultValue:\"viewport\",displaySegmentedControl:true},strokeColor:{type:ControlType.Color,title:\"Stroke Color\",defaultValue:\"#000000\"},strokeWidth:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:20,min:.5,max:100,step:.5},lineCap:{type:ControlType.Enum,title:\"Line Cap\",options:[\"round\",\"butt\",\"square\"],optionTitles:[\"Round\",\"Cut\",\"Square\"],defaultValue:\"round\",displaySegmentedControl:true},lineJoin:{type:ControlType.Enum,title:\"Line Join\",options:[\"round\",\"miter\",\"bevel\"],optionTitles:[\"Round\",\"Miter\",\"Bevel\"],defaultValue:\"round\",displaySegmentedControl:true},viewportAmount:{type:ControlType.Number,title:\"Viewport Trigger\",defaultValue:.5,min:0,max:1,step:.1,hidden:({mode})=>mode!==\"viewport\"},transition:{type:ControlType.Transition,title:\"Transition\",hidden:({mode})=>mode!==\"viewport\"},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({mode})=>mode!==\"viewport\"},replayDelay:{type:ControlType.Number,title:\"Replay Delay\",defaultValue:1,min:0,max:10,step:.5,unit:\"s\",hidden:({mode,replay})=>mode!==\"viewport\"||!replay},scrollStartId:{type:ControlType.String,title:\"Start Section ID\",defaultValue:\"\",placeholder:\"section-id\",hidden:({mode})=>mode!==\"scroll\"},scrollEndId:{type:ControlType.String,title:\"End Section ID\",defaultValue:\"\",placeholder:\"section-id\",hidden:({mode})=>mode!==\"scroll\",description:\"Component Built and [Designed by Zaid](https://x.com/zaidkhan3419).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LineDrawSVG\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LineDrawSVG.map"],"mappings":"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"}