@docx-editor.dev/core 2.6.0 → 2.7.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 (93) 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 +7 -7
  5. package/dist/binding.d.ts +7 -7
  6. package/dist/binding.js +1 -1
  7. package/dist/chunk-32HTRN7R.js +10 -0
  8. package/dist/chunk-42PRWWVE.js +2 -0
  9. package/dist/chunk-BRBRYJKE.cjs +2 -0
  10. package/dist/{chunk-SFMAIFEN.cjs → chunk-DTR64XCS.cjs} +2 -2
  11. package/dist/chunk-EMQSFPJO.cjs +15 -0
  12. package/dist/chunk-GBK7Z6F4.cjs +5 -0
  13. package/dist/{chunk-SMRD66T5.js → chunk-GPJXQDHC.js} +2 -2
  14. package/dist/chunk-JLSB6KNZ.js +5 -0
  15. package/dist/chunk-LEV2X47E.cjs +18 -0
  16. package/dist/chunk-NDTLLSG7.js +1 -0
  17. package/dist/chunk-O4VILLOM.cjs +1 -0
  18. package/dist/chunk-OB6JFVYA.js +15 -0
  19. package/dist/chunk-QTUZFJ4O.js +18 -0
  20. package/dist/chunk-UE7KTQLK.js +2 -0
  21. package/dist/chunk-WC3LI6FC.cjs +10 -0
  22. package/dist/chunk-XRDTD4X3.cjs +2 -0
  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 -3
  28. package/dist/contracts/modules.d.ts +3 -3
  29. package/dist/contracts/types.d.cts +9 -1
  30. package/dist/contracts/types.d.ts +9 -1
  31. package/dist/{custom-node-writes-tJw8U9MO.d.ts → custom-node-writes-BpOBjNzo.d.ts} +3 -9
  32. package/dist/{custom-node-writes-D9G3GKQ7.d.cts → custom-node-writes-C_AlNvds.d.cts} +3 -9
  33. package/dist/{editor-D2zOJztO.d.ts → editor-C--WWCBA.d.ts} +14 -14
  34. package/dist/{editor-BZEJL3vv.d.cts → editor-CXaGlcUa.d.cts} +14 -14
  35. package/dist/editor.cjs +1 -1
  36. package/dist/editor.d.cts +19 -19
  37. package/dist/editor.d.ts +19 -19
  38. package/dist/editor.js +1 -1
  39. package/dist/{image-resources-Cl5_cNi9.d.ts → image-resources-BWd5u-op.d.ts} +1 -1
  40. package/dist/{image-resources-BaHz4QAd.d.cts → image-resources-Bkmu1Jei.d.cts} +1 -1
  41. package/dist/{index-D8L8WrNF.d.ts → index-DW0TsrYl.d.ts} +11 -11
  42. package/dist/{index-_xF7n_z0.d.cts → index-QsE1xXyT.d.cts} +11 -11
  43. package/dist/index.cjs +1 -1
  44. package/dist/index.d.cts +13 -13
  45. package/dist/index.d.ts +13 -13
  46. package/dist/index.js +1 -1
  47. package/dist/layout.cjs +1 -1
  48. package/dist/layout.d.cts +86 -17
  49. package/dist/layout.d.ts +86 -17
  50. package/dist/layout.js +1 -1
  51. package/dist/output.cjs +1 -1
  52. package/dist/output.d.cts +5 -5
  53. package/dist/output.d.ts +5 -5
  54. package/dist/output.js +1 -1
  55. package/dist/{review-reads-HDvoQXK2.d.ts → review-reads-C5E7u-pt.d.ts} +1 -1
  56. package/dist/{review-reads-Dr0CpW6u.d.cts → review-reads-ChgUq41I.d.cts} +1 -1
  57. package/dist/{review-support-D4ZBdUXa.d.ts → review-support-Cr2n7f1-.d.ts} +1 -1
  58. package/dist/{review-support-T-riLz4Y.d.cts → review-support-oQrX6Xu3.d.cts} +1 -1
  59. package/dist/{semantic-cell-selection-B5vfPz4Q.d.ts → semantic-cell-selection-C8RC0VnN.d.ts} +2 -2
  60. package/dist/{semantic-cell-selection-BTQFpN0S.d.cts → semantic-cell-selection-CQOgvtbT.d.cts} +2 -2
  61. package/dist/{semantic-interaction-lvpzZRpA.d.ts → semantic-interaction-C45D_oG2.d.ts} +1 -1
  62. package/dist/{semantic-interaction-CDNEU_Tx.d.cts → semantic-interaction-f4GyBQ_1.d.cts} +1 -1
  63. package/dist/{semantic-paint-IjbL-4CT.d.cts → semantic-paint-BUt0ePEW.d.cts} +8 -2
  64. package/dist/{semantic-paint-BBPL3u5w.d.ts → semantic-paint-DUkGLJ_L.d.ts} +8 -2
  65. package/dist/{semantic-records-DEOs3_tE.d.cts → semantic-records-CuT3Wsd-.d.cts} +18 -11
  66. package/dist/{semantic-records-CdQvpUj1.d.ts → semantic-records-DoW_xNgJ.d.ts} +18 -11
  67. package/dist/{shaped-measurer-C2SJAjV0.d.cts → shaped-measurer-CDcHzjhf.d.cts} +1 -1
  68. package/dist/{shaped-measurer-l4o5ITJ0.d.ts → shaped-measurer-CakZ7g1s.d.ts} +1 -1
  69. package/dist/store.cjs +1 -1
  70. package/dist/store.d.cts +43 -9
  71. package/dist/store.d.ts +43 -9
  72. package/dist/store.js +1 -1
  73. package/dist/{tree-op-types-CUCwPWjT.d.cts → tree-op-types-QujrzgCz.d.cts} +8 -0
  74. package/dist/{tree-op-types-D0fTNBVW.d.ts → tree-op-types-fZgbrR5F.d.ts} +8 -0
  75. package/dist/{tree-session-CH1oA75f.d.ts → tree-session--6LDTNjR.d.ts} +5 -5
  76. package/dist/{tree-session-b7bggR-S.d.cts → tree-session-5UWKAQ41.d.cts} +5 -5
  77. package/dist/{tree-store-BqgeCa1Q.d.cts → tree-store-DhYIACNE.d.cts} +1 -1
  78. package/dist/{tree-store-CIKASRHk.d.ts → tree-store-Dy9FZ1pa.d.ts} +1 -1
  79. package/package.json +2 -2
  80. package/dist/chunk-4GQXAXTZ.js +0 -5
  81. package/dist/chunk-DGUHCJPF.cjs +0 -18
  82. package/dist/chunk-DY3QVCWC.cjs +0 -10
  83. package/dist/chunk-E7BXJ4BF.js +0 -1
  84. package/dist/chunk-F7Z6PWAZ.cjs +0 -2
  85. package/dist/chunk-IJ4V3LGV.cjs +0 -2
  86. package/dist/chunk-JEMP5YI5.cjs +0 -15
  87. package/dist/chunk-JZXK4DKV.cjs +0 -1
  88. package/dist/chunk-NIGGABAA.js +0 -15
  89. package/dist/chunk-OPKOTVQQ.js +0 -18
  90. package/dist/chunk-R75OLPL6.js +0 -10
  91. package/dist/chunk-SKWYEZCO.cjs +0 -5
  92. package/dist/chunk-UVIUNAQ6.js +0 -2
  93. package/dist/chunk-WAVN7MAT.js +0 -2
