@elixpo/lixsketch 5.6.6 → 5.6.8

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 (79) hide show
  1. package/dist/react/{CopyPaste-P6G35CXO.js → CopyPaste-PPDS3AD6.js} +6 -6
  2. package/dist/react/{EventDispatcher-M5B4EWHJ.js → EventDispatcher-UV7LFSAS.js} +13 -13
  3. package/dist/react/{Frame-QEUEYITT.js → Frame-DELCMYV6.js} +3 -3
  4. package/dist/react/IconShape-PZHMZSLR.js +10 -0
  5. package/dist/react/ImageShape-ZMBZARRI.js +10 -0
  6. package/dist/react/Line-VPVPL6ET.js +10 -0
  7. package/dist/react/{SceneSerializer-JEYTYXZQ.js → SceneSerializer-H6KMQCO2.js} +6 -6
  8. package/dist/react/{Selection-23MOLHEI.js → Selection-CFWRGVKH.js} +4 -4
  9. package/dist/react/{SketchEngine-OPJON7TD.js → SketchEngine-UFLZJQXS.js} +20 -20
  10. package/dist/react/{UndoRedo-QVNRI5OB.js → UndoRedo-RXO7YHA2.js} +6 -2
  11. package/dist/react/{arrowTool-VH3PJPDM.js → arrowTool-DO327FKU.js} +3 -3
  12. package/dist/react/{chunk-XSE4HQ2D.js → chunk-2ALS5JGS.js} +2 -2
  13. package/dist/react/{chunk-JEGLUNBC.js → chunk-37PF7FG2.js} +3 -3
  14. package/dist/react/{chunk-5NHJJJBZ.js → chunk-6LWUR7XB.js} +3 -3
  15. package/dist/react/{chunk-B6CYUZC4.js → chunk-7DD2JRBC.js} +2 -2
  16. package/dist/react/{chunk-DNFPTVIP.js → chunk-BOZEDUAF.js} +2 -2
  17. package/dist/react/{chunk-UEL2G6D2.js → chunk-CGMUXYPJ.js} +3 -3
  18. package/dist/react/{chunk-ULPIHUVC.js → chunk-DODPOWNX.js} +3 -3
  19. package/dist/react/{chunk-2DZHO67H.js → chunk-GQLXUZHQ.js} +2 -2
  20. package/dist/react/{chunk-G3DJQY65.js → chunk-I7TVGJFF.js} +3 -3
  21. package/dist/react/{chunk-6GPWSPJF.js → chunk-KC26KJW4.js} +22 -17
  22. package/dist/react/chunk-KC26KJW4.js.map +7 -0
  23. package/dist/react/{chunk-OK4ROGMM.js → chunk-KZBKYHZO.js} +3 -3
  24. package/dist/react/{chunk-SSFEN5CY.js → chunk-O7KXLFZN.js} +3 -3
  25. package/dist/react/{chunk-F56XUE5S.js → chunk-RK3NVAER.js} +4 -4
  26. package/dist/react/{chunk-M7GAB24F.js → chunk-VZX55VQL.js} +64 -1
  27. package/dist/react/chunk-VZX55VQL.js.map +7 -0
  28. package/dist/react/{chunk-DWEFPKDO.js → chunk-X5ENBMGL.js} +2 -2
  29. package/dist/react/{circleTool-2UODOBCV.js → circleTool-NK4RVDAR.js} +4 -4
  30. package/dist/react/{codeTool-F4RV7SAI.js → codeTool-3WF4HEOW.js} +4 -4
  31. package/dist/react/{frameTool-NTGA5BI6.js → frameTool-VCNV2NG2.js} +4 -4
  32. package/dist/react/{freehandTool-L55EUB5C.js → freehandTool-TBAOD46K.js} +4 -4
  33. package/dist/react/{iconTool-KQQBLGR3.js → iconTool-65JCAKYF.js} +4 -4
  34. package/dist/react/{imageTool-LDJ45AD7.js → imageTool-UQZUBOK2.js} +4 -4
  35. package/dist/react/index.js +2 -2
  36. package/dist/react/{lineTool-CSAFD7PW.js → lineTool-762KBYOM.js} +4 -4
  37. package/dist/react/{rectangleTool-YPD2SIIZ.js → rectangleTool-IQK3HZK6.js} +4 -4
  38. package/dist/react/{textTool-VQHMWEFJ.js → textTool-ITG2SBJK.js} +5 -5
  39. package/package.json +1 -1
  40. package/src/core/Selection.js +19 -14
  41. package/src/core/UndoRedo.js +67 -0
  42. package/dist/react/IconShape-NHJE4YBY.js +0 -10
  43. package/dist/react/ImageShape-33VCMSDP.js +0 -10
  44. package/dist/react/Line-A6FE232Q.js +0 -10
  45. package/dist/react/chunk-6GPWSPJF.js.map +0 -7
  46. package/dist/react/chunk-M7GAB24F.js.map +0 -7
  47. /package/dist/react/{CopyPaste-P6G35CXO.js.map → CopyPaste-PPDS3AD6.js.map} +0 -0
  48. /package/dist/react/{EventDispatcher-M5B4EWHJ.js.map → EventDispatcher-UV7LFSAS.js.map} +0 -0
  49. /package/dist/react/{Frame-QEUEYITT.js.map → Frame-DELCMYV6.js.map} +0 -0
  50. /package/dist/react/{IconShape-NHJE4YBY.js.map → IconShape-PZHMZSLR.js.map} +0 -0
  51. /package/dist/react/{ImageShape-33VCMSDP.js.map → ImageShape-ZMBZARRI.js.map} +0 -0
  52. /package/dist/react/{Line-A6FE232Q.js.map → Line-VPVPL6ET.js.map} +0 -0
  53. /package/dist/react/{SceneSerializer-JEYTYXZQ.js.map → SceneSerializer-H6KMQCO2.js.map} +0 -0
  54. /package/dist/react/{Selection-23MOLHEI.js.map → Selection-CFWRGVKH.js.map} +0 -0
  55. /package/dist/react/{SketchEngine-OPJON7TD.js.map → SketchEngine-UFLZJQXS.js.map} +0 -0
  56. /package/dist/react/{UndoRedo-QVNRI5OB.js.map → UndoRedo-RXO7YHA2.js.map} +0 -0
  57. /package/dist/react/{arrowTool-VH3PJPDM.js.map → arrowTool-DO327FKU.js.map} +0 -0
  58. /package/dist/react/{chunk-XSE4HQ2D.js.map → chunk-2ALS5JGS.js.map} +0 -0
  59. /package/dist/react/{chunk-JEGLUNBC.js.map → chunk-37PF7FG2.js.map} +0 -0
  60. /package/dist/react/{chunk-5NHJJJBZ.js.map → chunk-6LWUR7XB.js.map} +0 -0
  61. /package/dist/react/{chunk-B6CYUZC4.js.map → chunk-7DD2JRBC.js.map} +0 -0
  62. /package/dist/react/{chunk-DNFPTVIP.js.map → chunk-BOZEDUAF.js.map} +0 -0
  63. /package/dist/react/{chunk-UEL2G6D2.js.map → chunk-CGMUXYPJ.js.map} +0 -0
  64. /package/dist/react/{chunk-ULPIHUVC.js.map → chunk-DODPOWNX.js.map} +0 -0
  65. /package/dist/react/{chunk-2DZHO67H.js.map → chunk-GQLXUZHQ.js.map} +0 -0
  66. /package/dist/react/{chunk-G3DJQY65.js.map → chunk-I7TVGJFF.js.map} +0 -0
  67. /package/dist/react/{chunk-OK4ROGMM.js.map → chunk-KZBKYHZO.js.map} +0 -0
  68. /package/dist/react/{chunk-SSFEN5CY.js.map → chunk-O7KXLFZN.js.map} +0 -0
  69. /package/dist/react/{chunk-F56XUE5S.js.map → chunk-RK3NVAER.js.map} +0 -0
  70. /package/dist/react/{chunk-DWEFPKDO.js.map → chunk-X5ENBMGL.js.map} +0 -0
  71. /package/dist/react/{circleTool-2UODOBCV.js.map → circleTool-NK4RVDAR.js.map} +0 -0
  72. /package/dist/react/{codeTool-F4RV7SAI.js.map → codeTool-3WF4HEOW.js.map} +0 -0
  73. /package/dist/react/{frameTool-NTGA5BI6.js.map → frameTool-VCNV2NG2.js.map} +0 -0
  74. /package/dist/react/{freehandTool-L55EUB5C.js.map → freehandTool-TBAOD46K.js.map} +0 -0
  75. /package/dist/react/{iconTool-KQQBLGR3.js.map → iconTool-65JCAKYF.js.map} +0 -0
  76. /package/dist/react/{imageTool-LDJ45AD7.js.map → imageTool-UQZUBOK2.js.map} +0 -0
  77. /package/dist/react/{lineTool-CSAFD7PW.js.map → lineTool-762KBYOM.js.map} +0 -0
  78. /package/dist/react/{rectangleTool-YPD2SIIZ.js.map → rectangleTool-IQK3HZK6.js.map} +0 -0
  79. /package/dist/react/{textTool-VQHMWEFJ.js.map → textTool-ITG2SBJK.js.map} +0 -0
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-MB7VS6MK.js";
5
5
  import {
6
6
  ImageShape
7
- } from "./chunk-B6CYUZC4.js";
7
+ } from "./chunk-7DD2JRBC.js";
8
8
  import {
9
9
  IconShape
10
- } from "./chunk-XSE4HQ2D.js";
10
+ } from "./chunk-2ALS5JGS.js";
11
11
  import {
12
12
  Frame
13
13
  } from "./chunk-ZNZAICWY.js";
