superdoc 2.29.0-next.1 → 2.29.0-next.13

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 (175) hide show
  1. package/dist/chunks/{FindReplaceSurface-Dm043CZP.es.js → FindReplaceSurface-BKVHzhQ4.es.js} +34 -26
  2. package/dist/chunks/{FindReplaceSurface-BRs3JrCq.cjs → FindReplaceSurface-BNDrJ6VS.cjs} +34 -26
  3. package/dist/chunks/{PasswordPromptSurface-DGjmN7A-.es.js → PasswordPromptSurface-6mF6Azda.es.js} +6 -4
  4. package/dist/chunks/{PasswordPromptSurface-BpqP4pUa.cjs → PasswordPromptSurface-BNkaztaP.cjs} +6 -4
  5. package/dist/chunks/{PdfViewer-boENOZdF.cjs → PdfViewer-DmSkZehl.cjs} +70 -99
  6. package/dist/chunks/{PdfViewer-D4lVeOJu.es.js → PdfViewer-aOWhUVI7.es.js} +67 -96
  7. package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
  8. package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
  9. package/dist/chunks/{create-super-doc-ui-Duf65d0b.es.js → create-super-doc-ui-DdT4b29f.es.js} +41 -66
  10. package/dist/chunks/{create-super-doc-ui-0OA8hCNb.cjs → create-super-doc-ui-_SbygYQ4.cjs} +46 -65
  11. package/dist/collaboration-upgrade-engine.cjs +1 -1
  12. package/dist/collaboration-upgrade-engine.es.js +1 -1
  13. package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
  14. package/dist/document-api/src/comments/comments.d.ts +2 -0
  15. package/dist/document-api/src/contract/metadata-types.d.ts +1 -1
  16. package/dist/document-api/src/contract/operation-definitions.d.ts +3 -3
  17. package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
  18. package/dist/document-api/src/index.d.ts +8 -7
  19. package/dist/document-api/src/insert/insert.d.ts +2 -2
  20. package/dist/document-api/src/replace/replace.d.ts +3 -2
  21. package/dist/document-api/src/tables/tables.d.ts +2 -1
  22. package/dist/document-api/src/types/address.d.ts +3 -0
  23. package/dist/document-api/src/types/table-operations.types.d.ts +1 -0
  24. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  25. package/dist/document-api/src/write/write.d.ts +12 -6
  26. package/dist/layout-engine/contracts/src/index.d.ts +1 -1
  27. package/dist/layout-engine/contracts/src/paragraph-visible-text.d.ts +3 -1
  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/style.css +1 -1
  35. package/dist/style.layered.css +1 -1
  36. package/dist/superdoc/src/SuperDoc.vue.d.ts +132 -58
  37. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +116 -1277
  38. package/dist/superdoc/src/components/CommentsLayer/CommentHeader.vue.d.ts +106 -22
  39. package/dist/superdoc/src/components/CommentsLayer/CommentInput.vue.d.ts +74 -14
  40. package/dist/superdoc/src/components/CommentsLayer/CommentsDropdown.vue.d.ts +55 -20
  41. package/dist/superdoc/src/components/CommentsLayer/InternalDropdown.vue.d.ts +24 -8
  42. package/dist/superdoc/src/components/CommentsLayer/PdfCommentsLayer.vue.d.ts +5 -3
  43. package/dist/superdoc/src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue.d.ts +60 -12
  44. package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +20 -6
  45. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
  46. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +0 -1
  47. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +29 -13
  48. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
  49. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
  50. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
  51. package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
  52. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +81 -16
  53. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +49 -13
  54. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
  55. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +11 -0
  56. package/dist/superdoc/src/components/general/Avatar.vue.d.ts +12 -5
  57. package/dist/superdoc/src/components/surfaces/FindReplaceSurface.vue.d.ts +58 -15
  58. package/dist/superdoc/src/components/surfaces/PasswordPromptSurface.vue.d.ts +58 -15
  59. package/dist/superdoc/src/components/surfaces/SurfaceFloating.vue.d.ts +14 -6
  60. package/dist/superdoc/src/components/surfaces/SurfaceHost.vue.d.ts +25 -15
  61. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
  62. package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
  63. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
  64. package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
  65. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
  66. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
  67. package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
  68. package/dist/superdoc/src/composables/use-field.d.ts +88 -25
  69. package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
  70. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +40 -26
  71. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
  72. package/dist/superdoc/src/core/SuperDoc.d.ts +2 -7
  73. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
  74. package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
  75. package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -10
  76. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
  77. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
  78. package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
  79. package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
  80. package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
  81. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
  82. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
  83. package/dist/superdoc/src/core/create-app.d.ts +13 -24
  84. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
  85. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
  86. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
  87. package/dist/superdoc/src/core/editor-runtime/types.d.ts +9 -1
  88. package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +2 -1
  89. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
  90. package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
  91. package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
  92. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
  93. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
  94. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
  95. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
  96. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
  97. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +24 -61
  98. package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
  99. package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
  100. package/dist/superdoc/src/core/types/index.d.ts +5 -19
  101. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
  102. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
  103. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
  104. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
  105. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
  106. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
  107. package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
  108. package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
  109. package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
  110. package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
  111. package/dist/superdoc/src/helpers/object-guards.d.ts +1 -5
  112. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
  113. package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
  114. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
  115. package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
  116. package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
  117. package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
  118. package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
  119. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
  120. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
  121. package/dist/superdoc/src/icons.d.ts +11 -11
  122. package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +6 -15
  123. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +77 -16
  124. package/dist/superdoc/src/internal/toolbar/built-in/AlignmentButtons.vue.d.ts +5 -3
  125. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +85 -5
  126. package/dist/superdoc/src/internal/toolbar/built-in/DocumentMode.vue.d.ts +20 -6
  127. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +32 -8
  128. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +32 -8
  129. package/dist/superdoc/src/internal/toolbar/built-in/IconGrid.vue.d.ts +44 -12
  130. package/dist/superdoc/src/internal/toolbar/built-in/IconGridRow.vue.d.ts +32 -9
  131. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +1 -1
  132. package/dist/superdoc/src/internal/toolbar/built-in/StyleButtonsList.vue.d.ts +39 -10
  133. package/dist/superdoc/src/internal/toolbar/built-in/TableActions.vue.d.ts +24 -6
  134. package/dist/superdoc/src/internal/toolbar/built-in/TableGrid.vue.d.ts +7 -3
  135. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
  136. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +13 -15
  137. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -10
  138. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarSeparator.vue.d.ts +16 -6
  139. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +10 -20
  140. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +12 -45
  141. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
  142. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
  143. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
  144. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +67 -0
  145. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
  146. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -48
  147. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +7 -27
  148. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
  149. package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
  150. package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
  151. package/dist/superdoc/src/public/index.d.cts +26 -0
  152. package/dist/superdoc/src/public/index.d.ts +13 -0
  153. package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
  154. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
  155. package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
  156. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
  157. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
  158. package/dist/superdoc/src/public/ui/types.d.ts +1 -1
  159. package/dist/superdoc/src/stores/comments-store.d.ts +225 -99
  160. package/dist/superdoc/src/stores/helpers/comment-draft-text.d.ts +1 -0
  161. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
  162. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
  163. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
  164. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
  165. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +21 -0
  166. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
  167. package/dist/superdoc/src/stores/superdoc-store.d.ts +676 -298
  168. package/dist/superdoc.cjs +1682 -2515
  169. package/dist/superdoc.es.js +1716 -2553
  170. package/dist-cdn/style.layered.css +1 -1
  171. package/dist-cdn/superdoc.min.css +1 -1
  172. package/dist-cdn/superdoc.min.js +42 -42
  173. package/package.json +2 -2
  174. package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
  175. package/dist/superdoc/src/main.d.ts +0 -1
