///
import { TIconType } from '../../components/Icon/collection';
import { ILoadingProps } from '../Loading';
export interface ButtonProps {
/**
* The button ID will generated if not assigned
*/
id?: string;
/**
* the function to be called on click
*/
onClick?: (event: React.MouseEvent) => void;
/**
* set the button to be interactive, or not
*/
disabled?: boolean;
/**
* What size should the button be
*/
size?: 'small' | 'regular' | 'large';
/**
* The text to display in the button
*/
text?: string;
/**
* Set the color to show its importance to the user
*/
theme?: 'primary' | 'outline' | 'secondary' | 'colored' | 'translucent' | 'status' | 'ghost' | 'text' | 'link';
/**
* If 'theme' is set to 'colored', you can choose the color from these options
*/
color?: 'blue' | 'green' | 'yellow' | 'red';
/**
* Set the HTML button type for form interaction
*/
type?: 'button' | 'submit' | 'reset';
/**
* set an icon to show inside the button
* import { iconTypes } from "../../components/Icon/collection"
*/
icon?: TIconType;
/**
* set an icon position, or maybe show only the icon
*/
iconLayout?: 'leading' | 'trailing' | 'icon-only';
/**
* set the icon color
*/
iconColor?: string;
/**
* set the button to be 100% width
*/
isFullWidth?: boolean;
/**
* this is mostly like disabled mode except it gives the user a good visual indicator that something is loading
*/
isLoading?: boolean;
/**
* Text to display when button is in loading state
*/
loadingText?: string;
/**
* Loading Props, the props to send to the loading component
*/
loadingProps?: ILoadingProps;
/**
* Border radius prop, allows a button to have a custom border radius
*/
radius?: number;
/**
* The background color is set to `transparent` and the hover effect is disabled
*/
isTransparent?: boolean;
}