@clayui/multi-select

ClayMultiSelect component

Usage no npm install needed!

<script type="module">
  import clayuiMultiSelect from 'https://cdn.skypack.dev/@clayui/multi-select';
</script>

README


title: 'Multi Select' description: 'Multi select is the field type that allows writing text to create “tags” that are represented in the shape of labels.' lexiconDefinition: 'https://liferay.design/lexicon/core-components/forms/selector/' packageNpm: '@clayui/multi-select'

import { MultiSelectInput, MultiSelectInputWithAutocomplete, MultiSelectInputWithCustomAutocomplete, MultiSelectInputWithSelectButton, MultiSelectInputWithValidation, } from '$packages/clay-multi-select/docs/index';

Multi Select is an aggregate component of the @clayui/form package, consisting of a high-level written above a <ClayInput /> that provides the ability to create tags.

Composing

<ClayMultiSelect /> enables you to make compositions to achieve your expected results, as this component is distributed only in a low level component, this increases flexibility and you can create many possibilities but it comes with a price tag... you may want to get close to the Lexicon specifications and will have to compose with some of the other components to get there, let's detail it further below.

Autocomplete

Usually a MultiSelect has an autocomplete to help the user choose existing tags. You can use the sourceItems API to achieve this result.

Select Button

According to the Lexicon specification a Select button can be grouped with MultiSelect to allow tag data to come from elsewhere. You can achieve this result by composing with <ClayForm.Group />, <ClayInput.GroupItem /> and <ClayButton /> .

Validation

An input needs validation so you can add some composition props with <ClayInput /> and <ClayForm /> to get the result.

Custom Autocomplete

To customize Autocomplete content to stylize to your needs and also have filter control, you can use the menuRenderer API.