{t('import.anki_label')}
{#if stage === 'idle'}
e.preventDefault()} ondrop={onDrop} onclick={() => fileInput?.click()} role="button" tabindex="0" onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); fileInput?.click(); } }} >
{t('import.dropzone')}
{t('import.dropzone_hint')}
{:else if stage === 'parsing'}
{t('import.parsing', { file: fileName })}
{:else if stage === 'preview' && parsed}
{t('import.preview_found')} {fileName}:
{#if parsed.warnings.length > 0}
{t('import.preview_warnings', { n: parsed.warnings.length })}
    {#each parsed.warnings.slice(0, 10) as w (w)}
  • {w}
  • {/each}
{/if}
{:else if stage === 'importing'}
{#if progress.stage === 'media'} {t('import.stage_media', { current: progress.current, total: progress.total })} {:else if progress.stage === 'decks'} {t('import.stage_decks', { current: progress.current, total: progress.total })} {:else if progress.stage === 'cards'} {t('import.stage_cards', { current: progress.current, total: progress.total })} {:else} {t('import.stage_done')} {/if}
{:else if stage === 'done' && result}
{result.decksCreated === 1 ? t('import.done_summary_one', { cards: result.cardsCreated }) : t('import.done_summary', { cards: result.cardsCreated, decks: result.decksCreated })}
{#if result.cardsSkippedDuplicate > 0}
{t('import.done_dupes', { n: result.cardsSkippedDuplicate })}
{/if} {#if result.mediaUploaded > 0 || result.mediaFailed > 0}
{t('import.done_media', { uploaded: result.mediaUploaded, failed: result.mediaFailed, })}
{/if} {#if result.failed > 0}
{t('import.done_failures', { n: result.failed })}
    {#each result.failures.slice(0, 20) as msg (msg)}
  • {msg}
  • {/each}
{/if}
{:else if stage === 'error'} {/if}