{ if (event.key === 'Escape' && menuOpen) { event.stopPropagation(); menu.close(); } }} />
{$i18n.t('Compare')}
{#each ['unified', 'split'] as value} {/each}
{#each [{ label: 'Original', path: original }, { label: 'Revised', path: revised }] as file}
{$i18n.t(file.label)}
{name(file.path)}
{/each}
{#if loading}
{$i18n.t('Extracting text and comparing…')}
{:else if error} {:else if result}
+{result.additions} −{result.deletions} {$i18n.t('Extracted text lines')}
{#if result.hunks.length === 0}

{$i18n.t('No text differences')}

{:else}
{#each result.hunks as hunk}
{hunk.header}
{#if mode === 'split'} {#each splitRows(hunk.lines) as row}
{#each ['original', 'revised'] as side} {@const line = row[side as 'original' | 'revised']}
{(side === 'original' ? line?.oldNumber : line?.newNumber) ?? ''} {#if line}{#each line.segments as segment}{segment.text}{/each}{:else}{' '}{/if}
{/each}
{/each} {:else} {#each hunk.lines as line}
{line.oldNumber ?? ''}{line.newNumber ?? ''} {#each line.segments as segment}{segment.text}{/each}
{/each} {/if} {/each}
{/if} {/if}