@docx-editor.dev/core 2.30.0 → 2.31.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 (106) hide show
  1. package/dist/automation.cjs +1 -1
  2. package/dist/automation.d.ts +16 -25
  3. package/dist/automation.js +1 -1
  4. package/dist/binding.cjs +1 -1
  5. package/dist/binding.d.ts +15 -16
  6. package/dist/binding.js +1 -1
  7. package/dist/bookmark-names-DDuAra_V.d.ts +37 -0
  8. package/dist/{chrome-print-BM3Js-6X.d.ts → chrome-print-BWvaVEhD.d.ts} +318 -33
  9. package/dist/chunk-243W4WW2.cjs +2 -0
  10. package/dist/{chunk-RJCQGJR7.js → chunk-2E2RPEKX.js} +1 -1
  11. package/dist/chunk-4S24UOPG.js +30 -0
  12. package/dist/chunk-5JPIEN54.cjs +3 -0
  13. package/dist/{chunk-KJRTNY2Q.cjs → chunk-5SO5QDMV.cjs} +1 -1
  14. package/dist/{chunk-WF7JZ755.cjs → chunk-6IDOVU6L.cjs} +1 -1
  15. package/dist/chunk-DBOOTED4.cjs +30 -0
  16. package/dist/chunk-EOTAXOJY.cjs +5 -0
  17. package/dist/chunk-FDAKJ2SJ.cjs +30 -0
  18. package/dist/chunk-FNNOJNGY.js +3 -0
  19. package/dist/chunk-FT33HRZP.js +5 -0
  20. package/dist/{chunk-HYASLE2G.cjs → chunk-HC6YNKUI.cjs} +1 -1
  21. package/dist/chunk-HZ66UCIS.js +2 -0
  22. package/dist/{chunk-5RRAZMBU.cjs → chunk-IBRBNT37.cjs} +1 -1
  23. package/dist/chunk-IVIN7X43.js +30 -0
  24. package/dist/chunk-LZY6B6IV.js +4 -0
  25. package/dist/chunk-MOYYRVFV.cjs +2 -0
  26. package/dist/{chunk-YZGUBCHP.js → chunk-N6B3BXCL.js} +1 -1
  27. package/dist/chunk-Q5K2GGNG.js +2 -0
  28. package/dist/chunk-R2XINWVE.js +7 -0
  29. package/dist/chunk-SUEXVBPR.js +1 -0
  30. package/dist/chunk-T2QQHG5C.js +18 -0
  31. package/dist/{chunk-T32MGBJS.js → chunk-VWIJKH4A.js} +1 -1
  32. package/dist/chunk-WO4V6PNS.cjs +18 -0
  33. package/dist/chunk-XMJKFURD.cjs +4 -0
  34. package/dist/{chunk-FLBEJC6X.cjs → chunk-XSTGE3NI.cjs} +1 -1
  35. package/dist/chunk-YQWMI6J5.cjs +7 -0
  36. package/dist/{chunk-WPDD2Y32.js → chunk-ZCJS7D7S.js} +1 -1
  37. package/dist/collaboration/replication.cjs +1 -1
  38. package/dist/collaboration/replication.d.ts +4 -5
  39. package/dist/collaboration/replication.js +1 -1
  40. package/dist/collaboration.d.ts +3 -4
  41. package/dist/contracts/document.d.ts +3 -3
  42. package/dist/contracts/editor.d.ts +8 -9
  43. package/dist/contracts/interaction.d.ts +2 -2
  44. package/dist/contracts/modules.d.ts +12 -13
  45. package/dist/contracts/types.d.ts +2 -2
  46. package/dist/{custom-node-writes-0v0Kgw1T.d.ts → custom-node-writes-TeUvMP13.d.ts} +2 -2
  47. package/dist/{diagnostic-context-CcAO4q1s.d.ts → diagnostic-context-DJ0P1uZE.d.ts} +3 -2
  48. package/dist/{diagnostic-hints-2Bke6H_w.d.ts → diagnostic-hints-C9JlLz1L.d.ts} +1 -1
  49. package/dist/{document-protection-8eyMWIJ0.d.ts → document-protection-C8x3P2J6.d.ts} +1 -1
  50. package/dist/{editor-DaEJd2so.d.ts → editor-B2ShlO23.d.ts} +292 -50
  51. package/dist/{editor-scope-7o9xweiJ.d.ts → editor-scope-C7ke1KJG.d.ts} +57 -4
  52. package/dist/editor.cjs +1 -1
  53. package/dist/editor.css +5 -3
  54. package/dist/editor.d.ts +602 -31
  55. package/dist/editor.js +1 -1
  56. package/dist/export.cjs +2 -2
  57. package/dist/export.d.ts +13 -14
  58. package/dist/export.js +2 -2
  59. package/dist/{font-resolver-CL9BVKZo.d.ts → font-resolver-CWh40DYp.d.ts} +1 -1
  60. package/dist/{headless-document-view-DZQN8Bnx.d.ts → headless-document-view-qOpaCF82.d.ts} +2 -2
  61. package/dist/index.cjs +1 -1
  62. package/dist/index.d.ts +22 -23
  63. package/dist/index.js +1 -1
  64. package/dist/{layout-shaping-cEnVrhWg.d.ts → layout-shaping-CWS3j0Xr.d.ts} +1 -1
  65. package/dist/layout.cjs +1 -1
  66. package/dist/layout.d.ts +87 -22
  67. package/dist/layout.js +1 -1
  68. package/dist/{note-properties-9FH8zAeG.d.ts → note-properties-QsKh24sM.d.ts} +1 -1
  69. package/dist/{omml-equation-DP2WpUbK.d.ts → omml-equation-BsLAa2lX.d.ts} +27 -9
  70. package/dist/output.cjs +1 -1
  71. package/dist/output.d.ts +20 -10
  72. package/dist/output.js +1 -1
  73. package/dist/{protocol-CZ1uUlPO.d.ts → protocol-COZJUKUY.d.ts} +94 -2
  74. package/dist/{review-paragraph-order-CqVelc5A.d.ts → review-paragraph-order-C_QbCKcH.d.ts} +1 -1
  75. package/dist/{semantic-cell-selection-Dr9yxFZt.d.ts → semantic-cell-selection-Cub9FDa8.d.ts} +2 -2
  76. package/dist/{semantic-interaction-Dc3pf3hr.d.ts → semantic-interaction-dApRIYpt.d.ts} +1 -1
  77. package/dist/{semantic-paint-Bz3FBAoH.d.ts → semantic-paint-DLzA8sjP.d.ts} +3 -3
  78. package/dist/{semantic-record-queries-Bx0pl6kL.d.ts → semantic-record-queries-3yp9o11g.d.ts} +1 -1
  79. package/dist/{semantic-records-CjcF26ZL.d.ts → semantic-records-B-akgRch.d.ts} +130 -87
  80. package/dist/store.cjs +1 -1
  81. package/dist/store.d.ts +48 -22
  82. package/dist/store.js +1 -1
  83. package/dist/{tree-package-store-DKhdEVym.d.ts → tree-package-store-B8l8DX3Z.d.ts} +675 -645
  84. package/dist/{tree-session-contract-CwnTEVLF.d.ts → tree-session-contract-DeLRqohz.d.ts} +26 -13
  85. package/dist/{types-barrel-CA0xB8kH.d.ts → types-barrel-CkF2JbU4.d.ts} +1146 -745
  86. package/package.json +2 -2
  87. package/dist/chunk-2PV5L5NJ.js +0 -5
  88. package/dist/chunk-5OTS2EJ7.js +0 -7
  89. package/dist/chunk-5P4223J4.cjs +0 -27
  90. package/dist/chunk-5SPITS5F.js +0 -18
  91. package/dist/chunk-7ATNKARV.js +0 -2
  92. package/dist/chunk-BGCUTKWE.cjs +0 -5
  93. package/dist/chunk-EBCXSH2W.js +0 -3
  94. package/dist/chunk-ERECKTIR.cjs +0 -2
  95. package/dist/chunk-JC47NRJC.cjs +0 -3
  96. package/dist/chunk-NKPUH3QJ.js +0 -1
  97. package/dist/chunk-PF5NJWS3.js +0 -2
  98. package/dist/chunk-PWTRJSES.cjs +0 -18
  99. package/dist/chunk-QFKGI242.cjs +0 -30
  100. package/dist/chunk-RPPV4S6T.cjs +0 -4
  101. package/dist/chunk-UM26GH5B.js +0 -30
  102. package/dist/chunk-VRCZBFLH.js +0 -27
  103. package/dist/chunk-WK5X2MMA.cjs +0 -7
  104. package/dist/chunk-YBMWBXST.cjs +0 -2
  105. package/dist/chunk-ZOS2PM4A.js +0 -4
  106. package/dist/image-resources-Bipz8toD.d.ts +0 -211
