import { LucideIcon, TrendingUp, TrendingDown, Minus } from "lucide-react"; import { cn } from "../utils/cn"; interface StatCardProps { title: string; value: string | number; icon: LucideIcon; iconColor?: "indigo" | "emerald" | "amber" | "rose" | "teal" | "blue" | "purple"; change?: { value: string; isPositive?: boolean | null; period?: string; }; subtitle?: string; progress?: number; // 0 to 100 className?: string; } const colorMap = { indigo: { bg: "bg-indigo-500/10", border: "border-indigo-500/20", text: "text-indigo-400", glow: "group-hover:border-indigo-500/40", }, emerald: { bg: "bg-emerald-500/10", border: "border-emerald-500/20", text: "text-emerald-400", glow: "group-hover:border-emerald-500/40", }, amber: { bg: "bg-amber-500/10", border: "border-amber-500/20", text: "text-amber-400", glow: "group-hover:border-amber-500/40", }, rose: { bg: "bg-rose-500/10", border: "border-rose-500/20", text: "text-rose-400", glow: "group-hover:border-rose-500/40", }, teal: { bg: "bg-teal-500/10", border: "border-teal-500/20", text: "text-teal-400", glow: "group-hover:border-teal-500/40", }, blue: { bg: "bg-blue-500/10", border: "border-blue-500/20", text: "text-blue-400", glow: "group-hover:border-blue-500/40", }, purple: { bg: "bg-purple-500/10", border: "border-purple-500/20", text: "text-purple-400", glow: "group-hover:border-purple-500/40", }, }; export default function StatCard({ title, value, icon: Icon, iconColor = "indigo", change, subtitle, progress, className, }: StatCardProps) { const c = colorMap[iconColor]; return (
{title}
{subtitle}
)}