- AnalyzerStagePips: 3-dot stage indicator with caret separators, sr-only accessibility label - ConfidenceBadge: High/Medium/Low buckets (0.85/0.65) with green/amber/slate tones, dark mode - AnalyzerRowSkeleton: Card-wrapped skeleton matching row shape (no border-l-4 per D-11) - AnalyzerFeedRow: Full card row with header/title/summary/footer, Link to /mobile/analyzer/[id]
29 lines
1,001 B
TypeScript
29 lines
1,001 B
TypeScript
'use client';
|
|
|
|
/* AnalyzerRowSkeleton — phase 06 (D-28).
|
|
* Purpose: Skeleton placeholder matching analyzer feed row shape (no priority stripe per D-11).
|
|
* Renders 5 instances on initial load.
|
|
* Props: none — purely presentational. */
|
|
|
|
import { Card, CardContent } from '@/components/ui/card';
|
|
import { Skeleton } from '@/components/ui/skeleton';
|
|
|
|
export function AnalyzerRowSkeleton() {
|
|
return (
|
|
<Card className="py-0 shadow-none gap-0">
|
|
<CardContent className="px-4 py-4 space-y-1.5">
|
|
<div className="flex justify-between">
|
|
<Skeleton className="h-3 w-16" />
|
|
<Skeleton className="h-3 w-10" />
|
|
</div>
|
|
<Skeleton className="h-4 w-3/4 mt-0.5" />
|
|
<Skeleton className="h-3 w-full mt-1" />
|
|
<Skeleton className="h-3 w-2/3" />
|
|
<div className="flex justify-between mt-2">
|
|
<Skeleton className="h-2 w-20" />
|
|
<Skeleton className="h-3 w-12" />
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
);
|
|
}
|