import { cn } from "@/lib/utils" type Point = { x: number; y: number } function toPath(points: Point[]) { if (!points.length) return "" return points .map((p, i) => `${i === 0 ? "M" : "L"} ${p.x.toFixed(2)} ${p.y.toFixed(2)}`) .join(" ") } export default function MiniLineChart(props: { values: number[]; className?: string }) { const w = 420 const h = 140 const padX = 10 const padY = 14 const max = Math.max(1, ...props.values) const min = Math.min(0, ...props.values) const span = Math.max(1, max - min) const points: Point[] = props.values.map((v, idx) => { const t = props.values.length <= 1 ? 0 : idx / (props.values.length - 1) const x = padX + t * (w - padX * 2) const y = padY + (1 - (v - min) / span) * (h - padY * 2) return { x, y } }) const areaPath = points.length > 1 ? `${toPath(points)} L ${points[points.length - 1].x} ${h - padY} L ${points[0].x} ${h - padY} Z` : "" return ( {points.length ? ( ) : null} ) }