Search...

Search documentation...

People Select

People Select

A single-person picker — a searchable combobox showing each option's UserAvatar, name, and an optional description (a role, a team). Built for assignee fields ("Assigned to", "Reviewer").

import { PeopleSelect, type PeopleSelectOption } from "@pompeitech/vesuvius-ui";

Default

Clearable ("Unassigned")

API

PeopleSelect

PropTypeDefaultDescription
optionsPeopleSelectOption[]Required.
value / defaultValuestringControlled/uncontrolled selected value.
onChange(value: string | undefined) => void
clearablebooleanfalseAdds an "Unassigned" option that clears the selection.
unassignedLabelstring"Unassigned"
disabledbooleanfalse

PeopleSelectOption

FieldTypeDescription
valuestringRequired — unique identifier.
labelstringRequired — the person's display name.
descriptionstringOptional second line (role, team).
avatarSrcstringOptional image URL — falls back to initials via UserAvatar when absent or on load failure.

Accessibility

Built on the same combobox pattern as Select/Command — type to filter, arrow keys move the highlight, Enter selects, Esc closes without changing the selection. Each option has no separate aria-label, so its accessible name is computed from its visible text content — label and description together (e.g. "Ada Lovelace Engineering") — while filtering itself matches on label alone, not the description.