lion/docs/components/combobox/overview.md
Pavlik Kiselev 11bbc5fff5
feat: migrated the navigation metadata from inline MD title decorations to frontmatter
* feat: migrated the navigation metadata from inline MD title decorations to frontmatter

* fix: fixed frontmatter metadate for api-table MDs

* fix: fixed frontmatter eslint issue
2025-03-19 10:08:22 +01:00

2.4 KiB

parts title eleventyNavigation
Combobox
Overview
Combobox: Overview
key order parent title
Combobox: Overview 10 Combobox Overview

Combobox: Overview

A combobox is a widget made up of the combination of two distinct elements:

  • a single-line textbox
  • an associated listbox overlay

Based on the combobox configuration and entered textbox value, options in the listbox will be filtered, checked, focused and the textbox value may be autocompleted. Optionally, the combobox contains a graphical button adjacent to the textbox, indicating the availability of the pop-up.

Fore more information, consult Combobox wai-aria design pattern

import { html } from '@mdjs/mdjs-preview';
import { listboxData } from '../listbox/src/listboxData.js';
import '@lion/ui/define/lion-combobox.js';
import '@lion/ui/define/lion-option.js';
import { lazyRender } from './src/lazyRender.js';
export const main = () => html`
  <lion-combobox name="combo" label="Default">
    ${lazyRender(
      listboxData.map(
        (entry, i) => html`
          <lion-option .checked="${i === 0}" .choiceValue="${entry}">${entry}</lion-option>
        `,
      ),
    )}
  </lion-combobox>
`;

...show more

Features

The combobox has many configurable properties to fine-tune its behaviour:

  • Multiple choice - Allows multiselection of options.
  • requireOptionMatch
    • true (default) - The listbox is leading, the textbox is a helping aid to quickly select an option/options. Unmatching input values become Unparseable, with the MatchesOption set as a default validator.
    • false - The textbox is leading, with the listbox as an aid to supply suggestions, e.g. a search input.
  • Autocomplete - When the autocompletion will happen: none, list, inline and both.
  • Matchmode - Which part of the value should match: begin and all.
  • Show all on empty - Shows the options list on empty.
  • Selection follows focus - When false the active/focused and checked/selected values will be kept track of independently.
  • Rotate keyboard Navigation - When false it won't rotate the navigation.

Installation

npm i --save @lion/ui
import '@lion/ui/define/lion-combobox.js';
import '@lion/ui/define/lion-option.js';