@@ -1,4 +1,21 @@
1
- export function getPreferredCommentFocusTargetClientY(): number;
2
- export function getVisibleThreadAnchorClientY(layersElement: any, positionEntry: any): any;
3
- export function getVisibleThreadHighlightClientY(threadIds: any): any;
4
- export function scrollThreadAnchorToFocusTarget(presentation: any, primaryThreadId: any, fallbackThreadId: any, targetClientY: any): any;
1
+ type ClientRectSource = {
2
+ getBoundingClientRect?: () => {
3
+ top: number;
4
+ };
5
+ };
6
+ type ThreadPositionEntry = {
7
+ bounds?: {
8
+ top?: number;
9
+ } | null;
10
+ } | null | undefined;
11
+ type ThreadAnchorPresentation = {
12
+ getReachableThreadAnchorClientY: (threadId: string, targetClientY: number) => number | null | undefined;
13
+ scrollThreadAnchorToClientY: (threadId: string, targetClientY: number, options: {
14
+ behavior: ScrollBehavior;
15
+ }) => boolean | null | undefined;
16
+ };
17
+ export declare const getPreferredCommentFocusTargetClientY: () => number;
18
+ export declare const getVisibleThreadAnchorClientY: (layersElement: ClientRectSource | null | undefined, positionEntry: ThreadPositionEntry) => number | null;
19
+ export declare const getVisibleThreadHighlightClientY: (threadIds: ReadonlyArray<string | number | null | undefined> | null | undefined) => number | null;
20
+ export declare const scrollThreadAnchorToFocusTarget: (presentation: ThreadAnchorPresentation | null | undefined, primaryThreadId: string | null | undefined, fallbackThreadId: string | null | undefined, targetClientY: number | null | undefined) => number | null;
21
+ export {};
@@ -1,9 +1,8 @@
1
+ import { Editor } from '../core/types/index.js';
1
2
  /**
2
3
  * Log a console.warn once per key. Subsequent calls with the same key are no-ops.
3
- * @param {string} key
4
- * @param {string} message
5
4
  */
