Newer
Older
import React from "react";
import { Card, CardContent } from "./ui/card";
function formatNumber(n: number) {
return new Intl.NumberFormat("fr-FR").format(n);
export default function KpiStrip({
metrics,
}: {
metrics: { label: string; value: number; delta?: number }[];
}) {
return (
<div className="grid grid-cols-1 md:grid-cols-3 gap-3 mb-4">
{metrics.map((m) => (
<Card key={m.label}>
<CardContent>
<div className="text-xs text-slate-500 dark:text-slate-300">
{m.label}
</div>
<div className="text-2xl font-semibold">
{formatNumber(m.value)}
</div>
{m.delta !== undefined && (
<div
className={
(m.delta >= 0
? "text-emerald-600"
: "text-rose-600") + " text-xs"
}
>
{m.delta >= 0
? `+${(m.delta * 100).toFixed(1)}%`
: `${(m.delta * 100).toFixed(1)}%`}
</div>
)}
</CardContent>
</Card>
))}
</div>
);