import styles from './Spinner.module.css' type SpinnerSize = 'sm' | 'md' | 'lg' interface Props { /** Размер спиннера. По умолчанию `md`. */ size?: SpinnerSize /** Подпись под спиннером. */ label?: string /** Растянуть на всю высоту контейнера и отцентрировать содержимое. */ fullscreen?: boolean /** Зафиксировать поверх всего экрана с подложкой (для загрузки на весь вьюпорт). */ overlay?: boolean className?: string } export function Spinner({ size = 'md', label, fullscreen, overlay, className }: Props) { const wrapClass = [ styles.wrap, fullscreen ? styles.fullscreen : '', overlay ? styles.overlay : '', className ?? '', ] .filter(Boolean) .join(' ') return (
) }