@docx-editor.dev/core 2.28.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 (109) hide show
  1. package/dist/automation.cjs +1 -1
  2. package/dist/automation.d.ts +65 -13
  3. package/dist/automation.js +1 -1
  4. package/dist/binding.cjs +1 -1
  5. package/dist/binding.d.ts +54 -38
  6. package/dist/binding.js +1 -1
  7. package/dist/{index-Bsg7oIKP.d.ts → chrome-print-BM3Js-6X.d.ts} +281 -222
  8. package/dist/{chunk-Z6WBFXJU.js → chunk-2PV5L5NJ.js} +3 -3
  9. package/dist/chunk-4HENIAFG.js +1 -0
  10. package/dist/chunk-5OTS2EJ7.js +7 -0
  11. package/dist/chunk-5P4223J4.cjs +27 -0
  12. package/dist/{chunk-O2AL2HSJ.cjs → chunk-5RRAZMBU.cjs} +1 -1
  13. package/dist/chunk-5SPITS5F.js +18 -0
  14. package/dist/{chunk-VDNNLG6X.js → chunk-7ATNKARV.js} +1 -1
  15. package/dist/{chunk-SRPILEWV.cjs → chunk-BGCUTKWE.cjs} +5 -5
  16. package/dist/chunk-EBCXSH2W.js +3 -0
  17. package/dist/{chunk-K5U2PLDP.cjs → chunk-ERECKTIR.cjs} +1 -1
  18. package/dist/{chunk-QMLCVPCD.cjs → chunk-FLBEJC6X.cjs} +1 -1
  19. package/dist/{chunk-6AWEKBLB.cjs → chunk-HYASLE2G.cjs} +1 -1
  20. package/dist/chunk-JC47NRJC.cjs +3 -0
  21. package/dist/{chunk-ZUHOMK52.cjs → chunk-KJRTNY2Q.cjs} +1 -1
  22. package/dist/chunk-NKPUH3QJ.js +1 -0
  23. package/dist/chunk-PF5NJWS3.js +2 -0
  24. package/dist/chunk-PWTRJSES.cjs +18 -0
  25. package/dist/chunk-QFKGI242.cjs +30 -0
  26. package/dist/{chunk-5CSUYANV.js → chunk-RJCQGJR7.js} +1 -1
  27. package/dist/chunk-RPPV4S6T.cjs +4 -0
  28. package/dist/{chunk-TSLBZ26X.js → chunk-T32MGBJS.js} +1 -1
  29. package/dist/chunk-UM26GH5B.js +30 -0
  30. package/dist/chunk-V3N4SOAK.cjs +1 -0
  31. package/dist/chunk-VRCZBFLH.js +27 -0
  32. package/dist/{chunk-2GO5T2JU.cjs → chunk-WF7JZ755.cjs} +1 -1
  33. package/dist/chunk-WK5X2MMA.cjs +7 -0
  34. package/dist/{chunk-E7BQA6UP.js → chunk-WPDD2Y32.js} +1 -1
  35. package/dist/chunk-YBMWBXST.cjs +2 -0
  36. package/dist/{chunk-ETTO6GK3.js → chunk-YZGUBCHP.js} +1 -1
  37. package/dist/chunk-ZOS2PM4A.js +4 -0
  38. package/dist/collaboration/replication.cjs +1 -1
  39. package/dist/collaboration/replication.d.ts +5 -5
  40. package/dist/collaboration/replication.js +1 -1
  41. package/dist/collaboration.d.ts +4 -4
  42. package/dist/contracts/document.d.ts +3 -3
  43. package/dist/contracts/editor.d.ts +9 -10
  44. package/dist/contracts/interaction.d.ts +2 -2
  45. package/dist/contracts/modules.cjs +1 -1
  46. package/dist/contracts/modules.d.ts +33 -9
  47. package/dist/contracts/modules.js +1 -1
  48. package/dist/contracts/types.d.ts +2 -2
  49. package/dist/{custom-node-writes-cvL5rhcD.d.ts → custom-node-writes-0v0Kgw1T.d.ts} +2 -2
  50. package/dist/diagnostic-context-CcAO4q1s.d.ts +30 -0
  51. package/dist/diagnostic-hints-2Bke6H_w.d.ts +120 -0
  52. package/dist/{document-protection-BAGVGqaP.d.ts → document-protection-8eyMWIJ0.d.ts} +2 -2
  53. package/dist/{editor-Ci7IZGmG.d.ts → editor-DaEJd2so.d.ts} +460 -9
  54. package/dist/{editor-scope-OHPwVQ5l.d.ts → editor-scope-7o9xweiJ.d.ts} +1 -1
  55. package/dist/editor.cjs +1 -1
  56. package/dist/editor.d.ts +55 -33
  57. package/dist/editor.js +1 -1
  58. package/dist/export.cjs +2 -2
  59. package/dist/export.d.ts +17 -15
  60. package/dist/export.js +2 -2
  61. package/dist/{font-resolver-BVQB14qT.d.ts → font-resolver-CL9BVKZo.d.ts} +3 -3
  62. package/dist/font-shaping-policy-BvpkrfxM.d.ts +7 -0
  63. package/dist/{headless-document-view-qH331moE.d.ts → headless-document-view-DZQN8Bnx.d.ts} +2 -2
  64. package/dist/{image-resources-BN-hUgCn.d.ts → image-resources-Bipz8toD.d.ts} +2 -2
  65. package/dist/index.cjs +1 -1
  66. package/dist/index.d.ts +67 -21
  67. package/dist/index.js +1 -1
  68. package/dist/{layout-shaping-BEyuiQOk.d.ts → layout-shaping-cEnVrhWg.d.ts} +3 -2
  69. package/dist/layout.cjs +1 -1
  70. package/dist/layout.d.ts +42 -42
  71. package/dist/layout.js +1 -1
  72. package/dist/{note-properties-4Y9o6Gyk.d.ts → note-properties-9FH8zAeG.d.ts} +3 -3
  73. package/dist/{omml-equation-CuzBL5DD.d.ts → omml-equation-DP2WpUbK.d.ts} +13 -1
  74. package/dist/output.cjs +1 -1
  75. package/dist/output.d.ts +8 -9
  76. package/dist/output.js +1 -1
  77. package/dist/{protocol-Bqk4Izjc.d.ts → protocol-CZ1uUlPO.d.ts} +2 -2
  78. package/dist/{review-paragraph-order-DT-n6ouC.d.ts → review-paragraph-order-CqVelc5A.d.ts} +1 -1
  79. package/dist/{semantic-cell-selection-D9D1KSXq.d.ts → semantic-cell-selection-Dr9yxFZt.d.ts} +4 -211
  80. package/dist/{semantic-interaction-CIC-PooQ.d.ts → semantic-interaction-Dc3pf3hr.d.ts} +1 -1
  81. package/dist/{semantic-paint-BME37OMv.d.ts → semantic-paint-Bz3FBAoH.d.ts} +17 -5
  82. package/dist/{semantic-record-queries-CBlZqZNa.d.ts → semantic-record-queries-Bx0pl6kL.d.ts} +1 -1
  83. package/dist/{semantic-records-4B3WwFAi.d.ts → semantic-records-CjcF26ZL.d.ts} +892 -416
  84. package/dist/store.cjs +1 -1
  85. package/dist/store.d.ts +1463 -1574
  86. package/dist/store.js +1 -1
  87. package/dist/{tree-package-fragment-BeeKxDw8.d.ts → tree-package-store-DKhdEVym.d.ts} +238 -84
  88. package/dist/{tree-session-contract-CVbmlMlq.d.ts → tree-session-contract-CwnTEVLF.d.ts} +8 -6
  89. package/dist/{types-barrel-D3xCgQX6.d.ts → types-barrel-CA0xB8kH.d.ts} +548 -527
  90. package/package.json +3 -3
  91. package/dist/chunk-2RC2EPND.js +0 -3
  92. package/dist/chunk-4GBTELJV.cjs +0 -28
  93. package/dist/chunk-4R3TEXMN.js +0 -18
  94. package/dist/chunk-6APGXLBB.cjs +0 -3
  95. package/dist/chunk-6EYYL7FL.js +0 -1
  96. package/dist/chunk-EO4C5QJW.cjs +0 -2
  97. package/dist/chunk-FIJZIQXA.cjs +0 -18
  98. package/dist/chunk-FRXAOVTB.js +0 -28
  99. package/dist/chunk-J6BVWIDB.js +0 -2
  100. package/dist/chunk-JGNVNT2A.cjs +0 -2
  101. package/dist/chunk-KKIJG3C6.js +0 -2
  102. package/dist/chunk-LWDSDCMO.js +0 -27
  103. package/dist/chunk-NBCVVZOM.cjs +0 -1
  104. package/dist/chunk-O5INAWZQ.js +0 -1
  105. package/dist/chunk-RCHS4ZEH.cjs +0 -27
  106. package/dist/chunk-VHAVHCQY.js +0 -7
  107. package/dist/chunk-VX43VBAX.cjs +0 -7
  108. package/dist/review-pane-D9jm8DcY.d.ts +0 -128
  109. package/dist/revision-projection-DZ4kKVev.d.ts +0 -242
