mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-14 06:12:19 +00:00
- Convert all analytics components to use shadcn Card and semantic colors - Update RawTransactionModal with proper shadcn styling and theme support - Fix all remaining hardcoded colors to use CSS variables (bg-card, text-foreground, etc.) - Ensure consistent theming across light/dark modes for all components - Add custom tooltips with semantic colors for chart components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import type { LucideIcon } from "lucide-react";
|
|
import { Card, CardContent } from "../ui/card";
|
|
import { cn } from "../../lib/utils";
|
|
|
|
interface StatCardProps {
|
|
title: string;
|
|
value: string | number;
|
|
subtitle?: string;
|
|
icon: LucideIcon;
|
|
trend?: {
|
|
value: number;
|
|
isPositive: boolean;
|
|
};
|
|
className?: string;
|
|
}
|
|
|
|
export default function StatCard({
|
|
title,
|
|
value,
|
|
subtitle,
|
|
icon: Icon,
|
|
trend,
|
|
className,
|
|
}: StatCardProps) {
|
|
return (
|
|
<Card className={cn(className)}>
|
|
<CardContent className="p-6">
|
|
<div className="flex items-center">
|
|
<div className="flex-shrink-0">
|
|
<Icon className="h-8 w-8 text-primary" />
|
|
</div>
|
|
<div className="ml-5 w-0 flex-1">
|
|
<dl>
|
|
<dt className="text-sm font-medium text-muted-foreground truncate">
|
|
{title}
|
|
</dt>
|
|
<dd className="flex items-baseline">
|
|
<div className="text-2xl font-semibold text-foreground">
|
|
{value}
|
|
</div>
|
|
{trend && (
|
|
<div
|
|
className={cn(
|
|
"ml-2 flex items-baseline text-sm font-semibold",
|
|
trend.isPositive
|
|
? "text-green-600 dark:text-green-400"
|
|
: "text-red-600 dark:text-red-400",
|
|
)}
|
|
>
|
|
{trend.isPositive ? "+" : ""}
|
|
{trend.value}%
|
|
</div>
|
|
)}
|
|
</dd>
|
|
{subtitle && (
|
|
<dd className="text-sm text-muted-foreground mt-1">
|
|
{subtitle}
|
|
</dd>
|
|
)}
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
);
|
|
}
|