@@ -31,11 +31,11 @@ import {
31
31
  } from "./chunk-BT2EIJD4.js";
32
32
  import {
33
33
  Line
34
- } from "./chunk-DNFPTVIP.js";
35
- import "./chunk-DWEFPKDO.js";
34
+ } from "./chunk-BOZEDUAF.js";
35
+ import "./chunk-X5ENBMGL.js";
36
36
  import {
37
37
  pushCreateAction
38
- } from "./chunk-M7GAB24F.js";
38
+ } from "./chunk-VZX55VQL.js";
39
39
  import {
40
40
  TextShape
41
41
  } from "./chunk-PGT3TJOW.js";
@@ -604,4 +604,4 @@ export {
604
604
  initCopyPaste,
605
605
  pasteClipboard
606
606
  };
607
- //# sourceMappingURL=CopyPaste-P6G35CXO.js.map
607
+ //# sourceMappingURL=CopyPaste-PPDS3AD6.js.map
@@ -4,32 +4,32 @@ import {
4
4
  handleTextMouseDown,
5
5
  handleTextMouseMove,
6
6
  handleTextMouseUp
7
- } from "./chunk-F56XUE5S.js";
7
+ } from "./chunk-RK3NVAER.js";
8
8
  import {
9
9
  handleCodeMouseDown,
10
10
  handleCodeMouseMove,
11
11
  handleCodeMouseUp
12
- } from "./chunk-ULPIHUVC.js";
12
+ } from "./chunk-DODPOWNX.js";
13
13
  import {
14
14
  handleMouseDownImage,
15
15
  handleMouseMoveImage,
16
16
  handleMouseUpImage
17
- } from "./chunk-JEGLUNBC.js";
17
+ } from "./chunk-37PF7FG2.js";
18
18
  import {
19
19
  handleMouseDownIcon,
20
20
  handleMouseMoveIcon,
21
21
  handleMouseUpIcon
22
- } from "./chunk-SSFEN5CY.js";
22
+ } from "./chunk-O7KXLFZN.js";
23
23
  import {
24
24
  handleMouseDown as handleMouseDown4,
25
25
  handleMouseMove as handleMouseMove4,
26
26
  handleMouseUp as handleMouseUp4
27
- } from "./chunk-2DZHO67H.js";
27
+ } from "./chunk-GQLXUZHQ.js";
28
28
  import {
29
29
  handleMouseDown as handleMouseDown5,
30
30
  handleMouseMove as handleMouseMove5,
31
31
  handleMouseUp as handleMouseUp5
32
- } from "./chunk-5NHJJJBZ.js";
32
+ } from "./chunk-6LWUR7XB.js";
33
33
  import {
34
34
  handleMultiSelectionMouseDown,
35
35
  handleMultiSelectionMouseMove,
@@ -37,7 +37,7 @@ import {
37
37
  isMultiSelecting,
38
38
  multiSelection,
39
39
  removeMultiSelectionRect
40
- } from "./chunk-6GPWSPJF.js";
40
+ } from "./chunk-KC26KJW4.js";
41
41
  import {
42
42
  Frame
43
43
  } from "./chunk-ZNZAICWY.js";