6
- export function warnOnce(key: string, message: string): void;
5
+ export declare function warnOnce(key: string, message: string): void;
7
6
  /**
8
7
  * Wrap an Editor instance in a Proxy that emits one-time deprecation
9
8
  * warnings when consumers access ProseMirror internals or editor commands.
@@ -11,16 +10,11 @@ export function warnOnce(key: string, message: string): void;
11
10
  * The proxy is fully transparent — all property access and method calls are
12
11
  * forwarded to the underlying editor. Only the warning side-effect is added.
13
12
  *
14
- * @param {import('../core/types/index.js').Editor} editor
15
- * @returns {import('../core/types/index.js').Editor} Proxied editor (or the
16
- * original if null/already wrapped)
13
+ * @returns Proxied editor (or the original if null/already wrapped)
17
14
  */
18
- export function createDeprecatedEditorProxy(editor: import('../core/types/index.js').Editor): import('../core/types/index.js').Editor;
15
+ export declare function createDeprecatedEditorProxy<T extends Editor | null | undefined>(editor: T): T;
19
16
  /**
20
17
  * Unwrap a potentially proxied editor back to the raw Editor instance.
21
18
  * Safe to call on an already-raw editor — returns it unchanged.
22
- *
23
- * @param {import('../core/types/index.js').Editor | null | undefined} editor
24
- * @returns {import('../core/types/index.js').Editor | null | undefined}
25
19
  */
