import { ReactNode, ButtonHTMLAttributes } from "react"; interface ButtonProps extends ButtonHTMLAttributes { children: ReactNode; variant?: "primary" | "secondary" | "ghost" | "danger"; size?: "sm" | "md" | "lg"; fullWidth?: boolean; loading?: boolean; } const variants = { primary: "bg-rose-400 hover:bg-rose-500 text-white disabled:bg-gray-200 dark:disabled:bg-gray-600 disabled:text-gray-400", secondary: "bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-200", ghost: "bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-600 dark:text-gray-400", danger: "bg-red-500 hover:bg-red-600 text-white", }; const sizes = { sm: "px-3 py-1.5 text-xs rounded-lg", md: "px-4 py-2 text-sm rounded-xl", lg: "px-6 py-3 text-base rounded-xl", }; export function Button({ children, variant = "primary", size = "md", fullWidth = false, loading = false, className = "", disabled, ...rest }: ButtonProps) { return ( ); }