@@ -45,17 +45,17 @@ import {
45
45
  handleMouseDownRect,
46
46
  handleMouseMoveRect,
47
47
  handleMouseUpRect
48
- } from "./chunk-G3DJQY65.js";
48
+ } from "./chunk-I7TVGJFF.js";
49
49
  import {
50
50
  handleMouseDown as handleMouseDown2,
51
51
  handleMouseMove as handleMouseMove2,
52
52
  handleMouseUp as handleMouseUp2
53
- } from "./chunk-OK4ROGMM.js";
53
+ } from "./chunk-KZBKYHZO.js";
54
54
  import {
55
55
  handleMouseDown as handleMouseDown3,
56
56
  handleMouseMove as handleMouseMove3,
57
57
  handleMouseUp as handleMouseUp3
58
- } from "./chunk-UEL2G6D2.js";
58
+ } from "./chunk-CGMUXYPJ.js";
59
59
  import {
60
60
  normalizeWebEmbedUrl
61
61
  } from "./chunk-QZI4UIE5.js";
@@ -65,12 +65,12 @@ import {
65
65
  handleMouseDown,
66
66
  handleMouseMove,
67
67
  handleMouseUp
68
- } from "./chunk-DWEFPKDO.js";
68
+ } from "./chunk-X5ENBMGL.js";
69
69
  import {
70
70
  pushCreateAction,
71
71
  pushFrameAttachmentAction,
72
72
  pushOptionsChangeAction
73
- } from "./chunk-M7GAB24F.js";
73
+ } from "./chunk-VZX55VQL.js";
74
74
 
75
75
  // src/tools/shapeRecognition.js
76
76
  var MIN_SHAPE_SIZE2 = 8;
