{"version":3,"file":"FallingText.BCQW37Qu.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/FpkKLjhf6904Qu1E2jtR/Zt3kZgwPXLtJ2o0o3OJO/FallingText.js"],"sourcesContent":["// User request: add optional logo image falling physics support to FallingText while preserving existing behavior and controls, adding logo URL and sizing controls as a backward-compatible enhancement.\n// Falling Text Physics Component - Text breaks apart and falls with realistic physics when triggered\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useState,useEffect,useMemo,useCallback,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * Falling Text Physics\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function FallingText(props){const{text=\"Click me to see the magic happen!\",logoImage=\"\",logoSize=180,trigger=\"click\",backgroundColor=\"transparent\",wireframes=false,gravity=1,mouseConstraintStiffness=.2,textFont,textColor=\"#000000\",verticalAlignment=\"center\",paddingTop=32,floorOffset=100,chaos=.3,style}=props;const containerRef=useRef(null);const textRef=useRef(null);const canvasContainerRef=useRef(null);const[effectStarted,setEffectStarted]=useState(false);const[matterLoaded,setMatterLoaded]=useState(false);const[logoLoadTick,setLogoLoadTick]=useState(0);const isStatic=useIsStaticRenderer();const hasLogoImage=useMemo(()=>logoImage.trim().length>0,[logoImage]);// Load Matter.js dynamically\nuseEffect(()=>{if(isStatic)return;const loadMatter=async()=>{try{// @ts-ignore\nconst Matter=await import(\"https://cdn.skypack.dev/matter-js@0.19.0\");if(typeof window!==\"undefined\"){// @ts-ignore\nwindow.Matter=Matter.default||Matter;}setMatterLoaded(true);}catch(error){console.error(\"Failed to load Matter.js:\",error);}};loadMatter();},[isStatic]);// Setup text with highlighting (or optional logo image)\nuseEffect(()=>{if(!textRef.current)return;if(hasLogoImage){textRef.current.innerHTML=`<img src=\"${logoImage}\" alt=\"Logo\" style=\"display:block; width:${logoSize}px; height:auto; max-width:100%; object-fit:contain; user-select:none; pointer-events:none;\" />`;const logo=textRef.current.querySelector(\"img\");if(logo&&!logo.complete){const onLoad=()=>{startTransition(()=>setLogoLoadTick(v=>v+1));};logo.addEventListener(\"load\",onLoad,{once:true});}return;}const letters=text.split(\"\");const newHTML=letters.map(letter=>{if(letter===\" \"){return`<span style=\"display: inline-block; width: 0.3em; user-select: none;\"></span>`;}return`<span style=\"display: inline-block; user-select: none; color: ${textColor};\">${letter}</span>`;}).join(\"\");textRef.current.innerHTML=newHTML;},[text,textColor,hasLogoImage,logoImage,logoSize]);// Handle trigger setup\nuseEffect(()=>{if(isStatic)return;if(trigger===\"auto\"){// Add a small delay to prevent glitch on first preview\nconst timer=setTimeout(()=>{startTransition(()=>setEffectStarted(true));},100);return()=>clearTimeout(timer);}if(trigger===\"scroll\"&&containerRef.current){const observer=new IntersectionObserver(([entry])=>{if(entry.isIntersecting){startTransition(()=>setEffectStarted(true));observer.disconnect();}},{threshold:.1});observer.observe(containerRef.current);return()=>observer.disconnect();}},[trigger,isStatic]);// Physics simulation\nuseEffect(()=>{if(!effectStarted||!matterLoaded||isStatic)return;if(typeof window===\"undefined\")return;// @ts-ignore\nconst Matter=window.Matter;if(!Matter)return;const{Engine,Render,World,Bodies,Runner,Mouse,MouseConstraint}=Matter;if(!containerRef.current||!canvasContainerRef.current)return;const containerRect=containerRef.current.getBoundingClientRect();const width=containerRect.width;const height=containerRect.height;if(width<=0||height<=0)return;const engine=Engine.create();engine.world.gravity.y=gravity;const render=Render.create({element:canvasContainerRef.current,engine,options:{width,height,background:backgroundColor,wireframes,showVelocity:false,showAngleIndicator:false,showDebug:false}});// Prevent canvas from capturing pointer events to allow scrolling\nif(render.canvas){render.canvas.style.pointerEvents=\"none\";}const boundaryOptions={isStatic:true,render:{fillStyle:\"transparent\"}};const floor=Bodies.rectangle(width/2,height+floorOffset,width*2,60,boundaryOptions);const leftWall=Bodies.rectangle(-50,height/2,50,height*4,boundaryOptions);const rightWall=Bodies.rectangle(width+50,height/2,50,height*4,boundaryOptions);const ceiling=Bodies.rectangle(width/2,-200,width,50,boundaryOptions);if(!textRef.current)return;// Hide the original text\ntextRef.current.style.opacity=\"0\";let letterBodies=[];if(hasLogoImage){const logo=textRef.current.querySelector(\"img\");if(!logo||!logo.complete){textRef.current.style.opacity=\"1\";return;}const rect=logo.getBoundingClientRect();const containerRect=containerRef.current.getBoundingClientRect();const x=rect.left-containerRect.left+rect.width/2;const y=rect.top-containerRect.top+rect.height/2;const physicsElem=logo.cloneNode(true);physicsElem.style.position=\"absolute\";physicsElem.style.left=`${x}px`;physicsElem.style.top=`${y}px`;physicsElem.style.transform=\"translate(-50%, -50%)\";physicsElem.style.zIndex=\"10\";physicsElem.style.pointerEvents=\"none\";physicsElem.style.opacity=\"1\";physicsElem.style.visibility=\"visible\";physicsElem.style.width=`${logoSize}px`;physicsElem.style.height=\"auto\";physicsElem.style.maxWidth=\"100%\";physicsElem.style.objectFit=\"contain\";containerRef.current.appendChild(physicsElem);const body=Bodies.rectangle(x,y,rect.width,rect.height,{render:{fillStyle:\"transparent\"},restitution:.3,frictionAir:.04,friction:.3});Matter.Body.setVelocity(body,{x:(Math.random()-.5)*chaos*3,y:0});Matter.Body.setAngularVelocity(body,(Math.random()-.5)*chaos*.1);letterBodies=[{elem:physicsElem,body}];}else{const letterSpans=textRef.current.querySelectorAll(\"span\");letterBodies=[...letterSpans].filter(elem=>elem.textContent&&elem.textContent.trim()!==\"\").map(elem=>{const rect=elem.getBoundingClientRect();const containerRect=containerRef.current.getBoundingClientRect();const x=rect.left-containerRect.left+rect.width/2;const y=rect.top-containerRef.current.getBoundingClientRect().top+rect.height/2;// Create a new element for physics\nconst physicsElem=elem.cloneNode(true);physicsElem.style.position=\"absolute\";physicsElem.style.left=`${x}px`;physicsElem.style.top=`${y}px`;physicsElem.style.transform=\"translate(-50%, -50%)\";physicsElem.style.zIndex=\"10\";physicsElem.style.pointerEvents=\"none\";physicsElem.style.opacity=\"1\";physicsElem.style.visibility=\"visible\";// Preserve all original styling\nphysicsElem.style.fontSize=textFont?.fontSize||\"24px\";physicsElem.style.fontFamily=textFont?.fontFamily||\"\";physicsElem.style.fontWeight=textFont?.fontWeight||\"\";physicsElem.style.fontStyle=textFont?.fontStyle||\"\";physicsElem.style.letterSpacing=textFont?.letterSpacing||\"-0.01em\";physicsElem.style.lineHeight=textFont?.lineHeight||\"1.4em\";physicsElem.style.color=textColor;physicsElem.style.display=\"inline-block\";physicsElem.style.userSelect=\"none\";// Add to container\ncontainerRef.current.appendChild(physicsElem);const body=Bodies.rectangle(x,y,rect.width,rect.height,{render:{fillStyle:\"transparent\"},restitution:.3,frictionAir:.05,friction:.3});Matter.Body.setVelocity(body,{x:(Math.random()-.5)*chaos*3,y:0});Matter.Body.setAngularVelocity(body,(Math.random()-.5)*chaos*.1);return{elem:physicsElem,body};});}const mouse=Mouse.create(containerRef.current);mouse.element.removeEventListener(\"mousewheel\",mouse.mousewheel);mouse.element.removeEventListener(\"DOMMouseScroll\",mouse.mousewheel);const mouseConstraint=MouseConstraint.create(engine,{mouse,constraint:{stiffness:mouseConstraintStiffness,render:{visible:false}}});render.mouse=mouse;World.add(engine.world,[floor,leftWall,rightWall,ceiling,mouseConstraint,...letterBodies.map(wb=>wb.body)]);const runner=Runner.create();Runner.run(runner,engine);Render.run(render);const updateLoop=()=>{letterBodies.forEach(({body,elem})=>{const{x,y}=body.position;const element=elem;element.style.left=`${x}px`;element.style.top=`${y}px`;element.style.transform=`translate(-50%, -50%) rotate(${body.angle}rad)`;});requestAnimationFrame(updateLoop);};updateLoop();return()=>{Render.stop(render);Runner.stop(runner);if(render.canvas&&canvasContainerRef.current){canvasContainerRef.current.removeChild(render.canvas);}// Clean up physics elements and restore original text\nletterBodies.forEach(({elem})=>{if(elem.parentNode){elem.parentNode.removeChild(elem);}});if(textRef.current){textRef.current.style.opacity=\"1\";}World.clear(engine.world,false);Engine.clear(engine);};},[effectStarted,matterLoaded,gravity,wireframes,backgroundColor,mouseConstraintStiffness,textFont,textColor,isStatic,chaos,hasLogoImage,logoSize,logoLoadTick]);const handleTrigger=useCallback(()=>{if(!effectStarted&&(trigger===\"click\"||trigger===\"hover\")){startTransition(()=>setEffectStarted(true));}},[effectStarted,trigger]);const getVerticalAlignment=useCallback(()=>{switch(verticalAlignment){case\"top\":return\"flex-start\";case\"bottom\":return\"flex-end\";default:return\"center\";}},[verticalAlignment]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",minWidth:100,minHeight:50,display:\"flex\",alignItems:getVerticalAlignment(),justifyContent:textFont?.textAlign||\"center\",paddingTop:`${paddingTop}px`,overflow:\"hidden\",cursor:trigger===\"click\"?\"pointer\":\"default\",...textFont},children:hasLogoImage?/*#__PURE__*/_jsx(\"img\",{src:logoImage,alt:\"Logo\",style:{display:\"block\",width:`${logoSize}px`,height:\"auto\",maxWidth:\"100%\",objectFit:\"contain\",userSelect:\"none\"}}):/*#__PURE__*/_jsx(\"div\",{style:{textAlign:textFont?.textAlign||\"center\",lineHeight:textFont?.lineHeight||\"1.4em\",letterSpacing:textFont?.letterSpacing||\"-0.01em\",fontSize:textFont?.fontSize||\"24px\",fontFamily:textFont?.fontFamily,fontWeight:textFont?.fontWeight,fontStyle:textFont?.fontStyle},dangerouslySetInnerHTML:{__html:text.split(\"\").map(letter=>{if(letter===\" \"){return`<span style=\"display: inline-block; width: 0.3em;\"></span>`;}return`<span style=\"display: inline-block; color: ${textColor};\">${letter}</span>`;}).join(\"\")}})});}return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",zIndex:1,width:\"100%\",height:\"100%\",minWidth:100,minHeight:50,cursor:trigger===\"click\"?\"pointer\":\"default\",display:\"flex\",alignItems:getVerticalAlignment(),justifyContent:textFont?.textAlign||\"center\",paddingTop:`${paddingTop}px`,overflow:effectStarted?\"visible\":\"hidden\",touchAction:\"pan-y\",pointerEvents:effectStarted?\"none\":\"auto\"},onClick:trigger===\"click\"?handleTrigger:undefined,onMouseEnter:trigger===\"hover\"?handleTrigger:undefined,children:[/*#__PURE__*/_jsx(\"div\",{ref:textRef,style:{display:\"inline-block\",textAlign:textFont?.textAlign||\"center\",lineHeight:textFont?.lineHeight||\"1.4em\",letterSpacing:textFont?.letterSpacing||\"-0.01em\",fontSize:textFont?.fontSize||\"24px\",fontFamily:textFont?.fontFamily,fontWeight:textFont?.fontWeight,fontStyle:textFont?.fontStyle}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,zIndex:0,pointerEvents:\"none\",overflow:\"visible\"},ref:canvasContainerRef})]});}addPropertyControls(FallingText,{logoImage:{type:ControlType.String,title:\"Logo URL\",defaultValue:\"\",placeholder:\"https://...\"},logoSize:{type:ControlType.Number,title:\"Logo Size\",defaultValue:180,min:24,max:600,step:1,unit:\"px\",hidden:props=>!props.logoImage},text:{type:ControlType.String,title:\"Text\",defaultValue:\"Click me to see the magic happen!\",displayTextArea:true},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"auto\",\"scroll\",\"click\",\"hover\"],optionTitles:[\"Auto\",\"On Scroll\",\"On Click\",\"On Hover\"],defaultValue:\"click\"},textFont:{type:ControlType.Font,title:\"Text Font\",defaultValue:{fontSize:\"24px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\",textAlign:\"center\"},controls:\"extended\",defaultFontType:\"sans-serif\",displayTextAlignment:true,displayFontSize:true},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},verticalAlignment:{type:ControlType.Enum,title:\"Vertical Alignment\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"center\",displaySegmentedControl:true},paddingTop:{type:ControlType.Number,title:\"Top Padding\",defaultValue:32,min:0,max:100,step:1,unit:\"px\"},floorOffset:{type:ControlType.Number,title:\"Floor Offset\",defaultValue:100,min:-100,max:200,step:1,unit:\"px\"},gravity:{type:ControlType.Number,title:\"Gravity\",defaultValue:1,min:0,max:3,step:.1},mouseConstraintStiffness:{type:ControlType.Number,title:\"Mouse Interaction\",defaultValue:.2,min:0,max:1,step:.1},wireframes:{type:ControlType.Boolean,title:\"Show Physics Debug\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},chaos:{type:ControlType.Number,title:\"Chaos\",defaultValue:.3,min:0,max:1,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FallingText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FallingText.map"],"mappings":"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"}