{#snippet renderDefaultItems(items: SelectItem[], depth = 0)} {#each items as item} {#if item.children && item.children.length > 0}
{@render renderDefaultItems(item.children, depth + 1)}
{/if} {/each} {/snippet} {#snippet renderModelItems(items: SelectItem[])} {#each items as group} {#if group.selectable === false}
{#if group.icon} {@html group.icon} {/if} {group.label}
{#each group.children || [] as model} {/each} {:else} {/if} {/each} {/snippet} {#snippet renderNestedItems(items: SelectItem[], depth = 0)} {#each items as item}
{#if item.children && item.children.length > 0}
{@render renderNestedItems(item.children, depth + 1)}
{/if} {/each} {/snippet}
isOpen = true} onHide={() => { isOpen = false; hoveredItem = null; }} syncWidth={true} syncWidthMode={variant === 'default' ? 'equal' : 'min'} > {#snippet floating()} {#if variant === 'default'}
{@render renderDefaultItems(items)}
{:else if variant === 'model'}
Model selection
{@render renderModelItems(items)}
{:else}
{#each items as item} {/each}
{#if hoveredItem && hoveredItem.children && hoveredItem.children.length > 0}
{@render renderNestedItems(hoveredItem.children)}
{/if}
{/if} {/snippet}