@@ -1247,4 +1247,4 @@ export {
1247
1247
  handleMainMouseUp,
1248
1248
  initEventDispatcher
1249
1249
  };
1250
- //# sourceMappingURL=EventDispatcher-M5B4EWHJ.js.map
1250
+ //# sourceMappingURL=EventDispatcher-UV7LFSAS.js.map
@@ -3,9 +3,9 @@ import {
3
3
  Frame
4
4
  } from "./chunk-ZNZAICWY.js";
5
5
  import "./chunk-PAKA6HUX.js";
6
- import "./chunk-DWEFPKDO.js";
7
- import "./chunk-M7GAB24F.js";
6
+ import "./chunk-X5ENBMGL.js";
7
+ import "./chunk-VZX55VQL.js";
8
8
  export {
9
9
  Frame
10
10
  };
11
- //# sourceMappingURL=Frame-QEUEYITT.js.map
11
+ //# sourceMappingURL=Frame-DELCMYV6.js.map
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import {
3
+ IconShape
4
+ } from "./chunk-2ALS5JGS.js";
5
+ import "./chunk-X5ENBMGL.js";
6
+ import "./chunk-VZX55VQL.js";
7
+ export {
8
+ IconShape
9
+ };
10
+ //# sourceMappingURL=IconShape-PZHMZSLR.js.map
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import {
3
+ ImageShape
4
+ } from "./chunk-7DD2JRBC.js";
5
+ import "./chunk-X5ENBMGL.js";
6
+ import "./chunk-VZX55VQL.js";
7
+ export {
8
+ ImageShape
9
+ };
10
+ //# sourceMappingURL=ImageShape-ZMBZARRI.js.map
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import {
3
+ Line
4
+ } from "./chunk-BOZEDUAF.js";
5
+ import "./chunk-X5ENBMGL.js";
6
+ import "./chunk-VZX55VQL.js";
7
+ export {
8
+ Line
9
+ };
10
+ //# sourceMappingURL=Line-VPVPL6ET.js.map
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-MB7VS6MK.js";
5
5
  import {
6
6
  ImageShape
7
- } from "./chunk-B6CYUZC4.js";
7
+ } from "./chunk-7DD2JRBC.js";
8
8
  import {
9
9
  IconShape
10
- } from "./chunk-XSE4HQ2D.js";
10
+ } from "./chunk-2ALS5JGS.js";
11
11
  import {
12
12
  Frame
13
13
  } from "./chunk-ZNZAICWY.js";
@@ -30,12 +30,12 @@ import {
30
30
  } from "./chunk-BT2EIJD4.js";
31
31
  import {
32
32
  Line
33
- } from "./chunk-DNFPTVIP.js";
34
- import "./chunk-DWEFPKDO.js";
33
+ } from "./chunk-BOZEDUAF.js";
34
+ import "./chunk-X5ENBMGL.js";
35
35
  import {
36
36
  clearUndoHistory,
37
37
  pushCanvasResetAction
38
- } from "./chunk-M7GAB24F.js";
38
+ } from "./chunk-VZX55VQL.js";
39
39
  import {
40
40
  TextShape
41
41
  } from "./chunk-PGT3TJOW.js";
@@ -866,4 +866,4 @@ export {
866
866
  uploadScene,
867
867
  validateScene
868
868
  };
869
- //# sourceMappingURL=SceneSerializer-JEYTYXZQ.js.map
869
+ //# sourceMappingURL=SceneSerializer-H6KMQCO2.js.map
@@ -14,10 +14,10 @@ import {
14
14
  removeMultiSelectionControls,
15
15
  removeMultiSelectionRect,
16
16
  selectShapesInRect
17
- } from "./chunk-6GPWSPJF.js";
17
+ } from "./chunk-KC26KJW4.js";
18
18
  import "./chunk-PAKA6HUX.js";
19
- import "./chunk-DWEFPKDO.js";
20
- import "./chunk-M7GAB24F.js";
19
+ import "./chunk-X5ENBMGL.js";
20
+ import "./chunk-VZX55VQL.js";
21
21
  export {
22
22
  cancelActiveMultiSelectionDrag,
23
23
  clearAllSelections,
@@ -34,4 +34,4 @@ export {
34
34
  removeMultiSelectionRect,
35
35
  selectShapesInRect
36
36
  };
37
- //# sourceMappingURL=Selection-23MOLHEI.js.map
37
+ //# sourceMappingURL=Selection-CFWRGVKH.js.map
@@ -168,12 +168,12 @@ var SketchEngine = class {
168
168
  import("./Rectangle-4U4CD2ER.js"),
169
169
  import("./Circle-HMM5PKJ2.js"),
170
170
  import("./Arrow-EF7ALH2Y.js"),
171
- import("./Line-A6FE232Q.js"),
171
+ import("./Line-VPVPL6ET.js"),
172
172
  import("./TextShape-DY77FFI2.js"),
173
173
  import("./CodeShape-TE74XP5V.js"),
174
- import("./ImageShape-33VCMSDP.js"),
175
- import("./IconShape-NHJE4YBY.js"),
176
- import("./Frame-QEUEYITT.js"),
174
+ import("./ImageShape-ZMBZARRI.js"),
175
+ import("./IconShape-PZHMZSLR.js"),
176
+ import("./Frame-DELCMYV6.js"),
177
177
  import("./FreehandStroke-WXIJKD5I.js")
178
178
  ]);
