@docx-editor.dev/core 2.9.1 → 2.10.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 (94) hide show
  1. package/dist/automation.cjs +1 -1
  2. package/dist/automation.js +1 -1
  3. package/dist/binding.cjs +1 -1
  4. package/dist/binding.d.cts +74 -10
  5. package/dist/binding.d.ts +74 -10
  6. package/dist/binding.js +1 -1
  7. package/dist/chunk-27APDXY2.js +2 -0
  8. package/dist/chunk-35MI6K7M.cjs +10 -0
  9. package/dist/chunk-4XL7SOWQ.cjs +2 -0
  10. package/dist/chunk-6K6QQVAZ.cjs +18 -0
  11. package/dist/chunk-7ZJL5AEY.cjs +1 -0
  12. package/dist/chunk-C6LK2BYA.cjs +2 -0
  13. package/dist/chunk-HBEBUCRM.cjs +5 -0
  14. package/dist/chunk-LG5K46OM.js +2 -0
  15. package/dist/chunk-LWADHMVV.js +5 -0
  16. package/dist/chunk-N725IUO7.js +18 -0
  17. package/dist/chunk-N7DBENH4.js +10 -0
  18. package/dist/chunk-NVGFWMCO.js +1 -0
  19. package/dist/chunk-SYTWKJPJ.cjs +18 -0
  20. package/dist/chunk-YI6JXF7U.js +18 -0
  21. package/dist/contracts/document.d.cts +6 -1
  22. package/dist/contracts/document.d.ts +6 -1
  23. package/dist/contracts/editor.d.cts +6 -6
  24. package/dist/contracts/editor.d.ts +6 -6
  25. package/dist/contracts/interaction.d.cts +6 -6
  26. package/dist/contracts/interaction.d.ts +6 -6
  27. package/dist/contracts/modules.d.cts +3 -4
  28. package/dist/contracts/modules.d.ts +3 -4
  29. package/dist/{custom-node-writes-QyVZdTUA.d.ts → custom-node-writes-BvpWCnW8.d.ts} +52 -5
  30. package/dist/{custom-node-writes-7ERv0f_X.d.cts → custom-node-writes-Db8H6Z3n.d.cts} +52 -5
  31. package/dist/{editor-PUlv5Pp7.d.ts → editor-C0my6Uta.d.ts} +35 -14
  32. package/dist/{editor-CojjwMmF.d.cts → editor-CwzY2Hcg.d.cts} +35 -14
  33. package/dist/editor.cjs +1 -1
  34. package/dist/editor.css +66 -461
  35. package/dist/editor.d.cts +20 -20
  36. package/dist/editor.d.ts +20 -20
  37. package/dist/editor.js +1 -1
  38. package/dist/{index-oN-v8DQ5.d.ts → index-kID8Ymkp.d.ts} +126 -20
  39. package/dist/{index-DGPSeLI0.d.cts → index-nLFwo_17.d.cts} +126 -20
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.d.cts +13 -13
  42. package/dist/index.d.ts +13 -13
  43. package/dist/index.js +1 -1
  44. package/dist/layout.cjs +1 -1
  45. package/dist/layout.d.cts +357 -310
  46. package/dist/layout.d.ts +357 -310
  47. package/dist/layout.js +1 -1
  48. package/dist/output.cjs +1 -1
  49. package/dist/output.d.cts +6 -6
  50. package/dist/output.d.ts +6 -6
  51. package/dist/output.js +1 -1
  52. package/dist/{review-items-DpsqTHio.d.cts → review-items-CwixiHNe.d.cts} +1 -1
  53. package/dist/{review-items-D5SPFtsO.d.ts → review-items-Dw-8a6Ie.d.ts} +1 -1
  54. package/dist/{review-reads-CP106AHp.d.cts → review-reads-BqkiJTeR.d.cts} +1 -1
  55. package/dist/{review-reads-B2Ji3fVU.d.ts → review-reads-C0u-IKEA.d.ts} +1 -1
  56. package/dist/{semantic-cell-selection-DJPjBWzf.d.cts → semantic-cell-selection-DT9x9WLf.d.cts} +2 -2
  57. package/dist/{semantic-cell-selection-BWhVAk5B.d.ts → semantic-cell-selection-Utrf0lz7.d.ts} +2 -2
  58. package/dist/{semantic-interaction-BjOcDB06.d.cts → semantic-interaction-B6hFRQLy.d.ts} +21 -2
  59. package/dist/{semantic-interaction-Cca1-X_a.d.ts → semantic-interaction-Z0xKQcB4.d.cts} +21 -2
  60. package/dist/{semantic-paint-CufpIQFw.d.ts → semantic-paint-CQEOC0Od.d.cts} +2 -2
  61. package/dist/{semantic-paint-Ur7pAINj.d.cts → semantic-paint-quke354p.d.ts} +2 -2
  62. package/dist/{semantic-records-C3Z76KeN.d.cts → semantic-records-CMakzQ1X.d.cts} +36 -4
  63. package/dist/{semantic-records-Cc1MJrhM.d.ts → semantic-records-Do3-i5oB.d.ts} +36 -4
  64. package/dist/{shaped-measurer-CwlTPDJO.d.ts → shaped-measurer-BxwTUluj.d.ts} +1 -1
  65. package/dist/{shaped-measurer-CYSK20E2.d.cts → shaped-measurer-DzRwWrL5.d.cts} +1 -1
  66. package/dist/store.cjs +1 -1
  67. package/dist/store.d.cts +250 -134
  68. package/dist/store.d.ts +250 -134
  69. package/dist/store.js +1 -1
  70. package/dist/tree-op-revision-attribution-CN06Xshv.d.cts +24 -0
  71. package/dist/tree-op-revision-attribution-CN06Xshv.d.ts +24 -0
  72. package/dist/{tree-op-types-XMVsJSpe.d.ts → tree-op-types-BuOfCrkp.d.ts} +280 -32
  73. package/dist/{tree-op-types-B0-sCtw-.d.cts → tree-op-types-DSJYmf5b.d.cts} +280 -32
  74. package/dist/{tree-session-D945D43B.d.cts → tree-session-contract-ByWx8eew.d.cts} +44 -104
  75. package/dist/{tree-session-DBJgmdmc.d.ts → tree-session-contract-C1dfE9hy.d.ts} +44 -104
  76. package/dist/{tree-store-ClA-qng4.d.ts → tree-store-ASBtz7UB.d.ts} +1 -1
  77. package/dist/{tree-store-C6vc8E_2.d.cts → tree-store-CWOUMGN8.d.cts} +1 -1
  78. package/package.json +2 -2
  79. package/dist/chunk-5VC5HGJA.js +0 -2
  80. package/dist/chunk-A2JIBG75.js +0 -1
  81. package/dist/chunk-DKMKH77K.cjs +0 -5
  82. package/dist/chunk-FWUI7EXG.cjs +0 -15
  83. package/dist/chunk-GZWMLQJO.js +0 -18
  84. package/dist/chunk-IEXDXWTA.cjs +0 -1
  85. package/dist/chunk-IMMAG4QP.cjs +0 -10
  86. package/dist/chunk-JTSNJQFO.js +0 -15
  87. package/dist/chunk-KBCC66CI.js +0 -5
  88. package/dist/chunk-LJ6BY6IU.cjs +0 -18
  89. package/dist/chunk-QDBAXFIK.js +0 -2
  90. package/dist/chunk-RD266XSK.cjs +0 -2
  91. package/dist/chunk-VUJGPCPU.js +0 -10
  92. package/dist/chunk-XMHWBL3K.cjs +0 -2
  93. package/dist/image-resources-DQOiwOuE.d.cts +0 -203
  94. package/dist/image-resources-eZqD_-vC.d.ts +0 -203
