import { forwardRef, type ButtonHTMLAttributes, type InputHTMLAttributes, type LabelHTMLAttributes, type TextareaHTMLAttributes, type HTMLAttributes, type SelectHTMLAttributes } from 'react'; import { cva, type VariantProps } from 'class-variance-authority'; import { cn } from '../../lib/cn'; const buttonStyles = cva( 'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[#00FF6A]/40 disabled:opacity-50 disabled:pointer-events-none whitespace-nowrap', { variants: { variant: { primary: 'bg-[#00FF6A] text-[#0A0A0A] hover:bg-[#00CC55]', secondary: 'bg-[#1A1A1A] text-[#F5F5F5] border border-[#333] hover:bg-[#222] hover:border-[#444]', ghost: 'text-[#999] hover:text-[#F5F5F5] hover:bg-[#1A1A1A]', danger: 'bg-[#FF3B3B] text-white hover:bg-[#D32F2F]', outline: 'border border-[#333] bg-transparent text-[#F5F5F5] hover:bg-[#1A1A1A]', }, size: { sm: 'h-8 px-3 text-xs', md: 'h-9 px-4', lg: 'h-11 px-6', icon: 'h-9 w-9', }, }, defaultVariants: { variant: 'primary', size: 'md' }, }, ); export interface ButtonProps extends ButtonHTMLAttributes, VariantProps {} export const Button = forwardRef( ({ className, variant, size, ...props }, ref) => (