@@ -1,19 +1,18 @@
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';
1
+ import { c as FontConfigurationFragment, g as FontResolver, M as MarkedFontResolver, f as FontResolutionRequest } from './font-resolver-CWh40DYp.js';
2
+ import { e as BookmarkStory, u as DocumentSource, Z as FontConfiguration, aV as ZoomMode, J as EditorFontError, x as Editor, R as ReviewPaneOptions, b as EditorCommand, C as CanResult, aC as SelectedImageState, a4 as FormatPainterSurfaceState, f as BookmarkSummary, aA as ScrollPlacement, aT as TrackedChangePredicate, aS as TrackedChangeFilterMode, _ as FontFaceRequest, a0 as FontSource, af as ImageContext, aG as TableBorderEdgeTarget, aH as TableBorderSpec, aI as TableBorderStyle, aN as TableContext } from './editor-B2ShlO23.js';
3
+ import { V as ViewScope, a as EditorExecOptions } from './editor-scope-C7ke1KJG.js';
4
+ import { ao as TreeDocOp, b0 as TextFormFieldRange, b1 as TextFormFieldOptions, aE as ImageDecodePort, ai as Unsubscribe, E as ExecResult, _ as DrawingPositionInput, b2 as DrawingTransform, A as ParagraphTabStop, y as IndentFormatting, z as ParagraphFlags, a5 as ParagraphDisagreements, aJ as DrawingTreeDocOp, af as SupportedImageMime, ae as SelectionPin, Q as OoxmlPackage, g as ReviewRevisionKind, aH as PackageWatermarkWrite, a2 as ImageWrapTarget } from './types-barrel-CkF2JbU4.js';
5
+ 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-B-akgRch.js';
6
+ import { F as FieldResultsMode, C as ContentLockPolicy, I as InsertImageInput, S as StoryScope, A as ApplyImagePropertiesInput, i as ImageIntentResult } from './tree-package-store-B8l8DX3Z.js';
8
7
  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';
8
+ import { F as FieldShadingMode, d as RevisionStyles, f as DrawingPaintStrings, R as ReviewAuthorInfo, c as RevisionAuthorStyle } from './semantic-paint-DLzA8sjP.js';
10
9
  import { ReviewModuleContribution, EditorModule } from './contracts/modules.js';
11
- import { S as SemanticPosition, a as SemanticSelection, N as NavigationCommand } from './semantic-interaction-Dc3pf3hr.js';
10
+ import { S as SemanticPosition, a as SemanticSelection, N as NavigationCommand } from './semantic-interaction-dApRIYpt.js';
12
11
  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';
12
+ import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties, A as AuthoredNoteProperties } from './note-properties-QsKh24sM.js';
13
+ import { B as BookmarkIndex } from './custom-node-writes-TeUvMP13.js';
14
+ import { C as CellSelection } from './semantic-cell-selection-Cub9FDa8.js';
15
+ import { T as TreeDocxSessionView, a as TreeApplyResult } from './tree-session-contract-DeLRqohz.js';
17
16
  import { C as CollaborationStatus } from './failure-NS2lsya4.js';
18
17
 
19
18
  /**
@@ -259,10 +258,18 @@ interface HyperlinkActivation {
259
258
  */