179
179
  window.Rectangle = Rectangle;
@@ -210,16 +210,16 @@ var SketchEngine = class {
210
210
  frameTool,
211
211
  freehandTool
212
212
  ] = await Promise.all([
213
- import("./rectangleTool-YPD2SIIZ.js"),
214
- import("./circleTool-2UODOBCV.js"),
215
- import("./arrowTool-VH3PJPDM.js"),
216
- import("./lineTool-CSAFD7PW.js"),
217
- import("./textTool-VQHMWEFJ.js"),
218
- import("./codeTool-F4RV7SAI.js"),
219
- import("./imageTool-LDJ45AD7.js"),
220
- import("./iconTool-KQQBLGR3.js"),
221
- import("./frameTool-NTGA5BI6.js"),
222
- import("./freehandTool-L55EUB5C.js")
213
+ import("./rectangleTool-IQK3HZK6.js"),
214
+ import("./circleTool-NK4RVDAR.js"),
215
+ import("./arrowTool-DO327FKU.js"),
216
+ import("./lineTool-762KBYOM.js"),
217
+ import("./textTool-ITG2SBJK.js"),
218
+ import("./codeTool-3WF4HEOW.js"),
219
+ import("./imageTool-UQZUBOK2.js"),
220
+ import("./iconTool-65JCAKYF.js"),
221
+ import("./frameTool-VCNV2NG2.js"),
222
+ import("./freehandTool-TBAOD46K.js")
223
223
  ]);
