import React from 'react'; import { clsx } from 'clsx'; import StatsCard, { StatsCardProps } from './StatsCard'; export interface StatsGridProps { stats: StatsCardProps[]; columns?: 1 | 2 | 3 | 4 | 5 | 6; gap?: 'sm' | 'md' | 'lg'; className?: string; loading?: boolean; title?: string; description?: string; } const StatsGrid: React.FC = ({ stats, columns = 3, gap = 'md', className, loading = false, title, description, }) => { const gridClasses = { 1: 'grid-cols-1', 2: 'grid-cols-1 sm:grid-cols-2', 3: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3', 4: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-4', 5: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5', 6: 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6', }; const gapClasses = { sm: 'gap-3', md: 'gap-4', lg: 'gap-6', }; const containerClasses = clsx( 'grid', gridClasses[columns], gapClasses[gap], className ); return (
{/* Header */} {(title || description) && (
{title && (

{title}

)} {description && (

{description}

)}
)} {/* Stats Grid */}
{loading ? Array.from({ length: stats.length || 6 }).map((_, index) => ( )) : stats.map((stat, index) => ( )) }
); }; export default StatsGrid;