/**
 * CSS class map.
 *
 * Used in JSX to apply CSS classes to an element's `class` attribute.
 */
export type CssClassMap = { [className: string]: boolean };

/**
 * Theme color variations that can be used across components.
 */
export type ThemeColor = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';

/**
 * Color variations that can be used for buttons.
 */
export type ButtonColor = ThemeColor | 'link';

/**
 * Button types.
 */
export type ButtonType = 'button' | 'submit' | 'reset';

/**
 * Size variations that can be used across components.
 */
export type Size = 'large' | 'small' | 'xsmall' | 'default';

/**
 * Position variations that can be used across components.
 */
export type Position = 'top' | 'bottom';

/**
 * Orientation variations that can be used across components.
 */
export type Orientation = 'horizontal' | 'vertical';

/**
 * Value type variations that can be used in the ProgressBar component.
 */
export type ValueType = 'unit' | 'percentage';

/**
 * Fill type variations that can be used in the Insignia component.
 */
export type InsigniaFillType = 'fill' | 'outline' | 'empty';

/**
 * Shape type variations that can be used in the Insignia component.
 */
export type InsigniaShapeType = 'hexagon';

interface HandleNameChangeInterface {
  target: HTMLInputElement;
}