224
224
  this._modules.tools = {
225
225
  rectangleTool,
@@ -243,11 +243,11 @@ var SketchEngine = class {
243
243
  resizeShapes,
244
244
  resizeCode
245
245
  ] = await Promise.all([
246
- import("./EventDispatcher-M5B4EWHJ.js"),
247
- import("./UndoRedo-QVNRI5OB.js"),
248
- import("./Selection-23MOLHEI.js"),
246
+ import("./EventDispatcher-UV7LFSAS.js"),
247
+ import("./UndoRedo-RXO7YHA2.js"),
248
+ import("./Selection-CFWRGVKH.js"),
249
249
  import("./ZoomPan-RR7KUYZT.js"),
250
- import("./CopyPaste-P6G35CXO.js"),
250
+ import("./CopyPaste-PPDS3AD6.js"),
251
251
  import("./EraserTrail-PA6IQLQN.js"),
252
252
  import("./ResizeShapes-LKEQTITP.js"),
253
253
  import("./ResizeCode-WAMDTKSW.js")
@@ -266,7 +266,7 @@ var SketchEngine = class {
266
266
  eventDispatcher.initEventDispatcher(this.svg);
267
267
  }
268
268
  window.__sketchInteractionReady = true;
269
- const sceneSerializer = await import("./SceneSerializer-JEYTYXZQ.js");
269
+ const sceneSerializer = await import("./SceneSerializer-H6KMQCO2.js");
270
270
  if (sceneSerializer.initSceneSerializer) sceneSerializer.initSceneSerializer();
271
271
  await Promise.all([
272
272
  import("./eraserTool-2GS2LQCS.js"),
@@ -441,4 +441,4 @@ export {
441
441
  SketchEngine,
442
442
  SketchEngine_default as default
443
443
  };
444
- //# sourceMappingURL=SketchEngine-OPJON7TD.js.map
444
+ //# sourceMappingURL=SketchEngine-UFLZJQXS.js.map
@@ -1,6 +1,8 @@
1
1
  "use client";
2
2
  import {
3
+ beginUndoBatch,
3
4
  clearUndoHistory,
5
+ endUndoBatch,
4
6
  getCurrentSelectedElement,
5
7
  invalidateCanvasResetUndo,
6
8
  pushCanvasResetAction,
@@ -15,9 +17,11 @@ import {
15
17
  setTextReferences,
16
18
  undo,
17
19
  updateSelectedElement
18
- } from "./chunk-M7GAB24F.js";
20
+ } from "./chunk-VZX55VQL.js";
19
21
  export {
22
+ beginUndoBatch,
20
23
  clearUndoHistory,
24
+ endUndoBatch,
21
25
  getCurrentSelectedElement,
22
26
  invalidateCanvasResetUndo,
23
27
  pushCanvasResetAction,
@@ -33,4 +37,4 @@ export {
33
37
  undo,
34
38
  updateSelectedElement
35
39
  };
36
- //# sourceMappingURL=UndoRedo-QVNRI5OB.js.map
40
+ //# sourceMappingURL=UndoRedo-RXO7YHA2.js.map
@@ -5,8 +5,8 @@ import {
5
5
  handleMouseMove,
6
6
  handleMouseUp,
7
7
  updateAttachedArrows
8
- } from "./chunk-DWEFPKDO.js";
9
- import "./chunk-M7GAB24F.js";
8
+ } from "./chunk-X5ENBMGL.js";
9
+ import "./chunk-VZX55VQL.js";
10
10
  export {
11
11
  cleanupAttachments,
12
12
  handleMouseDown as handleMouseDownArrow,
@@ -14,4 +14,4 @@ export {
14
14
  handleMouseUp as handleMouseUpArrow,
15
15
  updateAttachedArrows
16
16
  };
17
- //# sourceMappingURL=arrowTool-VH3PJPDM.js.map
17
+ //# sourceMappingURL=arrowTool-DO327FKU.js.map
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  cleanupAttachments,
4
4
  updateAttachedArrows
5
- } from "./chunk-DWEFPKDO.js";
5
+ } from "./chunk-X5ENBMGL.js";
6
6
 
7
7
  // src/shapes/IconShape.js
8
8
  var isDragging = false;
@@ -220,4 +220,4 @@ var IconShape = class {
220
220
  export {
221
221
  IconShape
222
222
  };
223
- //# sourceMappingURL=chunk-XSE4HQ2D.js.map
223
+ //# sourceMappingURL=chunk-2ALS5JGS.js.map
@@ -10,13 +10,13 @@ import {
10
10
  import {
11
11
  cleanupAttachments,
12
12
  updateAttachedArrows
13
- } from "./chunk-DWEFPKDO.js";
13
+ } from "./chunk-X5ENBMGL.js";
14
14
  import {
15
15
  pushCreateAction,
16
16
  pushDeleteAction,
17
17
  pushFrameAttachmentAction,
18
18
  pushTransformAction
19
- } from "./chunk-M7GAB24F.js";
19
+ } from "./chunk-VZX55VQL.js";
20
20
 
21
21
  // src/tools/imageTool.js
22
22
  var isDraggingImage = false;
@@ -1038,4 +1038,4 @@ export {
1038
1038
  handleMouseDownImage,
1039
1039
  handleMouseUpImage
1040
1040
  };
1041
- //# sourceMappingURL=chunk-JEGLUNBC.js.map
1041
+ //# sourceMappingURL=chunk-37PF7FG2.js.map
@@ -3,14 +3,14 @@ import {
3
3
  calculateSnap,
4
4
  clearSnapGuides,
5
5
  updateAttachedArrows
6
- } from "./chunk-DWEFPKDO.js";
6
+ } from "./chunk-X5ENBMGL.js";
7
7
  import {
8
8
  pushCreateAction,
9
9
  pushDeleteAction,
10
10
  pushFrameAttachmentAction,
11
11
  pushOptionsChangeAction,
12
12
  pushTransformAction
13
- } from "./chunk-M7GAB24F.js";
13
+ } from "./chunk-VZX55VQL.js";
14
14
 
15
15
  // src/tools/freehandTool.js
16
16
  function getThemeStroke() {
@@ -561,4 +561,4 @@ export {
561
561
  handleMouseMove,
562
562
  handleMouseUp
563
563
  };
564
- //# sourceMappingURL=chunk-5NHJJJBZ.js.map
564
+ //# sourceMappingURL=chunk-6LWUR7XB.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  updateAttachedArrows
4
- } from "./chunk-DWEFPKDO.js";
4
+ } from "./chunk-X5ENBMGL.js";
5
5
 
6
6
  // src/shapes/ImageShape.js
7
7
  var isDragging = false;
@@ -312,4 +312,4 @@ var ImageShape = class {
312
312
  export {
313
313
  ImageShape
314
314
  };
315
- //# sourceMappingURL=chunk-B6CYUZC4.js.map
315
+ //# sourceMappingURL=chunk-7DD2JRBC.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  updateAttachedArrows
4
- } from "./chunk-DWEFPKDO.js";
4
+ } from "./chunk-X5ENBMGL.js";
5
5
 
6
6
  // src/shapes/Line.js
7
7
  var rc = rough.svg(svg);
@@ -625,4 +625,4 @@ var Line = class {
625
625
  export {
626
626
  Line
627
627
  };
628
- //# sourceMappingURL=chunk-DNFPTVIP.js.map
628
+ //# sourceMappingURL=chunk-BOZEDUAF.js.map
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  calculateSnap,
4
4
  clearSnapGuides
5
- } from "./chunk-DWEFPKDO.js";
5
+ } from "./chunk-X5ENBMGL.js";
6
6
  import {
7
7
  pushCreateAction,
8
8
  pushDeleteAction,
9
9
  pushFrameAttachmentAction,
10
10
  pushOptionsChangeAction,
11
11
  pushTransformAction
12
- } from "./chunk-M7GAB24F.js";
12
+ } from "./chunk-VZX55VQL.js";
13
13
 
