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
+17
View File
@@ -81,6 +81,10 @@ export const ipcChannels = {
togglePresentationFullscreen: 'windows.togglePresentationFullscreen',
getMultiWindowState: 'windows.getMultiWindowState',
multiWindowStateChanged: 'windows.multiWindowStateChanged',
openSceneDescription: 'windows.openSceneDescription',
closeSceneDescription: 'windows.closeSceneDescription',
getSceneDescriptionContent: 'windows.getSceneDescriptionContent',
sceneDescriptionContent: 'windows.sceneDescriptionContent',
},
session: {
stateChanged: 'session.stateChanged',
@@ -156,6 +160,7 @@ export type IpcEventMap = {
[ipcChannels.video.stateChanged]: { state: VideoPlaybackState };
[ipcChannels.license.statusChanged]: { snapshot: LicenseSnapshot };
[ipcChannels.windows.multiWindowStateChanged]: { open: boolean };
[ipcChannels.windows.sceneDescriptionContent]: { html: string };
[ipcChannels.project.importZipProgress]: ZipProgressEvent;
[ipcChannels.project.exportZipProgress]: ZipProgressEvent;
[ipcChannels.project.scenePreviewImportProgress]: ScenePreviewImportEvent;
@@ -373,6 +378,18 @@ export type IpcInvokeMap = {
req: Record<string, never>;
res: { open: boolean };
};
[ipcChannels.windows.openSceneDescription]: {
req: { html: string };
res: { ok: true };
};
[ipcChannels.windows.closeSceneDescription]: {
req: Record<string, never>;
res: { ok: true };
};
[ipcChannels.windows.getSceneDescriptionContent]: {
req: Record<string, never>;
res: { html: string };
};
[ipcChannels.effects.getState]: {
req: Record<string, never>;
res: { state: EffectsState };