@canvus/core 0.1.0 → 0.1.2
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.
- package/LICENSE +21 -0
- package/dist/drop-zone.d.ts.map +1 -1
- package/dist/drop-zone.js +16 -0
- package/dist/drop-zone.js.map +1 -1
- package/dist/handlers/clipboard.handler.d.ts +22 -0
- package/dist/handlers/clipboard.handler.d.ts.map +1 -0
- package/dist/handlers/clipboard.handler.js +349 -0
- package/dist/handlers/clipboard.handler.js.map +1 -0
- package/dist/handlers/command.handler.d.ts +18 -0
- package/dist/handlers/command.handler.d.ts.map +1 -0
- package/dist/handlers/command.handler.js +430 -0
- package/dist/handlers/command.handler.js.map +1 -0
- package/dist/handlers/drag.handler.d.ts +22 -0
- package/dist/handlers/drag.handler.d.ts.map +1 -0
- package/dist/handlers/drag.handler.js +669 -0
- package/dist/handlers/drag.handler.js.map +1 -0
- package/dist/handlers/draw.handler.d.ts +37 -0
- package/dist/handlers/draw.handler.d.ts.map +1 -0
- package/dist/handlers/draw.handler.js +210 -0
- package/dist/handlers/draw.handler.js.map +1 -0
- package/dist/handlers/index.d.ts +10 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +12 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/pan.handler.d.ts +34 -0
- package/dist/handlers/pan.handler.d.ts.map +1 -0
- package/dist/handlers/pan.handler.js +95 -0
- package/dist/handlers/pan.handler.js.map +1 -0
- package/dist/handlers/resize.handler.d.ts +26 -0
- package/dist/handlers/resize.handler.d.ts.map +1 -0
- package/dist/handlers/resize.handler.js +487 -0
- package/dist/handlers/resize.handler.js.map +1 -0
- package/dist/handlers/selection.handler.d.ts +22 -0
- package/dist/handlers/selection.handler.d.ts.map +1 -0
- package/dist/handlers/selection.handler.js +259 -0
- package/dist/handlers/selection.handler.js.map +1 -0
- package/dist/handlers/spacing.handler.d.ts +29 -0
- package/dist/handlers/spacing.handler.d.ts.map +1 -0
- package/dist/handlers/spacing.handler.js +326 -0
- package/dist/handlers/spacing.handler.js.map +1 -0
- package/dist/handlers/types.d.ts +204 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/types.js +10 -0
- package/dist/handlers/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/shadow-mount.d.ts.map +1 -1
- package/dist/shadow-mount.js +51 -2
- package/dist/shadow-mount.js.map +1 -1
- package/dist/workspace.d.ts +149 -68
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +349 -2208
- package/dist/workspace.js.map +1 -1
- package/package.json +4 -1
package/dist/workspace.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { Rect, ResolvedNode, ViewportMatrix, WebHTMLNode, Operation, CanvusTool } from "./types.js";
|
|
1
|
+
import type { Rect, ResolvedNode, Vec2, ViewportMatrix, WebHTMLNode, Operation, CanvusTool, Command } from "./types.js";
|
|
2
2
|
import { ShadowMount } from "./shadow-mount.js";
|
|
3
3
|
import { NodeTree } from "./tree.js";
|
|
4
|
-
import type {
|
|
4
|
+
import type { DropTarget } from "./drop-zone.js";
|
|
5
|
+
import type { Guide, OverlayStyle, SpacingAdjusterType } from "./renderer.js";
|
|
5
6
|
import { OverlayRenderer } from "./renderer.js";
|
|
7
|
+
import type { InteractionHandler, KeyboardHandler, InteractionDetail } from "./handlers/types.js";
|
|
6
8
|
/** Configuration options for the workspace. */
|
|
7
9
|
export interface WorkspaceConfig {
|
|
8
10
|
/** Partial overlay style overrides. */
|
|
@@ -41,6 +43,29 @@ export interface WorkspaceCallbacks {
|
|
|
41
43
|
* Fired when a node's pseudo-class state (hover, active, focus) is modified.
|
|
42
44
|
*/
|
|
43
45
|
onForcePseudoState?: (nodeId: string, state: "hover" | "active" | "focus", enabled: boolean) => void;
|
|
46
|
+
/** Fired when a node is registered/added to the workspace tree. */
|
|
47
|
+
onNodeAdded?: (id: string) => void;
|
|
48
|
+
/** Fired when a node is removed from the workspace tree. */
|
|
49
|
+
onNodeRemoved?: (id: string) => void;
|
|
50
|
+
/** Fired when a node is duplicated, alt-drag cloned, or pasted. */
|
|
51
|
+
onNodeCloned?: (originalId: string, cloneId: string) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Optional host callback to query whether a CSS property on a node is locked
|
|
54
|
+
* (e.g. driven by a stylesheet class like Tailwind's `p-4` or `w-48`).
|
|
55
|
+
* Return `true` to block visual adjustment of that property.
|
|
56
|
+
* @default () => false (always unlocked)
|
|
57
|
+
*/
|
|
58
|
+
isPropertyLocked?: (nodeId: string, property: string) => boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Fired when the user attempts to drag/adjust a property that is currently locked.
|
|
61
|
+
* The host can use this to show a toast, offer an "unlock" action, etc.
|
|
62
|
+
*/
|
|
63
|
+
onPropertyLockInteraction?: (nodeId: string, property: string, currentValue: string) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Fired when the user clicks/interacts with a locked node.
|
|
66
|
+
* The host can use this to show a visual indicator (toast, shake animation, etc.).
|
|
67
|
+
*/
|
|
68
|
+
onLockedNodeInteraction?: (nodeId: string) => void;
|
|
44
69
|
}
|
|
45
70
|
/**
|
|
46
71
|
* The top-level orchestration engine for a Canvus workspace.
|
|
@@ -80,65 +105,62 @@ export declare class Workspace {
|
|
|
80
105
|
private readonly renderer;
|
|
81
106
|
private readonly container;
|
|
82
107
|
private readonly canvas;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
108
|
+
readonly callbacks: WorkspaceCallbacks;
|
|
109
|
+
readonly snapThreshold: number;
|
|
110
|
+
readonly minResizeSize: number;
|
|
111
|
+
readonly enableSnapGuides: boolean;
|
|
87
112
|
private viewport;
|
|
88
113
|
private readonly tree;
|
|
89
114
|
private readonly selectedIds;
|
|
90
115
|
private hoveredId;
|
|
91
116
|
private dynamicHoveredId;
|
|
92
117
|
private readonly forcedStates;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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;
|
|
118
|
+
guides: Guide[];
|
|
119
|
+
enteredContainerId: string | null;
|
|
120
|
+
lastPointerDownTime: number;
|
|
121
|
+
lastPointerDownId: string | null;
|
|
122
|
+
lastPointerDownTarget: EventTarget | null;
|
|
123
|
+
editAllowedOnDblClick: boolean;
|
|
124
|
+
activeDropTarget: DropTarget | null;
|
|
125
|
+
get hoveredAdjusterType(): SpacingAdjusterType | null;
|
|
126
|
+
set hoveredAdjusterType(value: SpacingAdjusterType | null);
|
|
127
|
+
get hoveredRadiusCorner(): string | null;
|
|
128
|
+
set hoveredRadiusCorner(value: string | null);
|
|
129
|
+
lastCanvasPos: Vec2 | null;
|
|
125
130
|
private disposed;
|
|
126
131
|
private renderRequested;
|
|
127
132
|
private previewMode;
|
|
128
133
|
/** Set of node IDs explicitly marked as containing JavaScript behavior. */
|
|
129
|
-
|
|
134
|
+
readonly jsMarkedNodes: Set<string>;
|
|
135
|
+
/** Set of node IDs explicitly locked by the host. Locked nodes are non-interactive. */
|
|
136
|
+
readonly lockedNodes: Set<string>;
|
|
130
137
|
/** Set of node IDs that were lazily registered (children discovered on selection). */
|
|
131
|
-
|
|
138
|
+
readonly lazyRegisteredIds: Set<string>;
|
|
132
139
|
private lazyChildCounter;
|
|
133
|
-
|
|
134
|
-
private drawingTag;
|
|
135
|
-
private drawingTextTag;
|
|
136
|
-
private isDrawingNode;
|
|
137
|
-
private drawStartCanvas;
|
|
138
|
-
private drawCurrentCanvas;
|
|
140
|
+
/** Monotonic counter for generating unique element IDs (shared across draw, clone, paste). */
|
|
139
141
|
private newElementCounter;
|
|
140
|
-
|
|
141
|
-
private
|
|
142
|
+
/** Registered pointer-gesture handlers in priority order. */
|
|
143
|
+
private readonly interactionHandlers;
|
|
144
|
+
/** Registered keyboard handlers in priority order. */
|
|
145
|
+
private readonly keyboardHandlers;
|
|
146
|
+
/** The handler that currently owns the active pointer gesture. */
|
|
147
|
+
private activeHandler;
|
|
148
|
+
/** Pan handler instance (for direct space-key delegation). */
|
|
149
|
+
private readonly panHandler;
|
|
150
|
+
/** Draw handler instance (for public API delegation). */
|
|
151
|
+
private readonly drawHandler;
|
|
152
|
+
/** Clipboard handler instance (for public API delegation). */
|
|
153
|
+
private readonly clipboardHandler;
|
|
154
|
+
/** Command handler instance (for public API delegation). */
|
|
155
|
+
private readonly commandHandler;
|
|
156
|
+
/** Spacing handler instance (for interaction delegation). */
|
|
157
|
+
private readonly spacingHandler;
|
|
158
|
+
/** Resize handler instance (for interaction delegation). */
|
|
159
|
+
private readonly resizeHandler;
|
|
160
|
+
/** Drag handler instance (for interaction delegation). */
|
|
161
|
+
private readonly dragHandler;
|
|
162
|
+
/** Selection handler instance (for interaction delegation). */
|
|
163
|
+
private readonly selectionHandler;
|
|
142
164
|
private readonly onWheel;
|
|
143
165
|
private readonly onPointerDown;
|
|
144
166
|
private readonly onPointerMove;
|
|
@@ -199,6 +221,14 @@ export declare class Workspace {
|
|
|
199
221
|
deselectAll(): void;
|
|
200
222
|
/** Returns the current selection set (read-only view). */
|
|
201
223
|
getSelectedIds(): ReadonlySet<string>;
|
|
224
|
+
/** Sets the active drawing tool (box, text, or null to return to selection/idle mode). */
|
|
225
|
+
setActiveTool(tool: CanvusTool): void;
|
|
226
|
+
/** Returns the currently active drawing tool. */
|
|
227
|
+
getActiveTool(): CanvusTool;
|
|
228
|
+
/** Customizes the HTML tag type for box or text drawing. */
|
|
229
|
+
setDrawingTag(tag: string): void;
|
|
230
|
+
/** Returns the active drawing tag based on the selected tool. */
|
|
231
|
+
getDrawingTag(): string;
|
|
202
232
|
/** Returns the current viewport transform. */
|
|
203
233
|
getViewport(): Readonly<ViewportMatrix>;
|
|
204
234
|
/** Programmatically sets the viewport (e.g. for "fit to content"). */
|
|
@@ -209,14 +239,6 @@ export declare class Workspace {
|
|
|
209
239
|
setPreviewMode(enabled: boolean): void;
|
|
210
240
|
/** Returns whether the workspace is currently in Preview Mode. */
|
|
211
241
|
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
242
|
/** Deletes the currently selected node from the workspace. */
|
|
221
243
|
deleteSelectedNode(): void;
|
|
222
244
|
/** Duplicates the selected node right next to it as a sibling. */
|
|
@@ -244,6 +266,40 @@ export declare class Workspace {
|
|
|
244
266
|
* Returns whether a node is marked as containing JavaScript behavior.
|
|
245
267
|
*/
|
|
246
268
|
hasJSMark(nodeId: string): boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Locks a node, making it non-interactive on the canvas.
|
|
271
|
+
* Locked nodes cannot be selected, dragged, resized, or hovered
|
|
272
|
+
* via user pointer/keyboard interaction. If the node is currently
|
|
273
|
+
* selected, it will be deselected. Locking a parent node also
|
|
274
|
+
* locks all of its descendants.
|
|
275
|
+
*/
|
|
276
|
+
lockNode(nodeId: string): void;
|
|
277
|
+
/**
|
|
278
|
+
* Unlocks a previously locked node, restoring interactivity.
|
|
279
|
+
*/
|
|
280
|
+
unlockNode(nodeId: string): void;
|
|
281
|
+
/**
|
|
282
|
+
* Returns whether a node is currently locked (directly or via a locked ancestor).
|
|
283
|
+
*/
|
|
284
|
+
isNodeLocked(nodeId: string): boolean;
|
|
285
|
+
/**
|
|
286
|
+
* Returns the set of directly locked node IDs.
|
|
287
|
+
* Does not include nodes that are only locked via ancestor inheritance.
|
|
288
|
+
*/
|
|
289
|
+
getLockedNodeIds(): ReadonlySet<string>;
|
|
290
|
+
/**
|
|
291
|
+
* Checks whether a CSS property on a node is locked by the host.
|
|
292
|
+
* Delegates to the `isPropertyLocked` callback if provided.
|
|
293
|
+
* Returns `false` (unlocked) when no callback is registered.
|
|
294
|
+
*/
|
|
295
|
+
isPropertyLocked(nodeId: string, property: string): boolean;
|
|
296
|
+
/**
|
|
297
|
+
* Notifies the host that the user attempted to adjust a locked property.
|
|
298
|
+
* Reads the current computed value from the node's content root and
|
|
299
|
+
* fires the `onPropertyLockInteraction` callback.
|
|
300
|
+
* No-op when the callback is not registered.
|
|
301
|
+
*/
|
|
302
|
+
notifyPropertyLockInteraction(nodeId: string, property: string): void;
|
|
247
303
|
/** Dispatches a synthetic pointer/mouse event (e.g. mouseenter, mouseleave, click) to a node. */
|
|
248
304
|
dispatchInteractionEvent(nodeId: string, eventName: string): void;
|
|
249
305
|
/** Returns a snapshot of all tracked nodes (depth-first order). */
|
|
@@ -278,9 +334,37 @@ export declare class Workspace {
|
|
|
278
334
|
injectCSS(css: string): HTMLStyleElement;
|
|
279
335
|
/** Loads an external stylesheet into the shadow root. */
|
|
280
336
|
injectCSSLink(href: string): Promise<HTMLLinkElement>;
|
|
337
|
+
/**
|
|
338
|
+
* Registers a pointer-gesture handler at the specified priority position.
|
|
339
|
+
* Lower index = higher priority (checked first on pointerdown).
|
|
340
|
+
* If no index is given, the handler is appended (lowest priority).
|
|
341
|
+
*/
|
|
342
|
+
registerInteractionHandler(handler: InteractionHandler, index?: number): void;
|
|
343
|
+
/**
|
|
344
|
+
* Registers a keyboard handler at the specified priority position.
|
|
345
|
+
* Lower index = higher priority (checked first on keydown).
|
|
346
|
+
* If no index is given, the handler is appended (lowest priority).
|
|
347
|
+
*/
|
|
348
|
+
registerKeyboardHandler(handler: KeyboardHandler, index?: number): void;
|
|
349
|
+
/**
|
|
350
|
+
* Emit an interaction mode change to the host.
|
|
351
|
+
* Enriches the existing `onInteractionChange` callback with
|
|
352
|
+
* optional `InteractionDetail` for richer host observability.
|
|
353
|
+
*/
|
|
354
|
+
emitInteraction(mode: string | null, _detail?: InteractionDetail): void;
|
|
355
|
+
/**
|
|
356
|
+
* Increment and return a unique counter for generating element IDs.
|
|
357
|
+
* Used by handlers that create new nodes (DrawHandler, ClipboardHandler, etc.).
|
|
358
|
+
*/
|
|
359
|
+
nextElementId(): number;
|
|
281
360
|
/** Tears down the workspace completely. */
|
|
282
361
|
dispose(): void;
|
|
283
|
-
/**
|
|
362
|
+
/**
|
|
363
|
+
* Handles wheel events with Figma-style behavior:
|
|
364
|
+
* - **Trackpad two-finger scroll** → pans the canvas
|
|
365
|
+
* - **Trackpad pinch-to-zoom** → zooms (browsers report this with ctrlKey=true)
|
|
366
|
+
* - **Ctrl + mouse wheel** → zooms
|
|
367
|
+
*/
|
|
284
368
|
private handleWheel;
|
|
285
369
|
/** Interaction mode detection on pointer down. */
|
|
286
370
|
private handlePointerDown;
|
|
@@ -304,11 +388,9 @@ export declare class Workspace {
|
|
|
304
388
|
* extracts the clean HTML and fires `onHTMLCommit`.
|
|
305
389
|
*/
|
|
306
390
|
private handlePointerUp;
|
|
307
|
-
/** Spacebar tracking for pan mode. */
|
|
308
391
|
private handleKeyDown;
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
private wrapSelectedInFlex;
|
|
392
|
+
/** Registers a custom keyboard command shortcut. */
|
|
393
|
+
registerCommand(cmd: Command): void;
|
|
312
394
|
private handleKeyUp;
|
|
313
395
|
/** Resize canvas to match container dimensions. */
|
|
314
396
|
private handleResize;
|
|
@@ -319,7 +401,7 @@ export declare class Workspace {
|
|
|
319
401
|
/** Pushes a complete frame to the overlay renderer immediately. */
|
|
320
402
|
private renderSync;
|
|
321
403
|
/** Returns the container's bounding rect as our `Rect`. */
|
|
322
|
-
|
|
404
|
+
getContainerRect(): Rect;
|
|
323
405
|
/**
|
|
324
406
|
* Orchestrates lazy child registration on selection changes.
|
|
325
407
|
* When a node is newly selected, its immediate DOM children are
|
|
@@ -341,12 +423,12 @@ export declare class Workspace {
|
|
|
341
423
|
*/
|
|
342
424
|
private deregisterLazyChildren;
|
|
343
425
|
/** Returns nodes in depth-first order for hit testing and rendering. */
|
|
344
|
-
|
|
345
|
-
|
|
426
|
+
getOrderedNodeList(): ReadonlyArray<ResolvedNode>;
|
|
427
|
+
getTopLevelSelectedIds(): string[];
|
|
346
428
|
private hitTestRadiusHandle;
|
|
347
429
|
/** Returns canvas-space rects of all nodes except the given ID. */
|
|
348
|
-
|
|
349
|
-
|
|
430
|
+
getOtherRects(excludeId: string): Rect[];
|
|
431
|
+
getOtherRectsMultiple(excludeIds: string[]): Rect[];
|
|
350
432
|
/**
|
|
351
433
|
* Re-measures a node and all its descendants using
|
|
352
434
|
* canvas-space coordinate extraction.
|
|
@@ -362,10 +444,9 @@ export declare class Workspace {
|
|
|
362
444
|
private setNodeStateClass;
|
|
363
445
|
/** Updates the active breadcrumbs and calls external callback. */
|
|
364
446
|
private updateBreadcrumb;
|
|
365
|
-
private getDrawingRect;
|
|
366
447
|
private getMarqueeRect;
|
|
367
448
|
private computeSpacingAdjusters;
|
|
368
449
|
private assertNotDisposed;
|
|
369
|
-
|
|
450
|
+
safeSetPointerCapture(pointerId: number): void;
|
|
370
451
|
}
|
|
371
452
|
//# sourceMappingURL=workspace.d.ts.map
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|