import React from 'react'; import { Box, Card, CardContent, Skeleton, Stack, Paper } from '@mui/material'; /** * Skeleton loader for activity cards */ export function ActivityCardSkeleton() { return ( ); } /** * Skeleton loader for activity list */ export function ActivityListSkeleton({ count = 3 }: { count?: number }) { return ( <> {Array.from({ length: count }).map((_, index) => ( ))} ); } /** * Skeleton loader for stat cards */ export function StatCardSkeleton() { return ( ); } /** * Skeleton loader for stat grid */ export function StatGridSkeleton({ count = 4 }: { count?: number }) { return ( {Array.from({ length: count }).map((_, index) => ( ))} ); } /** * Skeleton loader for charts */ export function ChartSkeleton({ height = 300 }: { height?: number }) { return ( ); } /** * Skeleton loader for child profile card */ export function ChildProfileSkeleton() { return ( ); } /** * Skeleton loader for form fields */ export function FormSkeleton() { return ( ); } /** * Skeleton loader for table rows */ export function TableRowSkeleton({ columns = 4 }: { columns?: number }) { return ( {Array.from({ length: columns }).map((_, index) => ( ))} ); } /** * Skeleton loader for table */ export function TableSkeleton({ rows = 5, columns = 4 }: { rows?: number; columns?: number }) { return ( {/* Header */} {Array.from({ length: columns }).map((_, index) => ( ))} {/* Rows */} {Array.from({ length: rows }).map((_, index) => ( ))} ); } /** * Skeleton loader for list items */ export function ListItemSkeleton() { return ( ); } /** * Skeleton loader for list */ export function ListSkeleton({ count = 5 }: { count?: number }) { return ( {Array.from({ length: count }).map((_, index) => ( ))} ); } /** * Skeleton loader for dashboard summary */ export function DashboardSummarySkeleton() { return ( {/* Header */} {/* Stats Grid */} {/* Recent Activities */} {/* Charts */} ); } /** * Skeleton loader for chat messages */ export function ChatMessageSkeleton({ isUser = false }: { isUser?: boolean }) { return ( {!isUser && } {isUser && } ); } /** * Skeleton loader for chat conversation */ export function ChatSkeleton({ messageCount = 4 }: { messageCount?: number }) { return ( {Array.from({ length: messageCount }).map((_, index) => ( ))} ); } /** * Skeleton loader for page content */ export function PageSkeleton() { return ( {/* Page header */} {/* Content */} ); } /** * Full page loading overlay with spinner */ export function LoadingOverlay({ message = 'Loading...' }: { message?: string }) { return ( ); }