import type {FC, ReactNode, ButtonHTMLAttributes} from 'react'; import styles from './Button.module.scss'; type ButtonVariant = | 'primary' | 'secondary' | 'settings' | 'github' | 'support'; type ButtonSize = 'small' | 'medium' | 'large'; interface ButtonProps extends ButtonHTMLAttributes { variant?: ButtonVariant; size?: ButtonSize; fullWidth?: boolean; children: ReactNode; } export const Button: FC = ({ variant = 'primary', size = 'medium', fullWidth = false, children, className, ...props }) => { const classNames = [ styles.button, styles[variant], styles[size], fullWidth && styles.fullWidth, className, ] .filter(Boolean) .join(' '); return ( ); };