/** @module @airtable/blocks/ui: TextButton */ /** */ import * as React from 'react'; import * as PropTypes from 'prop-types'; import { EnumType } from '../private_utils'; import { AriaProps } from './types/aria_props'; import { OptionalResponsiveProp } from './system/utils/types'; import { MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, SpacingSetProps } from './system'; import { TextSizeProp } from './text'; import { IconName } from './icon_config'; import { TooltipAnchorProps } from './types/tooltip_anchor_props'; import { DataAttributesProp } from './types/data_attributes_prop'; /** * Style props for the {@link TextButton} component. Also accepts: * * {@link FlexItemSetProps} * * {@link MaxWidthProps} * * {@link MinWidthProps} * * {@link PositionSetProps} * * {@link SpacingSetProps} * * {@link WidthProps} * * @noInheritDoc */ export interface TextButtonStyleProps extends MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, SpacingSetProps { /** Defines the display type of an element, which consists of the two basic qualities of how an element generates boxes — the outer display type defining how the box participates in flow layout, and the inner display type defining how the children of the box are laid out. */ display?: OptionalResponsiveProp<'inline-flex' | 'flex' | 'none'>; } export declare const textButtonStylePropTypes: { display: PropTypes.Validator; }; /** * Variants for the {@link TextButton} component: * * • **default** * * Blue text. * * • **dark** * * Dark gray text. * * • **light** * * Light gray text. */ declare type TextButtonVariant = EnumType; declare const TextButtonVariant: { default: "default"; dark: "dark"; light: "light"; }; /** * Props for the {@link TextButton} component. Also supports: * * {@link AriaProps} * * {@link TextButtonStyleProps} * * @noInheritDoc * @docsPath UI/components/TextButton */ interface TextButtonProps extends TooltipAnchorProps, AriaProps, TextButtonStyleProps { /** The size of the button. Defaults to `default`. Can be a responsive prop object. */ size?: TextSizeProp; /** The variant of the button, which defines the color. Defaults to `default`. */ variant?: TextButtonVariant; /** The name of the icon or a react node. For more details, see the {@link IconName|list of supported icons}. */ icon?: IconName | React.ReactElement; /** Indicates whether or not the user can interact with the button. */ disabled?: boolean; /** The contents of the button. */ children?: React.ReactNode | string; /** Click event handler. Also handles Space and Enter keypress events. */ onClick?: (e: React.MouseEvent | React.KeyboardEvent) => unknown; /** The `id` attribute. */ id?: string; /** The `tabIndex` attribute. */ tabIndex?: number; /** Additional class names to apply, separated by spaces. */ className?: string; /** Additional styles. */ style?: React.CSSProperties; /** Data attributes that are spread onto the element, e.g. `dataAttributes={{'data-*': '...'}}`. */ dataAttributes?: DataAttributesProp; /** The `aria-selected` attribute. */ ['aria-selected']?: boolean; } declare const ForwardedRefTextButton: React.ForwardRefExoticComponent>; export default ForwardedRefTextButton;