{"version":3,"file":"Simple_Line_Chart.BCIPbW7T.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/qTvVuFhWfnckoiaBSZ1A/Fj3jOJN4nDplXkfkiWW7/Simple_Line_Chart.js"],"sourcesContent":["\"use client\";import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{m,useInView,LazyMotion,domAnimation}from\"framer-motion\";import{useRef}from\"react\";// -------------------------------------------------- //\n// FRAMER PROPERTY CONTROLS\n// -------------------------------------------------- //\nconst defaultData=[0,20,15,40,60,50,80,100,75,100,120,70,80,40];addPropertyControls(SimpleLineChartFramer,{values:{type:ControlType.Array,title:\"Values\",control:{type:ControlType.Number},defaultValue:defaultData},minY:{type:ControlType.Number,title:\"Min Y\",defaultValue:0,description:\"The minimum value of the y-axis.\"},maxY:{type:ControlType.Number,title:\"Max Y\",defaultValue:140,description:\"The maximum value of the y-axis.\"},strokeColor:{type:ControlType.Color,title:\"Line Color\",defaultValue:\"#f0591a\"},strokeWidth:{type:ControlType.Number,title:\"Line Width\",defaultValue:8,min:1,max:50,step:1},fillGradient:{type:ControlType.Object,title:\"Fill Gradient\",defaultValue:{enabled:true,startColor:\"#f0591a\",endColor:\"rgba(255, 159, 28, 0)\",opacity:.5,startOffset:0,endOffset:100,animationTransition:{delay:.3,duration:1,ease:[.44,0,.56,1],type:\"tween\"}},controls:{enabled:{type:ControlType.Boolean,title:\"Enable Fill\",defaultValue:true},startColor:{type:ControlType.Color,title:\"Start Color\",defaultValue:\"#f0591a\",hidden:props=>!props.fillGradient.enabled},endColor:{type:ControlType.Color,title:\"End Color\",defaultValue:\"rgba(240, 89, 26, 0)\",hidden:props=>!props.fillGradient.enabled},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.5,min:0,max:1,step:.1,hidden:props=>!props.fillGradient.enabled},startOffset:{type:ControlType.Number,title:\"Start Offset\",defaultValue:0,min:0,max:100,step:1,unit:\"%\",hidden:props=>!props.fillGradient.enabled},endOffset:{type:ControlType.Number,title:\"End Offset\",defaultValue:100,min:0,max:100,step:1,unit:\"%\",hidden:props=>!props.fillGradient.enabled},animationTransition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{duration:1,ease:\"easeOut\",delay:1},hidden:props=>!props.fillGradient.enabled}}},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"rgba(0, 0, 0, 0)\"},transitionAnimation:{type:ControlType.Transition,// defaultValue: { type: \"spring\", stiffness: 800, damping: 60 },\ndefaultValue:{duration:2,ease:\"easeInOut\",pathLength:{type:\"spring\",duration:2.5}}},smoothLine:{type:ControlType.Boolean,title:\"Smooth Line\",defaultValue:true},smoothness:{type:ControlType.Number,title:\"Smoothness\",defaultValue:100,min:0,max:100,unit:\"%\",step:1,hidden:props=>!props.smoothLine},inViewAnimation:{type:ControlType.Object,title:\"In View Animation\",defaultValue:{once:true,amount:.5},controls:{once:{type:ControlType.Boolean,title:\"Once\",defaultValue:true,description:\"If true, the animation will only play once.\"},amount:{type:ControlType.Number,title:\"Amount\",defaultValue:.3,min:0,max:1,description:\"The amount of the component that must be in view to trigger the animation.\"}}},viewBox:{type:ControlType.Object,title:\"Viewbox SVG\",defaultValue:{minX:0,minY:0,width:1e3,height:800},description:\"Change the aspect ratio of the chart\",controls:{minX:{type:ControlType.Number,title:\"Min X\",defaultValue:0},minY:{type:ControlType.Number,title:\"Min Y\",defaultValue:0},width:{type:ControlType.Number,title:\"Width\",defaultValue:1e3,min:1},height:{type:ControlType.Number,title:\"Height\",defaultValue:800,min:1}}}});// -------------------------------------------------- //\n// MAIN COMPONENT\n// -------------------------------------------------- //\n/**\n * @Copyright © David McBacon | Bachoff Studio\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicHeight 400\n * @framerIntrinsicWidth 600\n * @framerDisableUnlink\n */export default function SimpleLineChartFramer(props){const correctData=props.values.length>0?props.values:defaultData;const points=correctData.map((y,index)=>({x:index/(correctData.length-1||1)*props.viewBox.width,y:props.viewBox.height-(y-props.minY)/(props.maxY-props.minY)*props.viewBox.height}));const pathData=props.smoothLine?generateCatmullRomPath(points,props.smoothness/100):points.map((point,index)=>`${index===0?\"M\":\"L\"} ${point.x} ${point.y}`).join(\" \");const isOnFramerCanvas=RenderTarget.hasRestrictions();const ref=useRef(null);const isInView=useInView(ref,{once:props.inViewAnimation.once,amount:props.inViewAnimation.amount});const fillPathData=pathData?`${pathData} L ${points[points.length-1].x} ${props.viewBox.height} L ${points[0].x} ${props.viewBox.height} Z`:\"\";return /*#__PURE__*/_jsx(LazyMotion,{features:domAnimation,children:/*#__PURE__*/_jsxs(\"svg\",{ref:ref,width:\"100%\",height:\"100%\",viewBox:`${props.viewBox.minX} ${props.viewBox.minY} ${props.viewBox.width} ${props.viewBox.height}`,style:{backgroundColor:props.backgroundColor},children:[props.fillGradient.enabled&&/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"linearGradient\",{id:\"areaGradient\",x1:\"0\",y1:\"0\",x2:\"0\",y2:\"1\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:`${props.fillGradient.startOffset}%`,stopColor:props.fillGradient.startColor,stopOpacity:props.fillGradient.opacity}),/*#__PURE__*/_jsx(\"stop\",{offset:`${props.fillGradient.endOffset}%`,stopColor:props.fillGradient.endColor,stopOpacity:0})]})}),props.fillGradient.enabled&&points.length>0&&/*#__PURE__*/_jsx(m.path,{d:fillPathData,fill:\"url(#areaGradient)\",initial:{opacity:isOnFramerCanvas?1:0},animate:{opacity:isInView?1:0},transition:props.fillGradient.animationTransition}),points.length>0&&/*#__PURE__*/_jsx(m.path,{d:pathData,fill:\"none\",stroke:props.strokeColor,strokeWidth:props.strokeWidth,initial:{pathLength:isOnFramerCanvas?1:0,opacity:1},animate:{pathLength:isInView?1:0,opacity:1},transition:props.transitionAnimation})]})});}SimpleLineChartFramer.displayName=\"LINE CHART - BACHOFF STUDIO\";// -------------------------------------------------- //\n// HELPER FUNCTIONS\n// -------------------------------------------------- //\n/**\n * Generates a Catmull-Rom spline path from a set of points.\n */const generateCatmullRomPath=(points,tension=.5)=>{if(points.length<2)return\"\";const path=[`M ${points[0].x} ${points[0].y}`];for(let i=0;i<points.length-1;i++){const p0=points[i-1]||points[i];const p1=points[i];const p2=points[i+1];const p3=points[i+2]||p2;const cp1x=p1.x+(p2.x-p0.x)/6*tension;const cp1y=p1.y+(p2.y-p0.y)/6*tension;const cp2x=p2.x-(p3.x-p1.x)/6*tension;const cp2y=p2.y-(p3.y-p1.y)/6*tension;path.push(`C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${p2.x} ${p2.y}`);}return path.join(\" \");};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SimpleLineChartFramer\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Simple_Line_Chart.map"],"mappings":"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"}