superdoc 2.28.0-next.17 → 2.28.0-next.19

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 (37) hide show
  1. package/dist/chunks/{create-super-doc-ui-CAfcpwSS.es.js → create-super-doc-ui-BEB7RtD6.es.js} +63 -3
  2. package/dist/chunks/{create-super-doc-ui-CXdsObDZ.cjs → create-super-doc-ui-DNe9BmHD.cjs} +68 -2
  3. package/dist/collaboration-upgrade-engine.cjs +1 -1
  4. package/dist/collaboration-upgrade-engine.es.js +1 -1
  5. package/dist/document-api/src/contract/operation-definitions.d.ts +1 -1
  6. package/dist/document-api/src/lists/lists.types.d.ts +1 -0
  7. package/dist/document-api/src/sections/sections.types.d.ts +5 -1
  8. package/dist/document-api/src/types/receipt.d.ts +1 -0
  9. package/dist/layout-engine/contracts/src/index.d.ts +2 -0
  10. package/dist/layout-engine/layout-bridge/src/index.d.ts +1 -0
  11. package/dist/layout-engine/layout-bridge/src/place-inline-drawings.d.ts +9 -0
  12. package/dist/layout-engine/layout-engine/src/layout-drawing.d.ts +2 -1
  13. package/dist/public/ui-react.cjs +1 -1
  14. package/dist/public/ui-react.es.js +1 -1
  15. package/dist/public/ui-vue.cjs +1 -1
  16. package/dist/public/ui-vue.es.js +1 -1
  17. package/dist/public/ui.cjs +1 -1
  18. package/dist/public/ui.es.js +1 -1
  19. package/dist/style.css +1 -1
  20. package/dist/style.layered.css +1 -1
  21. package/dist/superdoc/src/components/CommentsLayer/FloatingComments.vue.d.ts +11 -0
  22. package/dist/superdoc/src/components/CommentsLayer/PdfCommentsLayer.vue.d.ts +4 -0
  23. package/dist/superdoc/src/composables/use-superdoc-instance.d.ts +7 -0
  24. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +0 -48
  25. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +1 -0
  26. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +16 -0
  27. package/dist/superdoc/src/public/ui/types.d.ts +20 -0
  28. package/dist/superdoc/src/public/ui.d.cts +8 -0
  29. package/dist/superdoc/src/public/ui.d.ts +1 -1
  30. package/dist/superdoc/src/stores/comments-store.d.ts +4 -37
  31. package/dist/superdoc/src/stores/superdoc-store.d.ts +12 -111
  32. package/dist/superdoc.cjs +110 -206
  33. package/dist/superdoc.es.js +277 -11468
  34. package/dist-cdn/style.layered.css +1 -1
  35. package/dist-cdn/superdoc.min.css +1 -1
  36. package/dist-cdn/superdoc.min.js +40 -40
  37. package/package.json +4 -3
@@ -6716,9 +6716,19 @@ function createSuperDocUI(options) {
6716
6716
  if (seeded > 0) dirtyHosts.add(host);
6717
6717
  else if (revision === 0) dirtyHosts.delete(host);
6718
6718
  };
6719
- const hasLocalDocumentMutation = () => {
6719
+ const savedPoint = () => {
6720
6720
  const host = getHost();
6721
+ return {
6722
+ host,
6723
+ isDirty: hostMethod(host, "isDirty"),
6724
+ getDocumentVersion: hostMethod(host, "getDocumentVersion"),
6725
+ markSaved: hostMethod(host, "markSaved")
6726
+ };
6727
+ };
6728
+ const hasLocalDocumentMutation = () => {
6729
+ const { host, isDirty } = savedPoint();
6721
6730
  if (!host) return false;
6731
+ if (isDirty) return Boolean(safeCall(() => isDirty(), false));
6722
6732
  seedLocalDocumentMutation(host);
6723
6733
  return dirtyHosts.has(host);
6724
6734
  };
@@ -8129,6 +8139,33 @@ function createSuperDocUI(options) {
8129
8139
  sizeOptions: DEFAULT_FONT_SIZE_OPTIONS
8130
8140
  };
8131
8141
  };
