UNPKG

@kloudlite/design-system

Version:

A design system for building ambitious products.

49 lines (48 loc) 2.1 kB
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 {};