Combobox
Type to filter a known list, then pick one value. Use Select when the list is short and typing adds nothing.
Uncontrolled
Controlled
v-model is the Vue path. value plus @change (or onChange) stay for Hesoyam-shaped call sites.
Sizes
small is 24px, medium is 32px, large is 40px. default matches medium.
Disabled and errored
Clearable
clearable shows a clear control after a value is selected.
Width
width sizes the input in pixels. maxWidth on the list lets long option text grow instead of wrapping to the input.
Empty message
Override the default No items match “query” copy when the empty state needs a noun.
Prefix and suffix
With a label
Combobox has no label prop. Pair a Label with the same id, or set aria-label on the root.
Multi-line options
ignoreDefaultHeight drops the fixed 32px row so a name plus meta can stack. The list still scrolls.
Best practices
- Combobox filters a known list (regions, frameworks, env names). A short fixed list is Select. More than one value is Multi Select. A free-form query is Search Input.
- Visible label is a short Title Case noun. Placeholder is the hint —
Search regions— not a repeat of the label and not a bareSearch…. - Empty copy should name the collection:
No regions match “eu”. Setempty-messagewhen the default is too generic. - Do not submit the surrounding form on Enter while the list is open. Arrow keys move, Enter selects, Escape closes.
erroredonly paints the border. Put the constraint in a sentence under the field:Select a region.- Prefix and suffix accept a slot or a
prefix/suffixprop. Prefer the slot with<Icon>.