260
259
  interface SurfaceNavigation {
261
260
  /** Snap to a semantic position using layout geometry, then place the caret there. */
261
+ /**
262
+ * With `orShow`, a story that cannot be opened is scrolled to without moving the caret into
263
+ * it, and the answer is `'shown'`. With `center`, the target is centered in the viewport
264
+ * unless it is already well inside it, so it never lands under chrome at the top edge.
265
+ */
262
266
  goToPosition(position: {
263
267
  paragraphId: string;
264
268
  offset: number;
265
- }): boolean;
269
+ }, options?: {
270
+ readonly orShow?: boolean;
271
+ readonly center?: boolean;
272
+ }): boolean | 'shown';
266
273
  /**
267
274
  * Scroll a bookmark into view and place the caret at it. Answers false for a name no
268
275
  * bookmark declares — an inert click, which is what Word does with a dangling anchor.
@@ -276,6 +283,19 @@ interface SurfaceNavigation {
276
283
  destroy(): void;
277
284
  }
278
285
 
286
+ /**
287
+ * The surface's view of the mark options.
288
+ *
289
+ * @public
290
+ */
291
+ interface BookmarkMarkOptionsSource {
292
+ readonly current: () => BookmarkMarkOptions;
293
+ /** Name the repaint to run when the options change. One slot: a remount replaces it. */
294
+ readonly onChange: (repaint: (() => void) | null) => void;
295
+ /** Report an error a host callback threw while marks were painted. */
296
+ readonly reportError: (error: unknown) => void;
297
+ }
298
+
279
299
  /**
280
300
  * How the caret moves through an inline content control whose effective lock is
281
301
  * `contentLocked` or `sdtContentLocked`.
@@ -324,6 +344,14 @@ interface PaginatedSurfaceOptions {
324
344
  readonly author?: string;
325
345
  /** Opening mode; changeable at runtime with `setEditingMode`. */
326
346
  readonly editingMode?: SurfaceEditingMode;
347
+ /**
348
+ * True while the active band covers both halves of a replacement: when the review UI lists
349
+ * a replacement as one card, or while an activation of the whole replacement holds. Read
350
+ * on each band paint. Set by the editor; a host changes `revisionsIn` instead.
351
+ *
352
+ * @internal
353
+ */
354
+ readonly pairsReplacements?: () => boolean;
327
355
  /**
328
356
  * Identifies the measurer for cache invalidation.
329
357
  *
@@ -363,6 +391,8 @@ interface PaginatedSurfaceOptions {
363
391
  /** Show paragraph-end furniture without changing document content. */
364
392
  readonly showParagraphMarks?: boolean;
365
393
  readonly onToggleParagraphMarks?: () => void;
394
+ /** Show bracket marks at bookmarks. Paint-level; the document does not change. */
395
+ readonly showBookmarks?: boolean;
366
396
  /**
367
397
  * How tracked changes are coloured: by AUTHOR (the default), by kind, or by author with
368
398
  * host-pinned colours. A paint-level option like {@link fieldShading}: it changes no
@@ -407,6 +437,12 @@ interface PaginatedSurfaceOptions {
407
437
  * maps it to a public code before it reports anything.
408
438
  */
409
439
  readonly onRejection?: (reason: string) => void;
440
+ /**
441
+ * The pages turned up in another document without a `moveTo`: a host moved the mount
442
+ * element itself (a Vue `Teleport` retargeted, or a plain `appendChild`). The surface has
443
+ * already re-bound its own listeners; the owner re-registers what is per document.
444
+ */
445
+ readonly onHostMoved?: (document: Document) => void;
410
446
  /**
411
447
  * Told the milliseconds of each layout pass and each paint. For `'input'`, told the browser
412
448
  * timestamp of each key press or pointer press on the pages, so a listener can time it to
@@ -433,6 +469,18 @@ interface PaginatedSurfaceOptions {
433
469
  * rather than doing something surprising with it.
434
470
  */
435
471
  readonly onRequestHyperlink?: () => void;
472
+ /**
473
+ * Ctrl/Cmd+Shift+F5: open the host's bookmark dialog. Answers whether chrome took the
474
+ * request; when none did, or when this is absent, the key is left to the browser.
475
+ */
476
+ readonly onRequestBookmark?: () => boolean;
477
+ /** Ctrl+G (Cmd+Option+G on macOS): open the host's Go To UI; answers whether chrome took it. */
478
+ readonly onRequestGoTo?: () => boolean;
479
+ /**
480
+ * The host's Show bookmarks options, read on every paint. `onChange` names the repaint to
481
+ * run when the host changes them.
482
+ */
483
+ readonly bookmarkMarks?: BookmarkMarkOptionsSource;
436
484
  /** Return true when host chrome handles this session. */
437
485
  readonly onRequestTextFormField?: (session: TextFormFieldDialogSession) => boolean;
438
486
  readonly onRequestContentControlWidget?: (session: ContentControlWidgetSession) => boolean;
@@ -656,10 +704,106 @@ interface HyperlinkChromeHandlers {
656
704
  /** Ctrl/Cmd+K: open insert-or-edit for the selection. */
657
705
  readonly onRequest?: () => void;
658
706
  }
