{#each visibleItems as { seg, idx, top, height } (idx)}
onSeekToTime(seg.start)} ondblclick={() => onStartEditing(idx)} role="button" tabindex="0" onkeydown={(e) => { if (e.key === "Enter" && editingIdx !== idx) onSeekToTime(seg.start); }} >
{ e.stopPropagation(); onToggleStar(idx); }} aria-label={seg.starred ? "Unstar" : "Star"} >
{#if showTimestamps}
{formatTime(seg.start)}
{/if} {#if editingIdx === idx}
{ if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); onFinishEditing(); } if (e.key === "Escape") { onFinishEditing(); } }} onblur={onFinishEditing} onclick={(e) => e.stopPropagation()} data-no-transition >
{:else}
{#if searchQuery.trim()} {@html highlightText(seg.text.trim())} {:else} {seg.text.trim()} {/if}
{/if}
{ e.stopPropagation(); onCopySegment(idx); }} title="Copy segment" >
{ e.stopPropagation(); onDeleteSegment(idx); }} title="Delete segment" >
{/each}