package/dist/layout.d.ts CHANGED
@@ -1,23 +1,23 @@
1
- import { V as VersionedShapingLibrary, T as TextShaper, F as FontByteValidator, a as FixedPointRoundingMode, b as FixedPoint, c as TextDirection, S as ShapedRun } from './shaped-measurer-l4o5ITJ0.js';
2
- export { C as CacheLookup, d as CacheMiss, e as CacheProvenance, D as DeclaredFontSubstitution, f as FontFingerprintInputs, g as FontRequest, h as FontResolutionError, i as FontResolutionErrorCode, j as FontResourceDefinition, k as FontResourceInstrumentation, l as FontResourceSnapshot, m as FontResourceSnapshotOptions, n as FontSubstitution, o as FontValidationResult, G as GlyphOutline, H as HARD_MAX_AGGREGATE_FONT_BYTES, p as HARD_MAX_FONT_BYTES, q as HARD_MAX_FONT_SOURCES, L as LayoutShapingOptions, N as NormalizationPolicy, O as OperationSnapshot, r as OperationSnapshotField, s as OperationSnapshotGuard, R as ResolvedCache, t as ResolvedFont, u as ResourceDependencyProvenance, v as ShapeInput, w as ShapedCluster, x as ShapedFontSpan, y as ShapedGlyph, z as ShapedMeasurerOptions, A as ShapedRunComparatorInputs, B as ShapedVerticalMetrics, E as ShapingEnvironment, I as ShapingEnvironmentFingerprintInputs, J as ShapingEnvironmentInput, K as boundedStructuralFontValidator, M as captureOperationSnapshot, P as createFontResourceSnapshot, Q as createShapedMeasurer, U as createShapedRun, W as createShapingEnvironment, X as fixedPoint, Y as fontRequestKey, Z as guardOperationSnapshot, _ as sha256FontBytes, $ as shapedRunComparatorInputs, a0 as shapingEnvironmentFingerprint, a1 as shapingEnvironmentFingerprintInputs } from './shaped-measurer-l4o5ITJ0.js';
3
- import { d as LayoutBox, D as DrawingPoint, e as DrawingInsets, a as StyleSpanRecord, I as InlineDrawingRecord, M as ModelRange, R as ResolvedRunStyle, f as ThemeFonts, g as ParagraphSpacing, h as ParagraphLineSpacing, i as ParagraphBorderEdge, j as ParagraphBorders, k as ResolvedTabStops, l as TableBorderSide, S as SemanticLayout, B as BlockFragmentRecord, m as InlineDrawingLayoutContext, T as TextMeasurer, H as HyperlinkProjector, F as FieldLinkProjector, n as PageRecord, o as ParagraphFragmentRecord, p as StoryPageFieldNeeds, A as AnchoredDrawingRecord, P as PageGeometry, q as CellBorderBox, r as TableBorderBox } from './semantic-records-CdQvpUj1.js';
4
- export { s as AUTO_PARAGRAPH_SPACING_PT, t as BorderGridGeometry, C as ContentControlBoundaryRecord, u as ContentControlGeometryFragment, v as ContentControlLevel, w as ContentControlLock, x as ContentControlMappedType, y as DEFAULT_PAGE_GEOMETRY, z as DEFAULT_RUN_STYLE, E as DEFAULT_TAB_INTERVAL_PT, G as DEFAULT_TAB_INTERVAL_TWIPS, J as EMPTY_TAB_STOPS, K as FieldAtomMarker, N as HeaderFooterStoryRecord, O as HyperlinkFieldSpec, L as LineRecord, Q as LineSpacingRule, U as ListMarkerRecord, V as MAX_BORDER_SPACE_PT, W as MAX_BORDER_WIDTH_PT, X as MAX_PARAGRAPH_SPACING_PT, Y as MAX_TABLE_BORDER_STROKES, Z as MAX_TAB_POSITION_TWIPS, _ as MAX_TAB_STOPS, $ as PARAGRAPH_BORDER_SIDES, a0 as ParagraphAutoSpacingContext, a1 as ParagraphBorderSide, a2 as ParagraphBorderStrokeRecord, a3 as ParagraphBottomBorderRecord, a4 as ParagraphIndent, a5 as ResolvedCellBorders, a6 as ResolvedTableBorderEdge, a7 as ResolvedTableBorderEdgeSegment, a8 as ResolvedUnderline, a9 as SINGLE_LINE_SPACING, aa as SourceRange, ab as SpanLinkRecord, ac as TAB_LEADER_GLYPH, ad as TabAlignment, ae as TabDestination, af as TabLeader, ag as TabStop, ah as TableBorderSideName, ai as TableBorderStrokeRecord, c as TableCellFragmentRecord, aj as TableFragmentRecord, b as TableRowFragmentRecord, ak as VerticalAlign, al as appliedSpaceBefore, am as applyLineSpacing, an as baselineShiftPtOf, ao as borderExtentPt, ap as borderWeight, aq as bottomBorderExtentPt, ar as cascadedParagraphBorders, as as cascadedTabStops, at as collapsedSpaceBefore, au as contentControlsOfLayout, av as defaultTabIntervalFromSettings, aw as displayText, ax as effectiveContentControlLock, ay as fragmentsOfParagraph, az as lineAtPosition, aA as linesOf, aB as measureDisplayText, aC as nextTabDestination, aD as paragraphBorderExtentPt, aE as paragraphBorderStrokeWidthPt, aF as paragraphBorders, aG as paragraphBordersFingerprint, aH as paragraphBreaksBefore, aI as paragraphContextualSpacing, aJ as paragraphFragmentsOf, aK as paragraphFragmentsOfBlocks, aL as paragraphLineSpacing, aM as paragraphSpacing, aN as paragraphTabStops, aO as readBorderSide, aP as readCellBorders, aQ as readTableBorders, aR as resolveBorderConflict, aS as resolveRunStyle, aT as resolveTableCellBorderGrid, aU as runStylesEqual, aV as tabAdvanceWidth, aW as tabStopsFingerprint, aX as unionLayoutBoxes, aY as withDefaultTabInterval } from './semantic-records-CdQvpUj1.js';
1
+ import { V as VersionedShapingLibrary, T as TextShaper, F as FontByteValidator, a as FixedPointRoundingMode, b as FixedPoint, c as TextDirection, S as ShapedRun } from './shaped-measurer-CakZ7g1s.js';
2
+ export { C as CacheLookup, d as CacheMiss, e as CacheProvenance, D as DeclaredFontSubstitution, f as FontFingerprintInputs, g as FontRequest, h as FontResolutionError, i as FontResolutionErrorCode, j as FontResourceDefinition, k as FontResourceInstrumentation, l as FontResourceSnapshot, m as FontResourceSnapshotOptions, n as FontSubstitution, o as FontValidationResult, G as GlyphOutline, H as HARD_MAX_AGGREGATE_FONT_BYTES, p as HARD_MAX_FONT_BYTES, q as HARD_MAX_FONT_SOURCES, L as LayoutShapingOptions, N as NormalizationPolicy, O as OperationSnapshot, r as OperationSnapshotField, s as OperationSnapshotGuard, R as ResolvedCache, t as ResolvedFont, u as ResourceDependencyProvenance, v as ShapeInput, w as ShapedCluster, x as ShapedFontSpan, y as ShapedGlyph, z as ShapedMeasurerOptions, A as ShapedRunComparatorInputs, B as ShapedVerticalMetrics, E as ShapingEnvironment, I as ShapingEnvironmentFingerprintInputs, J as ShapingEnvironmentInput, K as boundedStructuralFontValidator, M as captureOperationSnapshot, P as createFontResourceSnapshot, Q as createShapedMeasurer, U as createShapedRun, W as createShapingEnvironment, X as fixedPoint, Y as fontRequestKey, Z as guardOperationSnapshot, _ as sha256FontBytes, $ as shapedRunComparatorInputs, a0 as shapingEnvironmentFingerprint, a1 as shapingEnvironmentFingerprintInputs } from './shaped-measurer-CakZ7g1s.js';
3
+ import { d as LayoutBox, D as DrawingPoint, e as DrawingInsets, a as StyleSpanRecord, I as InlineDrawingRecord, M as ModelRange, R as ResolvedRunStyle, f as ThemeFonts, g as ParagraphSpacing, h as ParagraphLineSpacing, i as ParagraphBorderEdge, j as ParagraphBorders, k as ResolvedTabStops, l as TableBorderSide, S as SemanticLayout, B as BlockFragmentRecord, m as InlineDrawingLayoutContext, T as TextMeasurer, H as HyperlinkProjector, F as FieldLinkProjector, n as PageRecord, o as ParagraphFragmentRecord, p as StoryPageFieldNeeds, A as AnchoredDrawingRecord, P as PageGeometry, q as CellBorderBox, r as TableBorderBox } from './semantic-records-DoW_xNgJ.js';
4
+ export { s as AUTO_PARAGRAPH_SPACING_PT, t as BorderGridGeometry, C as ContentControlBoundaryRecord, u as ContentControlGeometryFragment, v as ContentControlLevel, w as ContentControlLock, x as ContentControlMappedType, y as DEFAULT_PAGE_GEOMETRY, z as DEFAULT_RUN_STYLE, E as DEFAULT_TAB_INTERVAL_PT, G as DEFAULT_TAB_INTERVAL_TWIPS, J as EMPTY_TAB_STOPS, K as FieldAtomMarker, N as HeaderFooterStoryRecord, O as HyperlinkFieldSpec, L as LineRecord, Q as LineSpacingRule, U as ListMarkerRecord, V as MAX_BORDER_SPACE_PT, W as MAX_BORDER_WIDTH_PT, X as MAX_PARAGRAPH_SPACING_PT, Y as MAX_TABLE_BORDER_STROKES, Z as MAX_TAB_POSITION_TWIPS, _ as MAX_TAB_STOPS, $ as PARAGRAPH_BORDER_SIDES, a0 as ParagraphAutoSpacingContext, a1 as ParagraphBorderSide, a2 as ParagraphBorderStrokeRecord, a3 as ParagraphBottomBorderRecord, a4 as ParagraphIndent, a5 as ResolvedCellBorders, a6 as ResolvedTableBorderEdge, a7 as ResolvedTableBorderEdgeSegment, a8 as ResolvedUnderline, a9 as SINGLE_LINE_SPACING, aa as SourceRange, ab as SpanLinkRecord, ac as TAB_LEADER_GLYPH, ad as TabAlignment, ae as TabDestination, af as TabLeader, ag as TabStop, ah as TableBorderSideName, ai as TableBorderStrokeRecord, c as TableCellFragmentRecord, aj as TableFragmentRecord, b as TableRowFragmentRecord, ak as VerticalAlign, al as appliedSpaceBefore, am as applyLineSpacing, an as baselineShiftPtOf, ao as borderExtentPt, ap as borderWeight, aq as bottomBorderExtentPt, ar as cascadedParagraphBorders, as as cascadedTabStops, at as collapsedSpaceBefore, au as contentControlsOfLayout, av as defaultTabIntervalFromSettings, aw as displayText, ax as effectiveContentControlLock, ay as fragmentsOfParagraph, az as lineAtPosition, aA as linesOf, aB as measureDisplayText, aC as nextTabDestination, aD as paragraphBorderExtentPt, aE as paragraphBorderStrokeWidthPt, aF as paragraphBorders, aG as paragraphBordersFingerprint, aH as paragraphBreaksBefore, aI as paragraphContextualSpacing, aJ as paragraphFragmentsOf, aK as paragraphFragmentsOfBlocks, aL as paragraphLineSpacing, aM as paragraphSpacing, aN as paragraphTabStops, aO as readBorderSide, aP as readCellBorders, aQ as readTableBorders, aR as resolveBorderConflict, aS as resolveRunStyle, aT as resolveTableCellBorderGrid, aU as runStylesEqual, aV as tabAdvanceWidth, aW as tabStopsFingerprint, aX as unionLayoutBoxes, aY as withDefaultTabInterval } from './semantic-records-DoW_xNgJ.js';
5
5
  import { O as OoxmlNode, a as OoxmlElement, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
6
- import { O as OoxmlProperty, C as ContentControlKind, n as ContentControlLevel, o as ContentControlLock, p as ContentControlDataBinding, I as ImpactClass } from './tree-op-types-D0fTNBVW.js';
7
- export { m as TableBorderStyle } from './tree-op-types-D0fTNBVW.js';
6
+ import { O as OoxmlProperty, C as ContentControlKind, n as ContentControlLevel, o as ContentControlLock, p as ContentControlDataBinding, I as ImpactClass } from './tree-op-types-fZgbrR5F.js';
7
+ export { m as TableBorderStyle } from './tree-op-types-fZgbrR5F.js';
8
8
  import { N as NoteKind, n as noteTypeOf } from './note-nodes-BPSTVDMr.js';
9
- import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties } from './review-reads-HDvoQXK2.js';
10
- export { p as paragraphOrderOfPart } from './review-reads-HDvoQXK2.js';
11
- import { D as DocumentProperties, T as TreeModelChange } from './tree-store-CIKASRHk.js';
9
+ import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties } from './review-reads-C5E7u-pt.js';
10
+ export { p as paragraphOrderOfPart } from './review-reads-C5E7u-pt.js';
11
+ import { D as DocumentProperties, T as TreeModelChange } from './tree-store-Dy9FZ1pa.js';
12
12
  import { R as RevisionDisplayMode } from './revision-projection-UKqvPa4-.js';
