import * as React from 'react' import { SemanticCOLORS, SemanticFLOATS, SemanticShorthandContent, SemanticShorthandItem, SemanticSIZES, } from '../../generic' import { IconProps } from '../Icon' import { LabelProps } from '../Label' import ButtonContent from './ButtonContent' import ButtonGroup from './ButtonGroup' import ButtonOr from './ButtonOr' export interface ButtonProps extends StrictButtonProps { [key: string]: any } export interface StrictButtonProps { /** An element type to render as (string or function). */ as?: any /** A button can show it is currently the active user selection. */ active?: boolean /** A button can animate to show hidden content. */ animated?: boolean | 'fade' | 'vertical' /** A button can be attached to other content. */ attached?: boolean | 'left' | 'right' | 'top' | 'bottom' /** A basic button is less pronounced. */ basic?: boolean /** Primary content. */ children?: React.ReactNode /** A button can be circular. */ circular?: boolean /** Additional classes. */ className?: string /** A button can have different colors. */ color?: | SemanticCOLORS | 'facebook' | 'google plus' | 'vk' | 'twitter' | 'linkedin' | 'instagram' | 'youtube' /** A button can reduce its padding to fit into tighter spaces. */ compact?: boolean /** Shorthand for primary content. */ content?: SemanticShorthandContent /** A button can show it is currently unable to be interacted with. */ disabled?: boolean /** A button can be aligned to the left or right of its container. */ floated?: SemanticFLOATS /** A button can take the width of its container. */ fluid?: boolean /** Add an Icon by name, props object, or pass an . */ icon?: boolean | SemanticShorthandItem /** A button can be formatted to appear on dark backgrounds. */ inverted?: boolean /** Add a Label by text, props object, or pass a