@docx-editor.dev/core 2.29.0 → 2.30.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 (99) hide show
  1. package/dist/automation.cjs +1 -1
  2. package/dist/automation.d.ts +18 -13
  3. package/dist/automation.js +1 -1
  4. package/dist/binding.cjs +1 -1
  5. package/dist/binding.d.ts +46 -38
  6. package/dist/binding.js +1 -1
  7. package/dist/{chrome-print-CAs51cpq.d.ts → chrome-print-BM3Js-6X.d.ts} +276 -227
  8. package/dist/{chunk-BCXH4BXB.js → chunk-2PV5L5NJ.js} +3 -3
  9. package/dist/chunk-5OTS2EJ7.js +7 -0
  10. package/dist/chunk-5P4223J4.cjs +27 -0
  11. package/dist/{chunk-MM5QBMTE.cjs → chunk-5RRAZMBU.cjs} +1 -1
  12. package/dist/chunk-5SPITS5F.js +18 -0
  13. package/dist/{chunk-236O4YQW.js → chunk-7ATNKARV.js} +1 -1
  14. package/dist/{chunk-6JPL6ZAS.cjs → chunk-BGCUTKWE.cjs} +5 -5
  15. package/dist/chunk-EBCXSH2W.js +3 -0
  16. package/dist/{chunk-JLVBDYVQ.cjs → chunk-ERECKTIR.cjs} +1 -1
  17. package/dist/{chunk-BY2ACZZ6.cjs → chunk-FLBEJC6X.cjs} +1 -1
  18. package/dist/{chunk-W35WTWAO.cjs → chunk-HYASLE2G.cjs} +1 -1
  19. package/dist/chunk-JC47NRJC.cjs +3 -0
  20. package/dist/{chunk-7WQ7AAHW.cjs → chunk-KJRTNY2Q.cjs} +1 -1
  21. package/dist/chunk-NKPUH3QJ.js +1 -0
  22. package/dist/chunk-PF5NJWS3.js +2 -0
  23. package/dist/chunk-PWTRJSES.cjs +18 -0
  24. package/dist/chunk-QFKGI242.cjs +30 -0
  25. package/dist/{chunk-G4HOFIKJ.js → chunk-RJCQGJR7.js} +1 -1
  26. package/dist/chunk-RPPV4S6T.cjs +4 -0
  27. package/dist/{chunk-LSZ6KPKK.js → chunk-T32MGBJS.js} +1 -1
  28. package/dist/chunk-UM26GH5B.js +30 -0
  29. package/dist/chunk-VRCZBFLH.js +27 -0
  30. package/dist/{chunk-UHHYFIDT.cjs → chunk-WF7JZ755.cjs} +1 -1
  31. package/dist/chunk-WK5X2MMA.cjs +7 -0
  32. package/dist/{chunk-RCLZXP3B.js → chunk-WPDD2Y32.js} +1 -1
  33. package/dist/chunk-YBMWBXST.cjs +2 -0
  34. package/dist/{chunk-OMCG63ZF.js → chunk-YZGUBCHP.js} +1 -1
  35. package/dist/chunk-ZOS2PM4A.js +4 -0
  36. package/dist/collaboration/replication.cjs +1 -1
  37. package/dist/collaboration/replication.d.ts +4 -4
  38. package/dist/collaboration/replication.js +1 -1
  39. package/dist/collaboration.d.ts +3 -3
  40. package/dist/contracts/document.d.ts +2 -2
  41. package/dist/contracts/editor.d.ts +8 -8
  42. package/dist/contracts/modules.d.ts +11 -11
  43. package/dist/contracts/types.d.ts +1 -1
  44. package/dist/{custom-node-writes-Bn6uciLb.d.ts → custom-node-writes-0v0Kgw1T.d.ts} +2 -2
  45. package/dist/{diagnostic-context-B8M79cfK.d.ts → diagnostic-context-CcAO4q1s.d.ts} +1 -1
  46. package/dist/{diagnostic-hints-BeVjfNOv.d.ts → diagnostic-hints-2Bke6H_w.d.ts} +11 -4
  47. package/dist/{document-protection-CUb55pl_.d.ts → document-protection-8eyMWIJ0.d.ts} +1 -1
  48. package/dist/{editor-CZQZmTIU.d.ts → editor-DaEJd2so.d.ts} +84 -10
  49. package/dist/editor.cjs +1 -1
  50. package/dist/editor.d.ts +31 -30
  51. package/dist/editor.js +1 -1
  52. package/dist/export.cjs +2 -2
  53. package/dist/export.d.ts +16 -13
  54. package/dist/export.js +2 -2
  55. package/dist/{font-resolver-lSBLirLR.d.ts → font-resolver-CL9BVKZo.d.ts} +1 -1
  56. package/dist/font-shaping-policy-BvpkrfxM.d.ts +7 -0
  57. package/dist/{headless-document-view-pp3q7wIh.d.ts → headless-document-view-DZQN8Bnx.d.ts} +2 -2
  58. package/dist/{image-resources-tXLQShoC.d.ts → image-resources-Bipz8toD.d.ts} +1 -1
  59. package/dist/index.cjs +1 -1
  60. package/dist/index.d.ts +24 -23
  61. package/dist/index.js +1 -1
  62. package/dist/{layout-shaping-BD-dF_rn.d.ts → layout-shaping-cEnVrhWg.d.ts} +3 -2
  63. package/dist/layout.cjs +1 -1
  64. package/dist/layout.d.ts +41 -38
  65. package/dist/layout.js +1 -1
  66. package/dist/{note-properties-qQUjO1GQ.d.ts → note-properties-9FH8zAeG.d.ts} +1 -1
  67. package/dist/{omml-equation-BUbU0utM.d.ts → omml-equation-DP2WpUbK.d.ts} +13 -1
  68. package/dist/output.cjs +1 -1
  69. package/dist/output.d.ts +7 -7
  70. package/dist/output.js +1 -1
  71. package/dist/{protocol-DYzzz2ej.d.ts → protocol-CZ1uUlPO.d.ts} +2 -2
  72. package/dist/{review-paragraph-order-CN_0l2Cb.d.ts → review-paragraph-order-CqVelc5A.d.ts} +1 -1
  73. package/dist/{semantic-cell-selection-eYag3P47.d.ts → semantic-cell-selection-Dr9yxFZt.d.ts} +2 -2
  74. package/dist/{semantic-interaction-kR_QB845.d.ts → semantic-interaction-Dc3pf3hr.d.ts} +1 -1
  75. package/dist/{semantic-paint-ZayFF3tD.d.ts → semantic-paint-Bz3FBAoH.d.ts} +3 -3
  76. package/dist/{semantic-record-queries-Bsgth6lv.d.ts → semantic-record-queries-Bx0pl6kL.d.ts} +1 -1
  77. package/dist/{semantic-records-DQmumPgL.d.ts → semantic-records-CjcF26ZL.d.ts} +86 -61
  78. package/dist/store.cjs +1 -1
  79. package/dist/store.d.ts +17 -130
  80. package/dist/store.js +1 -1
  81. package/dist/{tree-package-store-CovjNARF.d.ts → tree-package-store-DKhdEVym.d.ts} +158 -4
  82. package/dist/{tree-session-contract-CZVAGl51.d.ts → tree-session-contract-CwnTEVLF.d.ts} +7 -5
  83. package/dist/{types-barrel-DuC5QBNC.d.ts → types-barrel-CA0xB8kH.d.ts} +2 -2
  84. package/package.json +2 -2
  85. package/dist/chunk-6ZQP4HQ7.js +0 -3
  86. package/dist/chunk-CAJEXXVG.cjs +0 -4
  87. package/dist/chunk-CPWLFPWC.js +0 -30
  88. package/dist/chunk-D7ZMDMPX.cjs +0 -3
  89. package/dist/chunk-DOHF6FA7.cjs +0 -30
  90. package/dist/chunk-DVX32P2P.js +0 -27
  91. package/dist/chunk-E4LOMDNL.js +0 -1
  92. package/dist/chunk-EKLM7NWB.cjs +0 -7
  93. package/dist/chunk-G3K63G7P.cjs +0 -27
  94. package/dist/chunk-LQX36Z5P.js +0 -7
  95. package/dist/chunk-OSFOJTHU.cjs +0 -18
  96. package/dist/chunk-T6K2QYNZ.cjs +0 -2
  97. package/dist/chunk-TRGAVV2Y.js +0 -4
  98. package/dist/chunk-U4JZVSOE.js +0 -2
  99. package/dist/chunk-YQ5G6LC7.js +0 -18
