{"version":3,"file":"Grid.spYHKP60.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/iMo1p0nIUqykJ44w1JGi/T1d0muJcNrduOIGCo2Eq/Grid.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useState}from\"react\";export default function GridBackground(props){const{cellSize,gridColor,lineWidth,positionMode,opacity,accentColor,accentLineInterval,scrollSpeed}=props;const[offsetY,setOffsetY]=useState(0);const[accentOffsetY,setAccentOffsetY]=useState(0);useEffect(()=>{const accentSpacing=cellSize*accentLineInterval;const handleScroll=()=>{const scrollY=window.scrollY;setOffsetY(scrollY*scrollSpeed%cellSize);setAccentOffsetY(scrollY*scrollSpeed%accentSpacing);};window.addEventListener(\"scroll\",handleScroll,{passive:true});handleScroll()// Initialize on mount\n;return()=>{window.removeEventListener(\"scroll\",handleScroll);};},[scrollSpeed,cellSize,accentLineInterval]);const positionStyles={absolute:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\"},fixed:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\"},sticky:{position:\"sticky\",top:0,left:0,width:\"100%\",height:\"100vh\"}};const accentSpacing=cellSize*accentLineInterval;return /*#__PURE__*/_jsxs(\"div\",{style:{...positionStyles[positionMode],backgroundColor:\"transparent\",opacity:opacity,pointerEvents:\"none\",zIndex:-1,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:-cellSize,left:0,width:\"100%\",height:`calc(100% + ${cellSize*2}px)`,backgroundImage:`\n                        linear-gradient(to right, ${gridColor} ${lineWidth}px, transparent ${lineWidth}px),\n                        linear-gradient(to bottom, ${gridColor} ${lineWidth}px, transparent ${lineWidth}px)\n                    `,backgroundSize:`${cellSize}px ${cellSize}px`,backgroundPosition:`0 ${-offsetY}px`,pointerEvents:\"none\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:-accentSpacing,left:0,width:\"100%\",height:`calc(100% + ${accentSpacing*2}px)`,backgroundImage:`\n                        linear-gradient(to bottom, ${accentColor} ${lineWidth}px, transparent ${lineWidth}px)\n                    `,backgroundSize:`100% ${accentSpacing}px`,backgroundPosition:`0 ${-accentOffsetY}px`,pointerEvents:\"none\"}})]});}GridBackground.defaultProps={cellSize:40,gridColor:\"rgba(255, 255, 255, 0.1)\",lineWidth:1,positionMode:\"fixed\",opacity:1,accentColor:\"rgba(100, 100, 255, 0.3)\",accentLineInterval:5,scrollSpeed:.5};addPropertyControls(GridBackground,{positionMode:{type:ControlType.Enum,title:\"Position Mode\",options:[\"absolute\",\"fixed\",\"sticky\"],optionTitles:[\"Absolute (fill parent)\",\"Fixed (full screen)\",\"Sticky (stays on scroll)\"],defaultValue:\"fixed\"},scrollSpeed:{type:ControlType.Number,title:\"Scroll Speed\",min:0,max:2,step:.05,defaultValue:.5,description:\"0 = static, 0.5 = half speed (parallax), 1 = full speed\"},cellSize:{type:ControlType.Number,title:\"Cell Size\",min:10,max:200,step:1,defaultValue:40},gridColor:{type:ControlType.Color,title:\"Grid Color\",defaultValue:\"rgba(255, 255, 255, 0.1)\"},accentColor:{type:ControlType.Color,title:\"Accent Line Color\",defaultValue:\"rgba(100, 100, 255, 0.3)\"},accentLineInterval:{type:ControlType.Number,title:\"Accent Line Every N Rows\",min:2,max:20,step:1,defaultValue:5},lineWidth:{type:ControlType.Number,title:\"Line Width\",min:.1,max:5,step:.1,defaultValue:1},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.05,defaultValue:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GridBackground\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grid.map"],"mappings":"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"}