import type { ButtonHTMLAttributes, ReactNode } from 'react' type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'ghost' type ButtonProps = ButtonHTMLAttributes & { variant?: ButtonVariant size?: 'sm' | 'md' | 'lg' loading?: boolean icon?: ReactNode } const variantStyles: Record = { primary: 'bg-[image:var(--gradient-btn-primary)] text-[var(--color-btn-primary-fg)] shadow-[var(--shadow-button-primary)] hover:bg-[image:var(--gradient-btn-primary-hover)] hover:brightness-105 active:translate-y-[1px]', secondary: 'bg-[var(--color-surface)] text-[var(--color-text-primary)] border border-[var(--color-border)] hover:bg-[var(--color-surface-hover)]', danger: 'bg-[var(--color-error)] text-white hover:opacity-90', ghost: 'bg-transparent text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)]', } const sizeStyles = { sm: 'px-2 py-1 text-xs', md: 'px-4 py-2 text-sm', lg: 'px-5 py-2.5 text-sm', } export function Button({ variant = 'primary', size = 'md', loading = false, icon, disabled, children, className = '', ...props }: ButtonProps) { return ( ) } function Spinner() { return ( ) }