{#each lines as line, i (i)}
{#if line.kind === 'command'}
›
{line.typed}{#if line.showCaret}▎{/if}
{:else if line.kind === 'phase'}
{#if line.variant === 'spinning'}
{spinnerFrames[spinnerFrame]}
{line.text}
{:else if line.variant === 'done-hollow'}
○
{line.text}
{:else if line.variant === 'ready'}
●
{line.text}
{/if}
{:else if line.kind === 'child'}
{line.isLast ? '└' : '├'}
✓
{#each splitChildText(line.text) as part}{#if part.accent}{part.text}{:else}{part.text}{/if}{/each}
{/if}
{/each}