@@ -1,18 +1,19 @@
1
- import { c as FontConfigurationFragment, g as FontResolver, M as MarkedFontResolver, f as FontResolutionRequest } from './font-resolver-lSBLirLR.js';
2
- import { p as DocumentSource, P as FontConfiguration, aK as ZoomMode, y as EditorFontError, s as Editor, R as ReviewPaneOptions, b as EditorCommand, C as CanResult, at as SelectedImageState, X as FormatPainterSurfaceState, ar as ScrollPlacement, aI as TrackedChangePredicate, aH as TrackedChangeFilterMode, Q as FontFaceRequest, T as FontSource, a6 as ImageContext, av as TableBorderEdgeTarget, aw as TableBorderSpec, ax as TableBorderStyle, aC as TableContext } from './editor-CZQZmTIU.js';
1
+ import { c as FontConfigurationFragment, g as FontResolver, M as MarkedFontResolver, f as FontResolutionRequest } from './font-resolver-CL9BVKZo.js';
2
+ import { q as DocumentSource, Q as FontConfiguration, aN as ZoomMode, z as EditorFontError, t as Editor, R as ReviewPaneOptions, b as EditorCommand, C as CanResult, au as SelectedImageState, Y as FormatPainterSurfaceState, as as ScrollPlacement, aL as TrackedChangePredicate, aK as TrackedChangeFilterMode, S as FontFaceRequest, U as FontSource, a7 as ImageContext, ay as TableBorderEdgeTarget, az as TableBorderSpec, aA as TableBorderStyle, aF as TableContext } from './editor-DaEJd2so.js';
3
3
  import { V as ViewScope, a as EditorExecOptions } from './editor-scope-7o9xweiJ.js';
4
- import { ag as TreeDocOp, aS as TextFormFieldRange, aT as TextFormFieldOptions, ae as Unsubscribe, E as ExecResult, _ as DrawingPositionInput, aP as DrawingTransform, A as ParagraphTabStop, y as IndentFormatting, z as ParagraphFlags, a4 as ParagraphDisagreements, ay as DrawingTreeDocOp, ab as SelectionPin, Q as OoxmlPackage, g as ReviewRevisionKind, a1 as ImageWrapTarget } from './types-barrel-DuC5QBNC.js';
5
- import { c as ImageDecodePort, S as SupportedImageMime } from './image-resources-tXLQShoC.js';
6
- import { t as RevisionMarkupOptions, a as ReviewDisplayMode, z as RevisionMarkupChromeHandlers, S as SemanticLayout, T as TextMeasurer, C as ContentControlBoundaryRecord, q as ResolvedRevisionMarkup, O as SectionProperties } from './semantic-records-DQmumPgL.js';
7
- import { F as FieldResultsMode, I as InsertImageInput, S as StoryScope, A as ApplyImagePropertiesInput, i as ImageIntentResult } from './tree-package-store-CovjNARF.js';
8
- import { EditorModule, ReviewModuleContribution } from './contracts/modules.js';
9
- import { EditorCollaborationSession, CollaborationRemoteSelection, CollaborationModuleContribution } from './collaboration.js';
10
- import { d as RevisionStyles, R as ReviewAuthorInfo, c as RevisionAuthorStyle, F as FieldShadingMode, f as DrawingPaintStrings } from './semantic-paint-ZayFF3tD.js';
11
- import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties, A as AuthoredNoteProperties } from './note-properties-qQUjO1GQ.js';
12
- import { B as BookmarkIndex } from './custom-node-writes-Bn6uciLb.js';
13
- import { S as SemanticPosition, a as SemanticSelection, N as NavigationCommand } from './semantic-interaction-kR_QB845.js';
14
- import { C as CellSelection } from './semantic-cell-selection-eYag3P47.js';
15
- import { T as TreeDocxSessionView, a as TreeApplyResult } from './tree-session-contract-CZVAGl51.js';
4
+ import { ag as TreeDocOp, aN as TextFormFieldRange, aO as TextFormFieldOptions, ae as Unsubscribe, E as ExecResult, _ as DrawingPositionInput, aP as DrawingTransform, A as ParagraphTabStop, y as IndentFormatting, z as ParagraphFlags, a4 as ParagraphDisagreements, az as DrawingTreeDocOp, ab as SelectionPin, Q as OoxmlPackage, g as ReviewRevisionKind, a1 as ImageWrapTarget } from './types-barrel-CA0xB8kH.js';
5
+ import { c as ImageDecodePort, S as SupportedImageMime } from './image-resources-Bipz8toD.js';
6
+ import { T as TextMeasurer, a as ReviewDisplayMode, q as ResolvedRevisionMarkup, t as RevisionMarkupOptions, z as RevisionMarkupChromeHandlers, S as SemanticLayout, C as ContentControlBoundaryRecord, O as SectionProperties } from './semantic-records-CjcF26ZL.js';
7
+ import { F as FieldResultsMode, C as ContentLockPolicy, I as InsertImageInput, S as StoryScope, A as ApplyImagePropertiesInput, i as ImageIntentResult } from './tree-package-store-DKhdEVym.js';
8
+ import { F as FontShapingOptions } from './font-shaping-policy-BvpkrfxM.js';
9
+ import { F as FieldShadingMode, d as RevisionStyles, f as DrawingPaintStrings, R as ReviewAuthorInfo, c as RevisionAuthorStyle } from './semantic-paint-Bz3FBAoH.js';
10
+ import { ReviewModuleContribution, EditorModule } from './contracts/modules.js';
11
+ import { S as SemanticPosition, a as SemanticSelection, N as NavigationCommand } from './semantic-interaction-Dc3pf3hr.js';
12
+ import { CollaborationModuleContribution, EditorCollaborationSession, CollaborationRemoteSelection } from './collaboration.js';
13
+ import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties, A as AuthoredNoteProperties } from './note-properties-9FH8zAeG.js';
14
+ import { B as BookmarkIndex } from './custom-node-writes-0v0Kgw1T.js';
15
+ import { C as CellSelection } from './semantic-cell-selection-Dr9yxFZt.js';
16
+ import { T as TreeDocxSessionView, a as TreeApplyResult } from './tree-session-contract-CwnTEVLF.js';
16
17
  import { C as CollaborationStatus } from './failure-NS2lsya4.js';
