import { Card, CardContent } from "@/components/ui/card"; import { StatusBadge } from "./status-badge"; const hostColors: Record = { atlantis: "text-blue-400", calypso: "text-violet-400", olares: "text-emerald-400", nuc: "text-amber-400", rpi5: "text-cyan-400", }; const hostDescriptions: Record = { atlantis: "NAS · media stack", calypso: "DNS · SSO · Headscale", olares: "K3s · 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 statusColor = error ? "red" : running > 0 ? "green" : "amber"; const hoverBorder = error ? "hover:border-red-500/20" : running > 0 ? "hover:border-green-500/20" : "hover:border-amber-500/20"; const hoverGlow = error ? "hover:shadow-[0_0_16px_rgba(239,68,68,0.05)]" : running > 0 ? "hover:shadow-[0_0_16px_rgba(34,197,94,0.05)]" : "hover:shadow-[0_0_16px_rgba(245,158,11,0.05)]"; return (
{name}

{running}/{total} containers

{hostDescriptions[name] && (

{hostDescriptions[name]}

)}
); } export function HostRow({ name, running, total, error }: HostCardProps) { const isOlares = name === "olares"; return (
{name}
{isOlares && !total ? "K3s + GPU" : `${running}/${total}`}
); }