{"version":3,"file":"ShimmerGrid_Prod.CKbOPLP8.mjs","names":["mapRange","useRef","useMemo","__esmMin","init_ssg_sandbox_shims","de","pe","p","c","init_jsx_runtime","init_npm_react_18_3_1","ce","window","useSpring","cubicBezier","animate","init_framer_motion_DhsWWWsN","useMotionValue","addPropertyControls","RenderTarget","init_framer_DymZktPS","ControlType","FollowCursor","props","isCanvas","id","generateInstanceId","movementTransition","mapRange$1","smoothing","mouseX","mouseY","springX","springY","ref","parentRef","transformRef","styleRef","hasSpringRef","previousXRef","previousYRef","previousStyleTransformRef","isInitializedRef","previousScrollXRef","previousScrollYRef","opacityRef","currentOpacityRef","animationFrameId","updateTransform","xValue","yValue","computedStyle","transform","calculateTransform","opacity","container","parent","handleMouseMove","setSpringsInstantly","transition","latest","matrix","rect","originalLeft","originalTop","scrollX","scrollY","mouseXPos","event","ALIGNMENT","horizontalAlignment","mouseYPos","verticalAlignment","handleScroll","deltaX","deltaY","enabled","fromLow","fromHigh","toLow","value","toHigh","computedTransform","styleTransform","element","translateTransform","previousX","previousY","previousStyleTransform","invertTransform","transformString","func","valuesString","values","v","invertNumber","_","sign","num","unit","rotateValues","CHARACTERS","init_FollowCursor_Prod","result","i","ShimmerGrid","isCustom","patternPreset","bgPosition","customPatternSizing","POSITION_MAP","customPatternPosition","bgImage","bgSize","tileSize","bgRepeat","lineWidth","flip","w","sideLength","getSideLength","dotSize","customPatternImage","IMAGE_SIZING_MAP","hoverStyle","hoverSizeValue","hoverSize","hoverShape","gradientPoints","normalized","mapRange","ease","radius","color","style","customPatternMode","hoverColor","hypotenuseLength","Pattern","init_ShimmerGrid_Prod","\"Grid\"","\"Checkerboard\"","\"HorizontalLines\"","\"VerticalLines\"","\"DiagonalLines\"","\"Dots\"","\"Triangles\"","\"Custom\""],"sources":["https:/framerusercontent.com/modules/QbIURI1CrWibjjH7k1PR/2vNdLnvQNPcA8uP12d7k/FollowCursor_Prod.js","https:/framerusercontent.com/modules/Z7W0nR93oDA0ww3oOjR8/Ek6hdyC7N0hvEfTgS47e/ShimmerGrid_Prod.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useMemo}from\"react\";import{useMotionValue,useSpring,animate}from\"framer-motion\";const ALIGNMENT={left:0,top:0,center:.5,right:1,bottom:1};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n */export default function FollowCursor(props){const{smoothing,enabled,horizontalAlignment,verticalAlignment,transition}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const id=generateInstanceId();const movementTransition={damping:100,stiffness:mapRange(smoothing,0,100,2e3,50)};const mouseX=useMotionValue(0);const mouseY=useMotionValue(0);const springX=useSpring(mouseX,movementTransition);const springY=useSpring(mouseY,movementTransition);const ref=useRef(null);const parentRef=useRef(null);const transformRef=useRef(null);const styleRef=useRef(null);const hasSpringRef=useRef(smoothing!==0);const previousXRef=useRef(null);const previousYRef=useRef(null);const previousStyleTransformRef=useRef(null);const isInitializedRef=useRef(false);const previousScrollXRef=useRef(0);const previousScrollYRef=useRef(0);const opacityRef=useRef(1);const currentOpacityRef=useRef(0);useEffect(()=>{hasSpringRef.current=smoothing!==0;},[smoothing]);useEffect(()=>{let animationFrameId;const updateTransform=()=>{if(isCanvas)return;animationFrameId=requestAnimationFrame(updateTransform);if(!parentRef.current||!styleRef.current){return;}const xValue=(hasSpringRef.current?springX.get():mouseX.get()).toFixed(3);const yValue=(hasSpringRef.current?springY.get():mouseY.get()).toFixed(3);// Get computed styles to capture all existing transforms\nconst computedStyle=window.getComputedStyle(parentRef.current);const transform=calculateTransform(parentRef.current,computedStyle,xValue,yValue,previousXRef.current,previousYRef.current,previousStyleTransformRef.current);const opacity=currentOpacityRef.current*opacityRef.current;transformRef.current=transform;styleRef.current.textContent=`\n\t\t\t\t[data-followcursor=\"${id}\"] { \n\t\t\t\t\ttransform: ${transform} !important;\n\t\t\t\t\t${opacity<.995?`opacity: ${opacity} !important;`:\"\"}\n\t\t\t\t}\n\t\t\t`;previousXRef.current=xValue;previousYRef.current=yValue;previousStyleTransformRef.current=parentRef.current.style.transform;};if(ref.current){const container=ref.current.parentElement;if(container){const parent=container.parentElement;if(parent){parentRef.current=parent;parent.setAttribute(\"data-followcursor\",id);}}}// Start the animation loop\nupdateTransform();// Cleanup function\nreturn()=>{if(animationFrameId){cancelAnimationFrame(animationFrameId);}};},[]);useEffect(()=>{const handleMouseMove=event=>{if(!parentRef.current)return;let setSpringsInstantly=false;// When initialized for the first time, animate opacity\nif(!isInitializedRef.current){isInitializedRef.current=true;animate(currentOpacityRef.current,enabled?1:0,{...transition,onUpdate:latest=>{currentOpacityRef.current=latest;}});setSpringsInstantly=true;}// Get the element's position without transforms\nconst computedStyle=window.getComputedStyle(parentRef.current);const matrix=new DOMMatrix(computedStyle.transform);const rect=parentRef.current.getBoundingClientRect();// Subtract the transform translation to get the original position\nconst originalLeft=rect.left-matrix.m41;const originalTop=rect.top-matrix.m42;// Add scroll offsets to mouse position\nconst scrollX=window.pageXOffset||document.documentElement.scrollLeft;const scrollY=window.pageYOffset||document.documentElement.scrollTop;// Update previous scroll positions\npreviousScrollXRef.current=scrollX;previousScrollYRef.current=scrollY;const mouseXPos=event.clientX+scrollX-(originalLeft+scrollX)-ALIGNMENT[horizontalAlignment]*rect.width;const mouseYPos=event.clientY+scrollY-(originalTop+scrollY)-ALIGNMENT[verticalAlignment]*rect.height;mouseX.set(mouseXPos);mouseY.set(mouseYPos);if(setSpringsInstantly){springX.jump(mouseXPos);springY.jump(mouseYPos);}};// Add scroll event handler to update position\nconst handleScroll=()=>{if(!parentRef.current||!isInitializedRef.current)return;const scrollX=window.scrollX||window.pageXOffset||document.documentElement.scrollLeft;const scrollY=window.scrollY||window.pageYOffset||document.documentElement.scrollTop;// Calculate scroll delta\nconst deltaX=scrollX-previousScrollXRef.current;const deltaY=scrollY-previousScrollYRef.current;// Update previous scroll positions\npreviousScrollXRef.current=scrollX;previousScrollYRef.current=scrollY;// Update position using scroll delta\nmouseX.set(mouseX.get()+deltaX);mouseY.set(mouseY.get()+deltaY);};window.addEventListener(\"mousemove\",handleMouseMove);window.addEventListener(\"scroll\",handleScroll);return()=>{window.removeEventListener(\"mousemove\",handleMouseMove);window.removeEventListener(\"scroll\",handleScroll);};},[enabled]);useEffect(()=>{if(!styleRef.current||!parentRef.current)return;const computedStyle=window.getComputedStyle(parentRef.current);opacityRef.current=parseFloat(computedStyle.opacity)||1;animate(currentOpacityRef.current,enabled&&isInitializedRef.current?1:0,{...transition,onUpdate:latest=>{currentOpacityRef.current=latest;}});},[enabled,transition]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...props.style},children:/*#__PURE__*/_jsx(\"style\",{ref:styleRef})});}FollowCursor.displayName=\"Follow Cursor\";addPropertyControls(FollowCursor,{enabled:{type:ControlType.Boolean,defaultValue:true},smoothing:{type:ControlType.Number,defaultValue:0,min:0,max:100,step:1},horizontalAlignment:{type:ControlType.Enum,defaultValue:\"center\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,title:\"Alignment\"},verticalAlignment:{type:ControlType.Enum,defaultValue:\"center\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,title:\" \"},transition:{type:ControlType.Transition,defaultValue:{type:\"spring\",duration:.2,bounce:0},description:\"More components at [Framer University](https://frameruni.link/cc).\"}});const CHARACTERS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";const generateInstanceId=()=>{const id=useMemo(()=>{let result=\"\";for(let i=0;i<13;i++){result+=CHARACTERS.charAt(Math.floor(Math.random()*CHARACTERS.length));}return result;},[]);return id;};function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}function calculateTransform(element,computedStyle,xValue,yValue,previousX,previousY,previousStyleTransform){xValue=xValue||0;yValue=yValue||0;previousX=previousX||0;previousY=previousY||0;// Get transform\nconst computedTransform=computedStyle.transform;const styleTransform=element.style.transform;// Subtract previous values from current values for a single transform\nconst finalX=xValue-previousX;const finalY=yValue-previousY;const translateTransform=`translate(${finalX}px, ${finalY}px)`;let transform=translateTransform;if(styleTransform&&styleTransform!==\"none\"){if(previousStyleTransform&&previousStyleTransform!==\"none\"){transform=`${translateTransform} ${invertTransform(previousStyleTransform)} ${styleTransform}`;}else{transform=`${translateTransform} ${styleTransform}`;}}return computedTransform&&computedTransform!==\"none\"?`${transform} ${computedTransform}`:transform;}function invertTransform(transformString){const transforms=transformString.match(/\\w+\\([^)]+\\)/g)||[];const invertedTransforms=transforms.reverse().map(transform=>{const[func,valuesString]=transform.match(/(\\w+)\\(([^)]+)\\)/).slice(1);const values=valuesString.split(\",\").map(v=>v.trim());const invertNumber=v=>{const[_,sign,num,unit]=v.match(/^(-?)(\\d*\\.?\\d+)(\\D*)$/);return`${sign?\"\":\"-\"}${num}${unit}`;};switch(func.toLowerCase()){case\"translate\":case\"translate3d\":case\"translatex\":case\"translatey\":case\"translatez\":return`${func}(${values.map(invertNumber).join(\", \")})`;case\"scale\":case\"scale3d\":return`${func}(${values.map(v=>1/parseFloat(v)).join(\", \")})`;case\"scalex\":case\"scaley\":case\"scalez\":return`${func}(${1/parseFloat(values[0])})`;case\"rotate\":case\"rotatex\":case\"rotatey\":case\"rotatez\":return`${func}(${invertNumber(values[0])})`;case\"rotate3d\":const rotateValues=values.map(parseFloat);return`${func}(${rotateValues[0]}, ${rotateValues[1]}, ${rotateValues[2]}, ${invertNumber(values[3])})`;case\"skew\":case\"skewx\":case\"skewy\":return`${func}(${values.map(invertNumber).join(\", \")})`;case\"matrix\":case\"matrix3d\":console.warn(`Inverting ${func} is not supported. Returning original.`);return transform;default:console.warn(`Unknown transform function: ${func}. Returning original.`);return transform;}});return invertedTransforms.join(\" \");}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FollowCursor\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FollowCursor_Prod.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import FollowCursor from\"https://framerusercontent.com/modules/QbIURI1CrWibjjH7k1PR/2vNdLnvQNPcA8uP12d7k/FollowCursor_Prod.js\";import{cubicBezier}from\"framer-motion\";const ease=cubicBezier(.7,0,.7,1);var Pattern;(function(Pattern){Pattern[\"Grid\"]=\"grid\";Pattern[\"Checkerboard\"]=\"checkerboard\";Pattern[\"HorizontalLines\"]=\"horizontalLines\";Pattern[\"VerticalLines\"]=\"verticalLines\";Pattern[\"DiagonalLines\"]=\"diagonalLines\";Pattern[\"Dots\"]=\"dots\";Pattern[\"Triangles\"]=\"triangles\";Pattern[\"Custom\"]=\"custom\";})(Pattern||(Pattern={}));const IMAGE_SIZING_MAP={fill:\"cover\",fit:\"contain\",stretch:\"100% 100%\"};const POSITION_MAP={topLeft:\"0 0\",topCenter:\"50% 0\",topRight:\"100% 0\",left:\"0 50%\",center:\"50% 50%\",right:\"100% 50%\",bottomLeft:\"0 100%\",bottomCenter:\"50% 100%\",bottomRight:\"100% 100%\"};/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n */export default function ShimmerGrid({color,hoverColor,hoverSize,hoverShape,patternPreset,flip,lineWidth,customPatternImage,customPatternSizing,tileSize,customPatternMode,customPatternPosition,dotSize,radius,smoothing,style}){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isCustom=patternPreset===\"custom\";const bgPosition=isCustom&&customPatternSizing!==\"stretch\"?POSITION_MAP[customPatternPosition]:POSITION_MAP.center;let bgImage=\"\";let bgSize=`${tileSize}px ${tileSize}px`;let bgRepeat=\"repeat\";switch(patternPreset){case\"grid\":bgImage=`repeating-conic-gradient(at ${lineWidth}px ${lineWidth}px, [color] 0deg 90deg, transparent 90deg 180deg, [color] 180deg 360deg)`;break;case\"checkerboard\":bgImage=flip?`repeating-conic-gradient([color] 0% 25%, transparent 0% 50%)`:`repeating-conic-gradient(transparent 0% 25%, [color] 0% 50%)`;break;case\"horizontalLines\":bgImage=`linear-gradient(to top, [color] ${lineWidth}px, transparent ${lineWidth}px)`;break;case\"verticalLines\":bgImage=`linear-gradient(to left, [color] ${lineWidth}px, transparent ${lineWidth}px)`;break;case\"diagonalLines\":const w=lineWidth/2;const sideLength=getSideLength(tileSize*2);bgImage=`linear-gradient(to top ${flip?\"left\":\"right\"}, [color] ${w}px, transparent ${w}px, transparent calc(50% - ${w}px), [color] calc(50% - ${w}px), [color] calc(50% + ${w}px), transparent calc(50% + ${w}px), transparent calc(100% - ${w}px), [color] calc(100% - ${w}px), [color] 100%)`;bgSize=`${sideLength}px ${sideLength}px`;break;case\"dots\":bgImage=`radial-gradient([color] ${dotSize/2-.4}px, transparent ${dotSize/2+.4}px)`;break;case\"triangles\":bgImage=`linear-gradient(${flip?-45:45}deg, transparent calc(50% - 0.1px), [color] calc(50% + 0.1px))`;break;case\"custom\":bgImage=`url(\"${customPatternImage?.src}\")`;if(customPatternSizing!==\"tile\"){bgRepeat=\"no-repeat\";bgSize=IMAGE_SIZING_MAP[customPatternSizing];}break;}let hoverStyle={};let hoverSizeValue=hoverSize;if(hoverShape===\"glow\"){const gradientPoints=[];for(let i=0;i<15;i++){const normalized=mapRange(i,0,14,0,1);gradientPoints.push(`rgba(255, 255, 255, ${ease(1-normalized)}) ${mapRange(i,0,14,0,100)}%`);}hoverStyle={maskImage:`radial-gradient(closest-side, ${gradientPoints.join(\", \")})`};hoverSizeValue=hoverSize*2;}else if(hoverShape===\"circle\"){hoverStyle={borderRadius:\"50%\"};}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",borderRadius:radius,overflow:\"hidden\",backgroundImage:isCustom?\"\":bgImage.replace(/\\[color\\]/g,color),backgroundSize:bgSize,backgroundPosition:bgPosition,backgroundRepeat:bgRepeat,...style},children:[isCustom&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,backgroundColor:color,maskImage:bgImage,maskSize:bgSize,maskPosition:bgPosition,maskRepeat:bgRepeat,maskMode:customPatternMode}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,maskImage:isCustom?bgImage:bgImage.replace(/\\[color\\]/g,\"white\"),maskSize:bgSize,maskPosition:bgPosition,maskRepeat:bgRepeat,maskMode:isCustom?customPatternMode:undefined,WebkitMaskImage:isCustom?bgImage:bgImage.replace(/\\[color\\]/g,\"white\"),WebkitMaskSize:bgSize,WebkitMaskPosition:bgPosition,WebkitMaskRepeat:bgRepeat,WebkitMaskMode:isCustom?customPatternMode:undefined},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:isCanvas?\"50%\":0,left:isCanvas?\"50%\":0,transform:isCanvas?\"translate(-50%, -50%)\":undefined,width:hoverSizeValue,height:hoverSizeValue,backgroundColor:hoverColor,...hoverStyle},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"contents\"},children:/*#__PURE__*/_jsx(FollowCursor,{enabled:true,smoothing:smoothing,horizontalAlignment:\"center\",verticalAlignment:\"center\"})})})})]});}ShimmerGrid.displayName=\"Shimmer Grid\";addPropertyControls(ShimmerGrid,{color:{type:ControlType.Color,defaultValue:\"rgba(153, 153, 153, 0.5)\"},hoverColor:{type:ControlType.Color,defaultValue:\"#FFF\"},hoverSize:{type:ControlType.Number,defaultValue:400,min:1,max:2e3,step:1},hoverShape:{type:ControlType.Enum,defaultValue:\"glow\",options:[\"glow\",\"circle\"],optionTitles:[\"Glow\",\"Circle\"],displaySegmentedControl:true,title:\"Shape\"},patternPreset:{type:ControlType.Enum,defaultValue:\"grid\",options:Object.values(Pattern),optionTitles:[\"Grid\",\"Checkerboard\",\"Horizontal Lines\",\"Vertical Lines\",\"Diagonal Lines\",\"Dots\",\"Triangles\",\"Custom\"],title:\"Pattern\"},customPatternImage:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:props=>props.patternPreset!==\"custom\"},customPatternSizing:{type:ControlType.Enum,defaultValue:\"tile\",options:[\"fill\",\"fit\",\"stretch\",\"tile\"],optionTitles:[\"Fill\",\"Fit\",\"Stretch\",\"Tile\"],title:\"Sizing\",hidden:props=>props.patternPreset!==\"custom\"},flip:{type:ControlType.Boolean,defaultValue:false,hidden:props=>props.patternPreset!==\"checkerboard\"&&props.patternPreset!==\"triangles\"&&props.patternPreset!==\"diagonalLines\"},lineWidth:{type:ControlType.Number,defaultValue:2,min:1,step:1,displayStepper:true,hidden:props=>props.patternPreset!==\"horizontalLines\"&&props.patternPreset!==\"verticalLines\"&&props.patternPreset!==\"diagonalLines\"&&props.patternPreset!==\"grid\"},tileSize:{type:ControlType.Number,defaultValue:50,min:1,step:1,hidden:props=>props.patternPreset===\"custom\"&&props.customPatternSizing!==\"tile\"},dotSize:{type:ControlType.Number,defaultValue:10,min:1,step:1,displayStepper:true,hidden:props=>props.patternPreset!==\"dots\"},customPatternPosition:{type:ControlType.Enum,defaultValue:\"center\",options:[\"topLeft\",\"topCenter\",\"topRight\",\"left\",\"center\",\"right\",\"bottomLeft\",\"bottomCenter\",\"bottomRight\"],optionTitles:[\"Top Left\",\"Top Center\",\"Top Right\",\"Left\",\"Center\",\"Right\",\"Bottom Left\",\"Bottom Center\",\"Bottom Right\"],title:\"Position\",hidden:props=>props.patternPreset!==\"custom\"||props.customPatternSizing===\"stretch\"},customPatternMode:{type:ControlType.Enum,defaultValue:\"alpha\",options:[\"alpha\",\"luminance\"],optionTitles:[\"Alpha\",\"Luminance\"],title:\"Mode\",hidden:props=>props.patternPreset!==\"custom\"},smoothing:{type:ControlType.Number,defaultValue:0,min:0,max:100,step:1},radius:{type:ControlType.BorderRadius,defaultValue:\"0px\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});function getSideLength(hypotenuseLength){// Check if input is a valid number\nif(typeof hypotenuseLength!==\"number\"||isNaN(hypotenuseLength)||hypotenuseLength<=0){return hypotenuseLength;}// Calculate the side length using the Pythagorean theorem\n// In a right isosceles triangle: side² + side² = hypotenuse²\n// So, side² = hypotenuse² / 2\nconst sideLength=Math.sqrt(Math.pow(hypotenuseLength,2)/2);// Round the result to 2 decimal places\nreturn Number(sideLength.toFixed(2));}function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShimmerGrid\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShimmerGrid_Prod.map"],"mappings":"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"}