import { Card } from "@/components/ui/card";
import { Skeleton } from "@/components/ui/skeleton";
import {
Table,
TableBody,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { Tabs, TabsContent, TabsList } from "@/components/ui/tabs";
/**
* Skeleton para a página de relatórios de categorias
* Mantém a mesma estrutura de filtros, tabs e conteúdo
*/
export function CategoryReportSkeleton() {
return (
{/* Filters Skeleton */}
{/* Category MultiSelect */}
{/* Start Period */}
{/* End Period */}
{/* Clear Button */}
{/* Export Button */}
{/* Tabs Skeleton */}
{/* Desktop Table Skeleton */}
{/* Mobile Cards Skeleton */}
{Array.from({ length: 5 }).map((_, i) => (
{/* Category name with icon */}
{/* Type badge */}
{/* Values */}
{Array.from({ length: 3 }).map((_, j) => (
))}
))}
{/* Chart Skeleton */}
{/* Chart title area */}
{/* Chart area */}
{/* Legend */}
{Array.from({ length: 6 }).map((_, i) => (
))}
);
}
/**
* Skeleton para a tabela de relatórios de categorias
* Mantém a estrutura de colunas: Categoria, Tipo, múltiplos períodos, Total
*/
function CategoryReportTableSkeleton() {
// Simula 6 períodos (colunas)
const periodColumns = 6;
return (
{/* Categoria */}
{/* Period columns */}
{Array.from({ length: periodColumns }).map((_, i) => (
))}
{/* Total */}
{Array.from({ length: 8 }).map((_, rowIndex) => (
{/* Category name with dot and icon */}
{/* Period values */}
{Array.from({ length: periodColumns }).map((_, colIndex) => (
{colIndex > 0 && (
)}
))}
{/* Total */}
))}
{/* Total label */}
{/* Period totals */}
{Array.from({ length: periodColumns }).map((_, i) => (
))}
{/* Grand total */}
);
}