import type { ButtonHTMLAttributes } from "react";
type Variant = "primary" | "secondary" | "ghost" | "danger";
type Size = "sm" | "md";
const base =
"inline-flex items-center justify-center gap-1.5 rounded-md font-medium " +
"transition-colors disabled:opacity-50 disabled:cursor-not-allowed " +
"whitespace-nowrap select-none";
const variants: Record = {
primary:
"bg-accent-500 text-white hover:bg-accent-400 active:bg-accent-600",
secondary:
"bg-surface-2 text-fg border border-border hover:border-border-strong hover:bg-surface-3",
ghost:
"bg-transparent text-fg hover:bg-surface-2",
danger:
"bg-transparent text-danger border border-border hover:bg-danger/10 hover:border-danger/60",
};
const sizes: Record = {
sm: "h-7 px-2.5 text-[13px]",
md: "h-9 px-3.5 text-sm",
};
export interface ButtonProps extends ButtonHTMLAttributes {
variant?: Variant;
size?: Size;
}
export function Button({
variant = "primary",
size = "md",
className = "",
type = "button",
...rest
}: ButtonProps) {
return (
);
}