const { useEffect: useBlurEffect, useRef: useBlurRef, useState } = React; const { motion } = window.Motion; function BlurText({ text, className = "", as = "p" }) { const rootRef = useBlurRef(null); const [visible, setVisible] = useState(false); const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; const Tag = as; useBlurEffect(() => { const observer = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { setVisible(true); observer.disconnect(); } }, { threshold: 0.1 }); if (rootRef.current) observer.observe(rootRef.current); return () => observer.disconnect(); }, []); return ( {text.split(" ").map((word, i) => ( {word} ))} ); } window.BlurText = BlurText;