@docx-editor.dev/core 2.12.0 → 2.14.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 (119) hide show
  1. package/README.md +18 -14
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.d.cts +5 -5
  4. package/dist/automation.d.ts +5 -5
  5. package/dist/automation.js +1 -1
  6. package/dist/binding.cjs +1 -1
  7. package/dist/binding.d.cts +8 -8
  8. package/dist/binding.d.ts +8 -8
  9. package/dist/binding.js +1 -1
  10. package/dist/chunk-2PIHW2QM.cjs +1 -0
  11. package/dist/chunk-2QTY5S6T.js +1 -0
  12. package/dist/chunk-4Z5MODAE.cjs +2 -0
  13. package/dist/chunk-5TKAPFZT.cjs +2 -0
  14. package/dist/chunk-DRQHIQ4R.cjs +1 -0
  15. package/dist/chunk-F2K6SDHA.cjs +20 -0
  16. package/dist/chunk-FBA57EUJ.js +2 -0
  17. package/dist/{chunk-XCFM3G5L.cjs → chunk-KIAP7PFQ.cjs} +1 -1
  18. package/dist/chunk-KTAQ7BRQ.js +20 -0
  19. package/dist/chunk-LBAHXZCU.cjs +5 -0
  20. package/dist/chunk-MCDUQYWP.js +5 -0
  21. package/dist/chunk-MQP26KCF.js +1 -0
  22. package/dist/chunk-NDJGSR6M.cjs +19 -0
  23. package/dist/chunk-NJNFJPGB.cjs +11 -0
  24. package/dist/chunk-O5M4CR4P.cjs +2 -0
  25. package/dist/{chunk-W77HJGYX.js → chunk-OKEDGR65.js} +1 -1
  26. package/dist/{chunk-WU7PUTVA.js → chunk-RIYSCEFQ.js} +1 -1
  27. package/dist/chunk-UKUOZXUD.js +19 -0
  28. package/dist/chunk-VQ4R5LTU.js +2 -0
  29. package/dist/chunk-ZBEJHJN2.js +11 -0
  30. package/dist/chunk-ZVTW7RGD.js +2 -0
  31. package/dist/collaboration/replication.cjs +1 -1
  32. package/dist/collaboration/replication.d.cts +3 -3
  33. package/dist/collaboration/replication.d.ts +3 -3
  34. package/dist/collaboration/replication.js +1 -1
  35. package/dist/collaboration.d.cts +3 -3
  36. package/dist/collaboration.d.ts +3 -3
  37. package/dist/contracts/editor.d.cts +7 -7
  38. package/dist/contracts/editor.d.ts +7 -7
  39. package/dist/contracts/interaction.d.cts +7 -7
  40. package/dist/contracts/interaction.d.ts +7 -7
  41. package/dist/contracts/modules.d.cts +7 -7
  42. package/dist/contracts/modules.d.ts +7 -7
  43. package/dist/{custom-node-writes-D4rMJIES.d.cts → custom-node-writes-C46r3_5O.d.cts} +2 -2
  44. package/dist/{custom-node-writes-CcNeHH5C.d.ts → custom-node-writes-DntmaAVW.d.ts} +2 -2
  45. package/dist/{dist-YFULGVS3.js → dist-OSUJGKTK.js} +1 -1
  46. package/dist/{editor-B76SEMZw.d.cts → editor-AJ06hyyg.d.cts} +45 -9
  47. package/dist/{editor-BcdsPdbY.d.ts → editor-a6VvsfYU.d.ts} +45 -9
  48. package/dist/editor.cjs +1 -1
  49. package/dist/editor.css +1 -1
  50. package/dist/editor.d.cts +22 -22
  51. package/dist/editor.d.ts +22 -22
  52. package/dist/editor.js +1 -1
  53. package/dist/{index-BYTvklN5.d.ts → index-C5ZnSRkF.d.ts} +209 -20
  54. package/dist/{index-CDGhPib1.d.cts → index-Cbw4lkOt.d.cts} +209 -20
  55. package/dist/index.cjs +1 -1
  56. package/dist/index.d.cts +15 -15
  57. package/dist/index.d.ts +15 -15
  58. package/dist/index.js +1 -1
  59. package/dist/layout.cjs +1 -1
  60. package/dist/layout.d.cts +203 -593
  61. package/dist/layout.d.ts +203 -593
  62. package/dist/layout.js +1 -1
  63. package/dist/{note-properties-Bx7rXruA.d.ts → note-properties-CDFiNXcD.d.ts} +1 -1
  64. package/dist/{note-properties-zQ8w04en.d.cts → note-properties-Y6qYh2Hv.d.cts} +1 -1
  65. package/dist/{omml-equation-69O1Pd8G.d.ts → omml-equation-BY49UOIF.d.ts} +1 -1
  66. package/dist/{omml-equation-BmV51rim.d.cts → omml-equation-DB8d-jCq.d.cts} +1 -1
  67. package/dist/output.cjs +1 -1
  68. package/dist/output.d.cts +6 -6
  69. package/dist/output.d.ts +6 -6
  70. package/dist/output.js +1 -1
  71. package/dist/{protocol-DC7ueVuo.d.ts → protocol-BsmQgblT.d.ts} +2 -2
  72. package/dist/{protocol-FTXtrAIT.d.cts → protocol-gOY5GA8K.d.cts} +2 -2
  73. package/dist/{review-items-B78OsJU2.d.ts → review-items-CCS1h93f.d.ts} +1 -1
  74. package/dist/{review-items-C-2WQdEb.d.cts → review-items-CaAkgi5s.d.cts} +1 -1
  75. package/dist/{review-reads-UexYBp-m.d.ts → review-reads-BjZYeMd4.d.ts} +8 -21
  76. package/dist/{review-reads-CbBQlb-n.d.cts → review-reads-DEsV0OOW.d.cts} +8 -21
  77. package/dist/{revision-projection-6u8lae9J.d.cts → revision-projection-BeXVrSSV.d.ts} +24 -3
  78. package/dist/{revision-projection-B2v9U3qx.d.ts → revision-projection-DXbrfNGD.d.cts} +24 -3
  79. package/dist/{semantic-cell-selection-DsYz2Vg3.d.ts → semantic-cell-selection-BK91NCCG.d.ts} +16 -7
  80. package/dist/{semantic-cell-selection-nEE7E3Z8.d.cts → semantic-cell-selection-BMhku3B1.d.cts} +16 -7
  81. package/dist/{semantic-interaction-C00BpIyC.d.ts → semantic-interaction-BmQ7h2cq.d.ts} +4 -2
  82. package/dist/{semantic-interaction-DiOX0FIH.d.cts → semantic-interaction-DUAnxbgf.d.cts} +4 -2
  83. package/dist/{semantic-paint-Cc11nrDL.d.cts → semantic-paint-DufNL1Zr.d.cts} +2 -2
  84. package/dist/{semantic-paint-ofuoBsYo.d.ts → semantic-paint-WJD2KeG1.d.ts} +2 -2
  85. package/dist/{semantic-records-CRG1r6-a.d.cts → semantic-records-92UnKeU_.d.ts} +1146 -10
  86. package/dist/{semantic-records-CzI0ZEuR.d.ts → semantic-records-BpozY7-j.d.cts} +1146 -10
  87. package/dist/shaped-measurer-BWbindlI.d.ts +168 -0
  88. package/dist/shaped-measurer-CFPnXFs9.d.cts +168 -0
  89. package/dist/store.cjs +1 -1
  90. package/dist/store.d.cts +26 -16
  91. package/dist/store.d.ts +26 -16
  92. package/dist/store.js +1 -1
  93. package/dist/{tree-op-types-CA7qgAUF.d.cts → tree-op-types-BUulYD5y.d.cts} +15 -2
  94. package/dist/{tree-op-types-HKfUzt_-.d.ts → tree-op-types-D6HzlPR4.d.ts} +15 -2
  95. package/dist/{tree-package-fragment-oJZX_5iN.d.ts → tree-package-fragment-CWFjgH6a.d.ts} +3 -11
  96. package/dist/{tree-package-fragment-Cz-v-0B3.d.cts → tree-package-fragment-Dhyw7oPm.d.cts} +3 -11
  97. package/dist/{tree-session-contract-BPDLrEPX.d.ts → tree-session-contract-B2HfGt79.d.ts} +33 -6
  98. package/dist/{tree-session-contract-Cbl87xa8.d.cts → tree-session-contract-BY9xd7s_.d.cts} +33 -6
  99. package/dist/{tree-store-B7hd6cEa.d.ts → tree-store-APgWx6qn.d.ts} +1 -1
  100. package/dist/{tree-store-BenW0Mg_.d.cts → tree-store-DEEQ9wz_.d.cts} +1 -1
  101. package/package.json +5 -2
  102. package/dist/chunk-3JON7JMD.cjs +0 -1
  103. package/dist/chunk-5V6FNKBE.cjs +0 -2
  104. package/dist/chunk-BXRVGHTY.cjs +0 -18
  105. package/dist/chunk-BXTTPJSH.js +0 -5
  106. package/dist/chunk-ILTZTY3K.cjs +0 -10
  107. package/dist/chunk-IUM7FZPA.js +0 -2
  108. package/dist/chunk-JWZG4QJ5.cjs +0 -2
  109. package/dist/chunk-JXZYDBKU.cjs +0 -19
  110. package/dist/chunk-KBOOIC2Q.js +0 -19
  111. package/dist/chunk-L6XZTLPS.js +0 -10
  112. package/dist/chunk-L7OR5TJK.cjs +0 -5
  113. package/dist/chunk-MHQNR2OU.js +0 -2
  114. package/dist/chunk-MLGPISGH.js +0 -1
  115. package/dist/chunk-NJXQABQU.js +0 -18
  116. package/dist/chunk-TKEGK4GQ.cjs +0 -2
  117. package/dist/chunk-VGFMPWND.js +0 -2
  118. package/dist/shaped-measurer-CkOGZQn9.d.ts +0 -611
  119. package/dist/shaped-measurer-CneACGcP.d.cts +0 -611