13
13
  export { D as DEFAULT_REVISION_DISPLAY_MODE, a as RevisionAttribution, b as RevisionKind, f as formatRevisionOf, m as markRevisionRemovesMark, p as paragraphMarkFormatRevisionOf, c as paragraphMarkRevisionOf, d as paragraphMarkRevisionsOf, r as revisionsAreDeletion, e as revisionsVisible, s as shownMarkRevision } from './revision-projection-UKqvPa4-.js';
14
- import { a as SectionColumns } from './semantic-cell-selection-B5vfPz4Q.js';
15
- export { C as CellSelection, D as DEFAULT_SECTION_PROPERTIES, b as DEFAULT_VERTICAL_WEIGHT, c as DocumentSection, d as DocumentSectionsEnumeration, e as DrawingOverlayFrame, H as HitPoint, f as HitTestOptions, M as MAX_DOCUMENT_SECTIONS, P as PlacedCell, g as SectionBreakType, h as SectionColumnDefinition, i as SectionMargins, j as SectionPageNumbering, S as SectionProperties, k as SemanticHit, l as SemanticHitDrawing, T as TableCellAddress, m as TableCellContext, n as caretBoxOnLine, o as cellSelectionBetween, p as cellSelectionRects, q as cellSelectionText, r as contentControlAtPoint, s as enumerateDocumentSections, t as enumerateDocumentSectionsBounded, u as findDrawingOverlayFrameInLayout, v as geometryOfSection, w as hitTestPage, x as hitTestSheet, y as isFurniturePoint, z as lineEndOffset, A as pageAtY, B as paragraphSectionNode, E as paragraphsInCells, F as parsePageNumbering, G as parseSectionProperties, I as readSectionProperties, J as spanOffsetX, K as spansInCells, L as tableContextAt } from './semantic-cell-selection-B5vfPz4Q.js';
14
+ import { a as SectionColumns } from './semantic-cell-selection-C8RC0VnN.js';
15
+ export { C as CellSelection, D as DEFAULT_SECTION_PROPERTIES, b as DEFAULT_VERTICAL_WEIGHT, c as DocumentSection, d as DocumentSectionsEnumeration, e as DrawingOverlayFrame, H as HitPoint, f as HitTestOptions, M as MAX_DOCUMENT_SECTIONS, P as PlacedCell, g as SectionBreakType, h as SectionColumnDefinition, i as SectionMargins, j as SectionPageNumbering, S as SectionProperties, k as SemanticHit, l as SemanticHitDrawing, T as TableCellAddress, m as TableCellContext, n as caretBoxOnLine, o as cellSelectionBetween, p as cellSelectionRects, q as cellSelectionText, r as contentControlAtPoint, s as enumerateDocumentSections, t as enumerateDocumentSectionsBounded, u as findDrawingOverlayFrameInLayout, v as geometryOfSection, w as hitTestPage, x as hitTestSheet, y as isFurniturePoint, z as lineEndOffset, A as pageAtY, B as paragraphSectionNode, E as paragraphsInCells, F as parsePageNumbering, G as parseSectionProperties, I as readSectionProperties, J as spanOffsetX, K as spansInCells, L as tableContextAt } from './semantic-cell-selection-C8RC0VnN.js';
16
16
  export { M as MAX_SDT_NESTING, c as collectFlowBlocks, a as contentControlContentChildren, i as isContentControl, b as isContentControlContent } from './content-control-walk-D06GijR0.js';
17
- export { h as CommentAnchor, i as CommentPosition, C as CommentRecord, j as CommentThreadState, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, R as ReviewModelInput, k as ReviewParagraphAnchor, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind, W as W15_NAMESPACE_URI, l as activeReviewItem, m as anchorLineY, n as commentBodyText, o as commentInitials, p as firstReviewRange, r as reviewAnchorIndex, q as reviewItemGeometry, s as reviewItemKey, t as reviewItemPositionRank, u as reviewItemRanges, v as reviewItemsAt, w as reviewThreadRootOf } from './review-support-D4ZBdUXa.js';
18
- import { S as SemanticPosition, b as SelectionRect, a as SemanticSelection } from './semantic-interaction-lvpzZRpA.js';
19
- export { c as CaretAtOptions, C as CaretGeometry, M as MoveCaretOptions, N as NavigationCommand, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as hitTestSemantic, m as moveCaret, p as paragraphTextFromLayout, s as spansInSelection } from './semantic-interaction-lvpzZRpA.js';
20
- import './image-resources-Cl5_cNi9.js';
17
+ export { h as CommentAnchor, i as CommentPosition, C as CommentRecord, j as CommentThreadState, c as ReviewCommentItem, d as ReviewCustomItem, a as ReviewItem, R as ReviewModelInput, k as ReviewParagraphAnchor, e as ReviewPosition, f as ReviewRange, b as ReviewRevisionItem, g as ReviewRevisionKind, W as W15_NAMESPACE_URI, l as activeReviewItem, m as anchorLineY, n as commentBodyText, o as commentInitials, p as firstReviewRange, r as reviewAnchorIndex, q as reviewItemGeometry, s as reviewItemKey, t as reviewItemPositionRank, u as reviewItemRanges, v as reviewItemsAt, w as reviewThreadRootOf } from './review-support-Cr2n7f1-.js';
18
+ import { S as SemanticPosition, b as SelectionRect, a as SemanticSelection } from './semantic-interaction-C45D_oG2.js';
19
+ export { c as CaretAtOptions, C as CaretGeometry, M as MoveCaretOptions, N as NavigationCommand, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as hitTestSemantic, m as moveCaret, p as paragraphTextFromLayout, s as spansInSelection } from './semantic-interaction-C45D_oG2.js';
20
+ import './image-resources-BWd5u-op.js';
21
21
  import './ooxml-package-D_CtywTW.js';
22
22
 
23
23
  /**
@@ -121,6 +121,15 @@ interface ParagraphLayoutCache<T> {
121
121
  set(key: ParagraphLayoutKey, value: T): void;
122
122
  /** Drop entries for paragraphs a commit removed, so the cache cannot grow without bound. */
123
123
  retain(keys: ReadonlySet<ParagraphLayoutKey>): void;
124
+ /**
125
+ * Whether THIS published pass should pay for a document-wide {@link retain} sweep.
126
+ *
127
+ * Retention only trims memory — the aging window tolerates deferral — while building the
128
+ * union of live keys costs real time on a large document, so callers ask per pass and
129
+ * sweep on a stride. Per cache instance, so one editor's cadence cannot starve another's.
130
+ * Optional for compatibility: a cache without it is retained on every pass.
131
+ */
132
+ retentionPassDue?(): boolean;
124
133
  clear(): void;
125
134
  readonly stats: LayoutCacheStats;
126
135
  }
@@ -171,11 +180,16 @@ interface ParagraphLayoutCacheOptions {
171
180
  readonly maxEntries?: number;
172
181
  }
