Рабочая область

Цепочка инструментов: результат каждого шага становится входом следующего.

{#if errorText} {/if}

Шаги

(selectedId = steps[index]?.id ?? null)} onMoveUp={moveUp} onMoveDown={moveDown} onRemove={removeStep} /> {#if selectedIndex >= 0 && steps[selectedIndex]} {/if}

Итог

{#if !source}
{:else if status === 'processing' && !shownResult}
{:else}
{#if status === 'processing'} Пересчёт… {/if}
showError(e instanceof Error ? e.message : String(e))} /> {/if}