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 (
);
}