14
14
  // src/tools/lineTool.js
15
15
  function getThemeStroke() {
@@ -450,4 +450,4 @@ export {
450
450
  handleMouseMove,
451
451
  handleMouseUp
452
452
  };
453
- //# sourceMappingURL=chunk-UEL2G6D2.js.map
453
+ //# sourceMappingURL=chunk-CGMUXYPJ.js.map
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  cleanupAttachments,
7
7
  updateAttachedArrows
8
- } from "./chunk-DWEFPKDO.js";
8
+ } from "./chunk-X5ENBMGL.js";
9
9
  import {
10
10
  pushCreateAction,
11
11
  pushDeleteActionWithAttachments,
@@ -14,7 +14,7 @@ import {
14
14
  pushTransformAction,
15
15
  setTextReferences,
16
16
  updateSelectedElement
17
- } from "./chunk-M7GAB24F.js";
17
+ } from "./chunk-VZX55VQL.js";
18
18
 
19
19
  // src/tools/codeTool.js
20
20
  function getThemeStroke() {
@@ -1601,4 +1601,4 @@ export {
1601
1601
  getCodeLanguage,
1602
1602
  getSelectedCodeBlock
1603
1603
  };
1604
- //# sourceMappingURL=chunk-ULPIHUVC.js.map
1604
+ //# sourceMappingURL=chunk-DODPOWNX.js.map
@@ -4,7 +4,7 @@ import {
4
4
  pushDeleteAction,
5
5
  pushFrameAttachmentAction,
6
6
  pushTransformAction
7
- } from "./chunk-M7GAB24F.js";
7
+ } from "./chunk-VZX55VQL.js";
8
8
 
9
9
  // src/tools/frameTool.js
10
10
  var currentFrame = null;
@@ -241,4 +241,4 @@ export {
241
241
  handleMouseMove,
242
242
  handleMouseUp
243
243
  };
244
- //# sourceMappingURL=chunk-2DZHO67H.js.map
244
+ //# sourceMappingURL=chunk-GQLXUZHQ.js.map
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  calculateSnap,
4
4
  clearSnapGuides
5
- } from "./chunk-DWEFPKDO.js";
5
+ } from "./chunk-X5ENBMGL.js";
6
6
  import {
7
7
  pushCreateAction,
8
8
  pushFrameAttachmentAction,
9
9
  pushOptionsChangeAction,
10
10
  pushTransformAction
11
- } from "./chunk-M7GAB24F.js";
11
+ } from "./chunk-VZX55VQL.js";
12
12
 
13
13
  // src/tools/rectangleTool.js
14
14
  var isDrawingSquare = false;
@@ -500,4 +500,4 @@ export {
500
500
  handleMouseMoveRect,
501
501
  handleMouseUpRect
502
502
  };
503
- //# sourceMappingURL=chunk-G3DJQY65.js.map
503
+ //# sourceMappingURL=chunk-I7TVGJFF.js.map
@@ -6,13 +6,14 @@ import {
6
6
  calculateSnap,
7
7
  cleanupAttachments,
8
8
  clearSnapGuides
9
- } from "./chunk-DWEFPKDO.js";
9
+ } from "./chunk-X5ENBMGL.js";
10
10
  import {
11
+ beginUndoBatch,
12
+ endUndoBatch,
11
13
  pushCreateAction,
12
14
  pushDeleteAction,
13
- pushFrameAttachmentAction,
14
15
  pushTransformAction
15
- } from "./chunk-M7GAB24F.js";
16
+ } from "./chunk-VZX55VQL.js";
16
17
 
17
18
  // src/core/Selection.js
18
19
  var isMultiSelecting = false;
@@ -263,18 +264,20 @@ var MultiSelection = class {
263
264
  y: shape.y,
264
265
  width: shape.width || 0,
265
266
  height: shape.height || 0,
266
- rotation: shape.rotation || 0
267
+ rotation: shape.rotation || 0,
268
+ parentFrame: shape.parentFrame || null
267
269
  };
268
270
  case "circle":
269
- return { x: shape.x, y: shape.y, rx: shape.rx, ry: shape.ry, rotation: shape.rotation || 0, width: shape.width, height: shape.height };
271
+ return { x: shape.x, y: shape.y, rx: shape.rx, ry: shape.ry, rotation: shape.rotation || 0, width: shape.width, height: shape.height, parentFrame: shape.parentFrame || null };
270
272
  case "freehandStroke":
271
- return { x: shape.x, y: shape.y, width: shape.width, height: shape.height, rotation: shape.rotation || 0, points: JSON.parse(JSON.stringify(shape.points)) };
273
+ return { x: shape.x, y: shape.y, width: shape.width, height: shape.height, rotation: shape.rotation || 0, points: JSON.parse(JSON.stringify(shape.points)), parentFrame: shape.parentFrame || null };
272
274
  default:
