{"version":3,"file":"PixelTrailGrid.CUREqLSb.mjs","names":["useRef","useMemo","useState"],"sources":["https:/framerusercontent.com/modules/D7EmOsvBIj6kE0U0bkV8/7TGBscJNkJkwdpvSJdEr/PixelTrailGrid.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{startTransition,useEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const defaults={backgroundColor:\"#fbfbfa\",gridColor:\"#f0f1ed\",gridOpacity:.5,trailColor:\"#E8E9E4\",trailOpacity:.6,cellSize:24,pixelSize:24,pixelRadius:2,fadeDuration:1050,trailWidth:1,rainbowColors:false,maxActiveCells:700,respectReducedMotion:true,mobileBehavior:\"static\",enableGridMask:true,gridMaskDirection:\"topToBottom\",gridMaskStartOpacity:0,gridMaskEndOpacity:1,gridMaskStart:0,gridMaskEnd:100};const RAINBOW_TRAIL_COLORS=[\"#827DF6\",\"#D1B5FF\",\"#FFAB2C\",\"#FFEB3D\"];/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function PixelTrailGrid(props){const{backgroundColor=defaults.backgroundColor,gridColor=defaults.gridColor,gridOpacity=defaults.gridOpacity,trailColor=defaults.trailColor,trailOpacity=defaults.trailOpacity,cellSize=defaults.cellSize,pixelSize=defaults.pixelSize,pixelRadius=defaults.pixelRadius,fadeDuration=defaults.fadeDuration,trailWidth=defaults.trailWidth,rainbowColors=defaults.rainbowColors,maxActiveCells=defaults.maxActiveCells,respectReducedMotion=defaults.respectReducedMotion,mobileBehavior=defaults.mobileBehavior,enableGridMask=defaults.enableGridMask,gridMaskDirection=defaults.gridMaskDirection,gridMaskStartOpacity=defaults.gridMaskStartOpacity,gridMaskEndOpacity=defaults.gridMaskEndOpacity,gridMaskStart=defaults.gridMaskStart,gridMaskEnd=defaults.gridMaskEnd,style}=props;const rootRef=useRef(null);const canvasRef=useRef(null);const prefersReducedMotion=usePrefersReducedMotion();const gridLineColor=useMemo(()=>cssColorWithOpacity(gridColor,gridOpacity),[gridColor,gridOpacity]);const gridMaskStyle=useMemo(()=>{if(!enableGridMask)return undefined;const start=Math.max(0,Math.min(100,Math.min(gridMaskStart,gridMaskEnd)));const end=Math.max(0,Math.min(100,Math.max(gridMaskStart,gridMaskEnd)));const startOpacity=Math.max(0,Math.min(1,gridMaskStartOpacity));const endOpacity=Math.max(0,Math.min(1,gridMaskEndOpacity));const direction=gridMaskDirectionToCss(gridMaskDirection);const gradient=`linear-gradient(${direction}, rgba(0, 0, 0, ${startOpacity}) 0%, rgba(0, 0, 0, ${startOpacity}) ${start}%, rgba(0, 0, 0, ${endOpacity}) ${end}%, rgba(0, 0, 0, ${endOpacity}) 100%)`;return{maskImage:gradient,WebkitMaskImage:gradient,maskRepeat:\"no-repeat\",WebkitMaskRepeat:\"no-repeat\"};},[enableGridMask,gridMaskDirection,gridMaskEnd,gridMaskEndOpacity,gridMaskStart,gridMaskStartOpacity]);const hasExplicitWidth=style?.width!==undefined;const hasExplicitHeight=style?.height!==undefined;useEffect(()=>{if(typeof window===\"undefined\")return;const root=rootRef.current;const canvas=canvasRef.current;if(!root||!canvas)return;const canvasContext=canvas.getContext(\"2d\");if(!canvasContext)return;const context=canvasContext;const cells=new Map;const dimensions={width:0,height:0,dpr:1};const shouldReduceMotion=respectReducedMotion&&prefersReducedMotion;let lastCell=null;let rafId=0;const resize=()=>{const rect=root.getBoundingClientRect();const dpr=Math.min(window.devicePixelRatio||1,2);const width=Math.max(1,rect.width);const height=Math.max(1,rect.height);dimensions.width=width;dimensions.height=height;dimensions.dpr=dpr;canvas.width=Math.round(width*dpr);canvas.height=Math.round(height*dpr);canvas.style.width=`${width}px`;canvas.style.height=`${height}px`;context.setTransform(dpr,0,0,dpr,0,0);context.clearRect(0,0,width,height);cells.clear();lastCell=null;};const scheduleDraw=()=>{if(rafId||shouldReduceMotion)return;rafId=window.requestAnimationFrame(draw);};const activateCell=(col,row,touchedAt,intensity)=>{if(col<0||row<0||col*cellSize>dimensions.width||row*cellSize>dimensions.height){return;}const key=`${col},${row}`;const existing=cells.get(key);const nextCell={col,row,touchedAt,intensity:Math.max(intensity,existing?.intensity??0),seed:existing?.seed??seededValue(col,row)};if(existing)cells.delete(key);cells.set(key,nextCell);while(cells.size>maxActiveCells){const oldest=cells.keys().next().value;if(!oldest)break;cells.delete(oldest);}};const addTrailCell=(point,touchedAt)=>{activateCell(point.col,point.row,touchedAt,1);if(trailWidth>=2){activateCell(point.col+1,point.row,touchedAt,.3);activateCell(point.col-1,point.row,touchedAt,.3);activateCell(point.col,point.row+1,touchedAt,.24);activateCell(point.col,point.row-1,touchedAt,.24);}if(trailWidth>=3){activateCell(point.col+1,point.row+1,touchedAt,.16);activateCell(point.col-1,point.row-1,touchedAt,.16);activateCell(point.col+1,point.row-1,touchedAt,.12);activateCell(point.col-1,point.row+1,touchedAt,.12);}};const handlePointerMove=event=>{if(shouldReduceMotion)return;if(event.pointerType===\"touch\"&&mobileBehavior===\"static\")return;const rect=root.getBoundingClientRect();const x=event.clientX-rect.left;const y=event.clientY-rect.top;const isInside=x>=0&&x<=rect.width&&y>=0&&y<=rect.height;if(!isInside){lastCell=null;return;}const currentCell={col:Math.floor(x/cellSize),row:Math.floor(y/cellSize)};const now=performance.now();if(!lastCell){addTrailCell(currentCell,now);}else{for(const point of lineCells(lastCell,currentCell)){addTrailCell(point,now);}}lastCell=currentCell;scheduleDraw();};const handlePointerLeave=()=>{lastCell=null;};function draw(now){rafId=0;context.setTransform(dimensions.dpr,0,0,dimensions.dpr,0,0);context.clearRect(0,0,dimensions.width,dimensions.height);let activeCount=0;cells.forEach((cell,key)=>{const life=1-(now-cell.touchedAt)/fadeDuration;if(life<=0){cells.delete(key);return;}activeCount+=1;const easedLife=easeOutCubic(life);const variation=.92+cell.seed*.14;const alpha=trailOpacity*cell.intensity*easedLife*variation;const size=Math.min(pixelSize,cellSize-2)*(.92+cell.seed*.12);const x=cell.col*cellSize+cellSize/2-size/2;const y=cell.row*cellSize+cellSize/2-size/2;context.fillStyle=getTrailColor(cell,trailColor,rainbowColors);context.globalAlpha=Math.min(alpha,1);fillRoundedRect(context,x,y,size,size,Math.min(pixelRadius,size/2));});context.globalAlpha=1;if(activeCount>0){rafId=window.requestAnimationFrame(draw);}}resize();if(shouldReduceMotion){context.clearRect(0,0,dimensions.width,dimensions.height);return;}const resizeObserver=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(resize):null;resizeObserver?.observe(root);window.addEventListener(\"resize\",resize);window.addEventListener(\"pointermove\",handlePointerMove,{passive:true});window.addEventListener(\"pointerdown\",handlePointerMove,{passive:true});window.addEventListener(\"blur\",handlePointerLeave);return()=>{window.cancelAnimationFrame(rafId);resizeObserver?.disconnect();window.removeEventListener(\"resize\",resize);window.removeEventListener(\"pointermove\",handlePointerMove);window.removeEventListener(\"pointerdown\",handlePointerMove);window.removeEventListener(\"blur\",handlePointerLeave);};},[cellSize,fadeDuration,maxActiveCells,mobileBehavior,pixelRadius,pixelSize,prefersReducedMotion,respectReducedMotion,rainbowColors,trailColor,trailOpacity,trailWidth]);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,\"aria-hidden\":\"true\",style:{position:\"relative\",width:hasExplicitWidth?style?.width:\"100%\",height:hasExplicitHeight?style?.height:320,minHeight:hasExplicitHeight?undefined:180,overflow:\"hidden\",backgroundColor,...style},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\",zIndex:0,backgroundImage:`\n          linear-gradient(to right, ${gridLineColor} 1px, transparent 1px),\n          linear-gradient(to bottom, ${gridLineColor} 1px, transparent 1px)\n        `,backgroundSize:`${cellSize}px ${cellSize}px`,backgroundPosition:\"-1px -1px\",...gridMaskStyle}}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\",zIndex:1}})]});}addPropertyControls(PixelTrailGrid,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:defaults.backgroundColor},gridColor:{type:ControlType.Color,title:\"Grid\",defaultValue:defaults.gridColor},gridOpacity:{type:ControlType.Number,title:\"Grid Opacity\",defaultValue:defaults.gridOpacity,min:0,max:1,step:.01},trailColor:{type:ControlType.Color,title:\"Trail\",defaultValue:defaults.trailColor},trailOpacity:{type:ControlType.Number,title:\"Trail Opacity\",defaultValue:defaults.trailOpacity,min:0,max:1,step:.01},cellSize:{type:ControlType.Number,title:\"Cell\",defaultValue:defaults.cellSize,min:8,max:36,step:1,unit:\"px\"},pixelSize:{type:ControlType.Number,title:\"Pixel\",defaultValue:defaults.pixelSize,min:4,max:30,step:1,unit:\"px\"},pixelRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:defaults.pixelRadius,min:0,max:8,step:1,unit:\"px\"},fadeDuration:{type:ControlType.Number,title:\"Fade\",defaultValue:defaults.fadeDuration,min:250,max:2e3,step:50,unit:\"ms\"},trailWidth:{type:ControlType.Enum,title:\"Width\",defaultValue:defaults.trailWidth,options:[1,2,3],optionTitles:[\"1 cell\",\"2 cells\",\"3 cells\"]},rainbowColors:{type:ControlType.Boolean,title:\"Rainbow\",defaultValue:defaults.rainbowColors,enabledTitle:\"On\",disabledTitle:\"Off\"},maxActiveCells:{type:ControlType.Number,title:\"Cell Cap\",defaultValue:defaults.maxActiveCells,min:120,max:2e3,step:20},respectReducedMotion:{type:ControlType.Boolean,title:\"Reduced Motion\",defaultValue:defaults.respectReducedMotion,enabledTitle:\"Respect\",disabledTitle:\"Ignore\"},mobileBehavior:{type:ControlType.Enum,title:\"Touch\",defaultValue:defaults.mobileBehavior,options:[\"static\",\"touch\"],optionTitles:[\"Static\",\"Trail\"]},enableGridMask:{type:ControlType.Boolean,title:\"Mask\",defaultValue:defaults.enableGridMask,enabledTitle:\"On\",disabledTitle:\"Off\"},gridMaskDirection:{type:ControlType.Enum,title:\"Direction\",defaultValue:defaults.gridMaskDirection,options:[\"topToBottom\",\"bottomToTop\",\"leftToRight\",\"rightToLeft\"],optionTitles:[\"Top → Bottom\",\"Bottom → Top\",\"Left → Right\",\"Right → Left\"],hidden:props=>!props.enableGridMask},gridMaskStartOpacity:{type:ControlType.Number,title:\"Start Opacity\",defaultValue:defaults.gridMaskStartOpacity,min:0,max:1,step:.01,hidden:props=>!props.enableGridMask},gridMaskEndOpacity:{type:ControlType.Number,title:\"End Opacity\",defaultValue:defaults.gridMaskEndOpacity,min:0,max:1,step:.01,hidden:props=>!props.enableGridMask},gridMaskStart:{type:ControlType.Number,title:\"Start Stop\",defaultValue:defaults.gridMaskStart,min:0,max:100,step:1,unit:\"%\",hidden:props=>!props.enableGridMask},gridMaskEnd:{type:ControlType.Number,title:\"End Stop\",defaultValue:defaults.gridMaskEnd,min:0,max:100,step:1,unit:\"%\",hidden:props=>!props.enableGridMask}});function usePrefersReducedMotion(){const[prefersReducedMotion,setPrefersReducedMotion]=useState(false);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const query=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>{startTransition(()=>setPrefersReducedMotion(query.matches));};update();if(typeof query.addEventListener===\"function\"){query.addEventListener(\"change\",update);}else if(typeof query.addListener===\"function\"){query.addListener(update);}return()=>{if(typeof query.removeEventListener===\"function\"){query.removeEventListener(\"change\",update);}else if(typeof query.removeListener===\"function\"){query.removeListener(update);}};},[]);return prefersReducedMotion;}function lineCells(from,to){const points=[];let x0=from.col;let y0=from.row;const x1=to.col;const y1=to.row;const dx=Math.abs(x1-x0);const sx=x0<x1?1:-1;const dy=-Math.abs(y1-y0);const sy=y0<y1?1:-1;let error=dx+dy;let guard=0;while(guard<220){points.push({col:x0,row:y0});if(x0===x1&&y0===y1)break;const nextError=2*error;if(nextError>=dy){error+=dy;x0+=sx;}if(nextError<=dx){error+=dx;y0+=sy;}guard+=1;}return points;}function fillRoundedRect(context,x,y,width,height,radius){if(radius<=0){context.fillRect(x,y,width,height);return;}const r=Math.min(radius,width/2,height/2);context.beginPath();context.moveTo(x+r,y);context.arcTo(x+width,y,x+width,y+height,r);context.arcTo(x+width,y+height,x,y+height,r);context.arcTo(x,y+height,x,y,r);context.arcTo(x,y,x+width,y,r);context.closePath();context.fill();}function seededValue(col,row){const value=Math.sin(col*127.1+row*311.7)*43758.5453123;return value-Math.floor(value);}function easeOutCubic(value){return 1-Math.pow(1-Math.max(0,Math.min(value,1)),3);}function getTrailColor(cell,trailColor,rainbowColors){if(!rainbowColors)return trailColor;const colorIndex=Math.abs(cell.col*3+cell.row*5+Math.floor(cell.seed*7))%RAINBOW_TRAIL_COLORS.length;return RAINBOW_TRAIL_COLORS[colorIndex];}function cssColorWithOpacity(color,opacity){const rgba=hexToRgba(color,opacity);if(rgba)return rgba;return color;}function gridMaskDirectionToCss(direction){switch(direction){case\"bottomToTop\":return\"to top\";case\"leftToRight\":return\"to right\";case\"rightToLeft\":return\"to left\";case\"topToBottom\":default:return\"to bottom\";}}function hexToRgba(hex,opacity){const normalized=hex.trim();const short=/^#([a-f\\d])([a-f\\d])([a-f\\d])$/i;const long=/^#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;const shortMatch=normalized.match(short);const longMatch=normalized.match(long);if(shortMatch){const[,r,g,b]=shortMatch;return`rgba(${parseInt(r+r,16)}, ${parseInt(g+g,16)}, ${parseInt(b+b,16)}, ${opacity})`;}if(longMatch){const[,r,g,b]=longMatch;return`rgba(${parseInt(r,16)}, ${parseInt(g,16)}, ${parseInt(b,16)}, ${opacity})`;}return null;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelTrailGrid\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PixelTrailGrid.map"],"mappings":"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"}