@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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/dist/drop-zone.d.ts.map +1 -1
  3. package/dist/drop-zone.js +16 -0
  4. package/dist/drop-zone.js.map +1 -1
  5. package/dist/handlers/clipboard.handler.d.ts +22 -0
  6. package/dist/handlers/clipboard.handler.d.ts.map +1 -0
  7. package/dist/handlers/clipboard.handler.js +349 -0
  8. package/dist/handlers/clipboard.handler.js.map +1 -0
  9. package/dist/handlers/command.handler.d.ts +18 -0
  10. package/dist/handlers/command.handler.d.ts.map +1 -0
  11. package/dist/handlers/command.handler.js +430 -0
  12. package/dist/handlers/command.handler.js.map +1 -0
  13. package/dist/handlers/drag.handler.d.ts +22 -0
  14. package/dist/handlers/drag.handler.d.ts.map +1 -0
  15. package/dist/handlers/drag.handler.js +669 -0
  16. package/dist/handlers/drag.handler.js.map +1 -0
  17. package/dist/handlers/draw.handler.d.ts +37 -0
  18. package/dist/handlers/draw.handler.d.ts.map +1 -0
  19. package/dist/handlers/draw.handler.js +210 -0
  20. package/dist/handlers/draw.handler.js.map +1 -0
  21. package/dist/handlers/index.d.ts +10 -0
  22. package/dist/handlers/index.d.ts.map +1 -0
  23. package/dist/handlers/index.js +12 -0
  24. package/dist/handlers/index.js.map +1 -0
  25. package/dist/handlers/pan.handler.d.ts +34 -0
  26. package/dist/handlers/pan.handler.d.ts.map +1 -0
  27. package/dist/handlers/pan.handler.js +95 -0
  28. package/dist/handlers/pan.handler.js.map +1 -0
  29. package/dist/handlers/resize.handler.d.ts +26 -0
  30. package/dist/handlers/resize.handler.d.ts.map +1 -0
  31. package/dist/handlers/resize.handler.js +487 -0
  32. package/dist/handlers/resize.handler.js.map +1 -0
  33. package/dist/handlers/selection.handler.d.ts +22 -0
  34. package/dist/handlers/selection.handler.d.ts.map +1 -0
  35. package/dist/handlers/selection.handler.js +259 -0
  36. package/dist/handlers/selection.handler.js.map +1 -0
  37. package/dist/handlers/spacing.handler.d.ts +29 -0
  38. package/dist/handlers/spacing.handler.d.ts.map +1 -0
  39. package/dist/handlers/spacing.handler.js +326 -0
  40. package/dist/handlers/spacing.handler.js.map +1 -0
  41. package/dist/handlers/types.d.ts +204 -0
  42. package/dist/handlers/types.d.ts.map +1 -0
  43. package/dist/handlers/types.js +10 -0
  44. package/dist/handlers/types.js.map +1 -0
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/shadow-mount.d.ts.map +1 -1
  48. package/dist/shadow-mount.js +51 -2
  49. package/dist/shadow-mount.js.map +1 -1
  50. package/dist/workspace.d.ts +149 -68
  51. package/dist/workspace.d.ts.map +1 -1
  52. package/dist/workspace.js +349 -2208
  53. package/dist/workspace.js.map +1 -1
  54. package/package.json +4 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Canvus Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1 +1 @@
