This guide covers changes to the beta FilterBar component (previously
Toolbar.Filters). These APIs may continue to evolve before the stable release.
Overview
Toolbar.Filters has been removed as a compound sub-component of Toolbar. Use the standalone FilterBar component instead.
Design Rationale
Why separate FilterBar from Toolbar?
Previously, filters were tightly coupled to Toolbar asToolbar.Filters, requiring a wrapping <Toolbar> even when no toolbar actions were needed. This coupling:
- Forced filters to inherit Toolbar’s size and overflow settings
- Prevented filters and toolbars from evolving independently
- Required a parent Toolbar for filters to function
FilterBar has its own role="toolbar", keyboard navigation, and size/overflow props. When used alongside a Toolbar, compose them as siblings via Flex layout. Standard ARIA patterns handle keyboard traversal — Tab moves between the two toolbars, arrow keys navigate within each.
Migration Guide
Standalone filters (no toolbar actions)
Filters with toolbar actions
Import changes
New required prop: associatedContent
FilterBar requires an associatedContent string prop for accessibility. It populates the aria-label on the filter bar’s role="toolbar" element.
Optional new props
FilterBar accepts size and overflow props that were previously inherited from the parent Toolbar:
Breaking Changes
Toolbar.Filtershas been removed — Use the standaloneFilterBarcomponent instead.FilterBarrequires a newassociatedContentprop (string) for accessibility.- Filter types (
Filter,BooleanFilter, etc.) are now exported fromFilterBar, notToolbar.
Why Breaking?
As a beta API,Toolbar.Filters was removed directly without a deprecation path. The standalone FilterBar provides a clearer API surface and independent evolution path for both components.