{#if root} {#each nodes as child (child.id)} {#if Array.isArray(child.nodes)} {:else} {/if} {/each} {:else} {@const selected = $selectedNodeIds.includes(id)}
  • { if (disabled) return; clickNode(node); }} on:keydown={(e) => { if ( e.key === "ArrowLeft" || e.key === "ArrowRight" || e.key === "Enter" ) { e.stopPropagation(); } if (parent && e.key === "ArrowLeft") { expanded = false; expandNode(node, false); toggleNode(node); } if (parent && e.key === "ArrowRight") { if (expanded) { ref.lastChild.firstElementChild?.focus(); } else { expanded = true; expandNode(node, true); toggleNode(node); } } if (e.key === "Enter" || e.key === " ") { e.preventDefault(); if (disabled) return; expanded = !expanded; toggleNode(node); clickNode(node); expandNode(node, expanded); ref.focus(); } }} on:focus={() => { focusNode(node); }} >
    { if (disabled) return; expanded = !expanded; expandNode(node, expanded); toggleNode(node); }} >
    {#if expanded} {/if}
  • {/if}