{#snippet menu()} {#if menuOpen}
(menuOpen = false)}>
{/if} {/snippet}
{#if view}
{#each view.game.seats as s (s.seat)}
{s.accountId === app.session?.userId ? t('common.you') : s.displayName}
{s.score}
{/each}
(zoomed = !zoomed)} />
{t('game.bag', { n: view.bagLen })} {#if gameOver} {t('game.over')} — {resultText()} {:else} {isMyTurn ? t('game.yourTurn') : t('game.waiting', { name: view.game.seats[view.game.toMove]?.displayName ?? '' })} {/if} {t('game.hints', { n: view.hintsRemaining })}
{#if !gameOver}
{#if placement.pending.length > 0} {/if}
{/if} {:else}

{t('common.loading')}

{/if} {#if drag}
{drag.blank ? '' : drag.letter}
{/if} {#if blankPrompt} (blankPrompt = null)}>
{#each alphabet(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()} />
{#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} {#if panel === 'history' && view} (panel = 'none')}>
    {#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}
  2. {/each}
{/if}