superdoc 2.11.0-next.8 → 2.11.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/superdoc.cjs CHANGED
@@ -316,7 +316,7 @@ var shuffleArray = (array) => {
316
316
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
317
317
  function getSuperdocVersion() {
318
318
  try {
319
- return "2.11.0-next.8";
319
+ return "2.11.0";
320
320
  } catch {
321
321
  return "unknown";
322
322
  }
@@ -11679,7 +11679,7 @@ var _hoisted_3$20 = {
11679
11679
  class: "comments-dropdown__option-icon"
11680
11680
  };
11681
11681
  var _hoisted_4$13 = ["innerHTML"];
11682
- var _hoisted_5$9 = { class: "comments-dropdown__option-label" };
11682
+ var _hoisted_5$10 = { class: "comments-dropdown__option-label" };
11683
11683
  var _sfc_main$38 = {
11684
11684
  __name: "CommentsDropdown",
11685
11685
  props: {
@@ -11825,7 +11825,7 @@ var _sfc_main$38 = {
11825
11825
  }, null, 8, _hoisted_4$13)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(OptionIcon), {
11826
11826
  key: 1,
11827
11827
  option
11828
- }, null, 8, ["option"]))])) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("span", _hoisted_5$9, (0, vue.toDisplayString)(option.label), 1)], 10, _hoisted_2$24);
11828
+ }, null, 8, ["option"]))])) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("span", _hoisted_5$10, (0, vue.toDisplayString)(option.label), 1)], 10, _hoisted_2$24);
11829
11829
  }), 128))], 4)) : (0, vue.createCommentVNode)("", true)]))]);
11830
11830
  };
11831
11831
  }
@@ -12095,11 +12095,11 @@ var _hoisted_1$28 = { class: "card-section comment-header" };
12095
12095
  var _hoisted_2$21 = { class: "comment-header-left" };
12096
12096
  var _hoisted_3$17 = { class: "user-info" };
12097
12097
  var _hoisted_4$11 = { class: "user-name" };
12098
- var _hoisted_5$8 = {
12098
+ var _hoisted_5$9 = {
12099
12099
  key: 0,
12100
12100
  class: "imported-tag"
12101
12101
  };
12102
- var _hoisted_6$7 = {
12102
+ var _hoisted_6$8 = {
12103
12103
  key: 0,
12104
12104
  class: "user-timestamp"
12105
12105
  };
@@ -12354,7 +12354,7 @@ var _sfc_main$35 = {
12354
12354
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$28, [(0, vue.createElementVNode)("div", _hoisted_2$21, [(0, vue.createVNode)(Avatar_default, {
12355
12355
  user: getCurrentUser.value,
12356
12356
  class: "avatar"
12357
- }, null, 8, ["user"]), (0, vue.createElementVNode)("div", _hoisted_3$17, [(0, vue.createElementVNode)("div", _hoisted_4$11, [(0, vue.createTextVNode)((0, vue.toDisplayString)(getCurrentUser.value.name), 1), isImported.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$8, "IMPORTED")) : (0, vue.createCommentVNode)("", true)]), props.comment.createdTime ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_6$7, (0, vue.toDisplayString)((0, vue.unref)(formatDate)(props.comment.createdTime)), 1)) : (0, vue.createCommentVNode)("", true)])]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["overflow-menu", { "is-visible": props.isActive }]) }, [
12357
+ }, null, 8, ["user"]), (0, vue.createElementVNode)("div", _hoisted_3$17, [(0, vue.createElementVNode)("div", _hoisted_4$11, [(0, vue.createTextVNode)((0, vue.toDisplayString)(getCurrentUser.value.name), 1), isImported.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$9, "IMPORTED")) : (0, vue.createCommentVNode)("", true)]), props.comment.createdTime ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_6$8, (0, vue.toDisplayString)((0, vue.unref)(formatDate)(props.comment.createdTime)), 1)) : (0, vue.createCommentVNode)("", true)])]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(["overflow-menu", { "is-visible": props.isActive }]) }, [
12358
12358
  allowResolve.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
12359
12359
  key: 0,
12360
12360
  class: (0, vue.normalizeClass)(["overflow-menu__icon", { "sd-is-disabled": Boolean(__props.resolveDisabledReason) }]),
@@ -12416,8 +12416,8 @@ var _hoisted_4$10 = [
12416
12416
  "data-sd-comment-mention-option",
12417
12417
  "onMousedown"
12418
12418
  ];
12419
- var _hoisted_5$7 = { class: "comment-mention-option__name" };
12420
- var _hoisted_6$6 = {
12419
+ var _hoisted_5$8 = { class: "comment-mention-option__name" };
12420
+ var _hoisted_6$7 = {
12421
12421
  key: 0,
12422
12422
  class: "comment-mention-option__email"
12423
12423
  };
@@ -12612,7 +12612,7 @@ var _sfc_main$34 = {
12612
12612
  "aria-selected": index === highlightedMentionIndex.value,
12613
12613
  "data-sd-comment-mention-option": userKey(user),
12614
12614
  onMousedown: (0, vue.withModifiers)(($event) => selectMention(user), ["prevent"])
12615
- }, [(0, vue.createElementVNode)("span", _hoisted_5$7, (0, vue.toDisplayString)(displayName(user)), 1), user.email ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_6$6, (0, vue.toDisplayString)(user.email), 1)) : (0, vue.createCommentVNode)("", true)], 42, _hoisted_4$10);
12615
+ }, [(0, vue.createElementVNode)("span", _hoisted_5$8, (0, vue.toDisplayString)(displayName(user)), 1), user.email ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_6$7, (0, vue.toDisplayString)(user.email), 1)) : (0, vue.createCommentVNode)("", true)], 42, _hoisted_4$10);
12616
12616
  }), 128))])) : (0, vue.createCommentVNode)("", true)])], 2)]);
