{"version":3,"file":"ObservabilityVisual.AFW58LmC.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/CmLW2HAYkQJXnI5tDtNr/rQHyOrzix8Cqyvkk7yBW/ObservabilityVisual.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: Create ObservabilityVisual as a canvas-based, premium-feel usage observability animation with a scrolling sparkline/area chart, faint dotted grid, sweeping scan line, occasional threshold spike markers, resize/DPR handling, off-screen pause, and reduced-motion static rendering.\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ObservabilityVisual(props){const{lineColor,fillColor,gridColor,pulseColor,scanColor,background,speed,lineWidth,amplitude}=props;const wrapperRef=useRef(null);const canvasRef=useRef(null);const frameRef=useRef(0);const lastTimeRef=useRef(0);const shiftAccumulatorRef=useRef(0);const scanPhaseRef=useRef(0);const samplesRef=useRef([]);const noiseValueRef=useRef(.48);const noiseVelocityRef=useRef(0);const spikeEnergyRef=useRef(0);const markersRef=useRef([]);const[isInView,setIsInView]=useState(true);const[prefersReducedMotion,setPrefersReducedMotion]=useState(false);const[size,setSize]=useState({width:0,height:0});const isStaticRenderer=useIsStaticRenderer();const resolvedSpeed=useMemo(()=>Math.max(.1,Math.min(3,speed)),[speed]);const resolvedLineWidth=useMemo(()=>Math.max(1,Math.min(6,lineWidth)),[lineWidth]);const resolvedAmplitude=useMemo(()=>Math.max(.1,Math.min(1,amplitude)),[amplitude]);const ensureSamples=useCallback(targetCount=>{if(samplesRef.current.length===0){let seeded=987654321;const seededRandom=()=>{seeded=seeded*1664525+1013904223>>>0;return seeded/4294967296;};const initial=[];let smoothNoise=0;const spikeCount=1+Math.floor(seededRandom()*2);const spikeCenters=Array.from({length:spikeCount},()=>Math.floor(targetCount*(.2+seededRandom()*.6)));for(let i=0;i<targetCount;i++){const p=i/Math.max(1,targetCount-1);const layeredWave=.44+.11*Math.sin(p*Math.PI*5.3+.8)+.07*Math.sin(p*Math.PI*11.7+2.2)+.04*Math.sin(p*Math.PI*17.1+1.1);smoothNoise=smoothNoise*.82+(seededRandom()-.5)*.12;let bakedSpikes=0;for(const center of spikeCenters){const dist=Math.abs(i-center);if(dist<7){bakedSpikes+=(1-dist/7)*(.13+resolvedAmplitude*.25);}}const sample=layeredWave+smoothNoise+bakedSpikes;initial.push(Math.max(.06,Math.min(.95,sample)));}samplesRef.current=initial;return;}if(samplesRef.current.length<targetCount){const last=samplesRef.current[samplesRef.current.length-1]??.5;while(samplesRef.current.length<targetCount){samplesRef.current.push(last);}}else if(samplesRef.current.length>targetCount){samplesRef.current=samplesRef.current.slice(samplesRef.current.length-targetCount);}},[resolvedAmplitude]);const generateSample=useCallback(phase=>{noiseVelocityRef.current+=(Math.random()-.5)*.05;noiseVelocityRef.current*=.92;noiseValueRef.current+=noiseVelocityRef.current;noiseValueRef.current=Math.max(-.2,Math.min(.2,noiseValueRef.current));const spikeChance=.035*resolvedAmplitude;if(Math.random()<spikeChance){const burst=.2+Math.random()*.55*resolvedAmplitude;spikeEnergyRef.current=Math.max(spikeEnergyRef.current,burst);}spikeEnergyRef.current*=.84;const layeredWave=.48+.12*Math.sin(phase*.65)+.08*Math.sin(phase*1.4+1.1)+.04*Math.sin(phase*3.1+.3);const dramaticScale=.55+resolvedAmplitude*.75;const sample=layeredWave+noiseValueRef.current*dramaticScale+spikeEnergyRef.current;return Math.max(.06,Math.min(.95,sample));},[resolvedAmplitude]);const draw=useCallback((timeMs,staticPreview)=>{const canvas=canvasRef.current;if(!canvas)return;const width=Math.max(1,size.width);const height=Math.max(1,size.height);if(width<=1||height<=1)return;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);if(background!==\"transparent\"){ctx.fillStyle=background;ctx.fillRect(0,0,width,height);}const paddingX=10;const paddingTop=12;const paddingBottom=10;const chartWidth=Math.max(10,width-paddingX*2);const chartHeight=Math.max(10,height-paddingTop-paddingBottom);const baselineY=paddingTop+chartHeight;const sampleSpacing=4;const sampleCount=Math.max(30,Math.ceil(chartWidth/sampleSpacing)+3);ensureSamples(sampleCount);let dt=(timeMs-lastTimeRef.current)/1e3;if(!Number.isFinite(dt)||dt<=0)dt=1/60;dt=Math.min(.05,dt);lastTimeRef.current=timeMs;if(!staticPreview){const scrollPxPerSecond=(24+44*resolvedSpeed)*(.7+resolvedAmplitude*.5);shiftAccumulatorRef.current+=scrollPxPerSecond*dt;while(shiftAccumulatorRef.current>=sampleSpacing){shiftAccumulatorRef.current-=sampleSpacing;const nextPhase=timeMs*.0015+samplesRef.current.length*.05;const nextSample=generateSample(nextPhase);const prev=samplesRef.current[samplesRef.current.length-1]??.4;samplesRef.current.shift();samplesRef.current.push(nextSample);const threshold=.72-resolvedAmplitude*.12;if(nextSample>threshold&&nextSample>prev+.06){markersRef.current.push({x:width-paddingX,yNorm:nextSample,age:0});if(markersRef.current.length>3){markersRef.current=markersRef.current.slice(markersRef.current.length-3);}}}scanPhaseRef.current+=dt*(.12+resolvedSpeed*.06);if(scanPhaseRef.current>1)scanPhaseRef.current-=1;const scrollSpeedForMarkers=(24+44*resolvedSpeed)*(.7+resolvedAmplitude*.5);markersRef.current=markersRef.current.map(marker=>({...marker,x:marker.x-scrollSpeedForMarkers*dt,age:marker.age+dt})).filter(marker=>marker.age<=2&&marker.x>paddingX-40);}const xOffset=shiftAccumulatorRef.current;const points=samplesRef.current.map((value,i)=>{const x=paddingX+i*sampleSpacing-xOffset;const y=baselineY-value*chartHeight;return{x,y,yNorm:value};});const gridRows=5;ctx.save();ctx.strokeStyle=gridColor;ctx.lineWidth=1;ctx.setLineDash([1,7]);for(let i=1;i<=gridRows;i++){const y=paddingTop+chartHeight/(gridRows+1)*i;ctx.globalAlpha=.55-i*.07;ctx.beginPath();ctx.moveTo(paddingX,y);ctx.lineTo(width-paddingX,y);ctx.stroke();}ctx.restore();if(points.length>1){const fillGradient=ctx.createLinearGradient(0,paddingTop,0,baselineY);fillGradient.addColorStop(0,fillColor);fillGradient.addColorStop(1,\"rgba(0,0,0,0)\");ctx.beginPath();ctx.moveTo(points[0].x,baselineY);for(let i=0;i<points.length;i++){ctx.lineTo(points[i].x,points[i].y);}ctx.lineTo(points[points.length-1].x,baselineY);ctx.closePath();ctx.fillStyle=fillGradient;ctx.fill();ctx.beginPath();ctx.lineWidth=resolvedLineWidth;ctx.strokeStyle=lineColor;ctx.lineCap=\"round\";ctx.lineJoin=\"round\";ctx.moveTo(points[0].x,points[0].y);for(let i=1;i<points.length;i++){ctx.lineTo(points[i].x,points[i].y);}ctx.stroke();const scanX=staticPreview?paddingX+chartWidth*.35:paddingX+scanPhaseRef.current*chartWidth;ctx.save();ctx.strokeStyle=scanColor;ctx.lineWidth=resolvedLineWidth+1;ctx.globalAlpha=.8;for(let i=1;i<points.length;i++){const p0=points[i-1];const p1=points[i];const midX=(p0.x+p1.x)*.5;const dist=Math.abs(midX-scanX);if(dist<38){const glow=1-dist/38;ctx.globalAlpha=.25+glow*.6;ctx.beginPath();ctx.moveTo(p0.x,p0.y);ctx.lineTo(p1.x,p1.y);ctx.stroke();}}ctx.restore();ctx.save();ctx.strokeStyle=scanColor;ctx.lineWidth=1;ctx.globalAlpha=.7;ctx.beginPath();ctx.moveTo(scanX,paddingTop);ctx.lineTo(scanX,baselineY);ctx.stroke();ctx.restore();}const staticMarker=staticPreview&&points.length>2?points.slice(Math.floor(points.length*.28),Math.floor(points.length*.72)).reduce((best,point)=>point.y<best.y?point:best,points[0]):null;const markersToDraw=staticPreview?staticMarker?[{x:staticMarker.x,yNorm:staticMarker.yNorm,age:.8}]:[]:markersRef.current;for(const marker of markersToDraw){const y=baselineY-marker.yNorm*chartHeight;const progress=marker.age/2;const ringRadius=4+progress*18;const alpha=Math.max(0,1-progress);ctx.save();ctx.globalAlpha=alpha;ctx.beginPath();ctx.arc(marker.x,y,2.8,0,Math.PI*2);ctx.fillStyle=pulseColor;ctx.fill();ctx.lineWidth=1.5;ctx.strokeStyle=pulseColor;ctx.beginPath();ctx.arc(marker.x,y,ringRadius,0,Math.PI*2);ctx.stroke();ctx.restore();}},[background,ensureSamples,fillColor,generateSample,gridColor,lineColor,resolvedAmplitude,resolvedLineWidth,resolvedSpeed,pulseColor,scanColor,size.height,size.width]);useEffect(()=>{if(typeof window!==\"undefined\"){const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");startTransition(()=>setPrefersReducedMotion(media.matches));const onChange=()=>{startTransition(()=>setPrefersReducedMotion(media.matches));};media.addEventListener(\"change\",onChange);return()=>media.removeEventListener(\"change\",onChange);}startTransition(()=>setPrefersReducedMotion(true));},[]);useEffect(()=>{const node=wrapperRef.current;if(!node)return;if(typeof window===\"undefined\"||typeof ResizeObserver===\"undefined\"){const rect=node.getBoundingClientRect();startTransition(()=>setSize({width:rect.width,height:rect.height}));return;}const observer=new ResizeObserver(entries=>{const entry=entries[0];if(!entry)return;const nextWidth=entry.contentRect.width;const nextHeight=entry.contentRect.height;startTransition(()=>setSize({width:nextWidth,height:nextHeight}));});observer.observe(node);return()=>observer.disconnect();},[]);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 canAnimate=!isStaticRenderer&&isInView&&!prefersReducedMotion;const render=t=>{draw(t,!canAnimate);if(canAnimate){frameRef.current=requestAnimationFrame(render);}};cancelAnimationFrame(frameRef.current);lastTimeRef.current=0;frameRef.current=requestAnimationFrame(render);return()=>cancelAnimationFrame(frameRef.current);},[draw,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%\",display:\"block\",background:\"transparent\"}})});}addPropertyControls(ObservabilityVisual,{lineColor:{type:ControlType.Color,defaultValue:\"rgb(144, 99, 60)\"},fillColor:{type:ControlType.Color,defaultValue:\"rgba(144, 99, 60, 0.18)\"},gridColor:{type:ControlType.Color,defaultValue:\"rgba(49, 38, 28, 0.12)\"},pulseColor:{type:ControlType.Color,defaultValue:\"rgba(144, 99, 60, 0.45)\"},scanColor:{type:ControlType.Color,defaultValue:\"rgba(144, 99, 60, 0.25)\"},background:{type:ControlType.Color,defaultValue:\"transparent\"},speed:{type:ControlType.Number,defaultValue:1,min:.1,max:3,step:.1},lineWidth:{type:ControlType.Number,defaultValue:2,min:1,max:6,step:.1},amplitude:{type:ControlType.Number,defaultValue:.6,min:.1,max:1,step:.05}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ObservabilityVisual\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ObservabilityVisual.map"],"mappings":"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"}