8142
+ const EMPTY_HISTORY = {
8143
+ canUndo: false,
8144
+ canRedo: false,
8145
+ undoDepth: 0,
8146
+ redoDepth: 0
8147
+ };
8148
+ let historySlice = EMPTY_HISTORY;
8149
+ let historySource = null;
8150
+ const computeHistory = () => {
8151
+ const source = getEditCommands();
8152
+ if (source !== historySource) {
8153
+ historySource = source;
8154
+ historySlice = EMPTY_HISTORY;
8155
+ }
8156
+ const getSnapshot = hostMethod(source, "getSnapshot");
8157
+ const snapshot = getSnapshot ? safeCall(() => getSnapshot(), null) : null;
8158
+ const { undoDepth, redoDepth } = (isPlainObject(snapshot) && isPlainObject(snapshot.history) ? snapshot.history : null) ?? {};
8159
+ if (typeof undoDepth !== "number" || typeof redoDepth !== "number") return historySlice;
8160
+ const next = {
8161
+ canUndo: undoDepth > 0,
8162
+ canRedo: redoDepth > 0,
8163
+ undoDepth,
8164
+ redoDepth
8165
+ };
8166
+ if (!shallowEqual(next, historySlice)) historySlice = next;
8167
+ return historySlice;
8168
+ };
8132
8169
  let zoomFitWidth;
8133
8170
  const computeZoom = () => {
8134
8171
  const getZoomState = hostMethod(superdoc, "getZoomState");
@@ -9941,6 +9978,7 @@ function createSuperDocUI(options) {
9941
9978
  trackChanges: measure("trackChanges", () => computeTrackChanges(selection)),
9942
9979
  contentControls: measure("contentControls", () => computeContentControls(selection)),
9943
9980
  zoom: measure("zoom", computeZoom),
9981
+ history: measure("history", computeHistory),
9944
9982
  fonts: measure("fonts", computeFonts),
9945
9983
  styles: measure("styles", () => computeStyles(selection))
9946
9984
  };
@@ -10289,10 +10327,13 @@ function createSuperDocUI(options) {
10289
10327
  for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
10290
10328
  }
10291
10329
  if (isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0) scheduleActiveSearchRefresh();
10292
- if ((type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event)) && host && !dirtyHosts.has(host)) {
10330
+ const documentEdited = type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event);
10331
+ if (documentEdited && host && hostMethod(host, "isDirty")) recompute("document-dirty");
10332
+ else if (documentEdited && host && !dirtyHosts.has(host)) {
10293
10333
  dirtyHosts.add(host);
10294
10334
  recompute("document-dirty");
10295
10335
  }