12617
12617
  };
12618
12618
  }
@@ -12633,8 +12633,8 @@ var _hoisted_2$19 = {
12633
12633
  };
12634
12634
  var _hoisted_3$15 = { class: "new-comment-input-wrapper" };
12635
12635
  var _hoisted_4$9 = { class: "reply-actions" };
12636
- var _hoisted_5$6 = ["disabled"];
12637
- var _hoisted_6$5 = {
12636
+ var _hoisted_5$7 = ["disabled"];
12637
+ var _hoisted_6$6 = {
12638
12638
  key: 0,
12639
12639
  class: "resolved-badge"
12640
12640
  };
@@ -13665,9 +13665,9 @@ var _sfc_main$33 = {
13665
13665
  class: (0, vue.normalizeClass)(["sd-button primary reply-btn-primary", { "sd-is-disabled": !hasTextContent.value || isSubmittingNewComment.value }]),
13666
13666
  onClick: (0, vue.withModifiers)(handleAddComment, ["stop", "prevent"]),
13667
13667
  disabled: !hasTextContent.value || isSubmittingNewComment.value
13668
- }, " Comment ", 10, _hoisted_5$6)])
13668
+ }, " Comment ", 10, _hoisted_5$7)])
13669
13669
  ], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [
13670
- resolvedBadgeLabel.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_6$5, [(0, vue.createElementVNode)("span", {
13670
+ resolvedBadgeLabel.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_6$6, [(0, vue.createElementVNode)("span", {
13671
13671
  class: "resolved-badge__icon",
13672
13672
  innerHTML: (0, vue.unref)(superdocIcons).markDone
13673
13673
  }, null, 8, _hoisted_7$3), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)(resolvedBadgeLabel.value), 1)])) : (0, vue.createCommentVNode)("", true),
@@ -16686,6 +16686,47 @@ function toV2BulkDecisionEvent(documentId, fact) {
16686
16686
  };
16687
16687
  }
16688
16688
  //#endregion
16689
+ //#region src/helpers/v2-keyboard-edit-rejection.js
16690
+ var KEYBOARD_DELETE_INPUT_KINDS = /* @__PURE__ */ new Set(["keydown", "beforeinput"]);
16691
+ var KEYBOARD_DELETE_COMMAND_KINDS = /* @__PURE__ */ new Set(["delete-backward", "delete-forward"]);
16692
+ var KEYBOARD_DELETE_FAILURE_SOURCES = /* @__PURE__ */ new Set(["shell", "receipt"]);
16693
+ var V2_EDIT_REJECTED_CODE = "edit-rejected";
16694
+ var V2_EDIT_REJECTED_MESSAGE = "This edit couldn’t be completed. Adjust the selection and try again.";
16695
+ function isV2KeyboardEditRejection(event) {
16696
+ return Boolean(event && event.type === "mutation:rejected" && event.origin === "document-surface" && KEYBOARD_DELETE_FAILURE_SOURCES.has(event.failureSource) && (event.inputKind === "cut" || KEYBOARD_DELETE_INPUT_KINDS.has(event.inputKind) && KEYBOARD_DELETE_COMMAND_KINDS.has(event.editableCommandKind)));
16697
+ }
16698
+ function createV2KeyboardEditRejectionException(documentId) {
16699
+ return {
16700
+ error: /* @__PURE__ */ new Error(V2_EDIT_REJECTED_MESSAGE),
16701
+ code: V2_EDIT_REJECTED_CODE,
16702
+ editor: null,
16703
+ ...typeof documentId === "string" && documentId.length > 0 ? { documentId } : {}
16704
+ };
16705
+ }
16706
+ function resolveV2MutationNoticeStatuses(scope, authorRequiredMessages, editRejectedMessages) {
16707
+ const authorRequired = authorRequiredMessages?.[scope] ?? null;
16708
+ return {
16709
+ authorRequired,
16710
+ editRejected: authorRequired ? null : editRejectedMessages?.[scope] ?? null
16711
+ };
16712
+ }
16713
+ function createV2KeyboardEditRejectionNotificationGate() {
16714
+ const notifiedScopes = /* @__PURE__ */ new Set();
16715
+ const keyFor = (scope) => typeof scope === "string" && scope.length > 0 ? scope : "__default__";
16716
+ return {
16717
+ shouldNotify(scope, event) {
16718
+ if (!isV2KeyboardEditRejection(event)) return false;
16719
+ const key = keyFor(scope);
16720
+ if (notifiedScopes.has(key)) return false;
16721
+ notifiedScopes.add(key);
16722
+ return true;
16723
+ },
16724
+ clear(scope) {
16725
+ notifiedScopes.delete(keyFor(scope));
16726
+ }
16727
+ };
16728
+ }
16729
+ //#endregion
16689
16730
  //#region src/helpers/v2-selection-sync.js
