@extend-ai/react-docx 0.1.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.
@@ -0,0 +1,433 @@
1
+ import * as React from 'react';
2
+ import { DocModel, ImageRunNode, FormFieldRunNode, ParagraphNode, TextRunNode, ParagraphStyleDefinition, HeadingLevel, ParagraphAlignment } from '@extend-ai/react-docx-doc-model';
3
+ import { LayoutOptions } from '@extend-ai/react-docx-layout-engine';
4
+
5
+ interface DocumentLayoutMetrics {
6
+ pageWidthPx: number;
7
+ pageHeightPx: number;
8
+ marginsPx: {
9
+ top: number;
10
+ right: number;
11
+ bottom: number;
12
+ left: number;
13
+ };
14
+ headerDistancePx: number;
15
+ footerDistancePx: number;
16
+ docGridLinePitchPx?: number;
17
+ }
18
+ declare function parseSectionLayout(sectionPropertiesXml?: string): DocumentLayoutMetrics;
19
+ declare function resolveDocumentLayout(model: DocModel): DocumentLayoutMetrics;
20
+
21
+ type DocxDocumentTheme = "light" | "dark";
22
+ type DocxHeadingStyleMap = Partial<Record<HeadingLevel, React.CSSProperties>>;
23
+ type LetterheadFloatSide = "left" | "right";
24
+ declare function paragraphLetterheadFloatSideAtNodeIndex(nodes: DocModel["nodes"], nodeIndex: number): LetterheadFloatSide | undefined;
25
+ type DocxImageWrapMode = "inline" | "square" | "tight" | "through" | "topAndBottom" | "behindText" | "inFrontOfText";
26
+ interface DocxImageWrapState {
27
+ mode: DocxImageWrapMode;
28
+ moveWithText: boolean;
29
+ fixedPositionOnPage: boolean;
30
+ }
31
+ interface DocxImageWrapMenuOption {
32
+ actionId: DocxContextMenuActionId | (string & {});
33
+ label: string;
34
+ checked: boolean;
35
+ disabled?: boolean;
36
+ onSelect: () => void;
37
+ }
38
+ interface UseDocxImageWrapMenuResult {
39
+ state: DocxImageWrapState;
40
+ wrapOptions: DocxImageWrapMenuOption[];
41
+ positioningOptions: DocxImageWrapMenuOption[];
42
+ editWrapBoundaryOption: DocxImageWrapMenuOption;
43
+ moreLayoutOptionsOption: DocxImageWrapMenuOption;
44
+ setMode: (mode: DocxImageWrapMode) => void;
45
+ setMoveWithText: (moveWithText: boolean) => void;
46
+ }
47
+ type DocxListType = "unordered" | "ordered";
48
+ type DocxEditorSelection = {
49
+ kind: "paragraph";
50
+ nodeIndex: number;
51
+ } | {
52
+ kind: "table-cell";
53
+ tableIndex: number;
54
+ rowIndex: number;
55
+ cellIndex: number;
56
+ };
57
+ interface ParagraphLocationInBody {
58
+ kind: "paragraph";
59
+ nodeIndex: number;
60
+ }
61
+ interface ParagraphLocationInCell {
62
+ kind: "table-cell";
63
+ tableIndex: number;
64
+ rowIndex: number;
65
+ cellIndex: number;
66
+ paragraphIndex: number;
67
+ }
68
+ type DocxTextRangeLocation = ParagraphLocationInBody | ParagraphLocationInCell;
69
+ interface DocxTextRangeBoundary {
70
+ location: DocxTextRangeLocation;
71
+ offset: number;
72
+ }
73
+ interface DocxTextRange {
74
+ start: DocxTextRangeBoundary;
75
+ end: DocxTextRangeBoundary;
76
+ }
77
+ interface DocxHistoryRestoreRequest {
78
+ nonce: number;
79
+ selection: DocxEditorSelection;
80
+ activeTextRange?: DocxTextRange;
81
+ }
82
+ type ParagraphLocation = DocxTextRangeLocation;
83
+ type DocxImageLocation = ParagraphLocation & {
84
+ childIndex: number;
85
+ };
86
+ type DocxSectionRegion = "header" | "footer";
87
+ interface DocxSectionParagraphLocation {
88
+ region: DocxSectionRegion;
89
+ partName: string;
90
+ nodeIndex: number;
91
+ rowIndex?: number;
92
+ cellIndex?: number;
93
+ paragraphIndex?: number;
94
+ }
95
+ type DocxSectionImageLocation = DocxSectionParagraphLocation & {
96
+ childIndex: number;
97
+ };
98
+ type DocxFormFieldLocation = ParagraphLocation & {
99
+ childIndex: number;
100
+ };
101
+ interface DocxSelectedFormField {
102
+ location: DocxFormFieldLocation;
103
+ field: FormFieldRunNode;
104
+ }
105
+ type DocxImageDropTarget = ParagraphLocation & {
106
+ childIndex: number;
107
+ };
108
+ type DocxTrackedChangeKind = "insertion" | "deletion" | "move-from" | "move-to" | "format-change" | "paragraph-format-change";
109
+ interface DocxTrackedChange {
110
+ id: string;
111
+ kind: DocxTrackedChangeKind;
112
+ author?: string;
113
+ date?: string;
114
+ text?: string;
115
+ nodeIndex: number;
116
+ location: DocxTextRangeLocation;
117
+ }
118
+ type DocxLineSpacingRule = "auto" | "exact" | "atLeast";
119
+ type DocxSelectionSessionKind = "idle" | "pointer" | "keyboard" | "composition" | "command" | "history-restore";
120
+ interface DocxLineSpacingInfo {
121
+ lineRule: DocxLineSpacingRule;
122
+ lineTwips?: number;
123
+ multiple: number;
124
+ }
125
+ type DocxBorderContext = "paragraph" | "table";
126
+ type DocxBorderPreset = "bottom" | "top" | "left" | "right" | "none" | "all" | "outside" | "inside" | "inside-horizontal" | "inside-vertical" | "diagonal-down" | "diagonal-up" | "horizontal-line";
127
+ type DocxBorderPresetState = Record<DocxBorderPreset, boolean>;
128
+ interface UseDocxEditorOptions {
129
+ starterModel?: DocModel;
130
+ initialFileName?: string;
131
+ initialStatus?: string;
132
+ initialDocumentTheme?: DocxDocumentTheme;
133
+ initialShowTrackedChanges?: boolean;
134
+ }
135
+ interface DocxEditorController {
136
+ model: DocModel;
137
+ documentLoadNonce: number;
138
+ fileName: string;
139
+ status: string;
140
+ documentTheme: DocxDocumentTheme;
141
+ selection: DocxEditorSelection;
142
+ activeTextRange?: DocxTextRange;
143
+ historyRestoreRequest?: DocxHistoryRestoreRequest;
144
+ selectedFormField?: DocxSelectedFormField;
145
+ selectedParagraph?: ParagraphNode;
146
+ selectedRunStyle?: TextRunNode["style"];
147
+ selectedLink?: string;
148
+ pendingRunStyle?: TextRunNode["style"];
149
+ selectionSessionKind: DocxSelectionSessionKind;
150
+ suppressNextDomSelectionRestore: () => void;
151
+ beginSelectionSession: (kind: Exclude<DocxSelectionSessionKind, "idle">, options?: {
152
+ settleAfterMs?: number;
153
+ }) => void;
154
+ clearSelectionSession: (expectedKind?: DocxSelectionSessionKind) => void;
155
+ selectedParagraphStyleId?: string;
156
+ selectedLineSpacing: DocxLineSpacingInfo;
157
+ selectedBorderContext: DocxBorderContext;
158
+ activeBorderPresets: DocxBorderPresetState;
159
+ availableParagraphStyles: ParagraphStyleDefinition[];
160
+ trackedChanges: DocxTrackedChange[];
161
+ showTrackedChanges: boolean;
162
+ currentPage: number;
163
+ totalPages: number;
164
+ hasUnorderedList: boolean;
165
+ hasOrderedList: boolean;
166
+ canUndo: boolean;
167
+ canRedo: boolean;
168
+ registerPendingExportModelTransformer: (transformer?: (model: DocModel) => DocModel) => void;
169
+ setStatus: React.Dispatch<React.SetStateAction<string>>;
170
+ setDocumentTheme: (theme: DocxDocumentTheme) => void;
171
+ setShowTrackedChanges: (showTrackedChanges: boolean) => void;
172
+ syncPaginationInfo: (pagination: DocxPaginationInfo) => void;
173
+ toggleShowTrackedChanges: () => void;
174
+ importDocxFile: (file: File) => Promise<void>;
175
+ newDocument: () => void;
176
+ exportDocx: () => void;
177
+ undo: () => void;
178
+ redo: () => void;
179
+ setHeading: (heading?: HeadingLevel) => void;
180
+ setParagraphStyle: (styleId?: string) => void;
181
+ setLineSpacing: (lineMultiple: number) => void;
182
+ setFontFamily: (fontFamily: string) => void;
183
+ setFontSize: (fontSizePt: number) => void;
184
+ toggleBold: () => void;
185
+ toggleItalic: () => void;
186
+ toggleUnderline: () => void;
187
+ toggleStrike: () => void;
188
+ toggleSuperscript: () => void;
189
+ toggleSubscript: () => void;
190
+ setHighlight: (highlight?: string) => void;
191
+ setTextColor: (color?: string) => void;
192
+ setLink: (link?: string) => void;
193
+ selectFormField: (location?: DocxFormFieldLocation) => void;
194
+ toggleFormCheckbox: (location: DocxFormFieldLocation) => void;
195
+ setFormFieldValue: (location: DocxFormFieldLocation, value: string) => void;
196
+ updateFormFieldWidget: (location: DocxFormFieldLocation, patch: Partial<NonNullable<FormFieldRunNode["widget"]>>) => void;
197
+ applyBorderPreset: (preset: DocxBorderPreset) => void;
198
+ setAlignment: (align?: ParagraphAlignment) => void;
199
+ toggleList: (listType: DocxListType) => void;
200
+ adjustSelectedListDepth: (levelDelta: number, draftText?: string) => boolean;
201
+ insertListItemAfterSelection: (draftText: string, startOffset: number, endOffset?: number, targetLocation?: ParagraphLocation) => {
202
+ paragraphIndex: number;
203
+ caretOffset: number;
204
+ } | undefined;
205
+ splitParagraphAtSelection: (draftText: string, startOffset: number, endOffset?: number, targetLocation?: ParagraphLocation) => {
206
+ paragraphIndex: number;
207
+ caretOffset: number;
208
+ } | undefined;
209
+ insertTable: () => void;
210
+ insertImageFile: (file: File) => Promise<void>;
211
+ appendParagraph: (text?: string) => number;
212
+ resizeImage: (location: DocxImageLocation, widthPx: number, heightPx: number) => void;
213
+ setSyntheticTextBoxText: (location: DocxImageLocation, text: string) => void;
214
+ setImageWrapMode: (location: DocxImageLocation, mode: DocxImageWrapMode, seedFloating?: Partial<NonNullable<ImageRunNode["floating"]>>) => void;
215
+ moveFloatingImage: (location: DocxImageLocation, patch: Partial<NonNullable<ImageRunNode["floating"]>>) => void;
216
+ moveSectionFloatingImage: (location: DocxSectionImageLocation, patch: Partial<NonNullable<ImageRunNode["floating"]>>) => void;
217
+ moveParagraphDropCap: (nodeIndex: number, patch: Partial<NonNullable<NonNullable<ParagraphNode["style"]>["dropCap"]>>) => void;
218
+ setParagraphDropCapFontSizePt: (nodeIndex: number, fontSizePt: number) => void;
219
+ setParagraphDropCapText: (nodeIndex: number, text: string) => void;
220
+ moveImage: (source: DocxImageLocation, target: DocxImageDropTarget) => void;
221
+ setActiveTextRange: (range?: DocxTextRange) => void;
222
+ selectParagraph: (nodeIndex: number) => void;
223
+ selectTableCell: (tableIndex: number, rowIndex: number, cellIndex: number) => void;
224
+ clearTableCellContents: (tableIndex: number, cells: Array<{
225
+ rowIndex: number;
226
+ cellIndex: number;
227
+ }>) => void;
228
+ insertTableRow: (tableIndex: number, rowIndex: number, direction: "above" | "below") => void;
229
+ insertTableColumn: (tableIndex: number, cellIndex: number, direction: "left" | "right", rowIndex?: number) => void;
230
+ deleteTableRow: (tableIndex: number, rowIndex: number) => void;
231
+ deleteTableColumn: (tableIndex: number, cellIndex: number, rowIndex?: number) => void;
232
+ deleteTable: (tableIndex: number) => void;
233
+ moveTable: (tableIndex: number, targetNodeIndex: number) => void;
234
+ moveEmbeddedTableToBody: (tableRuntimeKey: string, targetNodeIndex: number) => void;
235
+ replaceExpandedSelection: (text: string, range?: DocxTextRange) => DocxTextRange | undefined;
236
+ deleteExpandedSelection: (range?: DocxTextRange) => DocxTextRange | undefined;
237
+ commitParagraphText: (nodeIndex: number, text: string) => void;
238
+ commitTableCellText: (tableIndex: number, rowIndex: number, cellIndex: number, text: string) => void;
239
+ commitTableCellParagraphTextRecursive: (tableIndex: number, rowIndex: number, cellIndex: number, paragraphIndex: number, text: string) => void;
240
+ commitSectionParagraphText: (location: DocxSectionParagraphLocation, text: string) => void;
241
+ }
242
+ type DocxTableContextMenuActionId = "insert-row-above" | "insert-row-below" | "insert-column-left" | "insert-column-right" | "delete-row" | "delete-column" | "delete-table";
243
+ type DocxContextMenuActionId = DocxTableContextMenuActionId | "cut" | "copy" | "paste" | "image-wrap-inline" | "image-wrap-square" | "image-wrap-tight" | "image-wrap-through" | "image-wrap-top-and-bottom" | "image-wrap-behind-text" | "image-wrap-in-front-of-text" | "image-edit-wrap-boundary" | "image-move-with-text" | "image-fix-position-on-page" | "image-more-layout-options" | "image-bring-to-front" | "image-bring-forward" | "image-in-front-of-text" | "image-send-to-back" | "image-send-backward" | "image-behind-text";
244
+ interface DocxTableContextMenuContext {
245
+ tableIndex: number;
246
+ rowIndex: number;
247
+ cellIndex: number;
248
+ }
249
+ interface DocxTableContextMenuAction {
250
+ id: DocxTableContextMenuActionId;
251
+ label: string;
252
+ destructive?: boolean;
253
+ }
254
+ interface DocxContextMenuAction {
255
+ id: DocxContextMenuActionId | (string & {});
256
+ label: string;
257
+ shortcut?: string;
258
+ destructive?: boolean;
259
+ disabled?: boolean;
260
+ checked?: boolean;
261
+ separatorBefore?: boolean;
262
+ children?: DocxContextMenuAction[];
263
+ }
264
+ interface DocxTableContextMenuRenderProps {
265
+ context: DocxTableContextMenuContext;
266
+ actions: DocxTableContextMenuAction[];
267
+ runAction: (actionId: DocxTableContextMenuActionId) => void;
268
+ closeMenu: () => void;
269
+ position: {
270
+ x: number;
271
+ y: number;
272
+ };
273
+ documentTheme: DocxDocumentTheme;
274
+ }
275
+ interface DocxContextMenuContext {
276
+ kind: "text" | "table" | "image";
277
+ activeTextRange?: DocxTextRange;
278
+ location?: DocxTextRangeLocation;
279
+ tableContext?: DocxTableContextMenuContext;
280
+ image?: {
281
+ location: DocxImageLocation;
282
+ floating?: NonNullable<ImageRunNode["floating"]>;
283
+ wrap?: DocxImageWrapState;
284
+ } | undefined;
285
+ }
286
+ interface DocxContextMenuRenderProps {
287
+ context: DocxContextMenuContext;
288
+ actions: DocxContextMenuAction[];
289
+ runAction: (actionId: DocxContextMenuActionId | (string & {})) => void;
290
+ closeMenu: () => void;
291
+ position: {
292
+ x: number;
293
+ y: number;
294
+ };
295
+ documentTheme: DocxDocumentTheme;
296
+ }
297
+ interface DocxEditorViewerProps {
298
+ editor: DocxEditorController;
299
+ className?: string;
300
+ style?: React.CSSProperties;
301
+ pageGapBackgroundColor?: string;
302
+ deferInitialPaginationPaint?: boolean;
303
+ loadingState?: React.ReactNode;
304
+ pageVirtualization?: {
305
+ enabled?: boolean;
306
+ overscan?: number;
307
+ settleDelayMs?: number;
308
+ };
309
+ visiblePageRange?: {
310
+ startPageIndex: number;
311
+ endPageIndex: number;
312
+ };
313
+ onPageCountChange?: (pageCount: number) => void;
314
+ onRequestPageReveal?: (pageIndex: number) => void;
315
+ headingStyles?: DocxHeadingStyleMap;
316
+ mode?: DocxEditorViewerMode;
317
+ showTrackedChanges?: boolean;
318
+ renderTrackedChangeCard?: (props: DocxTrackedChangeCardRenderProps) => React.ReactNode;
319
+ renderTableContextMenu?: (props: DocxTableContextMenuRenderProps) => React.ReactNode;
320
+ renderContextMenu?: (props: DocxContextMenuRenderProps) => React.ReactNode;
321
+ onFormFieldDoubleClick?: (location: DocxFormFieldLocation) => void;
322
+ }
323
+ interface DocxTrackedChangeCardRenderProps {
324
+ change: DocxTrackedChange;
325
+ kindLabel: string;
326
+ snippet: string;
327
+ formattedDate?: string;
328
+ accentColor: string;
329
+ documentTheme: DocxDocumentTheme;
330
+ pageIndex: number;
331
+ style: React.CSSProperties;
332
+ }
333
+ type DocxEditorViewerMode = "edit" | "read-only";
334
+ interface UseDocxDocumentThemeResult {
335
+ documentTheme: DocxDocumentTheme;
336
+ isDarkDocument: boolean;
337
+ setDocumentTheme: (theme: DocxDocumentTheme) => void;
338
+ toggleDocumentTheme: () => void;
339
+ }
340
+ interface UseDocxParagraphStylesResult {
341
+ paragraphStyles: ParagraphStyleDefinition[];
342
+ selectedParagraphStyleId?: string;
343
+ setParagraphStyle: (styleId?: string) => void;
344
+ }
345
+ interface UseDocxLineSpacingResult {
346
+ lineSpacing: DocxLineSpacingInfo;
347
+ setLineSpacing: (lineMultiple: number) => void;
348
+ }
349
+ interface UseDocxBordersResult {
350
+ borderContext: DocxBorderContext;
351
+ activeBorderPresets: DocxBorderPresetState;
352
+ applyBorderPreset: (preset: DocxBorderPreset) => void;
353
+ }
354
+ interface UseDocxFormFieldsResult {
355
+ formFields: DocxSelectedFormField[];
356
+ selectedFormField?: DocxSelectedFormField;
357
+ selectFormField: (location?: DocxFormFieldLocation) => void;
358
+ setFormFieldValue: (location: DocxFormFieldLocation, value: string) => void;
359
+ toggleFormCheckbox: (location: DocxFormFieldLocation) => void;
360
+ updateFormFieldWidget: (location: DocxFormFieldLocation, patch: Partial<NonNullable<FormFieldRunNode["widget"]>>) => void;
361
+ updateSelectedFormFieldWidget: (patch: Partial<NonNullable<FormFieldRunNode["widget"]>>) => void;
362
+ }
363
+ interface UseDocxTrackChangesResult {
364
+ trackedChanges: DocxTrackedChange[];
365
+ showTrackedChanges: boolean;
366
+ setShowTrackedChanges: (showTrackedChanges: boolean) => void;
367
+ toggleShowTrackedChanges: () => void;
368
+ changesByLocation: Map<string, DocxTrackedChange[]>;
369
+ getChangesForLocation: (location: DocxTextRangeLocation) => DocxTrackedChange[];
370
+ }
371
+ interface DocxSectionColumnLayout {
372
+ count: number;
373
+ gapPx: number;
374
+ }
375
+ interface DocxPageLayoutInfo {
376
+ pageWidthPx: number;
377
+ pageHeightPx: number;
378
+ contentWidthPx: number;
379
+ contentHeightPx: number;
380
+ marginsPx: {
381
+ top: number;
382
+ right: number;
383
+ bottom: number;
384
+ left: number;
385
+ };
386
+ headerDistancePx: number;
387
+ footerDistancePx: number;
388
+ pageNumberStart: number;
389
+ columns?: DocxSectionColumnLayout;
390
+ viewportDefaults: {
391
+ zoomPercent: number;
392
+ pageGapPx: number;
393
+ };
394
+ }
395
+ interface UseDocxPageLayoutResult {
396
+ layout: DocxPageLayoutInfo;
397
+ }
398
+ interface DocxPaginationInfo {
399
+ currentPage: number;
400
+ totalPages: number;
401
+ }
402
+ interface UseDocxPaginationResult {
403
+ pagination: DocxPaginationInfo;
404
+ }
405
+ declare const defaultStarterModel: DocModel;
406
+ declare function useDocxEditor(options?: UseDocxEditorOptions): DocxEditorController;
407
+ declare function useDocxDocumentTheme(editor: Pick<DocxEditorController, "documentTheme" | "setDocumentTheme">): UseDocxDocumentThemeResult;
408
+ declare function useDocxParagraphStyles(editor: Pick<DocxEditorController, "availableParagraphStyles" | "selectedParagraphStyleId" | "setParagraphStyle">): UseDocxParagraphStylesResult;
409
+ declare function useDocxImageWrapMenu(menu: Pick<DocxContextMenuRenderProps, "context" | "runAction">): UseDocxImageWrapMenuResult | undefined;
410
+ declare function useDocxLineSpacing(editor: Pick<DocxEditorController, "selectedLineSpacing" | "setLineSpacing">): UseDocxLineSpacingResult;
411
+ declare function useDocxBorders(editor: Pick<DocxEditorController, "selectedBorderContext" | "activeBorderPresets" | "applyBorderPreset">): UseDocxBordersResult;
412
+ declare function useDocxFormFields(editor: Pick<DocxEditorController, "model" | "selectedFormField" | "selectFormField" | "setFormFieldValue" | "toggleFormCheckbox" | "updateFormFieldWidget">): UseDocxFormFieldsResult;
413
+ declare function useDocxTrackChanges(editor: Pick<DocxEditorController, "trackedChanges" | "showTrackedChanges" | "setShowTrackedChanges" | "toggleShowTrackedChanges">): UseDocxTrackChangesResult;
414
+ declare function useDocxPageLayout(editor: Pick<DocxEditorController, "model">): UseDocxPageLayoutResult;
415
+ declare function useDocxPagination(editor: Pick<DocxEditorController, "currentPage" | "totalPages">): UseDocxPaginationResult;
416
+ declare function DocxEditorViewer({ editor, className, style, pageGapBackgroundColor, deferInitialPaginationPaint, loadingState, pageVirtualization, visiblePageRange, onPageCountChange, onRequestPageReveal, headingStyles, showTrackedChanges, renderTrackedChangeCard, renderTableContextMenu, renderContextMenu, onFormFieldDoubleClick, mode, }: DocxEditorViewerProps): React.JSX.Element;
417
+
418
+ interface ReactDocxViewerProps {
419
+ file?: ArrayBuffer;
420
+ model?: DocModel;
421
+ className?: string;
422
+ layoutOptions?: LayoutOptions;
423
+ emptyState?: React.ReactNode;
424
+ }
425
+ interface UseDocxModelState {
426
+ model?: DocModel;
427
+ isLoading: boolean;
428
+ error?: Error;
429
+ }
430
+ declare function useDocxModel(file?: ArrayBuffer): UseDocxModelState;
431
+ declare function ReactDocxViewer({ file, model, className, layoutOptions, emptyState }: ReactDocxViewerProps): React.JSX.Element;
432
+
433
+ export { type DocxBorderContext, type DocxBorderPreset, type DocxBorderPresetState, type DocxContextMenuAction, type DocxContextMenuActionId, type DocxContextMenuContext, type DocxContextMenuRenderProps, type DocxDocumentTheme, type DocxEditorController, type DocxEditorSelection, DocxEditorViewer, type DocxEditorViewerMode, type DocxEditorViewerProps, type DocxFormFieldLocation, type DocxHeadingStyleMap, type DocxImageDropTarget, type DocxImageLocation, type DocxImageWrapMenuOption, type DocxImageWrapMode, type DocxImageWrapState, type DocxLineSpacingInfo, type DocxListType, type DocxPageLayoutInfo, type DocxPaginationInfo, type DocxSectionColumnLayout, type DocxSelectedFormField, type DocxTableContextMenuAction, type DocxTableContextMenuActionId, type DocxTableContextMenuContext, type DocxTableContextMenuRenderProps, type DocxTextRange, type DocxTextRangeLocation, type DocxTrackedChange, type DocxTrackedChangeCardRenderProps, type DocxTrackedChangeKind, ReactDocxViewer, type ReactDocxViewerProps, type UseDocxBordersResult, type UseDocxDocumentThemeResult, type UseDocxEditorOptions, type UseDocxFormFieldsResult, type UseDocxImageWrapMenuResult, type UseDocxLineSpacingResult, type UseDocxModelState, type UseDocxPageLayoutResult, type UseDocxPaginationResult, type UseDocxParagraphStylesResult, type UseDocxTrackChangesResult, defaultStarterModel, paragraphLetterheadFloatSideAtNodeIndex, parseSectionLayout, resolveDocumentLayout, useDocxBorders, useDocxDocumentTheme, useDocxEditor, useDocxFormFields, useDocxImageWrapMenu, useDocxLineSpacing, useDocxModel, useDocxPageLayout, useDocxPagination, useDocxParagraphStyles, useDocxTrackChanges };