@project44-manifest/react
Version:
Manifest Design System react components
81 lines • 2.79 kB
TypeScript
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