{ if (!open || !processedItems?.length) return if (e.key === 'ArrowUp' && keyArrowPos !== undefined && processedItems.length > 0) { keyArrowPos = keyArrowPos <= 0 ? undefined : keyArrowPos - 1 } else if (e.key === 'ArrowDown') { if (keyArrowPos === undefined) { keyArrowPos = 0 } else { keyArrowPos = Math.min(processedItems.length - 1, keyArrowPos + 1) } } else if (e.key === 'Enter' && keyArrowPos !== undefined && processedItems?.[keyArrowPos]) { setValue(processedItems[keyArrowPos]) } else { keyArrowPos = undefined return } e.preventDefault() }} />
(open = false) }} onpointerdown={() => onFocus?.()} onfocus={() => onFocus?.()} onblur={() => onBlur?.()} > {#if loading}
{:else if clearable && !disabled && value}
{:else if RightIcon}
{/if} filterText, (v) => (filterText = v)} placeholder={loading ? 'Loading...' : (valueEntry?.label ?? placeholder)} style={containerStyle} class={twMerge( '!bg-surface text-ellipsis', open ? '' : 'cursor-pointer', valueEntry && !loading ? '!placeholder-primary' : '', (clearable || RightIcon) && !disabled && value ? '!pr-8' : '', inputClass ?? '' )} autocomplete="off" onpointerdown={() => (open = true)} bind:this={inputEl} /> {#if open && !disabled}
{#if processedItems?.length === 0}
No items
{/if} {#each processedItems ?? [] as item, itemIndex} {#if (item.__select_group && itemIndex === 0) || processedItems?.[itemIndex - 1]?.__select_group !== item.__select_group}
{item.__select_group}
{/if} {/each}
{/if}