@@ -1,24 +1,20 @@
1
- import { W as TreeDocOp, co as TextFormFieldRange, cn as TextFormFieldOptions, au as Unsubscribe, E as ExecResult, ao as DrawingPositionInput, aM as DrawingTransform, A as ParagraphTabStop, y as IndentFormatting, z as ParagraphFlags, aB as ParagraphDisagreements, aj as DrawingTreeDocOp, at as SelectionPin, Q as OoxmlPackage, g as ReviewRevisionKind, an as ImageWrapTarget } from './types-barrel-D3xCgQX6.js';
2
- import { k as FieldResultsMode, I as InsertImageInput, S as StoryScope, A as ApplyImagePropertiesInput, i as ImageIntentResult } from './tree-package-fragment-BeeKxDw8.js';
3
- import { a as ImageDecodePort, S as SupportedImageMime } from './image-resources-BN-hUgCn.js';
4
- import './document-protection-BAGVGqaP.js';
5
- import { EditorModule, ReviewModuleContribution } from './contracts/modules.js';
6
- import { D as DocumentSource, a as FontConfiguration, Z as ZoomMode, E as EditorFontError, i as Editor, e as EditorCommand, C as CanResult, p as SelectedImageState, z as FormatPainterSurfaceState, g as ScrollPlacement, r as TrackedChangePredicate, q as TrackedChangeFilterMode, F as FontFaceRequest, b as FontSource, I as ImageContext, B as TableBorderEdgeTarget, G as TableBorderSpec, J as TableBorderStyle, K as TableContext } from './editor-Ci7IZGmG.js';
7
- import { e as RevisionMarkupOptions, a as ReviewDisplayMode, i as RevisionMarkupChromeHandlers, d as ResolvedRevisionMarkup } from './revision-projection-DZ4kKVev.js';
8
- import { S as SemanticPosition, a as SemanticSelection, N as NavigationCommand } from './semantic-interaction-CIC-PooQ.js';
9
- import { e as FontConfigurationFragment, g as FontResolver, i as MarkedFontResolver, f as FontResolutionRequest } from './font-resolver-BVQB14qT.js';
10
- import { R as ReviewPaneOptions } from './review-pane-D9jm8DcY.js';
11
- import { EditorCollaborationSession, CollaborationRemoteSelection, CollaborationModuleContribution } from './collaboration.js';
12
- import { d as RevisionStyles, R as ReviewAuthorInfo, c as RevisionAuthorStyle, F as FieldShadingMode, f as DrawingPaintStrings } from './semantic-paint-BME37OMv.js';
13
- import { b as ResolvedFootnoteProperties, R as ResolvedEndnoteProperties, A as AuthoredNoteProperties } from './note-properties-4Y9o6Gyk.js';
14
- import { S as SemanticLayout, T as TextMeasurer, C as ContentControlBoundaryRecord } from './semantic-records-4B3WwFAi.js';
15
- import { B as BookmarkIndex } from './custom-node-writes-cvL5rhcD.js';
16
- import { C as CellSelection, S as SectionProperties } from './semantic-cell-selection-D9D1KSXq.js';
17
- import { T as TreeDocxSessionView, a as TreeApplyResult } from './tree-session-contract-CVbmlMlq.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
+ import { V as ViewScope, a as EditorExecOptions } from './editor-scope-7o9xweiJ.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';
18
17
  import { C as CollaborationStatus } from './failure-NS2lsya4.js';
