{t('chat.draftExists')}
+{account?.authenticated ? t('auth.mockNote') : t('account.guestNote')}
+{t('account.noRecovery')}
+{t('account.languageNote')}
+ +{t('account.motionNote')}
+{character.origin === 'official' ? 'Everwith' : t('create.character')} · {pick(character.tagline, lang)}
+{pick(character.description, lang)}
+ {character.traits.length > 0 && <> +{t('character.voice')}: {character.voice}
+{t('character.noPrivate')}
+{t('character.existingHint')}
+ +{view.phase === 'generating' ? t('chat.generating', {name: friend.name}) : view.phase === 'awaiting_commit' ? t('chat.awaiting') : ''}
+{t('chat.empty', {name: friend.name})}
+ {turns.map((turn, index) =>{s.kind === 'action' ? {s.text} :
{t('chat.ignoredFrames', {n: view.ignoredFrames})}
} +{p.kind === 'action' ? {p.text} :
{t(kind === 'reset' ? 'chat.resetDesc' : 'chat.removeDesc', {name: friend.name})}
{friend.name} · {t('friends.source', {name: friend.source_name})} · epoch {friend.epoch}
>} + confirmLabel={t(kind === 'reset' ? 'chat.reset' : 'chat.remove')} onCancel={onClose} + onConfirm={async () => { + setBusy(true) + try { if (kind === 'reset') await api.friends.reset(friend.id, friend.epoch, accountId); else await api.friends.remove(friend.id, friend.epoch, accountId); onClose(); onDone() } + catch { setBusy(false); toast(t('error.generic'), 'error') } + }} /> +} +function CorrectionDialog({onClose, onSubmit}: {onClose: () => void; onSubmit: (text: string) => Promise{t('chat.history')}
+ {items.map(c => )} + {viewing && } +{t('create.subtitle')}
{t('create.emptyNote')}
{t('create.assistNote')}
+{t('create.worldbookGap')}
+{work.share.enabled ? t('create.shareOn', {n: work.share.version ?? ''}) : t('create.shareOff')}
+{t('create.shareNote')}
+{t('discover.subtitle')}
+{pick(item.tagline, lang)}
+{pick(item.description, lang)}
+{pick(item.genre, lang)} · {pick(item.content_note, lang)}
+{pick(item.description, lang)}
+{item.players.join(' / ')} {t('common.players')} · {t('discover.companionGame')}
+{pick(item.description, lang)}
+{t('friends.subtitle')}
{t('game.leaveNote')}
+{status}
+{pickSummary(l.summary)}
)} + {messages.map(m =>{seatName(m.seat)}{m.mode === 'simulated_rule_reply' && {t('common.simulated')}}
{t('game.replyFailed')}
} +| {t('game.seats')} | {t('game.score')} | |
|---|---|---|
| {seatName(seat)} | +{s.scores[seat].toLocaleString()} | {s.winners.includes(seat) ? t('game.winner') : ''} {s.labels[seat] ? pickSummary(s.labels[seat]) : ''} |
{t('game.prepare')}
+{pick(game.description, lang)}
+{pick(game.profile_label, lang)} {game.profile}
{t('friends.guest')}
} +{bt('legend')}
+| {bt('col_player')} | {bt('col_cards')} | {bt('col_sum')} | {bt('col_gain')} | {bt('col_total')} |
|---|---|---|---|---|
| {seatName(r.player)} | +{r.values.map((x, i) => {x}{(x === 6 || x === 9) && })} | +{r.sum} | ++{r.gain} {bt(`reason_${r.reason}`)} | +{r.before ?? '—'} → {r.after ?? '—'}{r.reset && · {bt('resetNote')}} | +
{prompt}
+ {detail &&{t('recent.subtitle')}
{pick(story.genre, lang)} · v{story.version}
+{pick(story.description, lang)}
+{pick(story.content_note, lang)}
+{t('story.noRecord')}
+{t('story.publicNote')}
+{t('story.rollbackConfirm')}
{rollbackTurn.input}>} confirmLabel={t('story.rollback')} danger + onCancel={() => setRollbackTurn(null)} onConfirm={async () => { + const target = rollbackTurn; setRollbackTurn(null) + try { const r = await api.stories.rollback(session.id, target.turn_id, session.revision); setSession(r.session); setDraft(r.restored) } + catch { toast(t('error.conflict'), 'error'); await reload() } + }} />} + {addFriendDialog} +
{t('story.withdrawn')}
)} + {turn.kind === 'continue' &&{t('story.continueStory')}
} + {turn.segments.map(segment)} + {(turn.delta.clue || turn.delta.minutes > 0) && turn.kind !== 'opening' &&{turn.delta.clue && {t('story.newClue', {clue: pick(turn.delta.clue, lang)})}} +{turn.delta.minutes} min
} +{t('story.continueStory')}
} + {working &&{t('story.validating')}
} +{t('story.prepare')} · v{story.version}
+{pick(story.player_role, lang)} · {t('story.playedBy', {name: account?.persona?.name || t('common.you')})}
+{account?.authenticated ? t('story.noFriends') : t('friends.guest')}
} +