superdoc 2.25.0-next.1 → 2.25.0-next.3
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/{FindReplaceSurface-BUw19rV8.cjs → FindReplaceSurface-8V8AjgR4.cjs} +1 -1
- package/dist/chunks/{FindReplaceSurface-B5dzB2sG.es.js → FindReplaceSurface-RUiTFDt3.es.js} +1 -1
- package/dist/chunks/{PasswordPromptSurface-DaIztq50.cjs → PasswordPromptSurface-B5DHV6qr.cjs} +1 -1
- package/dist/chunks/{PasswordPromptSurface-Ciu8aSmK.es.js → PasswordPromptSurface-BDpxqdzp.es.js} +1 -1
- package/dist/chunks/{PdfViewer-B8y_9or_.es.js → PdfViewer-DjdsIh6n.es.js} +1 -1
- package/dist/chunks/{PdfViewer-DRzLH3eS.cjs → PdfViewer-omriDChK.cjs} +1 -1
- package/dist/chunks/{_plugin-vue_export-helper-DHiJKCsy.es.js → _plugin-vue_export-helper-7ZiLY07t.es.js} +4 -1
- package/dist/chunks/{_plugin-vue_export-helper-CYxINHh_.cjs → _plugin-vue_export-helper-BUdjGKyl.cjs} +9 -0
- package/dist/chunks/{create-super-doc-ui-8UTu16Lw.es.js → create-super-doc-ui-3habU4hL.es.js} +37 -5
- package/dist/chunks/{create-super-doc-ui-bTFGKVRb.cjs → create-super-doc-ui-D8ss5E0J.cjs} +37 -5
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/comments/comments.types.d.ts +2 -0
- package/dist/document-api/src/content-controls/content-controls.types.d.ts +4 -2
- package/dist/document-api/src/hyperlinks/hyperlinks.types.d.ts +9 -2
- package/dist/document-api/src/images/images.types.d.ts +3 -3
- package/dist/document-api/src/lists/lists.types.d.ts +11 -11
- package/dist/document-api/src/receipt-bridge.d.ts +3 -0
- package/dist/document-api/src/selection/selection.types.d.ts +3 -2
- package/dist/document-api/src/types/blocks.types.d.ts +2 -2
- package/dist/document-api/src/types/mutation-plan.types.d.ts +2 -2
- package/dist/document-api/src/types/receipt.d.ts +12 -0
- package/dist/document-api/src/types/sd-contract.d.ts +3 -0
- package/dist/document-api/src/types/track-changes.types.d.ts +8 -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 +1 -1
- package/dist/public/ui.es.js +1 -1
- package/dist/style.css +65 -65
- package/dist/style.layered.css +65 -65
- package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -0
- package/dist/superdoc/src/core/v2-integration/internal-vue-runtime.d.ts +1 -0
- package/dist/superdoc.cjs +113 -88
- package/dist/superdoc.es.js +113 -88
- 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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-
|
|
1
|
+
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BUdjGKyl.cjs");
|
|
2
2
|
//#region src/components/surfaces/FindReplaceSurface.vue
|
|
3
3
|
var _hoisted_1 = ["onKeydown"];
|
|
4
4
|
var _hoisted_2 = { class: "sd-find-replace__row" };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { D as normalizeClass, F as openBlock,
|
|
1
|
+
import { D as normalizeClass, F as openBlock, N as onMounted, R as ref, W as toDisplayString, a as computed, c as createCommentVNode, it as withModifiers, l as createElementBlock, rt as withKeys, t as _plugin_vue_export_helper_default, u as createElementVNode } from "./_plugin-vue_export-helper-7ZiLY07t.es.js";
|
|
2
2
|
//#region src/components/surfaces/FindReplaceSurface.vue
|
|
3
3
|
var _hoisted_1 = ["onKeydown"];
|
|
4
4
|
var _hoisted_2 = { class: "sd-find-replace__row" };
|
package/dist/chunks/{PasswordPromptSurface-DaIztq50.cjs → PasswordPromptSurface-B5DHV6qr.cjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-
|
|
1
|
+
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BUdjGKyl.cjs");
|
|
2
2
|
//#region src/components/surfaces/PasswordPromptSurface.vue
|
|
3
3
|
var _hoisted_1 = ["onKeydown"];
|
|
4
4
|
var _hoisted_2 = ["id"];
|
package/dist/chunks/{PasswordPromptSurface-Ciu8aSmK.es.js → PasswordPromptSurface-BDpxqdzp.es.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $ as vModelText, F as openBlock, R as ref, W as toDisplayString, a as computed, c as createCommentVNode, it as withModifiers, l as createElementBlock, nt as withDirectives, rt as withKeys, t as _plugin_vue_export_helper_default, u as createElementVNode } from "./_plugin-vue_export-helper-7ZiLY07t.es.js";
|
|
2
2
|
//#region src/components/surfaces/PasswordPromptSurface.vue
|
|
3
3
|
var _hoisted_1 = ["onKeydown"];
|
|
4
4
|
var _hoisted_2 = ["id"];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { F as openBlock, N as onMounted, R as ref, T as mergeProps, U as shallowRef, a as computed, c as createCommentVNode, et as watch, j as onBeforeUnmount, k as normalizeStyle, l as createElementBlock, n as Fragment, p as createVNode, s as createBlock, t as _plugin_vue_export_helper_default, u as createElementVNode, w as markRaw, z as renderList } from "./_plugin-vue_export-helper-7ZiLY07t.es.js";
|
|
2
2
|
import { t as PDF_TO_CSS_UNITS } from "./constants-B6VBlmKp.es.js";
|
|
3
3
|
//#region src/core/pdf/helpers/floor.js
|
|
4
4
|
var floor = (val, precision) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-
|
|
1
|
+
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BUdjGKyl.cjs");
|
|
2
2
|
const require_constants = require("./constants-DpXuDx_g.cjs");
|
|
3
3
|
//#region src/core/pdf/helpers/floor.js
|
|
4
4
|
var floor = (val, precision) => {
|
|
@@ -140,6 +140,9 @@ function onScopeDispose(...args) {
|
|
|
140
140
|
function openBlock(...args) {
|
|
141
141
|
return runtime().openBlock(...args);
|
|
142
142
|
}
|
|
143
|
+
function provide(...args) {
|
|
144
|
+
return runtime().provide(...args);
|
|
145
|
+
}
|
|
143
146
|
function reactive(...args) {
|
|
144
147
|
return runtime().reactive(...args);
|
|
145
148
|
}
|
|
@@ -208,4 +211,4 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
208
211
|
return target;
|
|
209
212
|
};
|
|
210
213
|
//#endregion
|
|
211
|
-
export {
|
|
214
|
+
export { vModelText as $, onActivated as A, renderSlot as B, isRef as C, normalizeClass as D, nextTick as E, openBlock as F, toRaw as G, resolveDynamicComponent as H, provide as I, unref as J, toRef as K, reactive as L, onDeactivated as M, onMounted as N, normalizeProps as O, onScopeDispose as P, vModelSelect as Q, ref as R, isReactive as S, mergeProps as T, shallowRef as U, resolveDirective as V, toDisplayString as W, useSlots as X, useAttrs as Y, vModelCheckbox as Z, getCurrentInstance as _, computed as a, hasInjectionContext as b, createCommentVNode as c, createStaticVNode as d, watch as et, createTextVNode as f, effectScope as g, defineComponent as h, Transition as i, withModifiers as it, onBeforeUnmount as j, normalizeStyle as k, createElementBlock as l, defineAsyncComponent as m, Fragment as n, withDirectives as nt, createApp as o, createVNode as p, toRefs as q, Teleport as r, withKeys as rt, createBlock as s, _plugin_vue_export_helper_default as t, withCtx as tt, createElementVNode as u, getCurrentScope as v, markRaw as w, inject as x, h as y, renderList as z };
|
|
@@ -140,6 +140,9 @@ function onScopeDispose(...args) {
|
|
|
140
140
|
function openBlock(...args) {
|
|
141
141
|
return runtime().openBlock(...args);
|
|
142
142
|
}
|
|
143
|
+
function provide(...args) {
|
|
144
|
+
return runtime().provide(...args);
|
|
145
|
+
}
|
|
143
146
|
function reactive(...args) {
|
|
144
147
|
return runtime().reactive(...args);
|
|
145
148
|
}
|
|
@@ -418,6 +421,12 @@ Object.defineProperty(exports, "openBlock", {
|
|
|
418
421
|
return openBlock;
|
|
419
422
|
}
|
|
420
423
|
});
|
|
424
|
+
Object.defineProperty(exports, "provide", {
|
|
425
|
+
enumerable: true,
|
|
426
|
+
get: function() {
|
|
427
|
+
return provide;
|
|
428
|
+
}
|
|
429
|
+
});
|
|
421
430
|
Object.defineProperty(exports, "reactive", {
|
|
422
431
|
enumerable: true,
|
|
423
432
|
get: function() {
|
package/dist/chunks/{create-super-doc-ui-8UTu16Lw.es.js → create-super-doc-ui-3habU4hL.es.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as normalizeClass, E as nextTick, F as openBlock, J as unref, N as onMounted, R as ref, U as shallowRef, W as toDisplayString, a as computed, c as createCommentVNode, et as watch, f as createTextVNode, h as defineComponent, it as withModifiers, j as onBeforeUnmount, l as createElementBlock, n as Fragment, t as _plugin_vue_export_helper_default, u as createElementVNode, z as renderList } from "./_plugin-vue_export-helper-7ZiLY07t.es.js";
|
|
2
2
|
//#region src/internal/diagnostics/workflow-recording.ts
|
|
3
3
|
var fields$1 = /* @__PURE__ */ new Set([
|
|
4
4
|
"documentId",
|
|
@@ -7345,7 +7345,7 @@ function createSuperDocUI(options) {
|
|
|
7345
7345
|
* host's local snapshot so the toolbar reflects the NEW caret's block (and the
|
|
7346
7346
|
* effective font resolved from it) on the next recompute, instead of serving
|
|
7347
7347
|
* the previous selection until the worker `selection.current` round-trip lands
|
|
7348
|
-
* (SD-3652).
|
|
7348
|
+
* (SD-3652). A resolvable collapsed caret is seeded; a range's snapshot
|
|
7349
7349
|
* cannot be resolved synchronously in worker mode, so a new range starts an
|
|
7350
7350
|
* authoritative async read without waiting for the input-idle gate (SD-5394).
|
|
7351
7351
|
* Seeding an empty value would wrongly disable range-only commands. The
|
|
@@ -7355,8 +7355,10 @@ function createSuperDocUI(options) {
|
|
|
7355
7355
|
* tracked-change id is carried only when the host's painted caret proves the
|
|
7356
7356
|
* same carrier, or while an active typing dispatch advances the same caret by
|
|
7357
7357
|
* one code point. Pending work alone never carries review command context.
|
|
7358
|
+
* Explicit whole-table changes have a complete local source range and also
|
|
7359
|
+
* seed clears, so a delayed worker read cannot retain a cleared table target.
|
|
7358
7360
|
*/
|
|
7359
|
-
const refreshSelectionFromHost = (hostSelectionSnapshot, afterTypingPaint = false) => {
|
|
7361
|
+
const refreshSelectionFromHost = (hostSelectionSnapshot, afterTypingPaint = false, wholeTableSelectionChanged = false) => {
|
|
7360
7362
|
const foreground = foregroundMutationState();
|
|
7361
7363
|
if (isNonCollapsedHostSelection(hostSelectionSnapshot) && !(foreground && foreground.active > 0)) {
|
|
7362
7364
|
typedCaretValidationHeld = false;
|
|
@@ -7368,7 +7370,21 @@ function createSuperDocUI(options) {
|
|
|
7368
7370
|
const read = host?.readLiveSelectionSyncSnapshot;
|
|
7369
7371
|
if (typeof read !== "function") return;
|
|
7370
7372
|
const seed = normalizeSelectionInfo(safeCall(() => read.call(host), null));
|
|
7371
|
-
if (!seed
|
|
7373
|
+
if (!seed) return;
|
|
7374
|
+
if (wholeTableSelectionChanged) {
|
|
7375
|
+
typedCaretValidationHeld = false;
|
|
7376
|
+
pendingSelectionSeedValidationToken = null;
|
|
7377
|
+
const token = selectionReadToken();
|
|
7378
|
+
asyncReads.set("selection", {
|
|
7379
|
+
token,
|
|
7380
|
+
value: seed,
|
|
7381
|
+
hasSettled: true,
|
|
7382
|
+
inflightToken: null
|
|
7383
|
+
});
|
|
7384
|
+
issueAsyncRead("selection", token, selectionCurrentRun, normalizeSelectionInfo);
|
|
7385
|
+
return;
|
|
7386
|
+
}
|
|
7387
|
+
if (!isCollapsedCaretSnapshot(seed)) return;
|
|
7372
7388
|
const previousCaret = collapsedTextAddressFromSelection(state.selection);
|
|
7373
7389
|
const nextCaret = collapsedTextAddressFromTarget(seed.selectionTarget) ?? collapsedTextAddressFromTarget(seed.target);
|
|
7374
7390
|
const previousRange = previousCaret?.range;
|
|
@@ -9616,13 +9632,29 @@ function createSuperDocUI(options) {
|
|
|
9616
9632
|
currentHostSelectionSource = next;
|
|
9617
9633
|
if (!next) return;
|
|
9618
9634
|
try {
|
|
9635
|
+
const unsubscribeCallbacks = [];
|
|
9636
|
+
detachHostSelection = () => {
|
|
9637
|
+
for (const detach of unsubscribeCallbacks) detach();
|
|
9638
|
+
};
|
|
9619
9639
|
const unsubscribe = next.subscribe((snapshot) => {
|
|
9620
9640
|
if (foregroundMutationActive() && caretSelectionNeedsProjectionPaint() && schedulePostPaintSelectionRefresh()) return;
|
|
9621
9641
|
selectionEpoch += 1;
|
|
9622
9642
|
refreshSelectionFromHost(snapshot);
|
|
9623
9643
|
recompute("host-selection");
|
|
9624
9644
|
});
|
|
9625
|
-
if (typeof unsubscribe === "function")
|
|
9645
|
+
if (typeof unsubscribe === "function") unsubscribeCallbacks.push(unsubscribe);
|
|
9646
|
+
const host = getHost();
|
|
9647
|
+
const tableSelection = safeCall(host?.getHandles ? () => host.getHandles() : void 0, null)?.selection;
|
|
9648
|
+
if (typeof tableSelection?.subscribeWholeTable === "function") {
|
|
9649
|
+
const refreshWholeTable = () => {
|
|
9650
|
+
selectionEpoch += 1;
|
|
9651
|
+
refreshSelectionFromHost(void 0, false, true);
|
|
9652
|
+
recompute("host-selection");
|
|
9653
|
+
};
|
|
9654
|
+
const detach = tableSelection.subscribeWholeTable(refreshWholeTable);
|
|
9655
|
+
if (typeof detach === "function") unsubscribeCallbacks.push(detach);
|
|
9656
|
+
if (tableSelection.getWholeTableNodeId?.()) refreshWholeTable();
|
|
9657
|
+
}
|
|
9626
9658
|
} catch {
|
|
9627
9659
|
currentHostSelectionSource = null;
|
|
9628
9660
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-
|
|
1
|
+
const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BUdjGKyl.cjs");
|
|
2
2
|
//#region src/internal/diagnostics/workflow-recording.ts
|
|
3
3
|
var fields$1 = /* @__PURE__ */ new Set([
|
|
4
4
|
"documentId",
|
|
@@ -7346,7 +7346,7 @@ function createSuperDocUI(options) {
|
|
|
7346
7346
|
* host's local snapshot so the toolbar reflects the NEW caret's block (and the
|
|
7347
7347
|
* effective font resolved from it) on the next recompute, instead of serving
|
|
7348
7348
|
* the previous selection until the worker `selection.current` round-trip lands
|
|
7349
|
-
* (SD-3652).
|
|
7349
|
+
* (SD-3652). A resolvable collapsed caret is seeded; a range's snapshot
|
|
7350
7350
|
* cannot be resolved synchronously in worker mode, so a new range starts an
|
|
7351
7351
|
* authoritative async read without waiting for the input-idle gate (SD-5394).
|
|
7352
7352
|
* Seeding an empty value would wrongly disable range-only commands. The
|
|
@@ -7356,8 +7356,10 @@ function createSuperDocUI(options) {
|
|
|
7356
7356
|
* tracked-change id is carried only when the host's painted caret proves the
|
|
7357
7357
|
* same carrier, or while an active typing dispatch advances the same caret by
|
|
7358
7358
|
* one code point. Pending work alone never carries review command context.
|
|
7359
|
+
* Explicit whole-table changes have a complete local source range and also
|
|
7360
|
+
* seed clears, so a delayed worker read cannot retain a cleared table target.
|
|
7359
7361
|
*/
|
|
7360
|
-
const refreshSelectionFromHost = (hostSelectionSnapshot, afterTypingPaint = false) => {
|
|
7362
|
+
const refreshSelectionFromHost = (hostSelectionSnapshot, afterTypingPaint = false, wholeTableSelectionChanged = false) => {
|
|
7361
7363
|
const foreground = foregroundMutationState();
|
|
7362
7364
|
if (isNonCollapsedHostSelection(hostSelectionSnapshot) && !(foreground && foreground.active > 0)) {
|
|
7363
7365
|
typedCaretValidationHeld = false;
|
|
@@ -7369,7 +7371,21 @@ function createSuperDocUI(options) {
|
|
|
7369
7371
|
const read = host?.readLiveSelectionSyncSnapshot;
|
|
7370
7372
|
if (typeof read !== "function") return;
|
|
7371
7373
|
const seed = normalizeSelectionInfo(safeCall(() => read.call(host), null));
|
|
7372
|
-
if (!seed
|
|
7374
|
+
if (!seed) return;
|
|
7375
|
+
if (wholeTableSelectionChanged) {
|
|
7376
|
+
typedCaretValidationHeld = false;
|
|
7377
|
+
pendingSelectionSeedValidationToken = null;
|
|
7378
|
+
const token = selectionReadToken();
|
|
7379
|
+
asyncReads.set("selection", {
|
|
7380
|
+
token,
|
|
7381
|
+
value: seed,
|
|
7382
|
+
hasSettled: true,
|
|
7383
|
+
inflightToken: null
|
|
7384
|
+
});
|
|
7385
|
+
issueAsyncRead("selection", token, selectionCurrentRun, normalizeSelectionInfo);
|
|
7386
|
+
return;
|
|
7387
|
+
}
|
|
7388
|
+
if (!isCollapsedCaretSnapshot(seed)) return;
|
|
7373
7389
|
const previousCaret = collapsedTextAddressFromSelection(state.selection);
|
|
7374
7390
|
const nextCaret = collapsedTextAddressFromTarget(seed.selectionTarget) ?? collapsedTextAddressFromTarget(seed.target);
|
|
7375
7391
|
const previousRange = previousCaret?.range;
|
|
@@ -9617,13 +9633,29 @@ function createSuperDocUI(options) {
|
|
|
9617
9633
|
currentHostSelectionSource = next;
|
|
9618
9634
|
if (!next) return;
|
|
9619
9635
|
try {
|
|
9636
|
+
const unsubscribeCallbacks = [];
|
|
9637
|
+
detachHostSelection = () => {
|
|
9638
|
+
for (const detach of unsubscribeCallbacks) detach();
|
|
9639
|
+
};
|
|
9620
9640
|
const unsubscribe = next.subscribe((snapshot) => {
|
|
9621
9641
|
if (foregroundMutationActive() && caretSelectionNeedsProjectionPaint() && schedulePostPaintSelectionRefresh()) return;
|
|
9622
9642
|
selectionEpoch += 1;
|
|
9623
9643
|
refreshSelectionFromHost(snapshot);
|
|
9624
9644
|
recompute("host-selection");
|
|
9625
9645
|
});
|
|
9626
|
-
if (typeof unsubscribe === "function")
|
|
9646
|
+
if (typeof unsubscribe === "function") unsubscribeCallbacks.push(unsubscribe);
|
|
9647
|
+
const host = getHost();
|
|
9648
|
+
const tableSelection = safeCall(host?.getHandles ? () => host.getHandles() : void 0, null)?.selection;
|
|
9649
|
+
if (typeof tableSelection?.subscribeWholeTable === "function") {
|
|
9650
|
+
const refreshWholeTable = () => {
|
|
9651
|
+
selectionEpoch += 1;
|
|
9652
|
+
refreshSelectionFromHost(void 0, false, true);
|
|
9653
|
+
recompute("host-selection");
|
|
9654
|
+
};
|
|
9655
|
+
const detach = tableSelection.subscribeWholeTable(refreshWholeTable);
|
|
9656
|
+
if (typeof detach === "function") unsubscribeCallbacks.push(detach);
|
|
9657
|
+
if (tableSelection.getWholeTableNodeId?.()) refreshWholeTable();
|
|
9658
|
+
}
|
|
9627
9659
|
} catch {
|
|
9628
9660
|
currentHostSelectionSource = null;
|
|
9629
9661
|
}
|
|
@@ -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.25.0-next.
|
|
22
|
+
superdocVersion: "2.25.0-next.3",
|
|
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.25.0-next.
|
|
21
|
+
superdocVersion: "2.25.0-next.3",
|
|
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
|
|
@@ -216,6 +216,8 @@ export interface CommentsListQuery {
|
|
|
216
216
|
*/
|
|
217
217
|
export interface CommentDomain {
|
|
218
218
|
address: CommentAddress;
|
|
219
|
+
/** Canonical comment id alias returned by native runtimes. */
|
|
220
|
+
commentId?: string;
|
|
219
221
|
/** See {@link CommentInfo.externalId}. */
|
|
220
222
|
externalId?: string;
|
|
221
223
|
/** See {@link CommentInfo.metadata}. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BlockNodeAddress, NodeKind } from '../types/base.js';
|
|
2
2
|
import { SelectionTarget } from '../types/address.js';
|
|
3
3
|
import { SDFragment } from '../types/fragment.js';
|
|
4
|
-
import { ReceiptFailure, ReceiptInsert } from '../types/receipt.js';
|
|
4
|
+
import { ReceiptFailure, ReceiptInsert, ReceiptSuccess } from '../types/receipt.js';
|
|
5
5
|
import { StoryLocator } from '../types/story.types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Semantic SDT subtype derived from `w:sdtPr` children.
|
|
@@ -154,11 +154,13 @@ export interface ContentControlInfo {
|
|
|
154
154
|
/** Authoritative structural emptiness when the adapter can determine it. */
|
|
155
155
|
isEmpty?: boolean;
|
|
156
156
|
}
|
|
157
|
-
export interface ContentControlMutationSuccess {
|
|
157
|
+
export interface ContentControlMutationSuccess extends ReceiptSuccess {
|
|
158
158
|
success: true;
|
|
159
159
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
160
160
|
contentControl: ContentControlTarget;
|
|
161
161
|
updatedRef?: ContentControlTarget;
|
|
162
|
+
/** Identity of the block created by an adjacent-content insertion. */
|
|
163
|
+
createdBlockId?: string;
|
|
162
164
|
affectedStories?: StoryLocator[];
|
|
163
165
|
trackedChangeRefs?: ReceiptInsert[];
|
|
164
166
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BlockNodeAddress, InlineNodeAddress } from '../types/base.js';
|
|
2
2
|
import { TextAddress } from '../types/address.js';
|
|
3
3
|
import { DiscoveryOutput } from '../types/discovery.js';
|
|
4
|
-
import { ReceiptFailure } from '../types/receipt.js';
|
|
4
|
+
import { ReceiptFailure, ReceiptSuccess } from '../types/receipt.js';
|
|
5
5
|
/** Narrowed inline address for hyperlink targets. */
|
|
6
6
|
export type HyperlinkTarget = InlineNodeAddress & {
|
|
7
7
|
nodeType: 'hyperlink';
|
|
@@ -74,10 +74,17 @@ export interface HyperlinkInfo {
|
|
|
74
74
|
properties: HyperlinkReadProperties;
|
|
75
75
|
text?: string;
|
|
76
76
|
}
|
|
77
|
-
export interface HyperlinkMutationSuccess {
|
|
77
|
+
export interface HyperlinkMutationSuccess extends ReceiptSuccess {
|
|
78
78
|
success: true;
|
|
79
79
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
80
80
|
hyperlink: HyperlinkTarget;
|
|
81
|
+
/** Legacy native identifier for the mutated hyperlink, null after removal. */
|
|
82
|
+
hyperlinkNodeId?: string | null;
|
|
83
|
+
/** Package parts created or modified by the mutation. */
|
|
84
|
+
partsCreated?: readonly string[];
|
|
85
|
+
partsModified?: readonly string[];
|
|
86
|
+
/** Relationship identity created for an external destination, when present. */
|
|
87
|
+
createdRId?: string;
|
|
81
88
|
}
|
|
82
89
|
export interface HyperlinkMutationFailure {
|
|
83
90
|
success: false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNodeAddress } from '../types/index.js';
|
|
2
|
-
import { ReceiptInsert } from '../types/receipt.js';
|
|
2
|
+
import { ReceiptInsert, ReceiptSuccess } from '../types/receipt.js';
|
|
3
3
|
import { StoryLocator } from '../types/story.types.js';
|
|
4
4
|
import { ContentControlTarget } from '../content-controls/content-controls.types.js';
|
|
5
5
|
import { ImageProperties, ImageWrapType, ImageWrapSide, ImageMarginOffset, ImageSize, ImageCropInfo } from '../types/media.types.js';
|
|
@@ -186,7 +186,7 @@ export interface SetZOrderInput {
|
|
|
186
186
|
imageId: string;
|
|
187
187
|
zOrder: ImageZOrderInput;
|
|
188
188
|
}
|
|
189
|
-
export interface CreateImageSuccessResult {
|
|
189
|
+
export interface CreateImageSuccessResult extends ReceiptSuccess {
|
|
190
190
|
success: true;
|
|
191
191
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
192
192
|
image: ImageAddress;
|
|
@@ -206,7 +206,7 @@ export interface ImagesListResult {
|
|
|
206
206
|
total: number;
|
|
207
207
|
items: ImageSummary[];
|
|
208
208
|
}
|
|
209
|
-
export interface ImagesMutationSuccessResult {
|
|
209
|
+
export interface ImagesMutationSuccessResult extends ReceiptSuccess {
|
|
210
210
|
success: true;
|
|
211
211
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
212
212
|
image: ImageAddress;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AffectedRefRemapping, BlockNodeType, ReceiptFailure, ReceiptInsert, StoryLocator, TextAddress, TextRangeShift } from '../types/index.js';
|
|
1
|
+
import { AffectedRefRemapping, BlockNodeType, ReceiptFailure, ReceiptInsert, ReceiptSuccess, StoryLocator, TextAddress, TextRangeShift } from '../types/index.js';
|
|
2
2
|
import { DiscoveryOutput } from '../types/discovery.js';
|
|
3
3
|
export type ListItemAddress = {
|
|
4
4
|
kind: 'block';
|
|
@@ -356,14 +356,14 @@ export interface ListsCaptureTemplateSuccessResult {
|
|
|
356
356
|
template: ListTemplate;
|
|
357
357
|
}
|
|
358
358
|
export type ListsCaptureTemplateResult = ListsCaptureTemplateSuccessResult | ListsFailureResult;
|
|
359
|
-
export interface ListsInsertSuccessResult {
|
|
359
|
+
export interface ListsInsertSuccessResult extends ReceiptSuccess {
|
|
360
360
|
success: true;
|
|
361
361
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
362
362
|
item: ListItemAddress;
|
|
363
363
|
insertionPoint: TextAddress;
|
|
364
364
|
trackedChangeRefs?: ReceiptInsert[];
|
|
365
365
|
}
|
|
366
|
-
export interface ListsMutateItemSuccessResult {
|
|
366
|
+
export interface ListsMutateItemSuccessResult extends ReceiptSuccess {
|
|
367
367
|
success: true;
|
|
368
368
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
369
369
|
item: ListItemAddress;
|
|
@@ -375,38 +375,38 @@ export interface ListsMutateItemSuccessResult {
|
|
|
375
375
|
txId?: string;
|
|
376
376
|
changed?: boolean;
|
|
377
377
|
}
|
|
378
|
-
export interface ListsCreateSuccessResult {
|
|
378
|
+
export interface ListsCreateSuccessResult extends ReceiptSuccess {
|
|
379
379
|
success: true;
|
|
380
380
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
381
381
|
listId: string;
|
|
382
382
|
item: ListItemAddress;
|
|
383
383
|
}
|
|
384
|
-
export interface ListsJoinSuccessResult {
|
|
384
|
+
export interface ListsJoinSuccessResult extends ReceiptSuccess {
|
|
385
385
|
success: true;
|
|
386
386
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
387
387
|
listId: string;
|
|
388
388
|
}
|
|
389
|
-
export interface ListsSeparateSuccessResult {
|
|
389
|
+
export interface ListsSeparateSuccessResult extends ReceiptSuccess {
|
|
390
390
|
success: true;
|
|
391
391
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
392
392
|
listId: string;
|
|
393
393
|
numId: number;
|
|
394
394
|
}
|
|
395
|
-
export interface ListsMergeSuccessResult {
|
|
395
|
+
export interface ListsMergeSuccessResult extends ReceiptSuccess {
|
|
396
396
|
success: true;
|
|
397
397
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
398
398
|
listId: string;
|
|
399
399
|
absorbedCount: number;
|
|
400
400
|
removedEmptyBlocks: number;
|
|
401
401
|
}
|
|
402
|
-
export interface ListsSplitSuccessResult {
|
|
402
|
+
export interface ListsSplitSuccessResult extends ReceiptSuccess {
|
|
403
403
|
success: true;
|
|
404
404
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
405
405
|
listId: string;
|
|
406
406
|
numId: number;
|
|
407
407
|
restartedAt: number | null;
|
|
408
408
|
}
|
|
409
|
-
export interface ListsDetachSuccessResult {
|
|
409
|
+
export interface ListsDetachSuccessResult extends ReceiptSuccess {
|
|
410
410
|
success: true;
|
|
411
411
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
412
412
|
paragraph: {
|
|
@@ -415,7 +415,7 @@ export interface ListsDetachSuccessResult {
|
|
|
415
415
|
nodeId: string;
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
|
-
export interface ListsConvertToTextSuccessResult {
|
|
418
|
+
export interface ListsConvertToTextSuccessResult extends ReceiptSuccess {
|
|
419
419
|
success: true;
|
|
420
420
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
421
421
|
paragraph: {
|
|
@@ -447,7 +447,7 @@ export type ListsMergeResult = ListsMergeSuccessResult | ListsFailureResult;
|
|
|
447
447
|
export type ListsSplitResult = ListsSplitSuccessResult | ListsFailureResult;
|
|
448
448
|
export type ListsDetachResult = ListsDetachSuccessResult | ListsFailureResult;
|
|
449
449
|
export type ListsConvertToTextResult = ListsConvertToTextSuccessResult | ListsFailureResult;
|
|
450
|
-
export interface ListsDeleteSuccessResult {
|
|
450
|
+
export interface ListsDeleteSuccessResult extends ReceiptSuccess {
|
|
451
451
|
success: true;
|
|
452
452
|
appliedChangeMode?: 'direct' | 'tracked';
|
|
453
453
|
/** Number of list items removed. */
|
|
@@ -8,6 +8,9 @@ export interface MutationReceiptBridgeContext {
|
|
|
8
8
|
}
|
|
9
9
|
interface CanonicalSuccessMetadata {
|
|
10
10
|
appliedChangeMode?: ReceiptSuccess['appliedChangeMode'];
|
|
11
|
+
changed?: ReceiptSuccess['changed'];
|
|
12
|
+
trackedChangeRefs?: ReceiptSuccess['trackedChangeRefs'];
|
|
13
|
+
trackedChangeCount?: ReceiptSuccess['trackedChangeCount'];
|
|
11
14
|
id?: ReceiptSuccess['id'];
|
|
12
15
|
inserted?: ReceiptSuccess['inserted'];
|
|
13
16
|
updated?: ReceiptSuccess['updated'];
|
|
@@ -165,8 +165,9 @@ export interface SelectionInfo {
|
|
|
165
165
|
selectionTarget?: SelectionTarget | null;
|
|
166
166
|
/**
|
|
167
167
|
* V2 browser cell context with inclusive, zero-based logical bounds.
|
|
168
|
-
* Whole-cell selections clear text targets
|
|
169
|
-
*
|
|
168
|
+
* Whole-cell selections clear text targets; explicit whole-table handle selections
|
|
169
|
+
* retain resolved formatting targets. Character selections preserve their targets
|
|
170
|
+
* and include the containing cells, including endpoint cells.
|
|
170
171
|
* Exact cell IDs and spans describe merged or nonrectangular selections;
|
|
171
172
|
* only rectangular whole-cell metadata can become a table-cells target.
|
|
172
173
|
*/
|
|
@@ -144,7 +144,7 @@ export interface BlocksSplitInput {
|
|
|
144
144
|
/** Include deleted tracked text in the offset ruler. Defaults to `visible`. */
|
|
145
145
|
coordinateSpace?: 'visible' | 'tracked';
|
|
146
146
|
}
|
|
147
|
-
export interface BlocksSplitSuccessResult {
|
|
147
|
+
export interface BlocksSplitSuccessResult extends Omit<ReceiptSuccess, 'inserted'> {
|
|
148
148
|
success: true;
|
|
149
149
|
appliedChangeMode?: ReceiptSuccess['appliedChangeMode'];
|
|
150
150
|
/** Address of the new paragraph created by the split (the tail). */
|
|
@@ -173,7 +173,7 @@ export interface BlocksMergeInput {
|
|
|
173
173
|
/** Paragraph immediately after `first` in the same story. */
|
|
174
174
|
second: BlockNodeAddress;
|
|
175
175
|
}
|
|
176
|
-
export interface BlocksMergeSuccessResult {
|
|
176
|
+
export interface BlocksMergeSuccessResult extends Omit<ReceiptSuccess, 'removed'> {
|
|
177
177
|
success: true;
|
|
178
178
|
appliedChangeMode?: ReceiptSuccess['appliedChangeMode'];
|
|
179
179
|
/** Address of the paragraph that was removed (the second paragraph). */
|
|
@@ -5,7 +5,7 @@ import { InsertStylePolicy, StylePolicy } from './style-policy.types.js';
|
|
|
5
5
|
import { InlineRunPatch } from '../format/inline-run-patch.js';
|
|
6
6
|
import { SDFragment } from './fragment.js';
|
|
7
7
|
import { Placement, NestingPolicy } from './placement.js';
|
|
8
|
-
import { AffectedRef } from './receipt.js';
|
|
8
|
+
import { AffectedRef, ReceiptSuccess } from './receipt.js';
|
|
9
9
|
import { ChangeMode } from '../write/write.js';
|
|
10
10
|
import { StoryLocator } from './story.types.js';
|
|
11
11
|
export type SelectWhere = {
|
|
@@ -241,7 +241,7 @@ export type StepOutcome = {
|
|
|
241
241
|
trackedChangeIds?: string[];
|
|
242
242
|
data: StepOutcomeData;
|
|
243
243
|
};
|
|
244
|
-
export type PlanReceipt = {
|
|
244
|
+
export type PlanReceipt = ReceiptSuccess & {
|
|
245
245
|
success: true;
|
|
246
246
|
/** Effective mode when every committed step used the same mode. */
|
|
247
247
|
appliedChangeMode?: ChangeMode;
|
|
@@ -110,6 +110,12 @@ export interface ReceiptEffects {
|
|
|
110
110
|
}
|
|
111
111
|
export type ReceiptSuccess = {
|
|
112
112
|
success: true;
|
|
113
|
+
/** Whether a successful request changed the document; false represents a no-op commit. */
|
|
114
|
+
changed?: boolean;
|
|
115
|
+
/** Tracked changes authored by this mutation. */
|
|
116
|
+
trackedChangeRefs?: ReceiptInsert[];
|
|
117
|
+
/** Number of tracked changes authored by this mutation. */
|
|
118
|
+
trackedChangeCount?: number;
|
|
113
119
|
/**
|
|
114
120
|
* Mode in which this call's document content was committed. An edit folded
|
|
115
121
|
* into the author's existing insertion is tracked; auxiliary style and
|
|
@@ -202,6 +208,12 @@ export type TextMutationResolution = {
|
|
|
202
208
|
};
|
|
203
209
|
export type TextMutationReceipt = (ReceiptSuccess & {
|
|
204
210
|
resolution: TextMutationResolution;
|
|
211
|
+
/** Per-edit tracked-change results for atomic multi-edit mutations. */
|
|
212
|
+
trackedChangeOutcomes?: {
|
|
213
|
+
editIndex: number;
|
|
214
|
+
trackedChangeCount: number;
|
|
215
|
+
trackedChangeRefs: ReceiptInsert[];
|
|
216
|
+
}[];
|
|
205
217
|
}) | (ReceiptFailureResult & {
|
|
206
218
|
resolution: TextMutationResolution;
|
|
207
219
|
});
|
|
@@ -32,6 +32,9 @@ export interface SDMutationReceipt {
|
|
|
32
32
|
before: string;
|
|
33
33
|
after: string;
|
|
34
34
|
};
|
|
35
|
+
changed?: ReceiptSuccess['changed'];
|
|
36
|
+
trackedChangeRefs?: ReceiptSuccess['trackedChangeRefs'];
|
|
37
|
+
trackedChangeCount?: ReceiptSuccess['trackedChangeCount'];
|
|
35
38
|
id?: ReceiptSuccess['id'];
|
|
36
39
|
inserted?: ReceiptSuccess['inserted'];
|
|
37
40
|
updated?: ReceiptSuccess['updated'];
|
|
@@ -351,9 +351,17 @@ export interface TrackChangeStructuralDescriptor {
|
|
|
351
351
|
export type TrackChangeTarget = {
|
|
352
352
|
kind: 'text';
|
|
353
353
|
address: TrackedChangeAddress;
|
|
354
|
+
/** Resolved text geometry when available. */
|
|
355
|
+
segments?: TextTarget['segments'];
|
|
356
|
+
/** Story containing the resolved geometry. */
|
|
357
|
+
story?: TextTarget['story'];
|
|
354
358
|
} | {
|
|
355
359
|
kind: 'replacement';
|
|
356
360
|
address: TrackedChangeAddress;
|
|
361
|
+
/** Resolved text geometry when available. */
|
|
362
|
+
segments?: TextTarget['segments'];
|
|
363
|
+
/** Story containing the resolved geometry. */
|
|
364
|
+
story?: TextTarget['story'];
|
|
357
365
|
} | {
|
|
358
366
|
kind: 'formatting';
|
|
359
367
|
address: TrackedChangeAddress;
|
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-D8ss5E0J.cjs");
|
|
3
3
|
const require_slice_source = require("../chunks/slice-source-CFaqq0Vo.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
//#region src/public/ui/react.ts
|
|
@@ -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-3habU4hL.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
|
//#region src/public/ui/react.ts
|
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-D8ss5E0J.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-3habU4hL.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-D8ss5E0J.cjs");
|
|
3
3
|
exports.BUILT_IN_COMMAND_IDS = require_create_super_doc_ui.BUILT_IN_COMMAND_IDS;
|
|
4
4
|
exports.createSuperDocUI = require_create_super_doc_ui.createSuperDocUI;
|
|
5
5
|
exports.shallowEqual = require_create_super_doc_ui.shallowEqual;
|
package/dist/public/ui.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as BUILT_IN_COMMAND_IDS, t as createSuperDocUI, u as shallowEqual } from "../chunks/create-super-doc-ui-
|
|
1
|
+
import { a as BUILT_IN_COMMAND_IDS, t as createSuperDocUI, u as shallowEqual } from "../chunks/create-super-doc-ui-3habU4hL.es.js";
|
|
2
2
|
export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
|