{#if !exercise.isUnlocked} {:else} {#if exercise.sectionTitle}
{exercise.sectionTitle}
{/if} {#if showAttemptsPicker}
{attemptsSelectAriaLabel} nextValue && handleAttemptSelect(nextValue)} > {selectValue === 'live' ? newAttemptOptionLabel : formatAttemptOption({ attemptNumber: Number(selectValue) + 1, correct: persistedAttempts[Number(selectValue)]?.correctCount ?? 0, total: persistedAttempts[Number(selectValue)]?.totalGradable ?? totalGradable })} {#each persistedAttempts as _, attemptIdx (attemptIdx)} {@const stored = persistedAttempts[attemptIdx]} {@const attemptLabel = formatAttemptOption({ attemptNumber: attemptIdx + 1, correct: stored.correctCount, total: stored.totalGradable })} {attemptLabel} {/each} {newAttemptOptionLabel}
{/if}

{exercise.title}

{#if exercise.description}
{/if}
{#if submitted}
{summaryText}
{:else} {privacyHint} {/if}
{/if}