import * as React from 'react'; import { ButtonAsAnchorProps, ButtonAsButtonProps, ButtonAsComponentProps, ButtonGenericProps } from '../Button'; import { IconElement, TooltipCommonProps } from '../common'; import { ValuesOf } from '../utils/typeUtils'; import { SIZES, SKINS, UNDERLINE, WEIGHT } from './TextButton.constants'; type TextButtonCommonProps = { /** Accepts any item as a child element. For all common cases pass a standard text string. */ children?: React.ReactNode; /** Specifies a CSS class name to be appended to the component's root element. * @internal */ className?: string; /** Specifies the skin of a button. */ skin?: TextButtonSkin; /** Specifies whether to display and when to display an underline below button label. */ underline?: TextButtonUnderline; /** Controls the font weight of button label. */ weight?: TextButtonWeight; /** Controls the size of a button. */ size?: TextButtonSize; /** Pass an icon or a component to display at the end of a label (e.g., svg, image, etc.) */ suffixIcon?: IconElement; /** Pass an icon or a component to display at the front of a label (e.g., svg, image, etc.) */ prefixIcon?: IconElement; /** Specifies whether user interactions are disabled. */ disabled?: boolean; /** Applies a data-hook HTML attribute that can be used in the tests. */ dataHook?: string; /** Stretches button to fill a 100% of its parent container width. */ fluid?: boolean; /** Specifies whether component handles text overflow with ellipsis. If enabled, a label that exceeds the available space is displayed inside a tooltip when the user hovers over the button. */ ellipsis?: boolean; /** Specifies whether the full button label is displayed in a tooltip when label overflows available space. * * Behaviour is enabled by default. Set property value to false to show ellipsis without a tooltip. */ showTooltip?: boolean; /** Allows to pass all common tooltip props. Use it to customize a tooltip created from text ellipsis. * @linkTypeTo Tooltip */ tooltipProps?: TooltipCommonProps; /** Defines a string value that labels the button element to screen reader users. */ ariaLabel?: string; /** Identifies the element that labels the button element. */ ariaLabelledBy?: string; /** Indicates to screen reader users whether an interactive popup element, such as menu or dialog, can be triggered by a button. */ ariaHaspopup?: string; /** Indicates to screen reader users whether the collapsible content below is in the expanded or in the collapsed state. */ ariaExpanded?: boolean; /** Identifies the element whose contents or presence are controlled by the button. */ ariaControls?: string; /** Identifies the element that represents the currently active descendant of the button. */ ariaActiveDescendant?: string; }; type TextButtonWrap = { /** Enables wrapping when text is longer than its parent container. Cannot be used with as="button" */ wrap?: T; }; export type TextButtonProps = (ButtonAsButtonProps & TextButtonWrap) | (ButtonAsAnchorProps & TextButtonWrap) | (ButtonGenericProps & TextButtonWrap) | (ButtonAsComponentProps & TextButtonWrap); export declare class TextButton extends React.Component { } export type TextButtonSkin = ValuesOf; export type TextButtonUnderline = ValuesOf; export type TextButtonWeight = ValuesOf; export type TextButtonSize = ValuesOf; export {}; //# sourceMappingURL=TextButton.types.d.ts.map