Skip to content

SelectPanel

  • Alpha
  • Review pending by accessibility team

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

<PropsTableRow
name="selected"
type="ItemInput | ItemInput[] | undefined"
description="Specify the selected item(s)"
/>
<PropsTableRow
name="onSelectedChange"
type="(selected: ItemInput | ItemInput[]) => void"
description="Provide a callback called when the selected item(s) change"
/>
NameTypeDefaultDescription
onOpenChange Required
(
  open: boolean,
  gesture:
    | 'anchor-click'
    | 'anchor-key-press'
    | 'click-outside'
    | 'escape'
    | 'selection'
) => void
placeholder
string
overlayProps
Partial<OverlayProps>
See Overlay props.
title
string
inputLabel
string
inputPlaceholder
string

Status

Alpha

  • Component props 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 100% test coverage.

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 has been manually reviewed by the accessibility team and any resulting issues have been addressed.

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.
Edit this page on GitHub
7 contributorsjoshblackbroccolinisoupboloniomperrotticolebemisVanAndersondgreif
Last edited by joshblack on October 10, 2022