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}
);
}