{"version":3,"file":"TextToParticles_Prod.CeWI4Mtt.mjs","names":["useRef","useState","useMemo","FontFaceObserver"],"sources":["https:/cdn.jsdelivr.net/gh/framer-university/components/npm-bundles/font-face-observer.js","https:/framerusercontent.com/modules/GmyuIg62qXxc76yjWINy/GDyoiHQQUN7RR51CJ6bT/TextToParticles_Prod.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","function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useMemo,useState}from\"react\";import{RenderTarget,addPropertyControls,ControlType}from\"framer\";// import FontFaceObserver from \"fontfaceobserver\";\nimport{FontFaceObserver}from\"https://cdn.jsdelivr.net/gh/framer-university/components/npm-bundles/font-face-observer.js\";// ------------------------------------------------------------ //\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 ParticleText(props){const isOnFramerCanvas=RenderTarget.hasRestrictions();const canvasRef=useRef(null);const contextRef=useRef(null);const particlesRef=useRef([]);const radiusRef=useRef(props.radius);const wrapperRef=useRef(null);const lastFontRef=useRef(null);const[fontLoaded,setFontLoaded]=useState(false);const parsedColors=useMemo(()=>{return props.colors.map(parseFramerColor);},[props.colors]);const mouseRef=useRef({x:0,y:0});const transformedFriction=useMemo(()=>{return props.friction*.01;},[props.friction]);// Add font loading effect\nuseEffect(()=>{if(!props.font.fontFamily||isOnFramerCanvas){setFontLoaded(true)// On canvas, assume font is loaded\n;return;}const loadFont=async()=>{await waitForFont(props.font.fontFamily);setFontLoaded(true);};setFontLoaded(false)// Reset font loaded state\n;loadFont();},[props.font.fontFamily,isOnFramerCanvas]);const initScene=()=>{const canvas=canvasRef.current;const ctx=contextRef.current;if(!canvas||!ctx||!wrapperRef.current)return;const wrapperHeight=wrapperRef.current?.offsetHeight;const wrapperWidth=wrapperRef.current?.offsetWidth;canvas.width=wrapperWidth;canvas.height=wrapperHeight;const fontSize=typeof props.font.fontSize===\"number\"?props.font.fontSize:parseInt(props.font.fontSize?.replace(\"px\",\"\")||\"120\");const font=`${props.font.fontWeight??600} ${fontSize}px ${props.font.fontFamily||\"sans-serif\"}`;ctx.clearRect(0,0,wrapperWidth,wrapperHeight);ctx.font=font;ctx.textAlign=props.font.textAlign||\"center\";ctx.textBaseline=\"middle\";ctx.letterSpacing=props.font.letterSpacing||\"0px\";if(props.font.textAlign===\"left\"){ctx.fillText(props.text,0,wrapperHeight/2);}else if(props.font.textAlign===\"right\"){ctx.fillText(props.text,wrapperWidth,wrapperHeight/2);}else{ctx.fillText(props.text,wrapperWidth/2,wrapperHeight/2);}const data=ctx.getImageData(0,0,wrapperWidth,wrapperHeight).data;ctx.clearRect(0,0,wrapperWidth,wrapperHeight);ctx.globalCompositeOperation=\"screen\";particlesRef.current=[];// Calculate step size based on density (independent of wrapper size)\nconst baseStep=8// Base step size for consistent density\n;const step=Math.max(1,Math.round(baseStep/props.density));for(let i=0;i<wrapperWidth;i+=step){for(let j=0;j<wrapperHeight;j+=step){if(data[(i+j*wrapperWidth)*4+3]>150){particlesRef.current.push(new Particle(i,j,wrapperWidth,wrapperHeight,parsedColors,props.size,transformedFriction,props.startFromRandomPositions));}}}};const renderAnimation=()=>{const ctx=contextRef.current;const canvas=canvasRef.current;if(!ctx||!canvas)return;ctx.clearRect(0,0,canvas.width,canvas.height);for(const particle of particlesRef.current){particle.render(ctx,mouseRef.current,radiusRef.current);}};useMouseEvents({initScene,renderAnimation,mouseRef,canvasRef});useEffect(()=>{const canvas=canvasRef.current;if(canvas){contextRef.current=canvas.getContext(\"2d\");if(contextRef.current){// Don't render until font is loaded on live sites\nif(!fontLoaded)return;initScene();}}},[props,fontLoaded]);// Add resize observer to watch wrapper size changes\nuseEffect(()=>{const wrapper=wrapperRef.current;if(!wrapper)return;const resizeObserver=new ResizeObserver(()=>{// Don't render until font is loaded on live sites\nif(!fontLoaded)return;// Store current text before reinitializing\nconst currentText=props.text;initScene();// If text was changed back to default, restore it\nif(props.text!==currentText){const canvas=canvasRef.current;const ctx=canvas?.getContext(\"2d\");if(canvas&&ctx&&wrapperRef.current){const wrapperHeight=wrapperRef.current.offsetHeight;const wrapperWidth=wrapperRef.current.offsetWidth;ctx.clearRect(0,0,wrapperWidth,wrapperHeight);ctx.font=`${props.font.fontWeight??600} ${props.font.fontSize??120}px ${props.font.fontFamily||\"sans-serif\"}`;ctx.textAlign=props.font.textAlign||\"center\";ctx.textBaseline=\"middle\";ctx.letterSpacing=props.font.letterSpacing||\"0px\";if(props.font.textAlign===\"left\"){ctx.fillText(currentText,0,wrapperHeight/2);}else if(props.font.textAlign===\"right\"){ctx.fillText(currentText,wrapperWidth,wrapperHeight/2);}else{ctx.fillText(currentText,wrapperWidth/2,wrapperHeight/2);}}}});resizeObserver.observe(wrapper);return()=>{resizeObserver.disconnect();};},[fontLoaded,props.text,props.font]);// Handle font changes in Framer editor\nuseEffect(()=>{const currentFont=props.font.fontFamily||\"sans-serif\";return handleFontChange({currentFont,lastFontRef,isOnFramerCanvas,props,canvasRef,wrapperRef,particlesRef});},[props.font.fontFamily,isOnFramerCanvas]);return /*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:{width:\"100%\",height:\"100%\",position:\"relative\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\"}})});}// ------------------------------------------------------------ //\n// FONT HANDLING\n// ------------------------------------------------------------ //\nconst handleFontChange=({currentFont,lastFontRef,isOnFramerCanvas,props,canvasRef,wrapperRef,particlesRef})=>{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;// Re-initialize the scene with new font\nconst canvas=canvasRef.current;if(canvas&&wrapperRef.current){const ctx=canvas.getContext(\"2d\");if(ctx){const wrapperHeight=wrapperRef.current.offsetHeight;const wrapperWidth=wrapperRef.current.offsetWidth;canvas.width=wrapperWidth;canvas.height=wrapperHeight;const fontSize=typeof props.font.fontSize===\"number\"?props.font.fontSize:parseInt(props.font.fontSize?.replace(\"px\",\"\")||\"120\");const font=`${props.font.fontWeight??600} ${fontSize}px ${props.font.fontFamily||\"sans-serif\"}`;ctx.clearRect(0,0,wrapperWidth,wrapperHeight);ctx.font=font;ctx.textAlign=props.font.textAlign||\"center\";ctx.textBaseline=\"middle\";ctx.letterSpacing=props.font.letterSpacing||\"0px\";if(props.font.textAlign===\"left\"){ctx.fillText(props.text,0,wrapperHeight/2);}else if(props.font.textAlign===\"right\"){ctx.fillText(props.text,wrapperWidth,wrapperHeight/2);}else{ctx.fillText(props.text,wrapperWidth/2,wrapperHeight/2);}const data=ctx.getImageData(0,0,wrapperWidth,wrapperHeight).data;ctx.clearRect(0,0,wrapperWidth,wrapperHeight);ctx.globalCompositeOperation=\"screen\";particlesRef.current=[];const parsedColors=props.colors.map(parseFramerColor);const transformedFriction=props.friction*.01;const baseStep=8// Base step size for consistent density\n;const step=Math.max(1,Math.round(baseStep/props.density));for(let i=0;i<wrapperWidth;i+=step){for(let j=0;j<wrapperHeight;j+=step){if(data[(i+j*wrapperWidth)*4+3]>150){particlesRef.current.push(new Particle(i,j,wrapperWidth,wrapperHeight,parsedColors,props.size,transformedFriction,props.startFromRandomPositions));}}}}}},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// PARTICLE CLASS\n// ------------------------------------------------------------ //\nclass Particle{render(ctx,mouse,radius){this.accX=(this.dest.x-this.x)/1e3;this.accY=(this.dest.y-this.y)/1e3;this.vx+=this.accX;this.vy+=this.accY;this.vx*=this.friction;this.vy*=this.friction;this.x+=this.vx;this.y+=this.vy;ctx.fillStyle=this.color;ctx.beginPath();ctx.arc(this.x,this.y,this.r,0,Math.PI*2);ctx.fill();const a=this.x-mouse.x;const b=this.y-mouse.y;const distance=Math.sqrt(a*a+b*b);if(distance<radius){this.accX=(this.x-mouse.x)/100;this.accY=(this.y-mouse.y)/100;this.vx+=this.accX;this.vy+=this.accY;}}constructor(x,y,ww,wh,colors,size,userFriction,startFromRandomPositions){_define_property(this,\"x\",void 0);_define_property(this,\"y\",void 0);_define_property(this,\"dest\",void 0);_define_property(this,\"r\",void 0);_define_property(this,\"vx\",void 0);_define_property(this,\"vy\",void 0);_define_property(this,\"accX\",void 0);_define_property(this,\"accY\",void 0);_define_property(this,\"friction\",void 0);_define_property(this,\"colors\",void 0);_define_property(this,\"color\",void 0);_define_property(this,\"size\",void 0);_define_property(this,\"userFriction\",void 0);this.x=startFromRandomPositions?Math.random()*ww:x;this.y=startFromRandomPositions?Math.random()*wh:y;this.dest={x,y};this.r=size.random?Math.random()*size.base+2:size.base;this.vx=startFromRandomPositions?(Math.random()-.5)*20:0;this.vy=startFromRandomPositions?(Math.random()-.5)*20:0;this.accX=0;this.accY=0;this.friction=Math.random()*.05+.89+userFriction;this.colors=colors;this.color=colors[Math.floor(Math.random()*colors.length)];this.size=size;this.userFriction=userFriction;}}// ------------------------------------------------------------ //\n// HOOKS\n// ------------------------------------------------------------ //\nconst useMouseEvents=({initScene,renderAnimation,mouseRef,canvasRef})=>{useEffect(()=>{const onMouseMove=e=>{const canvas=canvasRef.current;if(!canvas)return;const rect=canvas.getBoundingClientRect();mouseRef.current.x=e.clientX-rect.left;mouseRef.current.y=e.clientY-rect.top;};const onTouchMove=e=>{const canvas=canvasRef.current;if(!canvas||!e.touches.length)return;const rect=canvas.getBoundingClientRect();mouseRef.current.x=e.touches[0].clientX-rect.left;mouseRef.current.y=e.touches[0].clientY-rect.top;};const onTouchEnd=()=>{mouseRef.current.x=-9999;mouseRef.current.y=-9999;};// Debounce the resize handler to prevent too many updates\nlet resizeTimeout;const onResize=()=>{clearTimeout(resizeTimeout);resizeTimeout=setTimeout(()=>{initScene();},100);};window.addEventListener(\"resize\",onResize);window.addEventListener(\"mousemove\",onMouseMove);window.addEventListener(\"touchmove\",onTouchMove);window.addEventListener(\"touchend\",onTouchEnd);let animationFrameId;const render=()=>{renderAnimation();animationFrameId=requestAnimationFrame(render);};render();return()=>{clearTimeout(resizeTimeout);window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"mousemove\",onMouseMove);window.removeEventListener(\"touchmove\",onTouchMove);window.removeEventListener(\"touchend\",onTouchEnd);cancelAnimationFrame(animationFrameId);};},[]);return{mouseRef};};// ------------------------------------------------------------ //\n// HELPERS\n// ------------------------------------------------------------ //\nconst 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)\";};// 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);}};// ------------------------------------------------------------ //\n// DEFAULT PROPS\n// ------------------------------------------------------------ //\nParticleText.defaultProps={text:\"Framer University\",font:{fontFamily:\"sans-serif\",fontWeight:\"600\",fontSize:120,textAlign:\"center\"},colors:[\"rgb(77, 168, 218)\",\"rgb(128, 216, 195)\",\"rgb(255, 214, 107)\",\"rgb(245, 245, 245)\"],radius:50,size:{base:4,random:true},friction:5,startFromRandomPositions:false,density:1};// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(ParticleText,{text:{type:ControlType.String,defaultValue:\"Framer University\"},font:{type:ControlType.Font,defaultFontType:\"sans-serif\",controls:\"extended\",defaultValue:{letterSpacing:\"1px\",textAlign:\"center\",fontSize:120}},colors:{type:ControlType.Array,control:{type:ControlType.Color},defaultValue:[\"rgb(77, 168, 218)\",\"rgb(128, 216, 195)\",\"rgb(255, 214, 107)\",\"rgb(245, 245, 245)\"]},radius:{type:ControlType.Number,defaultValue:50,min:0,max:200,unit:\"px\",title:\"Hover Area\"},size:{type:ControlType.Object,controls:{base:{type:ControlType.Number,defaultValue:3,min:1,max:20},random:{type:ControlType.Boolean,defaultValue:true}}},density:{type:ControlType.Number,defaultValue:1,min:.1,max:2,step:.1},friction:{type:ControlType.Number,defaultValue:5,min:0,max:5,step:.1},startFromRandomPositions:{title:\"Start\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"Random\",disabledTitle:\"Text\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});ParticleText.displayName=\"Text to Particles\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ParticleText\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextToParticles_Prod.map"],"mappings":"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"}