import React from "react"; import { clsx } from "clsx"; type ButtonVariant = "primary" | "secondary" | "ghost" | "danger"; type ButtonSize = "sm" | "md" | "lg"; interface ButtonProps extends React.ButtonHTMLAttributes { variant?: ButtonVariant; size?: ButtonSize; loading?: boolean; icon?: React.ReactNode; children?: React.ReactNode; } const variants: Record = { primary: "bg-primary-600 text-white hover:bg-primary-500 shadow-sm", secondary: "bg-surface-100 dark:bg-surface-800 text-surface-900 dark:text-white hover:bg-surface-200 dark:hover:bg-surface-700", ghost: "text-surface-600 dark:text-surface-400 hover:bg-surface-100 dark:hover:bg-surface-800 hover:text-surface-900 dark:hover:text-white", danger: "bg-red-600 text-white hover:bg-red-500", }; const sizes: Record = { sm: "px-3 py-1.5 text-sm gap-1.5", md: "px-4 py-2 text-sm gap-2", lg: "px-6 py-3 text-base gap-2", }; export default function Button({ variant = "primary", size = "md", loading = false, icon, children, className, disabled, ...props }: ButtonProps) { return ( ); }