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 */}
); }