707
+ /**
708
+ * Host chrome for bookmarks.
709
+ *
710
+ * @public
711
+ */
712
+ interface BookmarkChromeHandlers {
713
+ /**
714
+ * Open the Bookmark dialog for the selection: the `openBookmarkDialog` command, which the
715
+ * Insert menu row and Ctrl/Cmd+Shift+F5 send.
716
+ */
717
+ readonly onRequest?: () => void;
718
+ }
719
+ /**
720
+ * Host chrome for comment drafts: the review rail, or the host's own comment UI.
721
+ *
722
+ * @public
723
+ */
724
+ interface CommentDraftChromeHandlers {
725
+ /**
726
+ * Open a comment draft on the selection: the `review.addComment` control's press. The
727
+ * handler takes no arguments. It reads the selection with `getSelectionPlacement`, and can
728
+ * pin it with `retainSelection` while the draft is open. The most recent registration
729
+ * receives each request.
730
+ */
731
+ readonly onRequest?: () => void;
732
+ }
733
+ /**
734
+ * Host chrome for Go To: the Go to tab of `DocxEditor.Navigation`, or the host's own.
735
+ *
736
+ * @public
737
+ */
738
+ interface GoToChromeHandlers {
739
+ /** Open the Go To UI: the `openGoTo` command, which its shortcut also sends. */
740
+ readonly onRequest?: () => void;
741
+ /**
742
+ * Whether Ctrl+G (Cmd+Option+G on macOS) in the document opens this UI. Defaults to `true`.
743
+ * With `false` the chord is left to the browser; `openGoTo` still opens the UI. The most
744
+ * recent registration decides. It is read when the chord arrives, so a getter can follow a
745
+ * setting without registering again.
746
+ */
747
+ readonly shortcut?: boolean;
748
+ }
749
+ /**
750
+ * One painted bookmark mark, as `BookmarkMarkOptions` callbacks see it.
751
+ *
752
+ * @public
753
+ */
754
+ interface BookmarkMarkInfo {
755
+ /** The bookmark's name as the document writes it. */
756
+ readonly name: string;
757
+ /** Whether the name starts with an underscore. */
758
+ readonly hidden: boolean;
759
+ /** The story the bookmark is in. */
760
+ readonly story: BookmarkStory;
761
+ /** Which mark this is: the start bracket, the end bracket, or a point bookmark's I-beam. */
762
+ readonly edge: 'start' | 'end' | 'point';
763
+ }
764
+ /**
765
+ * How Show bookmarks paints its marks. Register with `setBookmarkMarks`.
766
+ *
767
+ * @public
768
+ */
769
+ interface BookmarkMarkOptions {
770
+ /**
771
+ * Which bookmarks get marks: `'visible'` (the default) skips hidden bookmarks, `'all'`
772
+ * includes them, and a function decides per bookmark.
773
+ */
774
+ readonly include?: 'visible' | 'all' | ((bookmark: Omit<BookmarkMarkInfo, 'edge'>) => boolean);
775
+ /**
776
+ * Adjust each mark before it is placed: add a class, a `title` tooltip, or attributes.
777
+ * Return another element to replace the mark. The editor positions whatever comes back.
778
+ * Marks ignore the pointer; set `pointer-events: auto` on a mark that shows a tooltip.
779
+ */
780
+ readonly decorate?: (element: HTMLElement, mark: BookmarkMarkInfo) => HTMLElement | void;
781
+ /** Keep the marks when the browser prints the page. Exports never include them. */
782
+ readonly print?: boolean;
783
+ }
659
784
  /** Host chrome that edits a clicked Office Math equation. */
660
785
  interface EquationChromeHandlers {
661
786
  readonly onPopover?: (activation: EquationActivation) => void;
662
787
  }
788
+ /**
789
+ * How {@link DocxEditorInstance.attach} moves an open document.
790
+ *
791
+ * @example
792
+ * ```ts
793
+ * // Bring the editor home from a pop-out and keep typing there.
794
+ * editor.attach(mainSlot, { focus: true });
795
+ * ```
796
+ *
797
+ * @public
798
+ */
799
+ interface AttachOptions {
800
+ /**
801
+ * Focus the pages after the move, so the caret shows and typing continues. Default: focus
802
+ * returns only when the pages had it before the move or the `detach()`. A first mount from
803
+ * bytes does not take focus.
804
+ */
805
+ readonly focus?: boolean;
806
+ }
663
807
  /**
664
808
  * The concrete facade type: the full `Editor` contract plus the instance-only surface.
665
809
  *
@@ -684,6 +828,28 @@ interface DocxEditorInstance extends Editor {
684
828
  * command needs.
685
829
  */
686
830
  setHyperlinkChrome(handlers: HyperlinkChromeHandlers): Unsubscribe;
831
+ /**
832
+ * Wire the host's bookmark dialog to Ctrl/Cmd+Shift+F5. Returns an unsubscribe that
833
+ * restores whatever was registered before, like {@link DocxEditorInstance.setHyperlinkChrome}.
834
+ */
835
+ setBookmarkChrome(handlers: BookmarkChromeHandlers): Unsubscribe;
836
+ /**
837
+ * Wire the host's Go To UI to the `openGoTo` command. Returns an unsubscribe that restores
838
+ * whatever was registered before. `DocxEditor.Navigation` registers its Go to tab.
839
+ */
840
+ setGoToChrome(handlers: GoToChromeHandlers): Unsubscribe;
841
+ /**
842
+ * Wire the host's comment draft UI to the `review.addComment` control. Returns an
843
+ * unsubscribe that restores whatever was registered before. While nothing is registered,
844
+ * the control is disabled, because nothing could open the draft. The review rail registers
845
+ * when it mounts.
846
+ */
847
+ setCommentDraftChrome(handlers: CommentDraftChromeHandlers): Unsubscribe;
848
+ /**
849
+ * Choose which bookmarks Show bookmarks marks and customize each mark. Returns an
850
+ * unsubscribe that restores the previous options.
851
+ */
852
+ setBookmarkMarks(options: BookmarkMarkOptions): Unsubscribe;
687
853
  /**
688
854
  * Register local revision settings chrome. Disposal cancels its active sessions.
689
855
  * Manual renderers take priority over fallback renderers. Pass null to use native chrome
@@ -892,20 +1058,42 @@ interface DocxEditorInstance extends Editor {
892
1058
  */
893
1059
  setReviewPaneOptions(options: ReviewPaneOptions): ExecResult;
