{#snippet menu()} {/snippet} {#if view}
(historyOpen = !historyOpen)}> {#each view.game.seats as s (s.seat)}
{s.accountId === app.session?.userId ? t('common.you') : s.displayName}
{s.score}
{/each}
{#if historyOpen}
    {#each moves as m, i (i)}
  1. {view.game.seats[m.player]?.displayName ?? m.player} {m.action === 'play' ? m.words.join(', ') : m.action} {m.score} ({m.total})
  2. {/each} {#if moves.length === 0}
  3. {/if}
{/if}
historyOpen && (historyOpen = false)} > { focus = { row: r, col: c }; if (!gameOver) zoomed = !zoomed; }} onrecall={onRecall} onpenddown={onBoardDown} />
{view.bagLen === 0 ? t('game.bagEmpty') : t('game.bag', { n: view.bagLen })} {#if gameOver} {t('game.over')} — {resultText()} {:else} {isMyTurn ? t('game.yourTurn') : view.game.seats[view.game.toMove]?.displayName ?? ''} {/if} {#if preview}{preview.legal ? t('game.scores', { n: preview.score }) : t('game.previewIllegal')}{/if}
{#if !gameOver && placement.pending.length > 0} {/if}
{:else}

{t('common.loading')}

{/if} {#snippet tabbar()} {#if view} {#snippet trigger()}🥺{t('game.skip')}{/snippet} {#snippet popover(close)}{/snippet} {#snippet trigger()} 🛟{#if (view?.hintsRemaining ?? 0) > 0}{view?.hintsRemaining}{/if} {t('game.hint')} {/snippet} {#snippet popover(close)}{/snippet} {#if placement.pending.length > 0} {:else} {/if} {/if} {/snippet} {#if drag}
{drag.blank ? '' : drag.letter}
{/if} {#if blankPrompt} (blankPrompt = null)}>
{#each alphabetLetters(variant) as ch (ch)} {/each}
{/if} {#if exchangeOpen && view} (exchangeOpen = false)}>
{#each view.rack as letter, i (i)} {/each}
{/if} {#if checkOpen} (checkOpen = false)}>
e.key === 'Enter' && runCheck()} placeholder={t('game.checkWordPrompt')} />
{#if checkResult}

{checkResult.legal ? t('game.wordLegal', { word: checkResult.word }) : t('game.wordIllegal', { word: checkResult.word })}

{/if}
{/if} {#if resignOpen} (resignOpen = false)}>
{/if} {#if panel === 'chat'} (panel = 'none')}> {/if}