feat: dashboard unified widgets for all services

Implement 8 rich dashboard widgets replacing placeholder stat cards:
- ThreatScoreWidget: SVG circular gauge (0-100) with color-coded score
- AlertFeedWidget: Real-time alert stream with mark-as-read actions
- ExposureWidget: DarkWatch exposure summary with run-scan button
- VoicePrintWidget: Enrollment/analysis counts with mini bar chart
- SpamShieldWidget: Blocked calls/SMS stats with custom rules
- HomeTitleWidget: Watched properties and recent changes
- RemoveBrokersWidget: Broker registry progress with completion bar
- QuickActionsWidget: Shortcut buttons for common tasks

Update dashboard route with responsive 2-column grid layout,
auto-refresh via 60-second intervals, Suspense boundaries,
and skeleton loading states. Update tests for new widget layout.
This commit is contained in:
2026-05-25 17:45:40 -04:00
parent 7cbcde6a6b
commit 3a8e329f02
12 changed files with 1444 additions and 106 deletions

View File

@@ -1,5 +1,10 @@
export { default as Sidebar } from "./Sidebar";
export { default as TopBar } from "./TopBar";
export { default as StatCard } from "./StatCard";
export { default as ActivityFeed } from "./ActivityFeed";
export { default as QuickActions } from "./QuickActions";
export { default as ThreatScoreWidget } from "./ThreatScoreWidget";
export { default as AlertFeedWidget } from "./AlertFeedWidget";
export { default as ExposureWidget } from "./ExposureWidget";
export { default as VoicePrintWidget } from "./VoicePrintWidget";
export { default as SpamShieldWidget } from "./SpamShieldWidget";
export { default as HomeTitleWidget } from "./HomeTitleWidget";
export { default as RemoveBrokersWidget } from "./RemoveBrokersWidget";
export { default as QuickActionsWidget } from "./QuickActionsWidget";