export interface HyperframesLoaderProps { /** Status text shown below the mark. */ title: string; /** Optional secondary detail line. */ detail?: string; /** Optional monospace third line for IDs, counts, or percentages. */ mono?: string; /** Pixel size of the mark itself; status text scales independently. */ size?: number; /** Optional normalized progress value from 0 to 1. */ progress?: number; } export function HyperframesLoader({ title, detail, mono, size = 64, progress, }: HyperframesLoaderProps) { const boundedProgress = typeof progress === "number" && Number.isFinite(progress) ? Math.min(1, Math.max(0, progress)) : undefined; const markFrameSize = Math.round(size * 1.16); return (