"use client"
import { Skeleton } from "@/components/ui/skeleton"
import { cn } from "@/lib/utils"
// ─── Dashboard skeletons ──────────────────────────────────────────────────────
function MetricCardSkeleton({ label, icon }: { label: string; icon: React.ReactNode }) {
return (
)
}
function CurrentUnitCardSkeleton({ icon }: { icon: React.ReactNode }) {
return (
)
}
export function CurrentSliceCardSkeleton() {
return (
Current Slice
{[1, 2, 3].map((i) => (
))}
)
}
export function SessionCardSkeleton() {
return (
Session
{[1, 2, 3].map((i) => (
{i === 1 ? "Model" : i === 2 ? "Cost" : "Tokens"}
))}
)
}
export function RecoveryCardSkeleton() {
return (
Recovery Summary
{[1, 2, 3, 4].map((i) => (
))}
)
}
export function ActivityCardSkeleton() {
return (
Recent Activity
{[1, 2, 3, 4].map((i) => (
))}
)
}
interface DashboardSkeletonProps {
icons: {
Activity: React.ReactNode
Clock: React.ReactNode
DollarSign: React.ReactNode
Zap: React.ReactNode
}
}
export function DashboardMetricsSkeleton({ icons }: DashboardSkeletonProps) {
return (
)
}
// ─── Sidebar skeletons ────────────────────────────────────────────────────────
/** Only the data-dependent portion of the sidebar content panel */
export function SidebarDataSkeleton() {
return (
<>
{/* Project path */}
{/* Scope section */}
{/* Milestones list */}
Milestones
{[1, 2].map((m) => (
{m === 1 && (
{[1, 2, 3].map((s) => (
))}
)}
))}
>
)
}
// ─── Status bar value skeletons ───────────────────────────────────────────────
export function StatusBarValueSkeleton({ width = "w-16" }: { width?: string }) {
return
}