173
182
  /**
174
- * A bounded least-recently-used cache.
183
+ * A bounded least-recently-used cache with generation-scoped retention.
175
184
  *
176
185
  * Bounded because a long editing session touches far more paragraph states than a document
177
186
  * contains — every keystroke mints a new key for the paragraph being typed in — and an
178
187
  * unbounded cache would hold every intermediate state of the session.
188
+ *
189
+ * The bound never evicts the CURRENT working set: entries stamped by this generation's
190
+ * retain or touched since it began are skipped, and the map grows past `maxEntries` when a
191
+ * document is larger than the configured cap — evicting live entries made every full pass
192
+ * on a 500-page document re-measure the whole document.
179
193
  */
180
194
  declare function createParagraphLayoutCache<T>(options?: ParagraphLayoutCacheOptions): ParagraphLayoutCache<T>;
181
195
 
@@ -1421,6 +1435,13 @@ interface NotesLayoutInput {
1421
1435
  * drawing records, which is what a headless caller with no image port wants.
1422
1436
  */
1423
1437
  readonly drawingsForPart?: (ownerPartName: string) => NoteStoryDrawings | undefined;
1438
+ /**
1439
+ * Part-level drawing epoch covering the notes parts, standing in for
1440
+ * {@link drawingsForPart}'s closure in the notes-pass memo (the closure is rebuilt per
1441
+ * pass, so only an epoch can say "the drawing state did not move"). A caller that
1442
+ * supplies `drawingsForPart` without this keeps the rebuild path.
1443
+ */
1444
+ readonly drawingLayoutEpoch?: string;
1424
1445
  }
1425
1446
  /**
1426
1447
  * The layout with notes attached, plus any fallbacks taken and the mark context used.
@@ -1473,7 +1494,9 @@ declare function filterRefsOnPage(page: PageRecord, allRefs: readonly PageRefHit
1473
1494
  * notes then compete for the same band. Oversized notes still split/continue within the budget;
1474
1495
  * {@link MIN_FOOTNOTE_BODY_BAND_PT} keeps a body band so reflow cannot chase blank sheets.
1475
1496
  */
