import { type CSSProperties, type HTMLAttributes } from 'react'; import { useReducedMotion } from '../../hooks/useReducedMotion'; export interface SkeletonBlockProps extends HTMLAttributes { width?: number | string; height?: number | string; rounded?: 'sm' | 'md' | 'lg' | 'xl' | 'full'; animated?: boolean; } export interface LoadingProgressBarProps { progress?: number; label?: string; } export interface LoadingFallbackProps { label?: string; detail?: string; progress?: number; compact?: boolean; } const roundedClass = { sm: 'rounded', md: 'rounded-md', lg: 'rounded-lg', xl: 'rounded-xl', full: 'rounded-full', }; export function SkeletonBlock({ width = '100%', height = 16, rounded = 'md', animated = true, className, style, ...props }: SkeletonBlockProps): JSX.Element { const reduceMotion = useReducedMotion(); const blockStyle: CSSProperties = { width, height, ...style, }; return (