e.preventDefault()}> {#each items as item, i} {#if "separator" in item}
{:else} {@const mi = item as MenuItem} {@const hasSub = !!mi.children?.length}
{ if (mi.disabled) return; if (hasSub) { subOpen = subOpen === i ? -1 : i; return; } mi.onClick(); onClose(); }} onmouseenter={() => { if (!mi.disabled) { focused = i; subOpen = hasSub ? i : -1; } }} onmouseleave={() => { focused = -1; }} >
{#if mi.icon}
{/if}
{mi.label}
{#if hasSub}
›
{/if}
{#if hasSub && subOpen === i}
{ subOpen = i; }}> {#each mi.children as child} {#if "separator" in child}
{:else} {@const sc = child as MenuItem}
{ if (!sc.disabled) { sc.onClick(); onClose(); } }} >
{#if sc.icon}
{/if}
{sc.label}
{/if} {/each}
{/if}
{/if} {/each}