liber-salti
Version:
Saltí - Liber Design System
40 lines (39 loc) • 1.09 kB
TypeScript
/// <reference types="react" />
import { IconName } from '../Icon/Icon.types';
export interface SplitButtonOption {
label: string;
action?: React.MouseEventHandler<HTMLButtonElement> & (() => void);
icon?: IconName;
disabled?: boolean;
tooltip?: string;
}
export interface SplitButtonProps {
/**
* The variant of the button group
*/
variant?: 'contained' | 'outlined' | 'text';
/**
* Size of the button group
*/
size?: 'large' | 'medium' | 'small';
/**
* Text label of the main button
*/
mainLabel: string;
/**
* Action to be triggered on the main button click
*/
mainAction?: React.MouseEventHandler<HTMLButtonElement> & (() => void);
/**
* Disable main button
*/
disabled?: boolean;
/**
* Array of objects containing label and action to go on the dropdown options
*/
options: SplitButtonOption[];
/**
* If `true` the split button will show a spinner and disable click listeners
*/
loading?: boolean;
}