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 (
);
}