/** Pulse skeletons used as Suspense fallbacks (the route itself is not wrapped in loading.tsx so 308/404 status codes stay real). */ export function Bone({ className }: { className: string }) { return
; } export function SectionSkeleton({ rows = 8, chart = false, title }: { rows?: number; chart?: boolean; title?: string }) { return (
{chart && }
{Array.from({ length: rows }).map((_, i) => ( ))}
); } export function TableSkeleton({ rows = 12 }: { rows?: number }) { return (
{Array.from({ length: rows }).map((_, i) => ( ))}
); }