export interface ButtonProps { children?: React.ReactNode; onClick?: (e: React.MouseEvent) => void; onDoubleClick?: (e: React.MouseEvent) => void; onMouseDown?: (e: React.MouseEvent) => void; onMouseEnter?: (e: React.MouseEvent) => void; onKeyDown?: (e: React.KeyboardEvent) => void; type?: "button" | "submit" | "reset"; disabled?: boolean; variant?: "primary" | "secondary" | "danger" | "success" | "ghost" | "text" | "outline"; size?: "xsmall" | "small" | "medium" | "large"; shape?: "default" | "circle"; fullWidth?: boolean; icon?: React.ReactNode; iconPosition?: "left" | "right"; iconOnly?: boolean; /** * Inline mode (default: false). When true, the Button acts as a thin * styling shell over a consumer-owned layout: * * - `min-height` is reset to `auto` so the host CSS controls height * - the ghost-variant hover/active translate + box-shadow are * suppressed (no jitter) * - children render directly inside the `