import { Box } from '@/ui/Box'; import { Heading } from '@/ui/Heading'; import { Icon } from '@/ui/Icon'; import { Surface } from '@/ui/Surface'; import { Text } from '@/ui/Text'; import { motion, useReducedMotion } from 'framer-motion'; import { LucideIcon } from 'lucide-react'; import { useEffect, useState } from 'react'; 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} ); }