Add LICENSE (AGPL-3.0-or-later), CONTRIBUTING.md, SECURITY.md, DCO, and NOTICE files. Rewrite README for open-source audience with self-hosting instructions. Redesign color palette to grayscale chrome theme across all components. Add transaction uncategorize API route with tests. Fix VAT account name mismatches in migration 052. Improve import page with SIE file support and loading skeleton. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import { Skeleton } from '@/components/ui/skeleton'
|
|
|
|
export default function DashboardLoading() {
|
|
return (
|
|
<div className="space-y-6">
|
|
{/* Header */}
|
|
<div className="space-y-2">
|
|
<Skeleton className="h-8 w-48" />
|
|
<Skeleton className="h-4 w-72" />
|
|
</div>
|
|
|
|
{/* Summary cards */}
|
|
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
|
|
{[1, 2, 3, 4].map((i) => (
|
|
<div key={i} className="rounded-xl border border-border/60 bg-card p-4 space-y-2">
|
|
<Skeleton className="h-3.5 w-20" />
|
|
<Skeleton className="h-7 w-28" />
|
|
<Skeleton className="h-3 w-16" />
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
{/* Quick actions */}
|
|
<div className="grid grid-cols-2 md:grid-cols-4 gap-2.5">
|
|
{[1, 2, 3, 4].map((i) => (
|
|
<Skeleton key={i} className="h-10 rounded-lg" />
|
|
))}
|
|
</div>
|
|
|
|
{/* Alerts + Deadlines */}
|
|
<div className="grid gap-3 md:grid-cols-2">
|
|
{/* Alerts */}
|
|
<div className="rounded-xl border border-border/60 bg-card p-4 space-y-3">
|
|
<Skeleton className="h-5 w-24" />
|
|
<Skeleton className="h-4 w-full" />
|
|
<Skeleton className="h-4 w-3/4" />
|
|
</div>
|
|
|
|
{/* Deadlines */}
|
|
<div className="rounded-xl border border-border/60 bg-card p-4 space-y-3">
|
|
<Skeleton className="h-5 w-32" />
|
|
{[1, 2, 3].map((i) => (
|
|
<div key={i} className="flex items-center justify-between">
|
|
<Skeleton className="h-4 w-36" />
|
|
<Skeleton className="h-4 w-20" />
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|