"use client";
import type { ReactNode } from "react";
import { Reveal } from "@/components/animations/reveal";
import { EyebrowMark } from "@/components/brand/eyebrow";
import { Slide } from "@/components/deck/slide";
type KpiItem = {
value: ReactNode;
unit?: string;
caption: ReactNode;
};
type KpiTrioProps = {
number: number;
total: number;
eyebrow: string;
title?: ReactNode;
items: [KpiItem, KpiItem, KpiItem];
/** When true the first KPI gets larger size (asymmetric layout 2fr 1fr 1fr). */
emphasizeFirst?: boolean;
};
/**
* Three KPIs in a single row. Default symmetric. Pass emphasizeFirst to render
* an asymmetric 2fr 1fr 1fr grid with the primary number scaled up.
*/
export function KpiTrio({
number,
total,
eyebrow,
title,
items,
emphasizeFirst = false,
}: KpiTrioProps) {
const gridStyle = emphasizeFirst
? { gridTemplateColumns: "2fr 1fr 1fr" }
: { gridTemplateColumns: "1fr 1fr 1fr" };
return (
{title}
{caption}