@kloudlite/design-system
Version:
A design system for building ambitious products.
49 lines (48 loc) • 2.1 kB
TypeScript
import React, { KeyboardEventHandler, MouseEventHandler } from 'react';
type ButtonTypes = 'submit' | 'button';
export type ButtonVariants = 'outline' | 'basic' | 'plain' | 'primary' | 'primary-outline' | 'secondary' | 'secondary-outline' | 'critical' | 'critical-outline' | 'primary-plain' | 'secondary-plain' | 'critical-plain' | 'purple' | 'tertiary' | 'warning' | (undefined & NonNullable<unknown>);
type IconButtonVariants = 'outline' | 'basic' | 'plain' | (undefined & NonNullable<unknown>);
type IconButtonSizes = 'xs' | 'sm' | 'md' | 'lg' | (undefined & NonNullable<unknown>);
type ButtonSizes = 'md' | 'sm' | 'lg' | 'xl' | '2xl' | (undefined & NonNullable<unknown>);
interface IBaseButton {
onClick?: MouseEventHandler<HTMLButtonElement>;
onMouseDown?: MouseEventHandler<HTMLButtonElement>;
onPointerDown?: MouseEventHandler<HTMLButtonElement>;
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
to?: string;
linkComponent?: any;
disabled?: boolean;
block?: boolean;
type?: ButtonTypes;
selected?: boolean;
className?: string;
value?: any;
toLabel?: string;
target?: string;
iconSize?: number;
}
export interface IIconButton extends IBaseButton {
icon: JSX.Element;
variant?: IconButtonVariants;
size?: IconButtonSizes;
}
export interface IButton extends IBaseButton {
suffix?: JSX.Element;
prefix?: JSX.Element;
noRounded?: boolean;
noBorder?: boolean;
sharpLeft?: boolean;
sharpRight?: boolean;
iconOnly?: boolean;
content: React.ReactNode;
loading?: boolean;
variant?: ButtonVariants | IconButtonVariants;
size?: ButtonSizes;
tabIndex?: number;
}
export declare const ButtonBase: React.ForwardRefExoticComponent<Omit<IButton, "size"> & {
size?: ButtonSizes | IconButtonSizes;
} & React.RefAttributes<HTMLButtonElement>>;
export declare const IconButton: React.ForwardRefExoticComponent<IIconButton & React.RefAttributes<HTMLButtonElement>>;
export declare const Button: React.ForwardRefExoticComponent<IButton & React.RefAttributes<HTMLButtonElement>>;
export {};