import { ToolbarOverflowTypes, ToolbarSize } from './types';
import { ComponentPropsWithoutRef, ReactElement } from 'react';
import { LayoutUtilProps } from '../../types';
/**
* Props for the Toolbar component
* @extends ComponentPropsWithoutRef<"div">
* @extends LayoutUtilProps
*/
export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
/**
* Description of the content this toolbar is associated with, used for accessibility
*/
associatedContent: string;
/**
* Orientation of the toolbar
* @default horizontal
*/
direction?: "vertical" | "horizontal";
/**
* How to handle overflow when items don't fit
* @default wrap
*/
overflow?: ToolbarOverflowTypes;
/**
* Additional items to display in the overflow menu
*/
additionalItems?: ReactElement[];
/**
* Size of toolbar items
* @default xsmall
*/
size?: ToolbarSize;
};
/**
* Toolbar component for grouping related interactive elements with anvil2 tracking.
*
* Features:
* - Horizontal or vertical orientation
* - Overflow handling with wrap or collapse behavior
* - Keyboard navigation following ARIA best practices
* - Screen reader announcements and accessibility
* - Automatic overflow menu for collapsed items
* - Support for buttons, toggles, selects, and links
* - Layout utilities for positioning and spacing
* - Context-based state management for child components
* - Automatic tracking ID generation for analytics
* - Integration with anvil2 tracking system
*
* @example
*
*
*
*
*
*/
export declare const Toolbar: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
/**
* Description of the content this toolbar is associated with, used for accessibility
*/
associatedContent: string;
/**
* Orientation of the toolbar
* @default horizontal
*/
direction?: "vertical" | "horizontal";
/**
* How to handle overflow when items don't fit
* @default wrap
*/
overflow?: ToolbarOverflowTypes;
/**
* Additional items to display in the overflow menu
*/
additionalItems?: ReactElement[];
/**
* Size of toolbar items
* @default xsmall
*/
size?: ToolbarSize;
} & import('react').RefAttributes> & {
/**
* ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.
*
* Features:
* - Designed specifically for toolbar integration
* - Consistent styling with other toolbar items
* - Automatic tooltip for icon-only buttons
* - Overflow menu support
* - Accessibility enforcement for aria-labels
* - Ghost and primary appearance options
* - Automatic tracking ID generation for analytics
*
* @example
*
*
* @example
*
* Save
*
*/
Button: import('react').ForwardRefExoticComponent>;
/**
* ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.
*
* Features:
* - Toggle state management
* - Designed specifically for toolbar integration
* - Consistent styling with other toolbar items
* - Overflow menu support
* - Accessibility enforcement for aria-labels
* - Ghost and primary appearance options
* - Automatic tracking ID generation for analytics
*
* @example
*
*/
ButtonToggle: import('react').ForwardRefExoticComponent>;
/**
* ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.
*
* Features:
* - Link functionality with href support
* - Designed specifically for toolbar integration
* - Consistent styling with other toolbar items
* - Overflow menu support
* - Accessibility enforcement for aria-labels
* - Ghost and primary appearance options
* - Automatic tracking ID generation for analytics
*
* @example
*
* Help
*
*/
ButtonLink: import('react').ForwardRefExoticComponent>;
/**
* ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.
*
* Features:
* - Dropdown menu with selectable options
* - Controlled and uncontrolled usage patterns
* - Automatic overflow menu integration
* - Accessibility support with proper ARIA labels
* - Ghost and primary appearance options
* - Dropdown arrow icon indicator
* - Listbox integration for keyboard navigation
* - Automatic tracking ID generation for analytics
*
* @example
* setFont(id)}
* />
*/
Select: import('react').ForwardRefExoticComponent, HTMLButtonElement>, "ref">, "children"> & LayoutUtilProps & import('../..').DataTrackingId & {
aiMark?: boolean | import('..').AiIconName;
appearance?: import('../..').ButtonAppearance;
size?: Extract;
loading?: boolean;
} & {
children?: ComponentPropsWithoutRef<"button">["children"];
icon?: import('..').IconProps["svg"] | {
after: import('..').IconProps["svg"];
} | {
before: import('..').IconProps["svg"];
};
} & import('react').RefAttributes, "ref"> | Omit, HTMLButtonElement>, "ref">, "children"> & LayoutUtilProps & import('../..').DataTrackingId & {
aiMark?: boolean | import('..').AiIconName;
appearance?: import('../..').ButtonAppearance;
size?: Extract;
loading?: boolean;
} & {
children?: never;
icon?: import('..').IconProps["svg"];
} & import('react').RefAttributes, "ref">, "onChange" | "appearance"> & {
appearance?: import('./types').ToolbarItemAppearance;
onChange?: (optionId: string) => void;
selected?: string;
items: (Record & {
id: string;
} & {
label: string;
disabled?: boolean;
})[];
accessibleLabel: string;
} & import('../..').DataTrackingId & import('react').RefAttributes>;
};