/** * Size options for buttons within a button group. */ export type VegaButtonGroupSize = 'default' | 'small' | 'large'; /** * Visual variant for the entire button group. */ export type VegaButtonGroupVariant = 'primary' | 'secondary' | 'tertiary'; /** * Alignment of icons within buttons inside the group. */ export type VegaButtonGroupIconAlign = 'left' | 'right'; /** * Configuration for dropdown menus attached to button groups. */ export type DropdownPropsForButtonGroup = { /** * Whether the dropdown should match the height of its container. */ matchContainerHeight?: boolean; /** * Whether the dropdown should match the width of its trigger element. */ matchTargetWidth?: boolean; /** * Maximum height of the dropdown in pixels. */ maxHeight?: number; /** * Element selector or reference to position the dropdown. */ positionRelativeTo?: string; /** * Interaction that will open the dropdown. */ trigger: 'hover' | 'click' | 'none'; }; /** * Props used to describe an individual button item in a button group. */ export type ButtonItemsProps = { /** * Icon name for the button. */ icon: string; /** * Label text for the button. */ label: string; /** * Size of the button. */ size: VegaButtonGroupSize; /** * Icon alignment within the button. */ iconAlign: VegaButtonGroupIconAlign; /** * Whether the button is disabled. */ disabled: boolean; /** * Ref callback for obtaining the element. */ ref: (node: HTMLElement) => void; };