package/dist/layout.js CHANGED
@@ -1 +1 @@
1
- export{na as AUTO_PARAGRAPH_SPACING_PT,Zb as AUTO_PREFERRED_WIDTH,_b as CELL_PAD,ha as COMPOUND_BORDER_MIN_GAP_PT,ga as COMPOUND_BORDER_MIN_STROKE_PT,Gd as DEFAULT_CANVAS_FONT_STACK,$b as DEFAULT_CELL_MARGINS,fa as DEFAULT_PAGE_GEOMETRY,lb as DEFAULT_REVISION_DISPLAY_MODE,fb as DEFAULT_RUN_STYLE,Yc as DEFAULT_SECTION_PROPERTIES,La as DEFAULT_TAB_INTERVAL_PT,Ka as DEFAULT_TAB_INTERVAL_TWIPS,yc as DEFAULT_VERTICAL_WEIGHT,ic as EMPTY_NUMBERING_INDEX,Na as EMPTY_TAB_STOPS,d as FontResolutionError,w as GRAPHEME_SEGMENTER_LOCALE,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,n as HARFBUZZ_SHAPING_LIBRARY,q as HarfBuzzShapingError,ma as MAX_BORDER_SPACE_PT,la as MAX_BORDER_WIDTH_PT,Xc as MAX_DOCUMENT_SECTIONS,wd as MAX_EACH_PAGE_MARK_CANDIDATES,fc as MAX_LVL_OVERRIDES,Wa as MAX_LVL_TEXT_LENGTH,Va as MAX_MARKER_TEXT_LENGTH,id as MAX_NOTES_LAID_OUT,jd as MAX_NOTE_FRAGMENTS,vd as MAX_NOTE_OVERFLOW_PAGES,ud as MAX_NOTE_REFLOW_ATTEMPTS,ec as MAX_NUMBERING_DEFINITIONS,ka as MAX_PARAGRAPH_SPACING_PT,Db as MAX_STYLE_BASED_ON_DEPTH,Eb as MAX_STYLE_DEFINITIONS,Rb as MAX_TABLE_BORDER_STROKES,ac as MAX_TABLE_NESTING,Oc as MAX_TABLE_ROW_FRAGMENTS,bc as MAX_TABLE_ROW_HEIGHT_PT,Ja as MAX_TAB_POSITION_TWIPS,Ia as MAX_TAB_STOPS,pa as PARAGRAPH_BORDER_SIDES,W as ResolvedCache,oa as SINGLE_LINE_SPACING,Ma as TAB_LEADER_GLYPH,Pc as TablePaginationError,u as UnsupportedScriptError,L as WORD_SEGMENTER_LOCALE,Md as anchorLineY,Ca as appliedSpaceBefore,ta as applyLineSpacing,Bd as attachNotesToLayout,kb as baselineShiftPtOf,Yb as borderExtentPt,Vb as borderWeight,za as bottomBorderExtentPt,O as boundedFallbackWordSegments,f as boundedStructuralFontValidator,gc as buildNumberingIndex,yd as buildPageRefIndex,Gb as buildStyleCascadeTable,U as captureOperationSnapshot,ae as caretAt,Hc as caretBoxOnLine,_d as caretStops,$d as caretStopsForBlocks,Hb as cascadeParagraphFormatting,Jb as cascadeRunProperties,Ib as cascadedBottomBorder,wa as cascadedParagraphBorders,Oa as cascadedTabStops,je as cellSelectionBetween,ne as cellSelectionRects,oe as cellSelectionText,Xa as clampListValue,Ba as collapsedSpaceBefore,he as compositionAnchor,ia as computeDoubleBorderMetricsPt,Ad as computeFootnoteReserves,Ec as contentControlAtPoint,ce as contentControlAtSemantic,Ld as contentControlBoundaries,Wc as contentControlHoldingParagraph,Vc as contentControlRecordsInPart,de as contentControlsInLayout,ca as contentControlsOfLayout,P as createBoundedFallbackWordBoundary,Q as createDefaultWordBoundary,Ed as createFixedMeasurer,g as createFontResourceSnapshot,t as createHarfBuzzTextShaper,N as createIntlWordBoundary,Rd as createLayoutScheduler,Dd as createLayoutSession,jc as createListCounterState,yb as createParagraphLayoutCache,Pd as createShapedMeasurer,l as createShapedRun,i as createShapingEnvironment,pd as defaultNoteSeparatorRuleStyle,Ra as defaultTabIntervalFromSettings,fe as deletedTextBoundaries,fd as deriveNoteDisplayMarks,gd as deriveNoteDisplayMarksResolved,hb as displayText,sc as documentOrder,Qb as effectiveBorderSide,ea as effectiveContentControlLock,Sc as emptyTocPlaceholderParagraphIds,Tc as emptyTocSuppressedResultParagraphIds,cd as enumerateDocumentSections,dd as enumerateDocumentSectionsBounded,tc as everyStoryOrder,db as expandLvlText,zd as filterRefsOnPage,Ic as findDrawingOverlayFrameInLayout,md as findSeparatorNote,h as fixedPoint,e as fontRequestKey,Ya as formatDecimal,Za as formatDecimalZero,bb as formatLowerLetter,$a as formatLowerRoman,cb as formatNumFmt,eb as formatPageNumber,sb as formatRevisionOf,ab as formatUpperLetter,_a as formatUpperRoman,xd as fragmentOwnsAtomOffset,aa as fragmentsOfParagraph,ed as geometryOfSection,z as graphemeBoundaryEpoch,D as graphemeCount,F as graphemeOffsetToUtf16,V as guardOperationSnapshot,r as harfBuzzFontValidator,Bc as hitTestPage,be as hitTestSemantic,Dc as hitTestSheet,o as initializeHarfBuzz,y as intlGraphemeBoundary,Id as isCanvasMeasurementAvailable,J as isCumulativeGeometryTrustedFromLineOrigin,Ac as isFurniturePoint,I as isGeometryTrustedCaretOffset,p as isHarfBuzzInitialized,x as isIntlSegmenterAvailable,M as isIntlWordSegmenterAvailable,qd as isMarkerOnlySeparatorNote,Fb as isValidStyleId,H as isWholeGraphemeHorizontalBoundary,v as itemizeScriptFontSlots,Ud as keyedRangeRects,wb as layoutEquation,Uc as layoutHeaderFooterStory,od as layoutNoteById,rd as layoutNoteSeparator,nd as layoutNoteStory,Fd as layoutSemanticDocument,ba as lineAtPosition,Fc as lineEndOffset,Z as linesOf,rc as listMarkerBox,qb as markRevisionRemovesMark,ib as measureDisplayText,nc as mergeListIndent,ge as moveCaret,Sa as nextTabDestination,ld as normalNotesOf,hd as noteDisplayMarkMap,kd as noteLineIdPrefix,ub as noteMarkKey,td as noteSeparatorAreaBox,Pb as noteStoryBlocks,zc as pageAtY,Qd as pagesToMaterialize,ya as paragraphBorderExtentPt,xa as paragraphBorderStrokeWidthPt,va as paragraphBorders,Aa as paragraphBordersFingerprint,ja as paragraphBreaksBefore,ua as paragraphContextualSpacing,X as paragraphFragmentsOf,Y as paragraphFragmentsOfBlocks,xb as paragraphLayoutKey,sa as paragraphLineSpacing,Mb as paragraphMarkDeleted,ob as paragraphMarkFormatRevisionOf,rb as paragraphMarkRevisionOf,nb as paragraphMarkRevisionsOf,ad as paragraphSectionNode,Ga as paragraphShading,Ha as paragraphShadingBox,ra as paragraphSpacing,Pa as paragraphTabStops,ee as paragraphTextFromLayout,le as paragraphsInCells,Zc as parsePageNumbering,_c as parseSectionProperties,Yd as positionPastDeletion,vb as projectedNoteMarkText,Cd as provisionalNoteMarks,Sb as readBorderSide,Ub as readCellBorders,lc as readNumPr,bd as readSectionProperties,Tb as readTableBorders,dc as readTableStructure,C as resetGraphemeBoundary,Wb as resolveBorderConflict,Kd as resolveDefaultSurfaceMeasurer,R as resolveDefaultWordBoundary,hc as resolveNumberingLevel,Ea as resolveOoxmlShadingFill,Kb as resolveParagraphLayoutInputs,gb as resolveRunStyle,pc as resolveStoryListItems,Da as resolveStrictHexFill,Xb as resolveTableCellBorderGrid,Nd as reviewAnchorIndex,Od as reviewItemGeometry,Nb as revisionRemovesParagraph,tb as revisionsAreDeletion,mb as revisionsVisible,s as roundFontUnitToFixedPoint,jb as runStylesEqual,A as segmentGraphemes,S as segmentWords,Sd as selectionRects,K as semanticHorizontalBoundaries,B as setGraphemeBoundary,Fa as shadingFillFromElement,G as shapedHorizontalBoundaries,m as shapedRunComparatorInputs,k as shapingEnvironmentFingerprint,j as shapingEnvironmentFingerprintInputs,pb as shownMarkRevision,Gc as spanOffsetX,me as spansInCells,ie as spansInSelection,Ob as storyBlocks,sd as syntheticSeparatorBox,Ta as tabAdvanceWidth,Ua as tabStopsFingerprint,pe as tableContextAt,cc as tableOriginX,Rc as tocFieldChromeParagraphIds,Jd as tryCreateCanvasMeasurer,da as unionLayoutBoxes,E as utf16OffsetToGrapheme,oc as walkStoryParagraphs,Qa as withDefaultTabInterval,mc as withNumberingStyleLinks,qc as withResolvedListItems,Zd as wordBoundary,T as wordSegmentsToGraphemeRecords}from'./chunk-NJXQABQU.js';export{a as setHarfBuzzWasmUrl}from'./chunk-WU7PUTVA.js';import'./chunk-VGFMPWND.js';export{$ as activeReviewItem,ba as commentBodyText,ca as commentInitials,Y as firstReviewRange,ha as paragraphOrderOfPart,W as reviewItemKey,Z as reviewItemPositionRank,X as reviewItemRanges,_ as reviewItemsAt,aa as reviewThreadRootOf}from'./chunk-IUM7FZPA.js';export{mc as MAX_SDT_NESTING,Bg as MAX_TABLE_COLUMNS,Nf as W15_NAMESPACE_URI,rc as collectFlowBlocks,qc as contentControlContentChildren,nc as isContentControl,oc as isContentControlContent,a as sha256FontBytes}from'./chunk-L6XZTLPS.js';
1
+ export{za as AUTO_PARAGRAPH_SPACING_PT,Gc as AUTO_PREFERRED_WIDTH,Hc as CELL_PAD,ta as COMPOUND_BORDER_MIN_GAP_PT,sa as COMPOUND_BORDER_MIN_STROKE_PT,Od as DEFAULT_CANVAS_FONT_STACK,Ic as DEFAULT_CELL_MARGINS,ra as DEFAULT_PAGE_GEOMETRY,ob as DEFAULT_REVISION_DISPLAY_MODE,z as DEFAULT_RUN_STYLE,jc as DEFAULT_SECTION_PROPERTIES,Sa as DEFAULT_TAB_INTERVAL_PT,Ra as DEFAULT_TAB_INTERVAL_TWIPS,Tc as DEFAULT_VERTICAL_WEIGHT,Kb as EMPTY_NUMBERING_INDEX,Ua as EMPTY_TAB_STOPS,d as FontResolutionError,I as GRAPHEME_SEGMENTER_LOCALE,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,n as HARFBUZZ_SHAPING_LIBRARY,q as HarfBuzzShapingError,ya as MAX_BORDER_SPACE_PT,xa as MAX_BORDER_WIDTH_PT,ic as MAX_DOCUMENT_SECTIONS,Ed as MAX_EACH_PAGE_MARK_CANDIDATES,Hb as MAX_LVL_OVERRIDES,bb as MAX_LVL_TEXT_LENGTH,ab as MAX_MARKER_TEXT_LENGTH,qd as MAX_NOTES_LAID_OUT,rd as MAX_NOTE_FRAGMENTS,Dd as MAX_NOTE_OVERFLOW_PAGES,Cd as MAX_NOTE_REFLOW_ATTEMPTS,Gb as MAX_NUMBERING_DEFINITIONS,wa as MAX_PARAGRAPH_SPACING_PT,Rb as MAX_STYLE_BASED_ON_DEPTH,Sb as MAX_STYLE_DEFINITIONS,yc as MAX_TABLE_BORDER_STROKES,Jc as MAX_TABLE_NESTING,hd as MAX_TABLE_ROW_FRAGMENTS,Kc as MAX_TABLE_ROW_HEIGHT_PT,Qa as MAX_TAB_POSITION_TWIPS,Pa as MAX_TAB_STOPS,Ba as PARAGRAPH_BORDER_SIDES,ga as ResolvedCache,Aa as SINGLE_LINE_SPACING,Ta as TAB_LEADER_GLYPH,id as TablePaginationError,F as UnsupportedScriptError,X as WORD_SEGMENTER_LOCALE,Xd as anchorLineY,Oa as appliedSpaceBefore,Fa as applyLineSpacing,Jd as attachNotesToLayout,E as baselineShiftPtOf,Fc as borderExtentPt,Cc as borderWeight,La as bottomBorderExtentPt,_ as boundedFallbackWordSegments,f as boundedStructuralFontValidator,Ib as buildNumberingIndex,Gd as buildPageRefIndex,Ub as buildStyleCascadeTable,ea as captureOperationSnapshot,le as caretAt,ad as caretBoxOnLine,je as caretStops,ke as caretStopsForBlocks,Vb as cascadeParagraphFormatting,Xb as cascadeRunProperties,Wb as cascadedBottomBorder,Ia as cascadedParagraphBorders,Va as cascadedTabStops,ue as cellSelectionBetween,ye as cellSelectionRects,ze as cellSelectionText,cb as clampListValue,Na as collapsedSpaceBefore,se as compositionAnchor,ua as computeDoubleBorderMetricsPt,Id as computeFootnoteReserves,Zc as contentControlAtPoint,ne as contentControlAtSemantic,Wd as contentControlBoundaries,pd as contentControlHoldingParagraph,od as contentControlRecordsInPart,oe as contentControlsInLayout,oa as contentControlsOfLayout,$ as createBoundedFallbackWordBoundary,aa as createDefaultWordBoundary,Md as createFixedMeasurer,g as createFontResourceSnapshot,t as createHarfBuzzTextShaper,Z as createIntlWordBoundary,ae as createLayoutScheduler,Ld as createLayoutSession,Lb as createListCounterState,Fb as createParagraphLayoutCache,_d as createShapedMeasurer,l as createShapedRun,i as createShapingEnvironment,xd as defaultNoteSeparatorRuleStyle,Ya as defaultTabIntervalFromSettings,qe as deletedTextBoundaries,fc as deriveNoteDisplayMarks,gc as deriveNoteDisplayMarksResolved,B as displayText,Nc as documentOrder,xc as effectiveBorderSide,qa as effectiveContentControlLock,ld as emptyTocPlaceholderParagraphIds,md as emptyTocSuppressedResultParagraphIds,pc as enumerateDocumentSections,rc as enumerateDocumentSectionsBounded,Oc as everyStoryOrder,kb as expandLvlText,Hd as filterRefsOnPage,bd as findDrawingOverlayFrameInLayout,ud as findSeparatorNote,h as fixedPoint,e as fontRequestKey,db as formatDecimal,eb as formatDecimalZero,ib as formatLowerLetter,gb as formatLowerRoman,jb as formatNumFmt,lb as formatPageNumber,wb as formatRevisionOf,hb as formatUpperLetter,fb as formatUpperRoman,Fd as fragmentOwnsAtomOffset,ma as fragmentsOfParagraph,sc as geometryOfSection,L as graphemeBoundaryEpoch,P as graphemeCount,R as graphemeOffsetToUtf16,fa as guardOperationSnapshot,r as harfBuzzFontValidator,Wc as hitTestPage,me as hitTestSemantic,Yc as hitTestSheet,o as initializeHarfBuzz,K as intlGraphemeBoundary,Qd as isCanvasMeasurementAvailable,V as isCumulativeGeometryTrustedFromLineOrigin,Vc as isFurniturePoint,U as isGeometryTrustedCaretOffset,p as isHarfBuzzInitialized,J as isIntlSegmenterAvailable,Y as isIntlWordSegmenterAvailable,yd as isMarkerOnlySeparatorNote,Tb as isValidStyleId,T as isWholeGraphemeHorizontalBoundary,G as itemizeScriptFontSlots,de as keyedRangeRects,Ob as layoutEquation,nd as layoutHeaderFooterStory,wd as layoutNoteById,zd as layoutNoteSeparator,vd as layoutNoteStory,Nd as layoutSemanticDocument,na as lineAtPosition,_c as lineEndOffset,ja as linesOf,ec as listMarkerBox,ub as markRevisionRemovesMark,C as measureDisplayText,ac as mergeListIndent,re as moveCaret,Za as nextTabDestination,td as normalNotesOf,hc as noteDisplayMarkMap,sd as noteLineIdPrefix,uc as noteMarkKey,Bd as noteSeparatorAreaBox,Db as noteStoryBlocks,Uc as pageAtY,Td as pageRefPageNumbersFromLayout,$d as pagesToMaterialize,Ka as paragraphBorderExtentPt,Ja as paragraphBorderStrokeWidthPt,Ha as paragraphBorders,Ma as paragraphBordersFingerprint,va as paragraphBreaksBefore,Ga as paragraphContextualSpacing,ha as paragraphFragmentsOf,ia as paragraphFragmentsOfBlocks,Eb as paragraphLayoutKey,Ea as paragraphLineSpacing,yb as paragraphMarkDeleted,sb as paragraphMarkFormatRevisionOf,vb as paragraphMarkRevisionOf,rb as paragraphMarkRevisionsOf,nc as paragraphSectionNode,x as paragraphShading,y as paragraphShadingBox,Da as paragraphSpacing,Wa as paragraphTabStops,pe as paragraphTextFromLayout,we as paragraphsInCells,mb as parseAutonumInstruction,kc as parsePageNumbering,nb as parseRefInstruction,lc as parseSectionProperties,Ud as planRefFieldResultRefresh,he as positionPastDeletion,vc as projectedNoteMarkText,qc as projectedSectionSourceIndexes,Kd as provisionalNoteMarks,zc as readBorderSide,Bc as readCellBorders,_b as readNumPr,oc as readSectionProperties,Ac as readTableBorders,Mc as readTableStructure,O as resetGraphemeBoundary,Dc as resolveBorderConflict,Sd as resolveDefaultSurfaceMeasurer,ba as resolveDefaultWordBoundary,Jb as resolveNumberingLevel,v as resolveOoxmlShadingFill,Yb as resolveParagraphLayoutInputs,A as resolveRunStyle,cc as resolveStoryListItems,tc as resolveStoryRefFields,u as resolveStrictHexFill,Ec as resolveTableCellBorderGrid,Yd as reviewAnchorIndex,Zd as reviewItemGeometry,pb as revisionAuthorFilter,Ab as revisionRemovesParagraph,xb as revisionsAreDeletion,qb as revisionsVisible,s as roundFontUnitToFixedPoint,D as runStylesEqual,M as segmentGraphemes,ca as segmentWords,be as selectionRects,W as semanticHorizontalBoundaries,N as setGraphemeBoundary,w as shadingFillFromElement,S as shapedHorizontalBoundaries,m as shapedRunComparatorInputs,k as shapingEnvironmentFingerprint,j as shapingEnvironmentFingerprintInputs,tb as shownMarkRevision,$c as spanOffsetX,xe as spansInCells,te as spansInSelection,Cb as storyBlocks,H as styleForFontSlot,Ad as syntheticSeparatorBox,_a as tabAdvanceWidth,$a as tabStopsFingerprint,Ae as tableContextAt,Lc as tableOriginX,kd as tocFieldChromeParagraphIds,Rd as tryCreateCanvasMeasurer,pa as unionLayoutBoxes,Q as utf16OffsetToGrapheme,bc as walkStoryParagraphs,Xa as withDefaultTabInterval,$b as withNumberingStyleLinks,dc as withResolvedListItems,ie as wordBoundary,da as wordSegmentsToGraphemeRecords}from'./chunk-UKUOZXUD.js';export{a as setHarfBuzzWasmUrl}from'./chunk-RIYSCEFQ.js';import'./chunk-MQP26KCF.js';import'./chunk-ZVTW7RGD.js';export{Ba as activeReviewItem,Da as commentBodyText,Ea as commentInitials,ya as firstReviewRange,Ja as paragraphOrderOfPart,wa as reviewItemKey,za as reviewItemPositionRank,xa as reviewItemRanges,Aa as reviewItemsAt,Ca as reviewThreadRootOf}from'./chunk-FBA57EUJ.js';export{mc as MAX_SDT_NESTING,Cg as MAX_TABLE_COLUMNS,Of as W15_NAMESPACE_URI,rc as collectFlowBlocks,qc as contentControlContentChildren,nc as isContentControl,oc as isContentControlContent,a as sha256FontBytes}from'./chunk-ZBEJHJN2.js';
@@ -1,4 +1,4 @@
1
- import { O as OoxmlPart, a as OoxmlNode, b as OoxmlPackage } from './tree-op-types-HKfUzt_-.js';
1
+ import { O as OoxmlPart, a as OoxmlNode, b as OoxmlPackage } from './tree-op-types-D6HzlPR4.js';
2
2
 
