import { cn } from '@/lib/utils'; /** * LoadingSpinnerProps - Propriétés du composant LoadingSpinner * * @interface LoadingSpinnerProps */ interface LoadingSpinnerProps { /** * Taille du spinner * * - `sm`: Petit (h-4 w-4) * - `md`: Moyen (h-8 w-8) - par défaut * - `lg`: Grand (h-12 w-12) * * @default 'md' */ size?: 'sm' | 'md' | 'lg'; /** * Classes CSS personnalisées */ className?: string; /** * Texte à afficher sous le spinner * * @example * ```tsx * * ``` */ text?: string; } /** * LoadingSpinner - Composant de spinner de chargement * * Composant de spinner animé pour indiquer un état de chargement. * Inclut un texte optionnel et supporte plusieurs tailles. * * @example * ```tsx * // Spinner simple * * * // Spinner avec texte * * * // Spinner de grande taille * * ``` * * @component * @param {LoadingSpinnerProps} props - Propriétés du composant * @returns {JSX.Element} Spinner animé avec texte optionnel */ export function LoadingSpinner({ size = 'md', className, text, }: LoadingSpinnerProps) { const sizeClasses = { sm: 'h-4 w-4', md: 'h-8 w-8', lg: 'h-12 w-12', }; return (
Chargement...
{text && (

{text}

)}
); }