/**
 * Configuration object for a tab within a tab group.
 */
export type TabConfig = {
	/**
	 * Display label for the tab.
	 */
	label: string;
	/**
	 * Target id or selector for the tab panel.
	 */
	dataTarget: string;
	/**
	 * Optional icon name shown before the label.
	 */
	prefixIcon?: string;
	/**
	 * Optional counter badge configuration.
	 */
	counterBadge?: VegaTabGroupCounterBadgeProps;
	/**
	 * Whether the tab is disabled.
	 */
	disabled?: boolean;
};

/**
 * Event payload indicating a panel was added or removed from a tab group.
 */
export type PanelUpdatePayload = {
	/**
	 * Host panel element reference.
	 */
	host: HTMLVegaTabGroupPanelElement;
	/**
	 * The update action type.
	 */
	type: 'ADD' | 'DEL';
};

/**
 * Visual variant options for tab groups.
 */
export type TabGroupVariant = 'primary' | 'secondary';

/**
 * Props forwarded to a counter badge used in a tab group.
 */
export type VegaTabGroupCounterBadgeProps = Partial<Pick<HTMLVegaCounterBadgeElement, 'color' | 'count'>>;

/**
 * Overflow handling strategies for tab groups.
 */
export type TabGroupOverflowType = 'menu' | 'scroll';
