import clsx from 'clsx'; import { globalIDs } from '@/utils/constants'; import { type Button as ButtonStyle, type Colors, type Control } from '../props'; interface ButtonProps extends Control, Colors, ButtonStyle { /** Icon to display first. */ icon?: React.ReactNode; /** Text to display second. */ text?: string; /** Indicates whether to render the button in a dense style. */ dense?: boolean; /** Indicates loading state to prevent interactions and change visual style. */ loading?: boolean; } /** * Customizable `button` with text, icon, tooltips and various styles. */ export function Button({ icon, text, title, titleHtml, hideTitle, loading, dense, disabled, noBorder, noOutline, colors = 'clr-btn-default', className, ...restProps }: ButtonProps) { return ( ); }