"use client"; import { motion } from "framer-motion"; import { COLORS, VizFrame } from "./common"; export function ParetoCurve({ width = 640, height = 380, xLabel = "annotation hours", yLabel = "mAP gain", }: { width?: number; height?: number; xLabel?: string; yLabel?: string; }) { const padX = 60; const padY = 50; const sx = (x: number) => padX + x * (width - padX * 2); const sy = (y: number) => height - padY - y * (height - padY * 2); const pts = Array.from({ length: 80 }, (_, i) => { const x = i / 79; const y = 1 - Math.exp(-x * 3.2); return [x, y] as [number, number]; }); const path = `M ${pts.map((p) => `${sx(p[0])},${sy(p[1])}`).join(" L ")}`; return ( {/* axes */} {xLabel} {yLabel} {/* Knee marker */} diminishing returns ); }