{i18n.t("game.calculator.col.ship")}
{i18n.t("game.calculator.col.tech")}
{#each BLOCK_ROWS as row (row.key)} {@const isComputed = computedInput === row.key}
{row.label()}
{#if isComputed}
{:else}
{/if} {#if row.tech !== null} {@const techKey = row.tech}
onTechInput(techKey)} aria-invalid={techError(techKey) !== "" ? "true" : "false"} title={techError(techKey)} data-testid={`calculator-tech-${techKey}`} /> {#if techOverridden[techKey]}
onResetTech(techKey)} > 🔒
{/if}
{:else}
{/if}
{/each}