On this page
SelectPanel
- Alpha
- Not reviewed for accessibility
A SelectPanel
provides an anchor that will open an overlay with a list of selectable items, and a text input to filter the selectable items
Example
Accessibility
Keyboard
Pressing Enter
or Space
on the SelectPanel
anchor will
open the SelectPanel
and place focus on the filter input. Pressing Escape
or interacting with the cancel or close buttons will close the SelectPanel
and restore focus to the anchor.
A user may use Tab
and Shift+Tab
to navigate between the filter input, list of
items, action buttons, and the close button.
When focus is on the list of items, pressing ArrowDown
and ArrowUp
will allow navigation between items. Support for Home
and End
is also provided to quickly navigate to the first and last items in the list, respectively. Pressing Space
will select an item.
The Enter
key may be used when focus is within the SelectPanel
as an
alternative to activating the save button.
Props
SelectPanel
Name | Type | Default | Description |
---|---|---|---|
onOpenChange Required | ( open: boolean, gesture: | 'anchor-click' | 'anchor-key-press' | 'click-outside' | 'escape' | 'selection' ) => void | ||
placeholder | string | ||
overlayProps | Partial<OverlayProps> | See [Overlay props](/react/Overlay#props). | |
title | string | ||
inputLabel | string | ||
inputPlaceholder | string | ||
selected | ItemInput | ItemInput[] | undefined | Specify the selected item(s) | |
onSelectedChange | (selected: ItemInput | ItemInput[]) => void | Provide a callback called when the selected item(s) change |
Status
Alpha
- Component props and basic example usage of the component are documented on primer.style/react.
- Component does not have any unnecessary third-party dependencies.
- Component can adapt to different themes.
- Component can adapt to different screen sizes.
- Component has robust unit test coverage (100% where achievable).
- Component has visual regression coverage of its default and interactive states.
- Component does not introduce any axe violations.
- Component has been manually reviewed by the accessibility team and any resulting issues have been addressed.
Beta
- Component is used in a production application.
- Common usage examples are documented on primer.style/react.
- Common usage examples are documented in storybook stories.
- Component has been reviewed by a systems designer and any resulting issues have been addressed.
- Component does not introduce any performance regressions.
Stable
- Component API has been stable with no breaking changes for at least one month.
- Feedback on API usability has been sought from developers using the component and any resulting issues have been addressed.
- Component has corresponding design guidelines documented in the interface guidelines.
- Component has corresponding Figma component in the Primer Web library.
- Tooling (such as linters, codemods, etc.) exists to prevent further use of alternatives.