'use client' import { motion } from 'framer-motion' import { cn } from '@/lib/utils' interface Props { scanned: number alerts: number keywords: number uptime: string } const CARDS = [ { id: 'scanned', label: 'Lots Scanned', sub: 'Processed this session', gradFrom: '#00e87b', gradTo: '#06b6d4', icon: ( ), }, { id: 'alerts', label: 'Alerts Fired', sub: 'Qualifying matches', gradFrom: '#fbbf24', gradTo: '#f59e0b', icon: ( ), }, { id: 'keywords', label: 'Active Targets', sub: 'Keyword strategies', gradFrom: '#a78bfa', gradTo: '#3b82f6', icon: ( ), }, { id: 'uptime', label: 'Engine Uptime', sub: 'Continuous runtime', gradFrom: '#3b82f6', gradTo: '#06b6d4', icon: ( ), }, ] export default function StatsGrid({ scanned, alerts, keywords, uptime }: Props) { const values: Record = { scanned: String(scanned), alerts: alerts, keywords: keywords, uptime: uptime, } return (
{CARDS.map((card, i) => { const val = values[card.id] const isAlert = card.id === 'alerts' && alerts > 0 const accentColor = isAlert ? card.gradFrom : undefined return ( {/* Top row: label + icon */}
{card.label}
{card.icon}
{/* Value */}
{val}
{/* Sub */}

{card.sub}

{/* Bottom gradient line */}
{/* Alert pulse ring for alerts card when active */} {isAlert && (
)} ) })}
) }