@beyondwork/docx-react-component 1.0.1 → 1.0.2

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 (172) hide show
  1. package/README.md +44 -104
  2. package/package.json +76 -46
  3. package/src/README.md +85 -0
  4. package/src/api/README.md +22 -0
  5. package/src/api/public-types.ts +525 -0
  6. package/src/compare/diff-engine.ts +530 -0
  7. package/src/compare/export-redlines.ts +162 -0
  8. package/src/compare/snapshot.ts +37 -0
  9. package/src/component-inventory.md +99 -0
  10. package/src/core/README.md +10 -0
  11. package/src/core/commands/README.md +3 -0
  12. package/src/core/commands/formatting-commands.ts +161 -0
  13. package/src/core/commands/image-commands.ts +144 -0
  14. package/src/core/commands/index.ts +1013 -0
  15. package/src/core/commands/list-commands.ts +370 -0
  16. package/src/core/commands/review-commands.ts +108 -0
  17. package/src/core/commands/text-commands.ts +119 -0
  18. package/src/core/schema/README.md +3 -0
  19. package/src/core/schema/text-schema.ts +512 -0
  20. package/src/core/selection/README.md +3 -0
  21. package/src/core/selection/mapping.ts +238 -0
  22. package/src/core/selection/review-anchors.ts +94 -0
  23. package/src/core/state/README.md +3 -0
  24. package/src/core/state/editor-state.ts +580 -0
  25. package/src/core/state/text-transaction.ts +276 -0
  26. package/src/formats/xlsx/io/parse-shared-strings.ts +41 -0
  27. package/src/formats/xlsx/io/parse-sheet.ts +289 -0
  28. package/src/formats/xlsx/io/parse-styles.ts +57 -0
  29. package/src/formats/xlsx/io/parse-workbook.ts +75 -0
  30. package/src/formats/xlsx/io/xlsx-session.ts +306 -0
  31. package/src/formats/xlsx/model/cell.ts +189 -0
  32. package/src/formats/xlsx/model/sheet.ts +244 -0
  33. package/src/formats/xlsx/model/styles.ts +118 -0
  34. package/src/formats/xlsx/model/workbook.ts +449 -0
  35. package/src/index.ts +45 -0
  36. package/src/io/README.md +10 -0
  37. package/src/io/docx-session.ts +1763 -0
  38. package/src/io/export/README.md +3 -0
  39. package/src/io/export/export-session.ts +165 -0
  40. package/src/io/export/minimal-docx.ts +115 -0
  41. package/src/io/export/reattach-preserved-parts.ts +54 -0
  42. package/src/io/export/serialize-comments.ts +876 -0
  43. package/src/io/export/serialize-footnotes.ts +217 -0
  44. package/src/io/export/serialize-headers-footers.ts +200 -0
  45. package/src/io/export/serialize-main-document.ts +982 -0
  46. package/src/io/export/serialize-numbering.ts +97 -0
  47. package/src/io/export/serialize-revisions.ts +389 -0
  48. package/src/io/export/serialize-runtime-revisions.ts +265 -0
  49. package/src/io/export/serialize-tables.ts +147 -0
  50. package/src/io/export/split-review-boundaries.ts +194 -0
  51. package/src/io/normalize/README.md +3 -0
  52. package/src/io/normalize/normalize-text.ts +437 -0
  53. package/src/io/ooxml/README.md +3 -0
  54. package/src/io/ooxml/parse-comments.ts +779 -0
  55. package/src/io/ooxml/parse-complex-content.ts +287 -0
  56. package/src/io/ooxml/parse-fields.ts +438 -0
  57. package/src/io/ooxml/parse-footnotes.ts +403 -0
  58. package/src/io/ooxml/parse-headers-footers.ts +483 -0
  59. package/src/io/ooxml/parse-inline-media.ts +431 -0
  60. package/src/io/ooxml/parse-main-document.ts +1846 -0
  61. package/src/io/ooxml/parse-numbering.ts +425 -0
  62. package/src/io/ooxml/parse-revisions.ts +658 -0
  63. package/src/io/ooxml/parse-shapes.ts +271 -0
  64. package/src/io/ooxml/parse-tables.ts +568 -0
  65. package/src/io/ooxml/parse-theme.ts +314 -0
  66. package/src/io/ooxml/part-manifest.ts +136 -0
  67. package/src/io/ooxml/revision-boundaries.ts +351 -0
  68. package/src/io/opc/README.md +3 -0
  69. package/src/io/opc/corrupt-package.ts +166 -0
  70. package/src/io/opc/docx-package.ts +74 -0
  71. package/src/io/opc/package-reader.ts +320 -0
  72. package/src/io/opc/package-writer.ts +273 -0
  73. package/src/legal/bookmarks.ts +196 -0
  74. package/src/legal/cross-references.ts +356 -0
  75. package/src/legal/defined-terms.ts +203 -0
  76. package/src/model/README.md +3 -0
  77. package/src/model/canonical-document.ts +1911 -0
  78. package/src/model/cds-1.0.0.ts +196 -0
  79. package/src/model/snapshot.ts +393 -0
  80. package/src/preservation/README.md +3 -0
  81. package/src/preservation/markup-compatibility.ts +48 -0
  82. package/src/preservation/opaque-fragment-store.ts +89 -0
  83. package/src/preservation/opaque-region.ts +233 -0
  84. package/src/preservation/package-preservation.ts +120 -0
  85. package/src/preservation/preserved-part-manifest.ts +56 -0
  86. package/src/preservation/relationship-retention.ts +57 -0
  87. package/src/preservation/store.ts +185 -0
  88. package/src/review/README.md +16 -0
  89. package/src/review/store/README.md +3 -0
  90. package/src/review/store/comment-anchors.ts +70 -0
  91. package/src/review/store/comment-remapping.ts +154 -0
  92. package/src/review/store/comment-store.ts +331 -0
  93. package/src/review/store/comment-thread.ts +109 -0
  94. package/src/review/store/revision-actions.ts +394 -0
  95. package/src/review/store/revision-store.ts +303 -0
  96. package/src/review/store/revision-types.ts +168 -0
  97. package/src/review/store/runtime-comment-store.ts +43 -0
  98. package/src/runtime/README.md +3 -0
  99. package/src/runtime/ai-action-policy.ts +764 -0
  100. package/src/runtime/document-runtime.ts +967 -0
  101. package/src/runtime/read-only-diagnostics-runtime.ts +232 -0
  102. package/src/runtime/review-runtime.ts +44 -0
  103. package/src/runtime/revision-runtime.ts +107 -0
  104. package/src/runtime/session-capabilities.ts +138 -0
  105. package/src/runtime/surface-projection.ts +570 -0
  106. package/src/runtime/table-commands.ts +87 -0
  107. package/src/runtime/table-schema.ts +140 -0
  108. package/src/runtime/virtualized-rendering.ts +258 -0
  109. package/src/ui/README.md +30 -0
  110. package/src/ui/WordReviewEditor.tsx +1504 -0
  111. package/src/ui/comments/README.md +3 -0
  112. package/src/ui/compatibility/README.md +3 -0
  113. package/src/ui/editor-surface/README.md +3 -0
  114. package/src/ui/headless/comment-decoration-model.ts +124 -0
  115. package/src/ui/headless/revision-decoration-model.ts +128 -0
  116. package/src/ui/headless/selection-helpers.ts +34 -0
  117. package/src/ui/headless/use-editor-keyboard.ts +98 -0
  118. package/src/ui/review/README.md +3 -0
  119. package/src/ui/shared/revision-filters.ts +31 -0
  120. package/src/ui/status/README.md +3 -0
  121. package/src/ui/theme/README.md +3 -0
  122. package/src/ui/toolbar/README.md +3 -0
  123. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +48 -0
  124. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +44 -0
  125. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +58 -0
  126. package/src/ui-tailwind/chrome/use-before-unload.ts +20 -0
  127. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +139 -0
  128. package/src/ui-tailwind/editor-surface/pm-decorations.ts +98 -0
  129. package/src/ui-tailwind/editor-surface/pm-position-map.ts +123 -0
  130. package/src/ui-tailwind/editor-surface/pm-schema.ts +452 -0
  131. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +327 -0
  132. package/src/ui-tailwind/editor-surface/search-plugin.ts +157 -0
  133. package/src/ui-tailwind/editor-surface/tw-caret.tsx +12 -0
  134. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +150 -0
  135. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +118 -0
  136. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +52 -0
  137. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +151 -0
  138. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +215 -0
  139. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +111 -0
  140. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +122 -0
  141. package/src/ui-tailwind/index.ts +61 -0
  142. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +276 -0
  143. package/src/ui-tailwind/review/tw-health-panel.tsx +120 -0
  144. package/src/ui-tailwind/review/tw-review-rail.tsx +120 -0
  145. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +164 -0
  146. package/src/ui-tailwind/status/tw-status-bar.tsx +58 -0
  147. package/src/ui-tailwind/theme/editor-theme.css +190 -0
  148. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +48 -0
  149. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +231 -0
  150. package/src/ui-tailwind/tw-review-workspace.tsx +140 -0
  151. package/src/validation/README.md +3 -0
  152. package/src/validation/compatibility-engine.ts +317 -0
  153. package/src/validation/compatibility-report.ts +160 -0
  154. package/src/validation/diagnostics.ts +203 -0
  155. package/src/validation/import-diagnostics.ts +128 -0
  156. package/src/validation/low-priority-word-surfaces.ts +373 -0
  157. package/dist/chunk-32W6IVQE.js +0 -7725
  158. package/dist/chunk-32W6IVQE.js.map +0 -1
  159. package/dist/index.cjs +0 -23722
  160. package/dist/index.cjs.map +0 -1
  161. package/dist/index.d.cts +0 -7
  162. package/dist/index.d.ts +0 -7
  163. package/dist/index.js +0 -16011
  164. package/dist/index.js.map +0 -1
  165. package/dist/public-types-DqCURAz8.d.cts +0 -1152
  166. package/dist/public-types-DqCURAz8.d.ts +0 -1152
  167. package/dist/tailwind.cjs +0 -8295
  168. package/dist/tailwind.cjs.map +0 -1
  169. package/dist/tailwind.d.cts +0 -323
  170. package/dist/tailwind.d.ts +0 -323
  171. package/dist/tailwind.js +0 -553
  172. package/dist/tailwind.js.map +0 -1
