import { motion, useReducedMotion } from 'framer-motion'; import { LucideIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; import { Box } from './Box'; import { Heading } from './Heading'; import { Icon } from './Icon'; import { Surface } from './Surface'; import { Text } from './Text'; interface BenefitCardProps { icon: LucideIcon; title: string; description: string; stats?: { value: string; label: string; }; variant?: 'default' | 'highlight'; delay?: number; } export function BenefitCard({ icon, title, description, stats, variant = 'default', delay = 0, }: BenefitCardProps) { const shouldReduceMotion = useReducedMotion(); const [isMounted, setIsMounted] = useState(false); useEffect(() => { setIsMounted(true); }, []); const isHighlight = variant === 'highlight'; const cardContent = ( {/* Icon */} {/* Content */} {title} {description} {/* Stats */} {stats && ( {stats.value} {stats.label} )} {/* Highlight Glow Effect */} {isHighlight && ( )} ); if (!isMounted || shouldReduceMotion) { return {cardContent}; } return ( {cardContent} ); }