@canvus/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ /** An immutable 2-component vector used for positions and deltas. */
2
+ export interface Vec2 {
3
+ readonly x: number;
4
+ readonly y: number;
5
+ }
6
+ /** Axis-aligned bounding box — the universal rectangle primitive. */
7
+ export interface Rect {
8
+ readonly x: number;
9
+ readonly y: number;
10
+ readonly width: number;
11
+ readonly height: number;
12
+ }
13
+ /**
14
+ * Affine viewport transform expressed as a uniform scale factor
15
+ * and a 2D translation offset (pan vector).
16
+ *
17
+ * Screen coordinates relate to canvas coordinates by:
18
+ * screenX = canvasX * scale + offsetX
19
+ * screenY = canvasY * scale + offsetY
20
+ *
21
+ * Inverse (canvas from screen):
22
+ * canvasX = (screenX - offsetX) / scale
23
+ * canvasY = (screenY - offsetY) / scale
24
+ */
25
+ export interface ViewportMatrix {
26
+ /** Uniform zoom multiplier. Clamped within [ZOOM_MIN, ZOOM_MAX]. */
27
+ scale: number;
28
+ /** Horizontal pan offset in screen pixels. */
29
+ offsetX: number;
30
+ /** Vertical pan offset in screen pixels. */
31
+ offsetY: number;
32
+ }
33
+ /** Hard zoom boundaries to prevent degenerate transforms. */
34
+ export declare const ZOOM_MIN = 0.1;
35
+ export declare const ZOOM_MAX = 4;
36
+ /**
37
+ * Detected CSS `display` layout mode for a container node.
38
+ * Used to determine flow direction, drop zone behavior, and
39
+ * visual overlay badges.
40
+ */
41
+ export type LayoutMode = "block" | "flex" | "grid" | "inline" | "inline-flex" | "inline-grid" | "none";
42
+ /**
43
+ * Canonical descriptor for a single managed HTML element
44
+ * projected inside the Shadow DOM mount layer.
45
+ *
46
+ * In v1.0, all nodes are flat siblings at the shadow root.
47
+ * In v1.1+, nodes form a tree via `parentId` / `childIds`.
48
+ * Root-level nodes (parentId === null) remain absolutely
49
+ * positioned; children participate in their parent's CSS
50
+ * layout flow (flex, grid, block, etc.).
51
+ */
52
+ export interface WebHTMLNode {
53
+ /** Unique selector key used to address the element in the shadow tree. */
54
+ id: string;
55
+ /** The clean, unpolluted semantic HTML fragment source string. */
56
+ rawMarkup: string;
57
+ /**
58
+ * Live bounding-box cache populated from layout measurement.
59
+ * Coordinates are always in **canvas-space** (world coordinates),
60
+ * regardless of nesting depth.
61
+ * `null` when the node has not yet been measured after mount.
62
+ */
63
+ currentRect: Rect | null;
64
+ /**
65
+ * ID of the parent node, or `null` for root-level nodes
66
+ * (direct children of the shadow root).
67
+ * @default null
68
+ */
69
+ parentId?: string | null;
70
+ /**
71
+ * Ordered list of child node IDs. Empty array means leaf node
72
+ * or container with no managed children.
73
+ * @default []
74
+ */
75
+ childIds?: readonly string[];
76
+ /**
77
+ * Detected CSS layout mode of this node's content box.
78
+ * Only meaningful for container nodes. Populated by the
79
+ * layout introspection engine.
80
+ * @default null
81
+ */
82
+ layoutMode?: LayoutMode | null;
83
+ /**
84
+ * Nesting depth in the tree. 0 = root-level, 1 = first child, etc.
85
+ * @default 0
86
+ */
87
+ depth?: number;
88
+ }
89
+ /**
90
+ * Fully resolved internal node representation with all tree
91
+ * fields guaranteed present (not optional). Used inside the
92
+ * workspace engine after normalization.
93
+ */
94
+ export interface ResolvedNode {
95
+ readonly id: string;
96
+ rawMarkup: string;
97
+ currentRect: Rect | null;
98
+ parentId: string | null;
99
+ childIds: string[];
100
+ layoutMode: LayoutMode | null;
101
+ depth: number;
102
+ }
103
+ /**
104
+ * Normalizes a user-provided `WebHTMLNode` into a fully resolved
105
+ * internal representation with all tree fields populated.
106
+ */
107
+ export declare function resolveNode(node: Readonly<WebHTMLNode>): ResolvedNode;
108
+ /** Cardinal + intercardinal anchor positions on a selection frame. */
109
+ export type ResizeAnchor = "nw" | "n" | "ne" | "e" | "se" | "s" | "sw" | "w";
110
+ /** Discriminated active interaction modes. */
111
+ export type InteractionMode = "pan" | "drag-node" | "resize-node" | "reparent" | "reorder" | "select-marquee" | "adjust-spacing" | "draw-node" | "resize-radius" | null;
112
+ /**
113
+ * Transient drag/resize interaction descriptor.
114
+ * Captures the pointer-down origin and the specific handle or node
115
+ * being manipulated so delta calculations stay frame-coherent.
116
+ */
117
+ export interface DragHandleState {
118
+ /** Which interaction gesture is currently active, or `null` at rest. */
119
+ activeMode: InteractionMode;
120
+ /** The `WebHTMLNode.id` of the node being dragged or resized. */
121
+ targetNodeId: string | null;
122
+ /**
123
+ * Which of the 8 resize anchors is being pulled.
124
+ * Only meaningful when `activeMode === "resize-node"`.
125
+ */
126
+ selectedAnchor: ResizeAnchor | null;
127
+ /**
128
+ * The pointer position (in canvas-space) at the moment the
129
+ * gesture began. Used for computing frame-relative deltas.
130
+ */
131
+ initialPointerPos: Vec2;
132
+ }
133
+ /** Returns a clean, idle `DragHandleState` with no active gesture. */
134
+ export declare function createIdleDragState(): DragHandleState;
135
+ /** Returns a default viewport at 1:1 scale with zero pan offset. */
136
+ export declare function createDefaultViewport(): ViewportMatrix;
137
+ /** Supported tool types for drawing. */
138
+ export type CanvusTool = "box" | "text" | null;
139
+ /** Supported operation types for visual editor changes. */
140
+ export type OperationType = "update-style" | "update-classes" | "reparent" | "reorder" | "update-text" | "create-node" | "delete-node";
141
+ /** Serialized atomic modification block for undo/redo & collaborative synchronization. */
142
+ export interface Operation {
143
+ /** The action type class name. */
144
+ type: OperationType;
145
+ /** Selector ID of the target content node. */
146
+ nodeId: string;
147
+ /** Specific delta payload for applying this change. */
148
+ payload: any;
149
+ /** Reciprocal delta payload to undo this change. */
150
+ undoPayload: any;
151
+ }
152
+ /** Key/modifier match configuration for keyboard events. */
153
+ export interface CommandShortcut {
154
+ /** The KeyboardEvent.key value, e.g. "d", "c", "Delete". Case-insensitive. */
155
+ key?: string;
156
+ /** The KeyboardEvent.code value, e.g. "KeyD", "Space", "ArrowUp". */
157
+ code?: string;
158
+ /** Whether Meta (Mac) or Control (Windows/Linux) must be pressed. */
159
+ metaOrCtrl?: boolean;
160
+ /** Whether Shift must be pressed. */
161
+ shift?: boolean;
162
+ /** Whether Alt must be pressed. */
163
+ alt?: boolean;
164
+ }
165
+ /** Modular keyboard command descriptor. */
166
+ export interface Command {
167
+ /** Unique command identifier. */
168
+ id: string;
169
+ /** User-friendly name. */
170
+ name: string;
171
+ /** Description of what the command does. */
172
+ description?: string;
173
+ /** Key shortcut configuration(s). */
174
+ shortcut?: CommandShortcut | CommandShortcut[];
175
+ /** Action executed when shortcut is triggered. */
176
+ execute: (workspace: any, event?: KeyboardEvent) => void;
177
+ /** Optional filter determining if command is active/enabled. */
178
+ enabled?: (workspace: any) => boolean;
179
+ }
180
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,43 @@
1
+ // ─────────────────────────────────────────────────────────────
2
+ // canvus/src/types.ts
3
+ // Core type declarations for the HTML-in-Canvas workspace SDK.
4
+ // All geometric primitives, node contracts, viewport state, and
5
+ // interaction descriptors live here as the single source of truth.
6
+ // ─────────────────────────────────────────────────────────────
7
+ /** Hard zoom boundaries to prevent degenerate transforms. */
8
+ export const ZOOM_MIN = 0.1;
9
+ export const ZOOM_MAX = 4.0;
10
+ /**
11
+ * Normalizes a user-provided `WebHTMLNode` into a fully resolved
12
+ * internal representation with all tree fields populated.
13
+ */
14
+ export function resolveNode(node) {
15
+ return {
16
+ id: node.id,
17
+ rawMarkup: node.rawMarkup,
18
+ currentRect: node.currentRect,
19
+ parentId: node.parentId ?? null,
20
+ childIds: node.childIds ? [...node.childIds] : [],
21
+ layoutMode: node.layoutMode ?? null,
22
+ depth: node.depth ?? 0,
23
+ };
24
+ }
25
+ // ── Factory Helpers ─────────────────────────────────────────
26
+ /** Returns a clean, idle `DragHandleState` with no active gesture. */
27
+ export function createIdleDragState() {
28
+ return {
29
+ activeMode: null,
30
+ targetNodeId: null,
31
+ selectedAnchor: null,
32
+ initialPointerPos: { x: 0, y: 0 },
33
+ };
34
+ }
35
+ /** Returns a default viewport at 1:1 scale with zero pan offset. */
36
+ export function createDefaultViewport() {
37
+ return {
38
+ scale: 1,
39
+ offsetX: 0,
40
+ offsetY: 0,
41
+ };
42
+ }
43
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sBAAsB;AACtB,+DAA+D;AAC/D,gEAAgE;AAChE,mEAAmE;AACnE,gEAAgE;AAyChE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AA2F5B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAA2B;IACrD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QACjD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;KACvB,CAAC;AACJ,CAAC;AAuDD,+DAA+D;AAE/D,sEAAsE;AACtE,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KAClC,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,371 @@
1
+ import type { Rect, ResolvedNode, ViewportMatrix, WebHTMLNode, Operation, CanvusTool } from "./types.js";
2
+ import { ShadowMount } from "./shadow-mount.js";
3
+ import { NodeTree } from "./tree.js";
4
+ import type { OverlayStyle } from "./renderer.js";
5
+ import { OverlayRenderer } from "./renderer.js";
6
+ /** Configuration options for the workspace. */
7
+ export interface WorkspaceConfig {
8
+ /** Partial overlay style overrides. */
9
+ overlayStyle?: Partial<OverlayStyle>;
10
+ /** Snap threshold for alignment guides (canvas-space px). @default 5 */
11
+ snapThreshold?: number;
12
+ /** Minimum element dimension during resize (canvas-space px). @default 40 */
13
+ minResizeSize?: number;
14
+ /** Enable snap-to-align guides during drag/resize. @default true */
15
+ enableSnapGuides?: boolean;
16
+ }
17
+ /** Callback signatures for workspace lifecycle events. */
18
+ export interface WorkspaceCallbacks {
19
+ /**
20
+ * **Flat String Bridge output.**
21
+ * Fired on `pointerup` after a drag or resize gesture completes.
22
+ * Receives the node's clean inner HTML string ready for AST commit.
23
+ */
24
+ onHTMLCommit?: (id: string, html: string) => void;
25
+ /** Fired whenever any node's canvas-space bounding rect changes. */
26
+ onNodeRectChange?: (id: string, rect: Rect) => void;
27
+ /** Fired whenever the viewport transform changes (pan/zoom). */
28
+ onViewportChange?: (viewport: Readonly<ViewportMatrix>) => void;
29
+ /** Fired when the selection set changes. */
30
+ onSelectionChange?: (selectedIds: ReadonlySet<string>) => void;
31
+ /** Fired when the active selection parent hierarchy path changes (breadcrumbs). */
32
+ onBreadcrumbChange?: (path: string[]) => void;
33
+ /** Fired when the interaction mode changes (idle/pan/drag/resize). */
34
+ onInteractionChange?: (mode: string | null) => void;
35
+ /** Fired when visual editor gestures complete and generate history operations. */
36
+ onOperationsGenerated?: (operations: Operation[]) => void;
37
+ /** Fired when double-clicking a text node to delegate rich-text editing to the host. */
38
+ onTextEditRequest?: (nodeId: string, element: HTMLElement, commit: (newHTML: string) => void) => void;
39
+ /**
40
+ * Optional custom handler to delegate pseudo-class forcing.
41
+ * Fired when a node's pseudo-class state (hover, active, focus) is modified.
42
+ */
43
+ onForcePseudoState?: (nodeId: string, state: "hover" | "active" | "focus", enabled: boolean) => void;
44
+ }
45
+ /**
46
+ * The top-level orchestration engine for a Canvus workspace.
47
+ *
48
+ * ### What it owns
49
+ * - A `ShadowMount` for the HTML projection layer.
50
+ * - An `OverlayRenderer` for the canvas affordance layer.
51
+ * - All pointer, wheel, and keyboard event bindings.
52
+ * - The complete interaction state machine (pan / drag / resize).
53
+ *
54
+ * ### Synchronous Reflow Loop (per pointermove frame)
55
+ * ```
56
+ * pointer delta
57
+ * → style surgery (setNodeRect / setNodePosition)
58
+ * → browser synchronous reflow
59
+ * → measureNode() reads updated layout
60
+ * → rect cache updated
61
+ * → alignment guides computed
62
+ * → OverlayRenderer.render()
63
+ * ```
64
+ *
65
+ * ### Flat String Bridge
66
+ * On `pointerup` after any mutating gesture, calls
67
+ * `ShadowMount.extractHTML()` and fires `onHTMLCommit`
68
+ * with the pristine semantic HTML string.
69
+ *
70
+ * ### Usage
71
+ * ```ts
72
+ * const ws = new Workspace(document.getElementById('editor')!, {
73
+ * onHTMLCommit: (id, html) => console.log(id, html),
74
+ * });
75
+ * ws.addNode({ id: 'card-1', rawMarkup: '<div>Hello</div>', currentRect: null });
76
+ * ```
77
+ */
78
+ export declare class Workspace {
79
+ private readonly mount;
80
+ private readonly renderer;
81
+ private readonly container;
82
+ private readonly canvas;
83
+ private readonly callbacks;
84
+ private readonly snapThreshold;
85
+ private readonly minResizeSize;
86
+ private readonly enableSnapGuides;
87
+ private viewport;
88
+ private readonly tree;
89
+ private readonly selectedIds;
90
+ private hoveredId;
91
+ private dynamicHoveredId;
92
+ private readonly forcedStates;
93
+ private activeAnchor;
94
+ private guides;
95
+ private enteredContainerId;
96
+ private lastPointerDownTime;
97
+ private lastPointerDownId;
98
+ private lastPointerDownTarget;
99
+ private editAllowedOnDblClick;
100
+ private activeDropTarget;
101
+ private pointerDownInsideSelection;
102
+ private spaceDown;
103
+ private isAdjustingRadius;
104
+ private activeRadiusCorner;
105
+ private hoveredRadiusCorner;
106
+ private radiusTargetNodeId;
107
+ private radiusStartValues;
108
+ private readonly dragStartNodes;
109
+ private isPanning;
110
+ private isDragging;
111
+ private pointerDownReadyToDrag;
112
+ private isResizing;
113
+ private isMarqueeSelecting;
114
+ private marqueeStartCanvas;
115
+ private marqueeCurrentCanvas;
116
+ private preMarqueeSelectedIds;
117
+ private hoveredAdjusterType;
118
+ private activeAdjusterType;
119
+ private adjusterStartValue;
120
+ private adjusterStartValueStr;
121
+ private dragStartCanvas;
122
+ private lastCanvasPos;
123
+ private resizeStartRect;
124
+ private dragStartStyles;
125
+ private disposed;
126
+ private renderRequested;
127
+ private previewMode;
128
+ /** Set of node IDs explicitly marked as containing JavaScript behavior. */
129
+ private readonly jsMarkedNodes;
130
+ /** Set of node IDs that were lazily registered (children discovered on selection). */
131
+ private readonly lazyRegisteredIds;
132
+ private lazyChildCounter;
133
+ private activeTool;
134
+ private drawingTag;
135
+ private drawingTextTag;
136
+ private isDrawingNode;
137
+ private drawStartCanvas;
138
+ private drawCurrentCanvas;
139
+ private newElementCounter;
140
+ private clipboardItems;
141
+ private isDragCopy;
142
+ private readonly onWheel;
143
+ private readonly onPointerDown;
144
+ private readonly onPointerMove;
145
+ private readonly onPointerUp;
146
+ private readonly onKeyDown;
147
+ private readonly onKeyUp;
148
+ private readonly onWindowResize;
149
+ private readonly onDblClick;
150
+ private readonly onDragStart;
151
+ constructor(container: HTMLElement, callbacks?: WorkspaceCallbacks, config?: WorkspaceConfig);
152
+ /**
153
+ * Mounts a new HTML node into the workspace.
154
+ *
155
+ * Performs the **Geometry Extraction Loop**: injects the markup
156
+ * into the Shadow DOM, forces a synchronous layout read, and
157
+ * returns the measured canvas-space bounding rect.
158
+ *
159
+ * @param node - The node descriptor.
160
+ * @param parentId - Optional parent node ID for nested mounting.
161
+ * @param index - Optional insertion index within the parent's children.
162
+ * @returns The initial bounding rect after browser layout.
163
+ */
164
+ addNode(node: Readonly<WebHTMLNode>, parentId?: string | null, index?: number): Rect;
165
+ /** Removes a node and all its descendants from the workspace. */
166
+ removeNode(id: string): boolean;
167
+ /** Hot-swaps the inner HTML of a mounted node. */
168
+ updateMarkup(id: string, markup: string): Rect | null;
169
+ /**
170
+ * Moves a node to a new parent (or to root level).
171
+ * Handles both DOM reparenting and tree model update.
172
+ * Fires `onHTMLCommit` with the new parent's HTML.
173
+ */
174
+ reparentNode(nodeId: string, newParentId: string | null, index?: number): void;
175
+ /**
176
+ * Reorders a child within its current parent.
177
+ */
178
+ reorderChild(nodeId: string, newIndex: number): void;
179
+ /** Returns the NodeTree for advanced tree queries. */
180
+ getNodeTree(): NodeTree;
181
+ /** Returns the wrapper DOM element for a node ID. */
182
+ getWrapper(id: string): HTMLElement | null;
183
+ /** Returns the user's content root element for a node ID. */
184
+ getContentRoot(id: string): HTMLElement | null;
185
+ /**
186
+ * Mutates a single CSS style property on the specified node's content element.
187
+ * Automatically triggers browser reflow, updates internal tree boundaries,
188
+ * re-renders visual overlays, and commits clean HTML back to AST.
189
+ */
190
+ setNodeStyle(id: string, property: string, value: string | null): void;
191
+ /**
192
+ * Mutates multiple CSS style properties on the specified node's content element.
193
+ * Batch-updates styles, triggers a single reflow/remeasure loop, and commits changes.
194
+ */
195
+ setNodeStyles(id: string, styles: Record<string, string | null>): void;
196
+ /** Selects a node by ID, clearing previous selection. */
197
+ selectNode(id: string): void;
198
+ /** Clears all selection. */
199
+ deselectAll(): void;
200
+ /** Returns the current selection set (read-only view). */
201
+ getSelectedIds(): ReadonlySet<string>;
202
+ /** Returns the current viewport transform. */
203
+ getViewport(): Readonly<ViewportMatrix>;
204
+ /** Programmatically sets the viewport (e.g. for "fit to content"). */
205
+ setViewport(vp: ViewportMatrix): void;
206
+ /** Resets viewport to 1:1 scale, zero offset. */
207
+ resetViewport(): void;
208
+ /** Sets whether the workspace is in Preview Mode (disables editing overlays and events). */
209
+ setPreviewMode(enabled: boolean): void;
210
+ /** Returns whether the workspace is currently in Preview Mode. */
211
+ isPreviewMode(): boolean;
212
+ /** Sets the active drawing tool (box, text, or null to return to selection/idle mode). */
213
+ setActiveTool(tool: CanvusTool): void;
214
+ /** Returns the currently active drawing tool. */
215
+ getActiveTool(): CanvusTool;
216
+ /** Customizes the HTML tag type for box or text drawing. */
217
+ setDrawingTag(tag: string): void;
218
+ /** Returns the active drawing tag based on the selected tool. */
219
+ getDrawingTag(): string;
220
+ /** Deletes the currently selected node from the workspace. */
221
+ deleteSelectedNode(): void;
222
+ /** Duplicates the selected node right next to it as a sibling. */
223
+ duplicateSelectedNode(): void;
224
+ /** Copies the selected node to the internal clipboard. */
225
+ copySelectedNode(): void;
226
+ /** Cuts the selected node to the clipboard, removing it from the canvas. */
227
+ cutSelectedNode(): void;
228
+ /** Pastes the node currently in the clipboard into the canvas. */
229
+ pasteNode(): void;
230
+ /** Forces a pseudo-class state (hover, active, focus) on the specified node element. */
231
+ forceNodeState(nodeId: string, state: "hover" | "active" | "focus", enabled: boolean): void;
232
+ /**
233
+ * Explicitly marks a node as containing JavaScript behavior.
234
+ * Renders the ⚡️ JS badge on the canvas overlay when the node is selected.
235
+ * The host application calls this based on its own analysis (static analysis,
236
+ * CDP, source maps, etc.) rather than the SDK auto-detecting scripts.
237
+ */
238
+ markNodeHasJS(nodeId: string): void;
239
+ /**
240
+ * Clears the JS badge from a node.
241
+ */
242
+ unmarkNodeHasJS(nodeId: string): void;
243
+ /**
244
+ * Returns whether a node is marked as containing JavaScript behavior.
245
+ */
246
+ hasJSMark(nodeId: string): boolean;
247
+ /** Dispatches a synthetic pointer/mouse event (e.g. mouseenter, mouseleave, click) to a node. */
248
+ dispatchInteractionEvent(nodeId: string, eventName: string): void;
249
+ /** Returns a snapshot of all tracked nodes (depth-first order). */
250
+ getNodes(): ReadonlyArray<Readonly<ResolvedNode>>;
251
+ /** Returns the underlying ShadowMount for advanced access. */
252
+ getShadowMount(): ShadowMount;
253
+ /** Returns the underlying OverlayRenderer for advanced access. */
254
+ getOverlayRenderer(): OverlayRenderer;
255
+ /**
256
+ * Extracts the clean inner HTML of a node.
257
+ * This is the **Flat String Bridge** — call it at any time
258
+ * to read the current semantic HTML string.
259
+ */
260
+ extractHTML(id: string): string | null;
261
+ /**
262
+ * Programmatically replays an Operation (mutation payload) onto the workspace.
263
+ * This is the core API used for Undo/Redo replay and collaboration sync.
264
+ */
265
+ applyOperation(op: Operation): void;
266
+ /** Adds a CSS class name directly to the content root of a node. */
267
+ addClass(id: string, className: string): void;
268
+ /** Removes a CSS class name directly from the content root of a node. */
269
+ removeClass(id: string, className: string): void;
270
+ /** Toggles a CSS class name directly on the content root of a node. */
271
+ toggleClass(id: string, className: string): void;
272
+ /**
273
+ * Forces a synchronous geometry measurement of all nodes
274
+ * and updates the internal rect cache.
275
+ */
276
+ measureAll(): Map<string, Rect>;
277
+ /** Injects a CSS string into the shadow root. */
278
+ injectCSS(css: string): HTMLStyleElement;
279
+ /** Loads an external stylesheet into the shadow root. */
280
+ injectCSSLink(href: string): Promise<HTMLLinkElement>;
281
+ /** Tears down the workspace completely. */
282
+ dispose(): void;
283
+ /** Cursor-anchored zoom on scroll wheel. */
284
+ private handleWheel;
285
+ /** Interaction mode detection on pointer down. */
286
+ private handlePointerDown;
287
+ /**
288
+ * The core **Synchronous Reflow Loop**.
289
+ *
290
+ * On each pointer move during an active gesture:
291
+ * 1. Compute canvas-space delta.
292
+ * 2. Style surgery (setNodeRect / setNodePosition).
293
+ * 3. Browser reflows synchronously.
294
+ * 4. measureNode() reads updated dimensions.
295
+ * 5. Rect cache updated.
296
+ * 6. Alignment guides computed.
297
+ * 7. Overlay re-rendered.
298
+ */
299
+ private handlePointerMove;
300
+ /**
301
+ * Gesture completion.
302
+ *
303
+ * **Flat String Bridge**: on mouseup after a mutating gesture,
304
+ * extracts the clean HTML and fires `onHTMLCommit`.
305
+ */
306
+ private handlePointerUp;
307
+ /** Spacebar tracking for pan mode. */
308
+ private handleKeyDown;
309
+ private nudgeOrReorderSelected;
310
+ private ungroupSelectedOrParent;
311
+ private wrapSelectedInFlex;
312
+ private handleKeyUp;
313
+ /** Resize canvas to match container dimensions. */
314
+ private handleResize;
315
+ /** Double-click text editing handler. */
316
+ private handleDblClick;
317
+ /** Throttles redrawing using requestAnimationFrame to prevent layout thrashing. */
318
+ private render;
319
+ /** Pushes a complete frame to the overlay renderer immediately. */
320
+ private renderSync;
321
+ /** Returns the container's bounding rect as our `Rect`. */
322
+ private getContainerRect;
323
+ /**
324
+ * Orchestrates lazy child registration on selection changes.
325
+ * When a node is newly selected, its immediate DOM children are
326
+ * registered for tracking. When deselected, its lazy children
327
+ * are unregistered (DOM left untouched).
328
+ */
329
+ private syncLazyChildren;
330
+ /**
331
+ * Registers the immediate DOM children of a node as tracked
332
+ * workspace nodes. Uses `trackExistingElement` — no wrapper
333
+ * divs, no DOM structure changes. Children get hover states,
334
+ * selection handles, resize, and drag for free.
335
+ */
336
+ private registerImmediateChildren;
337
+ /**
338
+ * Deregisters all lazily-registered children of a node.
339
+ * Removes tracking (ResizeObserver, data-canvus-id attribute,
340
+ * tree entry) but leaves the DOM element in place.
341
+ */
342
+ private deregisterLazyChildren;
343
+ /** Returns nodes in depth-first order for hit testing and rendering. */
344
+ private getOrderedNodeList;
345
+ private getTopLevelSelectedIds;
346
+ private hitTestRadiusHandle;
347
+ /** Returns canvas-space rects of all nodes except the given ID. */
348
+ private getOtherRects;
349
+ private getOtherRectsMultiple;
350
+ /**
351
+ * Re-measures a node and all its descendants using
352
+ * canvas-space coordinate extraction.
353
+ */
354
+ private remeasureSubtree;
355
+ /** Ascends selection and scope when Escape key is pressed. */
356
+ private handleEscapeKey;
357
+ /** Resolves which node is selectable based on click position and scope depth. */
358
+ private findSelectableNode;
359
+ /** Updates the hovered node ID based on current pointer position and Cmd/Ctrl modifier. */
360
+ private updateHover;
361
+ private clearDynamicHover;
362
+ private setNodeStateClass;
363
+ /** Updates the active breadcrumbs and calls external callback. */
364
+ private updateBreadcrumb;
365
+ private getDrawingRect;
366
+ private getMarqueeRect;
367
+ private computeSpacingAdjusters;
368
+ private assertNotDisposed;
369
+ private safeSetPointerCapture;
370
+ }
371
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}