ComponentsMultiSelect

formstexulinot agent-emittableapp

MultiSelect

multi-select

A combobox for several values, shown as removable chips.

Live examples

Tags field

Tags field

Loading demo…

Props

Public props for MultiSelect
NameKindRequiredDefaultDescription
valueunknownno—Selected value (a string, or a string array when multiple)
defaultValueunknownno—Starting selection; a form reset restores it
inputValuestringno—Text in the input (bindable)
defaultInputValuestringno""—
itemsarrayno—Options as { value, label, disabled? }
loadOptionsunknownno—Function prop the host passes: (query, signal) => Promise<items> for remote options. Not agent-emittable (functions are not data).
filterunknownno—Function prop the host passes: (item, query) => boolean. Replaces the default match (label contains the query, ignoring case); runs on the trimmed, non-empty query; unused with loadOptions. createFoldedFilter builds an accent-insensitive one. Not agent-emittable (functions are not data).
disabledbooleannofalseNot interactive, not submitted, not validated
namestringno—Form field name: submits the value (one entry per value when multiple)
requiredbooleannofalseBlocks form submission until a value is selected
requiredMessagestringno—Translated message when required blocks submission (default: the browser message)
formstringno—Associated form id
openbooleannofalse—
sizeenum (sm, md, lg)no"md"—
variantenum (outline, soft)no"outline"—
classstringno——
onValueChangeeventno——
onInputValueChangeeventno——
onOpenChangeeventno——
childrenslotno——

Keyboard

Keyboard behavior for MultiSelect
KeyAction
—See accessibility notes for keyboard behavior.

Accessibility

  • Chips can be removed with their button or Backspace from an empty input
  • Submits one form entry per selected value

Evidence for multi-select

Latest committed gates for multi-select (as of 2026-10-23). Static snapshot — not live CI.

Behavior

n/ano behavior scenario

No dedicated behavior scenario for this catalog id (a styled or display surface, covered by its unit and axe tests).

Size (gzip)

texuli/multi-select · budget 12.0 KiB

Budget from texuli.budgets.json; re-measure with `pnpm size --filter <entry>`.

Axe

documented

  • tests/e2e/site-component-pages.spec.ts
  • docs/quality (a11y-*)

Site component pages axe gate; package-level a11y docs under docs/quality when present.

Browsers

  • chromium
  • webkit
  • mobile

Playwright projects: Desktop Chrome, Desktop Safari, Pixel 7. Firefox is a known gap on this host.

When to use

Use when

  • Choose several values from a long list by typing

Don’t use when

Prefer another component

  • One value (use combobox or select)
  • A few independent options (use checkbox)