import React from 'react'; import { cn } from '../../utils/cn'; type ButtonVariant = 'default' | 'outline' | 'ghost' | 'link' | 'destructive'; type ButtonSize = 'default' | 'sm' | 'lg' | 'icon'; interface ButtonProps extends React.ButtonHTMLAttributes { variant?: ButtonVariant; size?: ButtonSize; asChild?: boolean; children: React.ReactNode; } const variantStyles: Record = { default: 'bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500', outline: 'border border-gray-300 dark:border-gray-700 bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300', ghost: 'bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300', link: 'bg-transparent underline-offset-4 hover:underline text-blue-500 hover:text-blue-600', destructive: 'bg-red-500 text-white hover:bg-red-600 focus:ring-red-500', }; const sizeStyles: Record = { default: 'h-10 py-2 px-4', sm: 'h-8 px-3 text-sm', lg: 'h-12 px-6', icon: 'h-10 w-10 p-0', }; export function Button({ variant = 'default', size = 'default', className, disabled, children, ...props }: ButtonProps) { return ( ); }