superdoc 2.4.0-next.8 → 2.4.0

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 (77) hide show
  1. package/dist/chunks/{FindReplaceSurface-9VkPw_-X.cjs → FindReplaceSurface-0p7EtMZh.cjs} +4 -3
  2. package/dist/chunks/{FindReplaceSurface-BuvaIrQ5.es.js → FindReplaceSurface-40AnrqWk.es.js} +4 -2
  3. package/dist/chunks/{PasswordPromptSurface-Bu5xHm91.cjs → PasswordPromptSurface-31lYPcCK.cjs} +4 -3
  4. package/dist/chunks/{PasswordPromptSurface-Bz9_sKhX.es.js → PasswordPromptSurface-CwYeO3iQ.es.js} +4 -2
  5. package/dist/chunks/{PdfViewer-CdVGB6Fe.es.js → PdfViewer-D8h7LRZy.es.js} +103 -19
  6. package/dist/chunks/{PdfViewer-D4eD2dV1.cjs → PdfViewer-Dug6yDRC.cjs} +105 -20
  7. package/dist/chunks/_plugin-vue_export-helper-BOaGB7Aw.es.js +8 -0
  8. package/dist/chunks/_plugin-vue_export-helper-SDR04tiH.cjs +13 -0
  9. package/dist/chunks/{blank-docx-DP8RUPW-.cjs → blank-docx-BuFAbRjs.cjs} +2 -0
  10. package/dist/chunks/{blank-docx-XRX6Ker2.es.js → blank-docx-DzQccOlW.es.js} +2 -0
  11. package/dist/chunks/constants-B6VBlmKp.es.js +4 -0
  12. package/dist/chunks/constants-DpXuDx_g.cjs +9 -0
  13. package/dist/chunks/{create-super-doc-ui-BquF8bnZ.es.js → create-super-doc-ui-CmOSA_lN.es.js} +2050 -1090
  14. package/dist/chunks/{create-super-doc-ui-sMXbYzhs.cjs → create-super-doc-ui-CqGmoMMA.cjs} +1861 -1141
  15. package/dist/chunks/{eventemitter3-DqY4aSMf.cjs → eventemitter3-C_TAnXOl.cjs} +125 -16
  16. package/dist/chunks/{eventemitter3-Bt2s0X0a.es.js → eventemitter3-DEIiXiH2.es.js} +124 -16
  17. package/dist/chunks/jszip-BzJ3CyxR.es.js +4717 -0
  18. package/dist/chunks/jszip-D8mAFF-r.cjs +4758 -0
  19. package/dist/chunks/{rolldown-runtime-D7PMmH3s.es.js → rolldown-runtime-0pSA04fp.es.js} +12 -3
  20. package/dist/chunks/{rolldown-runtime-1Y-nnZJ3.cjs → rolldown-runtime-74VwNCz7.cjs} +11 -2
  21. package/dist/chunks/{uuid-CFp0WGVU.cjs → uuid-BhG0ngwk.cjs} +10 -6
  22. package/dist/chunks/{uuid-B2Sqk-3p.es.js → uuid-H0Xcmmhy.es.js} +8 -3
  23. package/dist/collaboration-upgrade-engine.cjs +34 -9
  24. package/dist/collaboration-upgrade-engine.es.js +30 -5
  25. package/dist/document-api/src/citations/citations.types.d.ts +9 -0
  26. package/dist/document-api/src/comments/comments.types.d.ts +7 -0
  27. package/dist/document-api/src/types/receipt.d.ts +9 -5
  28. package/dist/layout-engine/contracts/src/incremental-dependency.d.ts +22 -2
  29. package/dist/layout-engine/contracts/src/index.d.ts +74 -2
  30. package/dist/layout-engine/contracts/src/inline-box.d.ts +19 -0
  31. package/dist/layout-engine/contracts/src/paragraph-visible-text.d.ts +19 -0
  32. package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +4 -1
  33. package/dist/layout-engine/layout-bridge/src/index.d.ts +1 -0
  34. package/dist/layout-engine/layout-bridge/src/inline-box-key.d.ts +3 -0
  35. package/dist/layout-engine/layout-bridge/src/layoutHeaderFooter.d.ts +5 -1
  36. package/dist/layout-engine/layout-bridge/src/run-visual-marks.d.ts +2 -0
  37. package/dist/layout-engine/layout-bridge/src/text-measurement.d.ts +0 -12
  38. package/dist/layout-engine/painters/dom/src/runs/inline-box.d.ts +8 -0
  39. package/dist/public/ui-react.cjs +66 -2
  40. package/dist/public/ui-react.es.js +66 -1
  41. package/dist/public/ui.cjs +1 -1
  42. package/dist/public/ui.es.js +1 -1
  43. package/dist/style.css +134 -98
  44. package/dist/style.layered.css +134 -98
  45. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +2 -0
  46. package/dist/superdoc/src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue.d.ts +16 -0
  47. package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +3 -1
  48. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +12 -0
  49. package/dist/superdoc/src/core/SuperDoc.d.ts +10 -7
  50. package/dist/superdoc/src/core/extensions/index.d.ts +1 -1
  51. package/dist/superdoc/src/core/extensions/types.d.ts +63 -5
  52. package/dist/superdoc/src/core/types/index.d.ts +399 -37
  53. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +3 -3
  54. package/dist/superdoc/src/helpers/comment-small-screen.d.ts +10 -0
  55. package/dist/superdoc/src/helpers/v2-review-mutation-impact.d.ts +3 -5
  56. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +4 -4
  57. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +11 -0
  58. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +1 -1
  59. package/dist/superdoc/src/public/index.d.cts +20 -0
  60. package/dist/superdoc/src/public/index.d.ts +10 -0
  61. package/dist/superdoc/src/public/ui/types.d.ts +30 -6
  62. package/dist/superdoc/src/stores/comments-store.d.ts +81 -78
  63. package/dist/superdoc/src/stores/superdoc-store.d.ts +243 -234
  64. package/dist/superdoc.cjs +6667 -2090
  65. package/dist/superdoc.es.js +6540 -1963
  66. package/dist-cdn/style.layered.css +1 -1
  67. package/dist-cdn/superdoc.min.css +1 -1
  68. package/dist-cdn/superdoc.min.js +37 -37
  69. package/package.json +14 -14
  70. package/dist/chunks/_plugin-vue_export-helper-CZ1Nl59K.cjs +0 -11
  71. package/dist/chunks/_plugin-vue_export-helper-DSMAhhwD.es.js +0 -6
  72. package/dist/chunks/constants-BfH0br5u.es.js +0 -3
  73. package/dist/chunks/constants-D7TNtyJd.cjs +0 -14
  74. package/dist/chunks/jszip-C8srOKAO.es.js +0 -4650
  75. package/dist/chunks/jszip-Cs9JBLlJ.cjs +0 -4691
  76. package/dist/superdoc/src/helpers/v2-remote-review-hydration.d.ts +0 -12
  77. package/dist/superdoc/src/helpers/v2-review-mutation-reconciler.d.ts +0 -19
