UNPKG

grommet

Version:

focus on the essential experience

108 lines (100 loc) 2.22 kB
import { string } from 'prop-types'; import * as React from 'react'; import { A11yTitleType, AlignSelfType, BackgroundType, ColorType, FillType, GapType, GridAreaType, HoverIndicatorType, MarginType, Omit, PadType, PolymorphicType, } from '../../utils'; import { TipProps } from '../Tip'; export interface ButtonProps { a11yTitle?: A11yTitleType; alignSelf?: AlignSelfType; badge?: | boolean | number | { background?: BackgroundType; max?: number; value?: boolean | number; } | JSX.Element; children?: | React.ReactNode | (({ disabled, hover, focus, }: { disabled: boolean; hover: boolean; focus: boolean; }) => React.ReactNode); busy?: boolean; gridArea?: GridAreaType; margin?: MarginType; active?: boolean; color?: ColorType; disabled?: boolean; fill?: FillType; focusIndicator?: boolean | 'inset'; gap?: GapType; hoverIndicator?: HoverIndicatorType; href?: string; justify?: | 'around' | 'between' | 'center' | 'end' | 'evenly' | 'start' | 'stretch'; target?: '_self' | '_blank' | '_parent' | '_top' | string; icon?: JSX.Element; kind?: string; label?: React.ReactNode; messages?: { busy?: string; success?: string; }; pad?: PadType; plain?: boolean; primary?: boolean; reverse?: boolean; secondary?: boolean; size?: 'small' | 'medium' | 'large' | string; success?: boolean; tip?: TipProps | string; type?: 'button' | 'reset' | 'submit'; as?: PolymorphicType; } type anchorType = Omit< React.DetailedHTMLProps< React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement >, 'color' >; type buttonType = Omit< React.DetailedHTMLProps< React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement >, 'color' >; type extendType = anchorType & buttonType; export interface ButtonExtendedProps extends ButtonProps, Omit<extendType, 'target' | 'children'> {} // Keep type alias for backwards compatibility. export type ButtonType = ButtonProps & extendType; declare const Button: React.FC<ButtonExtendedProps>; export { Button };