10336
+ if (type === "document:saved-point-changed") recompute("document-dirty");
10296
10337
  if (type === "collaboration:document-replaced" && host) {
10297
10338
  dirtyHosts.delete(host);
10298
10339
  hostSeededMutationRevision.delete(host);
@@ -13779,6 +13820,7 @@ function createSuperDocUI(options) {
13779
13820
  getFamilyOptions: () => state.fonts.options,
13780
13821
  getSizeOptions: () => state.fonts.sizeOptions
13781
13822
  };
13823
+ const history = snapshotHandle(sliceHandle((s) => s.history));
13782
13824
  const zoomSnap = snapshotHandle(sliceHandle((s) => s.zoom));
13783
13825
  const zoom = {
13784
13826
  get: zoomSnap.get,
@@ -13844,6 +13886,23 @@ function createSuperDocUI(options) {
13844
13886
  if (disposed) return () => {};
13845
13887
  documentChangeListeners.add(listener);
13846
13888
  return () => documentChangeListeners.delete(listener);
13889
+ },
13890
+ getVersion: () => {
13891
+ const { getDocumentVersion } = savedPoint();
13892
+ const version = getDocumentVersion ? safeCall(() => getDocumentVersion(), null) : null;
13893
+ return typeof version === "string" ? version : null;
13894
+ },
13895
+ markClean: (version) => {
13896
+ const { markSaved } = savedPoint();
13897
+ if (!markSaved) return {
13898
+ ok: false,
13899
+ reason: "unavailable"
13900
+ };
13901
+ const result = safeCall(() => markSaved(version), null);
13902
+ return isPlainObject(result) && result.ok === true ? { ok: true } : {
13903
+ ok: false,
13904
+ reason: isPlainObject(result) && result.reason === "document-changed" ? "document-changed" : "unavailable"
13905
+ };
13847
13906
  }
13848
13907
  };
13849
13908
  const resolveVisibleHost = () => {
@@ -15435,6 +15494,7 @@ function createSuperDocUI(options) {
15435
15494
  bookmarks,
15436
15495
  fonts,
15437
15496
  zoom,
15497
+ history,
15438
15498
  document: documentHandle,
15439
15499
  viewport,
15440
15500
  decorations,
@@ -15656,4 +15716,4 @@ function commandIsActive(descriptor, selection) {
15656
15716
  return descriptor.activeMark ? selection.activeMarks.includes(descriptor.activeMark) : false;
15657
15717
  }
15658
15718
  //#endregion
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 };
15719
+ export { recordInteraction as S, DOM_CLASS_NAMES as _, registerFirstPartyCommandMutation as a, getWorkflowRecording as b, getCommandDescriptor as c, mutationCommittedEventChangedDocument as d, isPlainObject as f, isSyntheticTrackedChangeCommentLaneItem as g, shallowEqual as h, readFirstPartyPageNumbers as i, applyV2CommentInvalidationFromMutation as l, resolveImageSrc as m, executeFirstPartyCommandAsync as n, isRecord as o, createImageFilePicker as p, executeFirstPartyShortcutAsync as r, BUILT_IN_COMMAND_IDS as s, createSuperDocUI as t, getV2TrackedChangeMutationImpact as u, closeInteractionHistory as v, isWorkflowRecordingEnabled as x, createInteractionHistory as y };
@@ -6717,9 +6717,19 @@ function createSuperDocUI(options) {
6717
6717
  if (seeded > 0) dirtyHosts.add(host);
6718
6718
  else if (revision === 0) dirtyHosts.delete(host);
6719
6719
  };
6720
- const hasLocalDocumentMutation = () => {
6720
+ const savedPoint = () => {
6721
6721
  const host = getHost();
6722
+ return {
6723
+ host,
6724
+ isDirty: hostMethod(host, "isDirty"),
6725
+ getDocumentVersion: hostMethod(host, "getDocumentVersion"),
6726
+ markSaved: hostMethod(host, "markSaved")
6727
+ };
6728
+ };
6729
+ const hasLocalDocumentMutation = () => {
6730
+ const { host, isDirty } = savedPoint();
6722
6731
  if (!host) return false;
6732
+ if (isDirty) return Boolean(safeCall(() => isDirty(), false));
6723
6733
  seedLocalDocumentMutation(host);
6724
6734
  return dirtyHosts.has(host);
6725
6735
  };
@@ -8130,6 +8140,33 @@ function createSuperDocUI(options) {
8130
8140
  sizeOptions: DEFAULT_FONT_SIZE_OPTIONS
8131
8141
  };
8132
8142
  };
8143
+ const EMPTY_HISTORY = {
8144
+ canUndo: false,
8145
+ canRedo: false,
8146
+ undoDepth: 0,
8147
+ redoDepth: 0
8148
+ };
8149
+ let historySlice = EMPTY_HISTORY;
8150
+ let historySource = null;
8151
+ const computeHistory = () => {
8152
+ const source = getEditCommands();
8153
+ if (source !== historySource) {
8154
+ historySource = source;
8155
+ historySlice = EMPTY_HISTORY;
8156
+ }
8157
+ const getSnapshot = hostMethod(source, "getSnapshot");
8158
+ const snapshot = getSnapshot ? safeCall(() => getSnapshot(), null) : null;
8159
+ const { undoDepth, redoDepth } = (isPlainObject(snapshot) && isPlainObject(snapshot.history) ? snapshot.history : null) ?? {};
8160
+ if (typeof undoDepth !== "number" || typeof redoDepth !== "number") return historySlice;
8161
+ const next = {
8162
+ canUndo: undoDepth > 0,
8163
+ canRedo: redoDepth > 0,
8164
+ undoDepth,
8165
+ redoDepth
8166
+ };
8167
+ if (!shallowEqual(next, historySlice)) historySlice = next;
8168
+ return historySlice;
8169
+ };
8133
8170
  let zoomFitWidth;
8134
8171
  const computeZoom = () => {
8135
8172
  const getZoomState = hostMethod(superdoc, "getZoomState");
@@ -9942,6 +9979,7 @@ function createSuperDocUI(options) {
9942
9979
  trackChanges: measure("trackChanges", () => computeTrackChanges(selection)),
9943
9980
  contentControls: measure("contentControls", () => computeContentControls(selection)),
9944
9981
  zoom: measure("zoom", computeZoom),
9982
+ history: measure("history", computeHistory),
9945
9983
  fonts: measure("fonts", computeFonts),
9946
9984
  styles: measure("styles", () => computeStyles(selection))
9947
9985
  };
@@ -10290,10 +10328,13 @@ function createSuperDocUI(options) {
10290
10328
  for (const [commandId, optimistic] of optimisticInlineToggles) if (optimistic.settled || type === "collaboration:document-replaced") optimisticInlineToggles.delete(commandId);
10291
10329
  }
10292
10330
  if (isStandaloneDocumentMutation || type === "mutation:committed" && mutationCommittedEventChangedVisibleContent(event) || type === "collaboration:remote-changed" && Array.isArray(event.changedStoryIds) && event.changedStoryIds.length > 0) scheduleActiveSearchRefresh();
10293
- if ((type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event)) && host && !dirtyHosts.has(host)) {
10331
+ const documentEdited = type === "document:mutated" || type === "mutation:committed" && mutationCommittedEventChangedDocument(event);
10332
+ if (documentEdited && host && hostMethod(host, "isDirty")) recompute("document-dirty");
10333
+ else if (documentEdited && host && !dirtyHosts.has(host)) {
10294
10334
  dirtyHosts.add(host);
10295
10335
  recompute("document-dirty");
10296
10336
  }
10337
+ if (type === "document:saved-point-changed") recompute("document-dirty");
10297
10338
  if (type === "collaboration:document-replaced" && host) {
10298
10339
  dirtyHosts.delete(host);
10299
10340
  hostSeededMutationRevision.delete(host);
@@ -13780,6 +13821,7 @@ function createSuperDocUI(options) {
13780
13821
  getFamilyOptions: () => state.fonts.options,
13781
13822
  getSizeOptions: () => state.fonts.sizeOptions
13782
13823
  };
13824
+ const history = snapshotHandle(sliceHandle((s) => s.history));
13783
13825
  const zoomSnap = snapshotHandle(sliceHandle((s) => s.zoom));
13784
13826
  const zoom = {
13785
13827
  get: zoomSnap.get,
@@ -13845,6 +13887,23 @@ function createSuperDocUI(options) {
13845
13887
  if (disposed) return () => {};
13846
13888
  documentChangeListeners.add(listener);
13847
13889
  return () => documentChangeListeners.delete(listener);
13890
+ },
13891
+ getVersion: () => {
13892
+ const { getDocumentVersion } = savedPoint();
13893
+ const version = getDocumentVersion ? safeCall(() => getDocumentVersion(), null) : null;
13894
+ return typeof version === "string" ? version : null;
13895
+ },
13896
+ markClean: (version) => {
13897
+ const { markSaved } = savedPoint();
13898
+ if (!markSaved) return {
13899
+ ok: false,
13900
+ reason: "unavailable"
13901
+ };
13902
+ const result = safeCall(() => markSaved(version), null);
13903
+ return isPlainObject(result) && result.ok === true ? { ok: true } : {
13904
+ ok: false,
13905
+ reason: isPlainObject(result) && result.reason === "document-changed" ? "document-changed" : "unavailable"
13906
+ };
13848
13907
  }
13849
13908
  };
13850
13909
  const resolveVisibleHost = () => {
@@ -15436,6 +15495,7 @@ function createSuperDocUI(options) {
15436
15495
  bookmarks,
15437
15496
  fonts,
15438
15497
  zoom,
15498
+ history,
15439
15499
  document: documentHandle,
15440
15500
  viewport,
15441
15501
  decorations,
@@ -15711,6 +15771,12 @@ Object.defineProperty(exports, "executeFirstPartyShortcutAsync", {
15711
15771
  return executeFirstPartyShortcutAsync;
15712
15772
  }
15713
15773
  });
15774
+ Object.defineProperty(exports, "getCommandDescriptor", {
15775
+ enumerable: true,
15776
+ get: function() {
15777
+ return getCommandDescriptor;
15778
+ }
15779
+ });
15714
15780
  Object.defineProperty(exports, "getV2TrackedChangeMutationImpact", {
15715
15781
  enumerable: true,
15716
15782
  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.17",
22
+ superdocVersion: "2.28.0-next.19",
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.17",
21
+ superdocVersion: "2.28.0-next.19",
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
@@ -2829,7 +2829,7 @@ export declare const OPERATION_DEFINITIONS: {
2829
2829
  readonly 'footnotes.insert': {
2830
2830
  readonly memberPath: "footnotes.insert";
2831
2831
  readonly description: "Insert a new footnote or endnote at a target location or the current selection.";
2832
- readonly expectedResult: "Returns a FootnoteMutationResult indicating success with the footnote address or a failure.";
2832
+ readonly expectedResult: string;
2833
2833
  readonly requiresDocumentContext: true;
2834
2834
  readonly metadata: CommandStaticMetadata;
2835
2835
  readonly referenceDocPath: "footnotes/insert.mdx";
@@ -214,6 +214,7 @@ export interface ListLevelTemplate {
214
214
  customFormat?: string;
215
215
  lvlText?: string;
216
216
  start?: number;
217
+ lvlRestart?: number;
217
218
  alignment?: LevelAlignment;
218
219
  indents?: {
219
220
  left?: number;
@@ -1,4 +1,4 @@
1
- import { BlockNodeAddress, ChangeMode, ReceiptFailure } from '../types/index.js';
1
+ import { BlockNodeAddress, ChangeMode, ReceiptFailure, TrackedChangeAddress } from '../types/index.js';
2
2
  import { DiscoveryOutput } from '../types/discovery.js';
3
3
  export type SectionAddress = {
4
4
  kind: 'section';
@@ -111,6 +111,7 @@ export interface SectionsGetInput {
111
111
  export type SectionsListResult = DiscoveryOutput<SectionDomain>;
112
112
  export interface SectionMutationSuccessResult {
113
113
  success: true;
114
+ dryRun?: boolean;
114
115
  section: SectionAddress;
115
116
  /** Committed review-aware content mode; omitted for dry runs, no-ops and non-reviewable settings. */
116
117
  appliedChangeMode?: ChangeMode;
@@ -126,11 +127,14 @@ export type SectionMutationResult = SectionMutationSuccessResult | SectionMutati
126
127
  */
127
128
  export interface DocumentMutationSuccessResult {
128
129
  success: true;
130
+ dryRun?: boolean;
131
+ changed?: boolean;
129
132
  }
130
133
  export type DocumentMutationResult = DocumentMutationSuccessResult | SectionMutationFailureResult;
131
134
  export interface CreateSectionBreakSuccessResult {
132
135
  success: true;
133
136
  appliedChangeMode?: 'direct' | 'tracked';
137
+ trackedChangeRefs?: TrackedChangeAddress[];
134
138
  section: SectionAddress;
135
139
  /**
136
140
  * Present only when the break is represented as a dedicated paragraph.
@@ -145,6 +145,7 @@ export type ReceiptSuccess = {
145
145
  /** Temporary-preview lifecycle and caller tag, also delivered through mutation events. */
146
146
  temporary?: import('./temporary-mutation.js').TemporaryMutationMetadata;
147
147
  success: true;
148
+ status?: 'NO_OP';
148
149
  /** Whether a successful request changed the document; false represents a no-op commit. */
149
150
  changed?: boolean;
150
151
  /** Tracked changes authored by this mutation. */
@@ -564,6 +564,7 @@ export type RenderPlaceholder = {
564
564
  */
565
565
  export type ImageRun = {
566
566
  kind: 'image';
567
+ inlineDrawingId?: string;
567
568
  /** Image source URL (data URI or external URL). */
568
569
  src: string;
569
570
  /** Image width in pixels. */
@@ -2406,6 +2407,7 @@ export type ImageMeasure = {
2406
2407
  };
2407
2408
  export type DrawingMeasure = {
2408
2409
  kind: 'drawing';
2410
+ inlineDrawing?: boolean;
2409
2411
  drawingKind: DrawingKind;
2410
2412
  width: number;
2411
2413
  height: number;
@@ -213,3 +213,4 @@ export declare function pmPosToCharOffset(block: FlowBlock, line: Line, pmPos: n
213
213
  export declare function pmPosToVisualCharOffset(block: FlowBlock, line: Line, pmPos: number): number;
214
214
  export { measureVisualBidiFragment, type MeasuredVisualBidiFragment } from './neutral-segment-geometry.js';
215
215
  export { measuredVisualBidiCaretX, measuredVisualBidiOffsetAtX, measuredVisualBidiRangeBands, isMeasuredVisualBidiLineCurrent, type MeasuredVisualBidiLine, } from './visual-bidi-geometry.js';
216
+ export { placeInlineDrawings } from './place-inline-drawings.js';
@@ -0,0 +1,9 @@
1
+ import { FlowBlock, Layout, Measure } from '../../contracts/src/index.js';
2
+ export declare function placeInlineDrawings(layout: Layout, blocks: FlowBlock[], measures: Measure[], blockIndexById?: ReadonlyMap<string, number>, retainedPages?: {
3
+ prefixEndPageIndex?: number;
4
+ tail?: {
5
+ startPageIndex: number;
6
+ endPageIndexExclusive: number;
7
+ blockIdRewrites?: ReadonlyMap<string, string> | null;
8
+ };
9
+ }): Layout;
@@ -9,6 +9,7 @@ import { PageState } from './paginator.js';
9
9
  * callbacks for positioning the drawing fragment on the current page/column.
10
10
  */
11
11
  export type DrawingLayoutContext = {
12
+ inlineParagraphBound?: boolean;
12
13
  /** The drawing block to layout */
13
14
  block: DrawingBlock;
14
15
  /** Measured dimensions and geometry data for the drawing */
@@ -57,4 +58,4 @@ export type DrawingLayoutContext = {
57
58
  * - Anchored drawings (`block.anchor?.isAnchored === true`) are skipped
58
59
  * - They are positioned via the paragraph anchoring pre-pass
59
60
  */
60
- export declare function layoutDrawingBlock({ block, measure, columns, ensurePage, advanceColumn, columnX, textboxContentMeasures, }: DrawingLayoutContext): void;
61
+ export declare function layoutDrawingBlock({ block, measure, columns, ensurePage, advanceColumn, columnX, textboxContentMeasures, inlineParagraphBound, }: DrawingLayoutContext): void;
@@ -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-CXdsObDZ.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNe9BmHD.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-CAfcpwSS.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BEB7RtD6.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-CXdsObDZ.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNe9BmHD.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-CAfcpwSS.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BEB7RtD6.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-CXdsObDZ.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-DNe9BmHD.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 { m as shallowEqual, s as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-CAfcpwSS.es.js";
1
+ import { h as shallowEqual, s as BUILT_IN_COMMAND_IDS, t as createSuperDocUI } from "../chunks/create-super-doc-ui-BEB7RtD6.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) {