19
- import { V as ViewScope, b as EditorExecOptions } from './editor-scope-OHPwVQ5l.js';
20
- import './contracts/document.js';
21
- import './contracts/interaction.js';
22
18
 
23
19
  /**
24
20
  * A blank document, freshly zipped per call (the caller may hand the
@@ -141,29 +137,47 @@ interface TextFormFieldChromeHandlers {
141
137
  readonly onRequest?: (session: TextFormFieldDialogSession) => void;
142
138
  }
143
139
 
144
- /**
145
- * Receives the element that shows the loading indicator on the first page, while a large
146
- * document lays out its remaining pages.
147
- *
148
- * @example
149
- * ```ts
150
- * editor.setOpeningIndicatorHost({
151
- * publish(element) {
152
- * // Render your indicator into `element`, or remove it when `element` is null.
153
- * },
154
- * });
155
- * ```
156
- *
157
- * @public
158
- */
159
- interface OpeningIndicatorHost {
160
- /**
161
- * Called with the indicator element when the first pages show, and with `null` when the
162
- * remaining pages are laid out or the open is abandoned. The element is empty while a host
163
- * is set: render the host's content into it. It is centered on the first page, at most 30%
164
- * of the window height below the page top, and scrolls with the document.
165
- */
166
- 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;
167
181
  }