1
- {"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../src/drop-zone.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC1B;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,SAAS,EAAE,kBAAkB,CAAC;IAC9B,8EAA8E;IAC9E,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,EAC9C,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GAClD,UAAU,GAAG,IAAI,CAgOnB"}
1
+ {"version":3,"file":"drop-zone.d.ts","sourceRoot":"","sources":["../src/drop-zone.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC1B;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,SAAS,EAAE,kBAAkB,CAAC;IAC9B,8EAA8E;IAC9E,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,EAC9C,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GAClD,UAAU,GAAG,IAAI,CAiPnB"}
package/dist/drop-zone.js CHANGED
@@ -30,6 +30,22 @@ export function findDropTarget(draggedId, canvasPos, tree, getWrapper, getConten
30
30
  if (!tree.isContainer(node.id)) {
31
31
  continue;
32
32
  }
33
+ // Sibling-in-layout constraint: if the container is a sibling of the dragged node
34
+ // in a layout parent (flex or grid), do not drop inside it unless it is a layout container
35
+ // itself or already has children.
36
+ if (node.parentId !== null && node.parentId === tree.get(draggedId)?.parentId) {
37
+ const parentNode = tree.get(node.parentId);
38
+ if (parentNode) {
39
+ const pMode = parentNode.layoutMode;
40
+ const parentIsLayout = pMode === "flex" || pMode === "inline-flex" || pMode === "grid" || pMode === "inline-grid";
41
+ if (parentIsLayout) {
42
+ const isTargetLayout = node.layoutMode === "flex" || node.layoutMode === "inline-flex" || node.layoutMode === "grid" || node.layoutMode === "inline-grid";
43
+ if (!isTargetLayout && node.childIds.length === 0) {
44
+ continue;
45
+ }
46
+ }
47
+ }
48
+ }
33
49
  if (node.currentRect && isPointInElement(canvasPos.x, canvasPos.y, node.currentRect)) {
34
50
  targetContainer = node;
35
51
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../src/drop-zone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../src/drop-zone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { KeyboardHandler, WorkspaceContext } from "./types.js";
2
+ /**
3
+ * Manages copy, cut, paste, duplicate, and delete operations.
4
+ */
5
+ export declare class ClipboardHandler implements KeyboardHandler {
6
+ readonly id = "clipboard";
7
+ private ctx;
8
+ private clipboardItems;
9
+ constructor(ctx: WorkspaceContext);
10
+ onKeyDown(e: KeyboardEvent): boolean;
11
+ /** Deletes the currently selected node from the workspace. */
12
+ deleteSelectedNode(): void;
13
+ /** Duplicates the selected node right next to it as a sibling. */
14
+ duplicateSelectedNode(): void;
15
+ /** Copies the selected node to the internal clipboard. */
16
+ copySelectedNode(): void;
17
+ /** Cuts the selected node to the clipboard, removing it from the canvas. */
18
+ cutSelectedNode(): void;
19
+ /** Pastes the node currently in the clipboard into the canvas. */
20
+ pasteNode(): void;
21
+ }
22
+ //# sourceMappingURL=clipboard.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/clipboard.handler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AASpE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IACtD,QAAQ,CAAC,EAAE,eAAe;IAE1B,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,cAAc,CAAuB;gBAEjC,GAAG,EAAE,gBAAgB;IAMjC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAyBpC,8DAA8D;IAC9D,kBAAkB,IAAI,IAAI;IAwD1B,kEAAkE;IAClE,qBAAqB,IAAI,IAAI;IA2F7B,0DAA0D;IAC1D,gBAAgB,IAAI,IAAI;IAmBxB,4EAA4E;IAC5E,eAAe,IAAI,IAAI;IAKvB,kEAAkE;IAClE,SAAS,IAAI,IAAI;CAsKlB"}
@@ -0,0 +1,349 @@
1
+ // ─────────────────────────────────────────────────────────────
2
+ // canvus/src/handlers/clipboard.handler.ts
3
+ // Handles clipboard keyboard shortcuts and operations: copy, cut, paste, duplicate, delete.
4
+ // ─────────────────────────────────────────────────────────────
5
+ /**
6
+ * Manages copy, cut, paste, duplicate, and delete operations.
7
+ */
8
+ export class ClipboardHandler {
9
+ id = "clipboard";
10
+ ctx;
11
+ clipboardItems = [];
12
+ constructor(ctx) {
13
+ this.ctx = ctx;
14
+ }
15
+ // ── KeyboardHandler Interface ───────────────────────
16
+ onKeyDown(e) {
17
+ if (e.key === "Delete" || e.key === "Backspace") {
18
+ if (!e.metaKey && !e.ctrlKey) {
19
+ this.deleteSelectedNode();
20
+ return true;
21
+ }
22
+ }
23
+ else if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "d") {
24
+ e.preventDefault();
25
+ this.duplicateSelectedNode();
26
+ return true;
27
+ }
28
+ else if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "c") {
29
+ this.copySelectedNode();
30
+ return true;
31
+ }
32
+ else if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "x") {
33
+ this.cutSelectedNode();
34
+ return true;
35
+ }
36
+ else if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "v") {
37
+ this.pasteNode();
38
+ return true;
39
+ }
40
+ return false;
41
+ }
42
+ // ── Public API Methods ──────────────────────────────
43
+ /** Deletes the currently selected node from the workspace. */
44
+ deleteSelectedNode() {
45
+ const topLevelIds = this.ctx.getTopLevelSelectedIds();
46
+ if (topLevelIds.length === 0)
47
+ return;
48
+ this.ctx.mount.setTransitionsEnabled(false);
49
+ const ops = [];
50
+ const parentsToRemeasure = new Set();
51
+ for (const id of topLevelIds) {
52
+ const node = this.ctx.tree.get(id);
53
+ if (!node)
54
+ continue;
55
+ const parentId = node.parentId;
56
+ const rawMarkup = node.rawMarkup;
57
+ const rect = node.currentRect;
58
+ const removed = this.ctx.removeNode(id);
59
+ if (removed) {
60
+ ops.push({
61
+ type: "delete-node",
62
+ nodeId: id,
63
+ payload: { parentId },
64
+ undoPayload: { parentId, rawMarkup, rect }
65
+ });
66
+ if (parentId) {
67
+ parentsToRemeasure.add(parentId);
68
+ }
69
+ }
70
+ }
71
+ if (ops.length > 0) {
72
+ this.ctx.callbacks.onOperationsGenerated?.(ops);
73
+ // Commit HTML for affected parent containers or root
74
+ for (const parentId of parentsToRemeasure) {
75
+ this.ctx.remeasureSubtree(parentId);
76
+ const html = this.ctx.mount.extractHTML(parentId);
77
+ if (html) {
78
+ this.ctx.callbacks.onHTMLCommit?.(parentId, html);
79
+ }
80
+ }
81
+ // If any deleted node was a root node, commit HTML for it
82
+ for (const op of ops) {
83
+ if (!op.payload.parentId) {
84
+ this.ctx.callbacks.onHTMLCommit?.(op.nodeId, "");
85
+ }
86
+ }
87
+ this.ctx.deselectAll();
88
+ }
89
+ this.ctx.mount.setTransitionsEnabled(true);
90
+ this.ctx.render();
91
+ }
92
+ /** Duplicates the selected node right next to it as a sibling. */
93
+ duplicateSelectedNode() {
94
+ const topLevelIds = this.ctx.getTopLevelSelectedIds();
95
+ if (topLevelIds.length === 0)
96
+ return;
97
+ this.ctx.mount.setTransitionsEnabled(false);
98
+ const newSelectedIds = [];
99
+ const ops = [];
100
+ const parentsToCommit = new Set();
101
+ const rootsToCommit = [];
102
+ for (const originalId of topLevelIds) {
103
+ const originalNode = this.ctx.tree.get(originalId);
104
+ if (!originalNode)
105
+ continue;
106
+ const rawMarkup = this.ctx.mount.extractHTML(originalId);
107
+ if (!rawMarkup)
108
+ continue;
109
+ const duplicateId = `cloned-${this.ctx.nextElementId()}-${Date.now().toString(36)}`;
110
+ const parentId = originalNode.parentId;
111
+ let rect = originalNode.currentRect ? { ...originalNode.currentRect } : null;
112
+ let index;
113
+ if (parentId !== null) {
114
+ index = this.ctx.tree.getChildIndex(originalId) + 1;
115
+ }
116
+ else if (rect) {
117
+ rect.x += 20;
118
+ rect.y += 20;
119
+ }
120
+ this.ctx.addNode({
121
+ id: duplicateId,
122
+ rawMarkup,
123
+ currentRect: rect
124
+ }, parentId, index);
125
+ if (this.ctx.jsMarkedNodes.has(originalId)) {
126
+ this.ctx.markNodeHasJS(duplicateId);
127
+ }
128
+ this.ctx.callbacks.onNodeCloned?.(originalId, duplicateId);
129
+ newSelectedIds.push(duplicateId);
130
+ const finalIndex = parentId !== null ? this.ctx.tree.getChildIndex(duplicateId) : -1;
131
+ ops.push({
132
+ type: "create-node",
133
+ nodeId: duplicateId,
134
+ payload: { parentId, index: finalIndex, rawMarkup, rect },
135
+ undoPayload: { parentId }
136
+ });
137
+ if (parentId) {
138
+ parentsToCommit.add(parentId);
139
+ }
140
+ else {
141
+ rootsToCommit.push(duplicateId);
142
+ }
143
+ }
144
+ if (ops.length > 0) {
145
+ const prevSelection = new Set(this.ctx.selectedIds);
146
+ this.ctx.selectedIds.clear();
147
+ for (const id of newSelectedIds) {
148
+ this.ctx.selectedIds.add(id);
149
+ }
150
+ this.ctx.syncLazyChildren(prevSelection, this.ctx.selectedIds);
151
+ this.ctx.callbacks.onSelectionChange?.(this.ctx.selectedIds);
152
+ this.ctx.updateBreadcrumb();
153
+ this.ctx.callbacks.onOperationsGenerated?.(ops);
154
+ for (const parentId of parentsToCommit) {
155
+ const html = this.ctx.mount.extractHTML(parentId);
156
+ if (html) {
157
+ this.ctx.callbacks.onHTMLCommit?.(parentId, html);
158
+ }
159
+ }
160
+ for (const rootId of rootsToCommit) {
161
+ const html = this.ctx.mount.extractHTML(rootId);
162
+ if (html) {
163
+ this.ctx.callbacks.onHTMLCommit?.(rootId, html);
164
+ }
165
+ }
166
+ }
167
+ this.ctx.mount.setTransitionsEnabled(true);
168
+ this.ctx.render();
169
+ }
170
+ /** Copies the selected node to the internal clipboard. */
171
+ copySelectedNode() {
172
+ const topLevelIds = this.ctx.getTopLevelSelectedIds();
173
+ if (topLevelIds.length === 0)
174
+ return;
175
+ this.clipboardItems = [];
176
+ for (const id of topLevelIds) {
177
+ const node = this.ctx.tree.get(id);
178
+ const markup = this.ctx.mount.extractHTML(id);
179
+ if (node && markup) {
180
+ this.clipboardItems.push({
181
+ rawMarkup: markup,
182
+ rect: node.currentRect ? { ...node.currentRect } : null,
183
+ hasJS: this.ctx.jsMarkedNodes.has(id),
184
+ originalId: id,
185
+ });
186
+ }
187
+ }
188
+ }
189
+ /** Cuts the selected node to the clipboard, removing it from the canvas. */
190
+ cutSelectedNode() {
191
+ this.copySelectedNode();
192
+ this.deleteSelectedNode();
193
+ }
194
+ /** Pastes the node currently in the clipboard into the canvas. */
195
+ pasteNode() {
196
+ if (this.clipboardItems.length === 0)
197
+ return;
198
+ this.ctx.mount.setTransitionsEnabled(false);
199
+ const newSelectedIds = [];
200
+ const ops = [];
201
+ const parentsToCommit = new Set();
202
+ const rootsToCommit = [];
203
+ const targets = this.ctx.selectedIds.size > 0 ? this.ctx.getTopLevelSelectedIds() : [];
204
+ if (targets.length === 0) {
205
+ // Paste all items at root level
206
+ for (const item of this.clipboardItems) {
207
+ const id = `pasted-${this.ctx.nextElementId()}-${Date.now().toString(36)}`;
208
+ let rect;
209
+ if (item.rect) {
210
+ rect = {
211
+ x: item.rect.x + 20,
212
+ y: item.rect.y + 20,
213
+ width: item.rect.width,
214
+ height: item.rect.height,
215
+ };
216
+ item.rect = {
217
+ x: item.rect.x + 20,
218
+ y: item.rect.y + 20,
219
+ width: item.rect.width,
220
+ height: item.rect.height,
221
+ };
222
+ }
223
+ else {
224
+ rect = { x: 100, y: 100, width: 120, height: 120 };
225
+ }
226
+ this.ctx.addNode({
227
+ id,
228
+ rawMarkup: item.rawMarkup,
229
+ currentRect: rect,
230
+ }, null);
231
+ if (item.hasJS) {
232
+ this.ctx.markNodeHasJS(id);
233
+ }
234
+ if (item.originalId) {
235
+ this.ctx.callbacks.onNodeCloned?.(item.originalId, id);
236
+ }
237
+ newSelectedIds.push(id);
238
+ ops.push({
239
+ type: "create-node",
240
+ nodeId: id,
241
+ payload: { parentId: null, index: undefined, rawMarkup: item.rawMarkup, rect },
242
+ undoPayload: { parentId: null }
243
+ });
244
+ rootsToCommit.push(id);
245
+ }
246
+ }
247
+ else {
248
+ // Paste next to or inside each target
249
+ for (const targetId of targets) {
250
+ const targetNode = this.ctx.tree.get(targetId);
251
+ if (!targetNode)
252
+ continue;
253
+ const isContainer = this.ctx.tree.isContainer(targetId);
254
+ const parentId = isContainer ? targetId : targetNode.parentId;
255
+ let startIndex = isContainer ? 0 : this.ctx.tree.getChildIndex(targetId) + 1;
256
+ for (const item of this.clipboardItems) {
257
+ const id = `pasted-${this.ctx.nextElementId()}-${Date.now().toString(36)}`;
258
+ let rect;
259
+ if (parentId === null) {
260
+ if (item.rect) {
261
+ rect = {
262
+ x: item.rect.x + 20,
263
+ y: item.rect.y + 20,
264
+ width: item.rect.width,
265
+ height: item.rect.height,
266
+ };
267
+ item.rect = {
268
+ x: item.rect.x + 20,
269
+ y: item.rect.y + 20,
270
+ width: item.rect.width,
271
+ height: item.rect.height,
272
+ };
273
+ }
274
+ else {
275
+ rect = { x: 100, y: 100, width: 120, height: 120 };
276
+ }
277
+ }
278
+ else {
279
+ if (item.rect) {
280
+ rect = {
281
+ x: 0,
282
+ y: 0,
283
+ width: item.rect.width,
284
+ height: item.rect.height,
285
+ };
286
+ }
287
+ else {
288
+ rect = { x: 0, y: 0, width: 120, height: 120 };
289
+ }
290
+ }
291
+ this.ctx.addNode({
292
+ id,
293
+ rawMarkup: item.rawMarkup,
294
+ currentRect: rect,
295
+ }, parentId, startIndex);
296
+ if (parentId !== null) {
297
+ startIndex++;
298
+ }
299
+ if (item.hasJS) {
300
+ this.ctx.markNodeHasJS(id);
301
+ }
302
+ if (item.originalId) {
303
+ this.ctx.callbacks.onNodeCloned?.(item.originalId, id);
304
+ }
305
+ newSelectedIds.push(id);
306
+ const finalIndex = parentId !== null ? this.ctx.tree.getChildIndex(id) : -1;
307
+ ops.push({
308
+ type: "create-node",
309
+ nodeId: id,
310
+ payload: { parentId, index: finalIndex, rawMarkup: item.rawMarkup, rect },
311
+ undoPayload: { parentId }
312
+ });
313
+ if (parentId) {
314
+ parentsToCommit.add(parentId);
315
+ }
316
+ else {
317
+ rootsToCommit.push(id);
318
+ }
319
+ }
320
+ }
321
+ }
322
+ if (ops.length > 0) {
323
+ const prevSelection = new Set(this.ctx.selectedIds);
324
+ this.ctx.selectedIds.clear();
325
+ for (const id of newSelectedIds) {
326
+ this.ctx.selectedIds.add(id);
327
+ }
328
+ this.ctx.syncLazyChildren(prevSelection, this.ctx.selectedIds);
329
+ this.ctx.callbacks.onSelectionChange?.(this.ctx.selectedIds);
330
+ this.ctx.updateBreadcrumb();
331
+ this.ctx.callbacks.onOperationsGenerated?.(ops);
332
+ for (const parentId of parentsToCommit) {
333
+ const html = this.ctx.mount.extractHTML(parentId);
334
+ if (html) {
335
+ this.ctx.callbacks.onHTMLCommit?.(parentId, html);
336
+ }
337
+ }
338
+ for (const rootId of rootsToCommit) {
339
+ const html = this.ctx.mount.extractHTML(rootId);
340
+ if (html) {
341
+ this.ctx.callbacks.onHTMLCommit?.(rootId, html);
342
+ }
343
+ }
344
+ }
345
+ this.ctx.mount.setTransitionsEnabled(true);
346
+ this.ctx.render();
347
+ }
348
+ }
349
+ //# sourceMappingURL=clipboard.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.handler.js","sourceRoot":"","sources":["../../src/handlers/clipboard.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Command } from "../types.js";
2
+ import type { KeyboardHandler, WorkspaceContext } from "./types.js";
3
+ /**
4
+ * Manages modular keyboard commands and coordinates shortcut execution.
5
+ */
6
+ export declare class CommandHandler implements KeyboardHandler {
7
+ readonly id = "command";
8
+ private ctx;
9
+ private commands;
10
+ constructor(ctx: WorkspaceContext);
11
+ onKeyDown(e: KeyboardEvent): boolean;
12
+ registerCommand(cmd: Command): void;
13
+ private registerDefaultCommands;
14
+ private nudgeOrReorderSelected;
15
+ private ungroupSelectedOrParent;
16
+ private wrapSelectedInFlex;
17
+ }
18
+ //# sourceMappingURL=command.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.handler.d.ts","sourceRoot":"","sources":["../../src/handlers/command.handler.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAyBpE;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,EAAE,aAAa;IAExB,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,QAAQ,CAA8B;gBAElC,GAAG,EAAE,gBAAgB;IAOjC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IAcpC,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAInC,OAAO,CAAC,uBAAuB;IAgD/B,OAAO,CAAC,sBAAsB;IAsI9B,OAAO,CAAC,uBAAuB;IA4F/B,OAAO,CAAC,kBAAkB;CA8I3B"}