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;