894
1060
  /**
895
- * Mount into `el`. If the instance holds pending document bytes (created without a
896
- * container, or previously detached), they mount now — under the shaped measurer when
897
- * fonts have resolved in the meantime. Attaching while already mounted elsewhere moves
898
- * the live content via `session.save()`.
1061
+ * Mount into `el`, which may belong to another document: a pop-out window opened with
1062
+ * `window.open`, or a same-origin iframe.
899
1063
  *
900
- * HONEST COSTS: a mount from bytes is a fresh session — the undo stack and the caret do
901
- * not survive re-attach (the same cost as the async font remount). After `destroy()`
902
- * this is a no-op that emits a typed `error` event: a destroyed instance never remounts.
1064
+ * A document that is already open MOVES into `el`, from another element or from a
1065
+ * previous `detach()`: the undo history, the selection, other editing state (such as an
1066
+ * armed format painter) and any collaboration session stay as they are. The reading
1067
+ * position is kept, and keyboard focus returns when the pages had it before (see
1068
+ * {@link AttachOptions.focus}). Focus, selection, pointer, scroll and resize listeners,
1069
+ * timers and registered font faces follow `el`'s window. Pending document bytes (an
1070
+ * instance created without a container, or a `load` while detached) mount now instead, as
1071
+ * a fresh session.
1072
+ *
1073
+ * The host copies the editor stylesheet and any web fonts it loads into `el`'s document.
1074
+ * Move the editor back, or `destroy()` it, before that window closes. An element whose
1075
+ * window has closed (or that has no window) is refused with an `invalidTarget` error and
1076
+ * the editor stays where it is. After `destroy()` this is a no-op that emits a typed
1077
+ * `error` event: a destroyed instance never remounts.
1078
+ *
1079
+ * @example
1080
+ * ```ts
1081
+ * // Pop the editor out into its own window and bring it back later.
1082
+ * const popup = window.open('', 'editor', 'width=900,height=1000')!;
1083
+ * copyStyles(document, popup.document); // host-owned: the editor CSS and fonts
1084
+ * const slot = popup.document.createElement('div');
1085
+ * popup.document.body.append(slot);
1086
+ * editor.attach(slot);
1087
+ * popup.addEventListener('pagehide', () => editor.attach(mainSlot), { once: true });
1088
+ * ```
903
1089
  */
904
- attach(el: HTMLElement): void;
1090
+ attach(el: HTMLElement, options?: AttachOptions): void;
905
1091
  /**
906
- * Tear down the painted surface, stashing the CURRENT document bytes
907
- * (`session.save()`) so a later `attach` restores the content — but not the undo stack
908
- * or the caret. No-op when already detached or destroyed.
1092
+ * Take the editor out of its element and keep it, with its undo history, selection and
1093
+ * collaboration session, for a later `attach`. While detached the instance still saves,
1094
+ * runs commands and receives remote edits; it paints when attached again. A `load` while
1095
+ * detached replaces the kept document. `destroy()` releases everything. No-op when already
1096
+ * detached or destroyed.
909
1097
  */
910
1098
  detach(): void;
911
1099
  }
@@ -1488,6 +1676,29 @@ interface RemoteCaretLabelHost {
1488
1676
  publish(anchors: readonly RemoteCaretLabelAnchor[]): void;
1489
1677
  }
1490
1678
 
1679
+ /** The surface's bookmark lane. */
1680
+ interface SurfaceBookmarks {
1681
+ /** Every bookmark in the document: body first, then headers, footers and notes. */
1682
+ list(): readonly BookmarkSummary[];
1683
+ /** Why `insert(name)` would be refused now, or null. */
1684
+ insertRefusal(name: string): string | null;
1685
+ /** Bookmark the selection under `name`, moving a bookmark that already has it. */
1686
+ insert(name: string): boolean;
1687
+ /** Remove the bookmark with this name, compared without case, and its copies. */
1688
+ remove(name: string): boolean;
1689
+ /** Keep the first bookmark with this name and remove its copies, in one transaction. */
1690
+ keepFirst(name: string): boolean;
1691
+ /** Why a bookmark write cannot happen now, or null. */
1692
+ writeRefusal(): string | null;
1693
+ /** Select the bookmark's range and scroll it into view. */
1694
+ goTo(name: string): boolean;
1695
+ /** Whether the marks are shown. */
1696
+ shown(): boolean;
1697
+ setShown(shown: boolean): void;
1698
+ /** Paint the marks for one rendered frame. */
1699
+ paint(frame: SurfaceOverlayFrame): void;
1700
+ }
1701
+
1491
1702
  /**
1492
1703
  * What the selection is currently formatted as.
1493
1704
  *
@@ -1514,7 +1725,8 @@ interface SurfaceFormatting {
1514
1725
  /**
1515
1726
  * `w:spacing`'s line rule and its value: LINES for `multiple`, points for the other two
1516
1727
  * (`w:line` is 240ths of a line under `auto` and twentieths of a point otherwise).
1517
- * Null when the selection's paragraphs disagree, or state no line spacing at all.
1728
+ * The effective value: a paragraph whose cascade states none reads as single spacing
1729
+ * (`multiple`, 1). Null when the selection's paragraphs disagree.
1518
1730
  */
1519
1731
  readonly lineSpacing: {
1520
1732
  readonly rule: 'multiple' | 'exact' | 'atLeast';
@@ -1686,12 +1898,16 @@ interface PaginatedSurface {
1686
1898
  readonly commitGuard?: () => boolean;
1687
1899
  }): Promise<ImageIntentResult>;
1688
1900
  layout(): SemanticLayout;
1901
+ /** The measurer layout uses; sizes engine-authored shapes such as a watermark. */
1902
+ textMeasurer?(): TextMeasurer;
1689
1903
  state(): PaginatedSurfaceState;
1690
1904
  /** One-based page at the caret, or at the centre of the mounted viewport. */
1691
1905
  currentPage(mode?: 'viewport' | 'caret'): number;
1692
1906
  type(text: string): void;
1693
1907
  /** Author one explicit tracked text change without changing the editing mode. */
1694
1908
  proposeTextChange(kind: 'insertion' | 'deletion' | 'replacement', text: string, author?: string): boolean;
1909
+ /** Replace a paragraph range of the active story in place; suggesting tracks it. */
1910
+ replaceTextInPlace(paragraphId: string, start: number, end: number, text: string): boolean;
1695
1911
  /**
1696
1912
  * Queue plain typed text for a batched commit at the caret.
1697
1913
  *
@@ -2055,6 +2271,11 @@ interface PaginatedSurface {
2055
2271
  * with code `destroyed`. Does not change focus.
2056
2272
  */
2057
2273
  save(): Uint8Array;
