{#if titleText}
{/if}
{
if (key === 'Enter') {
open = !open;
if (highlightedIndex > -1 && highlightedIndex !== selectedIndex) {
selectedIndex = highlightedIndex;
open = false;
}
} else if (key === 'Tab') {
open = false;
} else if (key === 'ArrowDown') {
change(1);
} else if (key === 'ArrowUp') {
change(-1);
} else if (key === 'Escape') {
open = false;
}
}}"
on:focus
on:blur
on:blur="{({ relatedTarget }) => {
if (relatedTarget && relatedTarget.getAttribute('role') !== 'button') {
ref.focus();
}
}}"
disabled="{disabled}"
placeholder="{placeholder}"
id="{id}"
value="{inputValue}"
/>
{#if invalid}
{/if}
{#if inputValue}
{/if}
{#if open}
{#each filteredItems as item, i (item.id || i)}
{itemToString(item)}
{/each}
{/if}
{#if !invalid && helperText}
{helperText}
{/if}