feat(editor): add transient app state foundation

This commit is contained in:
syntaxbullet
2026-07-03 09:24:08 +02:00
parent 02df52c978
commit 697d12725d
6 changed files with 116 additions and 4 deletions

1
editor/index.ts Normal file
View File

@@ -0,0 +1 @@
export type { AppState, EditorState, SelectionState, ViewportState } from "./state";

25
editor/state.ts Normal file
View File

@@ -0,0 +1,25 @@
import type { ImageDocument } from "@core/document";
import type { Angle, Size, Vec2D } from "@core/geometry";
import type { ArtboardId, LayerId } from "@core/id";
export type ViewportState = {
center: Vec2D;
zoom: number;
rotation: Angle;
size: Size;
};
export type SelectionState = {
artboardId?: ArtboardId;
layerIds: LayerId[];
};
export type EditorState = {
viewport: ViewportState;
selection: SelectionState;
};
export type AppState = {
document: ImageDocument;
editor: EditorState;
};