import { HTMLAttributeAnchorTarget, ReactNode } from 'react'; import { SizeVariant } from '../types'; export interface ButtonProps { id?: string; children?: ReactNode; leftAccessory?: ReactNode; rightAccessory?: ReactNode; size?: SizeVariant; fullWidth?: boolean; type?: 'link' | 'button'; variant?: ButtonVariant; disabled?: boolean; htmlType?: 'button' | 'submit' | 'reset'; className?: string; href?: string; target?: HTMLAttributeAnchorTarget; onClick?: () => void; onKeyDown?: () => void; } export type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'ghost' | 'icon'; export interface ButtonWrapperProps { size?: SizeVariant; variant?: ButtonVariant; disabled?: boolean; fullWidth?: boolean; } export interface AccessoryProps { size?: SizeVariant; } export interface TextProps { size?: SizeVariant; variant?: ButtonVariant; } export interface ButtonStyleProps { fullWidth?: boolean; variant?: ButtonVariant; } export interface LinkStyleProps { fullWidth?: boolean; variant?: ButtonVariant; disabled?: boolean; } export type TextElement = HTMLButtonElement | HTMLTextAreaElement;