Concorde UI component — Select. sonic-select wraps a native <select> with a label, a description, prefix and suffix slots and Concorde sizes. Options come from child <option> tags or from the options attribute (JSON). Bind the value Doc ID: core/components/ui/form/select/select. Keywords: Concorde, supersoniks, core/components/ui/form/select/select, select, Select, UI component, form, sonic-select, web component, , options, formDataProvider, name, valueKey, value, wordingKey. URL: https://concorde.supersoniks.org/core/components/ui/form/select.
Select
sonic-select wraps a native <select> with a label, a description, prefix and suffix slots and Concorde sizes. Options come from child <option> tags or from the options attribute (JSON). Bind the value to a store with formDataProvider and name, set on the field or on an ancestor.
Basic example
<sonic-select label="Cabin class" description="Pick one.">
<option value="">No selection</option>
<option value="economy">Economy</option>
<option value="premium" selected>Premium</option>
<option value="business">Business</option>
<option value="first">First</option>
</sonic-select>
Options
options takes an array of objects; valueKey (default value) and wordingKey (default wording) name the keys to read. An option with selected sets the initial value; with no value and nothing selected, the first option is used.
<sonic-select label="Meal" wordingKey="label" options='[{"value":"standard","label":"Standard"},{"value":"vegetarian","label":"Vegetarian","selected":true},{"value":"none","label":"No meal"}]'></sonic-select>
Size and status
With no size, the select uses the base scale. status colors the field; it defaults to default.
<div class="grid gap-3">
<sonic-select size="2xs"><option>2xs</option></sonic-select>
<sonic-select size="xs"><option>xs</option></sonic-select>
<sonic-select size="sm"><option>sm</option></sonic-select>
<sonic-select><option>default</option></sonic-select>
<sonic-select size="lg"><option>lg</option></sonic-select>
<sonic-select size="xl"><option>xl</option></sonic-select>
<sonic-select size="2xl"><option>2xl</option></sonic-select>
<sonic-select status="success"><option>success</option></sonic-select>
<sonic-select status="error"><option>error</option></sonic-select>
<sonic-select status="warning"><option>warning</option></sonic-select>
<sonic-select status="info"><option>info</option></sonic-select>
<sonic-select status="primary"><option>primary</option></sonic-select>
<sonic-select disabled><option>disabled</option></sonic-select>
</div>
Filtering a list
name="direction" writes to the store used as dataFilterProvider by a sonic-queue, which sends it as ?direction= to the mock API: switch between departures and arrivals.
API reference
| Attribute | Values | Description |
|---|---|---|
name |
string | Key in the form store (dot notation allowed) |
value |
string | Initial value |
formDataProvider |
string | Store id; inherited from the closest ancestor |
options |
JSON array | Options as objects; alternative to child <option> tags |
valueKey |
string (default value) |
Option key used as value |
wordingKey |
string (default wording) |
Option key used as text |
size |
2xs … 2xl (default: base scale) |
Typography and padding |
status |
default · success · error · warning · info · primary |
Field color |
label |
string (HTML) | Label; or use the label slot |
description |
string (HTML) | Help text under the field; or use the description slot |
required · disabled · autofocus |
boolean | Native flags |
multiple |
boolean | Native multiple selection; only one value is stored |
selectSize |
number | Native size (visible rows) |
data-aria-label · data-aria-labelledby |
string | Forwarded as aria-label and aria-labelledby |
unsetOnDisconnect |
boolean | Clears the store value when the element is removed |
forceAutoFill |
boolean | Lets properties override label / description / name attributes |
| Slot | Description |
|---|---|
| (default) | <option> elements |
label |
Rich label content |
description |
Rich help text |
prefix |
Content before the select |
suffix |
Content after the select |