import React from 'react'; import { motion } from 'framer-motion'; import { classNames } from '~/utils/classNames'; interface LoadingStateProps { message?: string; size?: 'sm' | 'md' | 'lg'; className?: string; showProgress?: boolean; progress?: number; } export function LoadingState({ message = 'Loading...', size = 'md', className, showProgress = false, progress = 0, }: LoadingStateProps) { const sizeClasses = { sm: 'w-4 h-4', md: 'w-6 h-6', lg: 'w-8 h-8', }; return (
{message}
{showProgress && (
)} ); } interface SkeletonProps { className?: string; lines?: number; } export function Skeleton({ className, lines = 1 }: SkeletonProps) { return (
{Array.from({ length: lines }, (_, i) => (
1 ? 'w-3/4' : 'w-full', )} /> ))}
); } interface ServiceLoadingProps { serviceName: string; operation: string; progress?: number; } export function ServiceLoading({ serviceName, operation, progress }: ServiceLoadingProps) { return ( ); }