3
3
  /** `w:pos` — where a section's footnotes are laid out. */
4
4
  type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';
@@ -1,4 +1,4 @@
1
- import { O as OoxmlPart, a as OoxmlNode, b as OoxmlPackage } from './tree-op-types-CA7qgAUF.cjs';
1
+ import { O as OoxmlPart, a as OoxmlNode, b as OoxmlPackage } from './tree-op-types-BUulYD5y.cjs';
2
2
 
3
3
  /** `w:pos` — where a section's footnotes are laid out. */
4
4
  type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';
@@ -1,4 +1,4 @@
1
- import { c as OoxmlNodeId, d as OoxmlGenericElementNode, a as OoxmlNode } from './tree-op-types-HKfUzt_-.js';
1
+ import { c as OoxmlNodeId, d as OoxmlGenericElementNode, a as OoxmlNode } from './tree-op-types-D6HzlPR4.js';
2
2
 
3
3
  /** Office Math Markup Language namespace. */
4
4
  declare const OFFICE_MATH_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/math";
@@ -1,4 +1,4 @@
1
- import { c as OoxmlNodeId, d as OoxmlGenericElementNode, a as OoxmlNode } from './tree-op-types-CA7qgAUF.cjs';
1
+ import { c as OoxmlNodeId, d as OoxmlGenericElementNode, a as OoxmlNode } from './tree-op-types-BUulYD5y.cjs';
2
2
 
