superdoc 1.0.0-beta.24 → 1.0.0-beta.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/chunks/{PdfViewer-CK4E4ACv.cjs → PdfViewer-DLnlLYCn.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-CiBsNO1v.es.js → PdfViewer-GRWTCGvV.es.js} +1 -1
  3. package/dist/chunks/{index-CL73U2p8-BdN7dtTr.es.js → index-C-8nsTfX-LNso9zdo.es.js} +1 -1
  4. package/dist/chunks/{index-CL73U2p8-D3kkjumx.cjs → index-C-8nsTfX-NXZz_sJC.cjs} +1 -1
  5. package/dist/chunks/{index-6o2OEd1U.es.js → index-COABn1uy.es.js} +3 -3
  6. package/dist/chunks/{index-B50-Rjff.cjs → index-Di02o4N2.cjs} +3 -3
  7. package/dist/chunks/{super-editor.es-DMX5nMSJ.es.js → super-editor.es-B_4HKfa9.es.js} +18 -10
  8. package/dist/chunks/{super-editor.es-Dry7yajX.cjs → super-editor.es-CgAkPiiu.cjs} +18 -10
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-C_ULWSY6.js → converter-B-8ulzNR.js} +1 -1
  11. package/dist/super-editor/chunks/{docx-zipper-Be0umi4U.js → docx-zipper-BOnxck-I.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-CtOkDN-3.js → editor-CNnsYbPC.js} +19 -11
  13. package/dist/super-editor/chunks/{index-CL73U2p8.js → index-C-8nsTfX.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-COfsDMDg.js → toolbar-mT27O13X.js} +2 -2
  15. package/dist/super-editor/converter.es.js +1 -1
  16. package/dist/super-editor/docx-zipper.es.js +2 -2
  17. package/dist/super-editor/editor.es.js +3 -3
  18. package/dist/super-editor/file-zipper.es.js +1 -1
  19. package/dist/super-editor/super-editor.es.js +6 -6
  20. package/dist/super-editor/toolbar.es.js +2 -2
  21. package/dist/super-editor.cjs +1 -1
  22. package/dist/super-editor.es.js +1 -1
  23. package/dist/superdoc.cjs +2 -2
  24. package/dist/superdoc.es.js +2 -2
  25. package/dist/superdoc.umd.js +20 -12
  26. package/dist/superdoc.umd.js.map +1 -1
  27. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-jWLMl8Ts.cjs");
