export interface CardProps { label: string value: string | number valueColor?: 'green' | 'red' | 'yellow' | 'blue' change?: string changeDirection?: 'up' | 'down' | 'neutral' onClick?: () => void className?: string } const valueColorMap: Record = { green: 'var(--green)', red: 'var(--red)', yellow: 'var(--yellow)', blue: 'var(--blue)', } const directionIcon: Record = { up: '↑', down: '↓', neutral: '→', } const directionColor: Record = { up: 'var(--green)', down: 'var(--red)', neutral: 'var(--text-dim)', } export default function Card({ label, value, valueColor, change, changeDirection, onClick, className = '', }: CardProps) { return (
{label}
{value}
{change !== undefined && changeDirection && (
{directionIcon[changeDirection]} {change}
)}
) }