26
- export function unwrapEditor(editor: import('../core/types/index.js').Editor | null | undefined): import('../core/types/index.js').Editor | null | undefined;
20
+ export declare function unwrapEditor(editor: Editor | null | undefined): Editor | null | undefined;
@@ -1,26 +1,9 @@
1
- /**
2
- * @param {string} stage
3
- * @param {string} branch
4
- * @param {Record<string, unknown> | undefined} [meta]
5
- * @returns {{ traceId: string, spanId: string } | null}
6
- */
7
- export function startInteractionSpan(stage: string, branch: string, meta?: Record<string, unknown> | undefined): {
1
+ type InteractionSpan = {
8
2
  traceId: string;
9
3
  spanId: string;
10
- } | null;
11
- /**
12
- * @param {{ traceId: string, spanId: string } | null | undefined} span
13
- * @param {Record<string, unknown> | undefined} [meta]
14
- */
15
- export function endInteractionSpan(span: {
16
- traceId: string;
17
- spanId: string;
18
- } | null | undefined, meta?: Record<string, unknown> | undefined): void;
19
- /**
20
- * @param {string} stage
21
- * @param {string} branch
22
- * @param {Record<string, unknown> | undefined} meta
23
- * @param {() => any} fn
24
- * @returns {any}
25
- */
26
- export function withInteractionSpan(stage: string, branch: string, meta: Record<string, unknown> | undefined, fn: () => any): any;
4
+ };
5
+ type InteractionMeta = Record<string, unknown> | undefined;
6
+ export declare function startInteractionSpan(stage: string, branch: string, meta?: InteractionMeta): InteractionSpan | null;
7
+ export declare function endInteractionSpan(span: InteractionSpan | null | undefined, meta?: InteractionMeta): void;
8
+ export declare function withInteractionSpan<T>(stage: string, branch: string, meta: InteractionMeta, fn: () => T): T;
9
+ export {};
@@ -0,0 +1 @@
1
+ export declare function markRawComponent(component: unknown): unknown;
@@ -1,5 +1 @@
1
- /**
2
- * @param {unknown} value
3
- * @returns {value is Record<string, unknown>}
4
- */
5
- export function isPlainObject(value: unknown): value is Record<string, unknown>;
1
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
@@ -1 +1 @@
1
- export const DOCUMENT_EDITOR_SELECTION_SOURCE: "document-editor";
1
+ export declare const DOCUMENT_EDITOR_SELECTION_SOURCE = "document-editor";
@@ -1,17 +1,37 @@
1
- export default function useSelection(params: any): {
2
- documentId: import('vue').Ref<any, any>;
3
- page: import('vue').Ref<any, any>;
4
- selectionBounds: any;
5
- source: import('vue').Ref<any, any>;
6
- getValues: () => {
7
- documentId: any;
8
- page: any;
9
- selectionBounds: any;
10
- source: any;
11
- };
1
+ import { Ref } from 'vue';
2
+ type SelectionBounds = {
3
+ top?: number;
4
+ left?: number;
5
+ right?: number;
6
+ bottom?: number;
7
+ };
8
+ type UseSelectionParams = {
9
+ documentId?: unknown;
10
+ page?: number;
11
+ selectionBounds?: SelectionBounds | null;
12
+ source?: string | null;
13
+ };
14
+ type ContainerLocation = {
15
+ top: number;
16
+ left: number;
17
+ };
18
+ type SelectionValues<Bounds extends SelectionBounds> = {
19
+ documentId: unknown;
20
+ page: number | undefined;
21
+ selectionBounds: Bounds;
22
+ source: string | null | undefined;
23
+ };
24
+ type SelectionModel<Bounds extends SelectionBounds> = {
25
+ documentId: Ref<unknown>;
26
+ page: Ref<number | undefined>;
27
+ selectionBounds: Bounds;
28
+ source: Ref<string | null | undefined>;
29
+ getValues: () => SelectionValues<Bounds>;
12
30
  getContainerId: () => string;
13
- getContainerLocation: (parentContainer: any) => {
14
- top: number;
15
- left: number;
16
- };
31
+ getContainerLocation: (parentContainer: Pick<Element, 'getBoundingClientRect'> | null | undefined) => ContainerLocation;
17
32
  };
33
+ export default function useSelection<Bounds extends SelectionBounds>(params: UseSelectionParams & {
34
+ selectionBounds: Bounds;
35
+ }): SelectionModel<Bounds>;
36
+ export default function useSelection(params: UseSelectionParams): SelectionModel<SelectionBounds>;
37
+ export {};
@@ -1,16 +1,13 @@
1
- /**
2
- * @param {any} event - a `v2-host-event` payload.
3
- * @returns {boolean} true when the rejection means the session needs an author.
4
- */
5
- export function isV2AuthorRequiredRejection(event: any): boolean;
6
- export function createV2AuthorRequiredNotificationGate(): {
7
- shouldNotify(scope: any, event: any): boolean;
8
- clear(scope: any): void;
9
- };
1
+ import { V2MutationRejectedEvent } from './v2-mutation-exception.js';
10
2
  /** Stable, non-terminal exception code surfaced to consumers. */
11
- export const V2_AUTHOR_REQUIRED_CODE: "author-required";
3
+ export declare const V2_AUTHOR_REQUIRED_CODE = "author-required";
12
4
  /**
13
5
  * Content-safe, actionable message. Contains no document text, imported author,
14
6
  * email, path, or source key — only how to fix the configuration.
15
7
  */
16
- export const V2_AUTHOR_REQUIRED_MESSAGE: "This edit needs an author identity. Set `user.name` in your SuperDoc configuration and reopen the document to make tracked or revision-overlapping edits.";
8
+ export declare const V2_AUTHOR_REQUIRED_MESSAGE = "This edit needs an author identity. Set `user.name` in your SuperDoc configuration and reopen the document to make tracked or revision-overlapping edits.";
9
+ export declare function isV2AuthorRequiredRejection(event: unknown): event is V2MutationRejectedEvent;
10
+ export declare function createV2AuthorRequiredNotificationGate(): {
11
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
12
+ clear(scope: string | null | undefined): void;
13
+ };
@@ -1,7 +1,9 @@
1
- export function toV2BulkDecisionEvent(documentId: any, fact: any): {
2
- documentId: string | null;
3
- decision: any;
4
- requestedCount: any;
5
- successfulCount: any;
6
- permissionDeniedCount: any;
7
- } | null;
1
+ import { SuperDocTrackedChangesBulkDecisionPayload } from '../core/types/index.js';
2
+ export type V2TrackedChangeBulkDecisionFact = {
3
+ schemaVersion: number;
4
+ decision: string;
5
+ requestedCount: number;
6
+ appliedCount: number;
7
+ deniedCount: number;
8
+ };
9
+ export declare function toV2BulkDecisionEvent(documentId: string | null | undefined, fact: V2TrackedChangeBulkDecisionFact | null | undefined): SuperDocTrackedChangesBulkDecisionPayload | null;
@@ -1,13 +1,14 @@
1
- export function isV2KeyboardEditRejection(event: any): boolean;
2
- export function createV2KeyboardEditRejectionException(documentId: any, event: any): {
1
+ import { V2MutationRejectedEvent } from './v2-mutation-exception.js';
2
+ export declare const V2_EDIT_REJECTED_CODE = "edit-rejected";
3
+ export declare const V2_EDIT_REJECTED_MESSAGE = "This edit couldn\u2019t be completed. Adjust the selection and try again.";
4
+ export declare function isV2KeyboardEditRejection(event: unknown): event is V2MutationRejectedEvent;
5
+ export declare function createV2KeyboardEditRejectionException(documentId: string | null | undefined, event?: unknown): {
3
6
  documentId?: string | undefined;
4
7
  error: Error;
5
8
  code: string;
6
9
  editor: null;
7
10
  };
8
- export function createV2KeyboardEditRejectionNotificationGate(): {
9
- shouldNotify(scope: any, event: any): boolean;
10
- clear(scope: any): void;
11
+ export declare function createV2KeyboardEditRejectionNotificationGate(): {
12
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
13
+ clear(scope: string | null | undefined): void;
11
14
  };
12
- export const V2_EDIT_REJECTED_CODE: "edit-rejected";
13
- export const V2_EDIT_REJECTED_MESSAGE: "This edit couldn\u2019t be completed. Adjust the selection and try again.";
@@ -1,10 +1,14 @@
1
- export function createV2MutationRejectionCause(event: any): {
2
- editableCommandKind?: any;
3
- inputKind?: any;
4
- reason?: string | undefined;
5
- failureSource?: any;
1
+ export type V2MutationRejectedEvent = Record<string, unknown> & {
2
+ type: 'mutation:rejected';
6
3
  };
7
- export function createV2MutationRejectionNotificationGate(matches: any): {
8
- shouldNotify(scope: any, event: any): boolean;
9
- clear(scope: any): void;
4
+ export type V2MutationRejectionCause = {
5
+ failureSource?: string;
6
+ reason?: string;
7
+ inputKind?: string;
8
+ editableCommandKind?: string;
9
+ };
10
+ export declare function createV2MutationRejectionCause(event: unknown): V2MutationRejectionCause;
11
+ export declare function createV2MutationRejectionNotificationGate(matches: (event: unknown) => event is V2MutationRejectedEvent): {
12
+ shouldNotify(scope: string | null | undefined, event: unknown): boolean;
13
+ clear(scope: string | null | undefined): void;
10
14
  };
@@ -1,7 +1,17 @@
1
+ type V2ReviewTargetInput = {
2
+ entityId?: unknown;
3
+ entityType?: unknown;
4
+ };
5
+ type V2ReviewTargetComment = {
6
+ trackedChange?: unknown;
7
+ commentId?: unknown;
8
+ importedId?: unknown;
9
+ };
1
10
  /**
2
11
  * Resolve the comments-store identity for a document-origin v2 review target.
3
12
  * Painted review carriers can become interactive before the asynchronous row
4
13
  * hydration finishes. In that window the host's canonical entity id remains
5
14
  * the correct pending active identity; once hydrated, the row aliases win.
6
15
  */
7
- export function resolveV2ReviewTargetCommentId(target: any, getComment: any): any;
16
+ export declare function resolveV2ReviewTargetCommentId(target: V2ReviewTargetInput | null | undefined, getComment: ((id: string) => V2ReviewTargetComment | null | undefined) | null | undefined): string | null;
17
+ export {};
@@ -1,15 +1,41 @@
1
- export function isV2RangeSnapshot(snapshot: {
2
- anchor?: {
3
- blockId?: unknown;
4
- blockOffset?: unknown;
5
- };
6
- focus?: {
7
- blockId?: unknown;
8
- blockOffset?: unknown;
9
- };
10
- } | null | undefined): boolean;
11
- export function hasOutsideV2DomRangeSelection(selection: Selection | null | undefined, root: Node | null | undefined): boolean;
12
- export function shouldPreserveHostV2Selection(documentMode: string | null | undefined, hostSnapshot: unknown): boolean;
13
- export function shouldRetainV2FloatingSelection(hasHostRange: boolean, selectionPosition: {
1
+ type V2SelectionPoint = {
2
+ blockId?: unknown;
3
+ blockOffset?: unknown;
4
+ };
5
+ type V2RangeSnapshotInput = {
6
+ anchor?: V2SelectionPoint | null;
7
+ focus?: V2SelectionPoint | null;
8
+ };
9
+ /**
10
+ * A logical v2 selection snapshot represents a non-empty range when its anchor
11
+ * and focus point at different block positions. Mirrors the range check the v2
12
+ * shell uses when it emits `v2-selection-changed`.
13
+ */
14
+ export declare const isV2RangeSnapshot: (snapshot: V2RangeSnapshotInput | null | undefined) => boolean;
15
+ /**
16
+ * Detect a real browser text selection whose endpoints are outside the active
17
+ * v2 mount. Editable host selections can have no native DOM range, so an
18
+ * absent range must not count as an outside selection.
19
+ */
20
+ export declare const hasOutsideV2DomRangeSelection: (selection: Selection | null | undefined, root: Node | null | undefined) => boolean;
21
+ /**
22
+ * Decide whether the DOM-selection sync pass should keep the affordance driven
23
+ * by the v2 host's logical selection instead of clearing it.
24
+ *
25
+ * In editable modes the host owns pointer text selection, so native DOM ranges
26
+ * may be absent or stale. In that case the pointerup sync must defer to the
27
+ * host snapshot rather than clobber the selection the host just published.
28
+ * Only editable modes use the host snapshot. Viewing mode keeps native DOM
29
+ * selection, and unknown modes should not preserve stale host state.
30
+ */
31
+ export declare const shouldPreserveHostV2Selection: (documentMode: string | null | undefined, hostSnapshot: V2RangeSnapshotInput | null | undefined) => boolean;
32
+ /**
33
+ * A V2 paint can briefly have no DOM anchor while a selected control is being
34
+ * rebuilt. Keep an already-positioned comment affordance during that gap when
35
+ * the host still owns a range; otherwise the button unmounts and remounts on
36
+ * consecutive paint frames, making it blink and intercepting its own click.
37
+ */
38
+ export declare const shouldRetainV2FloatingSelection: (hasHostRange: boolean, selectionPosition: {
14
39
  source?: unknown;
15
- } | null | undefined): boolean;
40
+ } | null | undefined) => boolean;
41
+ export {};
@@ -1,5 +1,14 @@
1
- export function isV2EditableTextMutationEvent(event: {
2
- type?: string;
3
- origin?: string;
4
- editableCommandKind?: string;
5
- } | null | undefined): boolean;
1
+ /**
2
+ * True when a forwarded v2 host event is a committed editable-input mutation
3
+ * of the sustained-typing class, i.e. review-row hydration for it should be
4
+ * debounced rather than fired immediately.
5
+ *
6
+ * Events without a forwarded `editableCommandKind` (programmatic Document API
7
+ * mutations, history commits, unclassified structural commands) return false
8
+ * so they keep hydrating immediately.
9
+ */
10
+ export declare const isV2EditableTextMutationEvent: (event: {
11
+ type?: unknown;
12
+ origin?: unknown;
13
+ editableCommandKind?: unknown;
14
+ } | null | undefined) => boolean;
@@ -1,11 +1,11 @@
1
- export namespace superdocIcons {
2
- export { commentIconSvg as comment };
3
- export { caretDownIconSvg as caretDown };
4
- export { userCheckIconSvg as internal };
5
- export { usersIconSvg as external };
6
- export { checkIconSvg as markDone };
7
- export { checkIconSvg as acceptChange };
8
- export { xmarkIconSvg as rejectChange };
9
- export { ellipsisVerticalSvg as overflow };
10
- export { rotateLeftSvg as reopen };
11
- }
1
+ export declare const superdocIcons: {
2
+ comment: string;
3
+ caretDown: string;
4
+ internal: string;
5
+ external: string;
6
+ markDone: string;
7
+ acceptChange: string;
8
+ rejectChange: string;
9
+ overflow: string;
10
+ reopen: string;
11
+ };
@@ -11,13 +11,13 @@
11
11
  * come from the shell, not be inferred from `onV2EditorReady` timing: that
12
12
  * event only fires on success, fires AFTER the diagnostics events on the
13
13
  * success path, and never fires at all for a failed attempt.
14
- *
15
- * @param {{generation?: unknown} | null} [payload]
16
- * @returns {number}
17
14
  */
18
- export function getV2DiagnosticGeneration(payload?: {
15
+ export declare function getV2DiagnosticGeneration(payload?: {
19
16
  generation?: unknown;
20
17
  } | null): number;
18
+ export interface V2DiagnosticDedupe {
19
+ shouldEmit(documentId: string | null | undefined, generation: number, internalCode: string | null | undefined): boolean;
20
+ }
21
21
  /**
22
22
  * Creates a dedupe tracker for diagnostic emissions, scoped by documentId
23
23
  * and generation. The key is `internalCode` only (per active generation) --
@@ -43,12 +43,8 @@ export function getV2DiagnosticGeneration(payload?: {
43
43
  * a long-lived SuperDoc instance's life (e.g. a document-management app
44
44
  * cycling through many files); evicting on document removal would need to
45
45
  * hook document-lifecycle wiring, which is out of scope here.
46
- *
47
- * @returns {{ shouldEmit: (documentId: string | null | undefined, generation: number, internalCode: string | null | undefined) => boolean }}
48
46
  */
49
- export function createV2DiagnosticDedupe(): {
50
- shouldEmit: (documentId: string | null | undefined, generation: number, internalCode: string | null | undefined) => boolean;
51
- };
47
+ export declare function createV2DiagnosticDedupe(): V2DiagnosticDedupe;
52
48
  /**
53
49
  * A single boot failure can translate to a generic reason-based diagnostic
54
50
  * (`translateBootFailureReason`, e.g. `source-load-failed` -> `PARSE_ERROR`)
@@ -61,12 +57,7 @@ export function createV2DiagnosticDedupe(): {
61
57
  * `bootErrorName`-classified diagnostic (render-pipeline signal, not
62
58
  * package-integrity) is never redundant this way, since it carries genuinely
63
59
  * distinct information from the package diagnostics.
64
- *
65
- * @param {{internalCode?: string} | null} bootDiagnostic
66
- * @param {string} reason
67
- * @param {readonly unknown[]} translatedRecords
68
- * @returns {boolean}
69
60
  */
70
- export function isBootDiagnosticRedundant(bootDiagnostic: {
61
+ export declare function isBootDiagnosticRedundant(bootDiagnostic: {
71
62
  internalCode?: string;
72
63
  } | null, reason: string, translatedRecords: readonly unknown[]): boolean;
@@ -1,21 +1,82 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
2
- target: Record<string, any>;
3
- doc: Record<string, any>;
4
- restoreSelection: Function;
1
+ import { PropType } from 'vue';
2
+ import { SelectionTarget } from '../../../../../document-api/src/index.js';
3
+ interface AiWriterDocument {
4
+ replace?: (input: {
5
+ target: SelectionTarget;
6
+ text: string;
7
+ }) => unknown;
8
+ insert?: (input: {
9
+ target?: SelectionTarget;
10
+ value: string;
11
+ type: 'text';
12
+ }) => unknown;
13
+ }
14
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
15
+ selectedText: {
16
+ type: StringConstructor;
17
+ default: string;
18
+ };
19
+ target: {
20
+ type: PropType<SelectionTarget | null>;
21
+ default: null;
22
+ };
23
+ doc: {
24
+ type: PropType<AiWriterDocument | null>;
25
+ default: null;
26
+ };
27
+ apiKey: {
28
+ type: StringConstructor;
29
+ default: string;
30
+ };
31
+ endpoint: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ restoreSelection: {
36
+ type: PropType<() => void>;
37
+ default: null;
38
+ };
39
+ handleClose: {
40
+ type: PropType<() => void>;
41
+ required: true;
42
+ };
43
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
44
+ selectedText: {
45
+ type: StringConstructor;
46
+ default: string;
47
+ };
48
+ target: {
49
+ type: PropType<SelectionTarget | null>;
50
+ default: null;
51
+ };
52
+ doc: {
53
+ type: PropType<AiWriterDocument | null>;
54
+ default: null;
55
+ };
56
+ apiKey: {
57
+ type: StringConstructor;
58
+ default: string;
59
+ };
60
+ endpoint: {
61
+ type: StringConstructor;
62
+ default: string;
63
+ };
64
+ restoreSelection: {
65
+ type: PropType<() => void>;
66
+ default: null;
67
+ };
68
+ handleClose: {
69
+ type: PropType<() => void>;
70
+ required: true;
71
+ };
72
+ }>> & Readonly<{}>, {
73
+ target: SelectionTarget | null;
74
+ doc: AiWriterDocument | null;
5
75
  selectedText: string;
6
- endpoint: string;
76
+ restoreSelection: () => void;
7
77
  apiKey: string;
8
- handleClose: Function;
9
- $props: {
10
- readonly target?: Record<string, any> | undefined;
11
- readonly doc?: Record<string, any> | undefined;
12
- readonly restoreSelection?: Function | undefined;
13
- readonly selectedText?: string | undefined;
14
- readonly endpoint?: string | undefined;
15
- readonly apiKey?: string | undefined;
16
- readonly handleClose?: Function | undefined;
17
- };
18
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
78
+ endpoint: string;
79
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
19
80
  textareaRef: HTMLTextAreaElement;
20
81
  }, HTMLFormElement>;
21
82
  export default _default;
@@ -1,6 +1,8 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
2
- $emit: (event: "select", ...args: any[]) => void;
3
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
2
+ select: (...args: any[]) => void;
3
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
+ onSelect?: ((...args: any[]) => any) | undefined;
5
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
4
6
  alignmentButtonsRefs: HTMLDivElement[];
5
7
  }, HTMLDivElement>;
6
8
  export default _default;
@@ -1,9 +1,89 @@
1
- declare const _default: import('vue').DefineComponent<{}, {
2
- $emit: (event: "command" | "item-clicked" | "dropdown-update-show", ...args: any[]) => void;
3
- $props: {
4
- readonly [x: string]: any;
1
+ import { PropType } from 'vue';
2
+ import { ToolbarItem, ToolbarItemOption as DropdownOption } from '../built-in-toolbar.js';
3
+ import { ComboBoxCommand, ComboBoxItem } from './ToolbarComboBox.vue.js';
4
+ export type ToolbarGroupItem = Pick<ToolbarItem, 'type' | 'id' | 'name' | 'active' | 'icon' | 'label' | 'hideLabel' | 'iconColor' | 'hasCaret' | 'splitButton' | 'disabled' | 'expand' | 'inlineTextInputVisible' | 'hasInlineTextInput' | 'style' | 'attributes' | 'nestedOptions' | 'isNarrow' | 'isWide' | 'tooltip' | 'argument' | 'command' | 'splitButtonCommand' | 'restoreEditorFocus' | 'dropdownStyles' | 'dropdownValueKey' | 'selectedValue'>;
5
+ export interface ToolbarGroupCommand {
6
+ item: ToolbarGroupItem | ComboBoxItem;
7
+ argument?: unknown;
8
+ option?: DropdownOption | ComboBoxCommand['option'];
9
+ }
10
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
+ toolbarItems: {
12
+ type: PropType<ToolbarGroupItem[]>;
13
+ required: true;
5
14
  };
6
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
15
+ overflowItems: {
16
+ type: PropType<ToolbarGroupItem[]>;
17
+ default: () => never[];
18
+ };
19
+ /**
20
+ * The font-family to use for UI elements like dropdowns and tooltips.
21
+ * This ensures consistent typography across toolbar UI components.
22
+ * @type {string}
23
+ * @default 'Arial, Helvetica, sans-serif'
24
+ */
25
+ uiFontFamily: {
26
+ type: StringConstructor;
27
+ default: string;
28
+ };
29
+ position: {
30
+ type: StringConstructor;
31
+ default: string;
32
+ };
33
+ fromOverflow: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ compactSideGroups: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
42
+ command: (payload: ToolbarGroupCommand) => any;
43
+ "item-clicked": () => any;
44
+ "dropdown-update-show": (open: boolean) => any;
45
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
46
+ toolbarItems: {
47
+ type: PropType<ToolbarGroupItem[]>;
48
+ required: true;
49
+ };
50
+ overflowItems: {
51
+ type: PropType<ToolbarGroupItem[]>;
52
+ default: () => never[];
53
+ };
54
+ /**
55
+ * The font-family to use for UI elements like dropdowns and tooltips.
56
+ * This ensures consistent typography across toolbar UI components.
57
+ * @type {string}
58
+ * @default 'Arial, Helvetica, sans-serif'
59
+ */
60
+ uiFontFamily: {
61
+ type: StringConstructor;
62
+ default: string;
63
+ };
64
+ position: {
65
+ type: StringConstructor;
66
+ default: string;
67
+ };
68
+ fromOverflow: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
72
+ compactSideGroups: {
73
+ type: BooleanConstructor;
74
+ default: boolean;
75
+ };
76
+ }>> & Readonly<{
77
+ onCommand?: ((payload: ToolbarGroupCommand) => any) | undefined;
78
+ "onItem-clicked"?: (() => any) | undefined;
79
+ "onDropdown-update-show"?: ((open: boolean) => any) | undefined;
80
+ }>, {
81
+ position: string;
82
+ uiFontFamily: string;
83
+ overflowItems: ToolbarGroupItem[];
84
+ fromOverflow: boolean;
85
+ compactSideGroups: boolean;
86
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
7
87
  buttonGroupRef: HTMLDivElement;
8
88
  toolbarItemRefs: HTMLDivElement[];
9
89
  }, HTMLDivElement>;