@legion-rnd/react-core
Version:
29 lines (25 loc) • 1.2 kB
TypeScript
import React, { PropsWithChildren, HTMLProps, ButtonHTMLAttributes } from 'react';
type TButtonColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'information';
type TButtonSize = 'sm' | 'md' | 'lg';
type TButtonVariant = 'solid' | 'soft' | 'outline' | 'transparent';
type TLoadingIconPosition = 'left' | 'right';
type TButtonProps = PropsWithChildren<{
/** Set the Button to have a full width */
block?: boolean;
/** Set the Button's color */
color?: TButtonColor;
/** Set the Button's disabled state */
disabled?: boolean;
/** Set the Button's loading state */
isLoading?: boolean;
/** Set the Button's loading icon positing according to the loading text */
loadingIconPosition?: TLoadingIconPosition;
/** Set the Button's text on loading state. It will be shown when the `isLoading` is `true` */
loadingText?: string;
/** Set the Button's size */
size?: TButtonSize;
/** Set the Button's variant */
variant?: TButtonVariant;
}> & Omit<HTMLProps<HTMLButtonElement>, 'size'> & ButtonHTMLAttributes<HTMLButtonElement>;
declare const Button: (props: TButtonProps) => React.JSX.Element;
export { Button };