@@ -5,6 +5,7 @@ declare const _default: import('vue').DefineComponent<{}, {
5
5
  floatingInstanceId: string;
6
6
  floatingPageIndex: number;
7
7
  floatingPositionEntry: Record<string, any>;
8
+ threadComments: unknown[];
8
9
  parent?: Record<string, any> | undefined;
9
10
  isFloatingInstanceActive?: boolean | undefined;
10
11
  $props: {
@@ -13,6 +14,7 @@ declare const _default: import('vue').DefineComponent<{}, {
13
14
  readonly floatingInstanceId?: string | undefined;
14
15
  readonly floatingPageIndex?: number | undefined;
15
16
  readonly floatingPositionEntry?: Record<string, any> | undefined;
17
+ readonly threadComments?: unknown[] | undefined;
16
18
  readonly parent?: Record<string, any> | undefined;
17
19
  readonly isFloatingInstanceActive?: boolean | undefined;
18
20
  };
@@ -0,0 +1,16 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {
2
+ $emit: (event: "focus-item" | "navigate", ...args: any[]) => void;
3
+ item: Record<string, any>;
4
+ index: number;
5
+ total: number;
6
+ tabIndex: number;
7
+ $props: {
8
+ readonly item?: Record<string, any> | undefined;
9
+ readonly index?: number | undefined;
10
+ readonly total?: number | undefined;
11
+ readonly tabIndex?: number | undefined;
12
+ };
13
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
14
+ shell: HTMLDivElement;
15
+ }, HTMLDivElement>;
16
+ export default _default;
@@ -5,5 +5,7 @@ declare const _default: import('vue').DefineComponent<{}, {
5
5
  readonly showMainComments?: boolean | undefined;
6
6
  readonly showResolvedComments?: boolean | undefined;
7
7
  };
8
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
9
+ listRoot: HTMLDivElement;
10
+ }, HTMLDivElement>;
9
11
  export default _default;
@@ -14,6 +14,18 @@ export class SuperComments extends EventEmitter<string | symbol, any> {
14
14
  };
15
15
  app: import('vue').App<Element> | null;
16
16
  superdoc: any;
17
+ stopDirectoryObservers: any[];
18
+ directorySnapshots: {
19
+ comments: null;
20
+ trackChanges: null;
21
+ };
22
+ directoryItemRefs: {
23
+ comments: null;
24
+ trackChanges: null;
25
+ };
26
+ directoryGeneration: number;
27
+ syncDirectory(): void;
28
+ startDirectoryObservers(): void;
17
29
  createVueApp(): void;
18
30
  container: import('vue').ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import('vue').ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import('vue').ComponentProvideOptions>, {}, {}, "", {}, any> | null | undefined;
19
31
  close(): void;
@@ -30,6 +30,9 @@ interface SuperDocFormattingMarksPayload {
30
30
  interface SuperDocDocumentModeChangePayload {
31
31
  documentMode: DocumentMode;
32
32
  }
33
+ interface SuperDocCommentsListChangePayload {
34
+ isRendered: boolean;
35
+ }
33
36
  interface SuperDocPaginationPayload {
34
37
  totalPages: number;
35
38
  superdoc: SuperDoc;
@@ -51,6 +54,7 @@ interface SuperDocEventMap {
51
54
  editorDestroy: [];
52
55
  'pdf:document-ready': [];
53
56
  'sidebar-toggle': [boolean];
57
+ 'comments-list-change': [SuperDocCommentsListChangePayload];
54
58
  /** Requests the shell open its find/replace surface (e.g. the toolbar search button). */
55
59
  'search:open': [];
56
60
  zoomChange: [SuperDocZoomPayload];
@@ -347,18 +351,17 @@ export declare class SuperDoc extends EventEmitter<SuperDocEventMap> {
347
351
  */
348
352
  get element(): Element | null;
349
353
  /**
350
- * Upgrade a local SuperDoc instance into collaboration by overwriting
351
- * the supplied room with the current local document and comment state,
352
- * then attaching collaboration to the live editor instance in place.
354
+ * Upgrade a local SuperDoc instance into collaboration by creating the
355
+ * supplied room from the current local document and comment state, then
356
+ * attaching collaboration to the live editor instance in place.
353
357
  *
354
- * This is a **destructive promotion**: the target room is authoritatively
355
- * overwritten with the caller's current local state. It is NOT the API
356
- * for joining an existing room without changing its content.
358
+ * The target room must not already exist. This is not the API for joining
359
+ * an existing room or merging its content.
357
360
  *
358
361
  * Currently limited to:
359
362
  * - A single DOCX document
360
363
  * - A supported v2 single-doc `v2Collaboration` target
361
- * - Overwrite-and-upgrade only (no merge semantics)
364
+ * - Create-and-upgrade only (no merge semantics)
362
365
  *
363
366
  * @returns Resolves once the collaborative runtime is ready
364
367
  */
@@ -1,2 +1,2 @@
1
1
  export { defineSuperDocExtension } from './define.js';
2
- export type { SuperDocActiveEditorExtensions, SuperDocActiveEditorExtensionsCommands, SuperDocActiveEditorExtensionsDiagnostics, SuperDocAnchor, SuperDocAnchorApi, SuperDocAnchorCollection, SuperDocAnchorStatus, SuperDocAnchorTarget, SuperDocCharRange, SuperDocCommandApi, SuperDocCommandExecuteContext, SuperDocCommandState, SuperDocCommandStateContext, SuperDocDecoration, SuperDocDecorationApi, SuperDocDecorationContext, SuperDocDecorationData, SuperDocDecorationProvider, SuperDocDisposableBag, SuperDocExtension, SuperDocExtensionActivateReturn, SuperDocExtensionCapabilities, SuperDocExtensionCommandHandle, SuperDocExtensionCommandListEntry, SuperDocExtensionCommandRegistration, SuperDocExtensionCommandStateView, SuperDocExtensionContext, SuperDocExtensionDiagnostic, SuperDocExtensionDiagnostics, SuperDocExtensionDisposable, SuperDocExtensionEventApi, SuperDocExtensionPhase, SuperDocExtensionSnapshot, SuperDocExtensionStorage, SuperDocGuardedDoc, SuperDocGuardedDocQuery, SuperDocGuardedDocSelection, SuperDocMutationAffect, SuperDocMutationEvent, SuperDocMutationFilter, SuperDocMutationOrigin, SuperDocPaintEvent, SuperDocReceiptSuccess, SuperDocSaveEvent, SuperDocSelectionEvent, SuperDocSelectionPoint, SuperDocSelectionTarget, SuperDocStoryLocator, SuperDocTextAddress, SuperDocTextTarget, SuperDocVisibleRange, SuperDocVisualApi, SuperDocVisualHandle, SuperDocVisualOptions, SuperDocVisualTarget, } from './types.js';
2
+ export type { SuperDocActiveEditorExtensions, SuperDocActiveEditorExtensionsCommands, SuperDocActiveEditorExtensionsDiagnostics, SuperDocAnchor, SuperDocAnchorApi, SuperDocAnchorCollection, SuperDocAnchorStatus, SuperDocAnchorTarget, SuperDocCharRange, SuperDocCommandApi, SuperDocCommandExecuteContext, SuperDocCommandState, SuperDocCommandStateContext, SuperDocDecoration, SuperDocDecorationApi, SuperDocDecorationContext, SuperDocDecorationData, SuperDocDecorationProvider, SuperDocDisposableBag, SuperDocExtension, SuperDocExtensionActivateReturn, SuperDocExtensionCapabilities, SuperDocExtensionCommandHandle, SuperDocExtensionCommandListEntry, SuperDocExtensionCommandRegistration, SuperDocExtensionCommandStateView, SuperDocExtensionContext, SuperDocExtensionDiagnostic, SuperDocExtensionDiagnostics, SuperDocExtensionDisposable, SuperDocExtensionEventApi, SuperDocExtensionPhase, SuperDocExtensionSnapshot, SuperDocExtensionStorage, SuperDocGuardedDoc, SuperDocGuardedDocQuery, SuperDocGuardedDocSelection, SuperDocInlineBoxAppearance, SuperDocInlineBoxLayout, SuperDocInlineBoxOptions, SuperDocMutationAffect, SuperDocMutationEvent, SuperDocMutationFilter, SuperDocMutationOrigin, SuperDocPaintEvent, SuperDocReceiptSuccess, SuperDocSaveEvent, SuperDocSelectionEvent, SuperDocSelectionPoint, SuperDocSelectionTarget, SuperDocStoryLocator, SuperDocTextAddress, SuperDocTextTarget, SuperDocVisibleRange, SuperDocVisualApi, SuperDocVisualHandle, SuperDocVisualOptions, SuperDocVisualTarget, } from './types.js';
@@ -105,15 +105,17 @@ export interface SuperDocSelectionTarget {
105
105
  start: SuperDocSelectionPoint;
106
106
  end: SuperDocSelectionPoint;
107
107
  story?: SuperDocStoryLocator;
108
+ /** Coordinate space for text endpoint offsets. Omitted means `visible`. */
109
+ coordinateSpace?: 'visible' | 'tracked';
108
110
  }
109
- /** Locations an extension anchor can be created from. */
111
+ /** Visible-coordinate locations an extension anchor can be created from. */
110
112
  export type SuperDocAnchorTarget = SuperDocSelectionTarget | SuperDocTextTarget | SuperDocTextAddress;
111
113
  /** Lifecycle status of a {@link SuperDocAnchor}. */
112
114
  export type SuperDocAnchorStatus = 'active' | 'stale' | 'disposed' | 'pending';
113
115
  /**
114
- * A session-stable location handle. The runtime remaps anchors as it observes
115
- * Document API receipts; an anchor that cannot be remapped safely fails closed
116
- * to `stale` and never silently points at the wrong range.
116
+ * A session-stable location handle. The runtime rebases anchors from
117
+ * block-local Document API receipt data; an anchor that cannot be rebased
118
+ * safely fails closed to `stale` and never silently points at the wrong range.
117
119
  */
118
120
  export interface SuperDocAnchor {
119
121
  readonly id: string;
@@ -171,7 +173,7 @@ export interface SuperDocDecorationProvider {
171
173
  id: string;
172
174
  provide(context: SuperDocDecorationContext): SuperDocDecoration[];
173
175
  }
174
- export type SuperDocMutationOrigin = 'local' | 'history' | 'extension';
176
+ export type SuperDocMutationOrigin = 'local' | 'history' | 'extension' | 'remote';
175
177
  export type SuperDocMutationAffect = 'text' | 'block' | 'comment' | 'trackedChange' | 'bookmark';
176
178
  /** Synchronous filter applied before a mutation handler runs. */
177
179
  export interface SuperDocMutationFilter {
@@ -390,6 +392,50 @@ export interface SuperDocVisualOptions {
390
392
  */
391
393
  scope?: 'text' | 'block';
392
394
  }
395
+ /**
396
+ * Layout-affecting inline-box values in non-negative integer CSS pixels.
397
+ * Padding, gaps, and borders participate in wrapping and pagination.
398
+ */
399
+ export interface SuperDocInlineBoxLayout {
400
+ paddingInline?: number | {
401
+ start: number;
402
+ end: number;
403
+ };
404
+ paddingBlock?: number | {
405
+ start: number;
406
+ end: number;
407
+ };
408
+ /** Logical spacing outside the range, paid once at each boundary. */
409
+ gapBefore?: number;
410
+ gapAfter?: number;
411
+ /** Border width consumes layout space. */
412
+ borderWidth?: number;
413
+ }
414
+ /** Paint-only appearance for a layout-aware inline box. */
415
+ export interface SuperDocInlineBoxAppearance {
416
+ backgroundColor?: string;
417
+ borderColor?: string;
418
+ borderStyle?: 'solid' | 'dashed' | 'dotted';
419
+ borderRadius?: number;
420
+ color?: string;
421
+ }
422
+ /**
423
+ * Options for {@link SuperDocVisualApi.inlineBox}. Inline boxes are
424
+ * render-only and byte-neutral. They currently support LTR visible-text
425
+ * targets only; unsupported directions and overlapping boxes fail closed.
426
+ */
427
+ export interface SuperDocInlineBoxOptions {
428
+ layout?: SuperDocInlineBoxLayout;
429
+ appearance?: SuperDocInlineBoxAppearance;
430
+ /** Additive paint-only class. It must not alter geometry. */
431
+ className?: string;
432
+ /** Sanitized data attributes stamped on the painted text leaves. */
433
+ data?: SuperDocDecorationData;
434
+ /** Paint-only cursor. */
435
+ cursor?: 'default' | 'pointer' | 'text' | 'help';
436
+ /** Wrapped ranges clone their box edges on every line. */
437
+ wrap?: 'clone';
438
+ }
393
439
  /**
394
440
  * The easy, beginner-facing visual authoring layer exposed as `ctx.visuals`.
395
441
  * Backed by the same render-only decoration runtime as
@@ -400,6 +446,13 @@ export interface SuperDocVisualOptions {
400
446
  * const risks = ctx.visuals.highlight('risks', { className: 'acme-risk' });
401
447
  * const result = await ctx.doc.query.match({ select: { type: 'text', pattern: /risk/i } });
402
448
  * risks.replace(result.items.map((item) => item.target));
449
+ *
450
+ * const pills = ctx.visuals.inlineBox('citations', {
451
+ * layout: { paddingInline: 4, paddingBlock: 2, borderWidth: 1 },
452
+ * appearance: { backgroundColor: '#eef4ff', borderColor: '#8aa8d8', borderRadius: 8 },
453
+ * cursor: 'pointer',
454
+ * });
455
+ * pills.replace(citationTargets);
403
456
  * ```
404
457
  */
405
458
  export interface SuperDocVisualApi {
@@ -407,6 +460,11 @@ export interface SuperDocVisualApi {
407
460
  highlight(id: string, options?: SuperDocVisualOptions): SuperDocVisualHandle;
408
461
  /** Create a neutral class/data visual layer (synonym of highlight). */
409
462
  decorate(id: string, options?: SuperDocVisualOptions): SuperDocVisualHandle;
463
+ /**
464
+ * Create a layout-aware box over anchored visible text. Local typing,
465
+ * undo, and redo rebase its anchors; dispose the returned handle on cleanup.
466
+ */
467
+ inlineBox(id: string, options?: SuperDocInlineBoxOptions): SuperDocVisualHandle;
410
468
  }
411
469
  /** Advanced escape-hatch generic event surface. */
412
470
  export interface SuperDocExtensionEventApi {