@inditextech/weave-sdk 5.3.0 → 5.4.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/types.js CHANGED
@@ -4676,7 +4676,15 @@ function handleClickOrTap(ctx, e) {
4676
4676
  nodeTargeted.dblClick();
4677
4677
  return;
4678
4678
  }
4679
- if (e.evt.ctrlKey || e.evt.metaKey) return;
4679
+ const isCtrlOrCmdPressed = e.evt.ctrlKey || e.evt.metaKey;
4680
+ if (!e.evt.shiftKey) {
4681
+ const wasSelectedBeforeThisClick = tr.nodes().findIndex((node) => node.getAttrs().id === nodeTargeted.getAttrs().id) !== -1;
4682
+ nodeTargeted.click({
4683
+ wasSelected: wasSelectedBeforeThisClick,
4684
+ ctrlOrMetaPressed: isCtrlOrCmdPressed
4685
+ });
4686
+ }
4687
+ if (isCtrlOrCmdPressed) return;
4680
4688
  if (!metaPressed) {
4681
4689
  tr.nodes([nodeTargeted]);
4682
4690
  tr.show();
@@ -5945,6 +5953,7 @@ const augmentKonvaNodeClass = (config) => {
5945
5953
  Konva.Node.prototype.closeCrop = function() {};
5946
5954
  Konva.Node.prototype.resetCrop = function() {};
5947
5955
  Konva.Node.prototype.dblClick = function() {};
5956
+ Konva.Node.prototype.click = function() {};
5948
5957
  Konva.Node.prototype.allowedAnchors = function() {
5949
5958
  return [];
5950
5959
  };
@@ -9457,7 +9466,7 @@ var WeaveRegisterManager = class {
9457
9466
  };
9458
9467
  //#endregion
9459
9468
  //#region package.json
9460
- var version = "5.3.0";
9469
+ var version = "5.4.0";
9461
9470
  //#endregion
9462
9471
  //#region src/managers/setup.ts
9463
9472
  var WeaveSetupManager = class {
@@ -13430,8 +13439,13 @@ const WEAVE_TEXT_NODE_DEFAULT_CONFIG = {
13430
13439
  transform: { ...WEAVE_NODES_SELECTION_DEFAULT_CONFIG.selection },
13431
13440
  outline: { enabled: false },
13432
13441
  cursor: { color: "#000000" },
13433
- edition: { borderSize: 2 }
13442
+ edition: { borderSize: 2 },
13443
+ link: {
13444
+ defaultColor: "#1155ccff",
13445
+ hoverColor: "#3d7be0ff"
13446
+ }
13434
13447
  };
13448
+ const WEAVE_TEXT_LINK_ALLOWED_PROTOCOLS = ["http:", "https:"];
13435
13449
  const TEXT_LAYOUT = {
13436
13450
  ["SMART"]: "smart",
13437
13451
  ["AUTO_ALL"]: "auto-all",
@@ -13440,6 +13454,21 @@ const TEXT_LAYOUT = {
13440
13454
  };
13441
13455
  //#endregion
13442
13456
  //#region src/nodes/text/text.ts
13457
+ /**
13458
+ * Validates that a link is an absolute http(s) URL. Used both by the zod
13459
+ * schema (getSchema()) and defensively again at click-time (setLink() and
13460
+ * the pointerclick handler), since the value is user-authored content
13461
+ * rendered and clicked on by other collaborators — schemes like
13462
+ * `javascript:` or `data:` must never reach `window.open`.
13463
+ */
13464
+ function isValidTextLink(value) {
13465
+ try {
13466
+ const url = new URL(value);
13467
+ return WEAVE_TEXT_LINK_ALLOWED_PROTOCOLS.includes(url.protocol);
13468
+ } catch {
13469
+ return false;
13470
+ }
13471
+ }
13443
13472
  var WeaveTextNode = class extends WeaveNode {
13444
13473
  config;
13445
13474
  nodeType = WEAVE_TEXT_NODE_TYPE;
@@ -13503,6 +13532,8 @@ var WeaveTextNode = class extends WeaveNode {
13503
13532
  }
13504
13533
  }
13505
13534
  onRender(props) {
13535
+ const linkPreviousFill = props.link ? props.linkPreviousFill ?? props.fill : props.linkPreviousFill;
13536
+ const linkPreviousTextDecoration = props.link ? props.linkPreviousTextDecoration ?? props.textDecoration : props.linkPreviousTextDecoration;
13506
13537
  const text = new Konva.Text({
13507
13538
  ...props,
13508
13539
  name: "node",
@@ -13512,6 +13543,12 @@ var WeaveTextNode = class extends WeaveNode {
13512
13543
  stroke: this.config.outline.color,
13513
13544
  strokeWidth: this.config.outline.width,
13514
13545
  fillAfterStrokeEnabled: true
13546
+ },
13547
+ ...props.link && {
13548
+ textDecoration: "underline",
13549
+ fill: this.config.link.defaultColor,
13550
+ linkPreviousFill,
13551
+ linkPreviousTextDecoration
13515
13552
  }
13516
13553
  });
13517
13554
  this.setupDefaultNodeAugmentation(text);
@@ -13570,6 +13607,7 @@ var WeaveTextNode = class extends WeaveNode {
13570
13607
  this.triggerEditMode(text);
13571
13608
  };
13572
13609
  text.setAttr("triggerEditMode", this.triggerEditMode.bind(this));
13610
+ this.setupLinkBehavior(text);
13573
13611
  let actualAnchor = void 0;
13574
13612
  text.on("transformstart", (e) => {
13575
13613
  const isCtrlOrMetaPressed = e.evt.ctrlKey || e.evt.metaKey;
@@ -13666,6 +13704,9 @@ var WeaveTextNode = class extends WeaveNode {
13666
13704
  return text;
13667
13705
  }
13668
13706
  onUpdate(nodeInstance, nextProps) {
13707
+ const isLinked = Boolean(nextProps.link);
13708
+ const linkPreviousFill = nextProps.link ? nextProps.linkPreviousFill ?? nextProps.fill : nextProps.linkPreviousFill;
13709
+ const linkPreviousTextDecoration = nextProps.link ? nextProps.linkPreviousTextDecoration ?? nextProps.textDecoration : nextProps.linkPreviousTextDecoration;
13669
13710
  nodeInstance.setAttrs({
13670
13711
  ...nextProps,
13671
13712
  ...!this.config.outline.enabled && { strokeEnabled: false },
@@ -13674,6 +13715,13 @@ var WeaveTextNode = class extends WeaveNode {
13674
13715
  stroke: this.config.outline.color,
13675
13716
  strokeWidth: this.config.outline.width,
13676
13717
  fillAfterStrokeEnabled: true
13718
+ },
13719
+ link: nextProps.link,
13720
+ linkPreviousFill: isLinked ? linkPreviousFill : void 0,
13721
+ linkPreviousTextDecoration: isLinked ? linkPreviousTextDecoration : void 0,
13722
+ ...isLinked && {
13723
+ textDecoration: "underline",
13724
+ fill: this.config.link.defaultColor
13677
13725
  }
13678
13726
  });
13679
13727
  let width = nextProps.width;
@@ -13715,6 +13763,10 @@ var WeaveTextNode = class extends WeaveNode {
13715
13763
  delete cleanedAttrs.overridesMouseControl;
13716
13764
  delete cleanedAttrs.shouldUpdateOnTransform;
13717
13765
  delete cleanedAttrs.dragBoundFunc;
13766
+ if (cleanedAttrs.link) {
13767
+ if (typeof cleanedAttrs.linkPreviousFill === "string") cleanedAttrs.fill = cleanedAttrs.linkPreviousFill;
13768
+ if (typeof cleanedAttrs.linkPreviousTextDecoration === "string") cleanedAttrs.textDecoration = cleanedAttrs.linkPreviousTextDecoration;
13769
+ }
13718
13770
  return {
13719
13771
  key: attrs.id ?? "",
13720
13772
  type: attrs.nodeType,
@@ -14120,6 +14172,94 @@ var WeaveTextNode = class extends WeaveNode {
14120
14172
  this.createTextAreaDOM(textNode, areaPosition);
14121
14173
  this.instance.emitEvent("onEnterTextNodeEditMode", { node: textNode });
14122
14174
  }
14175
+ /**
14176
+ * Wires the hover colour swap, link cursor and click-to-open behaviour for
14177
+ * a rendered text node. Runs on top of (not instead of) the generic
14178
+ * selection-hover-halo handling in setupDefaultNodeEvents()/node.ts, the
14179
+ * same way connector.ts layers its own handleMouseover/handleMouseout.
14180
+ */
14181
+ setupLinkBehavior(text) {
14182
+ text.handleMouseover = () => {
14183
+ if (!text.getAttrs().link) return;
14184
+ text.fill(this.config.link.hoverColor);
14185
+ text.getLayer()?.batchDraw();
14186
+ };
14187
+ text.handleMouseout = () => {
14188
+ if (!text.getAttrs().link) return;
14189
+ text.fill(this.config.link.defaultColor);
14190
+ text.getLayer()?.batchDraw();
14191
+ };
14192
+ text.defineMousePointer = () => {
14193
+ return text.getAttrs().link ? "pointer" : "default";
14194
+ };
14195
+ let linkClickTimeout;
14196
+ const clearLinkClickTimeout = () => {
14197
+ if (linkClickTimeout) {
14198
+ clearTimeout(linkClickTimeout);
14199
+ linkClickTimeout = void 0;
14200
+ }
14201
+ };
14202
+ const previousDblClick = text.dblClick.bind(text);
14203
+ text.dblClick = () => {
14204
+ clearLinkClickTimeout();
14205
+ previousDblClick();
14206
+ };
14207
+ text.click = ({ wasSelected, ctrlOrMetaPressed }) => {
14208
+ if (!text.getAttrs().link) return;
14209
+ if (ctrlOrMetaPressed) {
14210
+ clearLinkClickTimeout();
14211
+ this.openTextLink(text);
14212
+ return;
14213
+ }
14214
+ if (wasSelected) {
14215
+ clearLinkClickTimeout();
14216
+ linkClickTimeout = setTimeout(() => {
14217
+ linkClickTimeout = void 0;
14218
+ if (!this.editing) this.openTextLink(text);
14219
+ }, Konva.dblClickWindow);
14220
+ }
14221
+ };
14222
+ }
14223
+ openTextLink(textNode) {
14224
+ if (this.instance.isServerSide()) return;
14225
+ const link = textNode.getAttrs().link;
14226
+ if (typeof link !== "string" || !isValidTextLink(link)) return;
14227
+ window.open(link, "_blank", "noopener,noreferrer");
14228
+ }
14229
+ /**
14230
+ * Public API to read/set/remove the URL a text node links to. Setting an
14231
+ * invalid or non-http(s) URL is a no-op (see isValidTextLink()).
14232
+ *
14233
+ * The node's real fill/textDecoration are captured once into
14234
+ * `linkPreviousFill`/`linkPreviousTextDecoration` the first time a link is
14235
+ * rendered (see onRender()/onUpdate()) and restored by serialize()
14236
+ * whenever the node is re-serialized while linked — so they survive any
14237
+ * number of resizes/drags/edits while the link is active. removeLink()
14238
+ * relies on that: it omits `link` *and* those two bookkeeping props from
14239
+ * the serialized props entirely, so all three are deleted from shared
14240
+ * state (see updateYjsMapFromObject in managers/state.ts) rather than
14241
+ * persisted as `undefined`, and the node's original fill/text decoration
14242
+ * reappear immediately.
14243
+ */
14244
+ getLink(nodeInstance) {
14245
+ const link = nodeInstance.getAttrs().link;
14246
+ return typeof link === "string" ? link : void 0;
14247
+ }
14248
+ setLink(nodeInstance, url) {
14249
+ if (!isValidTextLink(url)) return;
14250
+ const serialized = this.serialize(nodeInstance);
14251
+ serialized.props.linkPreviousFill = serialized.props.fill;
14252
+ serialized.props.linkPreviousTextDecoration = serialized.props.textDecoration;
14253
+ serialized.props.link = url;
14254
+ this.instance.updateNode(serialized);
14255
+ }
14256
+ removeLink(nodeInstance) {
14257
+ const serialized = this.serialize(nodeInstance);
14258
+ delete serialized.props.link;
14259
+ delete serialized.props.linkPreviousFill;
14260
+ delete serialized.props.linkPreviousTextDecoration;
14261
+ this.instance.updateNode(serialized);
14262
+ }
14123
14263
  onDestroyInstance() {
14124
14264
  super.onDestroyInstance();
14125
14265
  if (!this.instance.isServerSide() && this.keyPressHandler) {
@@ -14185,7 +14325,8 @@ var WeaveTextNode = class extends WeaveNode {
14185
14325
  ...props.strokeEnabled && { strokeEnabled: props.strokeEnabled },
14186
14326
  ...props.stroke && { stroke: props.stroke },
14187
14327
  ...props.strokeWidth && { strokeWidth: props.strokeWidth },
14188
- ...props.fillAfterStrokeEnabled && { fillAfterStrokeEnabled: props.fillAfterStrokeEnabled }
14328
+ ...props.fillAfterStrokeEnabled && { fillAfterStrokeEnabled: props.fillAfterStrokeEnabled },
14329
+ ...props.link && { link: props.link }
14189
14330
  } });
14190
14331
  }
14191
14332
  static updateNodeState(prevNodeState, nextProps) {
@@ -14210,7 +14351,8 @@ var WeaveTextNode = class extends WeaveNode {
14210
14351
  ...nextProps.strokeEnabled && { strokeEnabled: nextProps.strokeEnabled },
14211
14352
  ...nextProps.stroke && { stroke: nextProps.stroke },
14212
14353
  ...nextProps.strokeWidth && { strokeWidth: nextProps.strokeWidth },
14213
- ...nextProps.fillAfterStrokeEnabled && { fillAfterStrokeEnabled: nextProps.fillAfterStrokeEnabled }
14354
+ ...nextProps.fillAfterStrokeEnabled && { fillAfterStrokeEnabled: nextProps.fillAfterStrokeEnabled },
14355
+ ...nextProps.link && { link: nextProps.link }
14214
14356
  } });
14215
14357
  }
14216
14358
  static getSchema() {
@@ -14244,6 +14386,9 @@ var WeaveTextNode = class extends WeaveNode {
14244
14386
  ]).default("top").describe("Vertical alignment of the text, can be 'top', 'middle' or 'bottom'."),
14245
14387
  fill: z.string().default("#000000ff").describe("Fill color of the text in hex format with alpha channel (e.g. #RRGGBBAA)."),
14246
14388
  text: z.string().default("text").describe("The actual text content of the node."),
14389
+ link: z.string().url().refine((value) => isValidTextLink(value), { message: "Link must be an absolute http:// or https:// URL." }).optional().describe("External URL the whole text of the node links to. When set, the text is forced underlined and coloured with the configured link colours regardless of fill/textDecoration, is clickable, and opens the URL in a new tab. Only http(s) URLs are accepted. Omit/remove to make the node plain text again."),
14390
+ linkPreviousFill: z.string().optional().describe("Internal bookkeeping: the fill colour the node had right before a link was set, captured automatically so it can be restored when the link is removed. Managed automatically — do not set directly."),
14391
+ linkPreviousTextDecoration: z.string().optional().describe("Internal bookkeeping: the textDecoration the node had right before a link was set, captured automatically so it can be restored when the link is removed. Managed automatically — do not set directly."),
14247
14392
  strokeEnabled: z.boolean().default(false).describe("Whether the text outline is enabled."),
14248
14393
  stroke: z.string().optional().default("#d6d6d6").describe("Color of the text outline in hex format with alpha channel (e.g. #RRGGBBAA)."),
14249
14394
  strokeWidth: z.number().optional().default(2).describe("Width of the text outline in pixels."),
@@ -32954,6 +33099,6 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
32954
33099
  }
32955
33100
  };
32956
33101
  //#endregion
32957
- export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_SHAPE_LABEL_EDITION_MODE, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isObject, isServer, labelId, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, sleep, spreadLabelProps, weavejsToYjsBinary };
33102
+ export { ALIGN_NODES_ALIGN_TO, ALIGN_NODES_TOOL_ACTION_NAME, ALIGN_NODES_TOOL_STATE, BRUSH_TOOL_ACTION_NAME, BRUSH_TOOL_DEFAULT_CONFIG, BRUSH_TOOL_STATE, CONNECTOR_TOOL_ACTION_NAME, CONNECTOR_TOOL_DEFAULT_CONFIG, CONNECTOR_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, DEFAULT_GUIDE_TOOL_ACTION_CONFIG, DEFAULT_SNAPPING_MANAGER_CONFIG, ELLIPSE_TOOL_ACTION_NAME, ELLIPSE_TOOL_STATE, ERASER_TOOL_ACTION_NAME, ERASER_TOOL_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_DISTANCE_NAME, GUIDE_DISTANCE_ORIGIN, GUIDE_KIND, GUIDE_NAME, GUIDE_ORIENTATION, GUIDE_STATE, GUIDE_TOOL_ACTION_NAME, GUIDE_TOOL_STATE, LINE_TOOL_ACTION_NAME, LINE_TOOL_DEFAULT_CONFIG, LINE_TOOL_STATE, MEASURE_TOOL_ACTION_NAME, MEASURE_TOOL_STATE, MOVE_ORIENTATION, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, PEN_TOOL_ACTION_NAME, PEN_TOOL_STATE, POLYGON_TOOL_ACTION_NAME, POLYGON_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, STAGE_MINIMAP_DEFAULT_CONFIG, STAR_TOOL_ACTION_NAME, STAR_TOOL_STATE, TEXT_LAYOUT, TEXT_TOOL_ACTION_NAME, TEXT_TOOL_STATE, VIDEO_TOOL_ACTION_NAME, VIDEO_TOOL_STATE, WEAVE_ARROW_NODE_TYPE, WEAVE_ARROW_TOOL_ACTION_NAME, WEAVE_ARROW_TOOL_STATE, WEAVE_COMMENTS_RENDERER_KEY, WEAVE_COMMENTS_TOOL_LAYER_ID, WEAVE_COMMENT_CREATE_ACTION, WEAVE_COMMENT_NODE_ACTION, WEAVE_COMMENT_NODE_DEFAULTS, WEAVE_COMMENT_NODE_TYPE, WEAVE_COMMENT_STATUS, WEAVE_COMMENT_TOOL_ACTION_NAME, WEAVE_COMMENT_TOOL_DEFAULT_CONFIG, WEAVE_COMMENT_TOOL_STATE, WEAVE_COMMENT_VIEW_ACTION, WEAVE_CONNECTOR_NODE_ANCHOR_ORIGIN, WEAVE_CONNECTOR_NODE_DECORATOR_TYPE, WEAVE_CONNECTOR_NODE_DEFAULT_CONFIG, WEAVE_CONNECTOR_NODE_LINE_ORIGIN, WEAVE_CONNECTOR_NODE_LINE_TYPE, WEAVE_CONNECTOR_NODE_TYPE, WEAVE_COPY_PASTE_CONFIG_DEFAULT, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_COPY_PASTE_PASTE_CATCHER_ID, WEAVE_COPY_PASTE_PASTE_MODES, WEAVE_DEFAULT_USER_INFO_FUNCTION, WEAVE_ELLIPSE_NODE_TYPE, WEAVE_FRAME_DEFAULT_BACKGROUND_COLOR, WEAVE_FRAME_NODE_DEFAULT_CONFIG, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_CONFIG, WEAVE_GRID_DOT_TYPES, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_GROUP_NODE_TYPE, WEAVE_IMAGES_TOOL_ACTION_NAME, WEAVE_IMAGES_TOOL_DEFAULT_CONFIG, WEAVE_IMAGES_TOOL_STATE, WEAVE_IMAGES_TOOL_UPLOAD_TYPE, WEAVE_IMAGE_CROP_ANCHOR_POSITION, WEAVE_IMAGE_CROP_END_TYPE, WEAVE_IMAGE_DEFAULT_CONFIG, WEAVE_IMAGE_NODE_TYPE, WEAVE_IMAGE_TOOL_ACTION_NAME, WEAVE_IMAGE_TOOL_CONFIG_DEFAULT, WEAVE_IMAGE_TOOL_STATE, WEAVE_IMAGE_TOOL_UPLOAD_TYPE, WEAVE_LAYER_NODE_TYPE, WEAVE_LINE_NODE_DEFAULT_CONFIG, WEAVE_LINE_NODE_TYPE, WEAVE_MEASURE_NODE_DEFAULT_CONFIG, WEAVE_MEASURE_NODE_TYPE, WEAVE_MEASURE_TOOL_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_DEFAULT_CONFIG, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_KEY, WEAVE_NODES_MULTI_SELECTION_FEEDBACK_PLUGIN_LAYER_ID, WEAVE_NODES_SELECTION_DEFAULT_CONFIG, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_PLUGIN_KEY, WEAVE_POLYGON_NODE_TYPE, WEAVE_POLYGON_PRESETS, WEAVE_RECTANGLE_NODE_TYPE, WEAVE_REGULAR_POLYGON_NODE_TYPE, WEAVE_SHAPE_LABEL_DEFAULTS, WEAVE_STAGE_DEFAULT_MODE, WEAVE_STAGE_DROP_AREA_KEY, WEAVE_STAGE_GRID_PLUGIN_KEY, WEAVE_STAGE_IMAGE_CROPPING_MODE, WEAVE_STAGE_KEYBOARD_MOVE_DEFAULT_CONFIG, WEAVE_STAGE_KEYBOARD_MOVE_KEY, WEAVE_STAGE_KEYBOARD_MOVE_ORIENTATION, WEAVE_STAGE_MINIMAP_KEY, WEAVE_STAGE_NODE_TYPE, WEAVE_STAGE_PANNING_DEFAULT_CONFIG, WEAVE_STAGE_PANNING_KEY, WEAVE_STAGE_PANNING_THROTTLE_MS, WEAVE_STAGE_SHAPE_LABEL_EDITION_MODE, WEAVE_STAGE_TEXT_EDITION_MODE, WEAVE_STAGE_ZOOM_DEFAULT_CONFIG, WEAVE_STAGE_ZOOM_KEY, WEAVE_STAGE_ZOOM_TYPE, WEAVE_STAR_NODE_TYPE, WEAVE_STROKE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_NODE_TYPE, WEAVE_STROKE_SINGLE_NODE_DEFAULT_CONFIG, WEAVE_STROKE_SINGLE_NODE_TIP_SIDE, WEAVE_STROKE_SINGLE_NODE_TIP_TYPE, WEAVE_STROKE_SINGLE_NODE_TYPE, WEAVE_STROKE_TOOL_ACTION_NAME, WEAVE_STROKE_TOOL_ACTION_NAME_ALIASES, WEAVE_STROKE_TOOL_DEFAULT_CONFIG, WEAVE_STROKE_TOOL_STATE, WEAVE_TEXT_LINK_ALLOWED_PROTOCOLS, WEAVE_TEXT_NODE_DEFAULT_CONFIG, WEAVE_TEXT_NODE_TYPE, WEAVE_USERS_POINTERS_CONFIG_DEFAULT_PROPS, WEAVE_USERS_POINTERS_KEY, WEAVE_USERS_PRESENCE_CONFIG_DEFAULT_PROPS, WEAVE_USERS_PRESENCE_PLUGIN_KEY, WEAVE_USERS_SELECTION_KEY, WEAVE_USER_POINTER_KEY, WEAVE_USER_PRESENCE_KEY, WEAVE_USER_SELECTION_KEY, WEAVE_VIDEO_DEFAULT_CONFIG, WEAVE_VIDEO_NODE_TYPE, Weave, WeaveAction, WeaveAlignNodesToolAction, WeaveArrowNode, WeaveArrowToolAction, WeaveBrushToolAction, WeaveCommentNode, WeaveCommentToolAction, WeaveCommentsRendererPlugin, WeaveConnectedUsersPlugin, WeaveConnectorNode, WeaveConnectorToolAction, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveEllipseNode, WeaveEllipseToolAction, WeaveEraserToolAction, WeaveExportNodesToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveGuideToolAction, WeaveImageNode, WeaveImageToolAction, WeaveImagesToolAction, WeaveLayerNode, WeaveLineNode, WeaveLineToolAction, WeaveMeasureNode, WeaveMeasureToolAction, WeaveMoveToolAction, WeaveNode, WeaveNodesMultiSelectionFeedbackPlugin, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeavePolygonNode, WeavePolygonToolAction, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRegularPolygonNode, WeaveRegularPolygonToolAction, WeaveRenderer, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageKeyboardMovePlugin, WeaveStageMinimapPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStarNode, WeaveStarToolAction, WeaveStateManipulation, WeaveStore, WeaveStrokeNode, WeaveStrokeSingleNode, WeaveStrokeToolAction, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveUsersPresencePlugin, WeaveUsersSelectionPlugin, WeaveVideoNode, WeaveVideoToolAction, WeaveZoomInToolAction, WeaveZoomOutToolAction, buildAncestorGroupIds, canComposite, clearContainerTargets, computeEllipseLabelMinSize, computePolygonLabelMinSize, computeRectangleLabelMinSize, containerOverCursor, containsNodeDeep, defaultInitialState, downscaleImageFile, downscaleImageFromURL, getBoundingBox, getDownscaleRatio, getExportBoundingBox, getImageSizeFromFile, getJSONFromYjsBinary, getSelectedNodesMetadata, getShapeLabelSchemaFields, getStageClickPoint, getTargetAndSkipNodes, getTargetedNode, getTopmostShadowHost, getVisibleNodes, getVisibleNodesInViewport, hasFrames, hasImages, instantiatePreset, intersectArrays, isArray, isIOS, isInShadowDOM, isNodeInSelection, isNumber, isObject, isServer, labelId, loadImageSource, mapJsonToYjsArray, mapJsonToYjsElements, mapJsonToYjsMap, memoize, mergeExceptArrays, moveNodeToContainer, moveNodeToContainerNT, resetScale, setupCanvasBackend, setupSkiaBackend, sleep, spreadLabelProps, weavejsToYjsBinary };
32958
33103
 
32959
33104
  //# sourceMappingURL=types.js.map