superdoc 2.27.0 → 2.28.0-next.10

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 (149) hide show
  1. package/dist/chunks/{create-super-doc-ui-DpVh2nQH.cjs → create-super-doc-ui-B4c55pFy.cjs} +575 -86
  2. package/dist/chunks/{create-super-doc-ui-cHUUipYM.es.js → create-super-doc-ui-C4Ka5Ph3.es.js} +570 -87
  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/content-controls/content-controls.types.d.ts +11 -0
  6. package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
  7. package/dist/document-api/src/contract/operation-definitions.d.ts +46 -46
  8. package/dist/document-api/src/contract/operation-registry.d.ts +4 -0
  9. package/dist/document-api/src/export/export.d.ts +3 -1
  10. package/dist/document-api/src/export/export.types.d.ts +8 -0
  11. package/dist/document-api/src/get-node/get-node.d.ts +10 -4
  12. package/dist/document-api/src/hyperlinks/hyperlinks.types.d.ts +2 -0
  13. package/dist/document-api/src/index.d.ts +5 -4
  14. package/dist/document-api/src/replace/replace.d.ts +4 -1
  15. package/dist/document-api/src/styles/apply.d.ts +26 -2
  16. package/dist/document-api/src/styles/index.d.ts +3 -3
  17. package/dist/document-api/src/styles/schema.d.ts +3 -1
  18. package/dist/document-api/src/styles/validation.d.ts +10 -9
  19. package/dist/document-api/src/types/mutation-plan.types.d.ts +13 -4
  20. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  21. package/dist/document-api/src/types/track-changes.types.d.ts +10 -2
  22. package/dist/layout-engine/contracts/src/index.d.ts +3 -1
  23. package/dist/layout-engine/contracts/src/resolved-layout.d.ts +1 -0
  24. package/dist/layout-engine/contracts/src/run-helpers.d.ts +7 -0
  25. package/dist/layout-engine/painters/dom/src/page-content.d.ts +1 -0
  26. package/dist/layout-engine/painters/dom/src/review-markers.d.ts +3 -0
  27. package/dist/layout-engine/painters/dom/src/table/renderTableCell.d.ts +1 -0
  28. package/dist/public/ui-react.cjs +1 -1
  29. package/dist/public/ui-react.es.js +1 -1
  30. package/dist/public/ui-vue.cjs +1 -1
  31. package/dist/public/ui-vue.es.js +1 -1
  32. package/dist/public/ui.cjs +1 -1
  33. package/dist/public/ui.es.js +1 -1
  34. package/dist/shared/common/list-marker-utils.d.ts +3 -0
  35. package/dist/style.css +1 -1
  36. package/dist/style.layered.css +1 -1
  37. package/dist/superdoc/src/core/SuperDoc.d.ts +2 -6
  38. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +2 -0
  39. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -0
  40. package/dist/superdoc/src/core/editor-runtime/types.d.ts +1 -0
  41. package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +2 -2
  42. package/dist/superdoc/src/core/extensions/types.d.ts +14 -3
  43. package/dist/superdoc/src/core/helpers/resolve-docx-export.d.ts +6 -0
  44. package/dist/superdoc/src/core/types/index.d.ts +35 -1
  45. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +0 -8
  46. package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +3 -1
  47. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +0 -1
  48. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +0 -2
  49. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +1 -0
  50. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +1 -0
  51. package/dist/superdoc/src/public/export-types.d.ts +3 -0
  52. package/dist/superdoc/src/public/ui/entity-at.d.ts +1 -0
  53. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +0 -13
  54. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +7 -0
  55. package/dist/superdoc/src/public/ui/types.d.ts +20 -2
  56. package/dist/superdoc/src/public/ui.d.cts +18 -0
  57. package/dist/superdoc/src/public/ui.d.ts +1 -1
  58. package/dist/superdoc/src/stores/comments-store.d.ts +3 -57
  59. package/dist/superdoc/src/stores/superdoc-store.d.ts +9 -171
  60. package/dist/superdoc.cjs +476 -216
  61. package/dist/superdoc.es.js +473 -215
  62. package/dist/word-layout/src/types.d.ts +1 -0
  63. package/dist-cdn/style.layered.css +1 -1
  64. package/dist-cdn/superdoc.min.css +1 -1
  65. package/dist-cdn/superdoc.min.js +42 -42
  66. package/package.json +2 -2
  67. package/dist/footnote-table-order.docx +0 -0
  68. package/dist/images/altText_add.svg +0 -3
  69. package/dist/images/altText_disclaimer.svg +0 -3
  70. package/dist/images/altText_done.svg +0 -3
  71. package/dist/images/altText_spinner.svg +0 -30
  72. package/dist/images/altText_warning.svg +0 -3
  73. package/dist/images/annotation-check.svg +0 -11
  74. package/dist/images/annotation-comment.svg +0 -16
  75. package/dist/images/annotation-help.svg +0 -26
  76. package/dist/images/annotation-insert.svg +0 -10
  77. package/dist/images/annotation-key.svg +0 -11
  78. package/dist/images/annotation-newparagraph.svg +0 -11
  79. package/dist/images/annotation-noicon.svg +0 -7
  80. package/dist/images/annotation-note.svg +0 -42
  81. package/dist/images/annotation-paperclip.svg +0 -6
  82. package/dist/images/annotation-paragraph.svg +0 -16
  83. package/dist/images/annotation-pushpin.svg +0 -7
  84. package/dist/images/checkmark.svg +0 -5
  85. package/dist/images/comment-actionsButton.svg +0 -3
  86. package/dist/images/comment-closeButton.svg +0 -3
  87. package/dist/images/comment-editButton.svg +0 -8
  88. package/dist/images/comment-popup-editButton.svg +0 -5
  89. package/dist/images/cursor-editorFreeHighlight.svg +0 -6
  90. package/dist/images/cursor-editorFreeText.svg +0 -3
  91. package/dist/images/cursor-editorInk.svg +0 -4
  92. package/dist/images/cursor-editorTextHighlight.svg +0 -8
  93. package/dist/images/editor-toolbar-delete.svg +0 -5
  94. package/dist/images/editor-toolbar-edit.svg +0 -3
  95. package/dist/images/findbarButton-next.svg +0 -3
  96. package/dist/images/findbarButton-previous.svg +0 -3
  97. package/dist/images/gv-toolbarButton-download.svg +0 -3
  98. package/dist/images/loading-icon.gif +0 -0
  99. package/dist/images/loading.svg +0 -1
  100. package/dist/images/messageBar_closingButton.svg +0 -3
  101. package/dist/images/messageBar_info.svg +0 -3
  102. package/dist/images/messageBar_warning.svg +0 -3
  103. package/dist/images/pages_closeButton.svg +0 -3
  104. package/dist/images/pages_selected.svg +0 -7
  105. package/dist/images/pages_viewArrow.svg +0 -3
  106. package/dist/images/pages_viewButton.svg +0 -3
  107. package/dist/images/secondaryToolbarButton-documentProperties.svg +0 -3
  108. package/dist/images/secondaryToolbarButton-firstPage.svg +0 -3
  109. package/dist/images/secondaryToolbarButton-handTool.svg +0 -3
  110. package/dist/images/secondaryToolbarButton-lastPage.svg +0 -3
  111. package/dist/images/secondaryToolbarButton-rotateCcw.svg +0 -3
  112. package/dist/images/secondaryToolbarButton-rotateCw.svg +0 -3
  113. package/dist/images/secondaryToolbarButton-scrollHorizontal.svg +0 -3
  114. package/dist/images/secondaryToolbarButton-scrollPage.svg +0 -3
  115. package/dist/images/secondaryToolbarButton-scrollVertical.svg +0 -3
  116. package/dist/images/secondaryToolbarButton-scrollWrapped.svg +0 -3
  117. package/dist/images/secondaryToolbarButton-selectTool.svg +0 -3
  118. package/dist/images/secondaryToolbarButton-spreadEven.svg +0 -3
  119. package/dist/images/secondaryToolbarButton-spreadNone.svg +0 -3
  120. package/dist/images/secondaryToolbarButton-spreadOdd.svg +0 -3
  121. package/dist/images/toolbarButton-bookmark.svg +0 -3
  122. package/dist/images/toolbarButton-currentOutlineItem.svg +0 -3
  123. package/dist/images/toolbarButton-download.svg +0 -4
  124. package/dist/images/toolbarButton-editorFreeText.svg +0 -5
  125. package/dist/images/toolbarButton-editorHighlight.svg +0 -6
  126. package/dist/images/toolbarButton-editorInk.svg +0 -4
  127. package/dist/images/toolbarButton-editorSignature.svg +0 -6
  128. package/dist/images/toolbarButton-editorStamp.svg +0 -8
  129. package/dist/images/toolbarButton-menuArrow.svg +0 -3
  130. package/dist/images/toolbarButton-openFile.svg +0 -3
  131. package/dist/images/toolbarButton-pageDown.svg +0 -3
  132. package/dist/images/toolbarButton-pageUp.svg +0 -3
  133. package/dist/images/toolbarButton-presentationMode.svg +0 -3
  134. package/dist/images/toolbarButton-print.svg +0 -3
  135. package/dist/images/toolbarButton-search.svg +0 -3
  136. package/dist/images/toolbarButton-secondaryToolbarToggle.svg +0 -3
  137. package/dist/images/toolbarButton-viewAttachments.svg +0 -3
  138. package/dist/images/toolbarButton-viewLayers.svg +0 -3
  139. package/dist/images/toolbarButton-viewOutline.svg +0 -3
  140. package/dist/images/toolbarButton-viewThumbnail.svg +0 -3
  141. package/dist/images/toolbarButton-viewsManagerToggle.svg +0 -3
  142. package/dist/images/toolbarButton-zoomIn.svg +0 -3
  143. package/dist/images/toolbarButton-zoomOut.svg +0 -3
  144. package/dist/images/treeitem-collapsed.svg +0 -1
  145. package/dist/images/treeitem-expanded.svg +0 -1
  146. package/dist/superdoc/src/helpers/floor.d.ts +0 -1
  147. package/dist/superdoc/src/index.d.cts +0 -18
  148. package/dist/superdoc/src/index.d.ts +0 -14
  149. package/dist-cdn/footnote-table-order.docx +0 -0
