import { Card, CardContent } from "@/components/ui/card"; import { StatusBadge } from "./status-badge"; const hostDescriptions: Record = { atlantis: "NAS \u00b7 media stack", calypso: "DNS \u00b7 SSO \u00b7 Headscale", olares: "K3s \u00b7 RTX 5090", nuc: "lightweight svcs", rpi5: "Uptime Kuma", }; interface HostCardProps { name: string; running: number; total: number; error?: boolean; } export function HostCard({ name, running, total, error }: HostCardProps) { const borderColor = error ? "border-red-500/30 hover:border-red-500/50" : running > 0 ? "border-green-500/20 hover:border-green-500/40" : "border-amber-500/20 hover:border-amber-500/40"; const glowColor = error ? "hover:shadow-red-500/5" : running > 0 ? "hover:shadow-green-500/5" : "hover:shadow-amber-500/5"; const pct = total > 0 ? (running / total) * 100 : 0; return (
{name} 0 ? "green" : "amber"} label={error ? "error" : "online"} />

{running}/{total} containers

{hostDescriptions[name] && (

{hostDescriptions[name]}

)} {/* Utilization micro-bar */}
); }