diff --git a/README.md b/README.md
index 19a127ce..4b82976e 100644
--- a/README.md
+++ b/README.md
@@ -57,6 +57,7 @@ Currently, the following components are supported:
- ListBoxSelection
- ListItem
- Loading
+- MultiSelect
- Modal
- Notification
- ToastNotification
diff --git a/src/components/Checkbox/Checkbox.svelte b/src/components/Checkbox/Checkbox.svelte
index f1200a6a..688dd8e9 100644
--- a/src/components/Checkbox/Checkbox.svelte
+++ b/src/components/Checkbox/Checkbox.svelte
@@ -6,6 +6,8 @@
export let disabled = false;
export let id = Math.random();
export let labelText = '';
+ export let name = '';
+ export let readonly = false;
export let hideLabel = false;
export let title = '';
export let style = undefined;
@@ -37,7 +39,9 @@
{indeterminate}
{disabled}
{checked}
- {id} />
+ {name}
+ {id}
+ {readonly} />
diff --git a/src/components/ComboBox/ComboBox.svelte b/src/components/ComboBox/ComboBox.svelte
index 0c7b6e1a..99779d14 100644
--- a/src/components/ComboBox/ComboBox.svelte
+++ b/src/components/ComboBox/ComboBox.svelte
@@ -30,8 +30,9 @@
ListBoxSelection
} from '../ListBox';
+ let selectedId = undefined;
let inputRef = undefined;
- let inputValue = undefined;
+ let inputValue = '';
let highlightedIndex = -1;
function change(direction) {
@@ -49,20 +50,21 @@
afterUpdate(() => {
if (open) {
inputRef.focus();
+ filteredItems = items.filter(item => shouldFilterItem(item, value));
} else {
highlightedIndex = -1;
inputValue = selectedItem ? selectedItem.text : '';
}
});
- $: selectedItem = items[selectedIndex];
- $: inputValue = selectedItem ? selectedItem.text : undefined;
- $: value = inputValue;
$: ariaLabel = $$props['aria-label'] || 'Choose an item';
$: menuId = `menu-${id}`;
$: comboId = `combo-${id}`;
$: highlightedId = items[highlightedIndex] ? items[highlightedIndex].id : undefined;
$: filteredItems = items.filter(item => shouldFilterItem(item, value));
+ $: selectedItem = items[selectedIndex];
+ $: inputValue = selectedItem ? selectedItem.text : undefined;
+ $: value = inputValue;
{#each filteredItems as item, i (item.id || i)}
{
- selectedIndex = i;
+ selectedId = item.id;
+ selectedIndex = items.map(({ id }) => id).indexOf(filteredItems[i].id);
open = false;
}}
on:mouseenter={() => {
diff --git a/src/components/ListBox/ListBox.svelte b/src/components/ListBox/ListBox.svelte
index 826d9168..c9cb3e38 100644
--- a/src/components/ListBox/ListBox.svelte
+++ b/src/components/ListBox/ListBox.svelte
@@ -1,6 +1,7 @@
diff --git a/src/components/ListBox/ListBoxMenu.svelte b/src/components/ListBox/ListBoxMenu.svelte
index 8d166cd7..d02f18ea 100644
--- a/src/components/ListBox/ListBoxMenu.svelte
+++ b/src/components/ListBox/ListBoxMenu.svelte
@@ -1,7 +1,7 @@
-