import React from "react"; import { type SubIcon } from "@vibe/icon"; import { type ButtonValue } from "./ButtonGroupConstants"; import { type ButtonType, type ButtonSize } from "@vibe/button"; import { type VibeComponentProps } from "../../types"; import { type MoveBy } from "../../types/MoveBy"; import { type TooltipPositions } from "@vibe/tooltip"; type ButtonGroupOption = { icon?: SubIcon; leftIcon?: SubIcon; "aria-label"?: string; subText?: string; value: ButtonValue; text: string; disabled?: boolean; tooltipContent?: string; }; export interface ButtonGroupProps extends VibeComponentProps { /** * The list of button options. */ options: Array; /** * The currently selected button value. */ value?: ButtonValue; /** * Callback fired when a button is selected. */ onSelect?: (value: ButtonValue, name: string) => void; /** * The size of the buttons. */ size?: ButtonSize; /** * The style variant of the buttons. */ kind?: Extract; /** * The name of the button group. */ name?: string; /** * If true, disables all buttons in the group. */ disabled?: boolean; /** * The label of the button group for accessibility. */ groupAriaLabel?: string; /** * The position of the tooltip relative to the button. */ tooltipPosition?: TooltipPositions; /** * The delay in milliseconds before the tooltip hides. */ tooltipHideDelay?: number; /** * The delay in milliseconds before the tooltip shows. */ tooltipShowDelay?: number; /** * CSS selector for the tooltip container. */ tooltipContainerSelector?: string; /** * Adjusts the tooltip position. */ tooltipMoveBy?: MoveBy; /** * The content inside the button group. */ children?: React.ReactNode; /** * If true, makes the button group take the full width of its container. */ fullWidth?: boolean; /** * If true, removes focus from the button after clicking. */ blurOnMouseUp?: boolean; } declare const ButtonGroup: React.ForwardRefExoticComponent>; export default ButtonGroup;