{"version":3,"file":"Graph_Component.DlnlEZl2.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/zotOThyPYXf423CFlIW0/tkzEv7owysbcKz5i91o4/Graph_Component.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";export default function LineChart({values=[22,50,75,90],labels=[\"Wk 1\",\"Wk 12\",\"Wk 26\",\"Wk 52\"],lineColor=\"#2563eb\",lineWidth=3,dotSize=12,dotFill=\"#ffffff\",dotStroke=\"#2563eb\",dotStrokeWidth=3,fillOpacityTop=.3,fillOpacityBottom=0,minY=0,maxY=100,smoothLine=true,smoothness=.5,showGrid=true,gridColor=\"#E2E4E8\",gridWidth=1,showBaseline=true,showLabels=true,labelColor=\"#98A0AC\",labelSize=13,labelFont=\"Inter, sans-serif\",labelSpace=28,animateInView=true,animationDuration=1200,backgroundColor=\"transparent\",borderRadius=12,padding=16}){const containerRef=useRef(null);const[progress,setProgress]=useState(animateInView?0:1);const[hasAnimated,setHasAnimated]=useState(false);const[size,setSize]=useState({width:400,height:240});// Point count follows the longer of values / labels, so adding a label\n// adds a matching point on the line (held at the last value as a\n// placeholder until you give it its own number).\nconst baseValues=values&&values.length>=1?values:[0,100];const pointCount=Math.max(baseValues.length,labels?.length??0,2);const safeValues=[];for(let i=0;i<pointCount;i++){safeValues.push(i<baseValues.length?baseValues[i]:baseValues[baseValues.length-1]);}const clampedMin=minY;const clampedMax=maxY<=minY?minY+1:maxY;useEffect(()=>{const ro=new ResizeObserver(entries=>{for(const entry of entries){setSize({width:entry.contentRect.width,height:entry.contentRect.height});}});if(containerRef.current)ro.observe(containerRef.current);return()=>ro.disconnect();},[]);useEffect(()=>{if(!animateInView||hasAnimated)return;const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){setHasAnimated(true);let start=null;const step=timestamp=>{if(!start)start=timestamp;const elapsed=timestamp-start;const p=Math.min(elapsed/animationDuration,1);const eased=p<.5?2*p*p:-1+(4-2*p)*p;setProgress(eased);if(p<1)requestAnimationFrame(step);};requestAnimationFrame(step);observer.disconnect();}},{threshold:.3});if(containerRef.current)observer.observe(containerRef.current);return()=>observer.disconnect();},[animateInView,hasAnimated,animationDuration]);useEffect(()=>{if(!animateInView)setProgress(1);},[animateInView]);const pad=padding;const bottomReserve=showLabels?labelSpace:0;const plotLeft=pad;const plotRight=size.width-pad;const plotTop=pad;const plotBottom=size.height-pad-bottomReserve;const plotW=Math.max(1,plotRight-plotLeft);const plotH=Math.max(1,plotBottom-plotTop);function getPoint(i){const x=plotLeft+i/(safeValues.length-1)*plotW;const norm=(safeValues[i]-clampedMin)/(clampedMax-clampedMin);const y=plotTop+(1-Math.max(0,Math.min(1,norm)))*plotH;return[x,y];}// Catmull-Rom spline -> cubic bezier. Flows smoothly THROUGH every point.\nfunction buildLinePath(pts){if(pts.length<2)return\"\";if(!smoothLine){return pts.map((p,i)=>`${i===0?\"M\":\"L\"}${p[0]},${p[1]}`).join(\" \");}const t=smoothness*(1/6);let d=`M${pts[0][0]},${pts[0][1]}`;for(let i=0;i<pts.length-1;i++){const p0=pts[i-1]||pts[i];const p1=pts[i];const p2=pts[i+1];const p3=pts[i+2]||pts[i+1];const cp1x=p1[0]+(p2[0]-p0[0])*t;const cp1y=p1[1]+(p2[1]-p0[1])*t;const cp2x=p2[0]-(p3[0]-p1[0])*t;const cp2y=p2[1]-(p3[1]-p1[1])*t;d+=` C${cp1x},${cp1y} ${cp2x},${cp2y} ${p2[0]},${p2[1]}`;}return d;}const points=safeValues.map((_,i)=>getPoint(i));const linePath=buildLinePath(points);const fillPath=`${linePath} L${points[points.length-1][0]},${plotBottom} L${points[0][0]},${plotBottom} Z`;const gradId=\"lcGrad\";const visibleDotCount=Math.round(progress*safeValues.length);const visibleDots=points.slice(0,visibleDotCount);const clipWidth=progress*size.width;function labelAnchor(i){if(i===0)return\"start\";if(i===safeValues.length-1)return\"end\";return\"middle\";}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",background:backgroundColor,borderRadius,overflow:\"hidden\",position:\"relative\"},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"100%\",height:\"100%\",viewBox:`0 0 ${size.width} ${size.height}`,preserveAspectRatio:\"none\",style:{display:\"block\"},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradId,x1:\"0\",y1:\"0\",x2:\"0\",y2:\"1\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:lineColor,stopOpacity:fillOpacityTop}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:lineColor,stopOpacity:fillOpacityBottom})]}),/*#__PURE__*/_jsx(\"clipPath\",{id:\"progressClip\",children:/*#__PURE__*/_jsx(\"rect\",{x:\"0\",y:\"0\",width:clipWidth,height:size.height})})]}),showGrid&&points.map(([x],i)=>/*#__PURE__*/_jsx(\"line\",{x1:x,y1:plotTop,x2:x,y2:plotBottom,stroke:gridColor,strokeWidth:gridWidth,vectorEffect:\"non-scaling-stroke\"},`grid-${i}`)),showBaseline&&/*#__PURE__*/_jsx(\"line\",{x1:plotLeft,y1:plotBottom,x2:plotRight,y2:plotBottom,stroke:gridColor,strokeWidth:gridWidth,vectorEffect:\"non-scaling-stroke\"}),/*#__PURE__*/_jsx(\"path\",{d:fillPath,fill:`url(#${gradId})`,clipPath:\"url(#progressClip)\"}),/*#__PURE__*/_jsx(\"path\",{d:linePath,fill:\"none\",stroke:lineColor,strokeWidth:lineWidth,strokeLinecap:\"round\",strokeLinejoin:\"round\",clipPath:\"url(#progressClip)\",vectorEffect:\"non-scaling-stroke\"}),visibleDots.map(([x,y],i)=>/*#__PURE__*/_jsx(\"circle\",{cx:x,cy:y,r:dotSize/2,fill:dotFill,stroke:dotStroke,strokeWidth:dotStrokeWidth},`dot-${i}`)),showLabels&&points.map(([x],i)=>/*#__PURE__*/_jsx(\"text\",{x:x,y:plotBottom+labelSpace*.7,fill:labelColor,fontSize:labelSize,fontFamily:labelFont,textAnchor:labelAnchor(i),dominantBaseline:\"middle\",children:labels[i]??\"\"},`label-${i}`))]})});}LineChart.displayName=\"Line Chart\";addPropertyControls(LineChart,{values:{type:ControlType.Array,title:\"Values\",control:{type:ControlType.Number},defaultValue:[22,50,75,90]},labels:{type:ControlType.Array,title:\"Labels\",control:{type:ControlType.String},defaultValue:[\"Wk 1\",\"Wk 12\",\"Wk 26\",\"Wk 52\"]},lineColor:{type:ControlType.Color,title:\"Line color\",defaultValue:\"#2563eb\"},lineWidth:{type:ControlType.Number,title:\"Line width\",defaultValue:3,min:1,max:12,step:.5,displayStepper:true},dotSize:{type:ControlType.Number,title:\"Dot size\",defaultValue:12,min:4,max:32,step:1,displayStepper:true},dotFill:{type:ControlType.Color,title:\"Dot fill\",defaultValue:\"#ffffff\"},dotStroke:{type:ControlType.Color,title:\"Dot stroke\",defaultValue:\"#2563eb\"},dotStrokeWidth:{type:ControlType.Number,title:\"Dot stroke width\",defaultValue:3,min:0,max:10,step:.5,displayStepper:true},fillOpacityTop:{type:ControlType.Number,title:\"Fill opacity top\",defaultValue:.3,min:0,max:1,step:.05},fillOpacityBottom:{type:ControlType.Number,title:\"Fill opacity bottom\",defaultValue:0,min:0,max:1,step:.05},minY:{type:ControlType.Number,title:\"Min Y\",defaultValue:0},maxY:{type:ControlType.Number,title:\"Max Y\",defaultValue:100},smoothLine:{type:ControlType.Boolean,title:\"Smooth line\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},smoothness:{type:ControlType.Number,title:\"Smoothness\",defaultValue:.5,min:0,max:1,step:.05,hidden:props=>!props.smoothLine},showGrid:{type:ControlType.Boolean,title:\"Grid lines\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},gridColor:{type:ControlType.Color,title:\"Grid / axis color\",defaultValue:\"#E2E4E8\"},gridWidth:{type:ControlType.Number,title:\"Grid width\",defaultValue:1,min:.5,max:4,step:.5,displayStepper:true},showBaseline:{type:ControlType.Boolean,title:\"Baseline\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showLabels:{type:ControlType.Boolean,title:\"X labels\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},labelColor:{type:ControlType.Color,title:\"Label color\",defaultValue:\"#98A0AC\",hidden:props=>!props.showLabels},labelSize:{type:ControlType.Number,title:\"Label size\",defaultValue:13,min:8,max:28,step:1,displayStepper:true,hidden:props=>!props.showLabels},labelFont:{type:ControlType.String,title:\"Label font\",defaultValue:\"Inter, sans-serif\",hidden:props=>!props.showLabels},labelSpace:{type:ControlType.Number,title:\"Label space\",defaultValue:28,min:16,max:60,step:2,hidden:props=>!props.showLabels},animateInView:{type:ControlType.Boolean,title:\"Animate in view\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},animationDuration:{type:ControlType.Number,title:\"Duration (ms)\",defaultValue:1200,min:200,max:4e3,step:100,hidden:props=>!props.animateInView},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},borderRadius:{type:ControlType.Number,title:\"Border radius\",defaultValue:12,min:0,max:40,step:1},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:16,min:0,max:60,step:2}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LineChart\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Graph_Component.map"],"mappings":"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"}