import { ReactNode } from 'react'; /** * Individual tab configuration */ export interface Tab { /** Unique identifier for the tab */ id: string; /** Display label for the tab */ label: ReactNode; /** Optional icon to display before the label */ icon?: ReactNode; /** Whether the tab is disabled */ disabled?: boolean; /** Badge text to display after the label */ badgeText?: ReactNode; /** Tooltip content for the tab */ tooltip?: ReactNode; /** Data attribute for the tab */ dataId?: string; /** Click handler for the tab */ onClick?: (event?: React.MouseEvent | React.KeyboardEvent) => void; } /** * Visual variants for the Tabs component * Extended with 'primary' variant from ib-ui */ export type TabsVariant = 'default' | 'pills' | 'underline' | 'primary'; /** * Size variants for the Tabs component */ export type TabsSize = 'sm' | 'md' | 'lg'; /** * Props for the Tabs component */ export interface TabsProps { /** Array of tab configurations */ tabs: Tab[]; /** ID of the currently active tab */ activeTab: string; /** Callback when a tab is selected */ onTabChange: (tabId: string) => void; /** Visual variant */ variant?: TabsVariant; /** Size variant */ size?: TabsSize; /** Whether tabs should fill container width */ fullWidth?: boolean; /** Alias for fullWidth - tabs expand to fill available width (from ib-ui) */ expandTabs?: boolean; /** Enable horizontal scrolling when tabs overflow (from ib-ui) */ scrollable?: boolean; /** Additional CSS classes */ className?: string; /** Accessible label for the tablist */ 'aria-label'?: string; /** Test ID for testing */ 'data-testid'?: string; } //# sourceMappingURL=Tabs.types.d.ts.map