import { motion, useReducedMotion } from 'framer-motion';
import { Building2 } from 'lucide-react';
import { useEffect, useState } from 'react';
import { Box } from './Box';
import { Heading } from './Heading';
import { Icon } from './Icon';
import { Text } from './Text';
export function SponsorHero({ title, subtitle, children }: SponsorHeroProps) {
const shouldReduceMotion = useReducedMotion();
const [isMounted, setIsMounted] = useState(false);
useEffect(() => {
setIsMounted(true);
}, []);
const containerVariants = {
hidden: { opacity: 0 },
visible: {
opacity: 1,
transition: {
staggerChildren: 0.1,
delayChildren: 0.1,
},
},
};
const itemVariants = {
hidden: { opacity: 0, y: 20 },
visible: {
opacity: 1,
y: 0,
transition: { duration: 0.4, ease: 'easeOut' as const },
},
};
const gridStyle = {
backgroundImage: `
linear-gradient(to right, #198CFF 1px, transparent 1px),
linear-gradient(to bottom, #198CFF 1px, transparent 1px)
`,
backgroundSize: '40px 40px',
};
if (!isMounted || shouldReduceMotion) {
return (
{/* Background Pattern */}
{/* Grid Pattern */}
Sponsor Portal
{title}
{subtitle}
{children}
);
}
return (
{/* Background Pattern */}
{/* Animated Grid Pattern */}
Sponsor Portal
{title}
{subtitle}
{children}
);
}