3
3
  /** Office Math Markup Language namespace. */
4
4
  declare const OFFICE_MATH_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/math";
package/dist/output.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunkTKEGK4GQ_cjs=require('./chunk-TKEGK4GQ.cjs');require('./chunk-BXRVGHTY.cjs'),require('./chunk-5V6FNKBE.cjs'),require('./chunk-JWZG4QJ5.cjs'),require('./chunk-ILTZTY3K.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkTKEGK4GQ_cjs.i}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkTKEGK4GQ_cjs.m}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkTKEGK4GQ_cjs.k}});
1
+ 'use strict';var chunkO5M4CR4P_cjs=require('./chunk-O5M4CR4P.cjs');require('./chunk-NDJGSR6M.cjs'),require('./chunk-DRQHIQ4R.cjs'),require('./chunk-5TKAPFZT.cjs'),require('./chunk-4Z5MODAE.cjs'),require('./chunk-NJNFJPGB.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkO5M4CR4P_cjs.i}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkO5M4CR4P_cjs.n}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkO5M4CR4P_cjs.l}});
package/dist/output.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { R as ReviewAuthorInfo } from './semantic-paint-Cc11nrDL.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-Cc11nrDL.cjs';
3
- import { S as SemanticLayout } from './semantic-records-CRG1r6-a.cjs';
4
- import './tree-op-types-CA7qgAUF.cjs';
1
+ import { R as ReviewAuthorInfo } from './semantic-paint-DufNL1Zr.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-DufNL1Zr.cjs';
3
+ import { S as SemanticLayout } from './semantic-records-BpozY7-j.cjs';
4
+ import './tree-op-types-BUulYD5y.cjs';
5
5
  import './contracts/types.cjs';
6
- import './revision-projection-6u8lae9J.cjs';
7
- import './omml-equation-BmV51rim.cjs';
6
+ import './revision-projection-DXbrfNGD.cjs';
7
+ import './omml-equation-DB8d-jCq.cjs';
8
8
 
9
9
  /** A rectangle in page-content coordinates, on a named page. */
10
10
  interface OverlayRect {
package/dist/output.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { R as ReviewAuthorInfo } from './semantic-paint-ofuoBsYo.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-ofuoBsYo.js';
3
- import { S as SemanticLayout } from './semantic-records-CzI0ZEuR.js';
4
- import './tree-op-types-HKfUzt_-.js';
1
+ import { R as ReviewAuthorInfo } from './semantic-paint-WJD2KeG1.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-WJD2KeG1.js';
3
+ import { S as SemanticLayout } from './semantic-records-92UnKeU_.js';
4
+ import './tree-op-types-D6HzlPR4.js';
5
5
  import './contracts/types.js';
6
- import './revision-projection-B2v9U3qx.js';
7
- import './omml-equation-69O1Pd8G.js';
6
+ import './revision-projection-BeXVrSSV.js';
7
+ import './omml-equation-BY49UOIF.js';
8
8
 
9
9
  /** A rectangle in page-content coordinates, on a named page. */
10
10
  interface OverlayRect {
package/dist/output.js CHANGED
@@ -1 +1 @@
1
- export{i as DEFAULT_FIELD_SHADING,m as paintSelectionOverlay,k as paintSemanticLayout}from'./chunk-MHQNR2OU.js';import'./chunk-NJXQABQU.js';import'./chunk-WU7PUTVA.js';import'./chunk-VGFMPWND.js';import'./chunk-IUM7FZPA.js';import'./chunk-L6XZTLPS.js';
1
+ export{i as DEFAULT_FIELD_SHADING,n as paintSelectionOverlay,l as paintSemanticLayout}from'./chunk-VQ4R5LTU.js';import'./chunk-UKUOZXUD.js';import'./chunk-RIYSCEFQ.js';import'./chunk-MQP26KCF.js';import'./chunk-ZVTW7RGD.js';import'./chunk-FBA57EUJ.js';import'./chunk-ZBEJHJN2.js';
@@ -1,5 +1,5 @@
1
- import { H as HeaderFooterVariant } from './tree-package-fragment-oJZX_5iN.js';
2
- import { N as NoteKind } from './tree-store-B7hd6cEa.js';
1
+ import { H as HeaderFooterVariant } from './tree-package-fragment-CWFjgH6a.js';
2
+ import { N as NoteKind } from './tree-store-APgWx6qn.js';
3
3
 
4
4
  /** Alignment as this protocol publishes it. `Mixed`/`Unknown` are read-only answers. */
5
5
  type AutomationAlignment = 'Mixed' | 'Unknown' | 'Left' | 'Centered' | 'Right' | 'Justified';
@@ -1,5 +1,5 @@
1
- import { H as HeaderFooterVariant } from './tree-package-fragment-Cz-v-0B3.cjs';
2
- import { N as NoteKind } from './tree-store-BenW0Mg_.cjs';
1
+ import { H as HeaderFooterVariant } from './tree-package-fragment-Dhyw7oPm.cjs';
2
+ import { N as NoteKind } from './tree-store-DEEQ9wz_.cjs';
3
3
 
4
4
  /** Alignment as this protocol publishes it. `Mixed`/`Unknown` are read-only answers. */
5
5
  type AutomationAlignment = 'Mixed' | 'Unknown' | 'Left' | 'Centered' | 'Right' | 'Justified';
@@ -1,4 +1,4 @@
1
- import { g as OoxmlElement, O as OoxmlPart, b as OoxmlPackage, R as RevisionAddress } from './tree-op-types-HKfUzt_-.js';
1
+ import { g as OoxmlElement, O as OoxmlPart, b as OoxmlPackage, R as RevisionAddress } from './tree-op-types-D6HzlPR4.js';
2
2
 
3
3
  /** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
4
4
  declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -1,4 +1,4 @@
1
- import { g as OoxmlElement, O as OoxmlPart, b as OoxmlPackage, R as RevisionAddress } from './tree-op-types-CA7qgAUF.cjs';
1
+ import { g as OoxmlElement, O as OoxmlPart, b as OoxmlPackage, R as RevisionAddress } from './tree-op-types-BUulYD5y.cjs';
2
2
 
3
3
  /** The `w15` namespace: `commentsExtended.xml` — thread parent and resolved state. */
4
4
  declare const W15_NAMESPACE_URI = "http://schemas.microsoft.com/office/word/2012/wordml";
@@ -1,5 +1,5 @@
1
- import { a as OoxmlNode, g as OoxmlElement, h as OoxmlContentControlNode, d as OoxmlGenericElementNode, i as OoxmlContentControlContentNode, O as OoxmlPart } from './tree-op-types-HKfUzt_-.js';
2
- import { C as CommentRecord, f as ReviewRange, R as ReviewModelInput, a as ReviewItem, e as ReviewPosition, h as CommentThreadState, c as ReviewCommentItem, b as ReviewRevisionItem } from './review-items-B78OsJU2.js';
1
+ import { a as OoxmlNode, g as OoxmlElement, h as OoxmlContentControlNode, d as OoxmlGenericElementNode, i as OoxmlContentControlContentNode, O as OoxmlPart } from './tree-op-types-D6HzlPR4.js';
2
+ import { C as CommentRecord, f as ReviewRange, R as ReviewModelInput, a as ReviewItem, e as ReviewPosition, h as CommentThreadState, c as ReviewCommentItem, b as ReviewRevisionItem } from './review-items-CCS1h93f.js';
3
3
 
4
4
  /** Nested content-control wrappers deeper than this stop flattening; content stays preserved. */
5
5
  declare const MAX_CONTENT_CONTROL_NESTING = 32;
@@ -129,28 +129,15 @@ interface LinkableReviewItem {
129
129
  /**
130
130
  * Attach each comment that answers a tracked change to the change it answers.
131
131
  *
132
- * The evidence is the RANGE, exactly as it is for a coincident comment thread: replying to a
133
- * revision writes a comment over that revision's own characters, because OOXML gives `w:ins`
134
- * and `w:del` nowhere else to put the text. Without this the reply came back as an independent
135
- * card in the rail, sitting beside the change rather than inside it, and the reader had no way
136
- * to see which change their answer belonged to.
137
- *
138
- * Three things keep it from over-claiming. A ZERO-WIDTH range is evidence of nothing — the same
139
- * rule the comment threading uses, and a format or paragraph-mark revision decorates no
140
- * characters at all. A comment already stated to be a REPLY to another comment is not claimed
141
- * directly, because a stated link always beats an inferred one. And the FIRST revision on a span
142
- * wins, so a card cannot claim a reply another card already holds.
132
+ * A matching non-empty RANGE is the evidence. A stated comment reply beats an inferred revision
133
+ * link, and the deepest revision on a shared span wins to match click targeting.
143
134
  *
144
135
  * The WHOLE conversation moves, not its head. A change's card renders `replyIds` as a flat list,
145
136
  * so linking only the top comment of a thread left every answer to that answer rendered by
146
- * nobody: reply twice to one change and the second reply existed in `comments.xml` and appeared
147
- * nowhere on screen. Descendants ride along, in the order they were authored.
148
- *
149
- * IDEMPOTENT, and that is load-bearing. The session re-runs this over a list whose comments are
150
- * ALREADY linked, so a pass that only ever added links left a stale `parentRevisionId` behind
151
- * when a keystroke shifted the revision's offsets out from under it — the rail filters such a
152
- * comment out of its roots, and with no revision claiming it any more the card vanished until
153
- * the next full re-derivation. Every link is rebuilt from the ranges on every pass.
137
+ * nobody. Descendants ride along in authoring order.
138
+ *
139
+ * The pass is idempotent: every link is rebuilt from ranges, so locally patched queues cannot
140
+ * retain stale `parentRevisionId` values after edits move a revision.
154
141
  */
155
142
  declare function linkRevisionReplies<T extends LinkableReviewItem>(items: readonly T[]): T[];
156
143
  /**
@@ -1,5 +1,5 @@
1
- import { a as OoxmlNode, g as OoxmlElement, h as OoxmlContentControlNode, d as OoxmlGenericElementNode, i as OoxmlContentControlContentNode, O as OoxmlPart } from './tree-op-types-CA7qgAUF.cjs';
2
- import { C as CommentRecord, f as ReviewRange, R as ReviewModelInput, a as ReviewItem, e as ReviewPosition, h as CommentThreadState, c as ReviewCommentItem, b as ReviewRevisionItem } from './review-items-C-2WQdEb.cjs';
1
+ import { a as OoxmlNode, g as OoxmlElement, h as OoxmlContentControlNode, d as OoxmlGenericElementNode, i as OoxmlContentControlContentNode, O as OoxmlPart } from './tree-op-types-BUulYD5y.cjs';
2
+ import { C as CommentRecord, f as ReviewRange, R as ReviewModelInput, a as ReviewItem, e as ReviewPosition, h as CommentThreadState, c as ReviewCommentItem, b as ReviewRevisionItem } from './review-items-CaAkgi5s.cjs';
3
3
 
4
4
  /** Nested content-control wrappers deeper than this stop flattening; content stays preserved. */
5
5
  declare const MAX_CONTENT_CONTROL_NESTING = 32;
@@ -129,28 +129,15 @@ interface LinkableReviewItem {
129
129
  /**
130
130
  * Attach each comment that answers a tracked change to the change it answers.
131
131
  *
132
- * The evidence is the RANGE, exactly as it is for a coincident comment thread: replying to a
133
- * revision writes a comment over that revision's own characters, because OOXML gives `w:ins`
134
- * and `w:del` nowhere else to put the text. Without this the reply came back as an independent
135
- * card in the rail, sitting beside the change rather than inside it, and the reader had no way
136
- * to see which change their answer belonged to.
137
- *
138
- * Three things keep it from over-claiming. A ZERO-WIDTH range is evidence of nothing — the same
139
- * rule the comment threading uses, and a format or paragraph-mark revision decorates no
140
- * characters at all. A comment already stated to be a REPLY to another comment is not claimed
141
- * directly, because a stated link always beats an inferred one. And the FIRST revision on a span
142
- * wins, so a card cannot claim a reply another card already holds.
132
+ * A matching non-empty RANGE is the evidence. A stated comment reply beats an inferred revision
133
+ * link, and the deepest revision on a shared span wins to match click targeting.
143
134
  *
144
135
  * The WHOLE conversation moves, not its head. A change's card renders `replyIds` as a flat list,
145
136
  * so linking only the top comment of a thread left every answer to that answer rendered by
146
- * nobody: reply twice to one change and the second reply existed in `comments.xml` and appeared
147
- * nowhere on screen. Descendants ride along, in the order they were authored.
148
- *
149
- * IDEMPOTENT, and that is load-bearing. The session re-runs this over a list whose comments are
150
- * ALREADY linked, so a pass that only ever added links left a stale `parentRevisionId` behind
151
- * when a keystroke shifted the revision's offsets out from under it — the rail filters such a
152
- * comment out of its roots, and with no revision claiming it any more the card vanished until
153
- * the next full re-derivation. Every link is rebuilt from the ranges on every pass.
137
+ * nobody. Descendants ride along in authoring order.
138
+ *
139
+ * The pass is idempotent: every link is rebuilt from ranges, so locally patched queues cannot
140
+ * retain stale `parentRevisionId` values after edits move a revision.
154
141
  */
155
142
  declare function linkRevisionReplies<T extends LinkableReviewItem>(items: readonly T[]): T[];
156
143
  /**
@@ -1,4 +1,4 @@
1
- import { a as OoxmlNode } from './tree-op-types-CA7qgAUF.cjs';
1
+ import { a as OoxmlNode } from './tree-op-types-D6HzlPR4.js';
2
2
 
3
3
  /**
4
4
  * What a revision wrapper asserts about the content inside it.
@@ -44,6 +44,27 @@ type RevisionDisplayMode = 'all-markup' | 'proposed' | 'original';
44
44
  * sees them, rather than a clean-looking document hiding edits nobody has accepted.
45
45
  */
46
46
  declare const DEFAULT_REVISION_DISPLAY_MODE: RevisionDisplayMode;
47
+ /**
48
+ * A view-time tracked-change filter. Revisions rejected by `includes` use the filter's accepted
49
+ * or rejected projection, while included revisions keep the display mode's normal projection.
50
+ *
51
+ * `cacheKey` is a canonical, content-based identity for layout caches. The set itself is kept
52
+ * because author names are attacker-controlled strings and must never be parsed back from a
53
+ * delimiter-based key.
54
+ */
55
+ interface RevisionFilter {
56
+ readonly hiddenAuthors: ReadonlySet<string>;
57
+ readonly includes?: (revision: RevisionAttribution) => boolean;
58
+ readonly includesNode?: (nodeId: string, author: string) => boolean;
59
+ /** Accepted/original projection for a revision excluded by `includesNode`. */
60
+ readonly excludedNodeMode?: (nodeId: string, author: string) => 'proposed' | 'original';
61
+ readonly cacheKey: string;
62
+ }
63
+ /** @deprecated Use {@link RevisionFilter}. */
64
+ interface RevisionAuthorFilter extends RevisionFilter {
65
+ }
66
+ /** Build a canonical reviewer filter. An empty input returns `undefined` for the fast path. */
67
+ declare function revisionAuthorFilter(hiddenAuthors: Iterable<string>): RevisionAuthorFilter | undefined;
47
68
  /**
48
69
  * Whether content under this stack of revisions is laid out in the given mode.
49
70
  *
@@ -51,7 +72,7 @@ declare const DEFAULT_REVISION_DISPLAY_MODE: RevisionDisplayMode;
51
72
  * everything inside it regardless of what the inner wrappers say. An insertion inside a
52
73
  * deletion does not survive the proposed result: the deletion it sits in was accepted.
53
74
  */
54
- declare function revisionsVisible(revisions: readonly RevisionAttribution[], mode: RevisionDisplayMode): boolean;
75
+ declare function revisionsVisible(revisions: readonly RevisionAttribution[], mode: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): boolean;
55
76
  /**
56
77
  * Every revision on a paragraph's own MARK, from `w:pPr/w:rPr/w:ins|w:del|w:moveFrom|w:moveTo`.
57
78
  *
@@ -132,4 +153,4 @@ declare function formatRevisionOf(properties: readonly {
132
153
  /** True when this stack of revisions marks its content as deleted from the live document. */
133
154
  declare function revisionsAreDeletion(revisions: readonly RevisionAttribution[]): boolean;
134
155
 
135
- export { DEFAULT_REVISION_DISPLAY_MODE as D, type RevisionDisplayMode as R, type RevisionAttribution as a, type RevisionKind as b, paragraphMarkRevisionOf as c, paragraphMarkRevisionsOf as d, revisionsVisible as e, formatRevisionOf as f, markRevisionRemovesMark as m, paragraphMarkFormatRevisionOf as p, revisionsAreDeletion as r, shownMarkRevision as s };
156
+ export { DEFAULT_REVISION_DISPLAY_MODE as D, type RevisionDisplayMode as R, type RevisionAuthorFilter as a, type RevisionAttribution as b, type RevisionFilter as c, type RevisionKind as d, paragraphMarkRevisionOf as e, formatRevisionOf as f, paragraphMarkRevisionsOf as g, revisionsAreDeletion as h, revisionsVisible as i, markRevisionRemovesMark as m, paragraphMarkFormatRevisionOf as p, revisionAuthorFilter as r, shownMarkRevision as s };
@@ -1,4 +1,4 @@
1
- import { a as OoxmlNode } from './tree-op-types-HKfUzt_-.js';
1
+ import { a as OoxmlNode } from './tree-op-types-BUulYD5y.cjs';
2
2
 
3
3
  /**
4
4
  * What a revision wrapper asserts about the content inside it.
@@ -44,6 +44,27 @@ type RevisionDisplayMode = 'all-markup' | 'proposed' | 'original';
44
44
  * sees them, rather than a clean-looking document hiding edits nobody has accepted.
45
45
  */
46
46
  declare const DEFAULT_REVISION_DISPLAY_MODE: RevisionDisplayMode;
47
+ /**
48
+ * A view-time tracked-change filter. Revisions rejected by `includes` use the filter's accepted
49
+ * or rejected projection, while included revisions keep the display mode's normal projection.
50
+ *
51
+ * `cacheKey` is a canonical, content-based identity for layout caches. The set itself is kept
52
+ * because author names are attacker-controlled strings and must never be parsed back from a
53
+ * delimiter-based key.
54
+ */
55
+ interface RevisionFilter {
56
+ readonly hiddenAuthors: ReadonlySet<string>;
57
+ readonly includes?: (revision: RevisionAttribution) => boolean;
58
+ readonly includesNode?: (nodeId: string, author: string) => boolean;
59
+ /** Accepted/original projection for a revision excluded by `includesNode`. */
60
+ readonly excludedNodeMode?: (nodeId: string, author: string) => 'proposed' | 'original';
61
+ readonly cacheKey: string;
62
+ }
63
+ /** @deprecated Use {@link RevisionFilter}. */
64
+ interface RevisionAuthorFilter extends RevisionFilter {
65
+ }
66
+ /** Build a canonical reviewer filter. An empty input returns `undefined` for the fast path. */
67
+ declare function revisionAuthorFilter(hiddenAuthors: Iterable<string>): RevisionAuthorFilter | undefined;
47
68
  /**
48
69
  * Whether content under this stack of revisions is laid out in the given mode.
49
70
  *
@@ -51,7 +72,7 @@ declare const DEFAULT_REVISION_DISPLAY_MODE: RevisionDisplayMode;
51
72
  * everything inside it regardless of what the inner wrappers say. An insertion inside a
52
73
  * deletion does not survive the proposed result: the deletion it sits in was accepted.
53
74
  */
54
- declare function revisionsVisible(revisions: readonly RevisionAttribution[], mode: RevisionDisplayMode): boolean;
75
+ declare function revisionsVisible(revisions: readonly RevisionAttribution[], mode: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): boolean;
55
76
  /**
56
77
  * Every revision on a paragraph's own MARK, from `w:pPr/w:rPr/w:ins|w:del|w:moveFrom|w:moveTo`.
57
78
  *
@@ -132,4 +153,4 @@ declare function formatRevisionOf(properties: readonly {
132
153
  /** True when this stack of revisions marks its content as deleted from the live document. */
133
154
  declare function revisionsAreDeletion(revisions: readonly RevisionAttribution[]): boolean;
134
155
 
135
- export { DEFAULT_REVISION_DISPLAY_MODE as D, type RevisionDisplayMode as R, type RevisionAttribution as a, type RevisionKind as b, paragraphMarkRevisionOf as c, paragraphMarkRevisionsOf as d, revisionsVisible as e, formatRevisionOf as f, markRevisionRemovesMark as m, paragraphMarkFormatRevisionOf as p, revisionsAreDeletion as r, shownMarkRevision as s };
156
+ export { DEFAULT_REVISION_DISPLAY_MODE as D, type RevisionDisplayMode as R, type RevisionAuthorFilter as a, type RevisionAttribution as b, type RevisionFilter as c, type RevisionKind as d, paragraphMarkRevisionOf as e, formatRevisionOf as f, paragraphMarkRevisionsOf as g, revisionsAreDeletion as h, revisionsVisible as i, markRevisionRemovesMark as m, paragraphMarkFormatRevisionOf as p, revisionAuthorFilter as r, shownMarkRevision as s };
@@ -1,7 +1,7 @@
1
- import { O as OoxmlPart, g as OoxmlElement, a as OoxmlNode } from './tree-op-types-HKfUzt_-.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-CzI0ZEuR.js';
3
- import { R as RevisionDisplayMode } from './revision-projection-B2v9U3qx.js';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-C00BpIyC.js';
1
+ import { O as OoxmlPart, g as OoxmlElement, a as OoxmlNode } from './tree-op-types-D6HzlPR4.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, e as TableRowFragmentRecord, f as TableCellFragmentRecord } from './semantic-records-92UnKeU_.js';
3
+ import { R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-BeXVrSSV.js';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-BmQ7h2cq.js';
5
5
 
6
6
  /**
7
7
  * Hard ceiling on sections enumerated from a document (matches write-path
@@ -144,7 +144,16 @@ declare function readSectionProperties(part: OoxmlPart): SectionProperties;
144
144
  * a filtered list with indices counted over an unfiltered one puts body text under another
145
145
  * section's page geometry — the wrong paper size, the wrong margins, the wrong header.
146
146
  */
147
- declare function enumerateDocumentSections(part: OoxmlPart, displayMode?: RevisionDisplayMode): DocumentSection[];
147
+ declare function enumerateDocumentSections(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): DocumentSection[];
148
+ /**
149
+ * Canonical section index behind each section in a revision-projected body.
150
+ *
151
+ * A removed paragraph mark can collapse an entire section. The projected section keeps the
152
+ * surviving paragraph's geometry, while package APIs such as header/footer resolution remain
153
+ * indexed over the canonical tree. This bridge prevents those two index spaces from being
154
+ * paired positionally.
155
+ */
156
+ declare function projectedSectionSourceIndexes(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): readonly number[];
148
157
  /**
149
158
  * Every section in a document, with a flag saying whether the list was cut short.
150
159
  *
@@ -162,7 +171,7 @@ interface DocumentSectionsEnumeration {
162
171
  * hostile input. Prefer the plain enumerator for normal layout; use this when a caller
163
172
  * needs a named fail-closed diagnostic.
164
173
  */
165
- declare function enumerateDocumentSectionsBounded(part: OoxmlPart, displayMode?: RevisionDisplayMode): DocumentSectionsEnumeration;
174
+ declare function enumerateDocumentSectionsBounded(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): DocumentSectionsEnumeration;
166
175
  /**
167
176
  * Section properties as the geometry layout paginates against.
168
177
  *
@@ -439,4 +448,4 @@ interface TableCellContext {
439
448
  */
440
449
  declare function tableContextAt(layout: SemanticLayout, paragraphId: string): TableCellContext | null;
441
450
 
442
- export { pageAtY as A, paragraphSectionNode as B, type CellSelection as C, DEFAULT_SECTION_PROPERTIES as D, paragraphsInCells as E, parsePageNumbering as F, parseSectionProperties as G, type HitPoint as H, readSectionProperties as I, spanOffsetX as J, spansInCells as K, tableContextAt as L, MAX_DOCUMENT_SECTIONS as M, type PlacedCell as P, type SectionProperties as S, type TableCellAddress as T, type SectionColumns as a, DEFAULT_VERTICAL_WEIGHT as b, type DocumentSection as c, type DocumentSectionsEnumeration as d, type DrawingOverlayFrame as e, type HitTestOptions as f, type SectionBreakType as g, type SectionColumnDefinition as h, type SectionMargins as i, type SectionPageNumbering as j, type SemanticHit as k, type SemanticHitDrawing as l, type TableCellContext as m, caretBoxOnLine as n, cellSelectionBetween as o, cellSelectionRects as p, cellSelectionText as q, contentControlAtPoint as r, enumerateDocumentSections as s, enumerateDocumentSectionsBounded as t, findDrawingOverlayFrameInLayout as u, geometryOfSection as v, hitTestPage as w, hitTestSheet as x, isFurniturePoint as y, lineEndOffset as z };
451
+ export { pageAtY as A, paragraphSectionNode as B, type CellSelection as C, DEFAULT_SECTION_PROPERTIES as D, paragraphsInCells as E, parsePageNumbering as F, parseSectionProperties as G, type HitPoint as H, projectedSectionSourceIndexes as I, readSectionProperties as J, spanOffsetX as K, spansInCells as L, MAX_DOCUMENT_SECTIONS as M, tableContextAt as N, type PlacedCell as P, type SectionProperties as S, type TableCellAddress as T, type SectionColumns as a, DEFAULT_VERTICAL_WEIGHT as b, type DocumentSection as c, type DocumentSectionsEnumeration as d, type DrawingOverlayFrame as e, type HitTestOptions as f, type SectionBreakType as g, type SectionColumnDefinition as h, type SectionMargins as i, type SectionPageNumbering as j, type SemanticHit as k, type SemanticHitDrawing as l, type TableCellContext as m, caretBoxOnLine as n, cellSelectionBetween as o, cellSelectionRects as p, cellSelectionText as q, contentControlAtPoint as r, enumerateDocumentSections as s, enumerateDocumentSectionsBounded as t, findDrawingOverlayFrameInLayout as u, geometryOfSection as v, hitTestPage as w, hitTestSheet as x, isFurniturePoint as y, lineEndOffset as z };
@@ -1,7 +1,7 @@
1
- import { O as OoxmlPart, g as OoxmlElement, a as OoxmlNode } from './tree-op-types-CA7qgAUF.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-CRG1r6-a.cjs';
3
- import { R as RevisionDisplayMode } from './revision-projection-6u8lae9J.cjs';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-DiOX0FIH.cjs';
1
+ import { O as OoxmlPart, g as OoxmlElement, a as OoxmlNode } from './tree-op-types-BUulYD5y.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, e as TableRowFragmentRecord, f as TableCellFragmentRecord } from './semantic-records-BpozY7-j.cjs';
3
+ import { R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-DXbrfNGD.cjs';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-DUAnxbgf.cjs';
5
5
 
6
6
  /**
7
7
  * Hard ceiling on sections enumerated from a document (matches write-path
@@ -144,7 +144,16 @@ declare function readSectionProperties(part: OoxmlPart): SectionProperties;
144
144
  * a filtered list with indices counted over an unfiltered one puts body text under another
145
145
  * section's page geometry — the wrong paper size, the wrong margins, the wrong header.
146
146
  */
147
- declare function enumerateDocumentSections(part: OoxmlPart, displayMode?: RevisionDisplayMode): DocumentSection[];
147
+ declare function enumerateDocumentSections(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): DocumentSection[];
148
+ /**
149
+ * Canonical section index behind each section in a revision-projected body.
150
+ *
151
+ * A removed paragraph mark can collapse an entire section. The projected section keeps the
152
+ * surviving paragraph's geometry, while package APIs such as header/footer resolution remain
153
+ * indexed over the canonical tree. This bridge prevents those two index spaces from being
154
+ * paired positionally.
155
+ */
156
+ declare function projectedSectionSourceIndexes(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): readonly number[];
148
157
  /**
149
158
  * Every section in a document, with a flag saying whether the list was cut short.
150
159
  *
@@ -162,7 +171,7 @@ interface DocumentSectionsEnumeration {
162
171
  * hostile input. Prefer the plain enumerator for normal layout; use this when a caller
163
172
  * needs a named fail-closed diagnostic.
164
173
  */
165
- declare function enumerateDocumentSectionsBounded(part: OoxmlPart, displayMode?: RevisionDisplayMode): DocumentSectionsEnumeration;
174
+ declare function enumerateDocumentSectionsBounded(part: OoxmlPart, displayMode?: RevisionDisplayMode, authorFilter?: RevisionAuthorFilter): DocumentSectionsEnumeration;
166
175
  /**
167
176
  * Section properties as the geometry layout paginates against.
168
177
  *
@@ -439,4 +448,4 @@ interface TableCellContext {
439
448
  */
440
449
  declare function tableContextAt(layout: SemanticLayout, paragraphId: string): TableCellContext | null;
441
450
 
442
- export { pageAtY as A, paragraphSectionNode as B, type CellSelection as C, DEFAULT_SECTION_PROPERTIES as D, paragraphsInCells as E, parsePageNumbering as F, parseSectionProperties as G, type HitPoint as H, readSectionProperties as I, spanOffsetX as J, spansInCells as K, tableContextAt as L, MAX_DOCUMENT_SECTIONS as M, type PlacedCell as P, type SectionProperties as S, type TableCellAddress as T, type SectionColumns as a, DEFAULT_VERTICAL_WEIGHT as b, type DocumentSection as c, type DocumentSectionsEnumeration as d, type DrawingOverlayFrame as e, type HitTestOptions as f, type SectionBreakType as g, type SectionColumnDefinition as h, type SectionMargins as i, type SectionPageNumbering as j, type SemanticHit as k, type SemanticHitDrawing as l, type TableCellContext as m, caretBoxOnLine as n, cellSelectionBetween as o, cellSelectionRects as p, cellSelectionText as q, contentControlAtPoint as r, enumerateDocumentSections as s, enumerateDocumentSectionsBounded as t, findDrawingOverlayFrameInLayout as u, geometryOfSection as v, hitTestPage as w, hitTestSheet as x, isFurniturePoint as y, lineEndOffset as z };
451
+ export { pageAtY as A, paragraphSectionNode as B, type CellSelection as C, DEFAULT_SECTION_PROPERTIES as D, paragraphsInCells as E, parsePageNumbering as F, parseSectionProperties as G, type HitPoint as H, projectedSectionSourceIndexes as I, readSectionProperties as J, spanOffsetX as K, spansInCells as L, MAX_DOCUMENT_SECTIONS as M, tableContextAt as N, type PlacedCell as P, type SectionProperties as S, type TableCellAddress as T, type SectionColumns as a, DEFAULT_VERTICAL_WEIGHT as b, type DocumentSection as c, type DocumentSectionsEnumeration as d, type DrawingOverlayFrame as e, type HitTestOptions as f, type SectionBreakType as g, type SectionColumnDefinition as h, type SectionMargins as i, type SectionPageNumbering as j, type SemanticHit as k, type SemanticHitDrawing as l, type TableCellContext as m, caretBoxOnLine as n, cellSelectionBetween as o, cellSelectionRects as p, cellSelectionText as q, contentControlAtPoint as r, enumerateDocumentSections as s, enumerateDocumentSectionsBounded as t, findDrawingOverlayFrameInLayout as u, geometryOfSection as v, hitTestPage as w, hitTestSheet as x, isFurniturePoint as y, lineEndOffset as z };
@@ -1,4 +1,4 @@
1
- import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-CzI0ZEuR.js';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-92UnKeU_.js';
2
2
 
3
3
  /** A caret position in the model. */
4
4
  interface SemanticPosition {
@@ -139,7 +139,9 @@ declare function moveCaret(layout: SemanticLayout, position: SemanticPosition, c
139
139
  * it is expressed in model coordinates and re-resolved against each new layout rather than
140
140
  * cached as geometry.
141
141
  */
142
- declare function compositionAnchor(layout: SemanticLayout, position: SemanticPosition): CaretGeometry | null;
142
+ declare function compositionAnchor(layout: SemanticLayout, position: SemanticPosition,
143
+ /** For an exact mid-span x (layout publishes no eager caret edges; see caretAt). */
144
+ measurer?: TextMeasurer): CaretGeometry | null;
143
145
  /** The style spans a selection touches, for reporting active formatting. */
144
146
  declare function spansInSelection(layout: SemanticLayout, selection: SemanticSelection,
145
147
  /**
@@ -1,4 +1,4 @@
1
- import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-CRG1r6-a.cjs';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-BpozY7-j.cjs';
2
2
 
3
3
  /** A caret position in the model. */
4
4
  interface SemanticPosition {
@@ -139,7 +139,9 @@ declare function moveCaret(layout: SemanticLayout, position: SemanticPosition, c
139
139
  * it is expressed in model coordinates and re-resolved against each new layout rather than
140
140
  * cached as geometry.
141
141
  */
142
- declare function compositionAnchor(layout: SemanticLayout, position: SemanticPosition): CaretGeometry | null;
142
+ declare function compositionAnchor(layout: SemanticLayout, position: SemanticPosition,
143
+ /** For an exact mid-span x (layout publishes no eager caret edges; see caretAt). */
144
+ measurer?: TextMeasurer): CaretGeometry | null;
143
145
  /** The style spans a selection touches, for reporting active formatting. */
144
146
  declare function spansInSelection(layout: SemanticLayout, selection: SemanticSelection,
145
147
  /**
@@ -1,5 +1,5 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-CRG1r6-a.cjs';
2
- import { V as ValidatedImageBytesHandle, t as RenderableImageMime } from './tree-op-types-CA7qgAUF.cjs';
1
+ import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-BpozY7-j.cjs';
2
+ import { V as ValidatedImageBytesHandle, t as RenderableImageMime } from './tree-op-types-BUulYD5y.cjs';
3
3
 
4
4
  /**
5
5
  * Everything a host can say about ONE author's presentation. Every field is optional and
@@ -1,5 +1,5 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-CzI0ZEuR.js';
2
- import { V as ValidatedImageBytesHandle, t as RenderableImageMime } from './tree-op-types-HKfUzt_-.js';
1
+ import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-92UnKeU_.js';
2
+ import { V as ValidatedImageBytesHandle, t as RenderableImageMime } from './tree-op-types-D6HzlPR4.js';
3
3
 
4
4
  /**
5
5
  * Everything a host can say about ONE author's presentation. Every field is optional and