4
- const superdoc = require("./index-B50-Rjff.cjs");
4
+ const superdoc = require("./index-Di02o4N2.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  import { y as defineComponent, z as h, O as Transition, a0 as process$1, J as watchEffect, a as computed, r as ref, j as onMounted, W as onUnmounted, b as createElementBlock, o as openBlock, f as createBaseVNode, e as createCommentVNode, u as createVNode, v as unref } from "./vue-Dysv_7z5.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-6o2OEd1U.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-COABn1uy.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,4 +1,4 @@
1
- import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-DMX5nMSJ.es.js";
1
+ import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-B_4HKfa9.es.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG-CvBqQJbG.es.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./super-editor.es-Dry7yajX.cjs");
3
+ const superEditor_es = require("./super-editor.es-CgAkPiiu.cjs");
4
4
  const indexCvBqQJbG = require("./index-CvBqQJbG-Dwm0THD7.cjs");
5
5
  function bail(error) {
6
6
  if (error) {
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-DMX5nMSJ.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-B_4HKfa9.es.js";
2
2
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
3
3
  import { E as EventEmitter } from "./eventemitter3-CcXAdeql.es.js";
4
4
  import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
@@ -17214,7 +17214,7 @@ const _sfc_main = {
17214
17214
  __name: "SuperDoc",
17215
17215
  emits: ["selection-update"],
17216
17216
  setup(__props, { emit: __emit }) {
17217
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CiBsNO1v.es.js"));
17217
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-GRWTCGvV.es.js"));
17218
17218
  const superdocStore = useSuperdocStore();
17219
17219
  const commentsStore = useCommentsStore();
17220
17220
  const {
@@ -18067,7 +18067,7 @@ class SuperDoc extends EventEmitter {
18067
18067
  this.config.colors = shuffleArray(this.config.colors);
18068
18068
  this.userColorMap = /* @__PURE__ */ new Map();
18069
18069
  this.colorIndex = 0;
18070
- this.version = "1.0.0-beta.24";
18070
+ this.version = "1.0.0-beta.26";
18071
18071
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18072
18072
  this.superdocId = config.superdocId || v4();
18073
18073
  this.colors = this.config.colors;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-Dry7yajX.cjs");
2
+ const superEditor_es = require("./super-editor.es-CgAkPiiu.cjs");
3
3
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
4
4
  const eventemitter3 = require("./eventemitter3-DQmQUge-.cjs");
5
5
  const provider = require("@hocuspocus/provider");
@@ -17231,7 +17231,7 @@ const _sfc_main = {
17231
17231
  __name: "SuperDoc",
17232
17232
  emits: ["selection-update"],
17233
17233
  setup(__props, { emit: __emit }) {
17234
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-CK4E4ACv.cjs")));
17234
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-DLnlLYCn.cjs")));
17235
17235
  const superdocStore = useSuperdocStore();
17236
17236
  const commentsStore = useCommentsStore();
17237
17237
  const {
@@ -18084,7 +18084,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
18084
18084
  this.config.colors = shuffleArray(this.config.colors);
18085
18085
  this.userColorMap = /* @__PURE__ */ new Map();
18086
18086
  this.colorIndex = 0;
18087
- this.version = "1.0.0-beta.24";
18087
+ this.version = "1.0.0-beta.26";
18088
18088
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18089
18089
  this.superdocId = config.superdocId || uuid.v4();
18090
18090
  this.colors = this.config.colors;
@@ -41839,7 +41839,7 @@ const _SuperConverter = class _SuperConverter2 {
41839
41839
  static getStoredSuperdocVersion(docx) {
41840
41840
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
41841
41841
  }
41842
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.24") {
41842
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.26") {
41843
41843
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
41844
41844
  }
41845
41845
  /**
@@ -57772,8 +57772,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
57772
57772
  }
57773
57773
  const newXml = await editor.exportDocx({ getUpdatedDocs: true });
57774
57774
  if (!newXml || typeof newXml !== "object") return;
57775
+ let hasChanges = false;
57775
57776
  Object.keys(newXml).forEach((key2) => {
57776
57777
  const fileIndex = docx.findIndex((item) => item.name === key2);
57778
+ const existingContent = fileIndex > -1 ? docx[fileIndex].content : null;
57779
+ if (existingContent === newXml[key2]) {
57780
+ return;
57781
+ }
57782
+ hasChanges = true;
57777
57783
  if (fileIndex > -1) {
57778
57784
  docx.splice(fileIndex, 1);
57779
57785
  }
@@ -57782,12 +57788,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
57782
57788
  content: newXml[key2]
57783
57789
  });
57784
57790
  });
57785
- ydoc.transact(
57786
- () => {
57787
- metaMap.set("docx", docx);
57788
- },
57789
- { event: "docx-update", user: editor.options.user }
57790
- );
57791
+ if (hasChanges || !docxValue) {
57792
+ ydoc.transact(
57793
+ () => {
57794
+ metaMap.set("docx", docx);
57795
+ },
57796
+ { event: "docx-update", user: editor.options.user }
57797
+ );
57798
+ }
57791
57799
  } catch (error) {
57792
57800
  console.warn("[collaboration] Failed to update Ydoc docx data", error);
57793
57801
  }
@@ -59004,7 +59012,7 @@ const isHeadless = (editor) => {
59004
59012
  const shouldSkipNodeView = (editor) => {
59005
59013
  return isHeadless(editor);
59006
59014
  };
59007
- const summaryVersion = "1.0.0-beta.24";
59015
+ const summaryVersion = "1.0.0-beta.26";
59008
59016
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
59009
59017
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
59010
59018
  function mapAttributes(attrs) {
@@ -59793,7 +59801,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
59793
59801
  { default: remarkStringify },
59794
59802
  { default: remarkGfm }
59795
59803
  ] = await Promise.all([
59796
- import("./index-CL73U2p8-BdN7dtTr.es.js"),
59804
+ import("./index-C-8nsTfX-LNso9zdo.es.js"),
59797
59805
  import("./index-DRCvimau-Cw339678.es.js"),
59798
59806
  import("./index-C_x_N6Uh-DJn8hIEt.es.js"),
59799
59807
  import("./index-D_sWOSiG-DE96TaT5.es.js"),
@@ -59998,7 +60006,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
59998
60006
  * Process collaboration migrations
59999
60007
  */
60000
60008
  processCollaborationMigrations() {
60001
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.24");
60009
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.26");
60002
60010
  if (!this.options.ydoc) return;
60003
60011
  const metaMap = this.options.ydoc.getMap("meta");
60004
60012
  let docVersion = metaMap.get("version");
@@ -41856,7 +41856,7 @@ const _SuperConverter = class _SuperConverter2 {
41856
41856
  static getStoredSuperdocVersion(docx) {
41857
41857
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
41858
41858
  }
41859
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.24") {
41859
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.26") {
41860
41860
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
41861
41861
  }
41862
41862
  /**
@@ -57789,8 +57789,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
57789
57789
  }
57790
57790
  const newXml = await editor.exportDocx({ getUpdatedDocs: true });
57791
57791
  if (!newXml || typeof newXml !== "object") return;
57792
+ let hasChanges = false;
57792
57793
  Object.keys(newXml).forEach((key2) => {
57793
57794
  const fileIndex = docx.findIndex((item) => item.name === key2);
57795
+ const existingContent = fileIndex > -1 ? docx[fileIndex].content : null;
57796
+ if (existingContent === newXml[key2]) {
57797
+ return;
57798
+ }
57799
+ hasChanges = true;
57794
57800
  if (fileIndex > -1) {
57795
57801
  docx.splice(fileIndex, 1);
57796
57802
  }
@@ -57799,12 +57805,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
57799
57805
  content: newXml[key2]
57800
57806
  });
57801
57807
  });
57802
- ydoc.transact(
57803
- () => {
57804
- metaMap.set("docx", docx);
57805
- },
57806
- { event: "docx-update", user: editor.options.user }
57807
- );
57808
+ if (hasChanges || !docxValue) {
57809
+ ydoc.transact(
57810
+ () => {
57811
+ metaMap.set("docx", docx);
57812
+ },
57813
+ { event: "docx-update", user: editor.options.user }
57814
+ );
57815
+ }
57808
57816
  } catch (error) {
57809
57817
  console.warn("[collaboration] Failed to update Ydoc docx data", error);
57810
57818
  }
@@ -59021,7 +59029,7 @@ const isHeadless = (editor) => {
59021
59029
  const shouldSkipNodeView = (editor) => {
59022
59030
  return isHeadless(editor);
59023
59031
  };
59024
- const summaryVersion = "1.0.0-beta.24";
59032
+ const summaryVersion = "1.0.0-beta.26";
59025
59033
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
59026
59034
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
59027
59035
  function mapAttributes(attrs) {
@@ -59810,7 +59818,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
59810
59818
  { default: remarkStringify },
59811
59819
  { default: remarkGfm }
59812
59820
  ] = await Promise.all([
59813
- Promise.resolve().then(() => require("./index-CL73U2p8-D3kkjumx.cjs")),
59821
+ Promise.resolve().then(() => require("./index-C-8nsTfX-NXZz_sJC.cjs")),
59814
59822
  Promise.resolve().then(() => require("./index-DRCvimau-H4Ck3S9a.cjs")),
59815
59823
  Promise.resolve().then(() => require("./index-C_x_N6Uh-Db3CUJMX.cjs")),
59816
59824
  Promise.resolve().then(() => require("./index-D_sWOSiG-BtDZzJ6I.cjs")),
@@ -60015,7 +60023,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60015
60023
  * Process collaboration migrations
60016
60024
  */
60017
60025
  processCollaborationMigrations() {
60018
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.24");
60026
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.26");
60019
60027
  if (!this.options.ydoc) return;
60020
60028
  const metaMap = this.options.ydoc.getMap("meta");
60021
60029
  let docVersion = metaMap.get("version");
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
2
- import { T as TextSelection } from "./chunks/converter-C_ULWSY6.js";
3
- import { _ as _export_sfc } from "./chunks/editor-CtOkDN-3.js";
2
+ import { T as TextSelection } from "./chunks/converter-B-8ulzNR.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-CNnsYbPC.js";
4
4
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
5
5
  const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
6
6
  async function baseInsightsFetch(payload, options = {}) {
@@ -42120,7 +42120,7 @@ const _SuperConverter = class _SuperConverter {
42120
42120
  static getStoredSuperdocVersion(docx) {
42121
42121
  return _SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
42122
42122
  }
42123
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.24") {
42123
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.26") {
42124
42124
  return _SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
42125
42125
  }
42126
42126
  /**
@@ -1,4 +1,4 @@
1
- import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-C_ULWSY6.js";
1
+ import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-B-8ulzNR.js";
2
2
  function commonjsRequire(path) {
3
3
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -12,8 +12,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, dispatchWithFallback_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, getPluginKeyName_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _map, _editor2, _descriptors, _collections, _editorEntries, _maxCachedEditors, _editorAccessOrder, _pendingCreations, _cacheHits, _cacheMisses, _evictions, _HeaderFooterEditorManager_instances, hasConverter_fn, extractCollections_fn, collectDescriptors_fn, teardownMissingEditors_fn, teardownEditors_fn, createEditor_fn, createEditorContainer_fn, registerConverterEditor_fn, unregisterConverterEditor_fn, updateAccessOrder_fn, enforceCacheSizeLimit_fn, _manager, _mediaFiles, _blockCache, _HeaderFooterLayoutAdapter_instances, getBlocks_fn, getConverterContext_fn, _selectionOverlay, _activeEditorHost, _activeDecorationContainer, _activeRegion, _borderLine, _dimmingOverlay, _EditorOverlayManager_instances, findDecorationContainer_fn, ensureEditorHost_fn, positionEditorHost_fn, hideDimmingOverlay_fn, showHeaderFooterBorder_fn, hideHeaderFooterBorder_fn, _instances, _options, _editor3, _visibleHost, _viewportHost, _painterHost, _selectionOverlay2, _hiddenHost, _layoutOptions, _layoutState, _domPainter, _layoutError, _layoutErrorState, _errorBanner, _errorBannerMessage, _telemetryEmitter, _renderScheduled, _pendingDocChange, _isRerendering, _selectionUpdateScheduled, _remoteCursorUpdateScheduled, _rafHandle, _editorListeners, _sectionMetadata, _documentMode, _inputBridge, _trackedChangesMode, _trackedChangesEnabled, _trackedChangesOverrides, _headerFooterManager, _headerFooterAdapter, _headerFooterIdentifier, _multiSectionIdentifier, _headerLayoutResults, _footerLayoutResults, _headerLayoutsByRId, _footerLayoutsByRId, _headerDecorationProvider, _footerDecorationProvider, _headerFooterManagerCleanups, _headerRegions, _footerRegions, _session, _activeHeaderFooterEditor, _overlayManager, _hoverOverlay, _hoverTooltip, _modeBanner, _ariaLiveRegion, _hoverRegion, _clickCount, _lastClickTime, _lastClickPosition, _lastSelectedImageBlockId, _remoteCursorState, _remoteCursorDirty, _remoteCursorOverlay, _localSelectionLayer, _awarenessCleanup, _scrollCleanup, _remoteCursorRafHandle, _scrollTimeout, _PresentationEditor_instances, aggregateLayoutBounds_fn, safeCleanup_fn, setupEditorListeners_fn, setupCollaborationCursors_fn, normalizeAwarenessStates_fn, getFallbackColor_fn, getValidatedColor_fn, scheduleRemoteCursorUpdate_fn, scheduleRemoteCursorReRender_fn, updateRemoteCursors_fn, renderRemoteCursors_fn, renderRemoteCaret_fn, renderRemoteCursorLabel_fn, renderRemoteSelection_fn, setupPointerHandlers_fn, setupInputBridge_fn, initHeaderFooterRegistry_fn, _handlePointerDown, getFirstTextPosition_fn, registerPointerClick_fn, selectWordAt_fn, selectParagraphAt_fn, isWordCharacter_fn, _handlePointerMove, _handlePointerLeave, _handleDoubleClick, _handleKeyDown, focusHeaderFooterShortcut_fn, scheduleRerender_fn, flushRerenderQueue_fn, rerender_fn, ensurePainter_fn, scheduleSelectionUpdate_fn, updateSelection_fn, resolveLayoutOptions_fn, buildHeaderFooterInput_fn, computeHeaderFooterConstraints_fn, layoutPerRIdHeaderFooters_fn, updateDecorationProviders_fn, createDecorationProvider_fn, findHeaderFooterPageForPageNumber_fn, computeDecorationBox_fn, rebuildHeaderFooterRegions_fn, hitTestHeaderFooterRegion_fn, pointInRegion_fn, activateHeaderFooterRegion_fn, enterHeaderFooterMode_fn, exitHeaderFooterMode_fn, getActiveDomTarget_fn, emitHeaderFooterModeChanged_fn, emitHeaderFooterEditingContext_fn, updateAwarenessSession_fn, updateModeBanner_fn, announce_fn, validateHeaderFooterEditPermission_fn, emitHeaderFooterEditBlocked_fn, resolveDescriptorForRegion_fn, createDefaultHeaderFooter_fn, getPageElement_fn, scrollPageIntoView_fn, waitForPageMount_fn, getBodyPageHeight_fn, getHeaderFooterPageHeight_fn, renderSelectionRects_fn, renderHoverRegion_fn, clearHoverRegion_fn, renderCaretOverlay_fn, getHeaderFooterContext_fn, computeHeaderFooterSelectionRects_fn, syncTrackedChangesPreferences_fn, deriveTrackedChangesMode_fn, deriveTrackedChangesEnabled_fn, getTrackChangesPluginState_fn, computeDefaultLayoutDefaults_fn, parseColumns_fn, inchesToPx_fn, applyZoom_fn, createLayoutMetrics_fn, convertPageLocalToOverlayCoords_fn, normalizeClientPoint_fn, computeCaretLayoutRect_fn, computeCaretLayoutRectFromDOM_fn, computeTableCaretLayoutRect_fn, findLineContainingPos_fn, lineHeightBeforeIndex_fn, getCurrentPageIndex_fn, findRegionForPage_fn, handleLayoutError_fn, decorateError_fn, showLayoutErrorBanner_fn, dismissErrorBanner_fn, createHiddenHost_fn, _windowRoot, _layoutSurfaces, _getTargetDom, _isEditable, _onTargetChanged, _listeners, _currentTarget, _destroyed, _useWindowFallback, _PresentationInputBridge_instances, addListener_fn, dispatchToTarget_fn, forwardKeyboardEvent_fn, forwardTextEvent_fn, forwardCompositionEvent_fn, forwardContextMenu_fn, isEventOnActiveTarget_fn, shouldSkipSurface_fn, isInLayoutSurface_fn, getListenerTargets_fn, isPlainCharacterKey_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ParagraphNodeView_instances, checkShouldUpdate_fn, updateHTMLAttributes_fn, updateDOMStyles_fn, resolveNeighborParagraphProperties_fn, updateListStyles_fn, initList_fn, checkIsList_fn, createMarker_fn, createSeparator_fn, calculateTabSeparatorStyle_fn, calculateMarkerStyle_fn, removeList_fn, getParagraphContext_fn, scheduleAnimation_fn, cancelScheduledAnimation_fn, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn, _VectorShapeView_instances, ensureParentPositioned_fn, _ShapeGroupView_instances, ensureParentPositioned_fn2;
13
13
  import * as Y from "yjs";
14
14
  import { UndoManager, Item as Item$1, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
15
- import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName, $ as TrackInsertMarkName, a0 as v4, a1 as TrackFormatMarkName, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as resolveParagraphProperties, ak as _getReferencedTableStyles, al as parseSizeUnit, am as minMax, an as updateDOMAttributes, ao as findChildren$5, ap as generateRandomSigned32BitIntStrId, aq as decodeRPrFromMarks, ar as calculateResolvedParagraphProperties, as as encodeCSSFromPPr, at as twipsToPixels$2, au as resolveRunProperties, av as encodeCSSFromRPr, aw as generateOrderedListIndex, ax as docxNumberingHelpers, ay as InputRule, az as convertSizeToCSS, aA as SelectionRange, aB as Transform, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-C_ULWSY6.js";
16
- import { D as DocxZipper } from "./docx-zipper-Be0umi4U.js";
15
+ import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName, $ as TrackInsertMarkName, a0 as v4, a1 as TrackFormatMarkName, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as resolveParagraphProperties, ak as _getReferencedTableStyles, al as parseSizeUnit, am as minMax, an as updateDOMAttributes, ao as findChildren$5, ap as generateRandomSigned32BitIntStrId, aq as decodeRPrFromMarks, ar as calculateResolvedParagraphProperties, as as encodeCSSFromPPr, at as twipsToPixels$2, au as resolveRunProperties, av as encodeCSSFromRPr, aw as generateOrderedListIndex, ax as docxNumberingHelpers, ay as InputRule, az as convertSizeToCSS, aA as SelectionRange, aB as Transform, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-B-8ulzNR.js";
16
+ import { D as DocxZipper } from "./docx-zipper-BOnxck-I.js";
17
17
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
@@ -12650,8 +12650,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
12650
12650
  }
12651
12651
  const newXml = await editor.exportDocx({ getUpdatedDocs: true });
12652
12652
  if (!newXml || typeof newXml !== "object") return;
12653
+ let hasChanges = false;
12653
12654
  Object.keys(newXml).forEach((key2) => {
12654
12655
  const fileIndex = docx.findIndex((item) => item.name === key2);
12656
+ const existingContent = fileIndex > -1 ? docx[fileIndex].content : null;
12657
+ if (existingContent === newXml[key2]) {
12658
+ return;
12659
+ }
12660
+ hasChanges = true;
12655
12661
  if (fileIndex > -1) {
12656
12662
  docx.splice(fileIndex, 1);
12657
12663
  }
@@ -12660,12 +12666,14 @@ const updateYdocDocxData = async (editor, ydoc) => {
12660
12666
  content: newXml[key2]
12661
12667
  });
12662
12668
  });
12663
- ydoc.transact(
12664
- () => {
12665
- metaMap.set("docx", docx);
12666
- },
12667
- { event: "docx-update", user: editor.options.user }
12668
- );
12669
+ if (hasChanges || !docxValue) {
12670
+ ydoc.transact(
12671
+ () => {
12672
+ metaMap.set("docx", docx);
12673
+ },
12674
+ { event: "docx-update", user: editor.options.user }
12675
+ );
12676
+ }
12669
12677
  } catch (error) {
12670
12678
  console.warn("[collaboration] Failed to update Ydoc docx data", error);
12671
12679
  }
@@ -13905,7 +13913,7 @@ const isHeadless = (editor) => {
13905
13913
  const shouldSkipNodeView = (editor) => {
13906
13914
  return isHeadless(editor);
13907
13915
  };
13908
- const summaryVersion = "1.0.0-beta.24";
13916
+ const summaryVersion = "1.0.0-beta.26";
13909
13917
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
13910
13918
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
13911
13919
  function mapAttributes(attrs) {
@@ -14697,7 +14705,7 @@ const _Editor = class _Editor extends EventEmitter {
14697
14705
  { default: remarkStringify },
14698
14706
  { default: remarkGfm }
14699
14707
  ] = await Promise.all([
14700
- import("./index-CL73U2p8.js"),
14708
+ import("./index-C-8nsTfX.js"),
14701
14709
  import("./index-DRCvimau.js"),
14702
14710
  import("./index-C_x_N6Uh.js"),
14703
14711
  import("./index-D_sWOSiG.js"),
@@ -14902,7 +14910,7 @@ const _Editor = class _Editor extends EventEmitter {
14902
14910
  * Process collaboration migrations
14903
14911
  */
14904
14912
  processCollaborationMigrations() {
14905
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.24");
14913
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.26");
14906
14914
  if (!this.options.ydoc) return;
14907
14915
  const metaMap = this.options.ydoc.getMap("meta");
14908
14916
  let docVersion = metaMap.get("version");
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-C_ULWSY6.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-B-8ulzNR.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, onMounted, onBeforeUnmount, createVNode, readonly, watch, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, h, Teleport, toRef, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, renderList, withCtx } from "vue";
2
- import { p as process$1 } from "./converter-C_ULWSY6.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CtOkDN-3.js";
2
+ import { p as process$1 } from "./converter-B-8ulzNR.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CNnsYbPC.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -1,4 +1,4 @@
1
- import { ac } from "./chunks/converter-C_ULWSY6.js";
1
+ import { ac } from "./chunks/converter-B-8ulzNR.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-C_ULWSY6.js";
2
- import { D } from "./chunks/docx-zipper-Be0umi4U.js";
1
+ import "./chunks/converter-B-8ulzNR.js";
2
+ import { D } from "./chunks/docx-zipper-BOnxck-I.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-CtOkDN-3.js";
2
- import "./chunks/converter-C_ULWSY6.js";
3
- import "./chunks/docx-zipper-Be0umi4U.js";
1
+ import { E } from "./chunks/editor-CNnsYbPC.js";
2
+ import "./chunks/converter-B-8ulzNR.js";
3
+ import "./chunks/docx-zipper-BOnxck-I.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-Be0umi4U.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-BOnxck-I.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -9,14 +9,14 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
11
11
  var _MARK_TOGGLE_NAMES, _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, enrichTrackedChanges_fn, runCommandWithArgumentOnly_fn, syncStickyMarksFromState_fn, restoreStickyMarksIfNeeded_fn, ensureStoredMarksForMarkToggle_fn;
12
- import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, ar as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, al as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-C_ULWSY6.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-C_ULWSY6.js";
14
- import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as measureCache, n as isHeadless, E as Editor, o as getStarterExtensions, P as PresentationEditor, p as Placeholder, q as getRichTextExtensions, D as DecorationSet, t as Decoration, M as Mark, v as Extension, A as Attribute, N as Node } from "./chunks/editor-CtOkDN-3.js";
15
- import { z, F, B, T, w, C, x } from "./chunks/editor-CtOkDN-3.js";
12
+ import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, ar as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, al as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-B-8ulzNR.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-B-8ulzNR.js";
14
+ import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as measureCache, n as isHeadless, E as Editor, o as getStarterExtensions, P as PresentationEditor, p as Placeholder, q as getRichTextExtensions, D as DecorationSet, t as Decoration, M as Mark, v as Extension, A as Attribute, N as Node } from "./chunks/editor-CNnsYbPC.js";
15
+ import { z, F, B, T, w, C, x } from "./chunks/editor-CNnsYbPC.js";
16
16
  import { ref, onMounted, createElementBlock, openBlock, normalizeClass, unref, Fragment, renderList, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, computed, watch, withDirectives, withKeys, vModelText, createTextVNode, createVNode, h, createApp, markRaw, nextTick, onBeforeUnmount, defineComponent, reactive, onUnmounted, renderSlot, useCssVars, shallowRef, createBlock, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
17
- import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-COfsDMDg.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-mT27O13X.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-Be0umi4U.js";
19
+ import { D } from "./chunks/docx-zipper-BOnxck-I.js";
20
20
  import { createZip } from "./file-zipper.es.js";
21
21
  var eventemitter3 = { exports: {} };
22
22
  var hasRequiredEventemitter3;
@@ -1,6 +1,6 @@
1
1
  import "vue";
2
- import { T } from "./chunks/toolbar-COfsDMDg.js";
3
- import "./chunks/editor-CtOkDN-3.js";
2
+ import { T } from "./chunks/toolbar-mT27O13X.js";
3
+ import "./chunks/editor-CNnsYbPC.js";
4
4
  export {
5
5
  T as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-Dry7yajX.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CgAkPiiu.cjs");
4
4
  require("./chunks/vue-jWLMl8Ts.cjs");
5
5
  exports.AIWriter = superEditor_es.AIWriter;
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,4 +1,4 @@
1
- import { A, a, _, C, D, E, b, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-DMX5nMSJ.es.js";
1
+ import { A, a, _, C, D, E, b, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-B_4HKfa9.es.js";
2
2
  import "./chunks/vue-Dysv_7z5.es.js";
3
3
  export {
4
4
  A as AIWriter,
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-Dry7yajX.cjs");
4
- const superdoc = require("./chunks/index-B50-Rjff.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CgAkPiiu.cjs");
4
+ const superdoc = require("./chunks/index-Di02o4N2.cjs");
5
5
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
7
7
  exports.Editor = superEditor_es.Editor;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-DMX5nMSJ.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-6o2OEd1U.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-B_4HKfa9.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-COABn1uy.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,
@@ -41857,7 +41857,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
41857
41857
  static getStoredSuperdocVersion(docx) {
41858
41858
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
41859
41859
  }
41860
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.24") {
41860
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.26") {
41861
41861
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
41862
41862
  }
41863
41863
  /**
@@ -65647,8 +65647,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
65647
65647
  }
65648
65648
  const newXml = await editor.exportDocx({ getUpdatedDocs: true });
65649
65649
  if (!newXml || typeof newXml !== "object") return;
65650
+ let hasChanges = false;
65650
65651
  Object.keys(newXml).forEach((key2) => {
65651
65652
  const fileIndex = docx.findIndex((item) => item.name === key2);
65653
+ const existingContent = fileIndex > -1 ? docx[fileIndex].content : null;
65654
+ if (existingContent === newXml[key2]) {
65655
+ return;
65656
+ }
65657
+ hasChanges = true;
65652
65658
  if (fileIndex > -1) {
65653
65659
  docx.splice(fileIndex, 1);
65654
65660
  }
@@ -65657,12 +65663,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
65657
65663
  content: newXml[key2]
65658
65664
  });
65659
65665
  });
65660
- ydoc.transact(
65661
- () => {
65662
- metaMap.set("docx", docx);
65663
- },
65664
- { event: "docx-update", user: editor.options.user }
65665
- );
65666
+ if (hasChanges || !docxValue) {
65667
+ ydoc.transact(
65668
+ () => {
65669
+ metaMap.set("docx", docx);
65670
+ },
65671
+ { event: "docx-update", user: editor.options.user }
65672
+ );
65673
+ }
65666
65674
  } catch (error) {
65667
65675
  console.warn("[collaboration] Failed to update Ydoc docx data", error);
65668
65676
  }
@@ -66879,7 +66887,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
66879
66887
  const shouldSkipNodeView = (editor) => {
66880
66888
  return isHeadless(editor);
66881
66889
  };
66882
- const summaryVersion = "1.0.0-beta.24";
66890
+ const summaryVersion = "1.0.0-beta.26";
66883
66891
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
66884
66892
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
66885
66893
  function mapAttributes(attrs) {
@@ -67668,7 +67676,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
67668
67676
  { default: remarkStringify2 },
67669
67677
  { default: remarkGfm2 }
67670
67678
  ] = await Promise.all([
67671
- Promise.resolve().then(() => indexCL73U2p8),
67679
+ Promise.resolve().then(() => indexC8nsTfX),
67672
67680
  Promise.resolve().then(() => indexDRCvimau),
67673
67681
  Promise.resolve().then(() => indexC_x_N6Uh),
67674
67682
  Promise.resolve().then(() => indexD_sWOSiG),
@@ -67873,7 +67881,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
67873
67881
  * Process collaboration migrations
67874
67882
  */
67875
67883
  processCollaborationMigrations() {
67876
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.24");
67884
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.26");
67877
67885
  if (!this.options.ydoc) return;
67878
67886
  const metaMap = this.options.ydoc.getMap("meta");
67879
67887
  let docVersion = metaMap.get("version");
@@ -145637,7 +145645,7 @@ ${style2}
145637
145645
  this.config.colors = shuffleArray(this.config.colors);
145638
145646
  this.userColorMap = /* @__PURE__ */ new Map();
145639
145647
  this.colorIndex = 0;
145640
- this.version = "1.0.0-beta.24";
145648
+ this.version = "1.0.0-beta.26";
145641
145649
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
145642
145650
  this.superdocId = config2.superdocId || v4();
145643
145651
  this.colors = this.config.colors;
@@ -148082,7 +148090,7 @@ ${style2}
148082
148090
  value && typeof value === "object" && "byteLength" in value && "byteOffset" in value
148083
148091
  );
148084
148092
  }
148085
- const indexCL73U2p8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
148093
+ const indexC8nsTfX = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
148086
148094
  __proto__: null,
148087
148095
  unified
148088
148096
  }, Symbol.toStringTag, { value: "Module" }));