2274
+ /**
2275
+ * {@link save} in steps a caller can pause between. Everything `save` does before it
2276
+ * serializes happens at the call, and the document is captured then.
2277
+ */
2278
+ saveSteps(): Generator<void, Uint8Array>;
2058
2279
  /** Whether a body paragraph belongs to a detected TOC boundary or cached result. */
2059
2280
  isInsideToc(paragraphId: string): boolean;
2060
2281
  /**
@@ -2062,6 +2283,8 @@ interface PaginatedSurface {
2062
2283
  * calls `openExternal`; nothing else in the engine may call `window.open`.
2063
2284
  */
2064
2285
  readonly navigation: SurfaceNavigation;
2286
+ /** List, add, delete and jump to bookmarks, and show their marks. */
2287
+ readonly bookmarkEditing: SurfaceBookmarks;
2065
2288
  /**
2066
2289
  * Pin the current selection so it stays VISIBLY selected while focus is elsewhere.
2067
2290
  *
@@ -2198,11 +2421,19 @@ interface PaginatedSurface {
2198
2421
  * pages painting text the tree no longer had, every card anchored where it used to be, and
2199
2422
  * the caret past the end of the paragraph — after which every keystroke was refused with
2200
2423
  * `offset-out-of-range` until the user happened to click somewhere else.
2424
+ *
2425
+ * Returns null when the write went through, and otherwise why it did not: the external
2426
+ * refresh when the write guard skipped the commit, a gate's reason (viewing, collaboration)
2427
+ * when `run` never ran, or the reason `run` reported. A `run` that commits nothing without a
2428
+ * reason counts as refused (`'rejected'`). Gate and `run` reasons also become
2429
+ * `lastRejection`; a skipped refresh changes nothing, `lastRejection` included.
2430
+ *
2431
+ * `run` receives the store history token of this commit, for the store write it performs.
2201
2432
  */
2202
- commitReviewOps(run: () => {
2433
+ commitReviewOps(run: (historyToken: symbol | undefined) => {
2203
2434
  readonly committed: boolean;
2204
2435
  readonly reason?: unknown;
2205
- }, intent?: ReviewWriteIntent): void;
2436
+ }, intent?: ReviewWriteIntent): string | null;
2206
2437
  /**
2207
2438
  * The layout as last PUBLISHED, without forcing pending work.
2208
2439
  *
@@ -2258,9 +2489,11 @@ interface PaginatedSurface {
2258
2489
  * other order repainted the bands and reported state while the caret was still the only
2259
2490
  * evidence, so a host saw the wrong twin active for one frame and then a correction. Omit it
2260
2491
  * to pin against the live selection, which is what a header or note scope has already set.
2492
+ * `preventScroll` installs `selection` with no scroll, now or on a later repaint.
2261
2493
  */
2262
2494
  activateReview(key: string, selection?: SemanticSelection, options?: {
2263
2495
  readonly allowExcluded?: boolean;
2496
+ readonly preventScroll?: boolean;
2264
2497
  }): void;
2265
2498
  /**
2266
2499
  * The key {@link activateReview} pinned, or null once its selection is no longer live.
@@ -2338,6 +2571,25 @@ interface PaginatedSurface {
2338
2571
  * @public
2339
2572
  */
2340
2573
  setTableInteractionLabel(resolver: (key: 'table.insertRowBelow' | 'table.insertColumnRight') => string): void;
2574
+ /**
2575
+ * Move the painted pages into `container`, which may belong to another document: a pop-out
2576
+ * window or an iframe. The session, undo history, selection and collaboration replica stay
2577
+ * as they are; only the DOM and the document- and window-level listeners move. Open
2578
+ * content-control menus close.
2579
+ */
2580
+ moveTo(container: HTMLElement, options?: {
2581
+ readonly focus?: boolean;
2582
+ }): void;
2583
+ /**
2584
+ * Take the pages out of their container and keep them, with all editing state, for a later
2585
+ * `moveTo`. A parked surface still accepts commands and remote edits; it paints into a
2586
+ * private, disconnected holder until it moves again.
2587
+ */
2588
+ park(): void;
2589
+ /** Whether the surface is parked: mounted nowhere, state kept. */
2590
+ parked(): boolean;
2591
+ /** The element the pages are in now: the host's, or a private holder while parked. */
2592
+ hostElement(): HTMLElement;
2341
2593
  destroy(): void;
2342
2594
  /**
2343
2595
  * The section a painted page belongs to, and the page that section starts on.
@@ -2387,8 +2639,10 @@ interface PaginatedSurface {
2387
2639
  * Flushes layout so the next enter/rebind sees the new resolution.
2388
2640
  */
