import React from 'react'; import { FlintButton as FlintButtonElement } from '@getufy/flint-ui/button/flint-button'; /** * Button: a clickable element used for actions and navigation. */ export interface FlintButtonProps extends Omit, 'color'> { /** * Visual appearance of the button (structural style). * Allowed values: 'filled' | 'outlined' | 'text' | 'ghost' */ appearance?: 'filled' | 'outlined' | 'text' | 'ghost'; /** * Visual style variant. Alias for `appearance`. * Type: `ButtonAppearance` */ variant?: FlintButtonElement['variant']; /** * Semantic color of the button. * Allowed values: 'primary' | 'neutral' | 'destructive' | 'success' | 'warning' */ color?: 'primary' | 'neutral' | 'destructive' | 'success' | 'warning'; /** * Size of the button. * Allowed values: 'sm' | 'md' | 'lg' */ size?: 'sm' | 'md' | 'lg'; /** Disables the button and prevents interaction. */ disabled?: boolean; /** Whether the button stretches to fill its container width. */ fullWidth?: boolean; /** * Button type attribute. When `submit` or `reset`, a hidden native * Allowed values: 'button' | 'submit' | 'reset' */ type?: 'button' | 'submit' | 'reset'; /** Accessible label for screen readers. Essential for icon-only buttons. */ label?: string; /** Shows a loading spinner and disables interaction. */ loading?: boolean; /** When set, renders an `` tag instead of a `