{#if hasBlocks}
{reviewedCount} / {totalCount}
geprüft
{#if onMarkAllReviewed}
{#if markingAllReviewed}
{:else}
{/if} {m.transcription_mark_all_reviewed()}
{/if}
{#if markAllError}
{markAllError}
(markAllError = null)} aria-label={m.comp_dismiss()} class="flex min-h-[44px] min-w-[44px] items-center justify-center rounded text-red-500 hover:text-red-700 focus-visible:ring-2 focus-visible:ring-red-500" >
{/if}
{#each sortedBlocks as block, i (block.id)} {#if dragDrop.dropTargetIdx === i}
{/if}
dragDrop.handleGripDown(e, block.id)} class="relative transition-all duration-150 {dragDrop.draggedBlockId === block.id ? 'z-10 rounded-lg shadow-xl ring-2 ring-turquoise/40' : ''}" style={dragDrop.draggedBlockId === block.id ? `transform: translateY(${dragDrop.dragOffsetY}px) scale(1.02); opacity: 0.9;` : ''} >
autoSave.handleTextChange(block.id, text, mentions)} onFocus={() => handleFocus(block.id)} onDeleteClick={() => handleDelete(block.id)} onRetry={() => autoSave.handleRetry(block.id, block.text, block.mentionedPersons ?? [])} onReviewToggle={() => onReviewToggle(block.id)} onMoveUp={() => handleMoveUp(block.id)} onMoveDown={() => handleMoveDown(block.id)} isFirst={i === 0} isLast={i === sortedBlocks.length - 1} source={block.source} />
{/each} {#if dragDrop.dropTargetIdx === sortedBlocks.length}
{/if}
{m.transcription_next_block_cta({ number: sortedBlocks.length + 1 })}
{#if canRunOcr && onTriggerOcr}
{m.ocr_section_heading()}
{/if}
{:else}
{/if} {#if canWrite && hasBlocks}
{m.transcribe_mark_for_training()}
{#each [{ label: 'KURRENT_RECOGNITION', display: m.training_chip_kurrent() }, { label: 'KURRENT_SEGMENTATION', display: m.training_chip_segmentation() }] as chip (chip.label)}
handleLabelToggle(chip.label)} class="rounded-full border px-3 py-1 font-sans text-xs font-medium transition-colors {localLabels.includes(chip.label) ? 'border-brand-mint bg-brand-mint text-brand-navy' : 'border-line bg-surface text-ink-3 hover:border-brand-mint hover:text-brand-navy'}" > {chip.display}
{/each}
{/if}