168
182
 
169
183
  /**
@@ -262,47 +276,210 @@ interface SurfaceNavigation {
262
276
  destroy(): void;
263
277
  }
264
278
 
265
- /** One addressable inline equation and its compact editable projection. */
266
- interface SurfaceEquation {
267
- readonly id: string;
268
- readonly paragraphId: string;
269
- readonly start: number;
270
- readonly end: number;
271
- readonly linear: string;
272
- readonly fallbackText: string;
273
- /** True when every source construct belongs to the editable subset. */
274
- readonly supported: boolean;
275
- }
276
- /** A user click on one painted equation. */
277
- interface EquationActivation {
278
- readonly equation: SurfaceEquation;
279
- readonly rect: {
280
- readonly left: number;
281
- readonly top: number;
282
- readonly right: number;
283
- 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;
284
457
  };
285
458
  }
286
- /** Boundary-inclusive lookup, matching the hyperlink and field atom popovers. */
287
- declare function equationAtPosition(equations: readonly SurfaceEquation[], position: SemanticPosition): SurfaceEquation | null;
288
- type EquationAction = 'replace' | 'remove';
289
- /** Engine-owned capability result for equation editing chrome. */
290
- type EquationCanResult = {
291
- readonly ok: true;
292
- } | {
293
- readonly ok: false;
294
- readonly code: 'locked' | 'notFound' | 'unsupported';
295
- readonly reason: string;
296
- };
297
- /** Surface equation reads and atomic replace/remove writes. */
298
- interface EquationOps {
299
- equationsInCaretParagraph(): SurfaceEquation[];
300
- equationAtCaret(): SurfaceEquation | null;
301
- equationById(equationId: string): SurfaceEquation | null;
302
- /** Whether equation chrome can run an action, with the engine-owned refusal reason. */
303
- can(equationId: string, action: EquationAction): EquationCanResult;
304
- applyEquation(equationId: string, linear: string): boolean;
305
- 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;
306
483
  }
