{"version":3,"file":"Gtq7WiNBf.DL9n-ryQ.mjs","names":["e","t","n","o","i","s","u","d","r","c","p","l","x","h","m","Tag","x","Component","FontFaceObserver","e","className","css"],"sources":["https:/cdn.jsdelivr.net/gh/framer-university/components/npm-bundles/font-face-observer.js","https:/framerusercontent.com/modules/5ZuH7xaTyFIptP1xd86A/wIMKYHCyMURENymRUzoa/MagicTextReveal_Prod.js","https:/framerusercontent.com/modules/DYpsdHur3AMInuF8ucDt/KxZNBOTWsq9S5JejlzhO/Gtq7WiNBf.js"],"sourcesContent":["function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var t,n={exports:{}};var i,o=e((t||(t=1,i=n,function(){function e(e,t){document.addEventListener?e.addEventListener(\"scroll\",t,!1):e.attachEvent(\"scroll\",t)}function t(e){this.g=document.createElement(\"div\"),this.g.setAttribute(\"aria-hidden\",\"true\"),this.g.appendChild(document.createTextNode(e)),this.h=document.createElement(\"span\"),this.i=document.createElement(\"span\"),this.m=document.createElement(\"span\"),this.j=document.createElement(\"span\"),this.l=-1,this.h.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\",this.i.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\",this.j.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\",this.m.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\",this.h.appendChild(this.m),this.i.appendChild(this.j),this.g.appendChild(this.h),this.g.appendChild(this.i)}function n(e,t){e.g.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+t+\";\"}function o(e){var t=e.g.offsetWidth,n=t+100;return e.j.style.width=n+\"px\",e.i.scrollLeft=n,e.h.scrollLeft=e.h.scrollWidth+100,e.l!==t&&(e.l=t,!0)}function s(t,n){function i(){var e=s;o(e)&&null!==e.g.parentNode&&n(e.l)}var s=t;e(t.h,i),e(t.i,i),o(t)}function d(e,t,n){t=t||{},n=n||window,this.family=e,this.style=t.style||\"normal\",this.weight=t.weight||\"normal\",this.stretch=t.stretch||\"normal\",this.context=n}var a=null,l=null,r=null,c=null;function h(e){return null===c&&(c=!!e.document.fonts),c}function u(e,t){var n=e.style,i=e.weight;if(null===r){var o=document.createElement(\"div\");try{o.style.font=\"condensed 100px sans-serif\"}catch(e){}r=\"\"!==o.style.font}return[n,i,r?e.stretch:\"\",\"100px\",t].join(\" \")}d.prototype.load=function(e,i){var o=this,d=e||\"BESbswy\",r=0,c=i||3e3,f=(new Date).getTime();return new Promise((function(e,i){if(h(o.context)&&!function(e){return null===l&&(h(e)&&/Apple/.test(window.navigator.vendor)?(e=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent),l=!!e&&603>parseInt(e[1],10)):l=!1),l}(o.context)){var p=new Promise((function(e,t){!function n(){(new Date).getTime()-f>=c?t(Error(c+\"ms timeout exceeded\")):o.context.document.fonts.load(u(o,'\"'+o.family+'\"'),d).then((function(t){1<=t.length?e():setTimeout(n,25)}),t)}()})),m=new Promise((function(e,t){r=setTimeout((function(){t(Error(c+\"ms timeout exceeded\"))}),c)}));Promise.race([m,p]).then((function(){clearTimeout(r),e(o)}),i)}else!function(e){document.body?e():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",(function t(){document.removeEventListener(\"DOMContentLoaded\",t),e()})):document.attachEvent(\"onreadystatechange\",(function t(){\"interactive\"!=document.readyState&&\"complete\"!=document.readyState||(document.detachEvent(\"onreadystatechange\",t),e())}))}((function(){function l(){var t;(t=-1!=w&&-1!=g||-1!=w&&-1!=v||-1!=g&&-1!=v)&&((t=w!=g&&w!=v&&g!=v)||(null===a&&(t=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),a=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10))),t=a&&(w==x&&g==x&&v==x||w==y&&g==y&&v==y||w==E&&g==E&&v==E)),t=!t),t&&(null!==b.parentNode&&b.parentNode.removeChild(b),clearTimeout(r),e(o))}var h=new t(d),p=new t(d),m=new t(d),w=-1,g=-1,v=-1,x=-1,y=-1,E=-1,b=document.createElement(\"div\");b.dir=\"ltr\",n(h,u(o,\"sans-serif\")),n(p,u(o,\"serif\")),n(m,u(o,\"monospace\")),b.appendChild(h.g),b.appendChild(p.g),b.appendChild(m.g),o.context.document.body.appendChild(b),x=h.g.offsetWidth,y=p.g.offsetWidth,E=m.g.offsetWidth,function e(){if((new Date).getTime()-f>=c)null!==b.parentNode&&b.parentNode.removeChild(b),i(Error(c+\"ms timeout exceeded\"));else{var t=o.context.document.hidden;!0!==t&&void 0!==t||(w=h.g.offsetWidth,g=p.g.offsetWidth,v=m.g.offsetWidth,l()),r=setTimeout(e,50)}}(),s(h,(function(e){w=e,l()})),n(h,u(o,'\"'+o.family+'\",sans-serif')),s(p,(function(e){g=e,l()})),n(p,u(o,'\"'+o.family+'\",serif')),s(m,(function(e){v=e,l()})),n(m,u(o,'\"'+o.family+'\",monospace'))}))}))},i.exports=d}()),n.exports));export{o as FontFaceObserver};\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType,addPropertyControls,RenderTarget}from\"framer\";import{useEffect,useMemo,useRef,useState,useCallback}from\"react\";import{motion}from\"framer-motion\";import{useInView}from\"framer-motion\";// import FontFaceObserver from \"fontfaceobserver\";\nimport{FontFaceObserver}from\"https://cdn.jsdelivr.net/gh/framer-university/components/npm-bundles/font-face-observer.js\";var Tag;(function(Tag){Tag[\"H1\"]=\"h1\";Tag[\"H2\"]=\"h2\";Tag[\"H3\"]=\"h3\";Tag[\"P\"]=\"p\";})(Tag||(Tag={}));// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(MagicTextReveal,{text:{type:ControlType.String},color:{type:ControlType.Color,defaultValue:\"rgba(153, 153, 153, 1)\"},font:{type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\"},spread:{type:ControlType.Number,defaultValue:50,min:1,max:100,step:1,unit:\"x\"},speed:{type:ControlType.Number,defaultValue:.5,min:.1,max:3,step:.1,unit:\"x\"},density:{type:ControlType.Number,defaultValue:4,min:1,max:4,step:1,unit:\"x\",displayStepper:true},resetOnMouseLeave:{type:ControlType.Boolean,defaultValue:true,title:\"Repeat\"},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"]},selectable:{type:ControlType.Boolean,defaultValue:true,title:\"Selectable\"},yPosition:{type:ControlType.Enum,title:\"Y Position\",defaultValue:\"auto\",options:[\"auto\",\"manual\"],optionTitles:[\"Auto\",\"Manual\"],displaySegmentedControl:true,description:\"Use manual if hovered text doesn't line up.\"},yPositionValue:{type:ControlType.Number,title:\" \",defaultValue:0,min:-50,max:50,step:.5,unit:\"px\",hidden:props=>props.yPosition===\"auto\"},canvasPreview:{type:ControlType.Boolean,defaultValue:true,title:\"Preview\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});// ------------------------------------------------------------ //\n// DEFAULT PROPS\n// ------------------------------------------------------------ //\nMagicTextReveal.defaultProps={text:\"Framer University\",color:\"rgba(153, 153, 153, 1)\",font:{fontFamily:\"sans-serif\",fontSize:\"50px\",textAlign:\"center\",fontWeight:400},spread:50,speed:.5,density:4,resetOnMouseLeave:true,tag:\"p\",selectable:true,yPosition:\"auto\",yPositionValue:0,canvasPreview:true};// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n */export default function MagicTextReveal(props){const isOnFramerCanvas=RenderTarget.hasRestrictions();const canvasRef=useRef(null);const wrapperRef=useRef(null);const lastFontRef=useRef(null);const particlesRef=useRef([]);const animationFrameRef=useRef(null);const lastTimeRef=useRef(performance.now());const[fontLoaded,setFontLoaded]=useState(false);const[isHovered,setIsHovered]=useState(false);const[showText,setShowText]=useState(false);const[hasBeenShown,setHasBeenShown]=useState(false);const transformedDensity=6-props.density;const color=useMemo(()=>parseFramerColor(props.color),[props.color]);const isInView=useInView(wrapperRef);const{wrapperSize,setWrapperSize}=useWrapperSize();// Memoize global DPR calculation\nconst globalDpr=useMemo(()=>{if(isOnFramerCanvas)return 2;if(typeof window!==\"undefined\")return window.devicePixelRatio*1.5||1;return 1;},[isOnFramerCanvas]);const tranformedCanvasY=useMemo(()=>{return transformValue(parseInt(props.font.fontSize?.replace(\"px\",\"\")||\"50\"),[0,100],[0,5],true);},[props.font.fontSize]);const transformedY=props.yPosition===\"auto\"?tranformedCanvasY:props.yPositionValue;// Add font loading effect\nuseEffect(()=>{if(!props.font.fontFamily||isOnFramerCanvas)return;const loadFont=async()=>{await waitForFont(props.font.fontFamily);setFontLoaded(true);};loadFont();},[props.font.fontFamily,isOnFramerCanvas]);// Modify canvas rendering effect to depend on fontLoaded\nuseEffect(()=>{if(isOnFramerCanvas&&!props.canvasPreview)return;if(!isInView)return;if(!fontLoaded&&!isOnFramerCanvas)return;// Don't render until font is loaded on live sites\nrenderCanvas({canvasRef,wrapperRef,globalDpr,props,wrapperSize,particlesRef,transformedDensity,color});},[fontLoaded,isInView,isOnFramerCanvas,props.canvasPreview,props,wrapperSize,color]);// Animation loop with optimized dependencies\nuseEffect(()=>{if(isOnFramerCanvas&&!props.canvasPreview)return;if(!isInView)return;const animate=currentTime=>{const deltaTime=(currentTime-lastTimeRef.current)/1e3;lastTimeRef.current=currentTime;const canvas=canvasRef.current;const ctx=canvas?.getContext(\"2d\");if(!canvas||!ctx||!particlesRef.current.length){animationFrameRef.current=requestAnimationFrame(animate);return;}ctx.clearRect(0,0,canvas.width,canvas.height);updateParticles(particlesRef.current,deltaTime,isHovered,showText,setShowText,props.spread,props.speed);renderParticles(ctx,particlesRef.current,globalDpr);animationFrameRef.current=requestAnimationFrame(animate);};animationFrameRef.current=requestAnimationFrame(animate);return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}};},[isInView,isOnFramerCanvas,props.canvasPreview,props.spread,props.speed,globalDpr,isHovered]);// Memoize event handlers\nconst handleMouseEnter=useCallback(()=>{setIsHovered(true);setHasBeenShown(true);},[]);const handleMouseLeave=useCallback(()=>{if(props.resetOnMouseLeave||!hasBeenShown){setIsHovered(false);}},[props.resetOnMouseLeave,hasBeenShown]);useEffect(()=>{renderCanvas({canvasRef,wrapperRef,globalDpr,props,wrapperSize,particlesRef,transformedDensity,color});const currentFont=props.font.fontFamily||\"sans-serif\";return handleFontChange({currentFont,lastFontRef,isOnFramerCanvas,props,canvasRef,wrapperRef,globalDpr,wrapperSize,particlesRef,transformedDensity,color});},[props,canvasRef,wrapperRef,globalDpr,wrapperSize]);useResizeObserver({wrapperRef,wrapperSize,setWrapperSize,props,canvasRef,isOnFramerCanvas,globalDpr,particlesRef,transformedDensity,color});return /*#__PURE__*/_jsxs(\"div\",{ref:wrapperRef,style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",position:\"relative\"},onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:[renderAnimatedTag(props,color,showText),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",transform:`translateY(${transformedY}px)`}})]});}// ------------------------------------------------------------ //\n// RENDER CANVAS\n// ------------------------------------------------------------ //\nconst renderCanvas=({canvasRef,wrapperRef,globalDpr,props,wrapperSize,particlesRef,transformedDensity,color})=>{if(!wrapperRef.current||!canvasRef.current||!wrapperSize.width||!wrapperSize.height)return;const canvas=canvasRef.current;const{width,height}=wrapperSize;canvas.width=width*globalDpr;canvas.height=height*globalDpr;canvas.style.width=`${width}px`;canvas.style.height=`${height}px`;const ctx=canvas.getContext(\"2d\");if(!ctx)return;// Calculate text position\nconst textX=canvas.width/2;const textY=canvas.height/2;// Parse font size and create font string\nconst formattedFontFamily=formatFontFamilies(props.font.fontFamily);const fontSize=parseInt(props.font.fontSize?.replace(\"px\",\"\")||\"50\");const font=`${props.font.fontWeight??400} ${fontSize*globalDpr}px ${formattedFontFamily}`;// Create particles from text\nconst particles=createParticles(ctx,canvas,props.text,textX,textY,font,color,\"center\",transformedDensity,props.font.letterSpacing||\"0px\");// Store particles for later use\nparticlesRef.current=particles;// Render particles\nrenderParticles(ctx,particles,globalDpr);};// ------------------------------------------------------------ //\n// PARTICLE SYSTEM\n// ------------------------------------------------------------ //\nconst createParticles=(ctx,canvas,text,textX,textY,font,color,alignment,transformedDensity,letterSpacing)=>{const particles=[];// Clear canvas\nctx.clearRect(0,0,canvas.width,canvas.height);// Set text properties\nctx.fillStyle=color;ctx.font=font;ctx.textAlign=alignment;ctx.letterSpacing=letterSpacing;ctx.textBaseline=\"middle\";// Remove unnecessary ctx settings that don't significantly impact quality\nctx.imageSmoothingEnabled=true;// Render text for sampling\nctx.fillText(text,textX,textY);// Sample the rendered text\nconst imageData=ctx.getImageData(0,0,canvas.width,canvas.height);const data=imageData.data;// Calculate sampling rate based on DPR\nconst currentDPR=canvas.width/parseInt(canvas.style.width);// Increase base sampling rate to reduce particles\nconst baseSampleRate=Math.max(2,Math.round(currentDPR));const sampleRate=baseSampleRate*transformedDensity;// Calculate text bounds to determine spread area\nlet minX=canvas.width;let maxX=0;let minY=canvas.height;let maxY=0;// First pass: find text bounds\nfor(let y=0;y<canvas.height;y+=sampleRate){for(let x=0;x<canvas.width;x+=sampleRate){const index=(y*canvas.width+x)*4;const alpha=data[index+3];if(alpha>0){minX=Math.min(minX,x);maxX=Math.max(maxX,x);minY=Math.min(minY,y);maxY=Math.max(maxY,y);}}}// Calculate spread area\nconst textWidth=maxX-minX;const textHeight=maxY-minY;const spreadRadius=Math.max(textWidth,textHeight)*.1;// Second pass: create particles with random initial positions\nfor(let y=0;y<canvas.height;y+=sampleRate){for(let x=0;x<canvas.width;x+=sampleRate){const index=(y*canvas.width+x)*4;const alpha=data[index+3];if(alpha>0){const originalAlpha=alpha/255;// Calculate random initial position within spread radius\nconst angle=Math.random()*Math.PI*2;const distance=Math.random()*spreadRadius;const initialX=x+Math.cos(angle)*distance;const initialY=y+Math.sin(angle)*distance;const particle={x:initialX,y:initialY,originalX:x,originalY:y,color:`rgba(${data[index]}, ${data[index+1]}, ${data[index+2]}, ${originalAlpha})`,opacity:originalAlpha*.3,originalAlpha,velocityX:0,velocityY:0,angle:Math.random()*Math.PI*2,speed:0,floatingOffsetX:0,floatingOffsetY:0,floatingSpeed:Math.random()*2+1,floatingAngle:Math.random()*Math.PI*2,targetOpacity:Math.random()*originalAlpha*.5,sparkleSpeed:Math.random()*2+1};particles.push(particle);}}}// Clear canvas after sampling\nctx.clearRect(0,0,canvas.width,canvas.height);return particles;};const updateParticles=(particles,deltaTime,isHovered,showText,setShowText,spread,speed)=>{const FLOAT_RADIUS=spread;const RETURN_SPEED=3// Speed at which particles return to their original position\n;const FLOAT_SPEED=speed;const TRANSITION_SPEED=5*FLOAT_SPEED// Scale transition speed by FLOAT_SPEED\n;const NOISE_SCALE=.6// Scale of the random movement\n;const CHAOS_FACTOR=1.3// Additional randomness factor\n;const FADE_SPEED=5// Speed at which particles fade out when hovered\n;particles.forEach(particle=>{if(isHovered){// When hovered, gradually return to original position\nconst dx=particle.originalX-particle.x;const dy=particle.originalY-particle.y;const distance=Math.sqrt(dx*dx+dy*dy);if(distance>.1){particle.x+=dx/distance*RETURN_SPEED*deltaTime*60;particle.y+=dy/distance*RETURN_SPEED*deltaTime*60;}else{particle.x=particle.originalX;particle.y=particle.originalY;}// Fade out particles when hovered\nparticle.opacity=Math.max(0,particle.opacity-FADE_SPEED*deltaTime);}else{// Update particle's unique movement pattern\nparticle.floatingAngle+=deltaTime*particle.floatingSpeed*(1+Math.random()*CHAOS_FACTOR);// Generate base movement using improved noise\nconst time=Date.now()*.001;const uniqueOffset=particle.floatingSpeed*2e3// Make each particle's pattern unique\n;const noiseX=(Math.sin(time*particle.floatingSpeed+particle.floatingAngle)*1.2+Math.sin((time+uniqueOffset)*.5)*.8+(Math.random()-.5)*CHAOS_FACTOR)*NOISE_SCALE;const noiseY=(Math.cos(time*particle.floatingSpeed+particle.floatingAngle*1.5)*.6+Math.cos((time+uniqueOffset)*.5)*.4+(Math.random()-.5)*CHAOS_FACTOR)*NOISE_SCALE;// Calculate target position with random offset\nconst randomOffsetX=FLOAT_RADIUS*noiseX;const randomOffsetY=FLOAT_RADIUS*noiseY;const targetX=particle.originalX+randomOffsetX;const targetY=particle.originalY+randomOffsetY;// Smooth movement towards target with variable speed\nconst dx=targetX-particle.x;const dy=targetY-particle.y;// Add dynamic jitter based on distance\nconst distanceFromTarget=Math.sqrt(dx*dx+dy*dy);const jitterScale=Math.min(1,distanceFromTarget/(FLOAT_RADIUS*1.5));const jitterX=(Math.random()-.5)*FLOAT_SPEED*jitterScale;const jitterY=(Math.random()-.5)*FLOAT_SPEED*jitterScale;particle.x+=dx*TRANSITION_SPEED*deltaTime+jitterX;particle.y+=dy*TRANSITION_SPEED*deltaTime+jitterY;// Contain particles within bounds with soft boundary\nconst distanceFromOrigin=Math.sqrt(Math.pow(particle.x-particle.originalX,2)+Math.pow(particle.y-particle.originalY,2));if(distanceFromOrigin>FLOAT_RADIUS){const angle=Math.atan2(particle.y-particle.originalY,particle.x-particle.originalX);const pullBack=(distanceFromOrigin-FLOAT_RADIUS)*.1// Soft boundary\n;particle.x-=Math.cos(angle)*pullBack;particle.y-=Math.sin(angle)*pullBack;}// Enhanced continuous sparkling effect\nconst opacityDiff=particle.targetOpacity-particle.opacity;particle.opacity+=opacityDiff*particle.sparkleSpeed*deltaTime*3;// When particle reaches its target opacity, set a new random target\nif(Math.abs(opacityDiff)<.01){// Randomly choose between very low opacity and full opacity\nparticle.targetOpacity=Math.random()<.5?Math.random()*.1*particle.originalAlpha// Very faint\n:particle.originalAlpha*3// Full brightness\n;// Randomize the sparkle speed each time\nparticle.sparkleSpeed=Math.random()*3+1;}}});if(isHovered&&!showText){setShowText(true);}if(!isHovered&&showText){setShowText(false);}};const renderParticles=(ctx,particles,globalDpr)=>{ctx.save();ctx.scale(globalDpr,globalDpr);// Batch similar colored particles together\nconst particlesByColor=new Map;particles.forEach(particle=>{if(particle.opacity<=0)return;const color=particle.color.replace(/[\\d.]+\\)$/,`${particle.opacity})`);if(!particlesByColor.has(color)){particlesByColor.set(color,[]);}particlesByColor.get(color).push({x:particle.x/globalDpr,y:particle.y/globalDpr});});// Render particles in batches by color\nparticlesByColor.forEach((positions,color)=>{ctx.fillStyle=color;positions.forEach(({x,y})=>{ctx.fillRect(x,y,1,1);});});ctx.restore();};// ------------------------------------------------------------ //\n// FONT HANDLING\n// ------------------------------------------------------------ //\nconst handleFontChange=({currentFont,lastFontRef,isOnFramerCanvas,props,canvasRef,wrapperRef,globalDpr,wrapperSize,particlesRef,transformedDensity,color})=>{if(currentFont!==lastFontRef.current&&isOnFramerCanvas){lastFontRef.current=currentFont;// Re-render after 1 second to catch the loaded font\nconst timeoutId=setTimeout(()=>{cleanup({canvasRef,particlesRef})// Clean up before re-rendering\n;renderCanvas({canvasRef,wrapperRef,globalDpr,props,wrapperSize,particlesRef,transformedDensity,color});},1e3);return()=>{clearTimeout(timeoutId);cleanup({canvasRef,particlesRef});};}};// ------------------------------------------------------------ //\n// CLEANUP\n// ------------------------------------------------------------ //\nconst cleanup=({canvasRef,particlesRef})=>{// Clear canvas\nconst canvas=canvasRef.current;const ctx=canvas?.getContext(\"2d\");if(canvas&&ctx){ctx.clearRect(0,0,canvas.width,canvas.height);}// Clear particles\nif(particlesRef.current){particlesRef.current=[];}};// ------------------------------------------------------------ //\n// WRAPPER SIZE\n// ------------------------------------------------------------ //\nconst useWrapperSize=()=>{const wrapperRef=useRef(null);const[wrapperSize,setWrapperSize]=useState({width:null,height:null});useEffect(()=>{if(wrapperRef.current){const rect=wrapperRef.current.getBoundingClientRect();setWrapperSize({width:rect.width,height:rect.height});}},[wrapperRef]);return{wrapperSize,setWrapperSize,wrapperRef};};// ------------------------------------------------------------ //\n// USE RESIZE OBSERVER\n// ------------------------------------------------------------ //\nconst useResizeObserver=({wrapperRef,wrapperSize,setWrapperSize,props,canvasRef,isOnFramerCanvas,globalDpr,particlesRef,transformedDensity,color})=>{useEffect(()=>{const container=wrapperRef.current;if(!container)return;const resizeObserver=new ResizeObserver(entries=>{for(const entry of entries){const{width,height}=entry.contentRect;setWrapperSize({width,height});}renderCanvas({canvasRef,wrapperRef,globalDpr,props,wrapperSize,particlesRef,transformedDensity,color});});resizeObserver.observe(container);return()=>{resizeObserver.disconnect();};},[wrapperRef]);};// ------------------------------------------------------------ //\n// PARSE FRAMER COLOR\n// ------------------------------------------------------------ //\n/**\n * Extracts RGB/RGBA values from a Framer color string format\n * @param color - Framer color string (e.g. \"var(--token-xxx, rgb(12, 250, 163)) /* {\"name\":\"green\"}\n * @returns Valid RGBA color string\n */const parseFramerColor=color=>{// Try to match rgb/rgba pattern inside var() or directly\nconst rgbMatch=color.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);const rgbaMatch=color.match(/rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([\\d.]+)\\)/);if(rgbaMatch){// If RGBA format\nconst[_,r,g,b,a]=rgbaMatch;return`rgba(${r}, ${g}, ${b}, ${a})`;}else if(rgbMatch){// If RGB format\nconst[_,r,g,b]=rgbMatch;return`rgba(${r}, ${g}, ${b}, 1)`;}// Fallback to black if parsing fails\nconsole.warn(\"Could not parse color:\",color);return\"rgba(0, 0, 0, 1)\";};/**\n * Formats font families for canvas context font property\n * Removes any existing quotes and ensures proper comma separation\n */const formatFontFamilies=(fontFamilyString=\"sans-serif\")=>{// Split the font families by comma and trim whitespace\n// + append sans-serif\nreturn fontFamilyString+\", sans-serif\".split(\",\").map(font=>{// Remove any existing quotes and trim whitespace\nreturn font.trim().replace(/['\"]/g,\"\");}).join(\", \");};/**\n * Maps a value from one range to another, optionally clamping the result.\n *\n * @param input - The value to transform.\n * @param inputRange - A tuple of two numbers [from, to] defining the input range.\n * @param outputRange - A tuple of two numbers [from, to] defining the output range.\n * @param clamp - Whether to clamp the output value within the output range.\n * @returns The transformed value.\n */function transformValue(input,inputRange,outputRange,clamp=false){const[inputMin,inputMax]=inputRange;const[outputMin,outputMax]=outputRange;const progress=(input-inputMin)/(inputMax-inputMin);let result=outputMin+progress*(outputMax-outputMin);if(clamp){if(outputMax>outputMin){result=Math.min(Math.max(result,outputMin),outputMax);}else{result=Math.min(Math.max(result,outputMax),outputMin);}}return result;}// ------------------------------------------------------------ //\n// RENDER ANIMATED TAG\n// ------------------------------------------------------------ //\nconst renderAnimatedTag=(props,color,showText)=>{const Component=motion[props.tag];return /*#__PURE__*/_jsx(Component,{initial:\"hidden\",animate:showText?\"visible\":\"hidden\",variants:{hidden:{opacity:0},visible:{opacity:1}},transition:{duration:showText?.5:.3,type:\"tween\",ease:showText?\"easeIn\":\"easeOut\"},style:{color:color,margin:0,zIndex:1,fontFamily:props.font.fontFamily,fontWeight:props.font.fontWeight,fontSize:props.font.fontSize,// textAlign: props.font.textAlign,\n// lineHeight: props.font.lineHeight,\nletterSpacing:props.font.letterSpacing,userSelect:props.selectable?\"text\":\"none\",whiteSpace:\"nowrap\"},children:props.text});};// Add FontFaceObserver utility\nconst waitForFont=async fontFamily=>{// Skip if FontFaceObserver is not available (e.g. in Framer preview)\nif(typeof window===\"undefined\"||!(\"FontFace\"in window))return;try{const font=new FontFaceObserver(fontFamily.split(\",\")[0].trim().replace(/['\"]/g,\"\"));await font.load(null,5e3)// 5 second timeout\n;}catch(e){console.warn(\"Font loading failed:\",e);}};MagicTextReveal.displayName=\"Magic Text Reveal\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MagicTextReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MagicTextReveal_Prod.map","// Generated by Framer (29d106d)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import MagicTextReveal from\"https://framerusercontent.com/modules/5ZuH7xaTyFIptP1xd86A/wIMKYHCyMURENymRUzoa/MagicTextReveal_Prod.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/0eoxOZ0OnP8bPVcm0Mir/b3mDwZWUIxrDaKCIDoP9/tHKS2vntz.js\";const MagicTextRevealFonts=getFonts(MagicTextReveal);const enabledGestures={gCHM4aTUp:{hover:true}};const cycleOrder=[\"gCHM4aTUp\",\"znJoUn1nl\",\"KxXX3w8Lv\",\"tuAhIDhIf\"];const serializationHash=\"framer-aUi4C\";const variantClassNames={gCHM4aTUp:\"framer-v-13bh6r6\",KxXX3w8Lv:\"framer-v-1k8f1hc\",tuAhIDhIf:\"framer-v-9xzczx\",znJoUn1nl:\"framer-v-1ry6cz2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 2\":\"tuAhIDhIf\",Desktop:\"gCHM4aTUp\",Mobile:\"KxXX3w8Lv\"};const getProps=({emoji2,emojiHover,height,id,secretCode,width,...props})=>{return{...props,BD3sdQvPK:emoji2??props.BD3sdQvPK??\"🛸\",Mivvf97Z_:emojiHover??props.Mivvf97Z_??\"🛸\",TAh7pilvi:secretCode??props.TAh7pilvi??\"🌘⚡️🌎🔓💬\",variant:humanReadableVariantMap[props.variant]??props.variant??\"gCHM4aTUp\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,TAh7pilvi,BD3sdQvPK,Mivvf97Z_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"gCHM4aTUp\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1ydxrd7=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"tuAhIDhIf\");});const onTapzad6or=activeVariantCallback(async(...args)=>{setVariant(\"znJoUn1nl\");});const onMouseLeavekiwx4g=activeVariantCallback(async(...args)=>{setVariant(\"gCHM4aTUp\");});const onMouseLeavenxtgjc=activeVariantCallback(async(...args)=>{setVariant(\"KxXX3w8Lv\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"znJoUn1nl\",\"tuAhIDhIf\"].includes(baseVariant))return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-13bh6r6\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"gCHM4aTUp\",ref:refBinding,style:{...style},...addPropertyOverrides({\"gCHM4aTUp-hover\":{\"data-framer-name\":undefined},KxXX3w8Lv:{\"data-framer-name\":\"Mobile\",\"data-highlight\":true,onTap:onTap1ydxrd7},tuAhIDhIf:{\"data-framer-name\":\"Variant 2\"},znJoUn1nl:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1nyrc9t\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"WEh93jYJN\",onTap:onTapzad6or,...addPropertyOverrides({KxXX3w8Lv:{\"data-highlight\":undefined,onTap:undefined},tuAhIDhIf:{\"data-highlight\":undefined,onTap:undefined},znJoUn1nl:{\"data-highlight\":undefined,onTap:undefined}},baseVariant,gestureVariant),children:isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{className:\"framer-styles-preset-j8fpqt\",\"data-styles-preset\":\"tHKS2vntz\",children:\"🛸\"})}),className:\"framer-1wyn52u\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ODyjvB71V\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",opacity:0},text:BD3sdQvPK,variants:{\"gCHM4aTUp-hover\":{opacity:1}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"gCHM4aTUp-hover\":{text:Mivvf97Z_}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-13qj7hu\",layoutDependency:layoutDependency,layoutId:\"ngZT1M2h9\",...addPropertyOverrides({tuAhIDhIf:{\"data-highlight\":true,onMouseLeave:onMouseLeavenxtgjc},znJoUn1nl:{\"data-highlight\":true,onMouseLeave:onMouseLeavekiwx4g}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-qo8o83-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"G_OYV9eVP-container\",nodeId:\"G_OYV9eVP\",rendersWithMotion:true,scopeId:\"Gtq7WiNBf\",style:{opacity:0},variants:{tuAhIDhIf:{opacity:1},znJoUn1nl:{opacity:1}},children:/*#__PURE__*/_jsx(MagicTextReveal,{canvasPreview:true,color:\"rgb(255, 255, 255)\",density:4,font:{fontFamily:'\"Unbounded\", \"Unbounded Placeholder\", sans-serif',fontSize:\"16px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1em\"},height:\"100%\",id:\"G_OYV9eVP\",layoutId:\"G_OYV9eVP\",resetOnMouseLeave:true,selectable:true,speed:.5,spread:50,style:{height:\"100%\",width:\"100%\"},tag:\"p\",text:\"\",width:\"100%\",yPosition:\"auto\",yPositionValue:0,...addPropertyOverrides({tuAhIDhIf:{speed:1.5,spread:31,text:TAh7pilvi,yPosition:\"manual\"},znJoUn1nl:{speed:1.5,spread:31,text:TAh7pilvi,yPosition:\"manual\"}},baseVariant,gestureVariant)})})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-aUi4C.framer-1rlzv0h, .framer-aUi4C .framer-1rlzv0h { display: block; }\",\".framer-aUi4C.framer-13bh6r6 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 30px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 150px; }\",\".framer-aUi4C .framer-1nyrc9t { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 80px; }\",\".framer-aUi4C .framer-1wyn52u { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-aUi4C .framer-13qj7hu { flex: none; height: 30px; overflow: visible; position: relative; width: 105px; }\",\".framer-aUi4C .framer-qo8o83-container { bottom: 0px; flex: none; left: 0px; position: absolute; right: 0px; top: 0px; }\",\".framer-aUi4C.framer-v-1ry6cz2.framer-13bh6r6, .framer-aUi4C.framer-v-1k8f1hc .framer-1nyrc9t, .framer-aUi4C.framer-v-9xzczx.framer-13bh6r6 { cursor: unset; }\",\".framer-aUi4C.framer-v-1ry6cz2 .framer-1nyrc9t, .framer-aUi4C.framer-v-9xzczx .framer-1nyrc9t { cursor: unset; min-height: 30px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 110.5\n * @framerIntrinsicWidth 150\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"znJoUn1nl\":{\"layout\":[\"fixed\",\"auto\"]},\"KxXX3w8Lv\":{\"layout\":[\"fixed\",\"auto\"]},\"tuAhIDhIf\":{\"layout\":[\"fixed\",\"auto\"]},\"LXbMI1uVX\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"TAh7pilvi\":\"secretCode\",\"BD3sdQvPK\":\"emoji2\",\"Mivvf97Z_\":\"emojiHover\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerGtq7WiNBf=withCSS(Component,css,\"framer-aUi4C\");export default FramerGtq7WiNBf;FramerGtq7WiNBf.displayName=\"secret code\";FramerGtq7WiNBf.defaultProps={height:110.5,width:150};addPropertyControls(FramerGtq7WiNBf,{variant:{options:[\"gCHM4aTUp\",\"znJoUn1nl\",\"KxXX3w8Lv\",\"tuAhIDhIf\"],optionTitles:[\"Desktop\",\"Variant 2\",\"Mobile\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum},TAh7pilvi:{defaultValue:\"🌘⚡️🌎🔓💬\",title:\"secret code\",type:ControlType.String},BD3sdQvPK:{defaultValue:\"🛸\",displayTextArea:false,title:\"emoji 2\",type:ControlType.String},Mivvf97Z_:{defaultValue:\"🛸\",displayTextArea:false,title:\"emoji hover\",type:ControlType.String}});addFonts(FramerGtq7WiNBf,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Unbounded\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/unbounded/v11/Yq6F-LOTXCb04q32xlpat-6uR42XTqtG6xjx04jHgP6LR0Y.woff2\",weight:\"400\"}]},...MagicTextRevealFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerGtq7WiNBf\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"TAh7pilvi\\\":\\\"secretCode\\\",\\\"BD3sdQvPK\\\":\\\"emoji2\\\",\\\"Mivvf97Z_\\\":\\\"emojiHover\\\"}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"110.5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"znJoUn1nl\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"KxXX3w8Lv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"tuAhIDhIf\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"LXbMI1uVX\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"150\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Gtq7WiNBf.map"],"mappings":"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"}