import { cva, type VariantProps } from "class-variance-authority"; import React from "react"; import { cn } from "@/lib/utils"; const buttonVariants = cva( "inline-flex items-center justify-center gap-2 rounded-xl text-sm font-semibold transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-400 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { primary: "bg-brand-gradient text-white shadow-lg shadow-brand-900/20 hover:brightness-110 dark:shadow-brand-900/40", secondary: "border border-slate-200 bg-white text-slate-800 hover:bg-slate-50 dark:border-white/15 dark:bg-white/5 dark:text-white dark:hover:bg-white/10", ghost: "text-slate-600 hover:text-slate-900 hover:bg-slate-100 dark:text-slate-300 dark:hover:text-white dark:hover:bg-white/5", }, size: { md: "h-11 px-5", lg: "h-12 px-7 text-base", sm: "h-9 px-4", }, }, defaultVariants: { variant: "primary", size: "md" }, } ); export interface ButtonProps extends React.ButtonHTMLAttributes, VariantProps { asChild?: boolean; } export function Button({ className, variant, size, asChild, ...props }: ButtonProps) { const Component = asChild ? React.forwardRef((props, ref) => (