307
484
 
308
485
  /**
@@ -347,6 +524,8 @@ interface DocxEditorConfig {
347
524
  * requests — the engine never supplies one, so that stays your call.
348
525
  */
349
526
  fonts?: FontConfiguration | FontConfigurationFragment | FontResolver;
527
+ /** Explicit shaping execution limits. Omitted, the per-face byte ceiling remains 16 MiB. */
528
+ fontShaping?: FontShapingOptions;
350
529
  author?: string;
351
530
  /** BCP-47 locale for regional date input and generated labels; defaults to en-US. */
352
531
  locale?: string;
@@ -359,6 +538,14 @@ interface DocxEditorConfig {
359
538
  * reason. See {@link EditorModule}.
360
539
  */
361
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;
362
549
  /**
363
550
  * The mode the editor opens in — one prop, matching the toolbar's three-state pill.
364
551
  *
@@ -415,6 +602,12 @@ interface DocxEditorConfig {
415
602
  * shared paragraph text keeps every field one unit.
416
603
  */
417
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;
418
611
  /** Override raster decode for insert/replace image commands; defaults to browser/headless. */
419
612
  imageDecodePort?: ImageDecodePort;
420
613
  /**
@@ -782,7 +975,8 @@ declare function canExecuteImageCommand(command: Extract<EditorCommand, {
782
975
  * Run an insert or replace, re-checking the same gates {@link canExecuteImageCommand} applies.
783
976
  *
784
977
  * Async because image bytes must be decoded to derive their natural extent before the drawing can
785
- * be projected — the one editor command that cannot complete synchronously.
978
+ * be projected — the one editor command that cannot complete synchronously. It runs outside
979
+ * `exec`, so it reports a refusal to the editor's diagnostics itself.
786
980
  */
787
981
  declare function executeImageCommand(editor: DocxEditorInstance, command: Extract<EditorCommand, {
788
982
  type: 'insertImage' | 'replaceImage';
@@ -1294,143 +1488,6 @@ interface RemoteCaretLabelHost {
1294
1488
  publish(anchors: readonly RemoteCaretLabelAnchor[]): void;
1295
1489
  }
1296
1490
 
1297
- /**
1298
- * How a paginated surface opens. Every field is optional.
1299
- *
1300
- * `measurer` is the injection seam that keeps layout DOM-free — supply one to lay a document out
1301
- * on a server, or leave it off in a browser to get the canvas measurer.
1302
- */
1303
- interface PaginatedSurfaceOptions {
1304
- /** UI labels for shared form controls; omitted keys fall back to English. */
1305
- readonly translate?: (key: string, params?: Record<string, string | number>) => string;
1306
- /** Regional conventions for new date input; defaults to en-US. */
1307
- readonly locale?: string;
1308
- /**
1309
- * The collaboration module's replica for this surface's session. Absent,
1310
- * the surface does not attach, and local store history remains the undo
1311
- * authority.
1312
- */
1313
- readonly collaborationModel?: CollaborationModuleContribution;
1314
- /**
1315
- * How saved field results are edited. `atomic` (the default) keeps every field one unit.
1316
- * `editable` lets the reader type, delete, and select inside the saved result of a DATE,
1317
- * MERGEFIELD, HYPERLINK, or similar field. Results must be unnested; simple fields inside
1318
- * complex field results are not supported. Refused with a {@link collaborationModel}.
1319
- */
1320
- readonly fieldResults?: FieldResultsMode;
1321
- readonly measurer?: TextMeasurer;
1322
- /** Ambient author for tracked edits. Required before suggesting can write anything. */
1323
- readonly author?: string;
1324
- /** Opening mode; changeable at runtime with `setEditingMode`. */
1325
- readonly editingMode?: SurfaceEditingMode;
1326
- /**
1327
- * Identifies the measurer for cache invalidation.
1328
- *
1329
- * Fonts resolve asynchronously, so a host that swaps its measurer must change this or the
1330
- * cached pre-font layout is served for the rest of the session.
1331
- */
1332
- readonly producer?: string;
1333
- /**
1334
- * Maps a document-declared font family to the alias its registered bytes live under, so
1335
- * painted runs can use embedded glyphs without the file's family name entering the
1336
- * page-global CSS font namespace.
1337
- */
1338
- readonly fontAlias?: (family: string) => string | undefined;
1339
- /** Points to CSS pixels. */
1340
- readonly scale?: number;
1341
- /**
1342
- * How revisions project into layout and paint. Omitted keeps the layout default
1343
- * (`all-markup`). The editor facade passes `proposed` when no review module is
1344
- * registered — the free tier's final-state rendering; the machinery below this
1345
- * option is shared either way.
1346
- */
1347
- readonly revisionDisplayMode?: ReviewDisplayMode;
1348
- /** Authors whose changes open in their accepted view-time projection. */
1349
- readonly hiddenRevisionAuthors?: readonly string[];
1350
- /**
1351
- * When a field's result wears Word's grey shading. Omitted keeps Word's own default,
1352
- * `when-selected`.
1353
- *
1354
- * Applies to ORDINARY fields only. Legacy form fields follow the document's
1355
- * `w:doNotShadeFormData`, because a form's blanks are the document's own statement about
1356
- * itself rather than a reader's preference.
1357
- *
1358
- * A paint-level option, not a layout one: it changes no geometry, so switching it repaints
1359
- * without remeasuring a single line.
1360
- */
1361
- readonly fieldShading?: FieldShadingMode;
1362
- /** Show paragraph-end furniture without changing document content. */
1363
- readonly showParagraphMarks?: boolean;
1364
- readonly onToggleParagraphMarks?: () => void;
1365
- /**
1366
- * How tracked changes are coloured: by AUTHOR (the default), by kind, or by author with
1367
- * host-pinned colours. A paint-level option like {@link fieldShading}: it changes no
1368
- * geometry, so switching it repaints without remeasuring a line. Applies wherever
1369
- * revision markup paints, whatever the {@link revisionDisplayMode} leaves visible.
1370
- */
1371
- readonly revisionStyles?: RevisionStyles;
1372
- readonly revisionMarkup?: ResolvedRevisionMarkup;
1373
- /**
1374
- * The review module's derivation hooks for this surface's session. Absent,
1375
- * `session.reviewItems()` is the typed empty queue and every review affordance
1376
- * built on it stays inert.
1377
- */
1378
- readonly reviewModel?: ReviewModuleContribution;
1379
- /**
1380
- * The family a run with no authored font is reported as by `formatting()` AND painted
1381
- * in — the face the measurer falls back to. Absent, such a run reports
1382
- * `fontFamily: null` and paints in whatever font the page inherits, which the measurer
1383
- * did not measure: visible glyphs drift from wrap points and caret geometry.
1384
- */
1385
- readonly defaultFontFamily?: string;
1386
- /**
1387
- * Who resolves a pointer to a caret.
1388
- *
1389
- * `'engine'` (the default) answers from the layout records, which is what makes a click in
1390
- * a margin, an indent or a cell's padding land where it was aimed. `'native'` binds no
1391
- * pointer handlers and leaves the browser's own caret placement in charge.
1392
- */
1393
- readonly pointer?: 'engine' | 'native';
1394
- readonly onChange?: (state: PaginatedSurfaceState) => void;
1395
- /**
1396
- * A plain click on an external (or inert) hyperlink, for a host to open its popover with.
1397
- *
1398
- * Absent means such a click does nothing. That is deliberate: a host with no popover
1399
- * mounted must not have clicks silently opening tabs, and the popover is the only path to
1400
- * activation (see the navigation module's single `window.open` gate).
1401
- */
1402
- readonly onHyperlinkPopover?: (activation: HyperlinkActivation) => void;
1403
- readonly onEquationPopover?: (activation: EquationActivation) => void;
1404
- /**
1405
- * Ctrl/Cmd+K — Word's Insert Hyperlink. The engine reports the request; the host's chrome
1406
- * decides what a link dialog looks like. A host that passes nothing leaves the key alone
1407
- * rather than doing something surprising with it.
1408
- */
1409
- readonly onRequestHyperlink?: () => void;
1410
- /** Return true when host chrome handles this session. */
1411
- readonly onRequestTextFormField?: (session: TextFormFieldDialogSession) => boolean;
1412
- readonly onRequestContentControlWidget?: (session: ContentControlWidgetSession) => boolean;
1413
- readonly onRequestInvalidTextFormField?: (session: InvalidTextFormFieldSession) => boolean;
1414
- /**
1415
- * Localized accessible names for core-owned table insertion furniture.
1416
- * Defaults to English from `@docx-editor.dev/i18n` when omitted.
1417
- */
1418
- readonly tableInteractionLabel?: (key: 'table.insertRowBelow' | 'table.insertColumnRight') => string;
1419
- /** Localized drawing refusal labels; defaults to English when omitted. */
1420
- readonly drawingStrings?: DrawingPaintStrings;
1421
- /** Override raster decode for package image intents; defaults to browser/headless. */
1422
- readonly imageDecodePort?: ImageDecodePort;
1423
- /**
1424
- * Localized name for a generated TOC, written as the control's `w:alias` on insert.
1425
- *
1426
- * The update ACTIONS are not here: they are rows in the host's context menu, which owns
1427
- * its own labels. The engine paints no menu of its own.
1428
- */
1429
- readonly tocLabels?: {
1430
- readonly title: string;
1431
- };
1432
- }
1433
-
1434
1491
  /**
1435
1492
  * What the selection is currently formatted as.
1436
1493
  *
@@ -2395,6 +2452,8 @@ type OpenPaginatedResult = {
2395
2452
  readonly ok: false;
2396
2453
  readonly reason: string;
2397
2454
  readonly detail?: string;
2455
+ /** The resource limit the package crossed, when the reason is a size refusal. */
2456
+ readonly limit?: string;
2398
2457
  };
2399
2458
 
2400
2459
  /** One URL to fetch and the face it claims to be. */
@@ -3865,5 +3924,5 @@ interface ChromePrintJob {
3865
3924
  */
3866
3925
  declare function runChromePrint(editor: Pick<Editor, 'save'> & Partial<Pick<Editor, 'snapshot'>>, handlers?: ChromeExportHandlers, container?: Document | Element): Promise<ChromePrintJob>;
3867
3926
 
3868
- export { IMAGE_OVERLAY_NUDGE_SHIFT_PT as $, CHROME_GROUPS as C, DEFAULT_TABLE_CHROME_DRAFT as F, EMU_PER_POINT as I, IMAGE_OVERLAY_NUDGE_PT as _, createFontSource as a$, applyTableChromePick as aJ, bindHistoryGroup as aK, blankDocumentBytes as aL, canExecuteImageCommand as aM, captureImageMutationPreconditions as aN, chromeControlCount as aO, chromeMenuSlots as aP, chromeProbeForSlot as aQ, chromeSlotId as aR, chromeSlotIsToggle as aS, commandExecOptions as aT, commandForSlot as aU, commandForSlotValue as aV, commandForTableChromeSlotValue as aW, computeImageResizeResult as aX, computeMovedImagePosition as aY, computeResizedImageExtentEmu as aZ, createDocxEditor as a_, TABLE_BORDER_STYLE_OPTIONS as ar, TABLE_BORDER_TARGET_OPTIONS as as, TABLE_BORDER_WIDTH_OPTIONS as at, TABLE_CHROME_SLOT_IDS as au, CHROME_MENUS as b, createImageOverlayScrollPort as b0, cssPixelsToLayoutPoints as b1, customFonts as b2, defaultChromeGroups as b3, defaultTableLabel as b4, emuToOverlayPoints as b5, equationAtPosition as b6, executeImageCommand as b7, finalizeImageOverlayInteraction as b8, formattingBarChromeGroups as b9, isChromePrintShortcut as ba, isStaleImageInteractionCommit as bb, isTableChromeSlot as bc, layoutPointsToCssPixels as bd, loadFonts as be, overlayFrameToSheetCssPixels as bf, overlayHostOrigin as bg, pointsToEmu as bh, probeTableChromeCommand as bi, resizePreservesAspect as bj, runChromeExport as bk, runChromePrint as bl, runSave as bm, runTableChromeCommand as bn, runTableCommand as bo, runToolbarCommand as bp, selectedDrawingOverlayTargetOf as bq, selectedImageStateOf as br, surfacePaintScale as bs, tableChromeIconPaths as bt, tableChromeLabelKeyForTarget as bu, tableChromeToolbarState as bv, tableChromeVisible as bw, tableCommandToolbarState as bx, toolbarCommandState as by, toolbarCommandStates as bz, CHROME_UNAVAILABLE_KEY as c, ChromeExportError as g, ChromePrintError as t };
3869
- export type { AnchorFrameOrigin as A, CustomFontsOptions as B, DocxEditorInstance as D, CustomFontsResolver as E, DocxEditorConfig as G, DrawingSelectionIntent as H, EditorCommandExecute as J, EquationActivation as K, EquationChromeHandlers as L, EquationOps as M, FinalizedImageOverlayInteraction as N, OpenPaginatedResult as O, PaginatedSurfaceOptions as P, FontLoadFailure as Q, FontLoadFailureReason as R, FontMeasurementState as S, TableCommandPlan as T, FontUrlSource as U, HistoryGroupBinding as V, HistoryGroupBindingOptions as W, HyperlinkActivation as X, HyperlinkChromeHandlers as Y, HyperlinkOps as Z, PaginatedSurface as a, ImageInteractionSession as a0, ImageOverlayScrollPort as a1, ImageResizeHandle as a2, ImageResizeResult as a3, InvalidTextFormFieldChromeHandlers as a4, InvalidTextFormFieldSession as a5, LoadFontsRequest as a6, LoadFontsResult as a7, OpeningIndicatorHost as a8, OverlayFrameRect as a9, TableChromePick as aA, TableChromeSlotId as aB, TableInteractionLabelKey as aC, TextFormFieldChromeHandlers as aD, TextFormFieldDialogSession as aE, ToolbarCommandState as aF, ToolbarSlotValue as aG, ToolbarValueMap as aH, ToolbarValueSlot as aI, PaginatedSurfaceState as aa, ParagraphPropertyEdit as ab, PopupChromeRegistrationOptions as ac, RemoteCaretLabelAnchor as ad, RemoteCaretLabelHost as ae, ReviewWriteIntent as af, RunTableChromeCommandResult as ag, SectionAnchor as ah, SectionBreakInsertType as ai, SelectedDrawingOverlayTarget as aj, SurfaceEquation as ak, SurfaceFormatting as al, SurfaceHyperlink as am, SurfaceInsertImageInput as an, SurfaceNavigation as ao, SurfaceOverlayCoordinates as ap, SurfaceParagraphFormat as aq, TableBorderStyleOption as av, TableBorderTargetOption as aw, TableBorderTargetValue as ax, TableBorderWidthOption as ay, TableChromeDraft as az, ChromeControl as d, ChromeControlId as e, ChromeControlState as f, ChromeExportFormat as h, ChromeExportHandlers as i, ChromeExportResult as j, ChromeExportView as k, ChromeGroup as l, ChromeGroupId as m, ChromeMenu as n, ChromeMenuEntry as o, ChromeMenuId as p, ChromeMenuItemEntry as q, ChromeMenuSeparatorEntry as r, ChromeMenuSubmenuEntry as s, ChromePrintErrorCode as u, ChromePrintJob as v, ChromePrintOptions as w, ChromeSlotId as x, ContentControlWidgetChromeHandlers as y, ContentControlWidgetSession 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 };