16690
16731
  /**
16691
16732
  * A logical v2 selection snapshot represents a non-empty range when its anchor
@@ -18183,11 +18224,11 @@ var _hoisted_4$8 = {
18183
18224
  key: 3,
18184
18225
  class: "link-title"
18185
18226
  };
18186
- var _hoisted_5$5 = {
18227
+ var _hoisted_5$6 = {
18187
18228
  key: 4,
18188
18229
  class: "link-input-wrapper"
18189
18230
  };
18190
- var _hoisted_6$4 = { class: "input-row text-input-row" };
18231
+ var _hoisted_6$5 = { class: "input-row text-input-row" };
18191
18232
  var _hoisted_7$2 = ["readonly", "onKeydown"];
18192
18233
  var _hoisted_8$2 = { class: "input-row url-input-row" };
18193
18234
  var _hoisted_9$1 = ["innerHTML"];
@@ -18397,8 +18438,8 @@ var _sfc_main$25 = {
18397
18438
  if (props.goToAnchor) props.goToAnchor(anchorUrl);
18398
18439
  };
18399
18440
  return (_ctx, _cache) => {
18400
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(["link-input-ctn", { "high-contrast": (0, vue.unref)(isHighContrastMode) }]) }, [isAnchor.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$19, "Page anchor")) : isViewingMode.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$15, "Link details")) : isEditing.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_3$12, "Edit link")) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_4$8, "Add link")), __props.showInput && !isAnchor.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_5$5, [
18401
- (0, vue.createElementVNode)("div", _hoisted_6$4, [_cache[4] || (_cache[4] = (0, vue.createElementVNode)("div", { class: "input-icon text-input-icon" }, "T", -1)), (0, vue.withDirectives)((0, vue.createElementVNode)("input", {
18441
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(["link-input-ctn", { "high-contrast": (0, vue.unref)(isHighContrastMode) }]) }, [isAnchor.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1$19, "Page anchor")) : isViewingMode.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$15, "Link details")) : isEditing.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_3$12, "Edit link")) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_4$8, "Add link")), __props.showInput && !isAnchor.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_5$6, [
18442
+ (0, vue.createElementVNode)("div", _hoisted_6$5, [_cache[4] || (_cache[4] = (0, vue.createElementVNode)("div", { class: "input-icon text-input-icon" }, "T", -1)), (0, vue.withDirectives)((0, vue.createElementVNode)("input", {
18402
18443
  type: "text",
18403
18444
  name: "text",
18404
18445
  placeholder: "Text",
@@ -21389,9 +21430,19 @@ var _hoisted_1$16 = {
21389
21430
  "aria-live": "assertive",
21390
21431
  "data-superdoc-v2-author-required": ""
21391
21432
  };
21392
- var _hoisted_2$12 = ["innerHTML"];
21393
- var _hoisted_3$9 = { class: "superdoc__document document" };
21394
- var _hoisted_4$7 = { class: "floating-comments" };
21433
+ var _hoisted_2$12 = {
21434
+ key: 0,
21435
+ class: "superdoc__mutation-status"
21436
+ };
21437
+ var _hoisted_3$9 = {
21438
+ class: "superdoc__edit-rejected-status",
21439
+ role: "status",
21440
+ "aria-live": "polite",
21441
+ "data-superdoc-v2-edit-rejected": ""
21442
+ };
21443
+ var _hoisted_4$7 = ["innerHTML"];
21444
+ var _hoisted_5$5 = { class: "superdoc__document document" };
21445
+ var _hoisted_6$4 = { class: "floating-comments" };
21395
21446
  var TRACKED_CHANGE_CARRIERS_RESTAMPED_EVENT = "superdoc:v2-tracked-change-carriers-restamped";
21396
21447
  var UNAVAILABLE_COMMAND_RESULT = false;
21397
21448
  var V2_SELECTION_TOOLBAR_SYNC_RETRY_FRAMES = 3;
@@ -21723,6 +21774,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21723
21774
  adapter
21724
21775
  });
21725
21776
  proxy.$superdoc.setActiveRuntime(runtimeId, "v2-editor-ready");
21777
+ syncV2EditRejectedActiveDocument();
21726
21778
  return true;
21727
21779
  };
21728
21780
  const v2ReviewWindowController = resolvedEditorIntegration.createReviewWindowController({ applyReviewWindow: (ctx, result) => commentsStore.applyReviewWindowFromV2?.({
@@ -21748,10 +21800,9 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21748
21800
  const v2DiagnosticDedupe = createV2DiagnosticDedupe();
21749
21801
  const v2AuthorRequiredGate = createV2AuthorRequiredNotificationGate();
21750
21802
  const v2AuthorRequiredMessages = (0, vue.ref)({});
21751
- const v2AuthorRequiredStatus = (0, vue.computed)(() => Object.values(v2AuthorRequiredMessages.value)[0] ?? null);
21752
- const v2AuthorRequiredScope = (documentId) => typeof documentId === "string" && documentId.length > 0 ? `document:${documentId}` : "document:default";
21803
+ const v2MutationNoticeScope = (documentId) => typeof documentId === "string" && documentId.length > 0 ? `document:${documentId}` : "document:default";
21753
21804
  const clearV2AuthorRequired = (documentId) => {
21754
- const scope = v2AuthorRequiredScope(documentId);
21805
+ const scope = v2MutationNoticeScope(documentId);
21755
21806
  v2AuthorRequiredGate.clear(scope);
21756
21807
  if (!v2AuthorRequiredMessages.value[scope]) return;
21757
21808
  const next = { ...v2AuthorRequiredMessages.value };
@@ -21759,7 +21810,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21759
21810
  v2AuthorRequiredMessages.value = next;
21760
21811
  };
21761
21812
  const maybeNotifyV2AuthorRequired = (documentId, event) => {
21762
- const scope = v2AuthorRequiredScope(documentId);
21813
+ const scope = v2MutationNoticeScope(documentId);
21763
21814
  if (!v2AuthorRequiredGate.shouldNotify(scope, event)) return;
21764
21815
  v2AuthorRequiredMessages.value = {
21765
21816
  ...v2AuthorRequiredMessages.value,
@@ -21773,6 +21824,39 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21773
21824
  ...event.failureSource === "receipt" && event.failure ? { receipt: event.failure } : {}
21774
21825
  });
21775
21826
  };
21827
+ const v2EditRejectedGate = createV2KeyboardEditRejectionNotificationGate();
21828
+ const v2EditRejectedMessages = (0, vue.ref)({});
21829
+ const v2EditRejectedActiveDocumentId = (0, vue.ref)(null);
21830
+ const v2MutationNoticeStatuses = (0, vue.computed)(() => resolveV2MutationNoticeStatuses(v2MutationNoticeScope(v2EditRejectedActiveDocumentId.value), v2AuthorRequiredMessages.value, v2EditRejectedMessages.value));
21831
+ const v2AuthorRequiredStatus = (0, vue.computed)(() => v2MutationNoticeStatuses.value.authorRequired);
21832
+ const v2EditRejectedStatus = (0, vue.computed)(() => v2MutationNoticeStatuses.value.editRejected);
21833
+ const syncV2EditRejectedActiveDocument = () => {
21834
+ const activeEditor = proxy.$superdoc?.activeEditor;
21835
+ if (activeEditor?.editorVersion !== 2) {
21836
+ v2EditRejectedActiveDocumentId.value = null;
21837
+ return;
21838
+ }
21839
+ const documentId = activeEditor.documentId ?? activeEditor.options?.documentId ?? null;
21840
+ v2EditRejectedActiveDocumentId.value = typeof documentId === "string" && documentId.length > 0 ? documentId : null;
21841
+ };
21842
+ const clearV2EditRejected = (documentId) => {
21843
+ const scope = v2MutationNoticeScope(documentId);
21844
+ v2EditRejectedGate.clear(scope);
21845
+ if (!v2EditRejectedMessages.value[scope]) return;
21846
+ const next = { ...v2EditRejectedMessages.value };
21847
+ delete next[scope];
21848
+ v2EditRejectedMessages.value = next;
21849
+ };
21850
+ const maybeNotifyV2EditRejected = (documentId, event) => {
21851
+ const scope = v2MutationNoticeScope(documentId);
21852
+ if (v2AuthorRequiredMessages.value[scope]) return;
21853
+ if (!v2EditRejectedGate.shouldNotify(scope, event)) return;
21854
+ v2EditRejectedMessages.value = {
21855
+ ...v2EditRejectedMessages.value,
21856
+ [scope]: V2_EDIT_REJECTED_MESSAGE
21857
+ };
21858
+ proxy.$superdoc.emit("exception", createV2KeyboardEditRejectionException(documentId));
21859
+ };
21776
21860
  const setV2EditorFailure = (documentId, failure) => {
21777
21861
  if (!documentId) return;
21778
21862
  v2EditorFailures.value = {
@@ -21791,6 +21875,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21791
21875
  const activeDocumentId = documentId ?? activeEditor?.documentId ?? activeEditor?.options?.documentId ?? null;
21792
21876
  if (!activeDocumentId) {
21793
21877
  if (activeEditor?.editorVersion === 2) proxy.$superdoc.setActiveEditor(null);
21878
+ syncV2EditRejectedActiveDocument();
21794
21879
  return;
21795
21880
  }
21796
21881
  if (documentId && activeEditor?.editorVersion === 2) {
@@ -21807,6 +21892,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21807
21892
  if (!hadRegisteredRuntime && activeEditor?.editorVersion === 2) {
21808
21893
  if ((activeEditor.documentId ?? activeEditor.options?.documentId ?? null) === activeDocumentId) proxy.$superdoc.setActiveEditor(null);
21809
21894
  }
21895
+ syncV2EditRejectedActiveDocument();
21810
21896
  };
21811
21897
  const createV2ExtensionsFacet = (host) => {
21812
21898
  const manager = typeof host?.getExtensionManager === "function" ? host.getExtensionManager() : null;
@@ -21838,6 +21924,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21838
21924
  if (!payload) return;
21839
21925
  clearV2EditorFailure(payload.documentId ?? null);
21840
21926
  clearV2AuthorRequired(payload.documentId ?? null);
21927
+ clearV2EditRejected(payload.documentId ?? null);
21841
21928
  const { host, mount, documentId, capabilities, editCommands, bindEditShortcuts, bindSessionShortcuts, commentsAdapter, trackedChangesAdapter, contextMenu, documentApi, documentMutationReadiness, documentApiUnavailableReason, pageMetrics, pageLayout, pageFurniture, presence, lock, fonts, replaceFile, upgradeToCollaboration, documentOpenToken } = payload;
21842
21929
  documentOpenTelemetry?.trackDocumentOpen(documentOpenToken ?? null, documentId ?? null);
21843
21930
  const saveV2Bytes = async (saveOptions = {}) => {
@@ -22143,7 +22230,10 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
22143
22230
  host,
22144
22231
  mount,
22145
22232
  facade
22146
- })) proxy.$superdoc.setActiveEditor(facade);
22233
+ })) {
22234
+ proxy.$superdoc.setActiveEditor(facade);
22235
+ syncV2EditRejectedActiveDocument();
22236
+ }
22147
22237
  proxy.$superdoc.broadcastEditorCreate(facade);
22148
22238
  installV2CommandShortcutBinding({
22149
22239
  documentId,
@@ -22511,6 +22601,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
22511
22601
  resetSelection();
22512
22602
  v2PageMetricsSnapshot.value = null;
22513
22603
  const clearedDocumentId = payload?.documentId == null ? null : String(payload.documentId);
22604
+ clearV2EditRejected(clearedDocumentId);
22514
22605
  commentsStore.cancelImportedTrackedChangeBootstrap?.(clearedDocumentId ?? void 0);
22515
22606
  if (clearedDocumentId) v2MountStagesByDocumentId.delete(clearedDocumentId);
22516
22607
  if (latestV2MountStage && (clearedDocumentId == null || latestV2MountStage.dataset?.superdocV2DocumentId === clearedDocumentId)) latestV2MountStage = null;
@@ -22561,13 +22652,17 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
22561
22652
  resumeDomains: ["comments", "trackedChanges"],
22562
22653
  trackedRowCount: commentsStore.getV2TrackedChangeRowCount?.(documentId) ?? null
22563
22654
  });
22564
- maybeNotifyV2AuthorRequired(documentId, event);
22655
+ if (isV2AuthorRequiredRejection(event)) {
22656
+ clearV2EditRejected(documentId);
22657
+ maybeNotifyV2AuthorRequired(documentId, event);
22658
+ } else maybeNotifyV2EditRejected(documentId, event);
22565
22659
  return;
22566
22660
  }
22567
22661
  if (event.type === "mutation:committed") {
22568
22662
  clearV2AuthorRequired(documentId);
22569
22663
  const bulkDecisionEvent = toV2BulkDecisionEvent(documentId, event.trackedChangeBulkDecision);
22570
22664
  if (bulkDecisionEvent) proxy.$superdoc.emit("tracked-changes:bulk-decision", bulkDecisionEvent);
22665
+ clearV2EditRejected(documentId);
22571
22666
  emitV2EditorUpdate();
22572
22667
  }
22573
22668
  if (event.type !== "mutation:committed") return;
@@ -22749,6 +22844,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
22749
22844
  };
22750
22845
  const activateRuntimeFromEvent = (event, reason) => {
22751
22846
  proxy.$superdoc?.activateRuntimeFromEventTarget?.(event.target, reason);
22847
+ syncV2EditRejectedActiveDocument();
22752
22848
  };
22753
22849
  const handleRuntimeFocusIn = (event) => activateRuntimeFromEvent(event, "focusin");
22754
22850
  const handleRuntimePointerDown = (event) => activateRuntimeFromEvent(event, "pointerdown");
@@ -23209,6 +23305,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23209
23305
  document.addEventListener("selectionchange", handleDocumentSelectionChange);
23210
23306
  proxy.$superdoc?.on?.("document-mode-change", handleV2DocumentModeChange);
23211
23307
  proxy.$superdoc?.on?.("active-editor-change", syncV2RulerActiveEditor);
23308
+ proxy.$superdoc?.on?.("active-editor-change", syncV2EditRejectedActiveDocument);
23212
23309
  recalculateCompactCommentsMode();
23213
23310
  ensureCompactMeasurementObserver();
23214
23311
  });
@@ -23334,6 +23431,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23334
23431
  document.removeEventListener("selectionchange", handleDocumentSelectionChange);
23335
23432
  proxy.$superdoc?.off?.("document-mode-change", handleV2DocumentModeChange);
23336
23433
  proxy.$superdoc?.off?.("active-editor-change", syncV2RulerActiveEditor);
23434
+ proxy.$superdoc?.off?.("active-editor-change", syncV2EditRejectedActiveDocument);
23337
23435
  });
23338
23436
  const selectionLayer = (0, vue.ref)(null);
23339
23437
  const isDragging = (0, vue.ref)(false);
@@ -23730,149 +23828,153 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23730
23828
  ref_key: "layers",
23731
23829
  ref: layers,
23732
23830
  role: "group"
23733
- }, [showToolsFloatingMenu.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23734
- key: 0,
23735
- class: "superdoc__tools tools",
23736
- style: (0, vue.normalizeStyle)(toolsMenuPosition)
23737
- }, [(0, vue.createElementVNode)("div", {
23738
- class: "tools-item",
23739
- "data-id": "is-tool",
23740
- onMousedown: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => handleToolClick("comments"), ["stop", "prevent"]))
23741
- }, [(0, vue.createElementVNode)("div", {
23742
- class: "superdoc__tools-icon",
23743
- innerHTML: (0, vue.unref)(superdocIcons).comment
23744
- }, null, 8, _hoisted_2$12)], 32)], 4)) : (0, vue.createCommentVNode)("", true), (0, vue.createElementVNode)("div", _hoisted_3$9, [
23745
- isCommentsEnabled.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23746
- key: 0,
23747
- class: "superdoc__selection-layer selection-layer",
23748
- onMousedown: handleSelectionStart,
23749
- onMouseup: handleDragEnd,
23750
- ref_key: "selectionLayer",
23751
- ref: selectionLayer
23752
- }, [(0, vue.unref)(selectionPosition) && shouldShowSelection.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23753
- key: 0,
23754
- style: (0, vue.normalizeStyle)(getSelectionPosition.value),
23755
- class: "superdoc__temp-selection temp-selection sd-highlight sd-initial-highlight"
23756
- }, null, 4)) : (0, vue.createCommentVNode)("", true)], 544)) : (0, vue.createCommentVNode)("", true),
23757
- ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(documents), (doc) => {
23758
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23759
- class: "superdoc__sub-document sub-document",
23760
- key: `${doc.id}:${doc.editorMountNonce}`,
23761
- ref_for: true,
23762
- ref: (el) => setSubDocumentRoot(doc, el)
23763
- }, [
23764
- doc.type === (0, vue.unref)("application/pdf") ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(PdfViewer), {
23765
- key: 0,
23766
- file: doc.data,
23767
- "file-id": doc.id,
23768
- "initial-scale": ((0, vue.unref)(activeZoom) ?? 100) / 100,
23769
- config: (0, vue.unref)(pdfConfig),
23770
- onSelectionRaw: handlePdfSelectionRaw,
23771
- onBypassSelection: handlePdfClick,
23772
- onPageRendered: (0, vue.unref)(handleWhiteboardPageReady),
23773
- onDocumentReady: _cache[1] || (_cache[1] = ({ documentId, viewerContainer }) => handleDocumentReady(documentId, viewerContainer)),
23774
- ref_for: true,
23775
- ref_key: "pdfViewerRef",
23776
- ref: pdfViewerRef
23777
- }, null, 8, [
23778
- "file",
23779
- "file-id",
23780
- "initial-scale",
23781
- "config",
23782
- "onPageRendered"
23783
- ])) : (0, vue.createCommentVNode)("", true),
23784
- doc.type === (0, vue.unref)("application/vnd.openxmlformats-officedocument.wordprocessingml.document") && (0, vue.unref)(V2Ruler) && shouldShowV2Ruler(doc) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [resolvedRulerContainer.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Teleport, {
23785
- key: 0,
23786
- to: resolvedRulerContainer.value
23787
- }, [(0, vue.createElementVNode)("div", {
23788
- class: "v2-ruler-host",
23789
- style: (0, vue.normalizeStyle)(v2RulerHostStyle.value)
23790
- }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
23791
- "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
23792
- "measurement-unit": (0, vue.unref)(measurementUnit),
23793
- onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
23794
- }, null, 8, [
23795
- "page-layout",
23796
- "measurement-unit",
23797
- "onPageMarginsChange"
23798
- ])], 4)], 8, ["to"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23799
- key: 1,
23800
- class: "v2-ruler-host",
23801
- style: (0, vue.normalizeStyle)(v2RulerHostStyle.value)
23802
- }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
23803
- "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
23804
- "measurement-unit": (0, vue.unref)(measurementUnit),
23805
- onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
23806
- }, null, 8, [
23807
- "page-layout",
23808
- "measurement-unit",
23809
- "onPageMarginsChange"
23810
- ])], 4))], 64)) : (0, vue.createCommentVNode)("", true),
23811
- doc.type === (0, vue.unref)("application/vnd.openxmlformats-officedocument.wordprocessingml.document") ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(V2DocumentEditor), {
23812
- key: 2,
23813
- "file-source": doc.data,
23814
- "document-id": doc.id,
23815
- options: editorOptions(doc),
23816
- "measurement-unit": (0, vue.unref)(measurementUnit),
23817
- onV2EditorReady,
23818
- onV2EditorFailed,
23819
- onV2Render,
23820
- onV2RenderCleared,
23821
- onV2SelectionChanged,
23822
- onV2HostEvent: (event) => onV2HostEvent(doc, event),
23823
- onV2LinkClick,
23824
- onV2CommentCreated,
23825
- onV2PageMetrics,
23826
- onV2RenderReadiness: (payload) => onV2RenderReadiness(doc, payload),
23827
- onV2OpenDiagnostics: (payload) => onV2OpenDiagnostics(doc, payload)
23828
- }, null, 8, [
23829
- "file-source",
23830
- "document-id",
23831
- "options",
23832
- "measurement-unit",
23833
- "onV2HostEvent",
23834
- "onV2RenderReadiness",
23835
- "onV2OpenDiagnostics"
23836
- ])) : (0, vue.createCommentVNode)("", true),
23837
- doc.type === (0, vue.unref)("text/html") ? ((0, vue.openBlock)(), (0, vue.createBlock)(HtmlViewer_default, {
23838
- key: 3,
23839
- onReady: _cache[2] || (_cache[2] = (id) => handleDocumentReady(id, null)),
23840
- onSelectionChange: handleSelectionChange,
23841
- "file-source": doc.data,
23842
- "document-id": doc.id
23843
- }, null, 8, ["file-source", "document-id"])) : (0, vue.createCommentVNode)("", true)
23844
- ]);
23845
- }), 128)),
23846
- shouldRenderPdfWhiteboard.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(WhiteboardLayer_default, {
23831
+ }, [
23832
+ v2EditRejectedStatus.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$12, [(0, vue.createElementVNode)("p", _hoisted_3$9, (0, vue.toDisplayString)(v2EditRejectedStatus.value), 1)])) : (0, vue.createCommentVNode)("", true),
23833
+ showToolsFloatingMenu.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23847
23834
  key: 1,
23848
- class: "superdoc__whiteboard-layer",
23849
- whiteboard: (0, vue.unref)(whiteboard),
23850
- pages: (0, vue.unref)(whiteboardPages),
23851
- "page-sizes": (0, vue.unref)(whiteboardPageSizes),
23852
- "page-offsets": (0, vue.unref)(whiteboardPageOffsets),
23853
- enabled: (0, vue.unref)(whiteboardEnabled),
23854
- interactive: whiteboardInteractive.value,
23855
- opacity: (0, vue.unref)(whiteboardOpacity)
23856
- }, null, 8, [
23857
- "whiteboard",
23858
- "pages",
23859
- "page-sizes",
23860
- "page-offsets",
23861
- "enabled",
23862
- "interactive",
23863
- "opacity"
23864
- ])) : (0, vue.createCommentVNode)("", true),
23865
- shouldRenderPdfCommentAnchors.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(PdfCommentsLayer_default, {
23866
- key: 2,
23867
- onAnchorActivate: handleHighlightClick
23868
- })) : (0, vue.createCommentVNode)("", true)
23869
- ])], 512),
23835
+ class: "superdoc__tools tools",
23836
+ style: (0, vue.normalizeStyle)(toolsMenuPosition)
23837
+ }, [(0, vue.createElementVNode)("div", {
23838
+ class: "tools-item",
23839
+ "data-id": "is-tool",
23840
+ onMousedown: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => handleToolClick("comments"), ["stop", "prevent"]))
23841
+ }, [(0, vue.createElementVNode)("div", {
23842
+ class: "superdoc__tools-icon",
23843
+ innerHTML: (0, vue.unref)(superdocIcons).comment
23844
+ }, null, 8, _hoisted_4$7)], 32)], 4)) : (0, vue.createCommentVNode)("", true),
23845
+ (0, vue.createElementVNode)("div", _hoisted_5$5, [
23846
+ isCommentsEnabled.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23847
+ key: 0,
23848
+ class: "superdoc__selection-layer selection-layer",
23849
+ onMousedown: handleSelectionStart,
23850
+ onMouseup: handleDragEnd,
23851
+ ref_key: "selectionLayer",
23852
+ ref: selectionLayer
23853
+ }, [(0, vue.unref)(selectionPosition) && shouldShowSelection.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23854
+ key: 0,
23855
+ style: (0, vue.normalizeStyle)(getSelectionPosition.value),
23856
+ class: "superdoc__temp-selection temp-selection sd-highlight sd-initial-highlight"
23857
+ }, null, 4)) : (0, vue.createCommentVNode)("", true)], 544)) : (0, vue.createCommentVNode)("", true),
23858
+ ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(documents), (doc) => {
23859
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23860
+ class: "superdoc__sub-document sub-document",
23861
+ key: `${doc.id}:${doc.editorMountNonce}`,
23862
+ ref_for: true,
23863
+ ref: (el) => setSubDocumentRoot(doc, el)
23864
+ }, [
23865
+ doc.type === (0, vue.unref)("application/pdf") ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(PdfViewer), {
23866
+ key: 0,
23867
+ file: doc.data,
23868
+ "file-id": doc.id,
23869
+ "initial-scale": ((0, vue.unref)(activeZoom) ?? 100) / 100,
23870
+ config: (0, vue.unref)(pdfConfig),
23871
+ onSelectionRaw: handlePdfSelectionRaw,
23872
+ onBypassSelection: handlePdfClick,
23873
+ onPageRendered: (0, vue.unref)(handleWhiteboardPageReady),
23874
+ onDocumentReady: _cache[1] || (_cache[1] = ({ documentId, viewerContainer }) => handleDocumentReady(documentId, viewerContainer)),
23875
+ ref_for: true,
23876
+ ref_key: "pdfViewerRef",
23877
+ ref: pdfViewerRef
23878
+ }, null, 8, [
23879
+ "file",
23880
+ "file-id",
23881
+ "initial-scale",
23882
+ "config",
23883
+ "onPageRendered"
23884
+ ])) : (0, vue.createCommentVNode)("", true),
23885
+ doc.type === (0, vue.unref)("application/vnd.openxmlformats-officedocument.wordprocessingml.document") && (0, vue.unref)(V2Ruler) && shouldShowV2Ruler(doc) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [resolvedRulerContainer.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Teleport, {
23886
+ key: 0,
23887
+ to: resolvedRulerContainer.value
23888
+ }, [(0, vue.createElementVNode)("div", {
23889
+ class: "v2-ruler-host",
23890
+ style: (0, vue.normalizeStyle)(v2RulerHostStyle.value)
23891
+ }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
23892
+ "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
23893
+ "measurement-unit": (0, vue.unref)(measurementUnit),
23894
+ onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
23895
+ }, null, 8, [
23896
+ "page-layout",
23897
+ "measurement-unit",
23898
+ "onPageMarginsChange"
23899
+ ])], 4)], 8, ["to"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23900
+ key: 1,
23901
+ class: "v2-ruler-host",
23902
+ style: (0, vue.normalizeStyle)(v2RulerHostStyle.value)
23903
+ }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
23904
+ "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
23905
+ "measurement-unit": (0, vue.unref)(measurementUnit),
23906
+ onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
23907
+ }, null, 8, [
23908
+ "page-layout",
23909
+ "measurement-unit",
23910
+ "onPageMarginsChange"
23911
+ ])], 4))], 64)) : (0, vue.createCommentVNode)("", true),
23912
+ doc.type === (0, vue.unref)("application/vnd.openxmlformats-officedocument.wordprocessingml.document") ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(V2DocumentEditor), {
23913
+ key: 2,
23914
+ "file-source": doc.data,
23915
+ "document-id": doc.id,
23916
+ options: editorOptions(doc),
23917
+ "measurement-unit": (0, vue.unref)(measurementUnit),
23918
+ onV2EditorReady,
23919
+ onV2EditorFailed,
23920
+ onV2Render,
23921
+ onV2RenderCleared,
23922
+ onV2SelectionChanged,
23923
+ onV2HostEvent: (event) => onV2HostEvent(doc, event),
23924
+ onV2LinkClick,
23925
+ onV2CommentCreated,
23926
+ onV2PageMetrics,
23927
+ onV2RenderReadiness: (payload) => onV2RenderReadiness(doc, payload),
23928
+ onV2OpenDiagnostics: (payload) => onV2OpenDiagnostics(doc, payload)
23929
+ }, null, 8, [
23930
+ "file-source",
23931
+ "document-id",
23932
+ "options",
23933
+ "measurement-unit",
23934
+ "onV2HostEvent",
23935
+ "onV2RenderReadiness",
23936
+ "onV2OpenDiagnostics"
23937
+ ])) : (0, vue.createCommentVNode)("", true),
23938
+ doc.type === (0, vue.unref)("text/html") ? ((0, vue.openBlock)(), (0, vue.createBlock)(HtmlViewer_default, {
23939
+ key: 3,
23940
+ onReady: _cache[2] || (_cache[2] = (id) => handleDocumentReady(id, null)),
23941
+ onSelectionChange: handleSelectionChange,
23942
+ "file-source": doc.data,
23943
+ "document-id": doc.id
23944
+ }, null, 8, ["file-source", "document-id"])) : (0, vue.createCommentVNode)("", true)
23945
+ ]);
23946
+ }), 128)),
23947
+ shouldRenderPdfWhiteboard.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(WhiteboardLayer_default, {
23948
+ key: 1,
23949
+ class: "superdoc__whiteboard-layer",
23950
+ whiteboard: (0, vue.unref)(whiteboard),
23951
+ pages: (0, vue.unref)(whiteboardPages),
23952
+ "page-sizes": (0, vue.unref)(whiteboardPageSizes),
23953
+ "page-offsets": (0, vue.unref)(whiteboardPageOffsets),
23954
+ enabled: (0, vue.unref)(whiteboardEnabled),
23955
+ interactive: whiteboardInteractive.value,
23956
+ opacity: (0, vue.unref)(whiteboardOpacity)
23957
+ }, null, 8, [
23958
+ "whiteboard",
23959
+ "pages",
23960
+ "page-sizes",
23961
+ "page-offsets",
23962
+ "enabled",
23963
+ "interactive",
23964
+ "opacity"
23965
+ ])) : (0, vue.createCommentVNode)("", true),
23966
+ shouldRenderPdfCommentAnchors.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(PdfCommentsLayer_default, {
23967
+ key: 2,
23968
+ onAnchorActivate: handleHighlightClick
23969
+ })) : (0, vue.createCommentVNode)("", true)
23970
+ ])
23971
+ ], 512),
23870
23972
  showCommentsSidebar.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
23871
23973
  key: 1,
23872
23974
  ref_key: "rightSidebarRef",
23873
23975
  ref: rightSidebarRef,
23874
23976
  class: "superdoc__right-sidebar right-sidebar"
23875
- }, [(0, vue.createElementVNode)("div", _hoisted_4$7, [(0, vue.unref)(hasInitializedLocations) && (floatingComments.value.length > 0 || (0, vue.unref)(pendingComment)) ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)((0, vue.unref)(documentsWithConverations), (doc) => {
23977
+ }, [(0, vue.createElementVNode)("div", _hoisted_6$4, [(0, vue.unref)(hasInitializedLocations) && (floatingComments.value.length > 0 || (0, vue.unref)(pendingComment)) ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)((0, vue.unref)(documentsWithConverations), (doc) => {
23876
23978
  return (0, vue.openBlock)(), (0, vue.createBlock)(FloatingComments_default, {
23877
23979
  parent: layers.value,
23878
23980
  "current-document": doc
@@ -23890,7 +23992,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23890
23992
  ], 38);
23891
23993
  };
23892
23994
  }
23893
- }, [["__scopeId", "data-v-31bb6dd9"]]);
23995
+ }, [["__scopeId", "data-v-01062725"]]);
23894
23996
  //#endregion
23895
23997
  //#region src/core/create-app.js
23896
23998
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -45086,7 +45188,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
45086
45188
  this.config.colors = shuffleArray(this.config.colors);
45087
45189
  this.userColorMap = /* @__PURE__ */ new Map();
45088
45190
  this.colorIndex = 0;
45089
- this.version = "2.11.0-next.8";
45191
+ this.version = "2.11.0";
45090
45192
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
45091
45193
  this.superdocId = config.superdocId || require_uuid.v4();
45092
45194
  this.colors = this.config.colors ?? [];