@@ -1,1152 +0,0 @@
1
- type Position = number;
2
- type Assoc = -1 | 1;
3
- interface DocRange$1 {
4
- from: Position;
5
- to: Position;
6
- }
7
- interface BoundaryAssoc$1 {
8
- start: Assoc;
9
- end: Assoc;
10
- }
11
- interface RangeAnchor {
12
- kind: "range";
13
- range: DocRange$1;
14
- assoc: BoundaryAssoc$1;
15
- }
16
- interface NodeAnchor {
17
- kind: "node";
18
- at: Position;
19
- assoc: Assoc;
20
- }
21
- interface DetachedAnchor {
22
- kind: "detached";
23
- lastKnownRange: DocRange$1;
24
- reason: "deleted" | "invalidatedByStructureChange" | "importAmbiguity";
25
- }
26
- type EditorAnchorProjection$1 = RangeAnchor | NodeAnchor | DetachedAnchor;
27
-
28
- declare const CDS_SCHEMA_VERSION: "cds/1.0.0";
29
- declare const PERSISTED_EDITOR_SNAPSHOT_VERSION: "persisted-editor-snapshot/1";
30
- declare const COMPATIBILITY_REPORT_VERSION: "compatibility-report/1";
31
- type PersistedEditorSnapshotVersion = typeof PERSISTED_EDITOR_SNAPSHOT_VERSION;
32
- type CompatibilityReportVersion = typeof COMPATIBILITY_REPORT_VERSION;
33
- type UUID = string;
34
- type ISO8601DateTime = string;
35
-
36
- interface CanonicalDocument {
37
- schemaVersion: typeof CDS_SCHEMA_VERSION;
38
- docId: UUID;
39
- createdAt: ISO8601DateTime;
40
- updatedAt: ISO8601DateTime;
41
- metadata: DocumentMetadata;
42
- styles: StylesCatalog;
43
- numbering: NumberingCatalog;
44
- media: MediaCatalog;
45
- content: DocumentNode;
46
- review: ReviewStore;
47
- preservation: PreservationStore;
48
- diagnostics: DiagnosticStore;
49
- subParts?: SubPartsCatalog;
50
- }
51
- interface DocumentMetadata {
52
- title?: string;
53
- subject?: string;
54
- description?: string;
55
- language?: string;
56
- keywords?: string[];
57
- category?: string;
58
- customProperties: Record<string, string>;
59
- }
60
- interface StylesCatalog {
61
- paragraphs: Record<string, ParagraphStyleDefinition>;
62
- characters: Record<string, CharacterStyleDefinition>;
63
- tables: Record<string, TableStyleDefinition>;
64
- latentStyles?: Record<string, LatentStyleDefinition>;
65
- }
66
- interface ParagraphStyleDefinition {
67
- styleId: string;
68
- basedOn?: string;
69
- nextStyle?: string;
70
- displayName: string;
71
- kind: "paragraph";
72
- isDefault: boolean;
73
- }
74
- interface CharacterStyleDefinition {
75
- styleId: string;
76
- basedOn?: string;
77
- displayName: string;
78
- kind: "character";
79
- isDefault: boolean;
80
- }
81
- interface TableStyleDefinition {
82
- styleId: string;
83
- basedOn?: string;
84
- displayName: string;
85
- kind: "table";
86
- isDefault: boolean;
87
- }
88
- interface LatentStyleDefinition {
89
- name: string;
90
- locked?: boolean;
91
- semiHidden?: boolean;
92
- unhideWhenUsed?: boolean;
93
- qFormat?: boolean;
94
- uiPriority?: number;
95
- }
96
- interface NumberingCatalog {
97
- abstractDefinitions: Record<string, AbstractNumberingDefinition>;
98
- instances: Record<string, NumberingInstance>;
99
- }
100
- interface AbstractNumberingDefinition {
101
- abstractNumberingId: string;
102
- levels: NumberingLevelDefinition[];
103
- }
104
- interface NumberingLevelDefinition {
105
- level: number;
106
- format: string;
107
- text: string;
108
- startAt?: number;
109
- paragraphStyleId?: string;
110
- }
111
- interface NumberingInstance {
112
- numberingInstanceId: string;
113
- abstractNumberingId: string;
114
- overrides: NumberingLevelOverride[];
115
- }
116
- interface NumberingLevelOverride {
117
- level: number;
118
- startAt?: number;
119
- }
120
- interface MediaCatalog {
121
- items: Record<string, MediaItem>;
122
- }
123
- interface MediaItem {
124
- mediaId: string;
125
- contentType: string;
126
- filename: string;
127
- relationshipId?: string;
128
- packagePartName: string;
129
- altText?: string;
130
- }
131
- type HeaderFooterVariant = "default" | "first" | "even";
132
- interface HeaderDocument {
133
- variant: HeaderFooterVariant;
134
- partPath: string;
135
- relationshipId: string;
136
- blocks: BlockNode[];
137
- }
138
- interface FooterDocument {
139
- variant: HeaderFooterVariant;
140
- partPath: string;
141
- relationshipId: string;
142
- blocks: BlockNode[];
143
- }
144
- interface FootnoteDefinition {
145
- noteId: string;
146
- kind: "footnote" | "endnote";
147
- blocks: BlockNode[];
148
- }
149
- interface FootnoteCollection {
150
- footnotes: Record<string, FootnoteDefinition>;
151
- endnotes: Record<string, FootnoteDefinition>;
152
- }
153
- interface ThemeColorScheme {
154
- name: string;
155
- colors: Record<string, string>;
156
- }
157
- interface ThemeFontScheme {
158
- name: string;
159
- majorFont?: string;
160
- minorFont?: string;
161
- }
162
- interface ThemeDefinition {
163
- name?: string;
164
- colorScheme?: ThemeColorScheme;
165
- fontScheme?: ThemeFontScheme;
166
- }
167
- interface SubPartsCatalog {
168
- headers: HeaderDocument[];
169
- footers: FooterDocument[];
170
- footnoteCollection?: FootnoteCollection;
171
- theme?: ThemeDefinition;
172
- }
173
- interface FootnoteRefNode {
174
- type: "footnote_ref";
175
- noteId: string;
176
- noteKind: "footnote" | "endnote";
177
- }
178
- type DocumentNode = DocumentRootNode | ParagraphNode | TableNode | TableRowNode | TableCellNode | SdtNode | CustomXmlNode | AltChunkNode | TextNode | HardBreakNode | TabNode | ColumnBreakNode | SymbolNode | HyperlinkNode | ImageNode | FieldNode | BookmarkStartNode | BookmarkEndNode | SectionBreakNode | OpaqueInlineNode | OpaqueBlockNode | FootnoteRefNode | ChartPreviewNode | SmartArtPreviewNode | ShapeNode | WordArtNode | VmlShapeNode;
179
- interface DocumentRootNode {
180
- type: "doc";
181
- children: BlockNode[];
182
- }
183
- type BlockNode = ParagraphNode | TableNode | SdtNode | CustomXmlNode | AltChunkNode | SectionBreakNode | OpaqueBlockNode;
184
- interface ParagraphSpacing {
185
- before?: number;
186
- after?: number;
187
- line?: number;
188
- lineRule?: "auto" | "exact" | "atLeast";
189
- }
190
- interface ParagraphIndentation {
191
- left?: number;
192
- right?: number;
193
- firstLine?: number;
194
- hanging?: number;
195
- }
196
- interface TabStop {
197
- position: number;
198
- align: "left" | "center" | "right" | "decimal" | "bar" | "clear";
199
- leader?: "none" | "dot" | "hyphen" | "underscore" | "heavy" | "middleDot";
200
- }
201
- interface ParagraphBorders {
202
- top?: BorderSpec;
203
- left?: BorderSpec;
204
- bottom?: BorderSpec;
205
- right?: BorderSpec;
206
- bar?: BorderSpec;
207
- between?: BorderSpec;
208
- }
209
- interface ParagraphShading {
210
- fill?: string;
211
- color?: string;
212
- val?: string;
213
- }
214
- interface ParagraphNode {
215
- type: "paragraph";
216
- styleId?: string;
217
- numbering?: {
218
- numberingInstanceId: string;
219
- level: number;
220
- };
221
- alignment?: "left" | "center" | "right" | "both" | "distribute";
222
- spacing?: ParagraphSpacing;
223
- indentation?: ParagraphIndentation;
224
- tabStops?: TabStop[];
225
- keepNext?: boolean;
226
- keepLines?: boolean;
227
- outlineLevel?: number;
228
- pageBreakBefore?: boolean;
229
- widowControl?: boolean;
230
- borders?: ParagraphBorders;
231
- shading?: ParagraphShading;
232
- bidi?: boolean;
233
- suppressLineNumbers?: boolean;
234
- cnfStyle?: string;
235
- children: InlineNode[];
236
- }
237
- interface BorderSpec {
238
- value?: string;
239
- size?: number;
240
- space?: number;
241
- color?: string;
242
- }
243
- interface TableBorders {
244
- top?: BorderSpec;
245
- left?: BorderSpec;
246
- bottom?: BorderSpec;
247
- right?: BorderSpec;
248
- insideH?: BorderSpec;
249
- insideV?: BorderSpec;
250
- }
251
- interface TableCellBorders {
252
- top?: BorderSpec;
253
- left?: BorderSpec;
254
- bottom?: BorderSpec;
255
- right?: BorderSpec;
256
- insideH?: BorderSpec;
257
- insideV?: BorderSpec;
258
- }
259
- interface TableWidth {
260
- value: number;
261
- type: "dxa" | "auto" | "pct" | "nil";
262
- }
263
- interface CellShading {
264
- fill?: string;
265
- color?: string;
266
- val?: string;
267
- }
268
- interface TableCellMargins {
269
- top?: number;
270
- left?: number;
271
- bottom?: number;
272
- right?: number;
273
- }
274
- interface TableLook {
275
- val?: string;
276
- firstRow?: boolean;
277
- lastRow?: boolean;
278
- firstColumn?: boolean;
279
- lastColumn?: boolean;
280
- noHBand?: boolean;
281
- noVBand?: boolean;
282
- }
283
- interface TableNode {
284
- type: "table";
285
- styleId?: string;
286
- propertiesXml?: string;
287
- gridColumns: number[];
288
- rows: TableRowNode[];
289
- width?: TableWidth;
290
- alignment?: "left" | "center" | "right";
291
- borders?: TableBorders;
292
- cellMargins?: TableCellMargins;
293
- tblLook?: TableLook;
294
- }
295
- interface TableRowNode {
296
- type: "table_row";
297
- propertiesXml?: string;
298
- cells: TableCellNode[];
299
- height?: number;
300
- heightRule?: "auto" | "atLeast" | "exact";
301
- isHeader?: boolean;
302
- }
303
- interface TableCellNode {
304
- type: "table_cell";
305
- propertiesXml?: string;
306
- gridSpan?: number;
307
- verticalMerge?: "restart" | "continue";
308
- children: BlockNode[];
309
- width?: TableWidth;
310
- borders?: TableCellBorders;
311
- shading?: CellShading;
312
- verticalAlign?: "top" | "center" | "bottom";
313
- }
314
- interface SdtNode {
315
- type: "sdt";
316
- properties: {
317
- sdtType?: string;
318
- alias?: string;
319
- tag?: string;
320
- lock?: string;
321
- propertiesXml?: string;
322
- };
323
- children: BlockNode[];
324
- }
325
- interface CustomXmlNode {
326
- type: "custom_xml";
327
- uri?: string;
328
- element?: string;
329
- children: BlockNode[];
330
- }
331
- interface AltChunkNode {
332
- type: "alt_chunk";
333
- relationshipId: string;
334
- }
335
- interface FieldNode {
336
- type: "field";
337
- fieldType: "simple" | "complex";
338
- instruction: string;
339
- children: InlineNode[];
340
- }
341
- interface BookmarkStartNode {
342
- type: "bookmark_start";
343
- bookmarkId: string;
344
- name: string;
345
- }
346
- interface BookmarkEndNode {
347
- type: "bookmark_end";
348
- bookmarkId: string;
349
- }
350
- interface SectionBreakNode {
351
- type: "section_break";
352
- propertiesXml?: string;
353
- }
354
- type InlineNode = TextNode | HardBreakNode | TabNode | HyperlinkNode | ImageNode | FieldNode | BookmarkStartNode | BookmarkEndNode | OpaqueInlineNode | FootnoteRefNode | ChartPreviewNode | SmartArtPreviewNode | ShapeNode | WordArtNode | VmlShapeNode;
355
- interface TextNode {
356
- type: "text";
357
- text: string;
358
- marks?: TextMark[];
359
- }
360
- type TextMark = {
361
- type: "bold";
362
- } | {
363
- type: "italic";
364
- } | {
365
- type: "underline";
366
- } | {
367
- type: "strikethrough";
368
- } | {
369
- type: "doubleStrikethrough";
370
- } | {
371
- type: "vanish";
372
- } | {
373
- type: "lang";
374
- val: string;
375
- } | {
376
- type: "backgroundColor";
377
- color: string;
378
- } | {
379
- type: "charSpacing";
380
- val: number;
381
- } | {
382
- type: "kerning";
383
- val: number;
384
- } | {
385
- type: "emboss";
386
- } | {
387
- type: "imprint";
388
- } | {
389
- type: "shadow";
390
- } | {
391
- type: "position";
392
- val: number;
393
- } | {
394
- type: "textFill";
395
- xml: string;
396
- };
397
- interface HardBreakNode {
398
- type: "hard_break";
399
- }
400
- interface ColumnBreakNode {
401
- type: "column_break";
402
- }
403
- interface TabNode {
404
- type: "tab";
405
- }
406
- interface SymbolNode {
407
- type: "symbol";
408
- char: string;
409
- font?: string;
410
- marks?: TextMark[];
411
- }
412
- interface HyperlinkNode {
413
- type: "hyperlink";
414
- href: string;
415
- children: Array<TextNode | HardBreakNode | ColumnBreakNode | TabNode | SymbolNode>;
416
- }
417
- interface ImageNode {
418
- type: "image";
419
- mediaId: string;
420
- altText?: string;
421
- placementXml?: string;
422
- display?: "inline" | "floating";
423
- floating?: FloatingImageProperties;
424
- }
425
- interface FloatingImageProperties {
426
- horizontalPosition?: FloatingAxisPosition;
427
- verticalPosition?: FloatingAxisPosition;
428
- wrap?: "none" | "square" | "tight" | "through" | "topAndBottom";
429
- behindDoc?: boolean;
430
- layoutInCell?: boolean;
431
- allowOverlap?: boolean;
432
- }
433
- interface FloatingAxisPosition {
434
- relativeFrom?: string;
435
- align?: string;
436
- offset?: number;
437
- }
438
- interface OpaqueInlineNode {
439
- type: "opaque_inline";
440
- fragmentId: string;
441
- warningId: string;
442
- }
443
- /**
444
- * Read-only preview of a chart (c:chart). The original drawing XML is stored in
445
- * rawXml for lossless round-trip export. If a fallback image was present in
446
- * mc:AlternateContent it is referenced by previewMediaId.
447
- */
448
- interface ChartPreviewNode {
449
- type: "chart_preview";
450
- previewMediaId?: string;
451
- rawXml: string;
452
- }
453
- /**
454
- * Read-only preview of a SmartArt diagram (dgm:*). The original drawing XML is
455
- * stored in rawXml for lossless round-trip export.
456
- */
457
- interface SmartArtPreviewNode {
458
- type: "smartart_preview";
459
- previewMediaId?: string;
460
- rawXml: string;
461
- }
462
- /**
463
- * Read-only rendering of a wps:wsp WordprocessingShape. Text content is
464
- * extracted for display. The original drawing XML is preserved in rawXml.
465
- */
466
- interface ShapeNode {
467
- type: "shape";
468
- text?: string;
469
- geometry?: string;
470
- rawXml: string;
471
- }
472
- /**
473
- * Read-only rendering of WordArt — a wps:wsp shape with a text-geometry preset.
474
- * Text is extracted for display. The original drawing XML is preserved in rawXml.
475
- */
476
- interface WordArtNode {
477
- type: "wordart";
478
- text: string;
479
- geometry?: string;
480
- rawXml: string;
481
- }
482
- /**
483
- * Read-only rendering of a VML shape (v:shape, v:rect, v:textbox) from a w:pict
484
- * element. Text is extracted for display. The original w:pict XML is preserved
485
- * in rawXml for lossless round-trip export.
486
- */
487
- interface VmlShapeNode {
488
- type: "vml_shape";
489
- text?: string;
490
- shapeType?: string;
491
- rawXml: string;
492
- }
493
- interface OpaqueBlockNode {
494
- type: "opaque_block";
495
- fragmentId: string;
496
- warningId: string;
497
- }
498
- interface DocRange {
499
- from: number;
500
- to: number;
501
- }
502
- interface BoundaryAssoc {
503
- start: -1 | 1;
504
- end: -1 | 1;
505
- }
506
- type CanonicalAnchor = {
507
- kind: "range";
508
- range: DocRange;
509
- assoc: BoundaryAssoc;
510
- } | {
511
- kind: "node";
512
- at: number;
513
- assoc: -1 | 1;
514
- } | {
515
- kind: "detached";
516
- lastKnownRange: DocRange;
517
- reason: "deleted" | "invalidatedByStructureChange" | "importAmbiguity";
518
- };
519
- interface ReviewStore {
520
- comments: Record<string, CommentThread>;
521
- revisions: Record<string, RevisionRecord>;
522
- }
523
- interface CommentThread {
524
- commentId: string;
525
- status: "open" | "resolved" | "detached";
526
- anchor: CanonicalAnchor;
527
- createdAt: ISO8601DateTime;
528
- createdBy?: string;
529
- authorId?: string;
530
- body?: string;
531
- entries?: CommentEntry[];
532
- resolution?: CommentResolution;
533
- resolvedAt?: ISO8601DateTime;
534
- warningIds: string[];
535
- isResolved?: boolean;
536
- metadata?: CommentThreadMetadata;
537
- }
538
- interface CommentEntry {
539
- entryId: string;
540
- authorId: string;
541
- createdAt: ISO8601DateTime;
542
- body: string;
543
- metadata?: CommentEntryMetadata;
544
- }
545
- interface CommentEntryMetadata {
546
- ooxmlCommentId?: string;
547
- paraId?: string;
548
- parentParaId?: string;
549
- durableId?: string;
550
- initials?: string;
551
- }
552
- interface CommentResolution {
553
- resolvedAt: ISO8601DateTime;
554
- resolvedBy: string;
555
- }
556
- interface CommentThreadMetadata {
557
- source?: "runtime" | "import";
558
- rootOoxmlCommentId?: string;
559
- rootParaId?: string;
560
- }
561
- interface RevisionPropertyChangeData {
562
- xmlTag: "pPrChange" | "sectPrChange" | "tblPrChange" | "rPrChange";
563
- beforeXml: string;
564
- }
565
- interface RevisionMoveData {
566
- moveId: string;
567
- direction: "from" | "to";
568
- }
569
- interface RevisionRecord {
570
- changeId: string;
571
- kind: "insertion" | "deletion" | "formatting" | "move" | "property-change";
572
- anchor: CanonicalAnchor;
573
- authorId?: string;
574
- createdAt: ISO8601DateTime;
575
- warningIds?: string[];
576
- metadata?: RevisionMetadataRecord;
577
- status: "open" | "accepted" | "rejected" | "detached";
578
- }
579
- interface RevisionMetadataRecord {
580
- source?: "runtime" | "import";
581
- preserveOnlyReason?: string;
582
- importedRevisionForm?: "run-insertion" | "run-deletion" | "paragraph-insertion" | "paragraph-deletion";
583
- originalRevisionType?: string;
584
- ooxmlRevisionId?: string;
585
- propertyChangeData?: RevisionPropertyChangeData;
586
- moveData?: RevisionMoveData;
587
- }
588
- interface PreservationStore {
589
- opaqueFragments: Record<string, OpaqueFragmentRecord>;
590
- packageParts: Record<string, PreservedPackagePart>;
591
- }
592
- interface OpaqueFragmentRecord {
593
- fragmentId: string;
594
- payloadKind: "xml-subtree" | "package-part";
595
- payloadReference: string;
596
- featureClass: "preserve-only";
597
- lastKnownRange: DocRange;
598
- warningId: string;
599
- packagePartName?: string;
600
- relationshipId?: string;
601
- }
602
- interface PreservedPackagePart {
603
- packagePartName: string;
604
- contentType: string;
605
- relationshipIds: string[];
606
- }
607
- interface DiagnosticStore {
608
- warnings: DiagnosticWarningEntry[];
609
- errors: DiagnosticErrorEntry[];
610
- }
611
- interface DiagnosticWarningEntry {
612
- diagnosticId: string;
613
- warningId: string;
614
- source: "import" | "runtime" | "review" | "preservation" | "validation" | "export";
615
- message: string;
616
- }
617
- interface DiagnosticErrorEntry {
618
- diagnosticId: string;
619
- code: "load_failed" | "export_failed" | "package_corrupt" | "validation_failed" | "datastore_failed" | "internal_invariant";
620
- message: string;
621
- isFatal: boolean;
622
- source: "import" | "runtime" | "validation" | "datastore" | "export";
623
- }
624
-
625
- type EditorWarningCode$2 = "unsupported_ooxml_preserved" | "unsupported_ooxml_locked" | "import_normalized" | "export_roundtrip_risk" | "comment_anchor_detached" | "revision_anchor_detached" | "large_document_degraded" | "font_substitution" | "image_missing";
626
- interface EditorWarning$2 {
627
- warningId: string;
628
- code: EditorWarningCode$2;
629
- severity: "info" | "warning";
630
- message: string;
631
- source: "import" | "runtime" | "review" | "preservation" | "validation" | "export";
632
- affectedAnchor?: Record<string, unknown>;
633
- featureEntryId?: string;
634
- details?: Record<string, unknown>;
635
- }
636
- type EditorErrorCode$1 = "import_failed" | "export_failed" | "package_corrupt" | "validation_failed" | "datastore_failed" | "internal_invariant";
637
- interface EditorError$2 {
638
- errorId: string;
639
- code: EditorErrorCode$1;
640
- message: string;
641
- isFatal: boolean;
642
- source: "import" | "runtime" | "validation" | "datastore" | "export";
643
- details?: Record<string, unknown>;
644
- }
645
- type CompatibilityFeatureClass$2 = "supported-roundtrip" | "preserve-only" | "unsupported-fatal";
646
- interface CompatibilityFeatureEntry$2 {
647
- featureEntryId: string;
648
- featureKey: string;
649
- featureClass: CompatibilityFeatureClass$2;
650
- message: string;
651
- affectedAnchor?: Record<string, unknown>;
652
- details?: Record<string, unknown>;
653
- }
654
- interface CompatibilityReport$2 {
655
- reportVersion: CompatibilityReportVersion;
656
- generatedAt: ISO8601DateTime;
657
- blockExport: boolean;
658
- featureEntries: CompatibilityFeatureEntry$2[];
659
- warnings: EditorWarning$2[];
660
- errors: EditorError$2[];
661
- }
662
- interface PersistedEditorSnapshot$2 {
663
- snapshotVersion: PersistedEditorSnapshotVersion;
664
- schemaVersion: typeof CDS_SCHEMA_VERSION;
665
- documentId: string;
666
- docId: string;
667
- createdAt: ISO8601DateTime;
668
- updatedAt: ISO8601DateTime;
669
- savedAt: ISO8601DateTime;
670
- editorBuild: string;
671
- canonicalDocument: CanonicalDocument;
672
- compatibility: CompatibilityReport$2;
673
- warningLog: EditorWarning$2[];
674
- }
675
-
676
- type EditorWarningCode$1 = "unsupported_ooxml_preserved" | "unsupported_ooxml_locked" | "import_normalized" | "export_roundtrip_risk" | "comment_anchor_detached" | "revision_anchor_detached" | "large_document_degraded" | "font_substitution" | "image_missing";
677
- interface EditorWarning$1 {
678
- warningId: string;
679
- code: EditorWarningCode$1;
680
- severity: "info" | "warning";
681
- message: string;
682
- source: "import" | "runtime" | "review" | "preservation" | "validation" | "export";
683
- affectedAnchor?: EditorAnchorProjection$1;
684
- featureEntryId?: string;
685
- details?: Record<string, unknown>;
686
- }
687
- interface EditorError$1 {
688
- errorId: string;
689
- code: "import_failed" | "export_failed" | "package_corrupt" | "validation_failed" | "datastore_failed" | "internal_invariant";
690
- message: string;
691
- isFatal: boolean;
692
- source: "import" | "runtime" | "validation" | "datastore" | "export";
693
- details?: Record<string, unknown>;
694
- }
695
- type CompatibilityFeatureClass$1 = "supported-roundtrip" | "preserve-only" | "unsupported-fatal";
696
- interface CompatibilityFeatureEntry$1 {
697
- featureEntryId: string;
698
- featureKey: string;
699
- featureClass: CompatibilityFeatureClass$1;
700
- message: string;
701
- affectedAnchor?: EditorAnchorProjection$1;
702
- details?: Record<string, unknown>;
703
- }
704
- interface CompatibilityReport$1 {
705
- reportVersion: "compatibility-report/1";
706
- generatedAt: string;
707
- blockExport: boolean;
708
- featureEntries: CompatibilityFeatureEntry$1[];
709
- warnings: EditorWarning$1[];
710
- errors: EditorError$1[];
711
- }
712
- type CanonicalDocumentEnvelope = CanonicalDocument;
713
- interface PersistedEditorSnapshot$1 extends Omit<PersistedEditorSnapshot$2, "canonicalDocument" | "compatibility" | "warningLog"> {
714
- canonicalDocument: CanonicalDocumentEnvelope;
715
- compatibility: CompatibilityReport$1;
716
- warningLog: EditorWarning$1[];
717
- }
718
-
719
- type ExternalDocumentSource = {
720
- kind: "docx";
721
- bytes: Uint8Array | ArrayBuffer;
722
- sourceLabel?: string;
723
- } | {
724
- kind: "snapshot";
725
- snapshot: PersistedEditorSnapshot;
726
- sourceLabel?: string;
727
- };
728
- interface EditorUser {
729
- userId: string;
730
- displayName: string;
731
- email?: string;
732
- avatarUrl?: string;
733
- }
734
- type EditorAnchorProjection = {
735
- kind: "range";
736
- from: number;
737
- to: number;
738
- assoc: {
739
- start: -1 | 1;
740
- end: -1 | 1;
741
- };
742
- } | {
743
- kind: "node";
744
- at: number;
745
- assoc: -1 | 1;
746
- } | {
747
- kind: "detached";
748
- lastKnownRange: {
749
- from: number;
750
- to: number;
751
- };
752
- reason: "deleted" | "invalidatedByStructureChange" | "importAmbiguity";
753
- };
754
- interface SelectionSnapshot {
755
- anchor: number;
756
- head: number;
757
- isCollapsed: boolean;
758
- activeRange: EditorAnchorProjection;
759
- }
760
- interface DocumentStats {
761
- storyLength: number;
762
- commentCount: number;
763
- revisionCount: number;
764
- opaqueFragmentCount: number;
765
- }
766
- interface CommentSidebarSnapshot {
767
- activeCommentId?: string;
768
- openCommentIds: string[];
769
- resolvedCommentIds: string[];
770
- detachedCommentIds: string[];
771
- totalCount: number;
772
- threads: CommentSidebarThreadSnapshot[];
773
- }
774
- interface CommentSidebarThreadEntrySnapshot {
775
- entryId: string;
776
- authorId: string;
777
- body: string;
778
- createdAt: string;
779
- }
780
- interface CommentSidebarThreadSnapshot {
781
- commentId: string;
782
- status: "open" | "resolved" | "detached";
783
- anchor: EditorAnchorProjection;
784
- excerpt: string;
785
- entryCount: number;
786
- entries: CommentSidebarThreadEntrySnapshot[];
787
- createdAt: string;
788
- createdBy: string;
789
- warningCount: number;
790
- anchorLabel: string;
791
- isActive: boolean;
792
- resolvedAt?: string;
793
- resolvedBy?: string;
794
- }
795
- interface TrackedChangeEntrySnapshot {
796
- revisionId: string;
797
- kind: "insertion" | "deletion" | "formatting" | "move" | "property-change";
798
- label: string;
799
- status: "active" | "accepted" | "rejected" | "detached";
800
- actionability: "actionable" | "preserve-only";
801
- importedRevisionForm?: "run-insertion" | "run-deletion" | "paragraph-insertion" | "paragraph-deletion";
802
- anchor: EditorAnchorProjection;
803
- anchorLabel: string;
804
- createdAt: string;
805
- authorId: string;
806
- warningCount: number;
807
- canAccept: boolean;
808
- canReject: boolean;
809
- preserveOnlyReason?: string;
810
- excerpt?: string;
811
- detail?: string;
812
- }
813
- interface TrackedChangesSnapshot {
814
- pendingChangeIds: string[];
815
- acceptedChangeIds: string[];
816
- rejectedChangeIds: string[];
817
- detachedChangeIds: string[];
818
- actionableChangeIds: string[];
819
- preserveOnlyChangeIds: string[];
820
- totalCount: number;
821
- revisions: TrackedChangeEntrySnapshot[];
822
- }
823
- type SurfaceTextMark = "bold" | "italic" | "underline" | "strikethrough";
824
- type SurfaceInlineSegment = {
825
- segmentId: string;
826
- kind: "text";
827
- from: number;
828
- to: number;
829
- text: string;
830
- marks?: SurfaceTextMark[];
831
- hyperlinkHref?: string;
832
- } | {
833
- segmentId: string;
834
- kind: "tab" | "hard_break";
835
- from: number;
836
- to: number;
837
- hyperlinkHref?: string;
838
- } | {
839
- segmentId: string;
840
- kind: "image";
841
- from: number;
842
- to: number;
843
- mediaId: string;
844
- altText?: string;
845
- state: "editable" | "missing";
846
- display?: "inline" | "floating";
847
- detail?: string;
848
- } | {
849
- segmentId: string;
850
- kind: "opaque_inline";
851
- from: number;
852
- to: number;
853
- fragmentId: string;
854
- warningId: string;
855
- label: string;
856
- detail: string;
857
- state: "locked-preserve-only";
858
- };
859
- interface SurfaceTableCellSnapshot {
860
- gridSpan: number;
861
- verticalMerge: "restart" | "continue" | null;
862
- colspan: number;
863
- rowspan: number;
864
- content: SurfaceBlockSnapshot[];
865
- }
866
- interface SurfaceTableRowSnapshot {
867
- cells: SurfaceTableCellSnapshot[];
868
- }
869
- type SurfaceBlockSnapshot = {
870
- blockId: string;
871
- kind: "paragraph";
872
- from: number;
873
- to: number;
874
- styleId?: string;
875
- numbering?: {
876
- numberingInstanceId: string;
877
- level: number;
878
- };
879
- segments: SurfaceInlineSegment[];
880
- } | {
881
- blockId: string;
882
- kind: "table";
883
- from: number;
884
- to: number;
885
- styleId?: string;
886
- gridColumns: number[];
887
- rows: SurfaceTableRowSnapshot[];
888
- } | {
889
- blockId: string;
890
- kind: "sdt_block";
891
- from: number;
892
- to: number;
893
- sdtType?: string;
894
- alias?: string;
895
- tag?: string;
896
- lock?: string;
897
- children: SurfaceBlockSnapshot[];
898
- } | {
899
- blockId: string;
900
- kind: "opaque_block";
901
- from: number;
902
- to: number;
903
- fragmentId: string;
904
- warningId: string;
905
- label: string;
906
- detail: string;
907
- state: "locked-preserve-only";
908
- };
909
- interface EditorSurfaceSnapshot {
910
- storySize: number;
911
- plainText: string;
912
- blocks: SurfaceBlockSnapshot[];
913
- lockedFragmentIds: string[];
914
- }
915
- type EditorWarningCode = "unsupported_ooxml_preserved" | "unsupported_ooxml_locked" | "import_normalized" | "export_roundtrip_risk" | "comment_anchor_detached" | "revision_anchor_detached" | "large_document_degraded" | "font_substitution" | "image_missing";
916
- interface EditorWarning {
917
- warningId: string;
918
- code: EditorWarningCode;
919
- severity: "info" | "warning";
920
- message: string;
921
- source: "import" | "runtime" | "review" | "preservation" | "validation" | "export";
922
- affectedAnchor?: EditorAnchorProjection;
923
- featureEntryId?: string;
924
- details?: Record<string, unknown>;
925
- }
926
- type EditorErrorCode = "import_failed" | "export_failed" | "package_corrupt" | "validation_failed" | "datastore_failed" | "internal_invariant";
927
- interface EditorError {
928
- errorId: string;
929
- code: EditorErrorCode;
930
- message: string;
931
- isFatal: boolean;
932
- source: "import" | "runtime" | "validation" | "datastore" | "export";
933
- details?: Record<string, unknown>;
934
- }
935
- type CompatibilityFeatureClass = "supported-roundtrip" | "preserve-only" | "unsupported-fatal";
936
- interface CompatibilityFeatureEntry {
937
- featureEntryId: string;
938
- featureKey: string;
939
- featureClass: CompatibilityFeatureClass;
940
- message: string;
941
- affectedAnchor?: EditorAnchorProjection;
942
- details?: Record<string, unknown>;
943
- }
944
- interface CompatibilityReport {
945
- reportVersion: "compatibility-report/1";
946
- generatedAt: string;
947
- blockExport: boolean;
948
- featureEntries: CompatibilityFeatureEntry[];
949
- warnings: EditorWarning[];
950
- errors: EditorError[];
951
- }
952
- interface CompatibilityPanelSnapshot {
953
- blockExport: boolean;
954
- blockExportReasons: string[];
955
- warningCount: number;
956
- errorCount: number;
957
- featureEntries: CompatibilityFeatureEntry[];
958
- }
959
- interface CommandStateSnapshot {
960
- canUndo: boolean;
961
- canRedo: boolean;
962
- readOnly: boolean;
963
- }
964
- interface RuntimeRenderSnapshot {
965
- documentId: string;
966
- sessionId: string;
967
- sourceLabel?: string;
968
- revisionToken: string;
969
- isReady: boolean;
970
- isDirty: boolean;
971
- readOnly: boolean;
972
- selection: SelectionSnapshot;
973
- documentStats: DocumentStats;
974
- comments: CommentSidebarSnapshot;
975
- trackedChanges: TrackedChangesSnapshot;
976
- compatibility: CompatibilityPanelSnapshot;
977
- warnings: EditorWarning[];
978
- fatalError?: EditorError;
979
- commandState: CommandStateSnapshot;
980
- surface?: EditorSurfaceSnapshot;
981
- }
982
- interface PersistedEditorSnapshot {
983
- snapshotVersion: PersistedEditorSnapshot$1["snapshotVersion"];
984
- schemaVersion: PersistedEditorSnapshot$1["schemaVersion"];
985
- documentId: string;
986
- docId: string;
987
- createdAt: string;
988
- updatedAt: string;
989
- savedAt: string;
990
- editorBuild: string;
991
- canonicalDocument: PersistedEditorSnapshot$1["canonicalDocument"];
992
- compatibility: CompatibilityReport;
993
- warningLog: EditorWarning[];
994
- }
995
- interface AddCommentParams {
996
- anchor?: EditorAnchorProjection;
997
- body?: string;
998
- authorId?: string;
999
- }
1000
- interface ExportDocxOptions {
1001
- fileName?: string;
1002
- reason?: string;
1003
- }
1004
- interface ExportResult {
1005
- bytes: Uint8Array;
1006
- mimeType: string;
1007
- fileName: string;
1008
- }
1009
- type AutosaveState = {
1010
- status: "idle";
1011
- } | {
1012
- status: "saving";
1013
- } | {
1014
- status: "saved";
1015
- savedAt: string;
1016
- } | {
1017
- status: "error";
1018
- error: EditorError;
1019
- };
1020
- interface AutosaveConfig {
1021
- enabled?: boolean;
1022
- debounceMs?: number;
1023
- }
1024
- type WordReviewEditorEvent = {
1025
- type: "ready";
1026
- documentId: string;
1027
- sessionId: string;
1028
- source: "docx" | "snapshot" | "datastore" | "canonical";
1029
- stats: DocumentStats;
1030
- compatibility: CompatibilityReport;
1031
- } | {
1032
- type: "dirty_changed";
1033
- documentId: string;
1034
- isDirty: boolean;
1035
- } | {
1036
- type: "selection_changed";
1037
- documentId: string;
1038
- selection: SelectionSnapshot;
1039
- } | {
1040
- type: "comment_added";
1041
- documentId: string;
1042
- commentId: string;
1043
- anchor: EditorAnchorProjection;
1044
- } | {
1045
- type: "comment_resolved";
1046
- documentId: string;
1047
- commentId: string;
1048
- } | {
1049
- type: "change_accepted";
1050
- documentId: string;
1051
- changeId: string;
1052
- } | {
1053
- type: "change_rejected";
1054
- documentId: string;
1055
- changeId: string;
1056
- } | {
1057
- type: "warning_added";
1058
- documentId: string;
1059
- warning: EditorWarning;
1060
- } | {
1061
- type: "warning_cleared";
1062
- documentId: string;
1063
- warningId: string;
1064
- code: EditorWarningCode;
1065
- } | {
1066
- type: "error";
1067
- documentId: string;
1068
- error: EditorError;
1069
- } | {
1070
- type: "autosave_state";
1071
- documentId: string;
1072
- state: AutosaveState;
1073
- } | {
1074
- type: "snapshot_saved";
1075
- documentId: string;
1076
- snapshot: PersistedEditorSnapshot;
1077
- isAutosave: boolean;
1078
- } | {
1079
- type: "export_completed";
1080
- documentId: string;
1081
- result: ExportResult;
1082
- };
1083
- interface LoadResult {
1084
- source?: ExternalDocumentSource;
1085
- }
1086
- interface SaveSnapshotParams {
1087
- documentId: string;
1088
- snapshot: PersistedEditorSnapshot;
1089
- isAutosave: boolean;
1090
- }
1091
- interface SaveSnapshotResult {
1092
- savedAt: string;
1093
- }
1094
- interface SaveExportParams {
1095
- documentId: string;
1096
- result: ExportResult;
1097
- }
1098
- interface SaveExportResult {
1099
- savedAt: string;
1100
- }
1101
- interface EditorTelemetryEvent {
1102
- type: string;
1103
- documentId: string;
1104
- detail?: Record<string, unknown>;
1105
- }
1106
- interface EditorDatastoreAdapter {
1107
- load(params: {
1108
- documentId: string;
1109
- }): Promise<LoadResult>;
1110
- saveSnapshot(params: SaveSnapshotParams): Promise<SaveSnapshotResult>;
1111
- saveExport(params: SaveExportParams): Promise<SaveExportResult>;
1112
- logEvent?(event: EditorTelemetryEvent): void;
1113
- }
1114
- interface WordReviewEditorRef {
1115
- focus(): void;
1116
- blur(): void;
1117
- undo(): void;
1118
- redo(): void;
1119
- addComment(params: AddCommentParams): string;
1120
- openComment(commentId: string): void;
1121
- resolveComment(commentId: string): void;
1122
- reopenComment(commentId: string): void;
1123
- addCommentReply(commentId: string, body: string): void;
1124
- editCommentBody(commentId: string, body: string): void;
1125
- acceptChange(changeId: string): void;
1126
- rejectChange(changeId: string): void;
1127
- acceptAllChanges(): void;
1128
- rejectAllChanges(): void;
1129
- exportDocx(options?: ExportDocxOptions): Promise<ExportResult>;
1130
- getSnapshot(): PersistedEditorSnapshot;
1131
- getCompatibilityReport(): CompatibilityReport;
1132
- getWarnings(): EditorWarning[];
1133
- }
1134
- interface WordReviewEditorProps {
1135
- documentId: string;
1136
- currentUser: EditorUser;
1137
- initialDocx?: Uint8Array | ArrayBuffer;
1138
- initialSnapshot?: PersistedEditorSnapshot;
1139
- initialSourceLabel?: string;
1140
- externalDocumentRevision?: string;
1141
- externalDocSource?: ExternalDocumentSource;
1142
- readOnly?: boolean;
1143
- reviewMode?: "editing" | "review";
1144
- markupDisplay?: "clean" | "simple" | "all";
1145
- datastore?: EditorDatastoreAdapter;
1146
- autosave?: AutosaveConfig;
1147
- onEvent?: (event: WordReviewEditorEvent) => void;
1148
- onWarning?: (warning: EditorWarning) => void;
1149
- onError?: (error: EditorError) => void;
1150
- }
1151
-
1152
- export type { AddCommentParams as A, SurfaceInlineSegment as B, CommandStateSnapshot as C, DocumentStats as D, EditorAnchorProjection as E, SurfaceTableCellSnapshot as F, SurfaceTableRowSnapshot as G, SurfaceTextMark as H, TrackedChangesSnapshot as I, WordReviewEditorEvent as J, LoadResult as L, PersistedEditorSnapshot as P, RuntimeRenderSnapshot as R, SaveExportParams as S, TrackedChangeEntrySnapshot as T, WordReviewEditorProps as W, WordReviewEditorRef as a, AutosaveConfig as b, AutosaveState as c, CommentSidebarSnapshot as d, CommentSidebarThreadEntrySnapshot as e, CommentSidebarThreadSnapshot as f, CompatibilityFeatureClass as g, CompatibilityFeatureEntry as h, CompatibilityPanelSnapshot as i, CompatibilityReport as j, EditorDatastoreAdapter as k, EditorError as l, EditorErrorCode as m, EditorSurfaceSnapshot as n, EditorTelemetryEvent as o, EditorUser as p, EditorWarning as q, EditorWarningCode as r, ExportDocxOptions as s, ExportResult as t, ExternalDocumentSource as u, SaveExportResult as v, SaveSnapshotParams as w, SaveSnapshotResult as x, SelectionSnapshot as y, SurfaceBlockSnapshot as z };