import {
Skeleton,
SkeletonTable,
SkeletonText,
} from "@/components/ui/LoadingSkeleton";
/* Route-level loading state for /compare — mirrors the page's structure
(heading + dataset chips, Pareto canvas, head-to-head card, efficiency
canvas) so content streams in without layout shift. Server-safe: all
shimmer comes from the .skeleton class, which collapses to a static
block under prefers-reduced-motion. */
function HeadingSkeleton({ titleWidth = 320 }: { titleWidth?: number }) {
return (
);
}
function ChartCardSkeleton({ height }: { height: number }) {
return (
{/* control row: legend chips left, toggle right */}
{[72, 96, 64, 88].map((w, i) => (
))}
{/* chart canvas */}
{/* caption */}
);
}
export default function CompareLoading() {
return (
{/* 02 · Compare heading + dataset-scope chips */}
{[88, 76, 112].map((w, i) => (
))}
{/* pulse line strip */}
{/* Pareto frontier card */}
{/* 02.1 · Head-to-head */}
{/* three model selectors */}
{[0, 1, 2].map((i) => (
))}
{/* delta table */}
{/* profile bars */}
{[0, 1, 2, 3].map((i) => (
))}
{/* 02.2 · Efficiency */}
);
}