@inditextech/weave-sdk 0.47.1 → 0.49.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.
package/dist/sdk.cjs CHANGED
@@ -15738,6 +15738,31 @@ function stringToColor(str) {
15738
15738
  }
15739
15739
  return color;
15740
15740
  }
15741
+ function getExportBoundingBox(stage, nodes) {
15742
+ if (nodes.length === 0) return {
15743
+ x: 0,
15744
+ y: 0,
15745
+ width: 0,
15746
+ height: 0
15747
+ };
15748
+ let minX = Infinity;
15749
+ let minY = Infinity;
15750
+ let maxX = -Infinity;
15751
+ let maxY = -Infinity;
15752
+ for (const node of nodes) {
15753
+ const box = node.getExportClientRect({ skipTransform: false });
15754
+ minX = Math.min(minX, box.x);
15755
+ minY = Math.min(minY, box.y);
15756
+ maxX = Math.max(maxX, box.x + box.width);
15757
+ maxY = Math.max(maxY, box.y + box.height);
15758
+ }
15759
+ return {
15760
+ x: minX,
15761
+ y: minY,
15762
+ width: maxX - minX,
15763
+ height: maxY - minY
15764
+ };
15765
+ }
15741
15766
  function getBoundingBox(stage, nodes) {
15742
15767
  if (nodes.length === 0) return {
15743
15768
  x: 0,
@@ -15805,6 +15830,14 @@ function containsNodeDeep(nodes, target) {
15805
15830
  return false;
15806
15831
  }
15807
15832
 
15833
+ //#endregion
15834
+ //#region src/actions/selection-tool/constants.ts
15835
+ const SELECTION_TOOL_ACTION_NAME = "selectionTool";
15836
+ const SELECTION_TOOL_STATE = {
15837
+ ["IDLE"]: "idle",
15838
+ ["SELECTING"]: "selection"
15839
+ };
15840
+
15808
15841
  //#endregion
15809
15842
  //#region src/plugins/context-menu/context-menu.ts
15810
15843
  var WeaveContextMenuPlugin = class extends WeavePlugin {
@@ -15917,7 +15950,7 @@ var WeaveContextMenuPlugin = class extends WeavePlugin {
15917
15950
  this.timer = setTimeout(() => {
15918
15951
  this.tapHold = true;
15919
15952
  const actualActions = this.instance.getActiveAction();
15920
- if (actualActions !== "selectionTool") return;
15953
+ if (actualActions !== SELECTION_TOOL_ACTION_NAME) return;
15921
15954
  delete this.pointers[e.evt.pointerId];
15922
15955
  const selectedGroup = getTargetedNode(this.instance);
15923
15956
  this.triggerContextMenu(e.target, selectedGroup);
@@ -16098,7 +16131,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
16098
16131
  return this.selecting;
16099
16132
  }
16100
16133
  isSelecting() {
16101
- return this.instance.getActiveAction() === "selectionTool";
16134
+ return this.instance.getActiveAction() === SELECTION_TOOL_ACTION_NAME;
16102
16135
  }
16103
16136
  isNodeSelected(ele) {
16104
16137
  let selected = false;
@@ -16262,7 +16295,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
16262
16295
  this.initEvents();
16263
16296
  this.initialized = true;
16264
16297
  this.instance.addEventListener("onActiveActionChange", (activeAction) => {
16265
- if (typeof activeAction !== "undefined" && activeAction !== "selectionTool") {
16298
+ if (typeof activeAction !== "undefined" && activeAction !== SELECTION_TOOL_ACTION_NAME) {
16266
16299
  this.active = false;
16267
16300
  return;
16268
16301
  }
@@ -16565,7 +16598,7 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
16565
16598
  const stage = this.instance.getStage();
16566
16599
  e.cancelBubble = true;
16567
16600
  if (!this.enabled) return;
16568
- if (this.instance.getActiveAction() !== "selectionTool") return;
16601
+ if (this.instance.getActiveAction() !== SELECTION_TOOL_ACTION_NAME) return;
16569
16602
  const contextMenuPlugin = this.getContextMenuPlugin();
16570
16603
  if (contextMenuPlugin?.isContextMenuVisible()) {
16571
16604
  this.selecting = false;
@@ -16953,6 +16986,9 @@ const augmentKonvaNodeClass = (config) => {
16953
16986
  konva.default.Node.prototype.getTransformerProperties = function() {
16954
16987
  return { ...transform };
16955
16988
  };
16989
+ konva.default.Node.prototype.getExportClientRect = function(config$1) {
16990
+ return this.getClientRect(config$1);
16991
+ };
16956
16992
  konva.default.Node.prototype.getRealClientRect = function(config$1) {
16957
16993
  return this.getClientRect(config$1);
16958
16994
  };
@@ -16981,7 +17017,7 @@ var WeaveNode = class {
16981
17017
  return selectionPlugin;
16982
17018
  }
16983
17019
  isSelecting() {
16984
- return this.instance.getActiveAction() === "selectionTool";
17020
+ return this.instance.getActiveAction() === SELECTION_TOOL_ACTION_NAME;
16985
17021
  }
16986
17022
  isPasting() {
16987
17023
  const copyPastePlugin = this.instance.getPlugin("copyPasteNodes");
@@ -18840,7 +18876,7 @@ var WeaveRegisterManager = class {
18840
18876
 
18841
18877
  //#endregion
18842
18878
  //#region package.json
18843
- var version = "0.47.1";
18879
+ var version = "0.49.0";
18844
18880
 
18845
18881
  //#endregion
18846
18882
  //#region src/managers/setup.ts
@@ -18963,7 +18999,8 @@ var WeaveActionsManager = class {
18963
18999
  }
18964
19000
  triggerAction(actionName, params) {
18965
19001
  const actionsHandlers = this.instance.getActionsHandlers();
18966
- if (!actionsHandlers[actionName]) return;
19002
+ if (typeof actionName === "undefined") throw new Error("Action name is required");
19003
+ if (actionName && !actionsHandlers[actionName]) throw new Error(`Action handler with name [${actionName}] not registered`);
18967
19004
  if (typeof this.activeAction !== "undefined") this.cancelAction(this.activeAction);
18968
19005
  this.activeAction = actionName;
18969
19006
  const payload = actionsHandlers[actionName].trigger(this.cancelActionCallback(actionName), params);
@@ -19053,17 +19090,20 @@ var WeaveExportManager = class {
19053
19090
  const { format: format$2 = __inditextech_weave_types.WEAVE_EXPORT_FORMATS.PNG, padding = 0, pixelRatio = 1, backgroundColor = __inditextech_weave_types.WEAVE_EXPORT_BACKGROUND_COLOR } = options;
19054
19091
  const stage = this.instance.getStage();
19055
19092
  const mainLayer = this.instance.getMainLayer();
19056
- const originalScale = stage.scale();
19093
+ const originalPosition = {
19094
+ x: stage.x(),
19095
+ y: stage.y()
19096
+ };
19097
+ const originalScale = {
19098
+ x: stage.scaleX(),
19099
+ y: stage.scaleY()
19100
+ };
19057
19101
  stage.scale({
19058
19102
  x: 1,
19059
19103
  y: 1
19060
19104
  });
19061
- const realNodes = nodes.map((node) => {
19062
- if (node.getAttrs().nodeId) return stage.findOne(`#${node.getAttrs().nodeId}`);
19063
- return node;
19064
- }).filter((node) => typeof node !== "undefined");
19065
19105
  if (mainLayer) {
19066
- const bounds = getBoundingBox(stage, boundingNodes(realNodes));
19106
+ const bounds = getExportBoundingBox(stage, boundingNodes(nodes));
19067
19107
  const scaleX = stage.scaleX();
19068
19108
  const scaleY = stage.scaleY();
19069
19109
  const unscaledBounds = {
@@ -19082,7 +19122,7 @@ var WeaveExportManager = class {
19082
19122
  fill: backgroundColor
19083
19123
  });
19084
19124
  exportGroup.add(background);
19085
- for (const node of realNodes) {
19125
+ for (const node of nodes) {
19086
19126
  const clonedNode = node.clone({ id: v4_default() });
19087
19127
  const absPos = node.getAbsolutePosition();
19088
19128
  clonedNode.absolutePosition({
@@ -19103,7 +19143,9 @@ var WeaveExportManager = class {
19103
19143
  quality: options.quality ?? 1,
19104
19144
  callback: (img) => {
19105
19145
  exportGroup.destroy();
19146
+ stage.position(originalPosition);
19106
19147
  stage.scale(originalScale);
19148
+ stage.batchDraw();
19107
19149
  resolve(img);
19108
19150
  }
19109
19151
  });
@@ -19563,14 +19605,6 @@ var Weave = class {
19563
19605
  }
19564
19606
  };
19565
19607
 
19566
- //#endregion
19567
- //#region src/actions/selection-tool/constants.ts
19568
- const SELECTION_TOOL_ACTION_NAME = "selectionTool";
19569
- const SELECTION_TOOL_STATE = {
19570
- ["IDLE"]: "idle",
19571
- ["SELECTING"]: "selection"
19572
- };
19573
-
19574
19608
  //#endregion
19575
19609
  //#region src/nodes/stage/stage.ts
19576
19610
  var WeaveStageNode = class extends WeaveNode {
@@ -20382,7 +20416,7 @@ var WeaveTextNode = class extends WeaveNode {
20382
20416
  tr.nodes([textNode]);
20383
20417
  tr.show();
20384
20418
  }
20385
- this.instance.triggerAction("selectionTool");
20419
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
20386
20420
  }
20387
20421
  stage.container().tabIndex = 1;
20388
20422
  stage.container().click();
@@ -20461,7 +20495,7 @@ var WeaveImageToolAction = class extends WeaveAction {
20461
20495
  if (window.weaveDragImageURL) {
20462
20496
  this.instance.getStage().setPointersPositions(e);
20463
20497
  const position = this.instance.getStage().getRelativePointerPosition();
20464
- this.instance.triggerAction("imageTool", {
20498
+ this.instance.triggerAction(IMAGE_TOOL_ACTION_NAME, {
20465
20499
  imageURL: window.weaveDragImageURL,
20466
20500
  position
20467
20501
  });
@@ -20637,7 +20671,7 @@ var WeaveImageToolAction = class extends WeaveAction {
20637
20671
  if (selectionPlugin) {
20638
20672
  const node = stage.findOne(`#${this.imageId}`);
20639
20673
  if (node) selectionPlugin.setSelectedNodes([node]);
20640
- this.instance.triggerAction("selectionTool");
20674
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
20641
20675
  }
20642
20676
  stage.container().style.cursor = "default";
20643
20677
  this.initialCursor = null;
@@ -21349,7 +21383,7 @@ var WeaveImageNode = class extends WeaveNode {
21349
21383
  }
21350
21384
  }
21351
21385
  getImageToolAction() {
21352
- const imageToolAction = this.instance.getActionHandler("imageTool");
21386
+ const imageToolAction = this.instance.getActionHandler(IMAGE_TOOL_ACTION_NAME);
21353
21387
  if (!imageToolAction) throw new Error("Image Tool action not found");
21354
21388
  return imageToolAction;
21355
21389
  }
@@ -21710,7 +21744,7 @@ var WeaveFrameNode = class extends WeaveNode {
21710
21744
  const text = new konva.default.Text({
21711
21745
  id: `${id}-title`,
21712
21746
  x: 0,
21713
- width: props.frameWidth / stage.scaleX(),
21747
+ width: props.frameWidth,
21714
21748
  fontSize: fontSize / stage.scaleX(),
21715
21749
  fontFamily,
21716
21750
  fontStyle,
@@ -21786,6 +21820,16 @@ var WeaveFrameNode = class extends WeaveNode {
21786
21820
  listening: false,
21787
21821
  draggable: false
21788
21822
  });
21823
+ frame.getExportClientRect = (config) => {
21824
+ const textBox = text.getClientRect(config);
21825
+ const containerAreaBox = containerArea.getClientRect(config);
21826
+ return {
21827
+ x: textBox.x,
21828
+ y: textBox.y,
21829
+ width: containerAreaBox.width,
21830
+ height: containerAreaBox.height + textBox.height
21831
+ };
21832
+ };
21789
21833
  frame.getClientRect = (config) => {
21790
21834
  return containerArea.getClientRect(config);
21791
21835
  };
@@ -21804,7 +21848,7 @@ var WeaveFrameNode = class extends WeaveNode {
21804
21848
  this.instance.addEventListener("onZoomChange", () => {
21805
21849
  const stage$1 = this.instance.getStage();
21806
21850
  text.fontSize(fontSize / stage$1.scaleX());
21807
- text.width(props.frameWidth / stage$1.scaleX());
21851
+ text.width(props.frameWidth);
21808
21852
  const textMeasures$1 = text.measureSize(text.getAttrs().text ?? "");
21809
21853
  const textHeight$1 = textMeasures$1.height + 2 * titleMargin / stage$1.scaleX();
21810
21854
  text.y(-textHeight$1);
@@ -22204,13 +22248,22 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
22204
22248
  }
22205
22249
  fitToScreen() {
22206
22250
  if (!this.enabled) return;
22251
+ const stage = this.instance.getStage();
22207
22252
  const mainLayer = this.instance.getMainLayer();
22208
22253
  if (!mainLayer) return;
22254
+ const container = stage.container();
22255
+ const rect = container.getBoundingClientRect();
22256
+ const containerWidth = rect.width;
22257
+ const containerHeight = rect.height;
22258
+ const centerPoint = {
22259
+ x: containerWidth / 2,
22260
+ y: containerHeight / 2
22261
+ };
22209
22262
  if (mainLayer?.getChildren().length === 0) {
22263
+ stage.position(centerPoint);
22210
22264
  this.setZoom(this.config.zoomSteps[this.defaultStep]);
22211
22265
  return;
22212
22266
  }
22213
- const stage = this.instance.getStage();
22214
22267
  stage.scale({
22215
22268
  x: 1,
22216
22269
  y: 1
@@ -22222,6 +22275,11 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
22222
22275
  let realNodes = mainLayer.getChildren();
22223
22276
  realNodes = realNodes.filter((node) => typeof node.getAttrs().visible === "undefined" || node.getAttrs().visible);
22224
22277
  const bounds = getBoundingBox(stage, realNodes);
22278
+ if (bounds.width === 0 || bounds.height === 0) {
22279
+ stage.position(centerPoint);
22280
+ this.setZoom(this.config.zoomSteps[this.defaultStep]);
22281
+ return;
22282
+ }
22225
22283
  const stageWidth = stage.width();
22226
22284
  const stageHeight = stage.height();
22227
22285
  const scaleX = (stageWidth - this.config.fitToScreen.padding * 2) / bounds.width;
@@ -22246,30 +22304,13 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
22246
22304
  if (!selectionPlugin) return;
22247
22305
  const nodes = selectionPlugin.getTransformer().getNodes();
22248
22306
  if (nodes.length === 0) return;
22249
- let zoomTransformer = stage.findOne("#zoomTransformer");
22250
- if (!zoomTransformer) {
22251
- zoomTransformer = new konva.default.Transformer({
22252
- id: "zoomTransformer",
22253
- clearBeforeDraw: true,
22254
- resizeEnabled: false,
22255
- ignoreStroke: true,
22256
- rotateEnabled: false,
22257
- enabledAnchors: [],
22258
- shouldOverdrawWholeArea: true,
22259
- scaleX: stage.scaleX(),
22260
- scaleY: stage.scaleY()
22261
- });
22262
- const mainLayer = this.instance.getMainLayer();
22263
- mainLayer?.add(zoomTransformer);
22264
- }
22265
22307
  this.setZoom(1, false);
22266
22308
  stage.setAttrs({
22267
22309
  x: 0,
22268
22310
  y: 0
22269
22311
  });
22270
- zoomTransformer.setNodes(selectionPlugin.getTransformer().getNodes());
22271
- zoomTransformer.forceUpdate();
22272
- const box = zoomTransformer.__getNodeRect();
22312
+ const box = getBoundingBox(stage, selectionPlugin.getTransformer().getNodes());
22313
+ if (box.width === 0 || box.height === 0) return;
22273
22314
  const stageBox = {
22274
22315
  width: stage.width(),
22275
22316
  height: stage.height()
@@ -22294,7 +22335,6 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
22294
22335
  y: stageY
22295
22336
  });
22296
22337
  this.setZoom(scale, false);
22297
- zoomTransformer.destroy();
22298
22338
  }
22299
22339
  enable() {
22300
22340
  this.enabled = true;
@@ -22582,7 +22622,7 @@ var WeaveFitToSelectionToolAction = class extends WeaveAction {
22582
22622
  }
22583
22623
  cleanup() {
22584
22624
  const stage = this.instance.getStage();
22585
- this.instance.triggerAction(this.previousAction);
22625
+ if (this.previousAction) this.instance.triggerAction(this.previousAction);
22586
22626
  stage.container().style.cursor = "default";
22587
22627
  }
22588
22628
  };
@@ -23424,7 +23464,7 @@ var WeavePenToolAction = class extends WeaveAction {
23424
23464
  if (selectionPlugin) {
23425
23465
  const node = stage.findOne(`#${this.lineId}`);
23426
23466
  if (node) selectionPlugin.setSelectedNodes([node]);
23427
- this.instance.triggerAction("selectionTool");
23467
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
23428
23468
  }
23429
23469
  stage.container().style.cursor = "default";
23430
23470
  this.initialCursor = null;
@@ -23504,6 +23544,7 @@ var WeaveBrushToolAction = class extends WeaveAction {
23504
23544
  stage.on("pointerdown touchstart", handlePointerDown);
23505
23545
  const handlePointerMove = (e) => {
23506
23546
  if (this.state !== BRUSH_TOOL_STATE.DEFINE_STROKE) return;
23547
+ stage.container().style.cursor = "crosshair";
23507
23548
  const pointPressure = this.getPointPressure(e);
23508
23549
  this.handleMovement(pointPressure);
23509
23550
  e.evt.stopPropagation();
@@ -23617,9 +23658,10 @@ var WeaveBrushToolAction = class extends WeaveAction {
23617
23658
  });
23618
23659
  const realNode = this.instance.getStage().findOne(`#${tempStroke.getAttrs().id}`);
23619
23660
  if (realNode) realNode.destroy();
23620
- this.instance.addNode(nodeHandler.serialize(tempStroke), this.container?.getAttrs().id);
23661
+ if (tempStroke.getAttrs().strokeElements.length >= 3) this.instance.addNode(nodeHandler.serialize(tempStroke), this.container?.getAttrs().id);
23621
23662
  }
23622
23663
  this.clickPoint = null;
23664
+ stage.container().style.cursor = "crosshair";
23623
23665
  stage.container().tabIndex = 1;
23624
23666
  stage.container().focus();
23625
23667
  this.setState(BRUSH_TOOL_STATE.IDLE);
@@ -23651,7 +23693,7 @@ var WeaveBrushToolAction = class extends WeaveAction {
23651
23693
  if (selectionPlugin) {
23652
23694
  const node = stage.findOne(`#${this.strokeId}`);
23653
23695
  if (node) selectionPlugin.setSelectedNodes([node]);
23654
- this.instance.triggerAction("selectionTool");
23696
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
23655
23697
  }
23656
23698
  this.clickPoint = null;
23657
23699
  this.setState(BRUSH_TOOL_STATE.INACTIVE);
@@ -24207,7 +24249,7 @@ var WeaveArrowToolAction = class extends WeaveAction {
24207
24249
  if (selectionPlugin) {
24208
24250
  const node = stage.findOne(`#${this.arrowId}`);
24209
24251
  if (node) selectionPlugin.setSelectedNodes([node]);
24210
- this.instance.triggerAction("selectionTool");
24252
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
24211
24253
  }
24212
24254
  stage.container().style.cursor = "default";
24213
24255
  this.initialCursor = null;
@@ -24525,7 +24567,7 @@ var WeaveFrameToolAction = class extends WeaveAction {
24525
24567
  if (selectionPlugin) {
24526
24568
  const node = stage.findOne(`#${this.frameId}-selector-area`);
24527
24569
  if (node) selectionPlugin.setSelectedNodes([node]);
24528
- this.instance.triggerAction("selectionTool");
24570
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
24529
24571
  }
24530
24572
  this.frameId = null;
24531
24573
  this.container = void 0;
@@ -24555,12 +24597,13 @@ var WeaveExportStageToolAction = class extends WeaveAction {
24555
24597
  }
24556
24598
  async exportStage(boundingNodes) {
24557
24599
  const mainLayer = this.instance.getMainLayer();
24558
- const img = await this.instance.exportNodes(mainLayer?.getChildren() ?? [], boundingNodes, this.options);
24559
- const link = document.createElement("a");
24560
- link.href = img.src;
24561
- link.download = `${v4_default()}${__inditextech_weave_types.WEAVE_EXPORT_FILE_FORMAT[this.options.format ?? __inditextech_weave_types.WEAVE_EXPORT_FORMATS.PNG]}`;
24562
- link.click();
24563
- this.cancelAction?.();
24600
+ const img = await this.instance.exportNodes(
24601
+ // mainLayer?.find('.node') ?? [],
24602
+ mainLayer?.getChildren() ?? [],
24603
+ boundingNodes,
24604
+ this.options
24605
+ );
24606
+ return img;
24564
24607
  }
24565
24608
  async trigger(cancelAction, { boundingNodes, options }) {
24566
24609
  if (!this.instance) throw new Error("Instance not defined");
@@ -24572,14 +24615,16 @@ var WeaveExportStageToolAction = class extends WeaveAction {
24572
24615
  ...this.defaultFormatOptions,
24573
24616
  ...options
24574
24617
  };
24575
- await this.exportStage(boundingNodes ?? ((nodes) => nodes));
24618
+ const img = await this.exportStage(boundingNodes ?? ((nodes) => nodes));
24619
+ this.cancelAction?.();
24620
+ return img;
24576
24621
  }
24577
24622
  cleanup() {
24578
24623
  const stage = this.instance.getStage();
24579
24624
  stage.container().tabIndex = 0;
24580
24625
  stage.container().click();
24581
24626
  stage.container().focus();
24582
- this.instance.triggerAction("selectionTool");
24627
+ this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
24583
24628
  }
24584
24629
  };
24585
24630
 
@@ -24604,13 +24649,9 @@ var WeaveExportNodesToolAction = class extends WeaveAction {
24604
24649
  }
24605
24650
  async exportNodes(nodes, boundingNodes) {
24606
24651
  const img = await this.instance.exportNodes(nodes, boundingNodes ?? ((nodes$1) => nodes$1), this.options);
24607
- const link = document.createElement("a");
24608
- link.href = img.src;
24609
- link.download = `${v4_default()}${__inditextech_weave_types.WEAVE_EXPORT_FILE_FORMAT[this.options.format ?? __inditextech_weave_types.WEAVE_EXPORT_FORMATS.PNG]}`;
24610
- link.click();
24611
- this.cancelAction?.();
24652
+ return img;
24612
24653
  }
24613
- async trigger(cancelAction, { nodes, boundingNodes, options, triggerSelectionTool = true, download = true }) {
24654
+ async trigger(cancelAction, { nodes, boundingNodes, options, triggerSelectionTool = true }) {
24614
24655
  if (!this.instance) throw new Error("Instance not defined");
24615
24656
  const stage = this.instance.getStage();
24616
24657
  stage.container().tabIndex = 1;
@@ -24621,20 +24662,16 @@ var WeaveExportNodesToolAction = class extends WeaveAction {
24621
24662
  ...this.defaultFormatOptions,
24622
24663
  ...options
24623
24664
  };
24624
- if (!download) {
24625
- const img = await this.instance.exportNodes(nodes, boundingNodes ?? ((nodes$1) => nodes$1), this.options);
24626
- const base64URL = this.instance.imageToBase64(img, this.options.format ?? "image/png");
24627
- this.cancelAction?.();
24628
- return base64URL;
24629
- }
24630
- await this.exportNodes(nodes, boundingNodes ?? ((nodes$1) => nodes$1));
24665
+ const img = await this.exportNodes(nodes, boundingNodes ?? ((nodes$1) => nodes$1));
24666
+ this.cancelAction?.();
24667
+ return img;
24631
24668
  }
24632
24669
  cleanup() {
24633
24670
  const stage = this.instance.getStage();
24634
24671
  stage.container().tabIndex = 0;
24635
24672
  stage.container().click();
24636
24673
  stage.container().focus();
24637
- if (this.triggerSelectionTool) this.instance.triggerAction("selectionTool");
24674
+ if (this.triggerSelectionTool) this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
24638
24675
  }
24639
24676
  };
24640
24677
 
@@ -24879,7 +24916,7 @@ var WeaveAlignNodesToolAction = class extends WeaveAction {
24879
24916
  this.alignNodes(alignTo);
24880
24917
  }
24881
24918
  cleanup() {
24882
- if (this.triggerSelectionTool) this.instance.triggerAction("selectionTool");
24919
+ if (this.triggerSelectionTool) this.instance.triggerAction(SELECTION_TOOL_ACTION_NAME);
24883
24920
  this.setState(ALIGN_NODES_TOOL_STATE.IDLE);
24884
24921
  }
24885
24922
  };
@@ -24900,6 +24937,7 @@ const WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO = 4;
24900
24937
  const WEAVE_GRID_DEFAULT_RADIUS = 1;
24901
24938
  const WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO = 2;
24902
24939
  const WEAVE_GRID_DEFAULT_MAJOR_EVERY = 10;
24940
+ const WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS = 300;
24903
24941
  const WEAVE_GRID_LAYER_ID = "gridLayer";
24904
24942
 
24905
24943
  //#endregion
@@ -24916,6 +24954,7 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
24916
24954
  gridColor: WEAVE_GRID_DEFAULT_COLOR,
24917
24955
  gridOriginColor: WEAVE_GRID_DEFAULT_ORIGIN_COLOR,
24918
24956
  gridSize: WEAVE_GRID_DEFAULT_SIZE,
24957
+ gridDotMaxDotsPerAxis: WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS,
24919
24958
  ...config
24920
24959
  };
24921
24960
  }
@@ -24950,12 +24989,12 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
24950
24989
  });
24951
24990
  stage.on("pointerdown", (e) => {
24952
24991
  const activeAction = this.instance.getActiveAction();
24953
- if (e && e.evt.button === 0 && activeAction === "moveTool") this.moveToolActive = true;
24992
+ if (e && e.evt.button === 0 && activeAction === MOVE_TOOL_ACTION_NAME) this.moveToolActive = true;
24954
24993
  if (e && (e.evt.button === 2 || e.evt.buttons === 4)) this.isMouseMiddleButtonPressed = true;
24955
24994
  });
24956
24995
  stage.on("pointerup", (e) => {
24957
24996
  const activeAction = this.instance.getActiveAction();
24958
- if (e && e.evt.button === 0 && activeAction === "moveTool") this.moveToolActive = false;
24997
+ if (e && e.evt.button === 0 && activeAction === MOVE_TOOL_ACTION_NAME) this.moveToolActive = false;
24959
24998
  if (e && (e.evt.button === 1 || e.evt.buttons === 0)) this.isMouseMiddleButtonPressed = false;
24960
24999
  });
24961
25000
  const handleMouseMove = () => {
@@ -24994,11 +25033,11 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
24994
25033
  const snappedSpacing = baseGridSpacing * Math.pow(2, logFactor);
24995
25034
  return snappedSpacing;
24996
25035
  }
24997
- getAdjustedSpacing(startX, endX, startY, endY, baseSpacing = 50, maxDotsPerAxis = 500) {
25036
+ getAdjustedSpacing(startX, endX, startY, endY, baseSpacing = 50) {
24998
25037
  let spacing = baseSpacing;
24999
25038
  let dotCountX = Math.ceil((endX - startX) / spacing);
25000
25039
  let dotCountY = Math.ceil((endY - startY) / spacing);
25001
- while ((dotCountX > maxDotsPerAxis || dotCountY > maxDotsPerAxis) && spacing < 1e6) {
25040
+ while ((dotCountX > this.config.gridDotMaxDotsPerAxis || dotCountY > this.config.gridDotMaxDotsPerAxis) && spacing < 1e6) {
25002
25041
  spacing *= 2;
25003
25042
  dotCountX = Math.ceil((endX - startX) / spacing);
25004
25043
  dotCountY = Math.ceil((endY - startY) / spacing);
@@ -25081,13 +25120,17 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
25081
25120
  let adjustedSpacing = spacing;
25082
25121
  let dotCountX = Math.ceil((endX - startX) / adjustedSpacing);
25083
25122
  let dotCountY = Math.ceil((endY - startY) / adjustedSpacing);
25084
- const maxDotsPerAxis = 500;
25085
- while ((dotCountX > maxDotsPerAxis || dotCountY > maxDotsPerAxis) && adjustedSpacing < 1e6) {
25123
+ while ((dotCountX > this.config.gridDotMaxDotsPerAxis || dotCountY > this.config.gridDotMaxDotsPerAxis) && adjustedSpacing < 1e6) {
25086
25124
  adjustedSpacing *= 2;
25087
25125
  dotCountX = Math.ceil((endX - startX) / adjustedSpacing);
25088
25126
  dotCountY = Math.ceil((endY - startY) / adjustedSpacing);
25089
25127
  }
25090
25128
  this.getAdjustedSpacing(startX, endX, startY, endY, spacing);
25129
+ console.log({
25130
+ dotCountX,
25131
+ dotCountY,
25132
+ adjustedSpacing
25133
+ });
25091
25134
  startX = Math.floor((offsetX - margin * worldWidth) / adjustedSpacing) * adjustedSpacing;
25092
25135
  startY = Math.floor((offsetY - margin * worldHeight) / adjustedSpacing) * adjustedSpacing;
25093
25136
  const highlightEvery = this.config.gridMajorEvery ?? WEAVE_GRID_DEFAULT_MAJOR_EVERY;
@@ -25230,7 +25273,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
25230
25273
  if (this.pointers.size > 1) return;
25231
25274
  const activeAction = this.instance.getActiveAction();
25232
25275
  let enableMove = false;
25233
- if (e && (e.evt.pointerType !== "mouse" || e.evt.pointerType === "mouse" && e.evt.buttons === 1) && activeAction === "moveTool") {
25276
+ if (e && (e.evt.pointerType !== "mouse" || e.evt.pointerType === "mouse" && e.evt.buttons === 1) && activeAction === MOVE_TOOL_ACTION_NAME) {
25234
25277
  this.moveToolActive = true;
25235
25278
  enableMove = true;
25236
25279
  }
@@ -26224,6 +26267,7 @@ exports.WEAVE_FRAME_NODE_DEFAULT_CONFIG = WEAVE_FRAME_NODE_DEFAULT_CONFIG
26224
26267
  exports.WEAVE_FRAME_NODE_DEFAULT_PROPS = WEAVE_FRAME_NODE_DEFAULT_PROPS
26225
26268
  exports.WEAVE_FRAME_NODE_TYPE = WEAVE_FRAME_NODE_TYPE
26226
26269
  exports.WEAVE_GRID_DEFAULT_COLOR = WEAVE_GRID_DEFAULT_COLOR
26270
+ exports.WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS = WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS
26227
26271
  exports.WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO = WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO
26228
26272
  exports.WEAVE_GRID_DEFAULT_MAJOR_EVERY = WEAVE_GRID_DEFAULT_MAJOR_EVERY
26229
26273
  exports.WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO = WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO
@@ -26310,6 +26354,7 @@ exports.containerOverCursor = containerOverCursor
26310
26354
  exports.containsNodeDeep = containsNodeDeep
26311
26355
  exports.getBoundingBox = getBoundingBox
26312
26356
  exports.getContrastTextColor = getContrastTextColor
26357
+ exports.getExportBoundingBox = getExportBoundingBox
26313
26358
  exports.getTargetedNode = getTargetedNode
26314
26359
  exports.hasFrames = hasFrames
26315
26360
  exports.hasImages = hasImages
package/dist/sdk.d.cts CHANGED
@@ -665,7 +665,7 @@ declare class Weave {
665
665
  enablePlugin(pluginName: string): void;
666
666
  disablePlugin(pluginName: string): void;
667
667
  getActiveAction(): string | undefined;
668
- triggerAction<T, P>(actionName: string, params?: T): P | void;
668
+ triggerAction<T, P>(actionName: string, params?: T): P;
669
669
  getPropsAction(actionName: string): WeaveElementAttributes;
670
670
  updatePropsAction(actionName: string, params: WeaveElementAttributes): void;
671
671
  cancelAction(actionName: string): void;
@@ -742,6 +742,12 @@ declare function containerOverCursor(instance: Weave, ignoreNodes: Konva.Node[])
742
742
  declare function moveNodeToContainer(instance: Weave, node: Konva.Node, containerToMove: Konva.Layer | Konva.Node, invalidOriginsTypes?: string[]): boolean;
743
743
  declare function getContrastTextColor(hex: string): 'white' | 'black';
744
744
  declare function stringToColor(str: string): string;
745
+ declare function getExportBoundingBox(stage: Konva.Stage, nodes: Konva.Node[]): {
746
+ x: number;
747
+ y: number;
748
+ width: number;
749
+ height: number;
750
+ };
745
751
  declare function getBoundingBox(stage: Konva.Stage, nodes: Konva.Node[]): {
746
752
  x: number;
747
753
  y: number;
@@ -1980,7 +1986,6 @@ type WeaveExportNodesActionParams = {
1980
1986
  boundingNodes?: (nodes: Konva.Node[]) => Konva.Node[];
1981
1987
  options?: WeaveExportNodesOptions;
1982
1988
  triggerSelectionTool?: boolean;
1983
- download?: boolean;
1984
1989
  };
1985
1990
 
1986
1991
  //#endregion
@@ -1997,7 +2002,7 @@ declare class WeaveExportStageToolAction extends WeaveAction {
1997
2002
  trigger(cancelAction: () => void, {
1998
2003
  boundingNodes,
1999
2004
  options
2000
- }: WeaveExportNodesActionParams): Promise<void>;
2005
+ }: WeaveExportNodesActionParams): Promise<HTMLImageElement>;
2001
2006
  cleanup(): void;
2002
2007
  }
2003
2008
 
@@ -2025,9 +2030,8 @@ declare class WeaveExportNodesToolAction extends WeaveAction {
2025
2030
  nodes,
2026
2031
  boundingNodes,
2027
2032
  options,
2028
- triggerSelectionTool,
2029
- download
2030
- }: WeaveExportNodesActionParams): Promise<void | string>;
2033
+ triggerSelectionTool
2034
+ }: WeaveExportNodesActionParams): Promise<HTMLImageElement>;
2031
2035
  cleanup(): void;
2032
2036
  }
2033
2037
 
@@ -2107,6 +2111,7 @@ declare const WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO = 4;
2107
2111
  declare const WEAVE_GRID_DEFAULT_RADIUS = 1;
2108
2112
  declare const WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO = 2;
2109
2113
  declare const WEAVE_GRID_DEFAULT_MAJOR_EVERY = 10;
2114
+ declare const WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS = 300;
2110
2115
  declare const WEAVE_GRID_LAYER_ID = "gridLayer";
2111
2116
 
2112
2117
  //#endregion
@@ -2121,6 +2126,7 @@ type WeaveStageGridPluginConfig = {
2121
2126
  gridMajorRatio?: number;
2122
2127
  gridStroke?: number;
2123
2128
  gridDotRadius?: number;
2129
+ gridDotMaxDotsPerAxis: number;
2124
2130
  };
2125
2131
  type WeaveStageGridPluginParams = {
2126
2132
  config?: Partial<WeaveStageGridPluginConfig>;
@@ -2543,5 +2549,5 @@ declare class WeaveCopyPasteNodesPlugin extends WeavePlugin {
2543
2549
  //#endregion
2544
2550
  //# sourceMappingURL=copy-paste-nodes.d.ts.map
2545
2551
 
2546
- export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_ACTION_NAME, IMAGE_TOOL_STATE, ImageOptions, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, TextSerializable, WEAVE_ARROW_NODE_TYPE, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_NODE_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_TYPE, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_GRID_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_TYPE, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTERS_DEFAULT_PROPS, WEAVE_USER_POINTER_KEY, WEAVE_USER_SELECTION_KEY, Weave, WeaveAction, WeaveActionPropsChangeEvent, WeaveAlignNodesToolAction, WeaveAlignNodesToolActionAlignTo, WeaveAlignNodesToolActionAlignToKeys, WeaveAlignNodesToolActionState, WeaveAlignNodesToolActionStateKeys, WeaveAlignNodesToolActionTriggerParams, WeaveArrowNode, WeaveArrowNodeParams, WeaveArrowProperties, WeaveArrowToolAction, WeaveArrowToolActionOnAddedEvent, WeaveArrowToolActionOnAddingEvent, WeaveArrowToolActionState, WeaveArrowToolActionStateKeys, WeaveBrushToolAction, WeaveBrushToolActionOnAddedEvent, WeaveBrushToolActionOnAddingEvent, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveConnectedUserInfoKey, WeaveConnectedUsers, WeaveConnectedUsersChangeEvent, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginOnCopyEvent, WeaveCopyPasteNodesPluginOnPasteEvent, WeaveCopyPasteNodesPluginOnPasteExternalEvent, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveCopyPastePasteMode, WeaveCopyPastePasteModeKeys, WeaveEllipseNode, WeaveEllipseNodeParams, WeaveEllipseProperties, WeaveEllipseToolAction, WeaveEllipseToolActionOnAddedEvent, WeaveEllipseToolActionOnAddingEvent, WeaveEllipseToolActionState, WeaveEllipseToolActionStateKeys, WeaveEraserToolAction, WeaveEraserToolActionState, WeaveEraserToolActionStateKeys, WeaveExportNodesActionParams, WeaveExportNodesToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeParams, WeaveFrameProperties, WeaveFrameToolAction, WeaveFrameToolActionOnAddedEvent, WeaveFrameToolActionOnAddingEvent, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolProps, WeaveGroupNode, WeaveGroupNodeParams, WeaveGroupProperties, WeaveImageCropEndType, WeaveImageCropEndTypeKeys, WeaveImageNode, WeaveImageNodeParams, WeaveImageOnCropEndEvent, WeaveImageOnCropStartEvent, WeaveImageProperties, WeaveImageToolAction, WeaveImageToolActionOnAddedEvent, WeaveImageToolActionOnAddingEvent, WeaveImageToolActionOnEndLoadImageEvent, WeaveImageToolActionOnStartLoadImageEvent, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveLineNodeParams, WeaveLineProperties, WeaveMoveToolAction, WeaveMoveToolActionParams, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionBehaviorsConfig, WeaveNodesSelectionConfig, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginOnNodesChangeEvent, WeaveNodesSelectionPluginOnSelectionStateEvent, WeaveNodesSelectionPluginOnStageSelectionEvent, WeaveNodesSelectionPluginParams, WeaveNodesSnappingPlugin, WeaveNodesSnappingPluginConfig, WeaveNodesSnappingPluginParams, WeavePasteModel, WeavePenToolAction, WeavePenToolActionOnAddedEvent, WeavePenToolActionOnAddingEvent, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePlugin, WeaveRectangleNode, WeaveRectangleNodeParams, WeaveRectangleProperties, WeaveRectangleToolAction, WeaveRectangleToolActionOnAddedEvent, WeaveRectangleToolActionOnAddingEvent, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRegularPolygonNode, WeaveRegularPolygonNodeParams, WeaveRegularPolygonProperties, WeaveRegularPolygonToolAction, WeaveRegularPolygonToolActionOnAddedEvent, WeaveRegularPolygonToolActionOnAddingEvent, WeaveRegularPolygonToolActionState, WeaveRegularPolygonToolActionStateKeys, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginOnNodeContextMenuEvent, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropPluginOnStageDropEvent, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomPlugin, WeaveStageZoomPluginConfig, WeaveStageZoomPluginOnZoomChangeEvent, WeaveStageZoomPluginParams, WeaveStageZoomType, WeaveStageZoomTypeKeys, WeaveStarNode, WeaveStarNodeParams, WeaveStarProperties, WeaveStarToolAction, WeaveStarToolActionOnAddedEvent, WeaveStarToolActionOnAddingEvent, WeaveStarToolActionState, WeaveStarToolActionStateKeys, WeaveStore, WeaveStoreOnNodeChangeEvent, WeaveStoreOnRoomLoadedEvent, WeaveStoreOnStateChangeEvent, WeaveStoreOnUndoRedoChangeEvent, WeaveStrokeNode, WeaveStrokeNodeParams, WeaveStrokePoint, WeaveStrokeProperties, WeaveTextLayout, WeaveTextLayoutKeys, WeaveTextNode, WeaveTextNodeParams, WeaveTextProperties, WeaveTextToolAction, WeaveTextToolActionOnAddedEvent, WeaveTextToolActionOnAddingEvent, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUserPointersUIProperties, WeaveUserSelectionInfo, WeaveUserSelectionKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveUsersSelectionPlugin, WeaveUsersSelectionPluginConfig, WeaveUsersSelectionPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, clearContainerTargets, containerOverCursor, containsNodeDeep, getBoundingBox, getContrastTextColor, getTargetedNode, hasFrames, hasImages, intersectArrays, isNodeInSelection, moveNodeToContainer, resetScale, stringToColor };
2552
+ export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, ARROW_TOOL_ACTION_NAME, ARROW_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_ACTION_NAME, IMAGE_TOOL_STATE, ImageOptions, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, REGULAR_POLYGON_TOOL_ACTION_NAME, REGULAR_POLYGON_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, TextSerializable, WEAVE_ARROW_NODE_TYPE, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_DOT_MAX_DOTS_PER_AXIS, WEAVE_GRID_DEFAULT_MAJOR_DOT_RATIO, WEAVE_GRID_DEFAULT_MAJOR_EVERY, WEAVE_GRID_DEFAULT_MAJOR_LINE_RATIO, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_RADIUS, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_STROKE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_NODE_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_TYPE, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_GRID_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_TYPE, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTERS_DEFAULT_PROPS, WEAVE_USER_POINTER_KEY, WEAVE_USER_SELECTION_KEY, Weave, WeaveAction, WeaveActionPropsChangeEvent, WeaveAlignNodesToolAction, WeaveAlignNodesToolActionAlignTo, WeaveAlignNodesToolActionAlignToKeys, WeaveAlignNodesToolActionState, WeaveAlignNodesToolActionStateKeys, WeaveAlignNodesToolActionTriggerParams, WeaveArrowNode, WeaveArrowNodeParams, WeaveArrowProperties, WeaveArrowToolAction, WeaveArrowToolActionOnAddedEvent, WeaveArrowToolActionOnAddingEvent, WeaveArrowToolActionState, WeaveArrowToolActionStateKeys, WeaveBrushToolAction, WeaveBrushToolActionOnAddedEvent, WeaveBrushToolActionOnAddingEvent, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveConnectedUserInfoKey, WeaveConnectedUsers, WeaveConnectedUsersChangeEvent, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginOnCopyEvent, WeaveCopyPasteNodesPluginOnPasteEvent, WeaveCopyPasteNodesPluginOnPasteExternalEvent, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveCopyPastePasteMode, WeaveCopyPastePasteModeKeys, WeaveEllipseNode, WeaveEllipseNodeParams, WeaveEllipseProperties, WeaveEllipseToolAction, WeaveEllipseToolActionOnAddedEvent, WeaveEllipseToolActionOnAddingEvent, WeaveEllipseToolActionState, WeaveEllipseToolActionStateKeys, WeaveEraserToolAction, WeaveEraserToolActionState, WeaveEraserToolActionStateKeys, WeaveExportNodesActionParams, WeaveExportNodesToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeParams, WeaveFrameProperties, WeaveFrameToolAction, WeaveFrameToolActionOnAddedEvent, WeaveFrameToolActionOnAddingEvent, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolProps, WeaveGroupNode, WeaveGroupNodeParams, WeaveGroupProperties, WeaveImageCropEndType, WeaveImageCropEndTypeKeys, WeaveImageNode, WeaveImageNodeParams, WeaveImageOnCropEndEvent, WeaveImageOnCropStartEvent, WeaveImageProperties, WeaveImageToolAction, WeaveImageToolActionOnAddedEvent, WeaveImageToolActionOnAddingEvent, WeaveImageToolActionOnEndLoadImageEvent, WeaveImageToolActionOnStartLoadImageEvent, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveLineNodeParams, WeaveLineProperties, WeaveMoveToolAction, WeaveMoveToolActionParams, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionBehaviorsConfig, WeaveNodesSelectionConfig, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginOnNodesChangeEvent, WeaveNodesSelectionPluginOnSelectionStateEvent, WeaveNodesSelectionPluginOnStageSelectionEvent, WeaveNodesSelectionPluginParams, WeaveNodesSnappingPlugin, WeaveNodesSnappingPluginConfig, WeaveNodesSnappingPluginParams, WeavePasteModel, WeavePenToolAction, WeavePenToolActionOnAddedEvent, WeavePenToolActionOnAddingEvent, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePlugin, WeaveRectangleNode, WeaveRectangleNodeParams, WeaveRectangleProperties, WeaveRectangleToolAction, WeaveRectangleToolActionOnAddedEvent, WeaveRectangleToolActionOnAddingEvent, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRegularPolygonNode, WeaveRegularPolygonNodeParams, WeaveRegularPolygonProperties, WeaveRegularPolygonToolAction, WeaveRegularPolygonToolActionOnAddedEvent, WeaveRegularPolygonToolActionOnAddingEvent, WeaveRegularPolygonToolActionState, WeaveRegularPolygonToolActionStateKeys, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginOnNodeContextMenuEvent, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropPluginOnStageDropEvent, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomPlugin, WeaveStageZoomPluginConfig, WeaveStageZoomPluginOnZoomChangeEvent, WeaveStageZoomPluginParams, WeaveStageZoomType, WeaveStageZoomTypeKeys, WeaveStarNode, WeaveStarNodeParams, WeaveStarProperties, WeaveStarToolAction, WeaveStarToolActionOnAddedEvent, WeaveStarToolActionOnAddingEvent, WeaveStarToolActionState, WeaveStarToolActionStateKeys, WeaveStore, WeaveStoreOnNodeChangeEvent, WeaveStoreOnRoomLoadedEvent, WeaveStoreOnStateChangeEvent, WeaveStoreOnUndoRedoChangeEvent, WeaveStrokeNode, WeaveStrokeNodeParams, WeaveStrokePoint, WeaveStrokeProperties, WeaveTextLayout, WeaveTextLayoutKeys, WeaveTextNode, WeaveTextNodeParams, WeaveTextProperties, WeaveTextToolAction, WeaveTextToolActionOnAddedEvent, WeaveTextToolActionOnAddingEvent, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUserPointersUIProperties, WeaveUserSelectionInfo, WeaveUserSelectionKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveUsersSelectionPlugin, WeaveUsersSelectionPluginConfig, WeaveUsersSelectionPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, clearContainerTargets, containerOverCursor, containsNodeDeep, getBoundingBox, getContrastTextColor, getExportBoundingBox, getTargetedNode, hasFrames, hasImages, intersectArrays, isNodeInSelection, moveNodeToContainer, resetScale, stringToColor };
2547
2553
  //# sourceMappingURL=sdk.d.cts.map