diff --git a/src/lib/Combobox.svelte b/src/lib/Combobox.svelte index 22aeeec..3b21486 100644 --- a/src/lib/Combobox.svelte +++ b/src/lib/Combobox.svelte @@ -114,6 +114,7 @@ /** stores currently highlighted option (according to keyboard navigation or default item) */ let highlighted = $derived.by((): ComboboxOption | undefined => { + if (!searching) return undefined; // otherwise, the first item is highlighted on first open if (filteredItems.length === 0) return undefined; if (value !== undefined && filteredItems.find((v) => v.value === value?.value)) return value; if (!filteredItems[0]?.disabled) return filteredItems[0]; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 073c4d9..3b8ffe8 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -29,9 +29,10 @@ TextStrikethrough, TextUnderline } from 'phosphor-svelte'; - import type { Option } from '$lib'; + import type { ComboboxOption, Option } from '$lib'; import Tabs from '$lib/Tabs.svelte'; + let lazyOptions: ComboboxOption[] = $state([]); let dateInputValue = $state(undefined); let checkboxValue = $state('indeterminate'); let dialogOpen = $state(false); @@ -148,7 +149,21 @@ onvalidate={(e) => console.log('Validation:', e.detail)} /> - + { + setTimeout(() => { + lazyOptions = [ + { value: 'option1', label: 'Option 1' }, + { value: 'option2', label: 'Option 2' }, + { value: 'option3', label: 'Option 3' } + ]; + }, 2500); + }} + />