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>;
/**
* FilterGroup component displays a group of filters with toggles and a clear button.
* Also contains the FilterDrawer for additional filter options.
*
* Features:
* - Renders filter toggles and popovers for all filter types
* - Supports controlled and uncontrolled filtering
* - Integrates with FilterDrawer for batch filter editing
* - Provides a clear all filters button
* - Handles overflow and hidden filters
* - Shares filter state via context for child components
* - Supports boolean, custom, single-select, multi-select, date, and date range filter types
* - Date filters include calendar popup for easy selection
* - Date range filters support start and end date selection
*
* @example
*
*/
Filters: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
filters: import('.').Filter[];
onFilterChange?: (filters: import('.').Filter[]) => void;
controlledFiltering?: boolean;
} & import('react').RefAttributes>;
/**
* ToolbarControlGroup component provides a flex container for grouping related toolbar controls.
* Can be used for filters, buttons, or other toolbar items.
*
* Features:
* - Groups related toolbar controls in a flex container
* - Supports accessibility with aria-label
* - Handles overflow and wrapping based on toolbar context
* - Integrates with layout utilities for spacing and alignment
*
* @example
*
*
*
*
*/
ControlGroup: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
"aria-label"?: string;
} & import('react').RefAttributes>;
/**
* ToolbarSearchField component renders a search field for use in toolbars.
*
* Features:
* - Renders a search field styled for toolbar usage
* - Supports all SearchField props except size
* - Integrates with toolbar layouts and accessibility
*
* @example
*
*/
Search: import('react').ForwardRefExoticComponent>;
};
export declare const ToolbarElement: 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>;
/**
* FilterGroup component displays a group of filters with toggles and a clear button.
* Also contains the FilterDrawer for additional filter options.
*
* Features:
* - Renders filter toggles and popovers for all filter types
* - Supports controlled and uncontrolled filtering
* - Integrates with FilterDrawer for batch filter editing
* - Provides a clear all filters button
* - Handles overflow and hidden filters
* - Shares filter state via context for child components
* - Supports boolean, custom, single-select, multi-select, date, and date range filter types
* - Date filters include calendar popup for easy selection
* - Date range filters support start and end date selection
*
* @example
*
*/
Filters: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
filters: import('.').Filter[];
onFilterChange?: (filters: import('.').Filter[]) => void;
controlledFiltering?: boolean;
} & import('react').RefAttributes>;
/**
* ToolbarControlGroup component provides a flex container for grouping related toolbar controls.
* Can be used for filters, buttons, or other toolbar items.
*
* Features:
* - Groups related toolbar controls in a flex container
* - Supports accessibility with aria-label
* - Handles overflow and wrapping based on toolbar context
* - Integrates with layout utilities for spacing and alignment
*
* @example
*
*
*
*
*/
ControlGroup: import('react').ForwardRefExoticComponent, HTMLDivElement>, "ref"> & LayoutUtilProps & {
"aria-label"?: string;
} & import('react').RefAttributes>;
/**
* ToolbarSearchField component renders a search field for use in toolbars.
*
* Features:
* - Renders a search field styled for toolbar usage
* - Supports all SearchField props except size
* - Integrates with toolbar layouts and accessibility
*
* @example
*
*/
Search: import('react').ForwardRefExoticComponent>;
};