superdoc 2.28.0-next.15 → 2.28.0-next.17
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/chunks/{create-super-doc-ui-BRahDsch.es.js → create-super-doc-ui-CAfcpwSS.es.js} +45 -29
- package/dist/chunks/{create-super-doc-ui-CFlvn2wr.cjs → create-super-doc-ui-CXdsObDZ.cjs} +50 -28
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +1 -1
- package/dist/document-api/src/types/receipt.d.ts +1 -1
- package/dist/layout-engine/contracts/src/index.d.ts +1 -0
- package/dist/public/ui-react.cjs +1 -1
- package/dist/public/ui-react.es.js +1 -1
- package/dist/public/ui-vue.cjs +1 -1
- package/dist/public/ui-vue.es.js +1 -1
- package/dist/public/ui.cjs +3 -2
- package/dist/public/ui.es.js +3 -2
- package/dist/shared/font-system/src/resolver.d.ts +3 -3
- package/dist/style.css +1 -1
- package/dist/style.layered.css +1 -1
- package/dist/superdoc/src/core/collaboration/helpers.d.ts +0 -5
- package/dist/superdoc/src/core/editor-runtime/types.d.ts +2 -0
- package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +2 -0
- package/dist/superdoc/src/helpers/v2-review-mutation-impact.d.ts +2 -0
- package/dist/superdoc.cjs +60 -20
- package/dist/superdoc.es.js +60 -20
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +42 -42
- package/package.json +2 -2
- package/dist/layout-engine/layout-bridge/src/marker-run-key.d.ts +0 -2
- package/dist/superdoc/src/core/collaboration/collaboration.d.ts +0 -18
package/dist/chunks/{create-super-doc-ui-BRahDsch.es.js → create-super-doc-ui-CAfcpwSS.es.js}
RENAMED
|
@@ -2650,6 +2650,16 @@ function isPlainObject(value) {
|
|
|
2650
2650
|
}
|
|
2651
2651
|
//#endregion
|
|
2652
2652
|
//#region src/helpers/v2-review-mutation-impact.ts
|
|
2653
|
+
function mutationCommittedEventChangedVisibleContent(event) {
|
|
2654
|
+
if (event.dryRun === true) return false;
|
|
2655
|
+
if (isPlainObject(event.result) && event.result.noop === true) return false;
|
|
2656
|
+
const receipt = isPlainObject(event.receipt) ? event.receipt : null;
|
|
2657
|
+
if (receipt?.changed === false || receipt?.noop === true || receipt?.status === "NO_OP") return false;
|
|
2658
|
+
return true;
|
|
2659
|
+
}
|
|
2660
|
+
function mutationCommittedEventChangedDocument(event) {
|
|
2661
|
+
return event.cause !== "preview" && mutationCommittedEventChangedVisibleContent(event);
|
|
2662
|
+
}
|
|
2653
2663
|
/**
|
|
2654
2664
|
* Classify the tracked-change identities carried by a v2 mutation event.
|
|
2655
2665
|
*
|
|
@@ -5762,18 +5772,6 @@ function commandResultFromOperationResult(result) {
|
|
|
5762
5772
|
function isSuccessfulReceipt(result) {
|
|
5763
5773
|
return Boolean(result) && typeof result === "object" && result.success === true;
|
|
5764
5774
|
}
|
|
5765
|
-
/**
|
|
5766
|
-
* The host also emits `mutation:committed` for previews and no-op receipts;
|
|
5767
|
-
* those events must not mark the document as having unsaved edits.
|
|
5768
|
-
*/
|
|
5769
|
-
function mutationCommittedEventChangedDocument(event) {
|
|
5770
|
-
if (event.dryRun === true) return false;
|
|
5771
|
-
const receipt = event.receipt;
|
|
5772
|
-
if (receipt && typeof receipt === "object" && receipt.changed === false) return false;
|
|
5773
|
-
if (receipt && typeof receipt === "object" && receipt.noop === true) return false;
|
|
5774
|
-
if (receipt && typeof receipt === "object" && receipt.status === "NO_OP") return false;
|
|
5775
|
-
return true;
|
|
5776
|
-
}
|
|
5777
5775
|
function readTxId(value) {
|
|
5778
5776
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
5779
5777
|
}
|
|
@@ -10233,20 +10231,36 @@ function createSuperDocUI(options) {
|
|
|
10233
10231
|
lastOptimisticInlineSelectionSignature = selectionInlineValueSignature(state.selection);
|
|
10234
10232
|
let scheduleActiveSearchRefresh = () => {};
|
|
10235
10233
|
const documentChangeListeners = /* @__PURE__ */ new Set();
|
|
10236
|
-
|
|
10237
|
-
let
|
|
10238
|
-
const
|
|
10239
|
-
|
|
10240
|
-
|
|
10241
|
-
|
|
10242
|
-
|
|
10234
|
+
const documentChangeCounters = /* @__PURE__ */ new WeakMap();
|
|
10235
|
+
let documentEpochCount = 0;
|
|
10236
|
+
const readDocumentReplacement = (host) => safeCall(() => hostMethod(host, "getDocumentReplacementVersion")?.(), null);
|
|
10237
|
+
const startDocumentChangeEpoch = (host) => {
|
|
10238
|
+
documentEpochCount += 1;
|
|
10239
|
+
const counter = {
|
|
10240
|
+
epoch: `document-${documentEpochCount}`,
|
|
10241
|
+
seq: 0,
|
|
10242
|
+
replacement: readDocumentReplacement(host)
|
|
10243
|
+
};
|
|
10244
|
+
documentChangeCounters.set(host, counter);
|
|
10245
|
+
return counter;
|
|
10246
|
+
};
|
|
10247
|
+
const currentDocumentChangeCounter = (host) => {
|
|
10248
|
+
const counter = documentChangeCounters.get(host);
|
|
10249
|
+
return counter && counter.replacement === readDocumentReplacement(host) ? counter : startDocumentChangeEpoch(host);
|
|
10250
|
+
};
|
|
10251
|
+
const publishDocumentChange = (host, event) => {
|
|
10252
|
+
if (event.type === "collaboration:document-replaced" || event.documentReplaced === true) {
|
|
10253
|
+
startDocumentChangeEpoch(host);
|
|
10254
|
+
return;
|
|
10255
|
+
}
|
|
10243
10256
|
if (documentChangeListeners.size === 0) return;
|
|
10244
10257
|
const facts = documentChangeFromHostEvent(event);
|
|
10245
10258
|
if (!facts) return;
|
|
10246
|
-
|
|
10259
|
+
const counter = currentDocumentChangeCounter(host);
|
|
10260
|
+
counter.seq += 1;
|
|
10247
10261
|
const change = {
|
|
10248
|
-
documentEpoch:
|
|
10249
|
-
seq:
|
|
10262
|
+
documentEpoch: counter.epoch,
|
|
10263
|
+
seq: counter.seq,
|
|
10250
10264
|
...facts
|
|
10251
10265
|
};
|
|
10252
10266
|
for (const listener of Array.from(documentChangeListeners)) safeCall(() => listener(change), void 0);
|
|
@@ -10269,13 +10283,12 @@ function createSuperDocUI(options) {
|
|
|
10269
10283
|
try {
|
|
10270
10284
|
const off = hostMethod(next, "subscribe")?.((event) => {
|
|
10271
10285
|
const type = event?.type;
|
|
10272
|
-
if (
|
|
10273
|
-
publishDocumentChange(event);
|
|
10286
|
+
if (host) publishDocumentChange(host, event);
|
|
10274
10287
|
const isStandaloneDocumentMutation = type === "document:mutated" && event.hasCommitEvent !== true;
|
|
10275
|
-
if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" &&
|
|
10288
|
+
if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed") {
|
|
10276
10289
|
for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
|
|
10277
10290
|
}
|
|
10278
|
-
if (isStandaloneDocumentMutation || type === "mutation:committed" &&
|
|
10291
|
+
if (isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0) scheduleActiveSearchRefresh();
|
|
10279
10292
|
if ((type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event)) && host && !dirtyHosts.has(host)) {
|
|
10280
10293
|
dirtyHosts.add(host);
|
|
10281
10294
|
recompute("document-dirty");
|
|
@@ -10311,6 +10324,7 @@ function createSuperDocUI(options) {
|
|
|
10311
10324
|
if (impact?.allResolved) {
|
|
10312
10325
|
replaceTrackedChangeItemsInCache([]);
|
|
10313
10326
|
publishAllTrackedChangesResolved(event.receipt);
|
|
10327
|
+
if (event.cause === "preview") invalidateDocumentContent();
|
|
10314
10328
|
return;
|
|
10315
10329
|
}
|
|
10316
10330
|
if (impact?.removedIds.size) markPostDecisionTrackChanges(new Set(impact.removedIds), event.receipt);
|
|
@@ -10320,7 +10334,10 @@ function createSuperDocUI(options) {
|
|
|
10320
10334
|
scheduleTypingDocumentContentInvalidation();
|
|
10321
10335
|
return;
|
|
10322
10336
|
}
|
|
10323
|
-
if (impact?.removedIds.size && impact.upsertIds.size === 0)
|
|
10337
|
+
if (impact?.removedIds.size && impact.upsertIds.size === 0) {
|
|
10338
|
+
if (event.cause === "preview") invalidateDocumentContent();
|
|
10339
|
+
return;
|
|
10340
|
+
}
|
|
10324
10341
|
if (isStandaloneDocumentMutation || type === "collaboration:remote-changed" || type === "mutation:committed" && !isTypingBurst) schedulePostPaintContentRefresh();
|
|
10325
10342
|
const remoteCommentsPartChanged = type === "collaboration:remote-changed" && Array.isArray(event.changedPartUris) && event.changedPartUris.some((partUri) => typeof partUri === "string" && COMMENTS_CATALOG_PART_URIS.has(partUri));
|
|
10326
10343
|
const loadedCommentAnchorsMayHaveChanged = type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0 && commentsCatalogMayHaveRows();
|
|
@@ -13829,7 +13846,6 @@ function createSuperDocUI(options) {
|
|
|
13829
13846
|
return () => documentChangeListeners.delete(listener);
|
|
13830
13847
|
}
|
|
13831
13848
|
};
|
|
13832
|
-
documentResetHooks.push(startDocumentChangeEpoch);
|
|
13833
13849
|
const resolveVisibleHost = () => {
|
|
13834
13850
|
if (typeof HTMLElement === "undefined") return null;
|
|
13835
13851
|
const mountContainer = (getEditor()?.mount)?.container;
|
|
@@ -15640,4 +15656,4 @@ function commandIsActive(descriptor, selection) {
|
|
|
15640
15656
|
return descriptor.activeMark ? selection.activeMarks.includes(descriptor.activeMark) : false;
|
|
15641
15657
|
}
|
|
15642
15658
|
//#endregion
|
|
15643
|
-
export {
|
|
15659
|
+
export { closeInteractionHistory as _, registerFirstPartyCommandMutation as a, isWorkflowRecordingEnabled as b, applyV2CommentInvalidationFromMutation as c, isPlainObject as d, createImageFilePicker as f, DOM_CLASS_NAMES as g, isSyntheticTrackedChangeCommentLaneItem as h, readFirstPartyPageNumbers as i, getV2TrackedChangeMutationImpact as l, shallowEqual as m, executeFirstPartyCommandAsync as n, isRecord as o, resolveImageSrc as p, executeFirstPartyShortcutAsync as r, BUILT_IN_COMMAND_IDS as s, createSuperDocUI as t, mutationCommittedEventChangedDocument as u, createInteractionHistory as v, recordInteraction as x, getWorkflowRecording as y };
|
|
@@ -2651,6 +2651,16 @@ function isPlainObject(value) {
|
|
|
2651
2651
|
}
|
|
2652
2652
|
//#endregion
|
|
2653
2653
|
//#region src/helpers/v2-review-mutation-impact.ts
|
|
2654
|
+
function mutationCommittedEventChangedVisibleContent(event) {
|
|
2655
|
+
if (event.dryRun === true) return false;
|
|
2656
|
+
if (isPlainObject(event.result) && event.result.noop === true) return false;
|
|
2657
|
+
const receipt = isPlainObject(event.receipt) ? event.receipt : null;
|
|
2658
|
+
if (receipt?.changed === false || receipt?.noop === true || receipt?.status === "NO_OP") return false;
|
|
2659
|
+
return true;
|
|
2660
|
+
}
|
|
2661
|
+
function mutationCommittedEventChangedDocument(event) {
|
|
2662
|
+
return event.cause !== "preview" && mutationCommittedEventChangedVisibleContent(event);
|
|
2663
|
+
}
|
|
2654
2664
|
/**
|
|
2655
2665
|
* Classify the tracked-change identities carried by a v2 mutation event.
|
|
2656
2666
|
*
|
|
@@ -5763,18 +5773,6 @@ function commandResultFromOperationResult(result) {
|
|
|
5763
5773
|
function isSuccessfulReceipt(result) {
|
|
5764
5774
|
return Boolean(result) && typeof result === "object" && result.success === true;
|
|
5765
5775
|
}
|
|
5766
|
-
/**
|
|
5767
|
-
* The host also emits `mutation:committed` for previews and no-op receipts;
|
|
5768
|
-
* those events must not mark the document as having unsaved edits.
|
|
5769
|
-
*/
|
|
5770
|
-
function mutationCommittedEventChangedDocument(event) {
|
|
5771
|
-
if (event.dryRun === true) return false;
|
|
5772
|
-
const receipt = event.receipt;
|
|
5773
|
-
if (receipt && typeof receipt === "object" && receipt.changed === false) return false;
|
|
5774
|
-
if (receipt && typeof receipt === "object" && receipt.noop === true) return false;
|
|
5775
|
-
if (receipt && typeof receipt === "object" && receipt.status === "NO_OP") return false;
|
|
5776
|
-
return true;
|
|
5777
|
-
}
|
|
5778
5776
|
function readTxId(value) {
|
|
5779
5777
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
5780
5778
|
}
|
|
@@ -10234,20 +10232,36 @@ function createSuperDocUI(options) {
|
|
|
10234
10232
|
lastOptimisticInlineSelectionSignature = selectionInlineValueSignature(state.selection);
|
|
10235
10233
|
let scheduleActiveSearchRefresh = () => {};
|
|
10236
10234
|
const documentChangeListeners = /* @__PURE__ */ new Set();
|
|
10237
|
-
|
|
10238
|
-
let
|
|
10239
|
-
const
|
|
10240
|
-
|
|
10241
|
-
|
|
10242
|
-
|
|
10243
|
-
|
|
10235
|
+
const documentChangeCounters = /* @__PURE__ */ new WeakMap();
|
|
10236
|
+
let documentEpochCount = 0;
|
|
10237
|
+
const readDocumentReplacement = (host) => safeCall(() => hostMethod(host, "getDocumentReplacementVersion")?.(), null);
|
|
10238
|
+
const startDocumentChangeEpoch = (host) => {
|
|
10239
|
+
documentEpochCount += 1;
|
|
10240
|
+
const counter = {
|
|
10241
|
+
epoch: `document-${documentEpochCount}`,
|
|
10242
|
+
seq: 0,
|
|
10243
|
+
replacement: readDocumentReplacement(host)
|
|
10244
|
+
};
|
|
10245
|
+
documentChangeCounters.set(host, counter);
|
|
10246
|
+
return counter;
|
|
10247
|
+
};
|
|
10248
|
+
const currentDocumentChangeCounter = (host) => {
|
|
10249
|
+
const counter = documentChangeCounters.get(host);
|
|
10250
|
+
return counter && counter.replacement === readDocumentReplacement(host) ? counter : startDocumentChangeEpoch(host);
|
|
10251
|
+
};
|
|
10252
|
+
const publishDocumentChange = (host, event) => {
|
|
10253
|
+
if (event.type === "collaboration:document-replaced" || event.documentReplaced === true) {
|
|
10254
|
+
startDocumentChangeEpoch(host);
|
|
10255
|
+
return;
|
|
10256
|
+
}
|
|
10244
10257
|
if (documentChangeListeners.size === 0) return;
|
|
10245
10258
|
const facts = documentChangeFromHostEvent(event);
|
|
10246
10259
|
if (!facts) return;
|
|
10247
|
-
|
|
10260
|
+
const counter = currentDocumentChangeCounter(host);
|
|
10261
|
+
counter.seq += 1;
|
|
10248
10262
|
const change = {
|
|
10249
|
-
documentEpoch:
|
|
10250
|
-
seq:
|
|
10263
|
+
documentEpoch: counter.epoch,
|
|
10264
|
+
seq: counter.seq,
|
|
10251
10265
|
...facts
|
|
10252
10266
|
};
|
|
10253
10267
|
for (const listener of Array.from(documentChangeListeners)) safeCall(() => listener(change), void 0);
|
|
@@ -10270,13 +10284,12 @@ function createSuperDocUI(options) {
|
|
|
10270
10284
|
try {
|
|
10271
10285
|
const off = hostMethod(next, "subscribe")?.((event) => {
|
|
10272
10286
|
const type = event?.type;
|
|
10273
|
-
if (
|
|
10274
|
-
publishDocumentChange(event);
|
|
10287
|
+
if (host) publishDocumentChange(host, event);
|
|
10275
10288
|
const isStandaloneDocumentMutation = type === "document:mutated" && event.hasCommitEvent !== true;
|
|
10276
|
-
if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" &&
|
|
10289
|
+
if (type === "collaboration:document-replaced" || isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed") {
|
|
10277
10290
|
for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
|
|
10278
10291
|
}
|
|
10279
|
-
if (isStandaloneDocumentMutation || type === "mutation:committed" &&
|
|
10292
|
+
if (isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0) scheduleActiveSearchRefresh();
|
|
10280
10293
|
if ((type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event)) && host && !dirtyHosts.has(host)) {
|
|
10281
10294
|
dirtyHosts.add(host);
|
|
10282
10295
|
recompute("document-dirty");
|
|
@@ -10312,6 +10325,7 @@ function createSuperDocUI(options) {
|
|
|
10312
10325
|
if (impact?.allResolved) {
|
|
10313
10326
|
replaceTrackedChangeItemsInCache([]);
|
|
10314
10327
|
publishAllTrackedChangesResolved(event.receipt);
|
|
10328
|
+
if (event.cause === "preview") invalidateDocumentContent();
|
|
10315
10329
|
return;
|
|
10316
10330
|
}
|
|
10317
10331
|
if (impact?.removedIds.size) markPostDecisionTrackChanges(new Set(impact.removedIds), event.receipt);
|
|
@@ -10321,7 +10335,10 @@ function createSuperDocUI(options) {
|
|
|
10321
10335
|
scheduleTypingDocumentContentInvalidation();
|
|
10322
10336
|
return;
|
|
10323
10337
|
}
|
|
10324
|
-
if (impact?.removedIds.size && impact.upsertIds.size === 0)
|
|
10338
|
+
if (impact?.removedIds.size && impact.upsertIds.size === 0) {
|
|
10339
|
+
if (event.cause === "preview") invalidateDocumentContent();
|
|
10340
|
+
return;
|
|
10341
|
+
}
|
|
10325
10342
|
if (isStandaloneDocumentMutation || type === "collaboration:remote-changed" || type === "mutation:committed" && !isTypingBurst) schedulePostPaintContentRefresh();
|
|
10326
10343
|
const remoteCommentsPartChanged = type === "collaboration:remote-changed" && Array.isArray(event.changedPartUris) && event.changedPartUris.some((partUri) => typeof partUri === "string" && COMMENTS_CATALOG_PART_URIS.has(partUri));
|
|
10327
10344
|
const loadedCommentAnchorsMayHaveChanged = type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0 && commentsCatalogMayHaveRows();
|
|
@@ -13830,7 +13847,6 @@ function createSuperDocUI(options) {
|
|
|
13830
13847
|
return () => documentChangeListeners.delete(listener);
|
|
13831
13848
|
}
|
|
13832
13849
|
};
|
|
13833
|
-
documentResetHooks.push(startDocumentChangeEpoch);
|
|
13834
13850
|
const resolveVisibleHost = () => {
|
|
13835
13851
|
if (typeof HTMLElement === "undefined") return null;
|
|
13836
13852
|
const mountContainer = (getEditor()?.mount)?.container;
|
|
@@ -15731,6 +15747,12 @@ Object.defineProperty(exports, "isWorkflowRecordingEnabled", {
|
|
|
15731
15747
|
return isWorkflowRecordingEnabled;
|
|
15732
15748
|
}
|
|
15733
15749
|
});
|
|
15750
|
+
Object.defineProperty(exports, "mutationCommittedEventChangedDocument", {
|
|
15751
|
+
enumerable: true,
|
|
15752
|
+
get: function() {
|
|
15753
|
+
return mutationCommittedEventChangedDocument;
|
|
15754
|
+
}
|
|
15755
|
+
});
|
|
15734
15756
|
Object.defineProperty(exports, "readFirstPartyPageNumbers", {
|
|
15735
15757
|
enumerable: true,
|
|
15736
15758
|
get: function() {
|
|
@@ -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.
|
|
22
|
+
superdocVersion: "2.28.0-next.17",
|
|
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.
|
|
21
|
+
superdocVersion: "2.28.0-next.17",
|
|
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
|
|
@@ -3726,7 +3726,7 @@ export declare const OPERATION_DEFINITIONS: {
|
|
|
3726
3726
|
readonly find: {
|
|
3727
3727
|
readonly memberPath: "find";
|
|
3728
3728
|
readonly description: "Search the document for text or node matches using SDM/1 selectors. Returns discovery-grade results: for mutation targeting, use query.match instead.";
|
|
3729
|
-
readonly expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }). Text hits contain only the matched text; use getNode or getNodeById for the full containing node. Node selectors return full node projections.";
|
|
3729
|
+
readonly expectedResult: "Returns an SDFindResult envelope ({ total, limit, offset, items }). Each item is an SDNodeResult ({ node, address }). Text hits contain only the matched text; use getNode or getNodeById for the full containing node. Node selectors return full node projections. Bookmark selectors return the bookmarks of the searched story in document order: each address is an inline bookmark address whose anchor spans the bookmark range, and each node is an ext.bookmark node whose bookmark.address resolves through bookmarks.get.";
|
|
3730
3730
|
readonly requiresDocumentContext: true;
|
|
3731
3731
|
readonly metadata: CommandStaticMetadata;
|
|
3732
3732
|
readonly referenceDocPath: "find.mdx";
|
|
@@ -15,7 +15,7 @@ export type ReceiptFailureCode = 'NO_OP' | 'INVALID_TARGET' | 'TARGET_NOT_FOUND'
|
|
|
15
15
|
export type TextRangeRejectionReason = 'text-range-in-sdt' | 'text-range-in-field' | 'text-range-in-unsupported-tracked-wrapper';
|
|
16
16
|
/** Content-control creation keeps its existing top-level failure code. */
|
|
17
17
|
export type ContentControlCreationRejectionReason = 'content-control-unsupported-inline-structure' | 'content-control-shared-run-boundary';
|
|
18
|
-
export type DocumentApiRejectionReason = TextRangeRejectionReason | ContentControlCreationRejectionReason;
|
|
18
|
+
export type DocumentApiRejectionReason = TextRangeRejectionReason | ContentControlCreationRejectionReason | 'paragraph-mark-already-deleted';
|
|
19
19
|
export interface DocumentApiRejectionDetails extends Record<string, unknown> {
|
|
20
20
|
reason: DocumentApiRejectionReason;
|
|
21
21
|
}
|
|
@@ -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
|
*
|
package/dist/public/ui-react.cjs
CHANGED
|
@@ -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-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CXdsObDZ.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-
|
|
1
|
+
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-CAfcpwSS.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";
|
package/dist/public/ui-vue.cjs
CHANGED
|
@@ -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-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CXdsObDZ.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
|
package/dist/public/ui-vue.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-CAfcpwSS.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
|
package/dist/public/ui.cjs
CHANGED
|
@@ -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-
|
|
2
|
+
const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CXdsObDZ.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) {
|
|
@@ -9,7 +9,8 @@ function getDocumentApiRejectionReason(details) {
|
|
|
9
9
|
case "text-range-in-field":
|
|
10
10
|
case "text-range-in-unsupported-tracked-wrapper":
|
|
11
11
|
case "content-control-unsupported-inline-structure":
|
|
12
|
-
case "content-control-shared-run-boundary":
|
|
12
|
+
case "content-control-shared-run-boundary":
|
|
13
|
+
case "paragraph-mark-already-deleted": return details.reason;
|
|
13
14
|
default: return;
|
|
14
15
|
}
|
|
15
16
|
}
|
package/dist/public/ui.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m as shallowEqual, s as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-CAfcpwSS.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) {
|
|
@@ -8,7 +8,8 @@ function getDocumentApiRejectionReason(details) {
|
|
|
8
8
|
case "text-range-in-field":
|
|
9
9
|
case "text-range-in-unsupported-tracked-wrapper":
|
|
10
10
|
case "content-control-unsupported-inline-structure":
|
|
11
|
-
case "content-control-shared-run-boundary":
|
|
11
|
+
case "content-control-shared-run-boundary":
|
|
12
|
+
case "paragraph-mark-already-deleted": return details.reason;
|
|
12
13
|
default: return;
|
|
13
14
|
}
|
|
14
15
|
}
|
|
@@ -146,7 +146,7 @@ export declare class FontResolver {
|
|
|
146
146
|
/**
|
|
147
147
|
* Resolve a CSS font-family value for MEASURE and PAINT: swap the primary family to its
|
|
148
148
|
* physical substitute and keep the original fallbacks. "Calibri, sans-serif" ->
|
|
149
|
-
* "Carlito, sans-serif"; "Calibri" -> "Carlito".
|
|
149
|
+
* "Carlito, sans-serif"; "Calibri" -> "Carlito". Quotes primary names when required by CSS syntax.
|
|
150
150
|
*/
|
|
151
151
|
resolvePhysicalFamily(cssFontFamily: string): string;
|
|
152
152
|
/**
|
|
@@ -160,8 +160,8 @@ export declare class FontResolver {
|
|
|
160
160
|
/**
|
|
161
161
|
* Face-aware CSS-stack variant for MEASURE and PAINT - the face-scoped counterpart of
|
|
162
162
|
* {@link resolvePhysicalFamily}. Swaps the primary family to its substitute when this exact face is
|
|
163
|
-
* real or docfonts authorizes a synthetic source face. Otherwise
|
|
164
|
-
*
|
|
163
|
+
* real or docfonts authorizes a synthetic source face. Otherwise keeps the logical family and its
|
|
164
|
+
* fallbacks, quoting primary names when required by CSS syntax. Measure and
|
|
165
165
|
* paint MUST call this with the same face key, or text is measured in one face and painted in another.
|
|
166
166
|
*/
|
|
167
167
|
resolvePhysicalFamilyForFace(cssFontFamily: string, face: FaceKey, hasFace: HasFace): string;
|