@@ -603,8 +603,18 @@ export interface V2YWebsocketCollaborationConfig {
603
603
  /** Explicit room operation. Defaults to `'join'`; `'create'` never joins an existing room. */
604
604
  roomMode?: 'join' | 'create';
605
605
  }
606
+ export interface HocuspocusRetryOptions {
607
+ reconnectMinDelayMs?: number;
608
+ reconnectMaxDelayMs?: number;
609
+ delayMs?: number;
610
+ factor?: number;
611
+ minDelayMs?: number;
612
+ maxDelayMs?: number;
613
+ jitter?: boolean;
614
+ }
606
615
  /** Hocuspocus single-doc provider config. */
607
616
  export interface V2HocuspocusCollaborationConfig {
617
+ retry?: HocuspocusRetryOptions;
608
618
  providerType: 'hocuspocus';
609
619
  /** Stable shared document identity (used as the v2 root/room identity). */
610
620
  documentId: string;
@@ -809,6 +819,18 @@ export interface ProofingIssue {
809
819
  export interface ProofingCheckResult {
810
820
  issues: ProofingIssue[];
811
821
  }
822
+ export interface ProofingSuggestRequest {
823
+ documentId?: string | null;
824
+ defaultLanguage?: string | null;
825
+ maxSuggestions?: number;
826
+ segment: ProofingSegment;
827
+ issue: Omit<ProofingIssue, 'replacements'>;
828
+ text: string;
829
+ signal: AbortSignal;
830
+ }
831
+ export interface ProofingSuggestResult {
832
+ replacements: string[];
833
+ }
812
834
  /**
813
835
  * Provider-agnostic proofing engine. SuperDoc owns segment extraction,
814
836
  * scheduling, and rendering; providers only inspect text and return ranges.
@@ -817,6 +839,7 @@ export interface ProofingProvider {
817
839
  id: string;
818
840
  getCapabilities?: () => Promise<ProofingCapabilities> | ProofingCapabilities;
819
841
  check: (request: ProofingCheckRequest) => Promise<ProofingCheckResult>;
842
+ suggest?: (request: ProofingSuggestRequest) => Promise<ProofingSuggestResult>;
820
843
  dispose?: () => Promise<void> | void;
821
844
  }
822
845
  export interface SelectionInfo {
@@ -1301,8 +1324,19 @@ export interface CommentsResponsiveConfig {
1301
1324
  */
1302
1325
  breakpoint?: number;
1303
1326
  }
1304
- /** Startup options for the built-in comments UI rendered by `ui.comments`. */
1327
+ /**
1328
+ * Startup options for the built-in comments UI rendered by `ui.comments`.
1329
+ *
1330
+ * `panel` (default `true`) is SuperDoc's comments panel: thread cards, the
1331
+ * add-comment bubble and the comment dialog. `ui.comments: false` is the same
1332
+ * as `{ panel: false }`. `highlights` (default `true`) is the highlight SuperDoc
1333
+ * paints on commented text. Set it to `false` to paint your own with
1334
+ * `superdoc.ui.decorations`. Comments, `ui.comments`, the Document API and
1335
+ * `ui.viewport.entityAt` comment hits keep working either way.
1336
+ */
1305
1337
  export interface CommentsConfig {
1338
+ panel?: boolean;
1339
+ highlights?: boolean;
1306
1340
  /**
1307
1341
  * Where comment threads render (default: `'sidebar'`). `auto` uses the
1308
1342
  * available width to choose between sidebar and inline.
@@ -31,14 +31,6 @@ export function createStubV2Integration(): SuperDocV2Integration;
31
31
  * @returns {SuperDocV2Integration}
32
32
  */
33
33
  export function createDefaultV2Integration(): SuperDocV2Integration;
34
- /**
35
- * Backwards-compatible alias. The v2 branch no longer reads any customer
36
- * config; the parameter is ignored and retained only so existing call sites do
37
- * not need to change in lockstep with this internalization.
38
- *
39
- * @returns {SuperDocV2Integration}
40
- */
41
- export function resolveV2Integration(): SuperDocV2Integration;
42
34
  /**
43
35
  * @param {SuperDocV2Integration | null | undefined} integration
44
36
  * @returns {boolean}
@@ -1,10 +1,12 @@
1
1
  declare const _default: import('vue').DefineComponent<{}, {
2
- $emit: (event: "select", ...args: any[]) => void;
2
+ $emit: (event: "update" | "select", ...args: any[]) => void;
3
3
  styles: unknown[];
4
4
  selectedOption: string;
5
+ updateLabel: string;
5
6
  $props: {
6
7
  readonly styles?: unknown[] | undefined;
7
8
  readonly selectedOption?: string | undefined;
9
+ readonly updateLabel?: string | undefined;
8
10
  };
9
11
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
10
12
  styleRefs: HTMLDivElement[];
@@ -21,4 +21,3 @@ export const icons: {
21
21
  borderRadius: string;
22
22
  };
23
23
  }[][];
24
- export function getAvailableColorOptions(): any[];
@@ -97,5 +97,3 @@ export namespace TABLE_ACTION_COMMAND_MAP {
97
97
  let fixTables: string;
98
98
  }
99
99
  export const TABLE_ACTION_COMMAND_IDS: string[];
100
- export const HEADLESS_TOOLBAR_COMMANDS: string[];
101
- export const HEADLESS_EXECUTE_ITEMS: Set<string>;
@@ -57,4 +57,5 @@ export namespace toolbarTexts {
57
57
  let documentSuggestingModeDescription: string;
58
58
  let documentViewingModeDescription: string;
59
59
  let linkedStyles: string;
60
+ let updateLinkedStyle: string;
60
61
  }
@@ -111,6 +111,7 @@ export declare class BuiltInToolbar extends EventEmitter {
111
111
  * to mark the active option in the linked-styles dropdown.
112
112
  */
113
113
  getActiveLinkedStyleId(): string | null;
114
+ updateLinkedStyleToMatchSelection(styleId: string): Promise<import('../../../../document-api/src/index.js').ReceiptSuccess | import('../../public/ui/types.js').SuperDocUIFailureReceipt | import('../../public/ui/types.js').PartialLinkEditReceipt | null>;
114
115
  /**
115
116
  * Compatibility hook: `SuperDoc` calls this when the active editor changes.
116
117
  * The shared controller already tracks selection/transaction state, so this
@@ -1,9 +1,12 @@
1
+ import { DocxExportPolicies } from '../../../document-api/src/index.js';
2
+ export type { DocxExportPolicies } from '../../../document-api/src/index.js';
1
3
  /** Browser export format. DOCX is the only supported output. */
2
4
  export type ExportType = 'docx';
3
5
  /** Comment output: `external` includes external comments; `clean` removes comments. */
4
6
  export type CommentsType = 'external' | 'clean';
5
7
  /** Options accepted by `SuperDoc.export()` and `ui.document.export()`. */
6
8
  export interface ExportParams {
9
+ policies?: DocxExportPolicies;
7
10
  /** Browser export format. DOCX is the only supported output. */
8
11
  exportType?: readonly [ExportType];
9
12
  /** How to handle comments. */
@@ -11,6 +11,7 @@ import { ViewportEntityHit } from './types.js';
11
11
  export interface CollectedEntityHit extends ViewportEntityHit {
12
12
  storyKey?: string;
13
13
  }
14
+ export declare function collectDecorationProvidersFromChain(start: Element | null, stopAt: Element): string[];
14
15
  /**
15
16
  * Read painted entities off `el` and every ancestor up to the document root, or
16
17
  * up to and INCLUDING `stopAt` when given. Innermost-first ordering: a tracked
@@ -7,19 +7,6 @@
7
7
  * @returns {Record<string, unknown>} InlineRunPatch ready for doc.format.apply
8
8
  */
9
9
  export function sdRunPropsToInlineRunPatch(props: Record<string, unknown>): Record<string, unknown>;
10
- /**
11
- * Returns true when a selection segment spans the full visible text of its block.
12
- * A collapsed caret is NOT a full paragraph.
13
- *
14
- * @param {{ range: { start: number; end: number } }} segment
15
- * @param {number | null | undefined} blockVisibleLength
16
- */
17
- export function isFullParagraph(segment: {
18
- range: {
19
- start: number;
20
- end: number;
21
- };
22
- }, blockVisibleLength: number | null | undefined): boolean;
23
10
  /**
24
11
  * Serializes a selection to a stable string key used to detect whether
25
12
  * the target selection is the same as the source (skip apply in that case).
@@ -0,0 +1,7 @@
1
+ import { FormatReadSelectionResult, InlineRunPatchKey, StylesStyleRunPatch } from '../../../../document-api/src/index.js';
2
+ export declare const STYLE_MATCH_KEYS: readonly [readonly ["bold", "bold"], readonly ["italic", "italic"], readonly ["underline", "underline"], readonly ["color", "color"], readonly ["fontSize", "fontSize"], readonly ["rFonts", "fontFamily"]];
3
+ export declare const STYLE_MATCH_READ_KEYS: InlineRunPatchKey[];
4
+ export interface StyleMatchPatchOptions {
5
+ selectionUsesStyle: boolean;
6
+ }
7
+ export declare function buildStyleMatchPatch(effective: FormatReadSelectionResult, direct: FormatReadSelectionResult, options: StyleMatchPatchOptions): StylesStyleRunPatch;
@@ -1,6 +1,7 @@
1
1
  import { CommentsListQuery as DocumentApiCommentsListQuery, CommentsListResult, TrackChangesListResult, EntityAddress, TextAddress, BookmarkAddress, TextTarget, ScrollIntoViewInput, ScrollIntoViewOutput, SelectionInfo, SelectionTarget, Receipt, ReceiptFailureCode, ContentControlInfo, ContentControlTarget, StyleCatalogItem, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult } from '../../../../document-api/src/index.js';
2
2
  import { BrowserDocumentApi, PartialBrowserDocumentApi } from '../browser-document-api.js';
3
3
  import { ExportParams } from '../export-types.js';
4
+ import { SuperDocVisualHandle, SuperDocVisualOptions } from '../../core/extensions/types.js';
4
5
  import { DocumentReplacementResult } from '../document-replacement.js';
5
6
  import { SuperDocUIReason } from './reasons.js';
6
7
  import { BuiltInCommandId } from './commands.js';
@@ -30,7 +31,7 @@ import { BuiltInCommandId } from './commands.js';
30
31
  * (`scripts/ensure-types.cjs` `rewriteDocApiPaths`), so no bare private
31
32
  * specifier leaks into the emitted `.d.ts`.
32
33
  */
33
- export type { Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, BookmarkAddress, ScrollIntoViewInput, ScrollIntoViewOutput, DocumentApi, EntityAddress, CommentsListQuery as DocumentApiCommentsListQuery, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, StoryLocator as DocumentStoryLocator, } from '../../../../document-api/src/index.js';
34
+ export type { Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, BookmarkAddress, ScrollIntoViewInput, ScrollIntoViewOutput, DocumentApi, EntityAddress, CommentsListQuery as DocumentApiCommentsListQuery, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryOperationEffects, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, StoryLocator as DocumentStoryLocator, OperationId, OperationCall, OperationInput, OperationOptions, OperationOutput, } from '../../../../document-api/src/index.js';
34
35
  export type { StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, } from '../../../../document-api/src/index.js';
35
36
  export type { ListPresetId } from '../../../../document-api/src/index.js';
36
37
  export type { BrowserDocumentApi, PartialBrowserDocumentApi } from '../browser-document-api.js';
@@ -368,7 +369,7 @@ export interface ContextMenuItem {
368
369
  invoke(): CommandExecutionResult;
369
370
  }
370
371
  export interface ViewportEntityHit {
371
- type: 'trackedChange' | 'comment' | 'contentControl' | 'citation' | (string & {});
372
+ type: 'trackedChange' | 'comment' | 'contentControl' | 'citation' | 'decoration' | (string & {});
372
373
  id: string;
373
374
  tag?: string;
374
375
  scope?: 'block' | 'inline';
@@ -753,6 +754,10 @@ export interface StylesHandle extends SnapshotSubscribable<StylesSlice> {
753
754
  getQuickGallery(): readonly StyleCatalogItem[];
754
755
  /** Resolve the active paragraph style for the current selection. */
755
756
  getActiveParagraphStyle(): ActiveParagraphStyle;
757
+ updateToMatchSelection(input?: StylesUpdateToMatchSelectionInput): WorkflowReceipt;
758
+ }
759
+ export interface StylesUpdateToMatchSelectionInput {
760
+ styleId?: string;
756
761
  }
757
762
  /**
758
763
  * A painted document rectangle. Coordinates use browser client space by
@@ -1598,9 +1603,21 @@ export interface SuperDocUIOptions {
1598
1603
  * A disposable subscription scope. Subscriptions created inside the scope are
1599
1604
  * released together when the scope is disposed.
1600
1605
  */
1606
+ export interface DecorationPointerEvent {
1607
+ type: 'click' | 'hover-enter' | 'hover-leave';
1608
+ id: string;
1609
+ data?: SuperDocVisualOptions['data'];
1610
+ clientX: number;
1611
+ clientY: number;
1612
+ }
1613
+ export interface DecorationsHandle {
1614
+ highlight(id: string, options?: SuperDocVisualOptions): SuperDocVisualHandle;
1615
+ subscribe(listener: (event: DecorationPointerEvent) => void): () => void;
1616
+ }
1601
1617
  export interface SuperDocUIScope {
1602
1618
  /** Subscribe within the scope. */
1603
1619
  select<TSlice>(selector: SelectorFn<SuperDocUIState, TSlice>, equality?: EqualityFn<TSlice>): Subscribable<TSlice>;
1620
+ readonly decorations: DecorationsHandle;
1604
1621
  /** Dispose every subscription created within the scope. */
1605
1622
  dispose(): void;
1606
1623
  }
@@ -1637,6 +1654,7 @@ export interface SuperDocUI {
1637
1654
  readonly document: DocumentHandle;
1638
1655
  /** Viewport / geometry surface. */
1639
1656
  readonly viewport: ViewportHandle;
1657
+ readonly decorations: DecorationsHandle;
1640
1658
  /** Metadata geometry/navigation convenience surface. */
1641
1659
  readonly metadata: MetadataHandle;
1642
1660
  /** Table-context surface (shared `table-*` routing truth). */
@@ -33,6 +33,8 @@ import type { CustomCommandHandle as __Cjs_CustomCommandHandle } from './ui.js'
33
33
  import type { CustomCommandHandleState as __Cjs_CustomCommandHandleState } from './ui.js' with { "resolution-mode": "import" };
34
34
  import type { CustomCommandRegistration as __Cjs_CustomCommandRegistration } from './ui.js' with { "resolution-mode": "import" };
35
35
  import type { CustomCommandRegistrationResult as __Cjs_CustomCommandRegistrationResult } from './ui.js' with { "resolution-mode": "import" };
36
+ import type { DecorationPointerEvent as __Cjs_DecorationPointerEvent } from './ui.js' with { "resolution-mode": "import" };
37
+ import type { DecorationsHandle as __Cjs_DecorationsHandle } from './ui.js' with { "resolution-mode": "import" };
36
38
  import type { DocumentApi as __Cjs_DocumentApi } from './ui.js' with { "resolution-mode": "import" };
37
39
  import type { DocumentApiRejectionDetails as __Cjs_DocumentApiRejectionDetails } from './ui.js' with { "resolution-mode": "import" };
38
40
  import type { DocumentApiRejectionReason as __Cjs_DocumentApiRejectionReason } from './ui.js' with { "resolution-mode": "import" };
@@ -47,7 +49,12 @@ import type { FontsHandle as __Cjs_FontsHandle } from './ui.js' with { "resoluti
47
49
  import type { FontSizeOption as __Cjs_FontSizeOption } from './ui.js' with { "resolution-mode": "import" };
48
50
  import type { FontsSlice as __Cjs_FontsSlice } from './ui.js' with { "resolution-mode": "import" };
49
51
  import type { MetadataHandle as __Cjs_MetadataHandle } from './ui.js' with { "resolution-mode": "import" };
52
+ import type { OperationCall as __Cjs_OperationCall } from './ui.js' with { "resolution-mode": "import" };
50
53
  import type { OperationCapabilityResolveResult as __Cjs_OperationCapabilityResolveResult } from './ui.js' with { "resolution-mode": "import" };
54
+ import type { OperationId as __Cjs_OperationId } from './ui.js' with { "resolution-mode": "import" };
55
+ import type { OperationInput as __Cjs_OperationInput } from './ui.js' with { "resolution-mode": "import" };
56
+ import type { OperationOptions as __Cjs_OperationOptions } from './ui.js' with { "resolution-mode": "import" };
57
+ import type { OperationOutput as __Cjs_OperationOutput } from './ui.js' with { "resolution-mode": "import" };
51
58
  import type { PageBodyTarget as __Cjs_PageBodyTarget } from './ui.js' with { "resolution-mode": "import" };
52
59
  import type { PageMetricsHandle as __Cjs_PageMetricsHandle } from './ui.js' with { "resolution-mode": "import" };
53
60
  import type { PageMetricsPage as __Cjs_PageMetricsPage } from './ui.js' with { "resolution-mode": "import" };
@@ -89,6 +96,7 @@ import type { StylesGetCatalogInput as __Cjs_StylesGetCatalogInput } from './ui.
89
96
  import type { StylesGetCatalogResult as __Cjs_StylesGetCatalogResult } from './ui.js' with { "resolution-mode": "import" };
90
97
  import type { StylesHandle as __Cjs_StylesHandle } from './ui.js' with { "resolution-mode": "import" };
91
98
  import type { StylesSlice as __Cjs_StylesSlice } from './ui.js' with { "resolution-mode": "import" };
99
+ import type { StylesUpdateToMatchSelectionInput as __Cjs_StylesUpdateToMatchSelectionInput } from './ui.js' with { "resolution-mode": "import" };
92
100
  import type { Subscribable as __Cjs_Subscribable } from './ui.js' with { "resolution-mode": "import" };
93
101
  import type { SuperDocEditorLike as __Cjs_SuperDocEditorLike } from './ui.js' with { "resolution-mode": "import" };
94
102
  import type { SuperDocLike as __Cjs_SuperDocLike } from './ui.js' with { "resolution-mode": "import" };
@@ -104,6 +112,7 @@ import type { TemporaryMutationInput as __Cjs_TemporaryMutationInput } from './u
104
112
  import type { TemporaryMutationOperation as __Cjs_TemporaryMutationOperation } from './ui.js' with { "resolution-mode": "import" };
105
113
  import type { TemporaryMutationReceipt as __Cjs_TemporaryMutationReceipt } from './ui.js' with { "resolution-mode": "import" };
106
114
  import type { TemporaryMutationReplaceInput as __Cjs_TemporaryMutationReplaceInput } from './ui.js' with { "resolution-mode": "import" };
115
+ import type { TemporaryOperationEffects as __Cjs_TemporaryOperationEffects } from './ui.js' with { "resolution-mode": "import" };
107
116
  import type { TemporaryOperationResultTarget as __Cjs_TemporaryOperationResultTarget } from './ui.js' with { "resolution-mode": "import" };
108
117
  import type { TextAddress as __Cjs_TextAddress } from './ui.js' with { "resolution-mode": "import" };
109
118
  import type { TextRangeRejectionReason as __Cjs_TextRangeRejectionReason } from './ui.js' with { "resolution-mode": "import" };
@@ -177,6 +186,8 @@ export type { __Cjs_CustomCommandHandle as CustomCommandHandle };
177
186
  export type { __Cjs_CustomCommandHandleState as CustomCommandHandleState };
178
187
  export type { __Cjs_CustomCommandRegistration as CustomCommandRegistration };
179
188
  export type { __Cjs_CustomCommandRegistrationResult as CustomCommandRegistrationResult };
189
+ export type { __Cjs_DecorationPointerEvent as DecorationPointerEvent };
190
+ export type { __Cjs_DecorationsHandle as DecorationsHandle };
180
191
  export type { __Cjs_DocumentApi as DocumentApi };
181
192
  export type { __Cjs_DocumentApiRejectionDetails as DocumentApiRejectionDetails };
182
193
  export type { __Cjs_DocumentApiRejectionReason as DocumentApiRejectionReason };
@@ -192,7 +203,12 @@ export type { __Cjs_FontSizeOption as FontSizeOption };
192
203
  export type { __Cjs_FontsSlice as FontsSlice };
193
204
  export declare const getDocumentApiRejectionReason: typeof import('./ui.js', { with: { "resolution-mode": "import" } }).getDocumentApiRejectionReason;
194
205
  export type { __Cjs_MetadataHandle as MetadataHandle };
206
+ export type { __Cjs_OperationCall as OperationCall };
195
207
  export type { __Cjs_OperationCapabilityResolveResult as OperationCapabilityResolveResult };
208
+ export type { __Cjs_OperationId as OperationId };
209
+ export type { __Cjs_OperationInput as OperationInput };
210
+ export type { __Cjs_OperationOptions as OperationOptions };
211
+ export type { __Cjs_OperationOutput as OperationOutput };
196
212
  export type { __Cjs_PageBodyTarget as PageBodyTarget };
197
213
  export type { __Cjs_PageMetricsHandle as PageMetricsHandle };
198
214
  export type { __Cjs_PageMetricsPage as PageMetricsPage };
@@ -235,6 +251,7 @@ export type { __Cjs_StylesGetCatalogInput as StylesGetCatalogInput };
235
251
  export type { __Cjs_StylesGetCatalogResult as StylesGetCatalogResult };
236
252
  export type { __Cjs_StylesHandle as StylesHandle };
237
253
  export type { __Cjs_StylesSlice as StylesSlice };
254
+ export type { __Cjs_StylesUpdateToMatchSelectionInput as StylesUpdateToMatchSelectionInput };
238
255
  export type { __Cjs_Subscribable as Subscribable };
239
256
  export type { __Cjs_SuperDocEditorLike as SuperDocEditorLike };
240
257
  export type { __Cjs_SuperDocLike as SuperDocLike };
@@ -250,6 +267,7 @@ export type { __Cjs_TemporaryMutationInput as TemporaryMutationInput };
250
267
  export type { __Cjs_TemporaryMutationOperation as TemporaryMutationOperation };
251
268
  export type { __Cjs_TemporaryMutationReceipt as TemporaryMutationReceipt };
252
269
  export type { __Cjs_TemporaryMutationReplaceInput as TemporaryMutationReplaceInput };
270
+ export type { __Cjs_TemporaryOperationEffects as TemporaryOperationEffects };
253
271
  export type { __Cjs_TemporaryOperationResultTarget as TemporaryOperationResultTarget };
254
272
  export type { __Cjs_TextAddress as TextAddress };
255
273
  export type { __Cjs_TextRangeRejectionReason as TextRangeRejectionReason };
@@ -18,5 +18,5 @@ export { createSuperDocUI } from './ui/create-super-doc-ui.js';
18
18
  export { getDocumentApiRejectionReason } from './ui/rejection-reasons.js';
19
19
  export { shallowEqual } from './ui/equality.js';
20
20
  export { BUILT_IN_COMMAND_IDS } from './ui/commands.js';
21
- export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, TablesHandle, TableContextInfo, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportGetRectTarget, ViewportGetRectsInput, ViewportGetRectsResult, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, DocumentStoryLocator, } from './ui/types.js';
21
+ export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, TablesHandle, TableContextInfo, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, DecorationsHandle, DecorationPointerEvent, StylesHandle, StylesUpdateToMatchSelectionInput, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportGetRectTarget, ViewportGetRectsInput, ViewportGetRectsResult, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryOperationEffects, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, DocumentStoryLocator, OperationId, OperationCall, OperationInput, OperationOptions, OperationOutput, } from './ui/types.js';
22
22
  export type { PageMetricsHandle, PageMetricsSnapshot, PageMetricsPage, PageBodyTarget } from './ui/page-metrics.js';
@@ -116,25 +116,7 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
116
116
  documentId: string;
117
117
  parentCommentId: string;
118
118
  }) => Object;
119
- showAddComment: (superdoc: any, targetClientY?: null) => Promise<{
120
- ok: boolean;
121
- reason: any;
122
- detail: any;
123
- } | {
124
- ok: boolean;
125
- reason?: undefined;
126
- detail?: undefined;
127
- } | {
128
- ok: boolean;
129
- reason: string;
130
- detail: any;
131
- }> | {
132
- ok: boolean;
133
- reason: any;
134
- } | {
135
- ok: boolean;
136
- reason?: undefined;
137
- };
119
+ showAddComment: (superdoc: any, targetClientY?: null) => any;
138
120
  addComment: ({ superdoc, comment, skipEditorUpdate, broadcastChanges }: {
139
121
  superdoc: any;
140
122
  comment: any;
@@ -402,25 +384,7 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
402
384
  documentId: string;
403
385
  parentCommentId: string;
404
386
  }) => Object;
405
- showAddComment: (superdoc: any, targetClientY?: null) => Promise<{
406
- ok: boolean;
407
- reason: any;
408
- detail: any;
409
- } | {
410
- ok: boolean;
411
- reason?: undefined;
412
- detail?: undefined;
413
- } | {
414
- ok: boolean;
415
- reason: string;
416
- detail: any;
417
- }> | {
418
- ok: boolean;
419
- reason: any;
420
- } | {
421
- ok: boolean;
422
- reason?: undefined;
423
- };
387
+ showAddComment: (superdoc: any, targetClientY?: null) => any;
424
388
  addComment: ({ superdoc, comment, skipEditorUpdate, broadcastChanges }: {
425
389
  superdoc: any;
426
390
  comment: any;
@@ -688,25 +652,7 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
688
652
  documentId: string;
689
653
  parentCommentId: string;
690
654
  }) => Object;
691
- showAddComment: (superdoc: any, targetClientY?: null) => Promise<{
692
- ok: boolean;
693
- reason: any;
694
- detail: any;
695
- } | {
696
- ok: boolean;
697
- reason?: undefined;
698
- detail?: undefined;
699
- } | {
700
- ok: boolean;
701
- reason: string;
702
- detail: any;
703
- }> | {
704
- ok: boolean;
705
- reason: any;
706
- } | {
707
- ok: boolean;
708
- reason?: undefined;
709
- };
655
+ showAddComment: (superdoc: any, targetClientY?: null) => any;
710
656
  addComment: ({ superdoc, comment, skipEditorUpdate, broadcastChanges }: {
711
657
  superdoc: any;
712
658
  comment: any;