2389
2641
  applyHeaderFooterLifecycle(op: {
2390
- readonly op: 'createHeaderFooter' | 'deleteHeaderFooter' | 'linkToPrevious' | 'unlinkFromPrevious' | 'setSectionFurnitureOptions' | 'setDocumentProtection';
2642
+ readonly op: 'createHeaderFooter' | 'deleteHeaderFooter' | 'linkToPrevious' | 'unlinkFromPrevious' | 'setSectionFurnitureOptions' | 'setDocumentProtection' | 'setWatermark';
2391
2643
  readonly sectionIndex?: number;
2644
+ /** `setWatermark` only: the new watermark, or null to remove it. */
2645
+ readonly watermark?: PackageWatermarkWrite | null;
2392
2646
  /** `setDocumentProtection` only: enforce filling-in-forms protection, or lift it. */
2393
2647
  readonly enforce?: boolean;
2394
2648
  readonly kind?: 'header' | 'footer';
@@ -3130,6 +3384,15 @@ declare const CHROME_GROUPS: readonly [{
3130
3384
  readonly state: {
3131
3385
  readonly kind: 'command';
3132
3386
  };
3387
+ }, {
3388
+ readonly id: 'bookmarks';
3389
+ readonly shape: 'icon';
3390
+ readonly labelKey: 'formattingBar.showBookmarks';
3391
+ readonly defaultToolbar: false;
3392
+ readonly paths: readonly string[];
3393
+ readonly state: {
3394
+ readonly kind: 'command';
3395
+ };
3133
3396
  }, {
3134
3397
  readonly id: 'protectDocument';
3135
3398
  readonly shape: 'icon';
@@ -3439,6 +3702,27 @@ declare const CHROME_GROUPS: readonly [{
3439
3702
  readonly state: {
3440
3703
  readonly kind: 'command';
3441
3704
  };
3705
+ }, {
3706
+ readonly id: 'bookmark';
3707
+ readonly labelKey: 'toolbar.bookmark';
3708
+ readonly paths: readonly string[];
3709
+ readonly state: {
3710
+ readonly kind: 'command';
3711
+ };
3712
+ }, {
3713
+ readonly id: 'goToBookmark';
3714
+ readonly labelKey: 'toolbar.goToBookmark';
3715
+ readonly paths: readonly string[];
3716
+ readonly state: {
3717
+ readonly kind: 'command';
3718
+ };
3719
+ }, {
3720
+ readonly id: 'watermark';
3721
+ readonly labelKey: 'toolbar.watermark';
3722
+ readonly paths: readonly string[];
3723
+ readonly state: {
3724
+ readonly kind: 'command';
3725
+ };
3442
3726
  }];
3443
3727
  }];
3444
3728
  /**
@@ -3455,7 +3739,7 @@ type ChromeGroupId = 'history' | 'zoom' | 'styles' | 'font' | 'text' | 'script'
3455
3739
  *
3456
3740
  * @public
3457
3741
  */
3458
- type ChromeSlotId = 'history.undo' | 'history.redo' | 'zoom.level' | 'styles.style' | 'font.family' | 'font.size' | 'text.bold' | 'text.italic' | 'text.underline' | 'text.strike' | 'text.color' | 'text.highlight' | 'text.link' | 'script.super' | 'script.sub' | 'alignment.left' | 'alignment.center' | 'alignment.right' | 'alignment.justify' | 'direction.ltr' | 'direction.rtl' | 'list.bullet' | 'list.numbered' | 'list.outdent' | 'list.indent' | 'list.lineSpacing' | 'format.painter' | 'format.clear' | 'review.revisionMarkup' | 'review.comments' | 'review.addComment' | 'review.paragraphMarks' | 'review.protectDocument' | 'review.simpleMarkup' | 'review.allMarkup' | 'review.noMarkup' | 'review.original' | 'review.previousChange' | 'review.nextChange' | 'review.acceptAllChanges' | 'review.rejectAllChanges' | 'review.authors' | 'review.editingMode' | 'contentControl.showAll' | 'contentControl.formFill' | 'contentControl.inspector' | 'contentControl.remove' | 'image.insert' | 'image.properties' | 'image.wrap' | 'image.altText' | 'table.insert' | 'table.borderTarget' | 'table.borderColor' | 'table.borderStyle' | 'table.borderWidth' | 'table.cellFill' | 'file.open' | 'file.save' | 'file.exportMarkdown' | 'file.exportPdf' | 'file.print' | 'paragraph.dialog' | 'file.pageSetup' | 'insert.textBox' | 'insert.footnote' | 'insert.endnote' | 'insert.pageNumber' | 'insert.totalPages' | 'insert.sectionPages' | 'insert.pageXofY' | 'insert.pageBreak' | 'insert.sectionBreakNextPage' | 'insert.sectionBreakContinuous' | 'insert.toc';
3742
+ type ChromeSlotId = 'history.undo' | 'history.redo' | 'zoom.level' | 'styles.style' | 'font.family' | 'font.size' | 'text.bold' | 'text.italic' | 'text.underline' | 'text.strike' | 'text.color' | 'text.highlight' | 'text.link' | 'script.super' | 'script.sub' | 'alignment.left' | 'alignment.center' | 'alignment.right' | 'alignment.justify' | 'direction.ltr' | 'direction.rtl' | 'list.bullet' | 'list.numbered' | 'list.outdent' | 'list.indent' | 'list.lineSpacing' | 'format.painter' | 'format.clear' | 'review.revisionMarkup' | 'review.comments' | 'review.addComment' | 'review.paragraphMarks' | 'review.bookmarks' | 'review.protectDocument' | 'review.simpleMarkup' | 'review.allMarkup' | 'review.noMarkup' | 'review.original' | 'review.previousChange' | 'review.nextChange' | 'review.acceptAllChanges' | 'review.rejectAllChanges' | 'review.authors' | 'review.editingMode' | 'contentControl.showAll' | 'contentControl.formFill' | 'contentControl.inspector' | 'contentControl.remove' | 'image.insert' | 'image.properties' | 'image.wrap' | 'image.altText' | 'table.insert' | 'table.borderTarget' | 'table.borderColor' | 'table.borderStyle' | 'table.borderWidth' | 'table.cellFill' | 'file.open' | 'file.save' | 'file.exportMarkdown' | 'file.exportPdf' | 'file.print' | 'paragraph.dialog' | 'file.pageSetup' | 'insert.textBox' | 'insert.footnote' | 'insert.endnote' | 'insert.pageNumber' | 'insert.totalPages' | 'insert.sectionPages' | 'insert.pageXofY' | 'insert.pageBreak' | 'insert.sectionBreakNextPage' | 'insert.sectionBreakContinuous' | 'insert.toc' | 'insert.bookmark' | 'insert.goToBookmark' | 'insert.watermark';
3459
3743
  /**
3460
3744
  * Every control id in the chrome, as a literal union. Unique WITHIN a group, not
3461
3745
  * globally (`image.insert` / `table.insert`) — key consumers on {@link ChromeSlotId}.
@@ -3787,7 +4071,8 @@ declare function runTableCommand(editor: Editor | null, command: EditorCommand,
3787
4071
  *
3788
4072
  * Construction is separate from mounting. Pass a `container` and the document mounts
3789
4073
  * immediately; omit it and nothing touches the DOM until `attach(el)` — the provider-first
3790
- * shape. `detach()` remounts from the saved bytes, which resets undo and the caret.
4074
+ * shape. `detach()` parks the live document and a later `attach(el)` moves it in, with undo,
4075
+ * selection and collaboration intact, even into another window (a pop-out or an iframe).
3791
4076
  *
3792
4077
  * `snapshot()` is version-cached: the same reference until state actually moves, with
3793
4078
  * reference-stable sub-objects, so it is safe as a `useSyncExternalStore` source.
@@ -3924,5 +4209,5 @@ interface ChromePrintJob {
3924
4209
  */
3925
4210
  declare function runChromePrint(editor: Pick<Editor, 'save'> & Partial<Pick<Editor, 'snapshot'>>, handlers?: ChromeExportHandlers, container?: Document | Element): Promise<ChromePrintJob>;
3926
4211
 
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 };
4212
+ export { CHROME_GROUPS as C, bindHistoryGroup as J, blankDocumentBytes as K, chromeMenuSlots as M, commandForSlot as N, commandForSlotValue as O, createDocxEditor as P, createFontSource as Q, customFonts as R, isChromePrintShortcut as U, loadFonts as V, runChromeExport as W, runChromePrint as X, runToolbarCommand as Y, toolbarCommandState as Z, CHROME_UNAVAILABLE_KEY as a7, TABLE_BORDER_STYLE_OPTIONS as aO, TABLE_BORDER_TARGET_OPTIONS as aP, TABLE_BORDER_WIDTH_OPTIONS as aQ, TABLE_CHROME_SLOT_IDS as aR, DEFAULT_TABLE_CHROME_DRAFT as ag, EMU_PER_POINT as ai, IMAGE_OVERLAY_NUDGE_PT as ap, IMAGE_OVERLAY_NUDGE_SHIFT_PT as aq, CHROME_MENUS as b, applyTableChromePick as b3, canExecuteImageCommand as b4, captureImageMutationPreconditions as b5, chromeControlCount as b6, chromeProbeForSlot as b7, chromeSlotId as b8, chromeSlotIsToggle as b9, selectedImageStateOf as bA, surfacePaintScale as bB, tableChromeIconPaths as bC, tableChromeLabelKeyForTarget as bD, tableChromeToolbarState as bE, tableChromeVisible as bF, tableCommandToolbarState as bG, toolbarCommandStates as bH, commandExecOptions as ba, commandForTableChromeSlotValue as bb, computeImageResizeResult as bc, computeMovedImagePosition as bd, computeResizedImageExtentEmu as be, createImageOverlayScrollPort as bf, cssPixelsToLayoutPoints as bg, defaultChromeGroups as bh, defaultTableLabel as bi, emuToOverlayPoints as bj, equationAtPosition as bk, executeImageCommand as bl, finalizeImageOverlayInteraction as bm, formattingBarChromeGroups as bn, isStaleImageInteractionCommit as bo, isTableChromeSlot as bp, layoutPointsToCssPixels as bq, overlayFrameToSheetCssPixels as br, overlayHostOrigin as bs, pointsToEmu as bt, probeTableChromeCommand as bu, resizePreservesAspect as bv, runSave as bw, runTableChromeCommand as bx, runTableCommand as by, selectedDrawingOverlayTargetOf as bz, ChromeExportError as c, ChromePrintError as m };
4213
+ export type { OpenPaginatedResult as $, HyperlinkChromeHandlers as A, BookmarkMarkInfo as B, DocxEditorConfig as D, LoadFontsResult as E, FontLoadFailure as F, GoToChromeHandlers as G, HistoryGroupBinding as H, LockedControlNavigation as I, LoadFontsRequest as L, SurfaceHyperlink as S, ToolbarCommandState as T, PaginatedSurfaceOptions as _, BookmarkMarkOptions as a, TextFormFieldDialogSession as a$, PaginatedSurface as a0, TableCommandPlan as a1, SurfaceFormatting as a2, AnchorFrameOrigin as a3, AttachOptions as a4, BookmarkChromeHandlers as a5, BookmarkMarkOptionsSource as a6, ChromeControl as a8, ChromeControlId as a9, ParagraphPropertyEdit as aA, PopupChromeRegistrationOptions as aB, RemoteCaretLabelAnchor as aC, RemoteCaretLabelHost as aD, ReviewWriteIntent as aE, RunTableChromeCommandResult as aF, SectionAnchor as aG, SectionBreakInsertType as aH, SelectedDrawingOverlayTarget as aI, SurfaceEquation as aJ, SurfaceInsertImageInput as aK, SurfaceNavigation as aL, SurfaceOverlayCoordinates as aM, SurfaceParagraphFormat as aN, TableBorderStyleOption as aS, TableBorderTargetOption as aT, TableBorderTargetValue as aU, TableBorderWidthOption as aV, TableChromeDraft as aW, TableChromePick as aX, TableChromeSlotId as aY, TableInteractionLabelKey as aZ, TextFormFieldChromeHandlers as a_, ChromeControlState as aa, ChromeExportView as ab, ChromeGroup as ac, ChromeGroupId as ad, ContentControlWidgetChromeHandlers as ae, ContentControlWidgetSession as af, DrawingSelectionIntent as ah, EditorCommandExecute as aj, EquationActivation as ak, EquationChromeHandlers as al, EquationOps as am, FinalizedImageOverlayInteraction as an, HyperlinkOps as ao, ImageInteractionSession as ar, ImageOverlayScrollPort as as, ImageResizeHandle as at, ImageResizeResult as au, InvalidTextFormFieldChromeHandlers as av, InvalidTextFormFieldSession as aw, OpeningIndicatorHost as ax, OverlayFrameRect as ay, PaginatedSurfaceState as az, ToolbarSlotValue as b0, ToolbarValueMap as b1, ToolbarValueSlot as b2, ChromeExportFormat as d, ChromeExportHandlers as e, ChromeExportResult as f, ChromeMenu as g, ChromeMenuEntry as h, ChromeMenuId as i, ChromeMenuItemEntry as j, ChromeMenuSeparatorEntry as k, ChromeMenuSubmenuEntry as l, ChromePrintErrorCode as n, ChromePrintJob as o, ChromePrintOptions as p, ChromeSlotId as q, CommentDraftChromeHandlers as r, CustomFontsOptions as s, CustomFontsResolver as t, DocxEditorInstance as u, FontLoadFailureReason as v, FontMeasurementState as w, FontUrlSource as x, HistoryGroupBindingOptions as y, HyperlinkActivation as z };