'use client'
import { motion } from 'framer-motion'
// Base skeleton component
function SkeletonPulse({ className }: { className?: string }) {
return (
)
}
// Document list item skeleton
export function DocumentItemSkeleton() {
return (
)
}
// Full document list skeleton
export function DocumentListSkeleton({ count = 5 }: { count?: number }) {
return (
{Array.from({ length: count }).map((_, i) => (
))}
Loading documents...
)
}
// Preview content skeleton
export function PreviewSkeleton() {
return (
{/* Header skeleton */}
{/* Content skeleton */}
Loading preview...
)
}
// Stats card skeleton
export function StatsCardSkeleton() {
return (
)
}
// Stats grid skeleton
export function StatsGridSkeleton() {
return (
Loading statistics...
)
}
// Download panel skeleton
export function DownloadPanelSkeleton() {
return (
{/* Icon and text */}
{/* Button */}
Loading download options...
)
}
// Featured document button skeleton
export function FeaturedDocSkeleton() {
return (
)
}
// Table of contents skeleton
export function TOCSkeleton() {
return (
)
}
// Header skeleton for mobile menu
export function NavSkeleton() {
return (
Loading navigation...
)
}