{#each nodes as node (node.path)} {@const open = openSet.has(node.path)} {@const active = isActive(node.path)} {@const hasChildren = node.children.length > 0}
  • {#if hasChildren} {:else} {/if} {#if !readonly}
    onCreateChild?.(node.path)} > New subfolder onRename?.(node.path)} > Rename onMove?.(node.path)} > Move to folder… onDelete?.(node.path)} > Delete folder…
    {/if}
    {#if hasChildren && open} {/if}
  • {/each}