feat(scenes): rich scene descriptions and control viewer window

Add TipTap editing in the editor and an Electron window on the control panel to read the current scene description.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-07-15 09:49:40 +08:00
parent 35a6e979eb
commit cfa3959fb3
26 changed files with 1795 additions and 60 deletions
@@ -54,6 +54,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'common.close': 'Закрыть',
'common.cancel': 'Отмена',
'common.save': 'Сохранить',
'common.edit': 'Редактировать',
'common.understood': 'Понятно',
'common.message': 'Сообщение',
'common.error': 'Ошибка',
@@ -325,6 +326,20 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'scene.title': 'НАЗВАНИЕ СЦЕНЫ',
'scene.description': 'ОПИСАНИЕ',
'scene.descriptionEmpty': 'описание отсутствует',
'scene.descriptionModalTitle': 'Описание сцены',
'scene.descriptionPlaceholder': 'Введите описание сцены…',
'scene.descriptionToolbar': 'Форматирование',
'scene.descriptionBold': 'Жирный',
'scene.descriptionItalic': 'Курсив',
'scene.descriptionUnderline': 'Подчёркнутый',
'scene.descriptionHeading2': 'Заголовок',
'scene.descriptionHeading3': 'Подзаголовок',
'scene.descriptionQuote': 'Цитата',
'scene.descriptionBulletList': 'Маркированный список',
'scene.descriptionOrderedList': 'Нумерованный список',
'scene.descriptionLink': 'Ссылка',
'scene.descriptionLinkPrompt': 'URL ссылки',
'scene.preview': 'ПРЕВЬЮ СЦЕНЫ',
'scene.previewHint': 'Файл изображения (PNG, JPG, WebP, GIF и т.д.).',
'scene.previewEmpty': 'Превью не задано',
@@ -369,6 +384,9 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'scene.sideStoryLineTitle': 'Название побочной линии',
'control.remoteTitle': 'ПУЛЬТ УПРАВЛЕНИЯ',
'control.instruments': 'ИНСТРУМЕНТЫ',
'control.descriptionTool': 'Описание',
'control.descriptionMissing': 'Описание отсутствует',
'control.effects': 'ЭФФЕКТЫ',
'control.tools': 'Инструменты',
'control.fieldEffects': 'Эффекты поля',
@@ -439,6 +457,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'common.close': 'Close',
'common.cancel': 'Cancel',
'common.save': 'Save',
'common.edit': 'Edit',
'common.understood': 'OK',
'common.message': 'Message',
'common.error': 'Error',
@@ -710,6 +729,20 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'scene.title': 'SCENE TITLE',
'scene.description': 'DESCRIPTION',
'scene.descriptionEmpty': 'no description',
'scene.descriptionModalTitle': 'Scene description',
'scene.descriptionPlaceholder': 'Enter scene description…',
'scene.descriptionToolbar': 'Formatting',
'scene.descriptionBold': 'Bold',
'scene.descriptionItalic': 'Italic',
'scene.descriptionUnderline': 'Underline',
'scene.descriptionHeading2': 'Heading',
'scene.descriptionHeading3': 'Subheading',
'scene.descriptionQuote': 'Quote',
'scene.descriptionBulletList': 'Bullet list',
'scene.descriptionOrderedList': 'Numbered list',
'scene.descriptionLink': 'Link',
'scene.descriptionLinkPrompt': 'Link URL',
'scene.preview': 'SCENE PREVIEW',
'scene.previewHint': 'Image file (PNG, JPG, WebP, GIF, etc.).',
'scene.previewEmpty': 'No preview',
@@ -753,6 +786,9 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
'graph.runFromScene': 'Start from this scene',
'control.remoteTitle': 'CONTROL PANEL',
'control.instruments': 'TOOLS',
'control.descriptionTool': 'Description',
'control.descriptionMissing': 'No description',
'control.effects': 'EFFECTS',
'control.tools': 'Tools',
'control.fieldEffects': 'Field effects',