"use client"; import { KeyRound } from "lucide-react"; import type { ServerSystemUser } from "@/lib/api"; import type { UserBadgeTone } from "@/app/servers/components/server-config-utils"; export function ConfigInfoRow({ label, value, }: { label: string; value: string; }) { return (
{label} {value}
); } export function UserBadge({ label, tone, }: { label: string; tone: UserBadgeTone; }) { const palette = { danger: { color: "#ef4444", background: "rgba(239,68,68,0.08)", border: "rgba(239,68,68,0.2)", }, success: { color: "#10b981", background: "rgba(16,185,129,0.08)", border: "rgba(16,185,129,0.2)", }, neutral: { color: "var(--text-secondary)", background: "var(--bg-input)", border: "var(--border)", }, warning: { color: "#f59e0b", background: "rgba(245,158,11,0.08)", border: "rgba(245,158,11,0.2)", }, info: { color: "#3b82f6", background: "rgba(59,130,246,0.08)", border: "rgba(59,130,246,0.2)", }, } as const; const style = palette[tone]; return ( {label} ); } export function ServiceStatusBadge({ state }: { state: string }) { const normalized = state.toLowerCase(); const tone = normalized === "active" ? "success" : normalized === "enabled" ? "info" : normalized === "inactive" ? "danger" : "warning"; return ; } export function ServerUserCard({ user }: { user: ServerSystemUser }) { const accountLabel = user.isRoot ? "root" : "non-root"; const accountTone = user.isRoot ? "danger" : "info"; return (
{user.username} {user.isSshUser ? ( ) : null}

UID {user.uid ?? "—"} • GID {user.gid ?? "—"}

0 ? user.groups.join(", ") : "—"} />
); }