273
- return { x: shape.x || 0, y: shape.y || 0, width: shape.width || 0, height: shape.height || 0, rotation: shape.rotation || 0 };
275
+ return { x: shape.x || 0, y: shape.y || 0, width: shape.width || 0, height: shape.height || 0, rotation: shape.rotation || 0, parentFrame: shape.parentFrame || null };
274
276
  }
275
277
  }
276
278
  // Push undo actions for all shapes that changed
277
- _pushUndoForAll() {
279
+ _pushUndoForAll(existingBatch = null) {
280
+ const batch = existingBatch || beginUndoBatch();
278
281
  this.selectedShapes.forEach((shape) => {
279
282
  const oldState = this._undoSnapshots.get(shape);
280
283
  if (!oldState) return;
@@ -288,6 +291,7 @@ var MultiSelection = class {
288
291
  }
289
292
  });
290
293
  this._undoSnapshots.clear();
294
+ if (!existingBatch) endUndoBatch(batch, "multi-transform");
291
295
  }
292
296
  addShape(shape) {
293
297
  this.selectedShapes.add(shape);
@@ -1203,6 +1207,7 @@ var MultiSelection = class {
1203
1207
  }
1204
1208
  shape.isSelected = true;
1205
1209
  });
1210
+ const undoBatch = beginUndoBatch();
1206
1211
  if (typeof shapes !== "undefined" && Array.isArray(shapes)) {
1207
1212
  this.selectedShapes.forEach((shape) => {
1208
1213
  if (!shape || shape.shapeName === "frame") return;
@@ -1223,16 +1228,12 @@ var MultiSelection = class {
1223
1228
  }
1224
1229
  if (target && typeof target.addShapeToFrame === "function") {
1225
1230
  target.addShapeToFrame(shape);
1226
- if (typeof pushFrameAttachmentAction === "function") {
1227
- pushFrameAttachmentAction(target, shape, "attach", current);
1228
- }
1229
- } else if (current && typeof pushFrameAttachmentAction === "function") {
1230
- pushFrameAttachmentAction(current, shape, "detach", current);
1231
1231
  }
1232
1232
  });
1233
1233
  }
1234
1234
  this.initialPositions.clear();
1235
- this._pushUndoForAll();
1235
+ this._pushUndoForAll(undoBatch);
1236
+ endUndoBatch(undoBatch, "multi-move");
1236
1237
  this.updateControls();
1237
1238
  if (typeof svg !== "undefined") {
1238
1239
  svg.style.cursor = "default";
@@ -1565,10 +1566,13 @@ function deleteSelectedShapes() {
1565
1566
  }
1566
1567
  const shapesToDelete = Array.from(multiSelection.selectedShapes);
1567
1568
  multiSelection.clearSelection();
1569
+ const undoBatch = beginUndoBatch();
1568
1570
  const releasedChildren = [];
1569
1571
  shapesToDelete.forEach((shape) => {
1570
1572
  const isFrame = shape.shapeName === "frame";
1571
1573
  const isDiagramFrame = isFrame && !!shape._diagramType;
1574
+ const parentFrame = shape.parentFrame || null;
1575
+ const frameIndex = parentFrame?.containedShapes?.indexOf(shape) ?? -1;
1572
1576
  let childSnapshot = null;
1573
1577
  if (isFrame && !isDiagramFrame) {
1574
1578
  childSnapshot = [...shape.containedShapes || []];
@@ -1607,14 +1611,15 @@ function deleteSelectedShapes() {
1607
1611
  if (idx !== -1) shapes.splice(idx, 1);
1608
1612
  try {
1609
1613
  if (childSnapshot) {
1610
- pushDeleteAction(shape, { childSnapshot, shapeIndex: idx });
1614
+ pushDeleteAction(shape, { childSnapshot, shapeIndex: idx, parentFrame, frameIndex });
1611
1615
  } else {
1612
- pushDeleteAction(shape, { shapeIndex: idx });
1616
+ pushDeleteAction(shape, { shapeIndex: idx, parentFrame, frameIndex });
1613
1617
  }
1614
1618
  } catch (err) {
1615
1619
  console.warn("[deleteSelectedShapes] pushDeleteAction failed:", err);
1616
1620
  }
1617
1621
  });
1622
+ endUndoBatch(undoBatch, "multi-delete");
1618
1623
  if (releasedChildren.length > 0) {
1619
1624
  for (const child of releasedChildren) {
1620
1625
  if (shapes.indexOf(child) === -1) continue;
@@ -1691,4 +1696,4 @@ export {
1691
1696
  handleMultiSelectionMouseMove,
1692
1697
  handleMultiSelectionMouseUp
1693
1698
  };
1694
- //# sourceMappingURL=chunk-6GPWSPJF.js.map
1699
+ //# sourceMappingURL=chunk-KC26KJW4.js.map