primitive · combobox
Editable combobox
A progressively enhanced text input backed by a native datalist and an ARIA listbox popup.
Install with
npx @madojs/ui@latest add combobox.
Primitive
Editable combobox
Composition
- Author a direct input[list], datalist, hidden toggle and hidden popover listbox inside mado-ui-combobox, then attach madoUiCombobox().root.
- Use this editable contract only when arbitrary text remains valid; closed choices stay a native select.
Public API
-
export
madoUiCombobox() - Returns a root ref and optional selection/results callbacks for the authored relationship.
-
class
mado-ui-combobox - Root containing the four required direct children.
-
attribute
data-mado-ui-combobox-enhanced - Helper-owned marker present only while progressive enhancement is active.
-
attribute
list / popovertarget / popover - Native relationships that define the datalist baseline and popup enhancement.
-
css-property
--mado-ui-combobox-listbox-inline-size - Constrains the enhanced suggestion popup.
Detected public classes
.mado-ui-combobox.mado-ui-combobox-input.mado-ui-combobox-listbox.mado-ui-combobox-option.mado-ui-combobox-option-description.mado-ui-combobox-option-value.mado-ui-combobox-toggle
Detected public CSS properties
--mado-ui-color-action--mado-ui-color-border--mado-ui-color-surface--mado-ui-color-surface-soft--mado-ui-color-text--mado-ui-color-text-muted--mado-ui-combobox-color--mado-ui-combobox-disabled-background--mado-ui-combobox-disabled-border--mado-ui-combobox-disabled-color--mado-ui-combobox-disabled-opacity--mado-ui-combobox-focus--mado-ui-combobox-focus-ring--mado-ui-combobox-inline-size--mado-ui-combobox-input-background--mado-ui-combobox-input-border--mado-ui-combobox-input-color--mado-ui-combobox-input-height--mado-ui-combobox-input-padding--mado-ui-combobox-input-placeholder-color--mado-ui-combobox-input-placeholder-opacity--mado-ui-combobox-input-radius--mado-ui-combobox-input-shadow--mado-ui-combobox-input-toggle-space--mado-ui-combobox-listbox-background--mado-ui-combobox-listbox-border--mado-ui-combobox-listbox-color--mado-ui-combobox-listbox-gap--mado-ui-combobox-listbox-inline-size--mado-ui-combobox-listbox-max-block-size--mado-ui-combobox-listbox-offset--mado-ui-combobox-listbox-padding--mado-ui-combobox-listbox-position-area--mado-ui-combobox-listbox-radius--mado-ui-combobox-listbox-shadow--mado-ui-combobox-option-background--mado-ui-combobox-option-color--mado-ui-combobox-option-description-color--mado-ui-combobox-option-gap--mado-ui-combobox-option-hover-background--mado-ui-combobox-option-hover-color--mado-ui-combobox-option-min-block-size--mado-ui-combobox-option-padding--mado-ui-combobox-option-radius--mado-ui-combobox-option-selected-background--mado-ui-combobox-option-selected-border--mado-ui-combobox-option-selected-color--mado-ui-combobox-option-value-weight--mado-ui-combobox-toggle-background--mado-ui-combobox-toggle-color--mado-ui-combobox-toggle-hover-background--mado-ui-combobox-toggle-hover-color--mado-ui-combobox-toggle-radius--mado-ui-combobox-toggle-size--mado-ui-control-background--mado-ui-control-border--mado-ui-control-color--mado-ui-control-focus-ring--mado-ui-control-height--mado-ui-control-padding--mado-ui-control-radius--mado-ui-control-shadow--mado-ui-focus-ring--mado-ui-radius-md--mado-ui-radius-sm--mado-ui-shadow-panel--mado-ui-space-1--mado-ui-space-2--mado-ui-space-3
Accessibility contract
- DOM focus remains on the editable native input; aria-activedescendant exposes the active generated option.
- The helper owns listbox/option state only after the complete authored relationship validates.
Keyboard
- Down and Up open and move through suggestions; Enter accepts the active option; Escape closes; Tab closes and continues normally.
- Text-editing keys, IME composition and modified shortcuts remain browser-owned.
Focus
- The toggle stays outside Tab order and pointer selection returns focus to the input.
Fallback
- Without Popover support or after malformed markup, input[list] and datalist remain the complete native fallback.
Installation graph
Direct dependencies
-
Native form controls
form-controls
Resolved install order
-
Mado UI theme
theme -
Native form controls
form-controls
Copied source
The CLI resolves each registry source path into the configured project target. Links below point to the exact catalog build tag.
-
primitives/combobox/mado-ui-combobox.ts{components}/mado-ui-combobox.ts -
primitives/combobox/mado-ui-combobox.css{styles}/mado-ui-combobox.css