superdoc 2.28.0-next.15 → 2.28.0-next.16

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.
@@ -10234,20 +10234,36 @@ function createSuperDocUI(options) {
10234
10234
  lastOptimisticInlineSelectionSignature = selectionInlineValueSignature(state.selection);
10235
10235
  let scheduleActiveSearchRefresh = () => {};
10236
10236
  const documentChangeListeners = /* @__PURE__ */ new Set();
10237
- let documentChangeEpoch = 0;
10238
- let documentChangeSeq = 0;
10239
- const startDocumentChangeEpoch = () => {
10240
- documentChangeEpoch += 1;
10241
- documentChangeSeq = 0;
10242
- };
10243
- const publishDocumentChange = (event) => {
10237
+ const documentChangeCounters = /* @__PURE__ */ new WeakMap();
10238
+ let documentEpochCount = 0;
10239
+ const readDocumentReplacement = (host) => safeCall(() => hostMethod(host, "getDocumentReplacementVersion")?.(), null);
10240
+ const startDocumentChangeEpoch = (host) => {
10241
+ documentEpochCount += 1;
10242
+ const counter = {
10243
+ epoch: `document-${documentEpochCount}`,
10244
+ seq: 0,
10245
+ replacement: readDocumentReplacement(host)
10246
+ };
10247
+ documentChangeCounters.set(host, counter);
10248
+ return counter;
10249
+ };
10250
+ const currentDocumentChangeCounter = (host) => {
10251
+ const counter = documentChangeCounters.get(host);
10252
+ return counter && counter.replacement === readDocumentReplacement(host) ? counter : startDocumentChangeEpoch(host);
10253
+ };
10254
+ const publishDocumentChange = (host, event) => {
10255
+ if (event.type === "collaboration:document-replaced" || event.documentReplaced === true) {
10256
+ startDocumentChangeEpoch(host);
10257
+ return;
10258
+ }
10244
10259
  if (documentChangeListeners.size === 0) return;
10245
10260
  const facts = documentChangeFromHostEvent(event);
10246
10261
  if (!facts) return;
10247
- documentChangeSeq += 1;
10262
+ const counter = currentDocumentChangeCounter(host);
10263
+ counter.seq += 1;
10248
10264
  const change = {
10249
- documentEpoch: `document-${documentChangeEpoch}`,
10250
- seq: documentChangeSeq,
10265
+ documentEpoch: counter.epoch,
10266
+ seq: counter.seq,
10251
10267
  ...facts
10252
10268
  };
10253
10269
  for (const listener of Array.from(documentChangeListeners)) safeCall(() => listener(change), void 0);
@@ -10270,8 +10286,7 @@ function createSuperDocUI(options) {
10270
10286
  try {
10271
10287
  const off = hostMethod(next, "subscribe")?.((event) => {
10272
10288
  const type = event?.type;
10273
- if (type === "collaboration:document-replaced") startDocumentChangeEpoch();
10274
- publishDocumentChange(event);
10289
+ if (host) publishDocumentChange(host, event);
10275
10290
  const isStandaloneDocumentMutation = type === "document:mutated" && event.hasCommitEvent !== true;
10276
10291
  if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedDocument(event) || type === "collaboration:remote-changed") {
10277
10292
  for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
@@ -13830,7 +13845,6 @@ function createSuperDocUI(options) {
13830
13845
  return () => documentChangeListeners.delete(listener);
13831
13846
  }
13832
13847
  };
13833
- documentResetHooks.push(startDocumentChangeEpoch);
13834
13848
  const resolveVisibleHost = () => {
13835
13849
  if (typeof HTMLElement === "undefined") return null;
13836
13850
  const mountContainer = (getEditor()?.mount)?.container;
@@ -10233,20 +10233,36 @@ function createSuperDocUI(options) {
10233
10233
  lastOptimisticInlineSelectionSignature = selectionInlineValueSignature(state.selection);
10234
10234
  let scheduleActiveSearchRefresh = () => {};
10235
10235
  const documentChangeListeners = /* @__PURE__ */ new Set();
10236
- let documentChangeEpoch = 0;
10237
- let documentChangeSeq = 0;
10238
- const startDocumentChangeEpoch = () => {
10239
- documentChangeEpoch += 1;
10240
- documentChangeSeq = 0;
10241
- };
10242
- const publishDocumentChange = (event) => {
10236
+ const documentChangeCounters = /* @__PURE__ */ new WeakMap();
10237
+ let documentEpochCount = 0;
10238
+ const readDocumentReplacement = (host) => safeCall(() => hostMethod(host, "getDocumentReplacementVersion")?.(), null);
10239
+ const startDocumentChangeEpoch = (host) => {
10240
+ documentEpochCount += 1;
10241
+ const counter = {
10242
+ epoch: `document-${documentEpochCount}`,
10243
+ seq: 0,
10244
+ replacement: readDocumentReplacement(host)
10245
+ };
10246
+ documentChangeCounters.set(host, counter);
10247
+ return counter;
10248
+ };
10249
+ const currentDocumentChangeCounter = (host) => {
10250
+ const counter = documentChangeCounters.get(host);
10251
+ return counter && counter.replacement === readDocumentReplacement(host) ? counter : startDocumentChangeEpoch(host);
10252
+ };
10253
+ const publishDocumentChange = (host, event) => {
10254
+ if (event.type === "collaboration:document-replaced" || event.documentReplaced === true) {
10255
+ startDocumentChangeEpoch(host);
10256
+ return;
10257
+ }
10243
10258
  if (documentChangeListeners.size === 0) return;
10244
10259
  const facts = documentChangeFromHostEvent(event);
10245
10260
  if (!facts) return;
10246
- documentChangeSeq += 1;
10261
+ const counter = currentDocumentChangeCounter(host);
10262
+ counter.seq += 1;
10247
10263
  const change = {
10248
- documentEpoch: `document-${documentChangeEpoch}`,
10249
- seq: documentChangeSeq,
10264
+ documentEpoch: counter.epoch,
10265
+ seq: counter.seq,
10250
10266
  ...facts
10251
10267
  };
10252
10268
  for (const listener of Array.from(documentChangeListeners)) safeCall(() => listener(change), void 0);
@@ -10269,8 +10285,7 @@ function createSuperDocUI(options) {
10269
10285
  try {
10270
10286
  const off = hostMethod(next, "subscribe")?.((event) => {
10271
10287
  const type = event?.type;
10272
- if (type === "collaboration:document-replaced") startDocumentChangeEpoch();
10273
- publishDocumentChange(event);
10288
+ if (host) publishDocumentChange(host, event);
10274
10289
  const isStandaloneDocumentMutation = type === "document:mutated" && event.hasCommitEvent !== true;
10275
10290
  if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedDocument(event) || type === "collaboration:remote-changed") {
10276
10291
  for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
@@ -13829,7 +13844,6 @@ function createSuperDocUI(options) {
13829
13844
  return () => documentChangeListeners.delete(listener);
13830
13845
  }
13831
13846
  };
13832
- documentResetHooks.push(startDocumentChangeEpoch);
13833
13847
  const resolveVisibleHost = () => {
13834
13848
  if (typeof HTMLElement === "undefined") return null;
13835
13849
  const mountContainer = (getEditor()?.mount)?.container;
@@ -19,7 +19,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
19
19
  var PRIVATE_ENGINE_INFO = (0, _superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
20
20
  var ENGINE_INFO = Object.freeze({
21
21
  ...PRIVATE_ENGINE_INFO,
22
- superdocVersion: "2.28.0-next.15",
22
+ superdocVersion: "2.28.0-next.16",
23
23
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
24
24
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
25
25
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -18,7 +18,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
18
18
  var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
19
19
  var ENGINE_INFO = Object.freeze({
20
20
  ...PRIVATE_ENGINE_INFO,
21
- superdocVersion: "2.28.0-next.15",
21
+ superdocVersion: "2.28.0-next.16",
22
22
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
23
23
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
24
24
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -1895,6 +1895,7 @@ export type WordLayoutMarker = {
1895
1895
  */
1896
1896
  trackedChange?: MarkerTrackedChange;
1897
1897
  };
1898
+ export declare const markerRunSignature: (run: WordLayoutMarker["run"] | undefined) => string;
1898
1899
  /**
1899
1900
  * Word layout configuration for list items created via input rules.
1900
1901
  *
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CFlvn2wr.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DfSPIhxs.cjs");
3
3
  const require_slice_source = require("../chunks/slice-source-CFaqq0Vo.cjs");
4
4
  let react = require("react");
5
5
  let use_sync_external_store_shim = require("use-sync-external-store/shim");
@@ -1,4 +1,4 @@
1
- import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BRahDsch.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-J7aMU_wd.es.js";
2
2
  import { t as toSliceSource } from "../chunks/slice-source-gfOhG2MW.es.js";
3
3
  import { createContext, createElement, useCallback, useContext, useEffect, useRef, useState } from "react";
4
4
  import { useSyncExternalStore } from "use-sync-external-store/shim";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CFlvn2wr.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DfSPIhxs.cjs");
3
3
  const require_slice_source = require("../chunks/slice-source-CFaqq0Vo.cjs");
4
4
  let superdoc_entry_vue = require("vue");
5
5
  //#region src/public/ui/vue.ts
@@ -1,4 +1,4 @@
1
- import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BRahDsch.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-J7aMU_wd.es.js";
2
2
  import { t as toSliceSource } from "../chunks/slice-source-gfOhG2MW.es.js";
3
3
  import { computed, inject, onScopeDispose, provide, shallowRef, toRaw, toValue, watch } from "vue";
4
4
  //#region src/public/ui/vue.ts
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CFlvn2wr.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DfSPIhxs.cjs");
3
3
  //#region ../document-api/src/types/receipt.ts
4
4
  /** Read a known failure.details.reason without assuming every failure has one. */
5
5
  function getDocumentApiRejectionReason(details) {
@@ -1,4 +1,4 @@
1
- import { p as shallowEqual, s as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-BRahDsch.es.js";
1
+ import { p as shallowEqual, s as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-J7aMU_wd.es.js";
2
2
  //#region ../document-api/src/types/receipt.ts
3
3
  /** Read a known failure.details.reason without assuming every failure has one. */
4
4
  function getDocumentApiRejectionReason(details) {
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./chunks/rolldown-runtime-74VwNCz7.cjs");
3
3
  const require_blank_docx = require("./chunks/blank-docx-BuFAbRjs.cjs");
4
- const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-CFlvn2wr.cjs");
4
+ const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-DfSPIhxs.cjs");
5
5
  const require_eventemitter3 = require("./chunks/eventemitter3-C_TAnXOl.cjs");
6
6
  const require_uuid = require("./chunks/uuid-BhG0ngwk.cjs");
7
7
  const require__plugin_vue_export_helper = require("./chunks/_plugin-vue_export-helper-BUdjGKyl.cjs");
@@ -260,7 +260,7 @@ var v_click_outside_default = {
260
260
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
261
261
  function getSuperdocVersion() {
262
262
  try {
263
- return "2.28.0-next.15";
263
+ return "2.28.0-next.16";
264
264
  } catch {
265
265
  return "unknown";
266
266
  }
@@ -45358,7 +45358,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
45358
45358
  }
45359
45359
  this.userColorMap = /* @__PURE__ */ new Map();
45360
45360
  this.colorIndex = 0;
45361
- this.version = "2.28.0-next.15";
45361
+ this.version = "2.28.0-next.16";
45362
45362
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
45363
45363
  this.superdocId = config.superdocId || require_uuid.v4();
45364
45364
  this.colors = this.config.colors ?? [];
@@ -1,6 +1,6 @@
1
1
  import { i as __toESM$2 } from "./chunks/rolldown-runtime-0pSA04fp.es.js";
2
2
  import { t as blank_default } from "./chunks/blank-docx-DzQccOlW.es.js";
3
- import { _ as createInteractionHistory, a as registerFirstPartyCommandMutation, b as recordInteraction, c as applyV2CommentInvalidationFromMutation, d as createImageFilePicker, f as resolveImageSrc, g as closeInteractionHistory, h as DOM_CLASS_NAMES, i as readFirstPartyPageNumbers, l as getV2TrackedChangeMutationImpact, m as isSyntheticTrackedChangeCommentLaneItem, n as executeFirstPartyCommandAsync, o as isRecord, r as executeFirstPartyShortcutAsync, t as createSuperDocUI, u as isPlainObject$1, v as getWorkflowRecording, y as isWorkflowRecordingEnabled } from "./chunks/create-super-doc-ui-BRahDsch.es.js";
3
+ import { _ as createInteractionHistory, a as registerFirstPartyCommandMutation, b as recordInteraction, c as applyV2CommentInvalidationFromMutation, d as createImageFilePicker, f as resolveImageSrc, g as closeInteractionHistory, h as DOM_CLASS_NAMES, i as readFirstPartyPageNumbers, l as getV2TrackedChangeMutationImpact, m as isSyntheticTrackedChangeCommentLaneItem, n as executeFirstPartyCommandAsync, o as isRecord, r as executeFirstPartyShortcutAsync, t as createSuperDocUI, u as isPlainObject$1, v as getWorkflowRecording, y as isWorkflowRecordingEnabled } from "./chunks/create-super-doc-ui-J7aMU_wd.es.js";
4
4
  import { t as import_eventemitter3 } from "./chunks/eventemitter3-DEIiXiH2.es.js";
5
5
  import { t as v4 } from "./chunks/uuid-H0Xcmmhy.es.js";
6
6
  import { $ as vModelText, A as onActivated, B as renderSlot, C as isRef$1, D as normalizeClass, E as nextTick, F as openBlock, G as toRaw$2, H as resolveDynamicComponent, I as provide$1, J as unref, K as toRef, L as reactive, M as onDeactivated, N as onMounted, O as normalizeProps, P as onScopeDispose$1, Q as vModelSelect, R as ref, S as isReactive$1, T as mergeProps, U as shallowRef$1, V as resolveDirective, W as toDisplayString, X as useSlots, Y as useAttrs, Z as vModelCheckbox, _ as getCurrentInstance, a as computed$1, b as hasInjectionContext, c as createCommentVNode, d as createStaticVNode, et as watch$1, f as createTextVNode, g as effectScope, h as defineComponent, i as Transition, it as withModifiers, j as onBeforeUnmount, k as normalizeStyle, l as createElementBlock, m as defineAsyncComponent, n as Fragment, nt as withDirectives, o as createApp, p as createVNode, q as toRefs, r as Teleport, rt as withKeys, s as createBlock, t as _plugin_vue_export_helper_default, tt as withCtx, u as createElementVNode, v as getCurrentScope, w as markRaw, x as inject$1, y as h, z as renderList } from "./chunks/_plugin-vue_export-helper-7ZiLY07t.es.js";
@@ -258,7 +258,7 @@ var v_click_outside_default = {
258
258
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
259
259
  function getSuperdocVersion() {
260
260
  try {
261
- return "2.28.0-next.15";
261
+ return "2.28.0-next.16";
262
262
  } catch {
263
263
  return "unknown";
264
264
  }
@@ -45286,7 +45286,7 @@ var SuperDoc = class extends import_eventemitter3.default {
45286
45286
  }
45287
45287
  this.userColorMap = /* @__PURE__ */ new Map();
45288
45288
  this.colorIndex = 0;
45289
- this.version = "2.28.0-next.15";
45289
+ this.version = "2.28.0-next.16";
45290
45290
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
45291
45291
  this.superdocId = config.superdocId || v4();
45292
45292
  this.colors = this.config.colors ?? [];