{"version":3,"file":"shared-lib.DMFcH51I.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/4BJFX5R9eVkyKKtsAxzX/iAiTmobBSWc12MoMUlZ8/HalftoneBackground.js","https:/framerusercontent.com/modules/kDWTM4HnXWppahqHWMVO/EBbrhJHz0vpu2rAIYOrh/siteMetadata.js"],"sourcesContent":["// Instructions: Use @framerDisableUnlink to avoid users from unlinking the component\n// Halftone animating background component with full customization\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function HalftoneBackground(props){const{dotColor=\"#000000\",backgroundColor=\"#FFFFFF\",dotSize=4,spacing=20,animationSpeed=1,animationType=\"wave\",intensity=50,pattern=\"grid\",animationDirection=\"outward\",easing=\"linear\",animationEnabled=true}=props;const canvasRef=useRef(null);const animationFrameRef=useRef();const timeRef=useRef(0);const isStatic=useIsStaticRenderer();const dotPositionsRef=useRef([]);// Helper function to resolve color values (handles CSS variables and color styles)\nconst resolveColor=color=>{if(typeof window===\"undefined\")return color;// Create a temporary element to resolve the color\nconst temp=document.createElement(\"div\");temp.style.color=color;document.body.appendChild(temp);const resolvedColor=window.getComputedStyle(temp).color;document.body.removeChild(temp);return resolvedColor||color;};useEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;const dpr=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;const rect=canvas.getBoundingClientRect();canvas.width=rect.width*dpr;canvas.height=rect.height*dpr;ctx.scale(dpr,dpr);const cols=Math.ceil(rect.width/spacing)+2;const rows=Math.ceil(rect.height/spacing)+2;// Calculate dot positions once for random pattern\nif(pattern===\"random\"){dotPositionsRef.current=[];for(let i=0;i<cols;i++){for(let j=0;j<rows;j++){const x=i*spacing+(Math.random()-.5)*spacing*.3;const y=j*spacing+(Math.random()-.5)*spacing*.3;dotPositionsRef.current.push({x,y});}}}else if(pattern===\"circles\"){dotPositionsRef.current=[];const centerX=rect.width/2;const centerY=rect.height/2;const maxRadius=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));const numCircles=Math.ceil(maxRadius/spacing);for(let circle=1;circle<=numCircles;circle++){const radius=circle*spacing;const circumference=2*Math.PI*radius;const dotsInCircle=Math.max(8,Math.floor(circumference/spacing));for(let i=0;i<dotsInCircle;i++){const angle=i/dotsInCircle*Math.PI*2;const x=centerX+Math.cos(angle)*radius;const y=centerY+Math.sin(angle)*radius;dotPositionsRef.current.push({x,y});}}}else if(pattern===\"spiral\"){dotPositionsRef.current=[];const centerX=rect.width/2;const centerY=rect.height/2;const maxRadius=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));const totalDots=cols*rows;const spiralTightness=.5;for(let i=0;i<totalDots;i++){const angle=i*spiralTightness;const radius=i/totalDots*maxRadius;const x=centerX+Math.cos(angle)*radius;const y=centerY+Math.sin(angle)*radius;dotPositionsRef.current.push({x,y});}}const draw=()=>{// Resolve colors before using them\nconst resolvedBgColor=resolveColor(backgroundColor);const resolvedDotColor=resolveColor(dotColor);// Clear the canvas completely first\nctx.clearRect(0,0,rect.width,rect.height);// Then fill with background color (respects opacity)\nctx.fillStyle=resolvedBgColor;ctx.fillRect(0,0,rect.width,rect.height);// Easing functions\nconst applyEasing=t=>{switch(easing){case\"easeIn\":return t*t;case\"easeOut\":return t*(2-t);case\"easeInOut\":return t<.5?2*t*t:-1+(4-2*t)*t;case\"linear\":default:return t;}};let dotIndex=0;// Handle special patterns that use pre-calculated positions\nif(pattern===\"random\"||pattern===\"circles\"||pattern===\"spiral\"){dotPositionsRef.current.forEach(pos=>{let size=dotSize;const normalizedIntensity=intensity/100;if(!isStatic&&animationType!==\"none\"){const time=timeRef.current*animationSpeed*.001;switch(animationType){case\"wave\":{let distance;switch(animationDirection){case\"inward\":{const maxDistance=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));distance=maxDistance-Math.sqrt(Math.pow(pos.x-rect.width/2,2)+Math.pow(pos.y-rect.height/2,2));break;}case\"outward\":{distance=Math.sqrt(Math.pow(pos.x-rect.width/2,2)+Math.pow(pos.y-rect.height/2,2));break;}case\"left\":{distance=rect.width-pos.x;break;}case\"right\":{distance=pos.x;break;}case\"up\":{distance=rect.height-pos.y;break;}case\"down\":{distance=pos.y;break;}default:distance=Math.sqrt(Math.pow(pos.x-rect.width/2,2)+Math.pow(pos.y-rect.height/2,2));}const rawWave=Math.sin(distance*.02-time*2);const normalizedWave=(rawWave+1)/2// 0 to 1\n;const easedWave=applyEasing(normalizedWave);const wave=(easedWave*2-1)*normalizedIntensity// -1 to 1\n;size=dotSize+wave*dotSize;break;}case\"pulse\":{const rawPulse=Math.sin(time*2);const normalizedPulse=(rawPulse+1)/2;const easedPulse=applyEasing(normalizedPulse);const pulse=(easedPulse*2-1)*normalizedIntensity;size=dotSize+pulse*dotSize;break;}case\"rotate\":{const angle=Math.atan2(pos.y-rect.height/2,pos.x-rect.width/2);const rawRotation=Math.sin(angle*3+time*2);const normalizedRotation=(rawRotation+1)/2;const easedRotation=applyEasing(normalizedRotation);const rotation=(easedRotation*2-1)*normalizedIntensity;size=dotSize+rotation*dotSize;break;}case\"zoom\":{const distance=Math.sqrt(Math.pow(pos.x-rect.width/2,2)+Math.pow(pos.y-rect.height/2,2));const maxDistance=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));const normalizedDistance=distance/maxDistance;const rawZoom=Math.sin(normalizedDistance*Math.PI*2-time*2);const normalizedZoom=(rawZoom+1)/2;const easedZoom=applyEasing(normalizedZoom);const zoom=(easedZoom*2-1)*normalizedIntensity;size=dotSize+zoom*dotSize;break;}}}size=Math.max(.5,size);ctx.fillStyle=resolvedDotColor;ctx.beginPath();ctx.arc(pos.x,pos.y,size/2,0,Math.PI*2);ctx.fill();});}else{// Handle grid and hexagon patterns\nfor(let i=0;i<cols;i++){for(let j=0;j<rows;j++){let x=i*spacing;let y=j*spacing;if(pattern===\"hexagon\"&&j%2===1){x+=spacing/2;}let size=dotSize;const normalizedIntensity=intensity/100;if(!isStatic&&animationType!==\"none\"){const time=timeRef.current*animationSpeed*.001;switch(animationType){case\"wave\":{let distance;switch(animationDirection){case\"inward\":{const maxDistance=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));distance=maxDistance-Math.sqrt(Math.pow(x-rect.width/2,2)+Math.pow(y-rect.height/2,2));break;}case\"outward\":{distance=Math.sqrt(Math.pow(x-rect.width/2,2)+Math.pow(y-rect.height/2,2));break;}case\"left\":{distance=rect.width-x;break;}case\"right\":{distance=x;break;}case\"up\":{distance=rect.height-y;break;}case\"down\":{distance=y;break;}default:distance=Math.sqrt(Math.pow(x-rect.width/2,2)+Math.pow(y-rect.height/2,2));}const rawWave=Math.sin(distance*.02-time*2);const normalizedWave=(rawWave+1)/2;const easedWave=applyEasing(normalizedWave);const wave=(easedWave*2-1)*normalizedIntensity;size=dotSize+wave*dotSize;break;}case\"pulse\":{const rawPulse=Math.sin(time*2);const normalizedPulse=(rawPulse+1)/2;const easedPulse=applyEasing(normalizedPulse);const pulse=(easedPulse*2-1)*normalizedIntensity;size=dotSize+pulse*dotSize;break;}case\"rotate\":{const angle=Math.atan2(y-rect.height/2,x-rect.width/2);const rawRotation=Math.sin(angle*3+time*2);const normalizedRotation=(rawRotation+1)/2;const easedRotation=applyEasing(normalizedRotation);const rotation=(easedRotation*2-1)*normalizedIntensity;size=dotSize+rotation*dotSize;break;}case\"zoom\":{const distance=Math.sqrt(Math.pow(x-rect.width/2,2)+Math.pow(y-rect.height/2,2));const maxDistance=Math.sqrt(Math.pow(rect.width/2,2)+Math.pow(rect.height/2,2));const normalizedDistance=distance/maxDistance;const rawZoom=Math.sin(normalizedDistance*Math.PI*2-time*2);const normalizedZoom=(rawZoom+1)/2;const easedZoom=applyEasing(normalizedZoom);const zoom=(easedZoom*2-1)*normalizedIntensity;size=dotSize+zoom*dotSize;break;}}}size=Math.max(.5,size);ctx.fillStyle=resolvedDotColor;ctx.beginPath();ctx.arc(x,y,size/2,0,Math.PI*2);ctx.fill();}}}ctx.filter=\"none\";};const animate=timestamp=>{if(!isStatic&&animationType!==\"none\"&&animationEnabled){timeRef.current=timestamp;draw();animationFrameRef.current=requestAnimationFrame(animate);}else{draw();}};if(isStatic||animationType===\"none\"||!animationEnabled){draw();}else{animationFrameRef.current=requestAnimationFrame(animate);}return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}};},[dotColor,backgroundColor,dotSize,spacing,animationSpeed,animationType,intensity,pattern,animationDirection,easing,isStatic,animationEnabled]);return /*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}});}addPropertyControls(HalftoneBackground,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},dotColor:{type:ControlType.Color,title:\"Dot Color\",defaultValue:\"#000000\"},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:4,min:1,max:20,step:.5},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:20,min:5,max:100,step:1},pattern:{type:ControlType.Enum,title:\"Pattern\",options:[\"grid\",\"hexagon\",\"random\",\"circles\",\"spiral\"],optionTitles:[\"Grid\",\"Hexagon\",\"Random\",\"Circles\",\"Spiral\"],defaultValue:\"grid\"},animationEnabled:{type:ControlType.Boolean,title:\"Animation\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},animationType:{type:ControlType.Enum,title:\"Type\",options:[\"wave\",\"pulse\",\"rotate\",\"zoom\",\"none\"],optionTitles:[\"Wave\",\"Pulse\",\"Rotate\",\"Zoom\",\"None\"],defaultValue:\"wave\",hidden:({animationEnabled})=>!animationEnabled},animationDirection:{type:ControlType.Enum,title:\"Direction\",options:[\"inward\",\"outward\",\"left\",\"right\",\"up\",\"down\"],optionTitles:[\"Inward\",\"Outward\",\"Left\",\"Right\",\"Up\",\"Down\"],defaultValue:\"outward\",hidden:({animationType,animationEnabled})=>!animationEnabled||animationType===\"none\"||animationType===\"pulse\"},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In-Out\"],defaultValue:\"linear\",hidden:({animationType,animationEnabled})=>!animationEnabled||animationType===\"none\"},animationSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.1,max:5,step:.1,hidden:({animationEnabled})=>!animationEnabled},intensity:{type:ControlType.Number,title:\"Intensity\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",hidden:({animationEnabled})=>!animationEnabled,description:\"Get more components at [@yahya](https://dub.sh/components)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HalftoneBackground\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HalftoneBackground.map","// Generated by Framer (f36d8c8)\nexport default function metadata(params,activeLocale){return{description:\"Glif is a framer Template made for startups, saas products and AI companies. it's an all in one solution with design, assets, pages and visual style needed to launch fast.\",favicon:\"https://framerusercontent.com/assets/3PMIN4w2tgnJFxUTRtJJIybOM.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/6oYIAFCEg3Ej4QKwunopU8P7JQ.png\",title:\"Glif - A Saas Framer Template Kit\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}