1476
- declare function computeFootnoteReserves(layout: SemanticLayout, allRefs: readonly PageRefHit[], input: NotesLayoutInput, noteMarks: NoteMarkContext): {
1497
+ declare function computeFootnoteReserves(layout: SemanticLayout, allRefs: readonly PageRefHit[], input: NotesLayoutInput, noteMarks: NoteMarkContext,
1498
+ /** Session-carried notes memo (opaque; owned by this module). */
1499
+ passMemo?: unknown): {
1477
1500
  readonly reserves: ReadonlyMap<number, number>;
1478
1501
  readonly stable: boolean;
1479
1502
  readonly reasons: readonly NotePaginationFallbackReason[];
@@ -1485,6 +1508,11 @@ declare function computeFootnoteReserves(layout: SemanticLayout, allRefs: readon
1485
1508
  declare function attachNotesToLayout(layout: SemanticLayout, allRefs: readonly PageRefHit[], input: NotesLayoutInput, options?: {
1486
1509
  readonly fallbackReasons?: readonly NotePaginationFallbackReason[];
1487
1510
  readonly paragraphSectionIndex?: ReadonlyMap<string, number>;
1511
+ /**
1512
+ * Session-carried notes memo, already validated against `allRefs` and `input`.
1513
+ * Opaque at this boundary; the shape is owned by this module.
1514
+ */
1515
+ readonly memo?: unknown;
1488
1516
  }): NotesAttachResult;
1489
1517
  /**
1490
1518
  * Build a continuous (pre-page) mark context for the first body layout pass.
@@ -1628,6 +1656,30 @@ interface LayoutSession {
1628
1656
  keys: string[];
1629
1657
  /** Geometry and producer of the previous pass; a change to either forces a full pass. */
1630
1658
  context: string;
1659
+ /**
1660
+ * Whether the previous pass read page PARITY: even/odd header variants, or an anchored
1661
+ * drawing positioned against an inside/outside frame or alignment.
1662
+ *
1663
+ * The document page index is not part of {@link context} — page numbers re-project at
1664
+ * finalize and page shells renumber at remap — so parity is the only page-position input
1665
+ * that can invalidate a section's layout. Tracked separately so the common document pays
1666
+ * nothing for a start-index shift.
1667
+ */
1668
+ parityDependent: boolean;
1669
+ /** Parity (0/1) of the document page index this session's layout started on. */
1670
+ startPageParity: number;
1671
+ /**
1672
+ * The section's memoized prepass (prepared blocks, cache keys, flow keys, document
1673
+ * order), reused verbatim while its inputs are unchanged. Opaque here: the shape is
1674
+ * owned by `semantic-layout.ts`, which is the only reader and writer.
1675
+ */
1676
+ prepass: unknown;
1677
+ /**
1678
+ * The notes pass's memoized state (reference hits, mark contexts, per-page attach
1679
+ * results), reused while its inputs are unchanged. Opaque here: the shape is owned by
1680
+ * `note-pagination.ts`, which is the only reader and writer.
1681
+ */
1682
+ notes: unknown;
1631
1683
  /** Line counter at the start of the previous pass, for translating reused section counts. */
1632
1684
  startLineCounter: number;
1633
1685
  /**
@@ -1718,6 +1770,23 @@ interface SemanticLayoutOptions {
1718
1770
  * nobody touched are never measured again.
1719
1771
  */
1720
1772
  readonly cache?: ParagraphLayoutCache<readonly PendingLine[]>;
1773
+ /**
1774
+ * Collector for the cache keys a pass wants retained, instead of retaining directly.
1775
+ * Supplied by the multi-section orchestrator, which retains once over the union —
1776
+ * retaining per section evicted every other section's entries. `false` skips retention
1777
+ * for this pass entirely (the orchestrator strides sweeps). See
1778
+ * {@link retainLiveBreakKeys}.
1779
+ */
1780
+ readonly retainKeys?: Set<string> | false;
1781
+ /**
1782
+ * Part-level drawing projection/resource epoch for the section prepass memo.
1783
+ *
1784
+ * Moves whenever any drawing projection or resource state in the part does, standing in
1785
+ * for the per-paragraph drawing tokens the memo would otherwise have to recompute to
1786
+ * validate. A caller that supplies `drawingTokenForParagraph` without this epoch keeps
1787
+ * the recompute path — the memo must never miss a token move it cannot see.
1788
+ */
1789
+ readonly drawingLayoutEpoch?: string;
1721
1790
  /**
1722
1791
  * Who produced the measurements, folded into every cache key.
1723
1792
  *
package/dist/layout.js CHANGED
@@ -1 +1 @@
1
- export{fa as AUTO_PARAGRAPH_SPACING_PT,Nb as AUTO_PREFERRED_WIDTH,Pb as CELL_PAD,$ as COMPOUND_BORDER_MIN_GAP_PT,_ as COMPOUND_BORDER_MIN_STROKE_PT,pd as DEFAULT_CANVAS_FONT_STACK,Rb as DEFAULT_CELL_MARGINS,Q as DEFAULT_PAGE_GEOMETRY,cb as DEFAULT_REVISION_DISPLAY_MODE,Ya as DEFAULT_RUN_STYLE,Ic as DEFAULT_SECTION_PROPERTIES,Ca as DEFAULT_TAB_INTERVAL_PT,Ba as DEFAULT_TAB_INTERVAL_TWIPS,kc as DEFAULT_VERTICAL_WEIGHT,Yb as EMPTY_NUMBERING_INDEX,Ea as EMPTY_TAB_STOPS,p as GRAPHEME_SEGMENTER_LOCALE,g as HARFBUZZ_SHAPING_LIBRARY,j as HarfBuzzShapingError,ea as MAX_BORDER_SPACE_PT,da as MAX_BORDER_WIDTH_PT,Hc as MAX_DOCUMENT_SECTIONS,fd as MAX_EACH_PAGE_MARK_CANDIDATES,Vb as MAX_LVL_OVERRIDES,Na as MAX_LVL_TEXT_LENGTH,Ma as MAX_MARKER_TEXT_LENGTH,Tc as MAX_NOTES_LAID_OUT,Uc as MAX_NOTE_FRAGMENTS,ed as MAX_NOTE_OVERFLOW_PAGES,dd as MAX_NOTE_REFLOW_ATTEMPTS,Ub as MAX_NUMBERING_DEFINITIONS,ca as MAX_PARAGRAPH_SPACING_PT,sb as MAX_STYLE_BASED_ON_DEPTH,tb as MAX_STYLE_DEFINITIONS,Fb as MAX_TABLE_BORDER_STROKES,Ob as MAX_TABLE_NESTING,Ac as MAX_TABLE_ROW_FRAGMENTS,Qb as MAX_TABLE_ROW_HEIGHT_PT,Aa as MAX_TAB_POSITION_TWIPS,za as MAX_TAB_STOPS,ha as PARAGRAPH_BORDER_SIDES,P as ResolvedCache,ga as SINGLE_LINE_SPACING,Da as TAB_LEADER_GLYPH,Bc as TablePaginationError,n as UnsupportedScriptError,E as WORD_SEGMENTER_LOCALE,ta as appliedSpaceBefore,ka as applyLineSpacing,kd as attachNotesToLayout,bb as baselineShiftPtOf,Mb as borderExtentPt,Jb as borderWeight,qa as bottomBorderExtentPt,H as boundedFallbackWordSegments,Wb as buildNumberingIndex,hd as buildPageRefIndex,vb as buildStyleCascadeTable,N as captureOperationSnapshot,Ed as caretAt,tc as caretBoxOnLine,Cd as caretStops,Dd as caretStopsForBlocks,wb as cascadeParagraphFormatting,yb as cascadeRunProperties,xb as cascadedBottomBorder,na as cascadedParagraphBorders,Fa as cascadedTabStops,Md as cellSelectionBetween,Pd as cellSelectionRects,Qd as cellSelectionText,Oa as clampListValue,sa as collapsedSpaceBefore,Kd as compositionAnchor,aa as computeDoubleBorderMetricsPt,jd as computeFootnoteReserves,qc as contentControlAtPoint,Gd as contentControlAtSemantic,ud as contentControlBoundaries,Hd as contentControlsInLayout,X as contentControlsOfLayout,I as createBoundedFallbackWordBoundary,J as createDefaultWordBoundary,nd as createFixedMeasurer,m as createHarfBuzzTextShaper,G as createIntlWordBoundary,xd as createLayoutScheduler,md as createLayoutSession,Zb as createListCounterState,ob as createParagraphLayoutCache,vd as createShapedMeasurer,e as createShapedRun,b as createShapingEnvironment,_c as defaultNoteSeparatorRuleStyle,Ia as defaultTabIntervalFromSettings,Qc as deriveNoteDisplayMarks,Rc as deriveNoteDisplayMarksResolved,_a as displayText,fc as documentOrder,Eb as effectiveBorderSide,Z as effectiveContentControlLock,Ec as emptyTocPlaceholderParagraphIds,Fc as emptyTocSuppressedResultParagraphIds,Nc as enumerateDocumentSections,Oc as enumerateDocumentSectionsBounded,Wa as expandLvlText,id as filterRefsOnPage,uc as findDrawingOverlayFrameInLayout,Xc as findSeparatorNote,a as fixedPoint,Pa as formatDecimal,Qa as formatDecimalZero,Ua as formatLowerLetter,Sa as formatLowerRoman,Va as formatNumFmt,Xa as formatPageNumber,jb as formatRevisionOf,Ta as formatUpperLetter,Ra as formatUpperRoman,gd as fragmentOwnsAtomOffset,V as fragmentsOfParagraph,Pc as geometryOfSection,s as graphemeBoundaryEpoch,w as graphemeCount,y as graphemeOffsetToUtf16,O as guardOperationSnapshot,k as harfBuzzFontValidator,nc as hitTestPage,Fd as hitTestSemantic,pc as hitTestSheet,h as initializeHarfBuzz,r as intlGraphemeBoundary,rd as isCanvasMeasurementAvailable,C as isCumulativeGeometryTrustedFromLineOrigin,mc as isFurniturePoint,B as isGeometryTrustedCaretOffset,i as isHarfBuzzInitialized,q as isIntlSegmenterAvailable,F as isIntlWordSegmenterAvailable,$c as isMarkerOnlySeparatorNote,ub as isValidStyleId,A as isWholeGraphemeHorizontalBoundary,o as itemizeScriptFontSlots,zd as keyedRangeRects,Gc as layoutHeaderFooterStory,Zc as layoutNoteById,ad as layoutNoteSeparator,Yc as layoutNoteStory,od as layoutSemanticDocument,W as lineAtPosition,rc as lineEndOffset,T as linesOf,ec as listMarkerBox,hb as markRevisionRemovesMark,$a as measureDisplayText,ac as mergeListIndent,Jd as moveCaret,Ja as nextTabDestination,Wc as normalNotesOf,Sc as noteDisplayMarkMap,Vc as noteLineIdPrefix,lb as noteMarkKey,cd as noteSeparatorAreaBox,Db as noteStoryBlocks,lc as pageAtY,wd as pagesToMaterialize,pa as paragraphBorderExtentPt,oa as paragraphBorderStrokeWidthPt,ma as paragraphBorders,ra as paragraphBordersFingerprint,ba as paragraphBreaksBefore,la as paragraphContextualSpacing,R as paragraphFragmentsOf,S as paragraphFragmentsOfBlocks,nb as paragraphLayoutKey,ja as paragraphLineSpacing,Ab as paragraphMarkDeleted,fb as paragraphMarkFormatRevisionOf,ib as paragraphMarkRevisionOf,eb as paragraphMarkRevisionsOf,Lc as paragraphSectionNode,xa as paragraphShading,ya as paragraphShadingBox,ia as paragraphSpacing,Ga as paragraphTabStops,Id as paragraphTextFromLayout,Nd as paragraphsInCells,Jc as parsePageNumbering,Kc as parseSectionProperties,Ad as positionPastDeletion,mb as projectedNoteMarkText,ld as provisionalNoteMarks,Gb as readBorderSide,Ib as readCellBorders,_b as readNumPr,Mc as readSectionProperties,Hb as readTableBorders,Tb as readTableStructure,v as resetGraphemeBoundary,Kb as resolveBorderConflict,td as resolveDefaultSurfaceMeasurer,K as resolveDefaultWordBoundary,Xb as resolveNumberingLevel,va as resolveOoxmlShadingFill,zb as resolveParagraphLayoutInputs,Za as resolveRunStyle,cc as resolveStoryListItems,ua as resolveStrictHexFill,Lb as resolveTableCellBorderGrid,Bb as revisionRemovesParagraph,kb as revisionsAreDeletion,db as revisionsVisible,l as roundFontUnitToFixedPoint,ab as runStylesEqual,t as segmentGraphemes,L as segmentWords,yd as selectionRects,D as semanticHorizontalBoundaries,u as setGraphemeBoundary,wa as shadingFillFromElement,z as shapedHorizontalBoundaries,f as shapedRunComparatorInputs,d as shapingEnvironmentFingerprint,c as shapingEnvironmentFingerprintInputs,gb as shownMarkRevision,sc as spanOffsetX,Od as spansInCells,Ld as spansInSelection,Cb as storyBlocks,bd as syntheticSeparatorBox,Ka as tabAdvanceWidth,La as tabStopsFingerprint,Rd as tableContextAt,Sb as tableOriginX,Dc as tocFieldChromeParagraphIds,sd as tryCreateCanvasMeasurer,Y as unionLayoutBoxes,x as utf16OffsetToGrapheme,bc as walkStoryParagraphs,Ha as withDefaultTabInterval,$b as withNumberingStyleLinks,dc as withResolvedListItems,Bd as wordBoundary,M as wordSegmentsToGraphemeRecords}from'./chunk-OPKOTVQQ.js';export{a as setHarfBuzzWasmUrl}from'./chunk-WU7PUTVA.js';export{a as W15_NAMESPACE_URI,i as activeReviewItem,k as anchorLineY,c as commentBodyText,d as commentInitials,f as firstReviewRange,l as reviewAnchorIndex,m as reviewItemGeometry,b as reviewItemKey,g as reviewItemPositionRank,e as reviewItemRanges,h as reviewItemsAt,j as reviewThreadRootOf}from'./chunk-UVIUNAQ6.js';import'./chunk-SMRD66T5.js';export{d as FontResolutionError,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,Kb as MAX_SDT_NESTING,pf as MAX_TABLE_COLUMNS,j as boundedStructuralFontValidator,Pb as collectFlowBlocks,Ob as contentControlContentChildren,k as createFontResourceSnapshot,e as fontRequestKey,Lb as isContentControl,Mb as isContentControlContent,tg as paragraphOrderOfPart,i as sha256FontBytes}from'./chunk-R75OLPL6.js';
1
+ export{fa as AUTO_PARAGRAPH_SPACING_PT,Pb as AUTO_PREFERRED_WIDTH,Rb as CELL_PAD,$ as COMPOUND_BORDER_MIN_GAP_PT,_ as COMPOUND_BORDER_MIN_STROKE_PT,rd as DEFAULT_CANVAS_FONT_STACK,Tb as DEFAULT_CELL_MARGINS,Q as DEFAULT_PAGE_GEOMETRY,db as DEFAULT_REVISION_DISPLAY_MODE,Za as DEFAULT_RUN_STYLE,Kc as DEFAULT_SECTION_PROPERTIES,Da as DEFAULT_TAB_INTERVAL_PT,Ca as DEFAULT_TAB_INTERVAL_TWIPS,mc as DEFAULT_VERTICAL_WEIGHT,_b as EMPTY_NUMBERING_INDEX,Fa as EMPTY_TAB_STOPS,p as GRAPHEME_SEGMENTER_LOCALE,g as HARFBUZZ_SHAPING_LIBRARY,j as HarfBuzzShapingError,ea as MAX_BORDER_SPACE_PT,da as MAX_BORDER_WIDTH_PT,Jc as MAX_DOCUMENT_SECTIONS,hd as MAX_EACH_PAGE_MARK_CANDIDATES,Xb as MAX_LVL_OVERRIDES,Oa as MAX_LVL_TEXT_LENGTH,Na as MAX_MARKER_TEXT_LENGTH,Vc as MAX_NOTES_LAID_OUT,Wc as MAX_NOTE_FRAGMENTS,gd as MAX_NOTE_OVERFLOW_PAGES,fd as MAX_NOTE_REFLOW_ATTEMPTS,Wb as MAX_NUMBERING_DEFINITIONS,ca as MAX_PARAGRAPH_SPACING_PT,ub as MAX_STYLE_BASED_ON_DEPTH,vb as MAX_STYLE_DEFINITIONS,Hb as MAX_TABLE_BORDER_STROKES,Qb as MAX_TABLE_NESTING,Cc as MAX_TABLE_ROW_FRAGMENTS,Sb as MAX_TABLE_ROW_HEIGHT_PT,Ba as MAX_TAB_POSITION_TWIPS,Aa as MAX_TAB_STOPS,ha as PARAGRAPH_BORDER_SIDES,P as ResolvedCache,ga as SINGLE_LINE_SPACING,Ea as TAB_LEADER_GLYPH,Dc as TablePaginationError,n as UnsupportedScriptError,E as WORD_SEGMENTER_LOCALE,ua as appliedSpaceBefore,la as applyLineSpacing,md as attachNotesToLayout,cb as baselineShiftPtOf,Ob as borderExtentPt,Lb as borderWeight,ra as bottomBorderExtentPt,H as boundedFallbackWordSegments,Yb as buildNumberingIndex,jd as buildPageRefIndex,xb as buildStyleCascadeTable,N as captureOperationSnapshot,Hd as caretAt,vc as caretBoxOnLine,Fd as caretStops,Gd as caretStopsForBlocks,yb as cascadeParagraphFormatting,Ab as cascadeRunProperties,zb as cascadedBottomBorder,oa as cascadedParagraphBorders,Ga as cascadedTabStops,Pd as cellSelectionBetween,Sd as cellSelectionRects,Td as cellSelectionText,Pa as clampListValue,ta as collapsedSpaceBefore,Nd as compositionAnchor,aa as computeDoubleBorderMetricsPt,ld as computeFootnoteReserves,sc as contentControlAtPoint,Jd as contentControlAtSemantic,wd as contentControlBoundaries,Kd as contentControlsInLayout,X as contentControlsOfLayout,I as createBoundedFallbackWordBoundary,J as createDefaultWordBoundary,pd as createFixedMeasurer,m as createHarfBuzzTextShaper,G as createIntlWordBoundary,zd as createLayoutScheduler,od as createLayoutSession,$b as createListCounterState,pb as createParagraphLayoutCache,xd as createShapedMeasurer,e as createShapedRun,b as createShapingEnvironment,ad as defaultNoteSeparatorRuleStyle,Ja as defaultTabIntervalFromSettings,Sc as deriveNoteDisplayMarks,Tc as deriveNoteDisplayMarksResolved,$a as displayText,hc as documentOrder,Gb as effectiveBorderSide,Z as effectiveContentControlLock,Gc as emptyTocPlaceholderParagraphIds,Hc as emptyTocSuppressedResultParagraphIds,Pc as enumerateDocumentSections,Qc as enumerateDocumentSectionsBounded,Xa as expandLvlText,kd as filterRefsOnPage,wc as findDrawingOverlayFrameInLayout,Zc as findSeparatorNote,a as fixedPoint,Qa as formatDecimal,Ra as formatDecimalZero,Va as formatLowerLetter,Ta as formatLowerRoman,Wa as formatNumFmt,Ya as formatPageNumber,kb as formatRevisionOf,Ua as formatUpperLetter,Sa as formatUpperRoman,id as fragmentOwnsAtomOffset,V as fragmentsOfParagraph,Rc as geometryOfSection,s as graphemeBoundaryEpoch,w as graphemeCount,y as graphemeOffsetToUtf16,O as guardOperationSnapshot,k as harfBuzzFontValidator,pc as hitTestPage,Id as hitTestSemantic,rc as hitTestSheet,h as initializeHarfBuzz,r as intlGraphemeBoundary,td as isCanvasMeasurementAvailable,C as isCumulativeGeometryTrustedFromLineOrigin,oc as isFurniturePoint,B as isGeometryTrustedCaretOffset,i as isHarfBuzzInitialized,q as isIntlSegmenterAvailable,F as isIntlWordSegmenterAvailable,bd as isMarkerOnlySeparatorNote,wb as isValidStyleId,A as isWholeGraphemeHorizontalBoundary,o as itemizeScriptFontSlots,Bd as keyedRangeRects,Ic as layoutHeaderFooterStory,$c as layoutNoteById,cd as layoutNoteSeparator,_c as layoutNoteStory,qd as layoutSemanticDocument,W as lineAtPosition,tc as lineEndOffset,T as linesOf,gc as listMarkerBox,ib as markRevisionRemovesMark,ab as measureDisplayText,cc as mergeListIndent,Md as moveCaret,Ka as nextTabDestination,Yc as normalNotesOf,Uc as noteDisplayMarkMap,Xc as noteLineIdPrefix,mb as noteMarkKey,ed as noteSeparatorAreaBox,Fb as noteStoryBlocks,nc as pageAtY,yd as pagesToMaterialize,qa as paragraphBorderExtentPt,pa as paragraphBorderStrokeWidthPt,na as paragraphBorders,sa as paragraphBordersFingerprint,ba as paragraphBreaksBefore,ma as paragraphContextualSpacing,R as paragraphFragmentsOf,S as paragraphFragmentsOfBlocks,ob as paragraphLayoutKey,ka as paragraphLineSpacing,Cb as paragraphMarkDeleted,gb as paragraphMarkFormatRevisionOf,jb as paragraphMarkRevisionOf,fb as paragraphMarkRevisionsOf,Nc as paragraphSectionNode,ya as paragraphShading,za as paragraphShadingBox,ja as paragraphSpacing,Ha as paragraphTabStops,Ld as paragraphTextFromLayout,Qd as paragraphsInCells,Lc as parsePageNumbering,Mc as parseSectionProperties,Dd as positionPastDeletion,nb as projectedNoteMarkText,nd as provisionalNoteMarks,Ib as readBorderSide,Kb as readCellBorders,ac as readNumPr,Oc as readSectionProperties,Jb as readTableBorders,Vb as readTableStructure,v as resetGraphemeBoundary,Mb as resolveBorderConflict,vd as resolveDefaultSurfaceMeasurer,K as resolveDefaultWordBoundary,Zb as resolveNumberingLevel,wa as resolveOoxmlShadingFill,Bb as resolveParagraphLayoutInputs,_a as resolveRunStyle,ec as resolveStoryListItems,va as resolveStrictHexFill,Nb as resolveTableCellBorderGrid,Db as revisionRemovesParagraph,lb as revisionsAreDeletion,eb as revisionsVisible,l as roundFontUnitToFixedPoint,bb as runStylesEqual,t as segmentGraphemes,L as segmentWords,Ad as selectionRects,D as semanticHorizontalBoundaries,u as setGraphemeBoundary,xa as shadingFillFromElement,z as shapedHorizontalBoundaries,f as shapedRunComparatorInputs,d as shapingEnvironmentFingerprint,c as shapingEnvironmentFingerprintInputs,hb as shownMarkRevision,uc as spanOffsetX,Rd as spansInCells,Od as spansInSelection,Eb as storyBlocks,dd as syntheticSeparatorBox,La as tabAdvanceWidth,Ma as tabStopsFingerprint,Ud as tableContextAt,Ub as tableOriginX,Fc as tocFieldChromeParagraphIds,ud as tryCreateCanvasMeasurer,Y as unionLayoutBoxes,x as utf16OffsetToGrapheme,dc as walkStoryParagraphs,Ia as withDefaultTabInterval,bc as withNumberingStyleLinks,fc as withResolvedListItems,Ed as wordBoundary,M as wordSegmentsToGraphemeRecords}from'./chunk-QTUZFJ4O.js';export{a as setHarfBuzzWasmUrl}from'./chunk-WU7PUTVA.js';export{a as W15_NAMESPACE_URI,i as activeReviewItem,k as anchorLineY,c as commentBodyText,d as commentInitials,f as firstReviewRange,l as reviewAnchorIndex,m as reviewItemGeometry,b as reviewItemKey,g as reviewItemPositionRank,e as reviewItemRanges,h as reviewItemsAt,j as reviewThreadRootOf}from'./chunk-42PRWWVE.js';import'./chunk-GPJXQDHC.js';export{d as FontResolutionError,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,Kb as MAX_SDT_NESTING,qf as MAX_TABLE_COLUMNS,j as boundedStructuralFontValidator,Pb as collectFlowBlocks,Ob as contentControlContentChildren,k as createFontResourceSnapshot,e as fontRequestKey,Lb as isContentControl,Mb as isContentControlContent,xg as paragraphOrderOfPart,i as sha256FontBytes}from'./chunk-32HTRN7R.js';
package/dist/output.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkF7Z6PWAZ_cjs=require('./chunk-F7Z6PWAZ.cjs');require('./chunk-DGUHCJPF.cjs'),require('./chunk-IJ4V3LGV.cjs'),require('./chunk-SFMAIFEN.cjs'),require('./chunk-DY3QVCWC.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkF7Z6PWAZ_cjs.h}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkF7Z6PWAZ_cjs.j}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkF7Z6PWAZ_cjs.i}});
1
+ 'use strict';var chunkBRBRYJKE_cjs=require('./chunk-BRBRYJKE.cjs');require('./chunk-LEV2X47E.cjs'),require('./chunk-XRDTD4X3.cjs'),require('./chunk-DTR64XCS.cjs'),require('./chunk-WC3LI6FC.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkBRBRYJKE_cjs.h}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkBRBRYJKE_cjs.j}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkBRBRYJKE_cjs.i}});
package/dist/output.d.cts CHANGED
@@ -1,8 +1,8 @@
1
- import { R as ReviewAuthorInfo } from './semantic-paint-IjbL-4CT.cjs';
2
- export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-IjbL-4CT.cjs';
3
- import { S as SemanticLayout } from './semantic-records-DEOs3_tE.cjs';
4
- import './image-resources-BaHz4QAd.cjs';
5
- import './tree-op-types-CUCwPWjT.cjs';
1
+ import { R as ReviewAuthorInfo } from './semantic-paint-BUt0ePEW.cjs';
2
+ export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-BUt0ePEW.cjs';
3
+ import { S as SemanticLayout } from './semantic-records-CuT3Wsd-.cjs';
4
+ import './image-resources-Bkmu1Jei.cjs';
5
+ import './tree-op-types-QujrzgCz.cjs';
6
6
  import './ooxml-tree-BU0e3DVi.cjs';
7
7
  import './ooxml-package-CR5us6ad.cjs';
8
8
  import './revision-projection-WzlQGBJx.cjs';
package/dist/output.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { R as ReviewAuthorInfo } from './semantic-paint-BBPL3u5w.js';
2
- export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-BBPL3u5w.js';
3
- import { S as SemanticLayout } from './semantic-records-CdQvpUj1.js';
4
- import './image-resources-Cl5_cNi9.js';
5
- import './tree-op-types-D0fTNBVW.js';
1
+ import { R as ReviewAuthorInfo } from './semantic-paint-DUkGLJ_L.js';
2
+ export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-DUkGLJ_L.js';
3
+ import { S as SemanticLayout } from './semantic-records-DoW_xNgJ.js';
4
+ import './image-resources-BWd5u-op.js';
5
+ import './tree-op-types-fZgbrR5F.js';
6
6
  import './ooxml-tree-BU0e3DVi.js';
7
7
  import './ooxml-package-D_CtywTW.js';
8
8
  import './revision-projection-UKqvPa4-.js';
package/dist/output.js CHANGED
@@ -1 +1 @@
1
- export{h as DEFAULT_FIELD_SHADING,j as paintSelectionOverlay,i as paintSemanticLayout}from'./chunk-WAVN7MAT.js';import'./chunk-OPKOTVQQ.js';import'./chunk-WU7PUTVA.js';import'./chunk-UVIUNAQ6.js';import'./chunk-SMRD66T5.js';import'./chunk-R75OLPL6.js';
1
+ export{h as DEFAULT_FIELD_SHADING,j as paintSelectionOverlay,i as paintSemanticLayout}from'./chunk-UE7KTQLK.js';import'./chunk-QTUZFJ4O.js';import'./chunk-WU7PUTVA.js';import'./chunk-42PRWWVE.js';import'./chunk-GPJXQDHC.js';import'./chunk-32HTRN7R.js';
@@ -1,6 +1,6 @@
1
1
  import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.js';
2
2
  import { O as OoxmlPackage } from './ooxml-package-D_CtywTW.js';
3
- import { R as RevisionAddress } from './tree-op-types-D0fTNBVW.js';
3
+ import { R as RevisionAddress } from './tree-op-types-fZgbrR5F.js';
4
4
 
5
5
  /** `w:pos` — where a section's footnotes are laid out. */
6
6
  type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';
@@ -1,6 +1,6 @@
1
1
  import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.cjs';
2
2
  import { O as OoxmlPackage } from './ooxml-package-CR5us6ad.cjs';
3
- import { R as RevisionAddress } from './tree-op-types-CUCwPWjT.cjs';
3
+ import { R as RevisionAddress } from './tree-op-types-QujrzgCz.cjs';
4
4
 
5
5
  /** `w:pos` — where a section's footnotes are laid out. */
6
6
  type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';
@@ -1,5 +1,5 @@
1
1
  import { e as OoxmlPart, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.js';
2
- import { R as RevisionAddress } from './tree-op-types-D0fTNBVW.js';
2
+ import { R as RevisionAddress } from './tree-op-types-fZgbrR5F.js';
3
3
 
4
4
  /** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
5
5
  declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -1,5 +1,5 @@
1
1
  import { e as OoxmlPart, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.cjs';
2
- import { R as RevisionAddress } from './tree-op-types-CUCwPWjT.cjs';
2
+ import { R as RevisionAddress } from './tree-op-types-QujrzgCz.cjs';
3
3
 
4
4
  /** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
5
5
  declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -1,7 +1,7 @@
1
1
  import { e as OoxmlPart, a as OoxmlElement, O as OoxmlNode } from './ooxml-tree-BU0e3DVi.js';
2
- import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-CdQvpUj1.js';
2
+ import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-DoW_xNgJ.js';
3
3
  import { R as RevisionDisplayMode } from './revision-projection-UKqvPa4-.js';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-lvpzZRpA.js';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-C45D_oG2.js';
5
5
 
6
6
  /**
7
7
  * Hard ceiling on sections enumerated from a document (matches write-path
@@ -1,7 +1,7 @@
1
1
  import { e as OoxmlPart, a as OoxmlElement, O as OoxmlNode } from './ooxml-tree-BU0e3DVi.cjs';
2
- import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-DEOs3_tE.cjs';
2
+ import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-CuT3Wsd-.cjs';
3
3
  import { R as RevisionDisplayMode } from './revision-projection-WzlQGBJx.cjs';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-CDNEU_Tx.cjs';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-f4GyBQ_1.cjs';
5
5
 
6
6
  /**
7
7
  * Hard ceiling on sections enumerated from a document (matches write-path
@@ -1,4 +1,4 @@
1
- import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-CdQvpUj1.js';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-DoW_xNgJ.js';
2
2
 
3
3
  /** A caret position in the model. */
4
4
  interface SemanticPosition {
@@ -1,4 +1,4 @@
1
- import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-DEOs3_tE.cjs';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-CuT3Wsd-.cjs';
2
2
 
3
3
  /** A caret position in the model. */
4
4
  interface SemanticPosition {
@@ -1,5 +1,5 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-DEOs3_tE.cjs';
2
- import { V as ValidatedImageBytesHandle, R as RenderableImageMime } from './image-resources-BaHz4QAd.cjs';
1
+ import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-CuT3Wsd-.cjs';
2
+ import { V as ValidatedImageBytesHandle, R as RenderableImageMime } from './image-resources-Bkmu1Jei.cjs';
3
3
 
4
4
  /**
5
5
  * Everything a host can say about ONE author's presentation. Every field is optional and
@@ -171,6 +171,10 @@ interface PaintOptions {
171
171
  *
172
172
  * When set, the matching `[data-docx-hf]` container is editable and every body
173
173
  * `.docx-page-content` box is inert; all other furniture stays read-only.
174
+ *
175
+ * Deliberately OUTSIDE the paint-reuse key: entering a header must not rebuild
176
+ * body sheets. Chrome is applied to already-painted nodes in place, the way TOC
177
+ * hover is.
174
178
  */
175
179
  readonly activeHeaderFooterRId?: string;
176
180
  /**
@@ -178,6 +182,8 @@ interface PaintOptions {
178
182
  *
179
183
  * Required with {@link activeHeaderFooterRId} so only one painted copy receives
180
184
  * `data-docx-hf-active` / the engine caret when the same rId appears on many pages.
185
+ * Also outside the paint-reuse key — moving the caret across shared copies retints
186
+ * markers in place rather than replacing every page.
181
187
  */
182
188
  readonly activeHeaderFooterPageIndex?: number;
183
189
  /**
@@ -1,5 +1,5 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-CdQvpUj1.js';
2
- import { V as ValidatedImageBytesHandle, R as RenderableImageMime } from './image-resources-Cl5_cNi9.js';
1
+ import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-DoW_xNgJ.js';
2
+ import { V as ValidatedImageBytesHandle, R as RenderableImageMime } from './image-resources-BWd5u-op.js';
3
3
 
4
4
  /**
5
5
  * Everything a host can say about ONE author's presentation. Every field is optional and
@@ -171,6 +171,10 @@ interface PaintOptions {
171
171
  *
172
172
  * When set, the matching `[data-docx-hf]` container is editable and every body
173
173
  * `.docx-page-content` box is inert; all other furniture stays read-only.
174
+ *
175
+ * Deliberately OUTSIDE the paint-reuse key: entering a header must not rebuild
176
+ * body sheets. Chrome is applied to already-painted nodes in place, the way TOC
177
+ * hover is.
174
178
  */
175
179
  readonly activeHeaderFooterRId?: string;
176
180
  /**
@@ -178,6 +182,8 @@ interface PaintOptions {
178
182
  *
179
183
  * Required with {@link activeHeaderFooterRId} so only one painted copy receives
180
184
  * `data-docx-hf-active` / the engine caret when the same rId appears on many pages.
185
+ * Also outside the paint-reuse key — moving the caret across shared copies retints
186
+ * markers in place rather than replacing every page.
181
187
  */
182
188
  readonly activeHeaderFooterPageIndex?: number;
183
189
  /**
@@ -1,9 +1,20 @@
1
- import { O as OoxmlProperty, k as DrawingAccessibility, S as SourceCrop, l as DrawingTransform, V as VectorShapeProjection, f as DrawingHorizontalReferenceFrame, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, D as DrawingProjection, m as TableBorderStyle } from './tree-op-types-CUCwPWjT.cjs';
1
+ import { O as OoxmlProperty, k as DrawingAccessibility, S as SourceCrop, l as DrawingTransform, V as VectorShapeProjection, f as DrawingHorizontalReferenceFrame, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, D as DrawingProjection, m as TableBorderStyle } from './tree-op-types-QujrzgCz.cjs';
2
2
  import { O as OoxmlNode, o as OoxmlDrawingNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.cjs';
3
- import { I as ImageResourceState } from './image-resources-BaHz4QAd.cjs';
3
+ import { I as ImageResourceState } from './image-resources-Bkmu1Jei.cjs';
4
4
  import { a as RevisionAttribution } from './revision-projection-WzlQGBJx.cjs';
5
5
 
6
- /** Whether a paragraph must start a new page (`w:pageBreakBefore`). */
6
+ /**
7
+ * Whether a paragraph must start a new page (`w:pageBreakBefore`).
8
+ *
9
+ * LAST WINS, like every other toggle read off the cascade (`paragraphKeeps` does the same
10
+ * for `w:keepNext`). An any-wins `.some()` cannot be switched off: a Chapter or Heading style
11
+ * carries `w:pageBreakBefore`, and Word writes `w:val="0"` on the one instance whose author
12
+ * unchecked the box — that paragraph still broke, so the document grew a blank page and every
13
+ * page number after it was wrong.
14
+ *
15
+ * An absent `w:val` is on (§17.17.4), and the off vocabulary is the whole of it — `off` is a
16
+ * spelling too, which {@link isOn} beside this already accepts.
17
+ */
7
18
  declare function paragraphBreaksBefore(props: readonly OoxmlProperty[]): boolean;
8
19
  /**
9
20
  * Soft ceiling matching the spike's resolved-style limit (31_680 twips ≈ 22"). Beyond
@@ -28,7 +39,7 @@ interface ParagraphSpacing {
28
39
  }
29
40
  /**
30
41
  * The gap Word substitutes when `w:beforeAutospacing` / `w:afterAutospacing` is on
31
- * (ECMA-376 §17.3.1.2, §17.3.1.13).
42
+ * (ECMA-376 §17.3.1.33, the `w:spacing` clause both attributes belong to).
32
43
  *
33
44
  * The attribute means "the consumer decides", and the authored `@before` / `@after` beside it
34
45
  * is IGNORED rather than used as the value. Word's answer is HTML's default `<p>` margin,
@@ -1572,19 +1583,15 @@ interface TextMeasurer {
1572
1583
  * asked for, so interaction sees each caret stop exactly once while paint sees everything.
1573
1584
  */
1574
1585
  declare function paragraphFragmentsOf(page: PageRecord, includeHeaderRepeats?: boolean): ParagraphFragmentRecord[];
1575
- /**
1576
- * Depth-first paragraph fragments of one block list, in reading order.
1577
- *
1578
- * The same walk as {@link paragraphFragmentsOf} for fragment lists that do not sit on the
1579
- * page directly — a header/footer story's fragments, a note story's.
1580
- */
1581
1586
  declare function paragraphFragmentsOfBlocks(blocks: readonly BlockFragmentRecord[], includeHeaderRepeats?: boolean): ParagraphFragmentRecord[];
1582
1587
  /** Every line in a layout, in reading order — the order caret navigation walks. */
1583
1588
  declare function linesOf(layout: SemanticLayout): LineRecord[];
1584
1589
  /** Every fragment belonging to one paragraph, in order, across page boundaries. */
1585
1590
  declare function fragmentsOfParagraph(layout: SemanticLayout, paragraphId: string): ParagraphFragmentRecord[];
1586
1591
  /** The line containing a model position, or null when the position is not laid out. */
1587
- declare function lineAtPosition(layout: SemanticLayout, paragraphId: string, offset: number): LineRecord | null;
1592
+ declare function lineAtPosition(layout: SemanticLayout, paragraphId: string, offset: number,
1593
+ /** Lines to test, when the caller already knows which ones can carry the paragraph. */
1594
+ candidates?: Iterable<LineRecord>): LineRecord | null;
1588
1595
  /** Every content-control boundary on a layout, preferring the layout-level list. */
1589
1596
  declare function contentControlsOfLayout(layout: SemanticLayout): readonly ContentControlBoundaryRecord[];
1590
1597
  /**
@@ -1,9 +1,20 @@
1
- import { O as OoxmlProperty, k as DrawingAccessibility, S as SourceCrop, l as DrawingTransform, V as VectorShapeProjection, f as DrawingHorizontalReferenceFrame, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, D as DrawingProjection, m as TableBorderStyle } from './tree-op-types-D0fTNBVW.js';
1
+ import { O as OoxmlProperty, k as DrawingAccessibility, S as SourceCrop, l as DrawingTransform, V as VectorShapeProjection, f as DrawingHorizontalReferenceFrame, g as DrawingVerticalReferenceFrame, b as ImageWrapTarget, D as DrawingProjection, m as TableBorderStyle } from './tree-op-types-fZgbrR5F.js';
2
2
  import { O as OoxmlNode, o as OoxmlDrawingNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.js';
3
- import { I as ImageResourceState } from './image-resources-Cl5_cNi9.js';
3
+ import { I as ImageResourceState } from './image-resources-BWd5u-op.js';
4
4
  import { a as RevisionAttribution } from './revision-projection-UKqvPa4-.js';
5
5
 
6
- /** Whether a paragraph must start a new page (`w:pageBreakBefore`). */
6
+ /**
7
+ * Whether a paragraph must start a new page (`w:pageBreakBefore`).
8
+ *
9
+ * LAST WINS, like every other toggle read off the cascade (`paragraphKeeps` does the same
10
+ * for `w:keepNext`). An any-wins `.some()` cannot be switched off: a Chapter or Heading style
11
+ * carries `w:pageBreakBefore`, and Word writes `w:val="0"` on the one instance whose author
12
+ * unchecked the box — that paragraph still broke, so the document grew a blank page and every
13
+ * page number after it was wrong.
14
+ *
15
+ * An absent `w:val` is on (§17.17.4), and the off vocabulary is the whole of it — `off` is a
16
+ * spelling too, which {@link isOn} beside this already accepts.
17
+ */
7
18
  declare function paragraphBreaksBefore(props: readonly OoxmlProperty[]): boolean;
8
19
  /**
9
20
  * Soft ceiling matching the spike's resolved-style limit (31_680 twips ≈ 22"). Beyond
@@ -28,7 +39,7 @@ interface ParagraphSpacing {
28
39
  }
29
40
  /**
30
41
  * The gap Word substitutes when `w:beforeAutospacing` / `w:afterAutospacing` is on
31
- * (ECMA-376 §17.3.1.2, §17.3.1.13).
42
+ * (ECMA-376 §17.3.1.33, the `w:spacing` clause both attributes belong to).
32
43
  *
33
44
  * The attribute means "the consumer decides", and the authored `@before` / `@after` beside it
34
45
  * is IGNORED rather than used as the value. Word's answer is HTML's default `<p>` margin,
@@ -1572,19 +1583,15 @@ interface TextMeasurer {
1572
1583
  * asked for, so interaction sees each caret stop exactly once while paint sees everything.
1573
1584
  */
1574
1585
  declare function paragraphFragmentsOf(page: PageRecord, includeHeaderRepeats?: boolean): ParagraphFragmentRecord[];
1575
- /**
1576
- * Depth-first paragraph fragments of one block list, in reading order.
1577
- *
1578
- * The same walk as {@link paragraphFragmentsOf} for fragment lists that do not sit on the
1579
- * page directly — a header/footer story's fragments, a note story's.
1580
- */
1581
1586
  declare function paragraphFragmentsOfBlocks(blocks: readonly BlockFragmentRecord[], includeHeaderRepeats?: boolean): ParagraphFragmentRecord[];
1582
1587
  /** Every line in a layout, in reading order — the order caret navigation walks. */
1583
1588
  declare function linesOf(layout: SemanticLayout): LineRecord[];
1584
1589
  /** Every fragment belonging to one paragraph, in order, across page boundaries. */
1585
1590
  declare function fragmentsOfParagraph(layout: SemanticLayout, paragraphId: string): ParagraphFragmentRecord[];
1586
1591
  /** The line containing a model position, or null when the position is not laid out. */
1587
- declare function lineAtPosition(layout: SemanticLayout, paragraphId: string, offset: number): LineRecord | null;
1592
+ declare function lineAtPosition(layout: SemanticLayout, paragraphId: string, offset: number,
1593
+ /** Lines to test, when the caller already knows which ones can carry the paragraph. */
1594
+ candidates?: Iterable<LineRecord>): LineRecord | null;
1588
1595
  /** Every content-control boundary on a layout, preferring the layout-level list. */
1589
1596
  declare function contentControlsOfLayout(layout: SemanticLayout): readonly ContentControlBoundaryRecord[];
1590
1597
  /**
@@ -1,4 +1,4 @@
1
- import { R as ResolvedRunStyle, T as TextMeasurer } from './semantic-records-DEOs3_tE.cjs';
1
+ import { R as ResolvedRunStyle, T as TextMeasurer } from './semantic-records-CuT3Wsd-.cjs';
2
2
 
3
3
  /**
4
4
  * A face, as something asks for it: family plus the two axes this engine admits.
@@ -1,4 +1,4 @@
1
- import { R as ResolvedRunStyle, T as TextMeasurer } from './semantic-records-CdQvpUj1.js';
1
+ import { R as ResolvedRunStyle, T as TextMeasurer } from './semantic-records-DoW_xNgJ.js';
2
2
 
3
3
  /**
4
4
  * A face, as something asks for it: family plus the two axes this engine admits.