{"version":3,"file":"Final_version_3.CDJdMjrf.mjs","names":["React.useRef","React.useState","React.useMemo"],"sources":["https:/framerusercontent.com/modules/qQBS4ecsKvE5cyBsHXkt/lqpsgSJql9rfgyWhoj7u/Final_version_3.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useMotionValueEvent,useScroll,useSpring}from\"framer-motion\";const PHASE_FROM=1;const PHASE_TO=2;const PHASE_ACCENT=3;const SCROLL_OFFSET=[\"start end\",\"end start\"];// Keeps very tall sections from allocating huge canvases (and stays under\n// iOS Safari's canvas size limit).\nconst MAX_CANVAS_AREA=8e6;function clamp(value,min,max){return Math.max(min,Math.min(max,value));}function mulberry32(seed){let t=seed>>>0;return()=>{t+=1831565813;let x=Math.imul(t^t>>>15,1|t);x^=x+Math.imul(x^x>>>7,61|x);return((x^x>>>14)>>>0)/4294967296;};}function applyEasing(value,easing){const t=clamp(value,0,1);if(easing===\"ease-in\")return t*t*t;if(easing===\"ease-out\")return 1-Math.pow(1-t,3);if(easing===\"ease-in-out\"){return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;}if(easing===\"expo-out\"){if(t===1)return 1;return 1-Math.pow(2,-10*t);}return t;}function baseThreshold(row,col,rows,columns,direction){const rowNorm=rows<=1?.5:row/(rows-1);const colNorm=columns<=1?.5:col/(columns-1);if(direction===\"top-bottom\")return rowNorm;if(direction===\"bottom-top\")return 1-rowNorm;if(direction===\"left-right\")return colNorm;if(direction===\"right-left\")return 1-colNorm;const dx=colNorm-.5;const dy=rowNorm-.5;const distance=Math.sqrt(dx*dx+dy*dy)/Math.sqrt(.5*.5+.5*.5);const normalized=clamp(distance,0,1);if(direction===\"center-out\")return normalized;return 1-normalized;}function patternShift(row,col,rows,columns,pattern,rand){if(pattern===\"random\"){return(rand()-.5)*1.6;}const rowNorm=rows<=1?.5:row/(rows-1);const colNorm=columns<=1?.5:col/(columns-1);if(pattern===\"checker\"){return(row+col)%2===0?-.2:.2;}if(pattern===\"diagonal\"){return((rowNorm+colNorm)*.5-.5)*.75;}if(pattern===\"wave\"){return Math.sin(colNorm*Math.PI*3+rowNorm*Math.PI*1.4)*.24;}const dx=colNorm-.5;const dy=rowNorm-.5;const radialDistance=Math.sqrt(dx*dx+dy*dy)/Math.sqrt(.5*.5+.5*.5);if(pattern===\"radial\"){return(radialDistance-.5)*.8;}const angle=(Math.atan2(dy,dx)+Math.PI)/(Math.PI*2);const spiral=(angle+radialDistance*1.15)%1-.5;return spiral*.6;}function getPixelRatio(width,height){const device=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;let ratio=Math.min(device,2);const area=width*height*ratio*ratio;if(area>MAX_CANVAS_AREA){ratio=Math.max(.5,Math.sqrt(MAX_CANVAS_AREA/(width*height)));}return ratio;}function buildGrid(width,height,pixelSize,gap,direction,pattern,seed,jitter,accentShare){const safePixelSize=clamp(pixelSize,2,240);const safeGap=Math.max(0,gap);const safeWidth=Math.max(1,width);const safeHeight=Math.max(1,height);const columns=Math.max(1,Math.ceil((safeWidth+safeGap)/(safePixelSize+safeGap)));const rows=Math.max(1,Math.ceil((safeHeight+safeGap)/(safePixelSize+safeGap)));const derivedSeed=Math.floor(seed)+Math.floor(width)*13+Math.floor(height)*29+rows*43+columns*59;const rand=mulberry32(derivedSeed);const safeJitter=clamp(jitter,0,1);const safeAccentShare=clamp(accentShare,0,.6);const ratio=getPixelRatio(safeWidth,safeHeight);const canvasWidth=Math.max(1,Math.round(safeWidth*ratio));const canvasHeight=Math.max(1,Math.round(safeHeight*ratio));const count=rows*columns;const x=new Int32Array(count);const y=new Int32Array(count);const w=new Int32Array(count);const h=new Int32Array(count);const threshold=new Float32Array(count);const accent=new Int8Array(count);let i=0;for(let row=0;row<rows;row++){const top=row*(safePixelSize+safeGap);const y0=Math.round(top*ratio);const y1=Math.min(canvasHeight,Math.round((top+safePixelSize)*ratio));for(let col=0;col<columns;col++){const left=col*(safePixelSize+safeGap);const x0=Math.round(left*ratio);const x1=Math.min(canvasWidth,Math.round((left+safePixelSize)*ratio));// Same random-call order as the original DOM version, so every\n// seed produces the exact same pattern it did before.\nconst base=baseThreshold(row,col,rows,columns,direction);const shift=patternShift(row,col,rows,columns,pattern,rand);const noise=(rand()-.5)*safeJitter*.65;const isAccent=rand()<safeAccentShare;const accentIndex=Math.floor(rand()*4);x[i]=x0;y[i]=y0;w[i]=Math.max(0,x1-x0);h[i]=Math.max(0,y1-y0);threshold[i]=clamp(base+shift*.5+noise,0,1);accent[i]=isAccent?accentIndex:-1;i++;}}return{count,x,y,w,h,threshold,accent,canvasWidth,canvasHeight};}/**\n * Walks every cell, works out its phase for this progress value, and repaints\n * ONLY the cells whose phase changed since the last frame. A typical scroll\n * frame touches a few dozen cells instead of re-rendering thousands of divs.\n */function paint(painter,rawProgress){const{ctx,grid,state,look}=painter;const{count,x,y,w,h,threshold,accent}=grid;const progress=applyEasing(clamp(rawProgress/look.endAt,0,1),look.easing);const edge=clamp(look.feather,.001,.35);let currentFill=\"\";for(let i=0;i<count;i++){const delta=progress-threshold[i];let phase;if(delta<=-edge)phase=PHASE_FROM;else if(delta>=edge)phase=PHASE_TO;else if(accent[i]<0)phase=delta>=0?PHASE_TO:PHASE_FROM;else phase=PHASE_ACCENT;if(phase===state[i])continue;state[i]=phase;const cellW=w[i];const cellH=h[i];if(cellW===0||cellH===0)continue;const cellX=x[i];const cellY=y[i];// \"From\" cells are transparent: the container's background (From\n// colour, or Layer A) shows through, exactly like before.\nctx.clearRect(cellX,cellY,cellW,cellH);if(phase===PHASE_FROM)continue;if(phase===PHASE_TO&&look.useImage){if(look.image){ctx.drawImage(look.image,cellX*look.scaleX,cellY*look.scaleY,cellW*look.scaleX,cellH*look.scaleY,cellX,cellY,cellW,cellH);}continue;}const fill=phase===PHASE_TO?look.toColor:look.accents[accent[i]];if(fill!==currentFill){ctx.fillStyle=fill;currentFill=fill;}ctx.fillRect(cellX,cellY,cellW,cellH);}}/**\n * Canvas can't read CSS variables, but Framer colour tokens arrive as\n * `var(--token-…, #fff)`. Resolve them through the DOM once per change.\n */function resolveColor(node,color){if(!color||color.indexOf(\"var(\")===-1)return color;const probe=document.createElement(\"span\");probe.style.display=\"none\";probe.style.color=color;node.appendChild(probe);const resolved=getComputedStyle(probe).color;node.removeChild(probe);return resolved||color;}/**\n * PixelScrollTransition\n * Scroll-driven pixel transition for Framer code components.\n * Renders to a single canvas and paints outside React's render cycle.\n */export default function PixelScrollTransition(props){const{pixelSize,gap,endAt,direction,pattern,easing,revealMode,layerAImage,layerBImage,fromColor,toColor,accentShare,accentColorA,accentColorB,accentColorC,accentColorD,jitter,feather,smoothing,seed}=props;const containerRef=React.useRef(null);const canvasRef=React.useRef(null);const painterRef=React.useRef(null);const[size,setSize]=React.useState({width:1,height:1});const[imageB,setImageB]=React.useState(null);// Measure layout size (not transformed size), and only re-render when\n// the size actually changes.\nReact.useLayoutEffect(()=>{const node=containerRef.current;if(!node)return;const measure=()=>{const width=Math.max(1,node.offsetWidth);const height=Math.max(1,node.offsetHeight);setSize(prev=>prev.width===width&&prev.height===height?prev:{width,height});};measure();if(typeof ResizeObserver===\"undefined\"){window.addEventListener(\"resize\",measure);return()=>window.removeEventListener(\"resize\",measure);}const observer=new ResizeObserver(measure);observer.observe(node);return()=>observer.disconnect();},[]);const{scrollYProgress}=useScroll({target:containerRef,offset:SCROLL_OFFSET});const springConfig=React.useMemo(()=>{const smooth=clamp(smoothing,0,1);return{stiffness:320-smooth*240,damping:22+smooth*22,mass:.25+smooth*.6};},[smoothing]);const smoothProgress=useSpring(scrollYProgress,springConfig);const grid=React.useMemo(()=>buildGrid(size.width,size.height,pixelSize,gap,direction,pattern,seed,jitter,accentShare),[size.width,size.height,pixelSize,gap,direction,pattern,seed,jitter,accentShare]);const isTwoLayer=revealMode===\"two-layer\";const useLayerImages=isTwoLayer&&layerAImage.trim().length>0&&layerBImage.trim().length>0;// Load Layer B once; the canvas samples slices of it per cell.\nReact.useEffect(()=>{if(!useLayerImages){setImageB(null);return;}let cancelled=false;const img=new Image;img.decoding=\"async\";img.onload=()=>{if(!cancelled)setImageB(img);};img.src=layerBImage;return()=>{cancelled=true;img.onload=null;};},[useLayerImages,layerBImage]);// Full repaint: only when the grid, colours, or settings change.\nReact.useLayoutEffect(()=>{const canvas=canvasRef.current;const container=containerRef.current;if(!canvas||!container)return;if(canvas.width!==grid.canvasWidth)canvas.width=grid.canvasWidth;if(canvas.height!==grid.canvasHeight)canvas.height=grid.canvasHeight;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const image=useLayerImages&&imageB&&imageB.naturalWidth>0?imageB:null;const look={feather,endAt:clamp(endAt,.05,1),easing,toColor:resolveColor(container,toColor),accents:[accentColorA,accentColorB,accentColorC,accentColorD].map(color=>resolveColor(container,color)),useImage:useLayerImages,image,scaleX:image?image.naturalWidth/grid.canvasWidth:1,scaleY:image?image.naturalHeight/grid.canvasHeight:1};ctx.clearRect(0,0,canvas.width,canvas.height);// Canvas is now empty == every cell is in the \"from\" phase.\nconst state=new Uint8Array(grid.count);state.fill(PHASE_FROM);const painter={ctx,grid,state,look};painterRef.current=painter;paint(painter,smoothProgress.get());},[grid,feather,endAt,easing,toColor,accentColorA,accentColorB,accentColorC,accentColorD,useLayerImages,imageB,smoothProgress]);// Per-frame work: no React state, no re-render — just paint the delta.\nuseMotionValueEvent(smoothProgress,\"change\",value=>{const painter=painterRef.current;if(painter)paint(painter,value);});return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",pointerEvents:\"none\",contain:\"layout paint\",backgroundColor:fromColor,backgroundImage:useLayerImages?`url(${layerAImage})`:undefined,backgroundSize:useLayerImages?\"100% 100%\":undefined,backgroundPosition:useLayerImages?\"0px 0px\":undefined,backgroundRepeat:useLayerImages?\"no-repeat\":undefined},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",display:\"block\"}})});}PixelScrollTransition.defaultProps={pixelSize:18,gap:1,endAt:1,direction:\"top-bottom\",pattern:\"random\",easing:\"linear\",revealMode:\"colors\",layerAImage:\"\",layerBImage:\"\",fromColor:\"#111111\",toColor:\"#f4f4f4\",accentShare:.16,accentColorA:\"#00D1FF\",accentColorB:\"#FFE047\",accentColorC:\"#FF4D6D\",accentColorD:\"#7CFF6B\",jitter:.28,feather:.07,smoothing:.4,seed:13};addPropertyControls(PixelScrollTransition,{pixelSize:{type:ControlType.Number,title:\"Pixel\",min:2,max:240,step:1,unit:\"px\",defaultValue:18},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:8,step:1,unit:\"px\",defaultValue:1},endAt:{type:ControlType.Number,title:\"End At\",min:.05,max:1,step:.01,defaultValue:1},direction:{type:ControlType.Enum,title:\"Flow\",options:[\"top-bottom\",\"bottom-top\",\"left-right\",\"right-left\",\"center-out\",\"center-in\"],optionTitles:[\"Top -> Bottom\",\"Bottom -> Top\",\"Left -> Right\",\"Right -> Left\",\"Center -> Out\",\"Out -> Center\"],defaultValue:\"top-bottom\"},pattern:{type:ControlType.Enum,title:\"Pattern\",options:[\"random\",\"checker\",\"diagonal\",\"wave\",\"spiral\",\"radial\"],optionTitles:[\"Random\",\"Checker\",\"Diagonal\",\"Wave\",\"Spiral\",\"Radial\"],defaultValue:\"random\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"linear\",\"ease-in\",\"ease-out\",\"ease-in-out\",\"expo-out\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease InOut\",\"Expo Out\"],defaultValue:\"linear\"},revealMode:{type:ControlType.Enum,title:\"Reveal\",options:[\"colors\",\"two-layer\"],optionTitles:[\"Colors\",\"Two Layer\"],defaultValue:\"colors\"},layerAImage:{type:ControlType.Image,title:\"Layer A\",hidden:props=>props.revealMode!==\"two-layer\"},layerBImage:{type:ControlType.Image,title:\"Layer B\",hidden:props=>props.revealMode!==\"two-layer\"},fromColor:{type:ControlType.Color,title:\"From\",defaultValue:\"#111111\"},toColor:{type:ControlType.Color,title:\"To\",defaultValue:\"#f4f4f4\"},accentShare:{type:ControlType.Number,title:\"Accent %\",min:0,max:.6,step:.01,defaultValue:.16},accentColorA:{type:ControlType.Color,title:\"Accent A\",defaultValue:\"#00D1FF\",hidden:props=>props.accentShare<=0},accentColorB:{type:ControlType.Color,title:\"Accent B\",defaultValue:\"#FFE047\",hidden:props=>props.accentShare<=0},accentColorC:{type:ControlType.Color,title:\"Accent C\",defaultValue:\"#FF4D6D\",hidden:props=>props.accentShare<=0},accentColorD:{type:ControlType.Color,title:\"Accent D\",defaultValue:\"#7CFF6B\",hidden:props=>props.accentShare<=0},jitter:{type:ControlType.Number,title:\"Jitter\",min:0,max:1,step:.01,defaultValue:.28},feather:{type:ControlType.Number,title:\"Band\",min:.01,max:.35,step:.01,defaultValue:.07},smoothing:{type:ControlType.Number,title:\"Smooth\",min:0,max:1,step:.01,defaultValue:.4},seed:{type:ControlType.Number,title:\"Seed\",min:0,max:9999,step:1,defaultValue:13}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelScrollTransition\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Final_version_3.map"],"mappings":"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"}