{"version":3,"file":"AutoScaleVisual.mLTD5SOs.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/gVkQo4DI1xvPND0QibzX/nelLQUvYAR6sSO3uY0L7/AutoScaleVisual.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// User request: Update AutoScaleVisual so lines are horizontal from a shared left baseline, remove rounded caps and guide tracks, move labels above/left of each line, keep pulse/tick at scale tip, and preserve all animation behavior, pause/reduced-motion handling, and DPR-aware canvas rendering.\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function AutoScaleVisual(props){const{trafficColor,scaleColor,labelColor,pulseColor,speed,steps,lineWidth,lineSpacing,showLabels,trafficLabel,scaleLabel}=props;const wrapperRef=useRef(null);const canvasRef=useRef(null);const animationFrameRef=useRef(0);const lastTimeRef=useRef(0);const isStaticRenderer=useIsStaticRenderer();const[isInView,setIsInView]=useState(true);const[prefersReducedMotion,setPrefersReducedMotion]=useState(false);const resolvedSteps=useMemo(()=>Math.max(4,Math.min(10,Math.round(steps))),[steps]);const trafficValueRef=useRef(.55);const wanderRef=useRef(0);const phaseRef=useRef(0);const scaleStepRef=useRef(Math.max(1,Math.round(resolvedSteps*.5)));const scaleDisplayRef=useRef(.55);const scaleVelocityRef=useRef(0);const belowThresholdTimeRef=useRef(0);const tickStrengthRef=useRef(0);const pulsesRef=useRef([]);const getLevelNorm=useCallback(level=>{return .12+level/resolvedSteps*.82;},[resolvedSteps]);const drawFrame=useCallback((timeMs,staticPreview)=>{const canvas=canvasRef.current;const wrapper=wrapperRef.current;if(!canvas||!wrapper)return;const rect=wrapper.getBoundingClientRect();const width=Math.max(1,rect.width);const height=Math.max(1,rect.height);const dpr=typeof window!==\"undefined\"?Math.max(1,Math.min(window.devicePixelRatio||1,2)):1;const pixelWidth=Math.floor(width*dpr);const pixelHeight=Math.floor(height*dpr);if(canvas.width!==pixelWidth||canvas.height!==pixelHeight){canvas.width=pixelWidth;canvas.height=pixelHeight;}const ctx=canvas.getContext(\"2d\");if(!ctx)return;ctx.setTransform(dpr,0,0,dpr,0,0);ctx.clearRect(0,0,width,height);const leftBaselineX=16;const rightPadding=14;const availableLineLength=Math.max(40,width-leftBaselineX-rightPadding);const maxLineLength=availableLineLength;const resolvedLineWidth=Math.max(2,Math.min(200,lineWidth));const topPadding=showLabels?28:16;const bottomPadding=18;const availableHeight=Math.max(24,height-topPadding-bottomPadding);const resolvedLineSpacing=Math.max(16,Math.min(160,lineSpacing));const groupHeight=resolvedLineSpacing+resolvedLineWidth;const groupTop=topPadding+Math.max(0,availableHeight-groupHeight)*.5;const trafficY=groupTop+resolvedLineWidth*.5;const scaleY=trafficY+resolvedLineSpacing;let dt=(timeMs-lastTimeRef.current)/1e3;if(!Number.isFinite(dt)||dt<=0)dt=1/60;dt=Math.min(dt,.05);lastTimeRef.current=timeMs;const effectiveSpeed=Math.max(.2,Math.min(3,speed));const spring=22*effectiveSpeed;const damping=8.4;if(!staticPreview){phaseRef.current+=dt*effectiveSpeed;const layeredWave=.5+.22*Math.sin(phaseRef.current*.8)+.14*Math.sin(phaseRef.current*1.9+1.2)+.08*Math.sin(phaseRef.current*3.4+.4);wanderRef.current+=(Math.random()-.5)*.02*dt*effectiveSpeed;wanderRef.current=Math.max(-.09,Math.min(.09,wanderRef.current));const trafficTarget=Math.max(.08,Math.min(.98,layeredWave+wanderRef.current));trafficValueRef.current+=(trafficTarget-trafficValueRef.current)*Math.min(1,dt*5.5);const currentStep=scaleStepRef.current;const currentStepNorm=getLevelNorm(currentStep);const downThreshold=Math.max(.08,currentStepNorm-.16);if(trafficValueRef.current>=currentStepNorm&&currentStep<resolvedSteps){scaleStepRef.current=currentStep+1;belowThresholdTimeRef.current=0;tickStrengthRef.current=1;pulsesRef.current.push({level:scaleStepRef.current,age:0});}else if(trafficValueRef.current<downThreshold&&currentStep>1){belowThresholdTimeRef.current+=dt;if(belowThresholdTimeRef.current>=1.75){scaleStepRef.current=currentStep-1;belowThresholdTimeRef.current=0;}}else{belowThresholdTimeRef.current=0;}tickStrengthRef.current=Math.max(0,tickStrengthRef.current-dt*3.2);const nextPulses=[];for(const pulse of pulsesRef.current){const updated={...pulse,age:pulse.age+dt};if(updated.age<.8)nextPulses.push(updated);}pulsesRef.current=nextPulses;}const targetNorm=staticPreview?.57:getLevelNorm(scaleStepRef.current);if(staticPreview){scaleDisplayRef.current=targetNorm;scaleVelocityRef.current=0;}else{const displacement=targetNorm-scaleDisplayRef.current;scaleVelocityRef.current+=displacement*spring*dt;scaleVelocityRef.current*=Math.exp(-damping*dt);scaleDisplayRef.current+=scaleVelocityRef.current*dt;scaleDisplayRef.current=Math.max(.08,Math.min(.98,scaleDisplayRef.current));}ctx.lineCap=\"butt\";const trafficNorm=staticPreview?.55:trafficValueRef.current;const trafficEndX=leftBaselineX+trafficNorm*maxLineLength;ctx.beginPath();ctx.moveTo(leftBaselineX,trafficY);ctx.lineTo(trafficEndX,trafficY);ctx.strokeStyle=trafficColor;ctx.lineWidth=resolvedLineWidth;ctx.stroke();const scaleEndX=leftBaselineX+scaleDisplayRef.current*maxLineLength;ctx.beginPath();ctx.moveTo(leftBaselineX,scaleY);ctx.lineTo(scaleEndX,scaleY);ctx.strokeStyle=scaleColor;ctx.lineWidth=resolvedLineWidth;ctx.stroke();if(!staticPreview&&tickStrengthRef.current>.001){const tickHeight=8+tickStrengthRef.current*5;ctx.beginPath();ctx.moveTo(scaleEndX,scaleY-tickHeight*.5);ctx.lineTo(scaleEndX,scaleY+tickHeight*.5);ctx.strokeStyle=pulseColor;ctx.lineWidth=1;ctx.stroke();}if(!staticPreview){for(const pulse of pulsesRef.current){const levelX=leftBaselineX+getLevelNorm(pulse.level)*maxLineLength;const progress=pulse.age/.8;const radius=3+progress*18;const alpha=Math.max(0,1-progress);ctx.beginPath();ctx.arc(levelX,scaleY,radius,0,Math.PI*2);ctx.strokeStyle=pulseColor.replace(/[\\d.]+\\)$/g,`${.5*alpha})`);ctx.lineWidth=1.5;ctx.stroke();}}if(showLabels){ctx.fillStyle=labelColor;ctx.font=`11px -apple-system, BlinkMacSystemFont, \"Segoe UI\", Inter, sans-serif`;ctx.textAlign=\"left\";ctx.textBaseline=\"alphabetic\";ctx.fillText(trafficLabel,leftBaselineX,trafficY-resolvedLineWidth*.5-8);ctx.fillText(scaleLabel,leftBaselineX,scaleY-resolvedLineWidth*.5-8);}},[getLevelNorm,labelColor,lineWidth,lineSpacing,pulseColor,resolvedSteps,scaleLabel,showLabels,speed,trafficColor,trafficLabel]);useEffect(()=>{if(typeof window!==\"undefined\"){const mediaQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");startTransition(()=>setPrefersReducedMotion(mediaQuery.matches));const onChange=()=>{startTransition(()=>setPrefersReducedMotion(mediaQuery.matches));};mediaQuery.addEventListener(\"change\",onChange);return()=>mediaQuery.removeEventListener(\"change\",onChange);}else{startTransition(()=>setPrefersReducedMotion(true));}},[]);useEffect(()=>{const node=wrapperRef.current;if(!node)return;if(typeof window===\"undefined\"||typeof IntersectionObserver===\"undefined\"){startTransition(()=>setIsInView(true));return;}const observer=new IntersectionObserver(entries=>{const entry=entries[0];startTransition(()=>setIsInView(Boolean(entry?.isIntersecting)));},{threshold:.05});observer.observe(node);return()=>observer.disconnect();},[]);useEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;const canAnimate=!isStaticRenderer&&isInView&&!prefersReducedMotion;const render=t=>{drawFrame(t,!canAnimate);if(canAnimate){animationFrameRef.current=requestAnimationFrame(render);}};cancelAnimationFrame(animationFrameRef.current);lastTimeRef.current=0;animationFrameRef.current=requestAnimationFrame(render);return()=>{cancelAnimationFrame(animationFrameRef.current);};},[drawFrame,isInView,isStaticRenderer,prefersReducedMotion]);return /*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},\"aria-hidden\":true,children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",background:\"transparent\",display:\"block\"}})});}addPropertyControls(AutoScaleVisual,{trafficColor:{type:ControlType.Color,defaultValue:\"rgb(144, 99, 60)\"},scaleColor:{type:ControlType.Color,defaultValue:\"rgb(49, 38, 28)\"},labelColor:{type:ControlType.Color,defaultValue:\"rgb(113, 104, 96)\"},pulseColor:{type:ControlType.Color,defaultValue:\"rgba(144, 99, 60, 0.4)\"},speed:{type:ControlType.Number,defaultValue:1,min:.2,max:3,step:.1},steps:{type:ControlType.Number,defaultValue:7,min:4,max:10,step:1},lineWidth:{type:ControlType.Number,title:\"Height\",defaultValue:4,min:2,max:200,step:.5},lineSpacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:48,min:16,max:160,step:1},showLabels:{type:ControlType.Boolean,defaultValue:true},trafficLabel:{type:ControlType.String,defaultValue:\"Traffic\"},scaleLabel:{type:ControlType.String,defaultValue:\"GPU Scale\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AutoScaleVisual\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AutoScaleVisual.map"],"mappings":"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"}