"use client"; interface SkeletonProps { className?: string; variant?: "text" | "circular" | "rectangular"; style?: React.CSSProperties; } export default function Skeleton({ className = "", variant = "rectangular", style }: SkeletonProps) { const baseClasses = "relative overflow-hidden bg-gray-200/80 dark:bg-white/[0.07]"; const variantClasses = { text: "rounded-md h-4 w-full", circular: "rounded-full", rectangular: "rounded-xl", }; return (
); } /* Preset skeleton layouts */ export function SkeletonCard() { return (
); } export function SkeletonStat() { return (
); } export function SkeletonFileCard() { return (
); } export function SkeletonActivity() { return (
); } export function SkeletonRow() { return (
); } export function DashboardSkeleton() { return (
{/* Bandeau */}
{[...Array(4)].map((_, i) => )}
{/* KPI */}
{[...Array(5)].map((_, i) => )}
{/* Stockage + activité */}
{[...Array(5)].map((_, i) => )}
{[...Array(14)].map((_, i) => )}
{/* Reprendre */}
{[...Array(6)].map((_, i) => )}
{/* Timeline + latéral */}
{[...Array(6)].map((_, i) => )}
{[...Array(4)].map((_, i) => )}
{[...Array(4)].map((_, i) => )}
); }