import { cva, type VariantProps } from "class-variance-authority"; import { cn } from "../lib/cn"; const buttonVariants = cva( "inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ctp-blue focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { primary: "bg-ctp-blue text-ctp-base hover:bg-ctp-blue/90", secondary: "bg-ctp-surface1 text-ctp-text hover:bg-ctp-surface1/80", outline: "border border-ctp-surface1 bg-transparent text-ctp-text hover:bg-ctp-surface0", ghost: "text-ctp-text hover:bg-ctp-surface0", destructive: "bg-ctp-red text-ctp-base hover:bg-ctp-red/90", }, size: { sm: "h-8 px-3 text-sm", md: "h-10 px-4 py-2", lg: "h-12 px-8 text-lg", }, }, defaultVariants: { variant: "primary", size: "md", }, }, ); interface ButtonProps extends VariantProps { children: React.ReactNode; onClick?: (e: React.MouseEvent) => void; disabled?: boolean; className?: string; type?: "button" | "submit" | "reset"; } export const Button = ({ children, onClick, disabled = false, variant = "primary", size = "md", className = "", type = "button", }: ButtonProps) => { return ( ); };