import { cn } from "@/lib/utils"; type ButtonVariant = "primary" | "ghost" | "danger" | "secondary"; type ButtonSize = "default" | "compact"; type ButtonProps = React.ButtonHTMLAttributes & { variant?: ButtonVariant; size?: ButtonSize; }; const variantMap: Record = { primary: "border-[color:var(--line-strong)] bg-[color:var(--accent)] text-[#16181c] hover:bg-[color:var(--accent-strong)]", secondary: "border-[color:var(--line-weak)] bg-[color:var(--panel-bright)] text-[color:var(--terminal-bright)] hover:border-[color:var(--line-strong)] hover:bg-[color:var(--panel)]", ghost: "border-[color:var(--line-weak)] bg-transparent text-[color:var(--terminal-bright)] hover:border-[color:var(--line-strong)] hover:bg-[color:var(--panel-soft)]", danger: "border-[color:var(--danger)] bg-[color:var(--danger-soft)] text-[#ffc9c9] hover:bg-[color:var(--danger)] hover:text-[#1e0d0d]", }; const sizeMap: Record = { default: "min-h-11 px-3 py-2 text-sm gap-2", compact: "min-h-8 px-2.5 py-1.5 text-xs gap-1.5", }; export function Button({ className, variant = "primary", size = "default", ...props }: ButtonProps) { return (