@@ -62,9 +62,14 @@ interface DocEdits {
62
62
  removeHyperlink: {
63
63
  target: DocTarget;
64
64
  };
65
+ /**
66
+ * `'section'` is Word's Next Page break; `'sectionContinuous'` keeps the new section on
67
+ * the sheet the previous one ended, which is how a mid-page column or margin change is
68
+ * authored. `'column'` belongs to the multi-column lane and is refused for now.
69
+ */
65
70
  insertBreak: {
66
71
  target: DocTarget;
67
- kind: 'page' | 'column' | 'line' | 'section';
72
+ kind: 'page' | 'column' | 'line' | 'section' | 'sectionContinuous';
68
73
  };
69
74
  /**
70
75
  * Word's Increase/Decrease Indent.
@@ -62,9 +62,14 @@ interface DocEdits {
62
62
  removeHyperlink: {
63
63
  target: DocTarget;
64
64
  };
65
+ /**
66
+ * `'section'` is Word's Next Page break; `'sectionContinuous'` keeps the new section on
67
+ * the sheet the previous one ended, which is how a mid-page column or margin change is
68
+ * authored. `'column'` belongs to the multi-column lane and is refused for now.
69
+ */
65
70
  insertBreak: {
66
71
  target: DocTarget;
67
- kind: 'page' | 'column' | 'line' | 'section';
72
+ kind: 'page' | 'column' | 'line' | 'section' | 'sectionContinuous';
68
73
  };
69
74
  /**
70
75
  * Word's Increase/Decrease Indent.
@@ -1,11 +1,11 @@
1
1
  export { ContentControlSummary, DocEdits, DocQueries, DocQueryResults, ParagraphSummary } from './document.cjs';
2
- export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-DpsqTHio.cjs';
3
- export { A as AuthoredNoteNumbering, C as CanResult, q as DocumentChange, r as DocumentEditingMode, t as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, u as EditorCommandShape, w as EditorCommands, x as EditorError, y as EditorEvents, E as EditorFontError, z as EditorFontErrorCode, B as EditorHeaderFooterCommands, G as EditorNoteCommands, H as EditorPosition, J as EditorQueries, K as EditorQuery, L as EditorQueryResults, M as EditorScope, N as EditorSelection, a as EditorSnapshot, F as FontConfiguration, m as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, n as TableBorderSpec, o as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, p as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-CojjwMmF.cjs';
4
- export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-BjOcDB06.cjs';
2
+ export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-CwixiHNe.cjs';
3
+ export { A as AuthoredNoteNumbering, C as CanResult, q as DocumentChange, r as DocumentEditingMode, t as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, u as EditorCommandShape, w as EditorCommands, x as EditorError, y as EditorEvents, E as EditorFontError, z as EditorFontErrorCode, B as EditorHeaderFooterCommands, G as EditorNoteCommands, H as EditorPosition, J as EditorQueries, K as EditorQuery, L as EditorQueryResults, M as EditorScope, N as EditorSelection, a as EditorSnapshot, F as FontConfiguration, m as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, n as TableBorderSpec, o as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, p as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-CwzY2Hcg.cjs';
4
+ export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-Z0xKQcB4.cjs';
5
5
  export { Block, ColorValue, ContainerRef, ContentControl, ContentControlFilter, ContentControlType, DocAnchor, DocAnchorRange, DocComment, DocLocation, DocRange, DocTarget, DocumentBody, DocxDocument, DocxDocumentJSON, ExecErrorCode, ExecResult, Extent, FontDefinition, HeaderFooterSet, IndentFormatting, InsertableContentControlType, NumberingRef, PageMargins, Paragraph, ParagraphDisagreements, ParagraphFlags, ParagraphFormatCommand, ParagraphTabStop, Point, Rect, Revision, RevisionType, Run, RunFormatting, Section, SectionProperties, SelectionPin, StyleDefinition, StyleDefinitions, Table, TableCell, TableRow, Theme, ThemeColorScheme, Unsubscribe, Watermark } from './types.cjs';
6
- export { f as DrawingHorizontalReferenceFrame, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, R as RevisionAddress } from '../tree-op-types-B0-sCtw-.cjs';
7
- export { I as ImageResourceState, P as PreservedImageMime, R as RenderableImageMime, S as SupportedImageMime, V as ValidatedImageBytesHandle, a as VectorImageMime } from '../image-resources-DQOiwOuE.cjs';
6
+ export { g as DrawingHorizontalReferenceFrame, D as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, h as DrawingVerticalReferenceFrame, f as ImageResourceState, b as ImageWrapTarget, P as PreservedImageMime, R as RenderableImageMime, c as SupportedImageMime, V as ValidatedImageBytesHandle, i as VectorImageMime } from '../tree-op-types-DSJYmf5b.cjs';
7
+ export { R as RevisionAddress } from '../tree-op-revision-attribution-CN06Xshv.cjs';
8
8
  import '../ooxml-package-CdEy9ufK.cjs';
9
- import '../semantic-records-C3Z76KeN.cjs';
9
+ import '../semantic-records-CMakzQ1X.cjs';
10
10
  import '../revision-projection-Cc4wz30g.cjs';
11
11
  import '../omml-equation-BD-LsmWE.cjs';
@@ -1,11 +1,11 @@
1
1
  export { ContentControlSummary, DocEdits, DocQueries, DocQueryResults, ParagraphSummary } from './document.js';
2
- export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-D5SPFtsO.js';
3
- export { A as AuthoredNoteNumbering, C as CanResult, q as DocumentChange, r as DocumentEditingMode, t as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, u as EditorCommandShape, w as EditorCommands, x as EditorError, y as EditorEvents, E as EditorFontError, z as EditorFontErrorCode, B as EditorHeaderFooterCommands, G as EditorNoteCommands, H as EditorPosition, J as EditorQueries, K as EditorQuery, L as EditorQueryResults, M as EditorScope, N as EditorSelection, a as EditorSnapshot, F as FontConfiguration, m as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, n as TableBorderSpec, o as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, p as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-PUlv5Pp7.js';
4
- export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-Cca1-X_a.js';
2
+ export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind } from '../review-items-Dw-8a6Ie.js';
3
+ export { A as AuthoredNoteNumbering, C as CanResult, q as DocumentChange, r as DocumentEditingMode, t as DocumentHandle, D as DocumentSource, l as Editor, b as EditorCommand, u as EditorCommandShape, w as EditorCommands, x as EditorError, y as EditorEvents, E as EditorFontError, z as EditorFontErrorCode, B as EditorHeaderFooterCommands, G as EditorNoteCommands, H as EditorPosition, J as EditorQueries, K as EditorQuery, L as EditorQueryResults, M as EditorScope, N as EditorSelection, a as EditorSnapshot, F as FontConfiguration, m as FontFaceRequest, j as FontSource, k as FontSourceSubstitution, O as FurnitureVariant, P as HeaderFooterSlotArgs, Q as HeaderFooterState, R as HyperlinkInfo, I as ImageContext, c as ImageCropPercent, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, Y as NoteKind, _ as NotePropertiesSide, $ as NotePropertiesState, a0 as PageSetup, a1 as ResolvedNoteNumbering, a2 as ReviewActivationOptions, a3 as ReviewCommentPlacement, a4 as ReviewCustomPlacement, a5 as ReviewItemPlacement, a6 as ReviewItemPlacementBase, a7 as ReviewItemQuery, a8 as ReviewRevisionPlacement, S as SelectedImageState, a9 as SemanticIdentity, aa as SemanticTarget, T as TableBorderEdgeTarget, n as TableBorderSpec, o as TableBorderStyle, ab as TableBorderTarget, ac as TableCellVerticalAlignment, ad as TableColumnDividerResizeTarget, ae as TableColumnOccurrenceTarget, p as TableContext, af as TableRightEdgeResizeTarget, ag as TableRowOccurrenceTarget, ah as TextMatch, V as ViewScope, ai as ZoomFitTarget, Z as ZoomMode } from '../editor-C0my6Uta.js';
4
+ export { S as SemanticPosition, a as SemanticSelection } from '../semantic-interaction-B6hFRQLy.js';
5
5
  export { Block, ColorValue, ContainerRef, ContentControl, ContentControlFilter, ContentControlType, DocAnchor, DocAnchorRange, DocComment, DocLocation, DocRange, DocTarget, DocumentBody, DocxDocument, DocxDocumentJSON, ExecErrorCode, ExecResult, Extent, FontDefinition, HeaderFooterSet, IndentFormatting, InsertableContentControlType, NumberingRef, PageMargins, Paragraph, ParagraphDisagreements, ParagraphFlags, ParagraphFormatCommand, ParagraphTabStop, Point, Rect, Revision, RevisionType, Run, RunFormatting, Section, SectionProperties, SelectionPin, StyleDefinition, StyleDefinitions, Table, TableCell, TableRow, Theme, ThemeColorScheme, Unsubscribe, Watermark } from './types.js';
6
- export { f as DrawingHorizontalReferenceFrame, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, R as RevisionAddress } from '../tree-op-types-XMVsJSpe.js';
7
- export { I as ImageResourceState, P as PreservedImageMime, R as RenderableImageMime, S as SupportedImageMime, V as ValidatedImageBytesHandle, a as VectorImageMime } from '../image-resources-eZqD_-vC.js';
6
+ export { g as DrawingHorizontalReferenceFrame, D as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, h as DrawingVerticalReferenceFrame, f as ImageResourceState, b as ImageWrapTarget, P as PreservedImageMime, R as RenderableImageMime, c as SupportedImageMime, V as ValidatedImageBytesHandle, i as VectorImageMime } from '../tree-op-types-BuOfCrkp.js';
7
+ export { R as RevisionAddress } from '../tree-op-revision-attribution-CN06Xshv.js';
8
8
  import '../ooxml-package-CdEy9ufK.js';
9
- import '../semantic-records-Cc1MJrhM.js';
9
+ import '../semantic-records-Do3-i5oB.js';
10
10
  import '../revision-projection-CILpvv4M.js';
11
11
  import '../omml-equation-Dd3mBep-.js';
@@ -1,11 +1,11 @@
1
- export { M as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-CojjwMmF.cjs';
1
+ export { M as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-CwzY2Hcg.cjs';
2
2
  import './document.cjs';
3
3
  import './types.cjs';
4
- import '../review-items-DpsqTHio.cjs';
4
+ import '../review-items-CwixiHNe.cjs';
5
5
  import '../ooxml-package-CdEy9ufK.cjs';
6
- import '../tree-op-types-B0-sCtw-.cjs';
7
- import '../semantic-interaction-BjOcDB06.cjs';
8
- import '../semantic-records-C3Z76KeN.cjs';
9
- import '../image-resources-DQOiwOuE.cjs';
6
+ import '../tree-op-revision-attribution-CN06Xshv.cjs';
7
+ import '../semantic-interaction-Z0xKQcB4.cjs';
8
+ import '../semantic-records-CMakzQ1X.cjs';
9
+ import '../tree-op-types-DSJYmf5b.cjs';
10
10
  import '../revision-projection-Cc4wz30g.cjs';
11
11
  import '../omml-equation-BD-LsmWE.cjs';
@@ -1,11 +1,11 @@
1
- export { M as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-PUlv5Pp7.js';
1
+ export { M as EditorScope, U as InteractionAffinity, W as InteractionOutcome, X as InteractionOutcomeCode, a9 as SemanticIdentity, aa as SemanticTarget, V as ViewScope } from '../editor-C0my6Uta.js';
2
2
  import './document.js';
3
3
  import './types.js';
4
- import '../review-items-D5SPFtsO.js';
4
+ import '../review-items-Dw-8a6Ie.js';
5
5
  import '../ooxml-package-CdEy9ufK.js';
6
- import '../tree-op-types-XMVsJSpe.js';
7
- import '../semantic-interaction-Cca1-X_a.js';
8
- import '../semantic-records-Cc1MJrhM.js';
9
- import '../image-resources-eZqD_-vC.js';
6
+ import '../tree-op-revision-attribution-CN06Xshv.js';
7
+ import '../semantic-interaction-B6hFRQLy.js';
8
+ import '../semantic-records-Do3-i5oB.js';
9
+ import '../tree-op-types-BuOfCrkp.js';
10
10
  import '../revision-projection-CILpvv4M.js';
11
11
  import '../omml-equation-Dd3mBep-.js';
@@ -1,9 +1,8 @@
1
1
  import { O as OoxmlPart } from '../ooxml-package-CdEy9ufK.cjs';
2
- import { R as ReviewModelInput, a as ReviewItem, b as ReviewRevisionItem } from '../review-items-DpsqTHio.cjs';
3
- export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, e as ReviewPosition, f as ReviewRange, g as ReviewRevisionKind } from '../review-items-DpsqTHio.cjs';
4
- export { R as RevisionAddress } from '../tree-op-types-B0-sCtw-.cjs';
2
+ export { R as RevisionAddress } from '../tree-op-revision-attribution-CN06Xshv.cjs';
3
+ import { R as ReviewModelInput, a as ReviewItem, b as ReviewRevisionItem } from '../review-items-CwixiHNe.cjs';
4
+ export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, e as ReviewPosition, f as ReviewRange, g as ReviewRevisionKind } from '../review-items-CwixiHNe.cjs';
5
5
  import { R as RevisionDisplayMode } from '../revision-projection-Cc4wz30g.cjs';
6
- import './types.cjs';
7
6
 
8
7
  /**
9
8
  * `@docx-editor.dev/core/contracts/modules` — the `EditorModule` seam.
@@ -1,9 +1,8 @@
1
1
  import { O as OoxmlPart } from '../ooxml-package-CdEy9ufK.js';
2
- import { R as ReviewModelInput, a as ReviewItem, b as ReviewRevisionItem } from '../review-items-D5SPFtsO.js';
3
- export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, e as ReviewPosition, f as ReviewRange, g as ReviewRevisionKind } from '../review-items-D5SPFtsO.js';
4
- export { R as RevisionAddress } from '../tree-op-types-XMVsJSpe.js';
2
+ export { R as RevisionAddress } from '../tree-op-revision-attribution-CN06Xshv.js';
3
+ import { R as ReviewModelInput, a as ReviewItem, b as ReviewRevisionItem } from '../review-items-Dw-8a6Ie.js';
4
+ export { C as CommentRecord, c as ReviewCommentItem, d as ReviewCustomItem, e as ReviewPosition, f as ReviewRange, g as ReviewRevisionKind } from '../review-items-Dw-8a6Ie.js';
5
5
  import { R as RevisionDisplayMode } from '../revision-projection-CILpvv4M.js';
6
- import './types.js';
7
6
 
8
7
  /**
9
8
  * `@docx-editor.dev/core/contracts/modules` — the `EditorModule` seam.
@@ -1,9 +1,9 @@
1
1
  import { c as OoxmlPackage, O as OoxmlPart, a as OoxmlNode } from './ooxml-package-CdEy9ufK.js';
2
- import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-eZqD_-vC.js';
3
- import { h as DrawingTreeDocOp, a as TreeOpRejection, T as TreeDocOp } from './tree-op-types-XMVsJSpe.js';
2
+ import { c as SupportedImageMime, j as ImageDecodePort, k as DrawingTreeDocOp, a as TreeOpRejection, T as TreeDocOp } from './tree-op-types-BuOfCrkp.js';
3
+ import { a as RevisionAttributionInput } from './tree-op-revision-attribution-CN06Xshv.js';
4
4
  import { c as HeaderFooterKind, H as HeaderFooterVariant } from './hf-references-z5Y4N1ab.js';
5
5
  import { N as NoteKind } from './note-nodes-BNCANoGN.js';
6
- import { T as TreeModelChange, a as TreeStoryRef, b as TreeDocumentStore, c as TransactionContext, d as TransactOptions, S as SelectionMark, e as TreeDocumentCheckpoint } from './tree-store-ClA-qng4.js';
6
+ import { T as TreeModelChange, a as TreeStoryRef, b as TreeDocumentStore, c as TransactionContext, d as TransactOptions, S as SelectionMark, e as TreeDocumentCheckpoint } from './tree-store-ASBtz7UB.js';
7
7
 
8
8
  /** A freshly allocated drawing property id, or the reason one could not be minted. */
9
9
  type DrawingPropertyIdResult = {
@@ -283,6 +283,15 @@ declare function createNoteReferenceScanBudget(maxVisited?: number, maxParts?: n
283
283
  * later usable Internal notes part (same continue-past-bad pattern as settingsPartOf).
284
284
  */
285
285
  declare function resolveNotesPart(pkg: OoxmlPackage, noteKind: NoteKind): OoxmlPart | null;
286
+ /**
287
+ * Walk a part for addressable typed note references. Budgeted scans are bounded by
288
+ * visited nodes and fail closed on deep hostile nesting (the shared budget is marked
289
+ * truncated and the walk stops, so mutation callers refuse); budget-free scans are
290
+ * bounded by the 64-level depth cap and `maxHits` alone and fail open (a too-deep
291
+ * subtree is pruned and siblings still scan, so layout keeps every reachable citation).
292
+ * When `budget` is supplied it is shared and mutated in place. Hits are segment-aligned
293
+ * (`segmentsOf`); demoted wrappers never invent atomOffsets.
294
+ */
286
295
  declare function collectNoteReferences(part: OoxmlPart, options?: {
287
296
  readonly maxHits?: number;
288
297
  readonly budget?: NoteReferenceScanBudget;
@@ -320,6 +329,13 @@ type NoteLifecycleOp = {
320
329
  readonly noteKind: NoteKind;
321
330
  readonly paragraphId: string;
322
331
  readonly offset: number;
332
+ /**
333
+ * Write the citing reference as a TRACKED insertion: the reference run goes inside a
334
+ * `w:ins` carrying this attribution. The note body stays plain — rejecting the
335
+ * reference removes it, and the orphaned body is swept by the same cascade an
336
+ * untracked reference deletion triggers.
337
+ */
338
+ readonly revision?: RevisionAttributionInput;
323
339
  } | {
324
340
  readonly op: 'deleteNote';
325
341
  readonly noteKind: NoteKind;
@@ -353,7 +369,7 @@ type NoteLifecycleOp = {
353
369
  };
354
370
  };
355
371
  /** Why a note lifecycle op was refused. */
356
- type NoteLifecycleRejection = 'invalidArgs' | 'tree-invariant';
372
+ type NoteLifecycleRejection = 'invalidArgs' | 'invalid-property-value' | 'tree-invariant';
357
373
  /**
358
374
  * A new package, or a typed rejection.
359
375
  *
@@ -446,6 +462,8 @@ interface InsertImageInput {
446
462
  readonly title?: string;
447
463
  readonly description?: string;
448
464
  readonly hyperlink?: string;
465
+ /** Present in suggesting mode: the inserted drawing's run goes into a `w:ins`. */
466
+ readonly revision?: RevisionAttributionInput;
449
467
  }
450
468
  interface ReplaceImageOptions {
451
469
  readonly expectedPackageRevision: number;
@@ -625,10 +643,14 @@ declare class TreePackageStore {
625
643
  * Insert a validated raster image as one package undo unit (task 12).
626
644
  */
627
645
  insertImage(scope: StoryScope, input: InsertImageInput): Promise<ImageIntentResult>;
646
+ /** Land a clipboard fragment (resource merge + blocks) as one package undo unit. */
647
+ applyFragmentPaste(scope: StoryScope, input: FragmentPasteInput): FragmentPasteResult;
628
648
  /** Replace a picture drawing's embedded media in one package undo unit. */
629
649
  replaceImage(scope: StoryScope, drawingNodeId: string, bytes: Uint8Array, mime: SupportedImageMime, decodePort: ImageDecodePort, options: ReplaceImageOptions): Promise<ImageIntentResult>;
630
650
  /** Delete a picture drawing and collect orphaned media in one package undo unit. */
631
651
  deleteImage(scope: StoryScope, drawingNodeId: string): ImageIntentResult;
652
+ /** Propose the deletion as a tracked change: the drawing goes into a `w:del`, media stays. */
653
+ deleteImageTracked(scope: StoryScope, drawingNodeId: string, revision: RevisionAttributionInput): ImageIntentResult;
632
654
  /** Fetch external bytes explicitly and embed them; no fetch on open/load. */
633
655
  embedExternalImage(scope: StoryScope, drawingNodeId: string, url: string, port: ExternalImageFetchPort, signal: AbortSignal, decodePort: ImageDecodePort): Promise<ImageIntentResult>;
634
656
  /** Metadata plus hyperlink target creation in one package transaction. */
@@ -717,6 +739,31 @@ declare class TreePackageStore {
717
739
  private publishSynthetic;
718
740
  }
719
741
 
742
+ /** Decoded fragment payloads above this cap are refused before any package work. */
743
+ declare const MAX_FRAGMENT_DECODED_BYTES: number;
744
+ interface FragmentPasteInput {
745
+ readonly paragraphId: string;
746
+ readonly offset: number;
747
+ /** The fragment package zip (from the clipboard codec or the HTML projection). */
748
+ readonly fragmentBytes: Uint8Array;
749
+ readonly lastMarkCovered: boolean;
750
+ /** Ops that clear the current selection first (the surface's deleteSelectionPlan). */
751
+ readonly priorOps?: readonly TreeDocOp[];
752
+ }
753
+ type FragmentPasteResult = (Extract<PackageTransactResult, {
754
+ ok: true;
755
+ }> & {
756
+ readonly blockCount: number;
757
+ }) | Extract<PackageTransactResult, {
758
+ ok: false;
759
+ }>;
760
+ /**
761
+ * Read the fragment through the bounded file-open trust boundary, merge its resources,
762
+ * and land its blocks — all inside one transaction. Any refusal leaves the document
763
+ * exactly as it was; the caller (the paste router) degrades to the next flavour.
764
+ */
765
+ declare function applyFragmentPaste(store: TreePackageStore, scope: StoryScope, input: FragmentPasteInput): FragmentPasteResult;
766
+
720
767
  /**
721
768
  * The payload half of an insert: which store, which node, and what it holds.
722
769
  *
@@ -905,4 +952,4 @@ type CustomNodeSweepOutcome = {
905
952
  readonly reason: string;
906
953
  };
907
954
 
908
- export { customNodePayloadsByControl as $, type ApplyImagePropertiesInput as A, type BookmarkIndex as B, type CustomNodeWriteResult as C, type DocumentTrackingSettings as D, type EmbeddedFont as E, type FontStyleKey as F, type NoteReferenceScanBudget as G, type HeaderFooterLifecycleImpact as H, type InsertCustomNodeWrite as I, type ReadEmbeddedFontsOptions as J, type StoryResolveResult as K, type ListKind as L, MAX_CUSTOM_NODE_LABEL_LENGTH as M, NO_TRACKING_SETTINGS as N, type TreePackageStoreOptions as O, type PackageTransactResult as P, allocateDrawingPropertyId as Q, type ReplaceImageOptions as R, type StoryScope as S, TreePackageStore as T, applyHeaderFooterLifecycleOp as U, applyNoteLifecycleOp as V, buildBookmarkIndex as W, cascadeDeletedNoteReferences as X, collectNoteReferences as Y, collectPackageNoteReferences as Z, createNoteReferenceScanBudget as _, type StoryTargetRejection as a, customNodePayloadsOf as a0, deobfuscateFont as a1, diagnoseNoteReferences as a2, ensureListDefinition as a3, ensureNumberingLevel as a4, insertCustomNodeWrite as a5, isHeaderFooterLifecycleOp as a6, isNoteLifecycleOp as a7, normalNoteIds as a8, notesPartHasId as a9, readEmbeddedFonts as aa, readTrackingSettings as ab, removeCustomNodeWrite as ac, resolveNotesPart as ad, sweepCustomNodePayloads as ae, withBinaryPart as af, withEmbeddedImage as ag, withoutUnreferencedImagePart as ah, type CustomNodeSweepOutcome as b, type InsertImageInput as c, type ImageIntentResult as d, type BookmarkAnchor as e, type CascadeDeletedNoteReferencesOptions as f, type CustomNodePayloadRead as g, type CustomNodePayloadWrite as h, type CustomNodeSweepResult as i, type CustomNodeWriteRejection as j, DEFAULT_MAX_EDITABLE_STORY_PARTS as k, type DrawingPropertyIdResult as l, type HeaderFooterLifecycleOp as m, type HeaderFooterLifecycleRejection as n, type HeaderFooterLifecycleResult as o, MAX_CUSTOM_NODE_PAYLOAD_LENGTH as p, MAX_NOTE_REFERENCE_PARTS as q, MAX_NOTE_REFERENCE_SCAN as r, type NoteDiagnostic as s, type NoteDiagnosticCode as t, type NoteLifecycleImpact as u, type NoteLifecycleOp as v, type NoteLifecycleOptions as w, type NoteLifecycleRejection as x, type NoteLifecycleResult as y, type NoteReferenceHit as z };
955
+ export { cascadeDeletedNoteReferences as $, type ApplyImagePropertiesInput as A, type BookmarkIndex as B, type CustomNodeWriteResult as C, type DocumentTrackingSettings as D, type EmbeddedFont as E, type FragmentPasteInput as F, type NoteLifecycleRejection as G, type HeaderFooterLifecycleImpact as H, type InsertCustomNodeWrite as I, type NoteLifecycleResult as J, type NoteReferenceHit as K, type ListKind as L, MAX_CUSTOM_NODE_LABEL_LENGTH as M, NO_TRACKING_SETTINGS as N, type NoteReferenceScanBudget as O, type PackageTransactResult as P, type ReadEmbeddedFontsOptions as Q, type ReplaceImageOptions as R, type StoryScope as S, type StoryResolveResult as T, TreePackageStore as U, type TreePackageStoreOptions as V, allocateDrawingPropertyId as W, applyFragmentPaste as X, applyHeaderFooterLifecycleOp as Y, applyNoteLifecycleOp as Z, buildBookmarkIndex as _, type StoryTargetRejection as a, collectNoteReferences as a0, collectPackageNoteReferences as a1, createNoteReferenceScanBudget as a2, customNodePayloadsByControl as a3, customNodePayloadsOf as a4, deobfuscateFont as a5, diagnoseNoteReferences as a6, ensureListDefinition as a7, ensureNumberingLevel as a8, insertCustomNodeWrite as a9, isHeaderFooterLifecycleOp as aa, isNoteLifecycleOp as ab, normalNoteIds as ac, notesPartHasId as ad, readEmbeddedFonts as ae, readTrackingSettings as af, removeCustomNodeWrite as ag, resolveNotesPart as ah, sweepCustomNodePayloads as ai, withBinaryPart as aj, withEmbeddedImage as ak, withoutUnreferencedImagePart as al, type CustomNodeSweepOutcome as b, type InsertImageInput as c, type ImageIntentResult as d, type FragmentPasteResult as e, type BookmarkAnchor as f, type CascadeDeletedNoteReferencesOptions as g, type CustomNodePayloadRead as h, type CustomNodePayloadWrite as i, type CustomNodeSweepResult as j, type CustomNodeWriteRejection as k, DEFAULT_MAX_EDITABLE_STORY_PARTS as l, type DrawingPropertyIdResult as m, type FontStyleKey as n, type HeaderFooterLifecycleOp as o, type HeaderFooterLifecycleRejection as p, type HeaderFooterLifecycleResult as q, MAX_CUSTOM_NODE_PAYLOAD_LENGTH as r, MAX_FRAGMENT_DECODED_BYTES as s, MAX_NOTE_REFERENCE_PARTS as t, MAX_NOTE_REFERENCE_SCAN as u, type NoteDiagnostic as v, type NoteDiagnosticCode as w, type NoteLifecycleImpact as x, type NoteLifecycleOp as y, type NoteLifecycleOptions as z };
@@ -1,9 +1,9 @@
1
1
  import { c as OoxmlPackage, O as OoxmlPart, a as OoxmlNode } from './ooxml-package-CdEy9ufK.cjs';
2
- import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-DQOiwOuE.cjs';
3
- import { h as DrawingTreeDocOp, a as TreeOpRejection, T as TreeDocOp } from './tree-op-types-B0-sCtw-.cjs';
2
+ import { c as SupportedImageMime, j as ImageDecodePort, k as DrawingTreeDocOp, a as TreeOpRejection, T as TreeDocOp } from './tree-op-types-DSJYmf5b.cjs';
3
+ import { a as RevisionAttributionInput } from './tree-op-revision-attribution-CN06Xshv.cjs';
4
4
  import { c as HeaderFooterKind, H as HeaderFooterVariant } from './hf-references-Dvk6De4Q.cjs';
5
5
  import { N as NoteKind } from './note-nodes-DL-Au22P.cjs';
6
- import { T as TreeModelChange, a as TreeStoryRef, b as TreeDocumentStore, c as TransactionContext, d as TransactOptions, S as SelectionMark, e as TreeDocumentCheckpoint } from './tree-store-C6vc8E_2.cjs';
6
+ import { T as TreeModelChange, a as TreeStoryRef, b as TreeDocumentStore, c as TransactionContext, d as TransactOptions, S as SelectionMark, e as TreeDocumentCheckpoint } from './tree-store-CWOUMGN8.cjs';
7
7
 
8
8
  /** A freshly allocated drawing property id, or the reason one could not be minted. */
9
9
  type DrawingPropertyIdResult = {
@@ -283,6 +283,15 @@ declare function createNoteReferenceScanBudget(maxVisited?: number, maxParts?: n
283
283
  * later usable Internal notes part (same continue-past-bad pattern as settingsPartOf).
284
284
  */
285
285
  declare function resolveNotesPart(pkg: OoxmlPackage, noteKind: NoteKind): OoxmlPart | null;
286
+ /**
287
+ * Walk a part for addressable typed note references. Budgeted scans are bounded by
288
+ * visited nodes and fail closed on deep hostile nesting (the shared budget is marked
289
+ * truncated and the walk stops, so mutation callers refuse); budget-free scans are
290
+ * bounded by the 64-level depth cap and `maxHits` alone and fail open (a too-deep
291
+ * subtree is pruned and siblings still scan, so layout keeps every reachable citation).
292
+ * When `budget` is supplied it is shared and mutated in place. Hits are segment-aligned
293
+ * (`segmentsOf`); demoted wrappers never invent atomOffsets.
294
+ */
286
295
  declare function collectNoteReferences(part: OoxmlPart, options?: {
287
296
  readonly maxHits?: number;
288
297
  readonly budget?: NoteReferenceScanBudget;
@@ -320,6 +329,13 @@ type NoteLifecycleOp = {
320
329
  readonly noteKind: NoteKind;
321
330
  readonly paragraphId: string;
322
331
  readonly offset: number;
332
+ /**
333
+ * Write the citing reference as a TRACKED insertion: the reference run goes inside a
334
+ * `w:ins` carrying this attribution. The note body stays plain — rejecting the
335
+ * reference removes it, and the orphaned body is swept by the same cascade an
336
+ * untracked reference deletion triggers.
337
+ */
338
+ readonly revision?: RevisionAttributionInput;
323
339
  } | {
324
340
  readonly op: 'deleteNote';
325
341
  readonly noteKind: NoteKind;
@@ -353,7 +369,7 @@ type NoteLifecycleOp = {
353
369
  };
354
370
  };
355
371
  /** Why a note lifecycle op was refused. */
356
- type NoteLifecycleRejection = 'invalidArgs' | 'tree-invariant';
372
+ type NoteLifecycleRejection = 'invalidArgs' | 'invalid-property-value' | 'tree-invariant';
357
373
  /**
358
374
  * A new package, or a typed rejection.
359
375
  *
@@ -446,6 +462,8 @@ interface InsertImageInput {
446
462
  readonly title?: string;
447
463
  readonly description?: string;
448
464
  readonly hyperlink?: string;
465
+ /** Present in suggesting mode: the inserted drawing's run goes into a `w:ins`. */
466
+ readonly revision?: RevisionAttributionInput;
449
467
  }
450
468
  interface ReplaceImageOptions {
451
469
  readonly expectedPackageRevision: number;
@@ -625,10 +643,14 @@ declare class TreePackageStore {
625
643
  * Insert a validated raster image as one package undo unit (task 12).
626
644
  */
627
645
  insertImage(scope: StoryScope, input: InsertImageInput): Promise<ImageIntentResult>;
646
+ /** Land a clipboard fragment (resource merge + blocks) as one package undo unit. */
647
+ applyFragmentPaste(scope: StoryScope, input: FragmentPasteInput): FragmentPasteResult;
628
648
  /** Replace a picture drawing's embedded media in one package undo unit. */
629
649
  replaceImage(scope: StoryScope, drawingNodeId: string, bytes: Uint8Array, mime: SupportedImageMime, decodePort: ImageDecodePort, options: ReplaceImageOptions): Promise<ImageIntentResult>;
630
650
  /** Delete a picture drawing and collect orphaned media in one package undo unit. */
631
651
  deleteImage(scope: StoryScope, drawingNodeId: string): ImageIntentResult;
652
+ /** Propose the deletion as a tracked change: the drawing goes into a `w:del`, media stays. */
653
+ deleteImageTracked(scope: StoryScope, drawingNodeId: string, revision: RevisionAttributionInput): ImageIntentResult;
632
654
  /** Fetch external bytes explicitly and embed them; no fetch on open/load. */
633
655
  embedExternalImage(scope: StoryScope, drawingNodeId: string, url: string, port: ExternalImageFetchPort, signal: AbortSignal, decodePort: ImageDecodePort): Promise<ImageIntentResult>;
634
656
  /** Metadata plus hyperlink target creation in one package transaction. */
@@ -717,6 +739,31 @@ declare class TreePackageStore {
717
739
  private publishSynthetic;
718
740
  }
719
741
 
742
+ /** Decoded fragment payloads above this cap are refused before any package work. */
743
+ declare const MAX_FRAGMENT_DECODED_BYTES: number;
744
+ interface FragmentPasteInput {
745
+ readonly paragraphId: string;
746
+ readonly offset: number;
747
+ /** The fragment package zip (from the clipboard codec or the HTML projection). */
748
+ readonly fragmentBytes: Uint8Array;
749
+ readonly lastMarkCovered: boolean;
750
+ /** Ops that clear the current selection first (the surface's deleteSelectionPlan). */
751
+ readonly priorOps?: readonly TreeDocOp[];
752
+ }
753
+ type FragmentPasteResult = (Extract<PackageTransactResult, {
754
+ ok: true;
755
+ }> & {
756
+ readonly blockCount: number;
757
+ }) | Extract<PackageTransactResult, {
758
+ ok: false;
759
+ }>;
760
+ /**
761
+ * Read the fragment through the bounded file-open trust boundary, merge its resources,
762
+ * and land its blocks — all inside one transaction. Any refusal leaves the document
763
+ * exactly as it was; the caller (the paste router) degrades to the next flavour.
764
+ */
765
+ declare function applyFragmentPaste(store: TreePackageStore, scope: StoryScope, input: FragmentPasteInput): FragmentPasteResult;
766
+
720
767
  /**
721
768
  * The payload half of an insert: which store, which node, and what it holds.
722
769
  *
@@ -905,4 +952,4 @@ type CustomNodeSweepOutcome = {
905
952
  readonly reason: string;
906
953
  };
907
954
 
908
- export { customNodePayloadsByControl as $, type ApplyImagePropertiesInput as A, type BookmarkIndex as B, type CustomNodeWriteResult as C, type DocumentTrackingSettings as D, type EmbeddedFont as E, type FontStyleKey as F, type NoteReferenceScanBudget as G, type HeaderFooterLifecycleImpact as H, type InsertCustomNodeWrite as I, type ReadEmbeddedFontsOptions as J, type StoryResolveResult as K, type ListKind as L, MAX_CUSTOM_NODE_LABEL_LENGTH as M, NO_TRACKING_SETTINGS as N, type TreePackageStoreOptions as O, type PackageTransactResult as P, allocateDrawingPropertyId as Q, type ReplaceImageOptions as R, type StoryScope as S, TreePackageStore as T, applyHeaderFooterLifecycleOp as U, applyNoteLifecycleOp as V, buildBookmarkIndex as W, cascadeDeletedNoteReferences as X, collectNoteReferences as Y, collectPackageNoteReferences as Z, createNoteReferenceScanBudget as _, type StoryTargetRejection as a, customNodePayloadsOf as a0, deobfuscateFont as a1, diagnoseNoteReferences as a2, ensureListDefinition as a3, ensureNumberingLevel as a4, insertCustomNodeWrite as a5, isHeaderFooterLifecycleOp as a6, isNoteLifecycleOp as a7, normalNoteIds as a8, notesPartHasId as a9, readEmbeddedFonts as aa, readTrackingSettings as ab, removeCustomNodeWrite as ac, resolveNotesPart as ad, sweepCustomNodePayloads as ae, withBinaryPart as af, withEmbeddedImage as ag, withoutUnreferencedImagePart as ah, type CustomNodeSweepOutcome as b, type InsertImageInput as c, type ImageIntentResult as d, type BookmarkAnchor as e, type CascadeDeletedNoteReferencesOptions as f, type CustomNodePayloadRead as g, type CustomNodePayloadWrite as h, type CustomNodeSweepResult as i, type CustomNodeWriteRejection as j, DEFAULT_MAX_EDITABLE_STORY_PARTS as k, type DrawingPropertyIdResult as l, type HeaderFooterLifecycleOp as m, type HeaderFooterLifecycleRejection as n, type HeaderFooterLifecycleResult as o, MAX_CUSTOM_NODE_PAYLOAD_LENGTH as p, MAX_NOTE_REFERENCE_PARTS as q, MAX_NOTE_REFERENCE_SCAN as r, type NoteDiagnostic as s, type NoteDiagnosticCode as t, type NoteLifecycleImpact as u, type NoteLifecycleOp as v, type NoteLifecycleOptions as w, type NoteLifecycleRejection as x, type NoteLifecycleResult as y, type NoteReferenceHit as z };
955
+ export { cascadeDeletedNoteReferences as $, type ApplyImagePropertiesInput as A, type BookmarkIndex as B, type CustomNodeWriteResult as C, type DocumentTrackingSettings as D, type EmbeddedFont as E, type FragmentPasteInput as F, type NoteLifecycleRejection as G, type HeaderFooterLifecycleImpact as H, type InsertCustomNodeWrite as I, type NoteLifecycleResult as J, type NoteReferenceHit as K, type ListKind as L, MAX_CUSTOM_NODE_LABEL_LENGTH as M, NO_TRACKING_SETTINGS as N, type NoteReferenceScanBudget as O, type PackageTransactResult as P, type ReadEmbeddedFontsOptions as Q, type ReplaceImageOptions as R, type StoryScope as S, type StoryResolveResult as T, TreePackageStore as U, type TreePackageStoreOptions as V, allocateDrawingPropertyId as W, applyFragmentPaste as X, applyHeaderFooterLifecycleOp as Y, applyNoteLifecycleOp as Z, buildBookmarkIndex as _, type StoryTargetRejection as a, collectNoteReferences as a0, collectPackageNoteReferences as a1, createNoteReferenceScanBudget as a2, customNodePayloadsByControl as a3, customNodePayloadsOf as a4, deobfuscateFont as a5, diagnoseNoteReferences as a6, ensureListDefinition as a7, ensureNumberingLevel as a8, insertCustomNodeWrite as a9, isHeaderFooterLifecycleOp as aa, isNoteLifecycleOp as ab, normalNoteIds as ac, notesPartHasId as ad, readEmbeddedFonts as ae, readTrackingSettings as af, removeCustomNodeWrite as ag, resolveNotesPart as ah, sweepCustomNodePayloads as ai, withBinaryPart as aj, withEmbeddedImage as ak, withoutUnreferencedImagePart as al, type CustomNodeSweepOutcome as b, type InsertImageInput as c, type ImageIntentResult as d, type FragmentPasteResult as e, type BookmarkAnchor as f, type CascadeDeletedNoteReferencesOptions as g, type CustomNodePayloadRead as h, type CustomNodePayloadWrite as i, type CustomNodeSweepResult as j, type CustomNodeWriteRejection as k, DEFAULT_MAX_EDITABLE_STORY_PARTS as l, type DrawingPropertyIdResult as m, type FontStyleKey as n, type HeaderFooterLifecycleOp as o, type HeaderFooterLifecycleRejection as p, type HeaderFooterLifecycleResult as q, MAX_CUSTOM_NODE_PAYLOAD_LENGTH as r, MAX_FRAGMENT_DECODED_BYTES as s, MAX_NOTE_REFERENCE_PARTS as t, MAX_NOTE_REFERENCE_SCAN as u, type NoteDiagnostic as v, type NoteDiagnosticCode as w, type NoteLifecycleImpact as x, type NoteLifecycleOp as y, type NoteLifecycleOptions as z };
@@ -1,9 +1,9 @@
1
1
  import { DocEdits, DocQueries, DocQueryResults, ContentControlSummary } from './contracts/document.js';
2
- import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-items-D5SPFtsO.js';
3
- import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-Cca1-X_a.js';
2
+ import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-items-Dw-8a6Ie.js';
3
+ import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-B6hFRQLy.js';
4
4
  import { ColorValue, ExecErrorCode, ParagraphFormatCommand, Watermark, DocAnchor, ExecResult, ContentControlFilter, DocRange, RunFormatting, Revision, Rect, SelectionPin, Unsubscribe } from './contracts/types.js';
5
- import { S as SourceCrop, b as ImageWrapTarget, c as DrawingKind, d as DrawingPositionInput, e as DrawingLocks } from './tree-op-types-XMVsJSpe.js';
6
- import { S as SupportedImageMime, I as ImageResourceState } from './image-resources-eZqD_-vC.js';
5
+ import { S as SourceCrop, b as ImageWrapTarget, c as SupportedImageMime, D as DrawingKind, d as DrawingPositionInput, e as DrawingLocks, f as ImageResourceState } from './tree-op-types-BuOfCrkp.js';
6
+ import './tree-op-revision-attribution-CN06Xshv.js';
7
7
 
8
8
  /**
9
9
  * `@docx-editor.dev/core/contracts/interaction` — semantic addressing and interaction outcomes.
@@ -1417,7 +1417,15 @@ interface EditorCommands extends EditorCommandShape<DocEdits>, EditorHeaderFoote
1417
1417
  borderWidthEmu?: number;
1418
1418
  borderColor?: ColorValue;
1419
1419
  };
1420
- /** Insert a raster image at the caret as one package undo unit. */
1420
+ /**
1421
+ * Insert a raster image at the caret as one package undo unit.
1422
+ *
1423
+ * `widthPoints`/`heightPoints` are the extent to insert AT MOST: Word's insert rule, an
1424
+ * extent that does not fit where the caret flows (its cell, column, or page content box)
1425
+ * is scaled down proportionally to fit. Read the committed extent back from
1426
+ * `snapshot().image` or `getSelectedImage()`; use `setImageProperties` to enlarge past
1427
+ * the fit afterwards.
1428
+ */
1421
1429
  insertImage: {
1422
1430
  data: Uint8Array;
1423
1431
  mime: SupportedImageMime;
@@ -1484,20 +1492,33 @@ interface EditorCommands extends EditorCommandShape<DocEdits>, EditorHeaderFoote
1484
1492
  */
1485
1493
  cut: Record<never, never>;
1486
1494
  /**
1487
- * Insert `text` at the selection, replacing it, with newlines becoming real paragraph
1488
- * boundaries.
1495
+ * Insert the clipboard payload at the selection, replacing it.
1489
1496
  *
1490
- * TEXT COMES IN. `exec` is synchronous and reading the clipboard is not — it prompts in
1491
- * Chrome and is refused outright by Firefox and Safari — so an engine-owned read would
1492
- * have to either turn every command's result into a promise or lie about this one's. The
1493
- * caller reads the clipboard inside the click or keystroke that asked for the paste,
1494
- * which is where the permission gesture belongs, and hands the engine a string.
1497
+ * PAYLOAD COMES IN. `exec` is synchronous and reading the clipboard is not — it prompts
1498
+ * in Chrome and is refused outright by Firefox and Safari — so an engine-owned read
1499
+ * would have to either turn every command's result into a promise or lie about this
1500
+ * one's. The caller reads the clipboard inside the click or keystroke that asked for
1501
+ * the paste, which is where the permission gesture belongs, and hands the engine what
1502
+ * it read.
1495
1503
  *
1496
- * Plain text only. There is no rich lane and no `pastePlain` twin, because a second
1497
- * command would be a second name for exactly this behavior.
1504
+ * `html`, when present, routes through the same fidelity order as the paste event:
1505
+ * an embedded fragment first, then the bounded external-HTML projection, then `text` —
1506
+ * degrading on any refusal. Without `html`, the plain lane inserts `text` with
1507
+ * newlines becoming real paragraph boundaries, as this command always has.
1498
1508
  */
1499
1509
  paste: {
1500
1510
  text: string;
1511
+ html?: string;
1512
+ };
1513
+ /**
1514
+ * Insert `text` as if typed, whatever richer flavours the clipboard held.
1515
+ *
1516
+ * The plain twin `paste` deliberately lacked while there was no rich lane; with one,
1517
+ * "paste" and "paste without formatting" are two different user intentions
1518
+ * (Cmd+V / Cmd+Shift+V) and each needs a name a menu row can call.
1519
+ */
1520
+ pasteWithoutFormatting: {
1521
+ text: string;
1501
1522
  };
1502
1523
  }
1503
1524
  /**
@@ -1,9 +1,9 @@
1
1
  import { DocEdits, DocQueries, DocQueryResults, ContentControlSummary } from './contracts/document.cjs';
2
- import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-items-DpsqTHio.cjs';
3
- import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-BjOcDB06.cjs';
2
+ import { g as ReviewRevisionKind, c as ReviewCommentItem, b as ReviewRevisionItem, d as ReviewCustomItem } from './review-items-CwixiHNe.cjs';
3
+ import { a as SemanticSelection, S as SemanticPosition } from './semantic-interaction-Z0xKQcB4.cjs';
4
4
  import { ColorValue, ExecErrorCode, ParagraphFormatCommand, Watermark, DocAnchor, ExecResult, ContentControlFilter, DocRange, RunFormatting, Revision, Rect, SelectionPin, Unsubscribe } from './contracts/types.cjs';
5
- import { S as SourceCrop, b as ImageWrapTarget, c as DrawingKind, d as DrawingPositionInput, e as DrawingLocks } from './tree-op-types-B0-sCtw-.cjs';
6
- import { S as SupportedImageMime, I as ImageResourceState } from './image-resources-DQOiwOuE.cjs';
5
+ import { S as SourceCrop, b as ImageWrapTarget, c as SupportedImageMime, D as DrawingKind, d as DrawingPositionInput, e as DrawingLocks, f as ImageResourceState } from './tree-op-types-DSJYmf5b.cjs';
6
+ import './tree-op-revision-attribution-CN06Xshv.cjs';
7
7
 
8
8
  /**
9
9
  * `@docx-editor.dev/core/contracts/interaction` — semantic addressing and interaction outcomes.
@@ -1417,7 +1417,15 @@ interface EditorCommands extends EditorCommandShape<DocEdits>, EditorHeaderFoote
1417
1417
  borderWidthEmu?: number;
1418
1418
  borderColor?: ColorValue;
1419
1419
  };
1420
- /** Insert a raster image at the caret as one package undo unit. */
1420
+ /**
1421
+ * Insert a raster image at the caret as one package undo unit.
1422
+ *
1423
+ * `widthPoints`/`heightPoints` are the extent to insert AT MOST: Word's insert rule, an
1424
+ * extent that does not fit where the caret flows (its cell, column, or page content box)
1425
+ * is scaled down proportionally to fit. Read the committed extent back from
1426
+ * `snapshot().image` or `getSelectedImage()`; use `setImageProperties` to enlarge past
1427
+ * the fit afterwards.
1428
+ */
1421
1429
  insertImage: {
1422
1430
  data: Uint8Array;
1423
1431
  mime: SupportedImageMime;
@@ -1484,20 +1492,33 @@ interface EditorCommands extends EditorCommandShape<DocEdits>, EditorHeaderFoote
1484
1492
  */
1485
1493
  cut: Record<never, never>;
1486
1494
  /**
1487
- * Insert `text` at the selection, replacing it, with newlines becoming real paragraph
1488
- * boundaries.
1495
+ * Insert the clipboard payload at the selection, replacing it.
1489
1496
  *
1490
- * TEXT COMES IN. `exec` is synchronous and reading the clipboard is not — it prompts in
1491
- * Chrome and is refused outright by Firefox and Safari — so an engine-owned read would
1492
- * have to either turn every command's result into a promise or lie about this one's. The
1493
- * caller reads the clipboard inside the click or keystroke that asked for the paste,
1494
- * which is where the permission gesture belongs, and hands the engine a string.
1497
+ * PAYLOAD COMES IN. `exec` is synchronous and reading the clipboard is not — it prompts
1498
+ * in Chrome and is refused outright by Firefox and Safari — so an engine-owned read
1499
+ * would have to either turn every command's result into a promise or lie about this
1500
+ * one's. The caller reads the clipboard inside the click or keystroke that asked for
1501
+ * the paste, which is where the permission gesture belongs, and hands the engine what
1502
+ * it read.
1495
1503
  *
1496
- * Plain text only. There is no rich lane and no `pastePlain` twin, because a second
1497
- * command would be a second name for exactly this behavior.
1504
+ * `html`, when present, routes through the same fidelity order as the paste event:
1505
+ * an embedded fragment first, then the bounded external-HTML projection, then `text` —
1506
+ * degrading on any refusal. Without `html`, the plain lane inserts `text` with
1507
+ * newlines becoming real paragraph boundaries, as this command always has.
1498
1508
  */
1499
1509
  paste: {
1500
1510
  text: string;
1511
+ html?: string;
1512
+ };
1513
+ /**
1514
+ * Insert `text` as if typed, whatever richer flavours the clipboard held.
1515
+ *
1516
+ * The plain twin `paste` deliberately lacked while there was no rich lane; with one,
1517
+ * "paste" and "paste without formatting" are two different user intentions
1518
+ * (Cmd+V / Cmd+Shift+V) and each needs a name a menu row can call.
1519
+ */
1520
+ pasteWithoutFormatting: {
1521
+ text: string;
1501
1522
  };
1502
1523
  }
1503
1524
  /**