import type { ReactNode } from "react"; import { cn } from "~/lib/utils.ts"; export type StatusTone = "success" | "warning" | "destructive" | "neutral"; // 状态色只表示状态,不做装饰(docs/design/interface-materials.md) const TONE: Record = { success: { box: "border-success/30 bg-success/10 text-success", dot: "bg-success" }, warning: { box: "border-warning/30 bg-warning/10 text-warning", dot: "bg-warning" }, destructive: { box: "border-destructive/30 bg-destructive/10 text-destructive", dot: "bg-destructive" }, neutral: { box: "border-border bg-foreground/[0.04] text-muted-foreground", dot: "bg-muted-foreground" }, }; /** 状态徽章:文字必填,不只靠颜色传达状态 */ export function StatusBadge({ tone = "neutral", children, className, }: { tone?: StatusTone; children: ReactNode; className?: string; }) { const t = TONE[tone]; return ( {children} ); }