17
18
 
18
19
  /**
@@ -136,29 +137,47 @@ interface TextFormFieldChromeHandlers {
136
137
  readonly onRequest?: (session: TextFormFieldDialogSession) => void;
137
138
  }
138
139
 
139
- /**
140
- * Receives the element that shows the loading indicator on the first page, while a large
141
- * document lays out its remaining pages.
142
- *
143
- * @example
144
- * ```ts
145
- * editor.setOpeningIndicatorHost({
146
- * publish(element) {
147
- * // Render your indicator into `element`, or remove it when `element` is null.
148
- * },
149
- * });
150
- * ```
151
- *
152
- * @public
153
- */
154
- interface OpeningIndicatorHost {
155
- /**
156
- * Called with the indicator element when the first pages show, and with `null` when the
157
- * remaining pages are laid out or the open is abandoned. The element is empty while a host
158
- * is set: render the host's content into it. It is centered on the first page, at most 30%
159
- * of the window height below the page top, and scrolls with the document.
160
- */
161
- publish(element: HTMLElement | null): void;
140
+ /** One addressable inline equation and its compact editable projection. */
141
+ interface SurfaceEquation {
142
+ readonly id: string;
143
+ readonly paragraphId: string;
144
+ readonly start: number;
145
+ readonly end: number;
146
+ readonly linear: string;
147
+ readonly fallbackText: string;
148
+ /** True when every source construct belongs to the editable subset. */
149
+ readonly supported: boolean;
150
+ }
151
+ /** A user click on one painted equation. */
152
+ interface EquationActivation {
153
+ readonly equation: SurfaceEquation;
154
+ readonly rect: {
155
+ readonly left: number;
156
+ readonly top: number;
157
+ readonly right: number;
158
+ readonly bottom: number;
159
+ };
160
+ }
161
+ /** Boundary-inclusive lookup, matching the hyperlink and field atom popovers. */
162
+ declare function equationAtPosition(equations: readonly SurfaceEquation[], position: SemanticPosition): SurfaceEquation | null;
163
+ type EquationAction = 'replace' | 'remove';
164
+ /** Engine-owned capability result for equation editing chrome. */
165
+ type EquationCanResult = {
166
+ readonly ok: true;
167
+ } | {
168
+ readonly ok: false;
169
+ readonly code: 'locked' | 'notFound' | 'unsupported';
170
+ readonly reason: string;
171
+ };
172
+ /** Surface equation reads and atomic replace/remove writes. */
173
+ interface EquationOps {
174
+ equationsInCaretParagraph(): SurfaceEquation[];
175
+ equationAtCaret(): SurfaceEquation | null;
176
+ equationById(equationId: string): SurfaceEquation | null;
177
+ /** Whether equation chrome can run an action, with the engine-owned refusal reason. */
178
+ can(equationId: string, action: EquationAction): EquationCanResult;
179
+ applyEquation(equationId: string, linear: string): boolean;
180
+ removeEquation(equationId: string): boolean;
162
181
  }
163
182
 
164
183
  /**
@@ -257,47 +276,210 @@ interface SurfaceNavigation {
257
276
  destroy(): void;
258
277
  }
259
278
 
260
- /** One addressable inline equation and its compact editable projection. */
261
- interface SurfaceEquation {
262
- readonly id: string;
263
- readonly paragraphId: string;
264
- readonly start: number;
265
- readonly end: number;
266
- readonly linear: string;
267
- readonly fallbackText: string;
268
- /** True when every source construct belongs to the editable subset. */
269
- readonly supported: boolean;
270
- }
271
- /** A user click on one painted equation. */
272
- interface EquationActivation {
273
- readonly equation: SurfaceEquation;
274
- readonly rect: {
275
- readonly left: number;
276
- readonly top: number;
277
- readonly right: number;
278
- readonly bottom: number;
279
+ /**
280
+ * How the caret moves through an inline content control whose effective lock is
281
+ * `contentLocked` or `sdtContentLocked`.
282
+ *
283
+ * - `'characters'` (the default) — the caret walks through the control's characters, as in Word.
284
+ * - `'atomic'` — the control is one caret unit, as a `w:showingPlcHdr` prompt already is. Arrows
285
+ * step over it, Shift+arrows select it whole, and a press or double click inside it selects it
286
+ * whole. A press on its edge still places a caret beside it.
287
+ *
288
+ * It applies in the body, headers and footers; notes and text boxes publish no control
289
+ * boundaries, so they keep character navigation.
290
+ *
291
+ * Navigation only: what a lock refuses does not change. The rule covers keyboard motions and
292
+ * the engine's own pointer gestures. A selection set in code (`setSelection`, find) is kept as
293
+ * given, and `pointer: 'native'` leaves caret placement to the browser.
294
+ *
295
+ * @public
296
+ */
297
+ type LockedControlNavigation = 'characters' | 'atomic';
298
+ /**
299
+ * How a paginated surface opens. Every field is optional.
300
+ *
301
+ * `measurer` is the injection seam that keeps layout DOM-free — supply one to lay a document out
302
+ * on a server, or leave it off in a browser to get the canvas measurer.
303
+ */
304
+ interface PaginatedSurfaceOptions {
305
+ /** UI labels for shared form controls; omitted keys fall back to English. */
306
+ readonly translate?: (key: string, params?: Record<string, string | number>) => string;
307
+ /** Regional conventions for new date input; defaults to en-US. */
308
+ readonly locale?: string;
309
+ /**
310
+ * The collaboration module's replica for this surface's session. Absent,
311
+ * the surface does not attach, and local store history remains the undo
312
+ * authority.
313
+ */
314
+ readonly collaborationModel?: CollaborationModuleContribution;
315
+ /**
316
+ * How saved field results are edited. `atomic` (the default) keeps every field one unit.
317
+ * `editable` lets the reader type, delete, and select inside the saved result of a DATE,
318
+ * MERGEFIELD, HYPERLINK, or similar field. Results must be unnested; simple fields inside
319
+ * complex field results are not supported. Refused with a {@link collaborationModel}.
320
+ */
321
+ readonly fieldResults?: FieldResultsMode;
322
+ readonly measurer?: TextMeasurer;
323
+ /** Ambient author for tracked edits. Required before suggesting can write anything. */
324
+ readonly author?: string;
325
+ /** Opening mode; changeable at runtime with `setEditingMode`. */
326
+ readonly editingMode?: SurfaceEditingMode;
327
+ /**
328
+ * Identifies the measurer for cache invalidation.
329
+ *
330
+ * Fonts resolve asynchronously, so a host that swaps its measurer must change this or the
331
+ * cached pre-font layout is served for the rest of the session.
332
+ */
333
+ readonly producer?: string;
334
+ /**
335
+ * Maps a document-declared font family to the alias its registered bytes live under, so
336
+ * painted runs can use embedded glyphs without the file's family name entering the
337
+ * page-global CSS font namespace.
338
+ */
339
+ readonly fontAlias?: (family: string) => string | undefined;
340
+ /** Points to CSS pixels. */
341
+ readonly scale?: number;
342
+ /**
343
+ * How revisions project into layout and paint. Omitted keeps the layout default
344
+ * (`all-markup`). The editor facade passes `proposed` when no review module is
345
+ * registered — the free tier's final-state rendering; the machinery below this
346
+ * option is shared either way.
347
+ */
348
+ readonly revisionDisplayMode?: ReviewDisplayMode;
349
+ /** Authors whose changes open in their accepted view-time projection. */
350
+ readonly hiddenRevisionAuthors?: readonly string[];
351
+ /**
352
+ * When a field's result wears Word's grey shading. Omitted keeps Word's own default,
353
+ * `when-selected`.
354
+ *
355
+ * Applies to ORDINARY fields only. Legacy form fields follow the document's
356
+ * `w:doNotShadeFormData`, because a form's blanks are the document's own statement about
357
+ * itself rather than a reader's preference.
358
+ *
359
+ * A paint-level option, not a layout one: it changes no geometry, so switching it repaints
360
+ * without remeasuring a single line.
361
+ */
362
+ readonly fieldShading?: FieldShadingMode;
363
+ /** Show paragraph-end furniture without changing document content. */
364
+ readonly showParagraphMarks?: boolean;
365
+ readonly onToggleParagraphMarks?: () => void;
366
+ /**
367
+ * How tracked changes are coloured: by AUTHOR (the default), by kind, or by author with
368
+ * host-pinned colours. A paint-level option like {@link fieldShading}: it changes no
369
+ * geometry, so switching it repaints without remeasuring a line. Applies wherever
370
+ * revision markup paints, whatever the {@link revisionDisplayMode} leaves visible.
371
+ */
372
+ readonly revisionStyles?: RevisionStyles;
373
+ readonly revisionMarkup?: ResolvedRevisionMarkup;
374
+ /**
375
+ * The review module's derivation hooks for this surface's session. Absent,
376
+ * `session.reviewItems()` is the typed empty queue and every review affordance
377
+ * built on it stays inert.
378
+ */
379
+ readonly reviewModel?: ReviewModuleContribution;
380
+ /**
381
+ * Opt-in relaxation of `w:lock` for run-property writes: `contentLocked` / `sdtContentLocked`
382
+ * controls can be restyled (toolbar, shortcuts, automation `setFont`) but not retyped.
383
+ * Absent, they refuse both, as ECMA-376 / Word do.
384
+ */
385
+ readonly contentLockPolicy?: ContentLockPolicy;
386
+ /**
387
+ * The family a run with no authored font is reported as by `formatting()` AND painted
388
+ * in — the face the measurer falls back to. Absent, such a run reports
389
+ * `fontFamily: null` and paints in whatever font the page inherits, which the measurer
390
+ * did not measure: visible glyphs drift from wrap points and caret geometry.
391
+ */
392
+ readonly defaultFontFamily?: string;
393
+ /**
394
+ * Who resolves a pointer to a caret.
395
+ *
396
+ * `'engine'` (the default) answers from the layout records, which is what makes a click in
397
+ * a margin, an indent or a cell's padding land where it was aimed. `'native'` binds no
398
+ * pointer handlers and leaves the browser's own caret placement in charge.
399
+ */
400
+ readonly pointer?: 'engine' | 'native';
401
+ /** How the caret moves through a content-locked inline control; see `LockedControlNavigation`. */
402
+ readonly lockedControlNavigation?: LockedControlNavigation;
403
+ readonly onChange?: (state: PaginatedSurfaceState) => void;
404
+ /**
405
+ * Told each time an edit is refused, with the raw reason: a store code such as `'locked'`,
406
+ * or the surface's own refusal sentence. The raw reason can be a sentence, so a listener
407
+ * maps it to a public code before it reports anything.
408
+ */
409
+ readonly onRejection?: (reason: string) => void;
410
+ /**
411
+ * Told the milliseconds of each layout pass and each paint. For `'input'`, told the browser
412
+ * timestamp of each key press or pointer press on the pages, so a listener can time it to
413
+ * the next frame. Numbers only.
414
+ */
415
+ readonly onTiming?: (phase: 'layout' | 'paint' | 'input', value: number) => void;
416
+ /**
417
+ * Told once for each local edit that changed the document, with `typing` true for buffered
418
+ * typing, which can land inside a later command's commit. Remote edits are not local.
419
+ */
420
+ readonly onEdit?: (typing: boolean) => void;
421
+ /**
422
+ * A plain click on an external (or inert) hyperlink, for a host to open its popover with.
423
+ *
424
+ * Absent means such a click does nothing. That is deliberate: a host with no popover
425
+ * mounted must not have clicks silently opening tabs, and the popover is the only path to
426
+ * activation (see the navigation module's single `window.open` gate).
427
+ */
428
+ readonly onHyperlinkPopover?: (activation: HyperlinkActivation) => void;
429
+ readonly onEquationPopover?: (activation: EquationActivation) => void;
430
+ /**
431
+ * Ctrl/Cmd+K — Word's Insert Hyperlink. The engine reports the request; the host's chrome
432
+ * decides what a link dialog looks like. A host that passes nothing leaves the key alone
433
+ * rather than doing something surprising with it.
434
+ */
435
+ readonly onRequestHyperlink?: () => void;
436
+ /** Return true when host chrome handles this session. */
437
+ readonly onRequestTextFormField?: (session: TextFormFieldDialogSession) => boolean;
438
+ readonly onRequestContentControlWidget?: (session: ContentControlWidgetSession) => boolean;
439
+ readonly onRequestInvalidTextFormField?: (session: InvalidTextFormFieldSession) => boolean;
440
+ /**
441
+ * Localized accessible names for core-owned table insertion furniture.
442
+ * Defaults to English from `@docx-editor.dev/i18n` when omitted.
443
+ */
444
+ readonly tableInteractionLabel?: (key: 'table.insertRowBelow' | 'table.insertColumnRight') => string;
445
+ /** Localized drawing refusal labels; defaults to English when omitted. */
446
+ readonly drawingStrings?: DrawingPaintStrings;
447
+ /** Override raster decode for package image intents; defaults to browser/headless. */
448
+ readonly imageDecodePort?: ImageDecodePort;
449
+ /**
450
+ * Localized name for a generated TOC, written as the control's `w:alias` on insert.
451
+ *
452
+ * The update ACTIONS are not here: they are rows in the host's context menu, which owns
453
+ * its own labels. The engine paints no menu of its own.
454
+ */
455
+ readonly tocLabels?: {
456
+ readonly title: string;
279
457
  };
280
458
  }
281
- /** Boundary-inclusive lookup, matching the hyperlink and field atom popovers. */
282
- declare function equationAtPosition(equations: readonly SurfaceEquation[], position: SemanticPosition): SurfaceEquation | null;
283
- type EquationAction = 'replace' | 'remove';
284
- /** Engine-owned capability result for equation editing chrome. */
285
- type EquationCanResult = {
286
- readonly ok: true;
287
- } | {
288
- readonly ok: false;
289
- readonly code: 'locked' | 'notFound' | 'unsupported';
290
- readonly reason: string;
291
- };
292
- /** Surface equation reads and atomic replace/remove writes. */
293
- interface EquationOps {
294
- equationsInCaretParagraph(): SurfaceEquation[];
295
- equationAtCaret(): SurfaceEquation | null;
296
- equationById(equationId: string): SurfaceEquation | null;
297
- /** Whether equation chrome can run an action, with the engine-owned refusal reason. */
298
- can(equationId: string, action: EquationAction): EquationCanResult;
299
- applyEquation(equationId: string, linear: string): boolean;
300
- removeEquation(equationId: string): boolean;
459
+
460
+ /**
461
+ * Receives the element that shows the loading indicator on the first page, while a large
462
+ * document lays out its remaining pages.
463
+ *
464
+ * @example
465
+ * ```ts
466
+ * editor.setOpeningIndicatorHost({
467
+ * publish(element) {
468
+ * // Render your indicator into `element`, or remove it when `element` is null.
469
+ * },
470
+ * });
471
+ * ```
472
+ *
473
+ * @public
474
+ */
475
+ interface OpeningIndicatorHost {
476
+ /**
477
+ * Called with the indicator element when the first pages show, and with `null` when the
478
+ * remaining pages are laid out or the open is abandoned. The element is empty while a host
479
+ * is set: render the host's content into it. It is centered on the first page, at most 30%
480
+ * of the window height below the page top, and scrolls with the document.
481
+ */
482
+ publish(element: HTMLElement | null): void;
301
483
  }
302
484
 
303
485
  /**
@@ -342,6 +524,8 @@ interface DocxEditorConfig {
342
524
  * requests — the engine never supplies one, so that stays your call.
343
525
  */
344
526
  fonts?: FontConfiguration | FontConfigurationFragment | FontResolver;
527
+ /** Explicit shaping execution limits. Omitted, the per-face byte ceiling remains 16 MiB. */
528
+ fontShaping?: FontShapingOptions;
345
529
  author?: string;
346
530
  /** BCP-47 locale for regional date input and generated labels; defaults to en-US. */
347
531
  locale?: string;
@@ -354,6 +538,14 @@ interface DocxEditorConfig {
354
538
  * reason. See {@link EditorModule}.
355
539
  */
356
540
  modules?: readonly EditorModule[];
541
+ /**
542
+ * Opt-in relaxation of content-control `w:lock`: with `allowFormattingInLockedContent`,
543
+ * `contentLocked` / `sdtContentLocked` controls refuse typing, pasting and deleting their
544
+ * text as always, but accept run formatting (toolbar, shortcuts, automation `setFont`) —
545
+ * for hosts that protect WHAT a control says and let authors style it. Default: Word's
546
+ * behaviour, where a content lock refuses every edit including formatting.
547
+ */
548
+ contentLockPolicy?: ContentLockPolicy;
357
549
  /**
358
550
  * The mode the editor opens in — one prop, matching the toolbar's three-state pill.
359
551
  *
@@ -410,6 +602,12 @@ interface DocxEditorConfig {
410
602
  * shared paragraph text keeps every field one unit.
411
603
  */
412
604
  fieldResults?: FieldResultsMode;
605
+ /**
606
+ * How the caret moves through an inline control with a content lock. `'atomic'` makes such a
607
+ * control one caret unit; `'characters'` (the default) walks through its characters, as Word
608
+ * does. Fixed for the instance.
609
+ */
610
+ lockedControlNavigation?: LockedControlNavigation;
413
611
  /** Override raster decode for insert/replace image commands; defaults to browser/headless. */
414
612
  imageDecodePort?: ImageDecodePort;
415
613
  /**
@@ -1290,155 +1488,6 @@ interface RemoteCaretLabelHost {
1290
1488
  publish(anchors: readonly RemoteCaretLabelAnchor[]): void;
1291
1489
  }
1292
1490
 
1293
- /**
1294
- * How a paginated surface opens. Every field is optional.
1295
- *
1296
- * `measurer` is the injection seam that keeps layout DOM-free — supply one to lay a document out
1297
- * on a server, or leave it off in a browser to get the canvas measurer.
1298
- */
1299
- interface PaginatedSurfaceOptions {
1300
- /** UI labels for shared form controls; omitted keys fall back to English. */
1301
- readonly translate?: (key: string, params?: Record<string, string | number>) => string;
1302
- /** Regional conventions for new date input; defaults to en-US. */
1303
- readonly locale?: string;
1304
- /**
1305
- * The collaboration module's replica for this surface's session. Absent,
1306
- * the surface does not attach, and local store history remains the undo
1307
- * authority.
1308
- */
1309
- readonly collaborationModel?: CollaborationModuleContribution;
1310
- /**
1311
- * How saved field results are edited. `atomic` (the default) keeps every field one unit.
1312
- * `editable` lets the reader type, delete, and select inside the saved result of a DATE,
1313
- * MERGEFIELD, HYPERLINK, or similar field. Results must be unnested; simple fields inside
1314
- * complex field results are not supported. Refused with a {@link collaborationModel}.
1315
- */
1316
- readonly fieldResults?: FieldResultsMode;
1317
- readonly measurer?: TextMeasurer;
1318
- /** Ambient author for tracked edits. Required before suggesting can write anything. */
1319
- readonly author?: string;
1320
- /** Opening mode; changeable at runtime with `setEditingMode`. */
1321
- readonly editingMode?: SurfaceEditingMode;
1322
- /**
1323
- * Identifies the measurer for cache invalidation.
1324
- *
1325
- * Fonts resolve asynchronously, so a host that swaps its measurer must change this or the
1326
- * cached pre-font layout is served for the rest of the session.
1327
- */
1328
- readonly producer?: string;
1329
- /**
1330
- * Maps a document-declared font family to the alias its registered bytes live under, so
1331
- * painted runs can use embedded glyphs without the file's family name entering the
1332
- * page-global CSS font namespace.
1333
- */
1334
- readonly fontAlias?: (family: string) => string | undefined;
1335
- /** Points to CSS pixels. */
1336
- readonly scale?: number;
1337
- /**
1338
- * How revisions project into layout and paint. Omitted keeps the layout default
1339
- * (`all-markup`). The editor facade passes `proposed` when no review module is
1340
- * registered — the free tier's final-state rendering; the machinery below this
1341
- * option is shared either way.
1342
- */
1343
- readonly revisionDisplayMode?: ReviewDisplayMode;
1344
- /** Authors whose changes open in their accepted view-time projection. */
1345
- readonly hiddenRevisionAuthors?: readonly string[];
1346
- /**
1347
- * When a field's result wears Word's grey shading. Omitted keeps Word's own default,
1348
- * `when-selected`.
1349
- *
1350
- * Applies to ORDINARY fields only. Legacy form fields follow the document's
1351
- * `w:doNotShadeFormData`, because a form's blanks are the document's own statement about
1352
- * itself rather than a reader's preference.
1353
- *
1354
- * A paint-level option, not a layout one: it changes no geometry, so switching it repaints
1355
- * without remeasuring a single line.
1356
- */
1357
- readonly fieldShading?: FieldShadingMode;
1358
- /** Show paragraph-end furniture without changing document content. */
1359
- readonly showParagraphMarks?: boolean;
1360
- readonly onToggleParagraphMarks?: () => void;
1361
- /**
1362
- * How tracked changes are coloured: by AUTHOR (the default), by kind, or by author with
1363
- * host-pinned colours. A paint-level option like {@link fieldShading}: it changes no
1364
- * geometry, so switching it repaints without remeasuring a line. Applies wherever
1365
- * revision markup paints, whatever the {@link revisionDisplayMode} leaves visible.
1366
- */
1367
- readonly revisionStyles?: RevisionStyles;
1368
- readonly revisionMarkup?: ResolvedRevisionMarkup;
1369
- /**
1370
- * The review module's derivation hooks for this surface's session. Absent,
1371
- * `session.reviewItems()` is the typed empty queue and every review affordance
1372
- * built on it stays inert.
1373
- */
1374
- readonly reviewModel?: ReviewModuleContribution;
1375
- /**
1376
- * The family a run with no authored font is reported as by `formatting()` AND painted
1377
- * in — the face the measurer falls back to. Absent, such a run reports
1378
- * `fontFamily: null` and paints in whatever font the page inherits, which the measurer
1379
- * did not measure: visible glyphs drift from wrap points and caret geometry.
1380
- */
1381
- readonly defaultFontFamily?: string;
1382
- /**
1383
- * Who resolves a pointer to a caret.
1384
- *
1385
- * `'engine'` (the default) answers from the layout records, which is what makes a click in
1386
- * a margin, an indent or a cell's padding land where it was aimed. `'native'` binds no
1387
- * pointer handlers and leaves the browser's own caret placement in charge.
1388
- */
1389
- readonly pointer?: 'engine' | 'native';
1390
- readonly onChange?: (state: PaginatedSurfaceState) => void;
1391
- /**
1392
- * Told each time an edit is refused, with the raw reason: a store code such as `'locked'`,
1393
- * or the surface's own refusal sentence. The raw reason can be a sentence, so a listener
1394
- * maps it to a public code before it reports anything.
1395
- */
1396
- readonly onRejection?: (reason: string) => void;
1397
- /**
1398
- * Told the milliseconds of each layout pass and each paint. For `'input'`, told the browser
1399
- * timestamp of each key press or pointer press on the pages, so a listener can time it to
1400
- * the next frame. Numbers only.
1401
- */
1402
- readonly onTiming?: (phase: 'layout' | 'paint' | 'input', value: number) => void;
1403
- /**
1404
- * A plain click on an external (or inert) hyperlink, for a host to open its popover with.
1405
- *
1406
- * Absent means such a click does nothing. That is deliberate: a host with no popover
1407
- * mounted must not have clicks silently opening tabs, and the popover is the only path to
1408
- * activation (see the navigation module's single `window.open` gate).
1409
- */
1410
- readonly onHyperlinkPopover?: (activation: HyperlinkActivation) => void;
1411
- readonly onEquationPopover?: (activation: EquationActivation) => void;
1412
- /**
1413
- * Ctrl/Cmd+K — Word's Insert Hyperlink. The engine reports the request; the host's chrome
1414
- * decides what a link dialog looks like. A host that passes nothing leaves the key alone
1415
- * rather than doing something surprising with it.
1416
- */
1417
- readonly onRequestHyperlink?: () => void;
1418
- /** Return true when host chrome handles this session. */
1419
- readonly onRequestTextFormField?: (session: TextFormFieldDialogSession) => boolean;
1420
- readonly onRequestContentControlWidget?: (session: ContentControlWidgetSession) => boolean;
1421
- readonly onRequestInvalidTextFormField?: (session: InvalidTextFormFieldSession) => boolean;
1422
- /**
1423
- * Localized accessible names for core-owned table insertion furniture.
1424
- * Defaults to English from `@docx-editor.dev/i18n` when omitted.
1425
- */
1426
- readonly tableInteractionLabel?: (key: 'table.insertRowBelow' | 'table.insertColumnRight') => string;
1427
- /** Localized drawing refusal labels; defaults to English when omitted. */
1428
- readonly drawingStrings?: DrawingPaintStrings;
1429
- /** Override raster decode for package image intents; defaults to browser/headless. */
1430
- readonly imageDecodePort?: ImageDecodePort;
1431
- /**
1432
- * Localized name for a generated TOC, written as the control's `w:alias` on insert.
1433
- *
1434
- * The update ACTIONS are not here: they are rows in the host's context menu, which owns
1435
- * its own labels. The engine paints no menu of its own.
1436
- */
1437
- readonly tocLabels?: {
1438
- readonly title: string;
1439
- };
1440
- }
1441
-
1442
1491
  /**
1443
1492
  * What the selection is currently formatted as.
1444
1493
  *
@@ -3875,5 +3924,5 @@ interface ChromePrintJob {
3875
3924
  */
3876
3925
  declare function runChromePrint(editor: Pick<Editor, 'save'> & Partial<Pick<Editor, 'snapshot'>>, handlers?: ChromeExportHandlers, container?: Document | Element): Promise<ChromePrintJob>;
3877
3926
 
3878
- export { bindHistoryGroup as A, blankDocumentBytes as B, CHROME_GROUPS as C, chromeMenuSlots as E, commandForSlot as G, commandForSlotValue as I, createDocxEditor as J, createFontSource as K, customFonts as M, isChromePrintShortcut as N, loadFonts as O, runChromeExport as P, runChromePrint as Q, runToolbarCommand as R, toolbarCommandState as U, CHROME_UNAVAILABLE_KEY as _, CHROME_MENUS as a, chromeProbeForSlot as a$, DEFAULT_TABLE_CHROME_DRAFT as a7, EMU_PER_POINT as a9, TABLE_BORDER_STYLE_OPTIONS as aG, TABLE_BORDER_TARGET_OPTIONS as aH, TABLE_BORDER_WIDTH_OPTIONS as aI, TABLE_CHROME_SLOT_IDS as aJ, applyTableChromePick as aX, canExecuteImageCommand as aY, captureImageMutationPreconditions as aZ, chromeControlCount as a_, IMAGE_OVERLAY_NUDGE_PT as ag, IMAGE_OVERLAY_NUDGE_SHIFT_PT as ah, ChromeExportError as b, chromeSlotId as b0, chromeSlotIsToggle as b1, commandExecOptions as b2, commandForTableChromeSlotValue as b3, computeImageResizeResult as b4, computeMovedImagePosition as b5, computeResizedImageExtentEmu as b6, createImageOverlayScrollPort as b7, cssPixelsToLayoutPoints as b8, defaultChromeGroups as b9, defaultTableLabel as ba, emuToOverlayPoints as bb, equationAtPosition as bc, executeImageCommand as bd, finalizeImageOverlayInteraction as be, formattingBarChromeGroups as bf, isStaleImageInteractionCommit as bg, isTableChromeSlot as bh, layoutPointsToCssPixels as bi, overlayFrameToSheetCssPixels as bj, overlayHostOrigin as bk, pointsToEmu as bl, probeTableChromeCommand as bm, resizePreservesAspect as bn, runSave as bo, runTableChromeCommand as bp, runTableCommand as bq, selectedDrawingOverlayTargetOf as br, selectedImageStateOf as bs, surfacePaintScale as bt, tableChromeIconPaths as bu, tableChromeLabelKeyForTarget as bv, tableChromeToolbarState as bw, tableChromeVisible as bx, tableCommandToolbarState as by, toolbarCommandStates as bz, ChromePrintError as l };
3879
- export type { ChromeControl as $, DocxEditorConfig as D, FontLoadFailure as F, HistoryGroupBinding as H, LoadFontsRequest as L, SurfaceHyperlink as S, ToolbarCommandState as T, PaginatedSurfaceOptions as V, OpenPaginatedResult as W, PaginatedSurface as X, TableCommandPlan as Y, AnchorFrameOrigin as Z, ChromeControlId as a0, ChromeControlState as a1, ChromeExportView as a2, ChromeGroup as a3, ChromeGroupId as a4, ContentControlWidgetChromeHandlers as a5, ContentControlWidgetSession as a6, DrawingSelectionIntent as a8, SurfaceEquation as aA, SurfaceFormatting as aB, SurfaceInsertImageInput as aC, SurfaceNavigation as aD, SurfaceOverlayCoordinates as aE, SurfaceParagraphFormat as aF, TableBorderStyleOption as aK, TableBorderTargetOption as aL, TableBorderTargetValue as aM, TableBorderWidthOption as aN, TableChromeDraft as aO, TableChromePick as aP, TableChromeSlotId as aQ, TableInteractionLabelKey as aR, TextFormFieldChromeHandlers as aS, TextFormFieldDialogSession as aT, ToolbarSlotValue as aU, ToolbarValueMap as aV, ToolbarValueSlot as aW, EditorCommandExecute as aa, EquationActivation as ab, EquationChromeHandlers as ac, EquationOps as ad, FinalizedImageOverlayInteraction as ae, HyperlinkOps as af, ImageInteractionSession as ai, ImageOverlayScrollPort as aj, ImageResizeHandle as ak, ImageResizeResult as al, InvalidTextFormFieldChromeHandlers as am, InvalidTextFormFieldSession as an, OpeningIndicatorHost as ao, OverlayFrameRect as ap, PaginatedSurfaceState as aq, ParagraphPropertyEdit as ar, PopupChromeRegistrationOptions as as, RemoteCaretLabelAnchor as at, RemoteCaretLabelHost as au, ReviewWriteIntent as av, RunTableChromeCommandResult as aw, SectionAnchor as ax, SectionBreakInsertType as ay, SelectedDrawingOverlayTarget as az, ChromeExportFormat as c, ChromeExportHandlers as d, ChromeExportResult as e, ChromeMenu as f, ChromeMenuEntry as g, ChromeMenuId as h, ChromeMenuItemEntry as i, ChromeMenuSeparatorEntry as j, ChromeMenuSubmenuEntry as k, ChromePrintErrorCode as m, ChromePrintJob as n, ChromePrintOptions as o, ChromeSlotId as p, CustomFontsOptions as q, CustomFontsResolver as r, DocxEditorInstance as s, FontLoadFailureReason as t, FontMeasurementState as u, FontUrlSource as v, HistoryGroupBindingOptions as w, HyperlinkActivation as x, HyperlinkChromeHandlers as y, LoadFontsResult as z };
3927
+ export { CHROME_UNAVAILABLE_KEY as $, bindHistoryGroup as B, CHROME_GROUPS as C, blankDocumentBytes as E, chromeMenuSlots as G, commandForSlot as I, commandForSlotValue as J, createDocxEditor as K, createFontSource as M, customFonts as N, isChromePrintShortcut as O, loadFonts as P, runChromeExport as Q, runChromePrint as R, runToolbarCommand as U, toolbarCommandState as V, CHROME_MENUS as a, chromeControlCount as a$, DEFAULT_TABLE_CHROME_DRAFT as a8, TABLE_BORDER_STYLE_OPTIONS as aH, TABLE_BORDER_TARGET_OPTIONS as aI, TABLE_BORDER_WIDTH_OPTIONS as aJ, TABLE_CHROME_SLOT_IDS as aK, applyTableChromePick as aY, canExecuteImageCommand as aZ, captureImageMutationPreconditions as a_, EMU_PER_POINT as aa, IMAGE_OVERLAY_NUDGE_PT as ah, IMAGE_OVERLAY_NUDGE_SHIFT_PT as ai, ChromeExportError as b, chromeProbeForSlot as b0, chromeSlotId as b1, chromeSlotIsToggle as b2, commandExecOptions as b3, commandForTableChromeSlotValue as b4, computeImageResizeResult as b5, computeMovedImagePosition as b6, computeResizedImageExtentEmu as b7, createImageOverlayScrollPort as b8, cssPixelsToLayoutPoints as b9, toolbarCommandStates as bA, defaultChromeGroups as ba, defaultTableLabel as bb, emuToOverlayPoints as bc, equationAtPosition as bd, executeImageCommand as be, finalizeImageOverlayInteraction as bf, formattingBarChromeGroups as bg, isStaleImageInteractionCommit as bh, isTableChromeSlot as bi, layoutPointsToCssPixels as bj, overlayFrameToSheetCssPixels as bk, overlayHostOrigin as bl, pointsToEmu as bm, probeTableChromeCommand as bn, resizePreservesAspect as bo, runSave as bp, runTableChromeCommand as bq, runTableCommand as br, selectedDrawingOverlayTargetOf as bs, selectedImageStateOf as bt, surfacePaintScale as bu, tableChromeIconPaths as bv, tableChromeLabelKeyForTarget as bw, tableChromeToolbarState as bx, tableChromeVisible as by, tableCommandToolbarState as bz, ChromePrintError as l };
3928
+ export type { LockedControlNavigation as A, DocxEditorConfig as D, FontLoadFailure as F, HistoryGroupBinding as H, LoadFontsRequest as L, SurfaceHyperlink as S, ToolbarCommandState as T, PaginatedSurfaceOptions as W, OpenPaginatedResult as X, PaginatedSurface as Y, TableCommandPlan as Z, AnchorFrameOrigin as _, ChromeControl as a0, ChromeControlId as a1, ChromeControlState as a2, ChromeExportView as a3, ChromeGroup as a4, ChromeGroupId as a5, ContentControlWidgetChromeHandlers as a6, ContentControlWidgetSession as a7, DrawingSelectionIntent as a9, SelectedDrawingOverlayTarget as aA, SurfaceEquation as aB, SurfaceFormatting as aC, SurfaceInsertImageInput as aD, SurfaceNavigation as aE, SurfaceOverlayCoordinates as aF, SurfaceParagraphFormat as aG, TableBorderStyleOption as aL, TableBorderTargetOption as aM, TableBorderTargetValue as aN, TableBorderWidthOption as aO, TableChromeDraft as aP, TableChromePick as aQ, TableChromeSlotId as aR, TableInteractionLabelKey as aS, TextFormFieldChromeHandlers as aT, TextFormFieldDialogSession as aU, ToolbarSlotValue as aV, ToolbarValueMap as aW, ToolbarValueSlot as aX, EditorCommandExecute as ab, EquationActivation as ac, EquationChromeHandlers as ad, EquationOps as ae, FinalizedImageOverlayInteraction as af, HyperlinkOps as ag, ImageInteractionSession as aj, ImageOverlayScrollPort as ak, ImageResizeHandle as al, ImageResizeResult as am, InvalidTextFormFieldChromeHandlers as an, InvalidTextFormFieldSession as ao, OpeningIndicatorHost as ap, OverlayFrameRect as aq, PaginatedSurfaceState as ar, ParagraphPropertyEdit as as, PopupChromeRegistrationOptions as at, RemoteCaretLabelAnchor as au, RemoteCaretLabelHost as av, ReviewWriteIntent as aw, RunTableChromeCommandResult as ax, SectionAnchor as ay, SectionBreakInsertType as az, ChromeExportFormat as c, ChromeExportHandlers as d, ChromeExportResult as e, ChromeMenu as f, ChromeMenuEntry as g, ChromeMenuId as h, ChromeMenuItemEntry as i, ChromeMenuSeparatorEntry as j, ChromeMenuSubmenuEntry as k, ChromePrintErrorCode as m, ChromePrintJob as n, ChromePrintOptions as o, ChromeSlotId as p, CustomFontsOptions as q, CustomFontsResolver as r, DocxEditorInstance as s, FontLoadFailureReason as t, FontMeasurementState as u, FontUrlSource as v, HistoryGroupBindingOptions as w, HyperlinkActivation as x, HyperlinkChromeHandlers as y, LoadFontsResult as z };