import { ButtonVariant } from '../Button'; import { ReactNode } from 'react'; /** * Individual action configuration * Matches ib-ui Action interface exactly */ export interface Action { /** Whether the action is disabled */ disabled?: boolean; /** Display text for the action button or menu item */ displayText: ReactNode; /** Show divider after this action in dropdown */ divider?: boolean; /** Optional icon to display */ icon?: ReactNode; /** Unique identifier for the action */ id: string; /** Click handler */ onClick?: (_props: unknown) => void; /** Whether the action is currently selected */ selected?: boolean; /** Tooltip content */ tooltip?: ReactNode; /** Optional value passed to onClick handler */ value?: unknown; /** Data attribute for testing/tracking */ dataId?: string; /** Test ID for testing */ dataTestId?: string; /** Aria label for accessibility */ ariaLabel?: string; } /** * Gap size options between action buttons */ export type ActionMenuGapSize = 'xs' | 'sm' | 'md' | 'lg'; /** * Props for the ActionMenuButtons component * Matches ib-ui ActionMenuButtonProps interface exactly */ export interface ActionMenuButtonsProps { /** Array of all actions */ actions?: Action[]; /** Type of dropdown menu (affects hover styling) */ dropdownMenuType?: 'selection' | 'action'; /** Data attribute for the dropdown menu button */ menuDataId?: string; /** IDs of actions to show as primary buttons (not in dropdown) */ primaryActions?: string[]; /** Whether to show icons in the dropdown menu items */ showDropdownActionIcon?: boolean; /** Gap size between buttons */ gapSize?: ActionMenuGapSize; /** Size of buttons (xs, sm, md) */ buttonSize?: 'xs' | 'sm' | 'md'; /** Whether to use inverse styling (light on dark) */ inverse?: boolean; /** Whether the entire menu is disabled */ menuDisabled?: boolean; /** Custom icon for the dropdown menu */ menuIcon?: ReactNode; /** Whether primary actions should be outlined (not implemented) */ outlinedPrimaryActions?: boolean; /** Variant of primary action buttons */ buttonVariant?: ButtonVariant; /** * Tab index for action buttons. Use -1 to remove from tab order. * Useful when implementing keyboard navigation patterns like roving tabindex. */ buttonTabIndex?: number; } /** * Gap size to pixel mapping */ export declare const gapSizeMap: Record; //# sourceMappingURL=ActionMenuButtons.types.d.ts.map