import { cn } from "@/lib/utils" interface SkeletonProps extends React.HTMLAttributes {} export function Skeleton({ className, ...props }: SkeletonProps) { return (
) } // Skeleton variants for common components export function SkeletonCard() { return (
) } export function SkeletonBuildCard() { return (
{/* Image skeleton */}
{/* Title */} {/* Description */}
{/* Stats */}
{/* User info */}
) } export function SkeletonTable({ rows = 5 }: { rows?: number }) { return (
{/* Header */}
{/* Rows */} {Array.from({ length: rows }).map((_, i) => (
))}
) } export function SkeletonAvatar({ size = "md" }: { size?: "sm" | "md" | "lg" }) { const sizeClasses = { sm: "h-8 w-8", md: "h-10 w-10", lg: "h-16 w-16" } return } export function SkeletonText({ lines = 3 }: { lines?: number }) { return (
{Array.from({ length: lines }).map((_, i) => ( ))}
) } export function SkeletonButton() { return } export function SkeletonBadge() { return } export function SkeletonComponentCard() { return (
{/* Image */}
{/* Title */} {/* Specs */}
{/* Price and button */}
) } export function SkeletonGrid({ count = 6, type = "card" }: { count?: number, type?: "card" | "build" | "component" }) { const Component = { card: SkeletonCard, build: SkeletonBuildCard, component: SkeletonComponentCard }[type] return (
{Array.from({ length: count }).map((_, i) => ( ))}
) }