import React from 'react'; interface MarginReportSkeletonProps { /** Enable pulse animation (default: true) */ animate?: boolean; /** Optional explanation text shown above overlay content */ description?: React.ReactNode; /** Optional React node displayed over skeleton (button, loader, etc.) */ overlayContent?: React.ReactNode; } export function MarginReportSkeleton({ animate = true, description, overlayContent }: MarginReportSkeletonProps) { return (
{/* Header */}
{/* Summary cards */}
{Array.from({ length: 3 }).map((_, i) => (
))}
{/* MSP Profile & Report Info cards */}
{/* MSP profile skeleton */}
{/* Report info skeleton */}
{/* Vendor solution lists (Commercial & Open-Source) */}
{['Commercial Stack', 'Open-Source Stack'].map((label, idx) => (
{/* list header */}
{/* vendor rows */}
{Array.from({ length: 5 }).map((_, j) => (
{/* left section: icon + text */}
{/* right addon: cost text */}
))}
))}
{/* Strategic Recommendations header placeholder */}
{/* Recommendations grid */}
{Array.from({ length: 3 }).map((_, i) => (
))}
{/* OpenFrame value section */}
{/* Section header */}
{/* Logo placeholder */}
{/* Value cards grid */}
{Array.from({ length: 3 }).map((_, i) => (
))}
{/* CTA Overlay */} {overlayContent && (
{/* Button centered relative to viewport */}
{description && (

{description}

)} {overlayContent}
)}
); }