import type { ButtonHTMLAttributes, HTMLProps, PropsWithChildren } from 'react'; export type TButtonColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'information'; export type TButtonSize = 'sm' | 'md' | 'lg'; export type TButtonVariant = 'solid' | 'soft' | 'outline' | 'transparent'; export type TLoadingIconPosition = 'left' | 'right'; export type TButtonProps = PropsWithChildren<{ /** Set the Button to have a full width */ block?: boolean; /** Set the Button's color */ color?: TButtonColor; /** Set the Button's disabled state */ disabled?: boolean; /** Set the Button's loading state */ isLoading?: boolean; /** Set the Button's loading icon positing according to the loading text */ loadingIconPosition?: TLoadingIconPosition; /** Set the Button's text on loading state. It will be shown when the `isLoading` is `true` */ loadingText?: string; /** Set the Button's size */ size?: TButtonSize; /** Set the Button's variant */ variant?: TButtonVariant; }> & Omit, 'size'> & ButtonHTMLAttributes;