mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
* feat(toolbar): forward "clear" event in ToolbarSearch
* docs(search): add on:clear example
* fix(ui-shell): set aria-hidden in SideNav
Ref c2b4f1f00
* chore(deps-dev): upgrade carbon-components to v10.30.0
* fix(text-input): use bx--text-input class for TextInputSkeleton
* fix(radio-button): only render span if labelText is truthy
* docs(password-input): add custom tooltip example
* feat(button): add isSelected prop for icon-only, ghost buttons
* feat(radio-button): add legendText prop to RadioButtonGroup
* docs(tag): add filterable (disabled) variant
* feat(tag): add interactive prop
* chore(number-input): deprecate the mobile variant
Mobile variant styles will no longer work.
* feat(button): set aria-pressed attribute if icon-only, ghost button is selected
* fix(multi-select): type dispatched select event
* fix(button): remove redundant "button" role
* feat(icon): deprecate Icon, IconSkeleton
* feat(ui-shell): make SideNavMenuItem text slottable
* fix(list-box): update styles for ListBoxSelection
* fix(list-box): temporarily apply override styles to ListBoxMenuIcon for chevron
* fix(tag): set disabled prop on interactive tag
* docs(button): extract selected, icon-only button example
* feat(tooltip): elevate z-index of tooltip when open
* feat: forward restProps to input element
* fix(types): fix TimePicker test to pass svelte-check
* feat: add ImageLoader component
* test: add ImageLoader
* feat: add LocalStorage component
* test(local-storage): fix invalid file
* chore(docs): use green tag type
130 lines
No EOL
3.6 KiB
Text
130 lines
No EOL
3.6 KiB
Text
<script>
|
|
import { MultiSelect } from "carbon-components-svelte";
|
|
import Preview from "../../components/Preview.svelte";
|
|
</script>
|
|
|
|
### Default
|
|
|
|
By default, items will be ordered alphabetically based on the `item.text` value. To prevent this, see [#no-alphabetical-ordering](#no-alphabetical-ordering).
|
|
|
|
<MultiSelect titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### No alphabetical ordering
|
|
|
|
To prevent alphabetical item ordering, pass an empty function to the `sortItem` prop.
|
|
|
|
<MultiSelect titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
sortItem="{() => {}}"
|
|
/>
|
|
|
|
### Filterable
|
|
|
|
`$$restProps` are spread to the underlying input element.
|
|
|
|
<MultiSelect spellcheck="false" filterable titleText="Contact" placeholder="Filter contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Initial selected items
|
|
|
|
To select (or bind) items, pass an array of item ids to `selectedIds`.
|
|
|
|
<MultiSelect selectedIds="{["0", "1"]}" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Multiple multi-select dropdowns
|
|
|
|
<FileSource src="/framed/MultiSelect/MultipleMultiSelect" />
|
|
|
|
### Format item display text
|
|
|
|
Use the `itemToString` prop to format the display of individual items.
|
|
|
|
<MultiSelect itemToString={item => {
|
|
return item.text + ' (' + item.id +')'
|
|
}} titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
sortItem="{() => {}}"
|
|
/>
|
|
|
|
### Top direction
|
|
|
|
Set `direction` to `"top"` for the dropdown menu to appear above the input.
|
|
|
|
<MultiSelect direction="top" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Light variant
|
|
|
|
<MultiSelect light titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Inline type
|
|
|
|
<MultiSelect type="inline" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Extra-large size
|
|
|
|
<MultiSelect size="xl" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Small size
|
|
|
|
<MultiSelect size="sm" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
|
|
|
|
### Invalid state
|
|
|
|
<MultiSelect invalid invalidText="A contact method is required" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Warning state
|
|
|
|
<MultiSelect warn warnText="One or more contact methods are not associated with your account" titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/>
|
|
|
|
### Disabled state
|
|
|
|
<MultiSelect disabled titleText="Contact" label="Select contact methods..."
|
|
items="{[{id: "0", text: "Slack"},
|
|
{id: "1", text: "Email"},
|
|
{id: "2", text: "Fax"}]}"
|
|
/> |