@gpa-gemstone/react-interactive
Version:
Interactive UI Components for GPA products
88 lines (87 loc) • 2.23 kB
TypeScript
import * as React from 'react';
/**
* Represents the structure of a button used within the application.
*/
interface IButton {
/**
* Text label that appears on the button
*/
Label: JSX.Element | string;
/**
* Callback function for when a button is clicked
* @returns
*/
Callback: () => void;
/**
* Optional group number for grouping items visually with dividers
*/
Group?: number;
/**
* Optional flag to disable button
*/
Disabled?: boolean;
/**
* Optional content to render inside tooltip
*/
ToolTipContent?: JSX.Element;
/**
* Optional flag to render tooltip on button
*/
ShowToolTip?: boolean;
/**
* Optional location of tooltip, defaulting to top
*/
ToolTipLocation?: ('top' | 'bottom' | 'left' | 'right');
/**
* Optional key to be used on the fragment that is parent of the dropdown option.
*/
Key?: string | number;
}
/**
* Represents the properties for a component that renders buttons.
*/
interface IProps {
/**
* Text label that appears on the main button
*/
Label: JSX.Element | string;
/**
* Callback function for when the main button is clicked
* @returns
*/
Callback: () => void;
/**
* Optional flag to disable the main button
*/
Disabled?: boolean;
/**
* Array of button options rendered inside the dropdown menu
*/
Options: IButton[];
/**
* Optional size of the button group
*/
Size?: 'sm' | 'lg' | 'xlg' | 'std';
/**
* Optional CSS applied to the container
*/
ContainerStyle?: React.CSSProperties;
/**
* Optional CSS class applied to the buttons, defaulting to 'btn-primary'
*/
BtnClass?: string;
/**
* Optional content to render inside the tooltip
*/
TooltipContent?: JSX.Element;
/**
* Optional location of the tooltip, defaulting to top
*/
TooltipLocation?: ('top' | 'bottom' | 'left' | 'right');
/**
* Optional flag to render a tooltip on the main button
*/
ShowToolTip?: boolean;
}
declare const BtnDropdown: (props: IProps) => JSX.Element;
export default BtnDropdown;