import React, { forwardRef } from 'react'; export type ButtonVariant = | 'default' | 'cta' | 'danger' | 'info' | 'ghost' | 'link'; export type ButtonSize = 'sm' | 'md' | 'lg'; export interface ButtonProps extends React.ButtonHTMLAttributes { variant?: ButtonVariant; size?: ButtonSize; block?: boolean; isLoading?: boolean; } export const Button = forwardRef( ( { variant = 'default', size = 'md', block = false, isLoading = false, className = '', disabled, children, ...rest }, ref ) => { const classes = [ 'btn', variant !== 'default' && `btn--${variant}`, size !== 'md' && `btn--${size}`, block && 'btn--block', className ] .filter(Boolean) .join(' '); return ( ); } ); Button.displayName = 'Button';