UNPKG

@project44-manifest/react

Version:

Manifest Design System react components

81 lines 2.79 kB
import * as React from 'react'; import type { FocusableProps, PressEvents } from '@react-types/shared'; import { CSS } from '@project44-manifest/react-styles'; import type { ForwardRefComponent } from '@project44-manifest/react-types'; declare type ButtonSize = 'medium' | 'small'; declare type ButtonVariant = 'brand' | 'danger' | 'primary' | 'secondary' | 'tertiary'; interface ButtonProps extends PressEvents, FocusableProps { /** Whether the element should receive focus on render. */ autoFocus?: boolean; /** Theme aware style object */ css?: CSS; /** Icon added after the button text. */ endIcon?: React.ReactElement; /** A URL to link to if as="a". */ href?: string; /** * Whether to exclude the element from the sequential tab order. If true, * the element will not be focusable via the keyboard by tabbing. This should * be avoided except in rare scenarios where an alternative means of accessing * the element or its functionality via the keyboard is available. */ excludeFromTabOrder?: boolean; /** Whether the button is disabled. */ isDisabled?: boolean; /** The relationship between the linked resource and the current page. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel). */ rel?: string; /** * The size of the button. * * @default 'medium' */ size?: ButtonSize; /** Icon added before the button text. */ startIcon?: React.ReactElement; /** The target window for the link. */ target?: string; /** * The behavior of the button when used in an HTML form. * @default 'button' */ type?: 'button' | 'reset' | 'submit'; /** * The display variant of the button. * * @default 'primary' */ variant?: ButtonVariant; } declare const Button: ForwardRefComponent<"button", ButtonProps>; interface ButtonGroupProps { /** Theme aware style object */ css?: CSS; /** * Whether the buttons in the button group are all disabled. * * @default false */ isDisabled?: boolean; /** * Whether the buttons in the button are attached. */ isAttached?: boolean; /** * The size of the buttons in the group. * * @default 'medium' */ size?: ButtonSize; /** * The group variant * * @default 'primary' */ variant?: ButtonVariant; } declare const ButtonGroup: ForwardRefComponent<"div", ButtonGroupProps>; declare type IconButtonProps = Omit<ButtonProps, 'endIcon' | 'startIcon'>; declare const IconButton: ForwardRefComponent<"button", IconButtonProps>; export type { ButtonGroupProps, ButtonProps, IconButtonProps }; export { Button, ButtonGroup, IconButton }; //# sourceMappingURL=button.d.ts.map