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
@@ -0,0 +1,19 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { isSceneDescriptionEmpty, normalizeSceneDescriptionHtml } from './sceneDescriptionHtml';
void test('isSceneDescriptionEmpty treats blank and empty paragraphs as empty', () => {
assert.equal(isSceneDescriptionEmpty(''), true);
assert.equal(isSceneDescriptionEmpty(' '), true);
assert.equal(isSceneDescriptionEmpty('<p></p>'), true);
assert.equal(isSceneDescriptionEmpty('<p><br></p>'), true);
assert.equal(isSceneDescriptionEmpty('<p>&nbsp;</p>'), true);
assert.equal(isSceneDescriptionEmpty('<p>Hi</p>'), false);
assert.equal(isSceneDescriptionEmpty('plain'), false);
});
void test('normalizeSceneDescriptionHtml clears empty markup', () => {
assert.equal(normalizeSceneDescriptionHtml('<p></p>'), '');
assert.equal(normalizeSceneDescriptionHtml('<p>Ok</p>'), '<p>Ok</p>');
});