@docx-editor.dev/core 2.1.3 → 2.2.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 (76) hide show
  1. package/README.md +4 -5
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.js +1 -1
  4. package/dist/binding.cjs +1 -1
  5. package/dist/binding.js +1 -1
  6. package/dist/chunk-5OSFUHGF.js +10 -0
  7. package/dist/chunk-C24AINST.js +12 -0
  8. package/dist/{chunk-O2WQY7IT.cjs → chunk-CY47CFM5.cjs} +5 -5
  9. package/dist/chunk-EUTHPVTG.cjs +2 -0
  10. package/dist/chunk-FJCBZ5BL.cjs +12 -0
  11. package/dist/{chunk-REZUWYB7.js → chunk-GRGRIDHF.js} +1 -1
  12. package/dist/{chunk-PC76F2HR.cjs → chunk-KZ5HPHW6.cjs} +1 -1
  13. package/dist/{chunk-TBBXCC7D.js → chunk-LVZSKP2F.js} +3 -3
  14. package/dist/{chunk-HBL3NNH5.cjs → chunk-MIUELYVA.cjs} +1 -1
  15. package/dist/chunk-MO7GAUO7.js +2 -0
  16. package/dist/chunk-NCGKMEKU.js +2 -0
  17. package/dist/chunk-PFTVNFMI.js +1 -0
  18. package/dist/chunk-QVGTZUEV.js +12 -0
  19. package/dist/chunk-T2LVH6D3.cjs +2 -0
  20. package/dist/chunk-UAOJHPQ4.cjs +10 -0
  21. package/dist/chunk-VXEF32A5.cjs +12 -0
  22. package/dist/contracts/editor.cjs +1 -1
  23. package/dist/contracts/editor.d.cts +3 -3
  24. package/dist/contracts/editor.d.ts +3 -3
  25. package/dist/contracts/editor.js +1 -1
  26. package/dist/contracts/interaction.d.cts +4 -4
  27. package/dist/contracts/interaction.d.ts +4 -4
  28. package/dist/{editor-BGBZn9c9.d.cts → editor-25RmHnxu.d.cts} +64 -2
  29. package/dist/{editor-DQRRxKMG.d.ts → editor-C8oaTHr3.d.ts} +64 -2
  30. package/dist/editor.cjs +1 -1
  31. package/dist/editor.css +86 -11
  32. package/dist/editor.d.cts +51 -11
  33. package/dist/editor.d.ts +51 -11
  34. package/dist/editor.js +1 -1
  35. package/dist/{index-DptRpcqa.d.cts → index-CiEakUbq.d.cts} +32 -5
  36. package/dist/{index-BzqHsd4Y.d.ts → index-gvw4VGE9.d.ts} +32 -5
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.d.cts +6 -6
  39. package/dist/index.d.ts +6 -6
  40. package/dist/index.js +1 -1
  41. package/dist/layout.cjs +1 -1
  42. package/dist/layout.d.cts +95 -61
  43. package/dist/layout.d.ts +95 -61
  44. package/dist/layout.js +1 -1
  45. package/dist/output.cjs +1 -1
  46. package/dist/output.d.cts +4 -101
  47. package/dist/output.d.ts +4 -101
  48. package/dist/output.js +1 -1
  49. package/dist/{semantic-cell-selection-DwLB71fF.d.cts → semantic-cell-selection-CI3loBKq.d.cts} +2 -2
  50. package/dist/{semantic-cell-selection-D_8RbPII.d.ts → semantic-cell-selection-Cx8P64j2.d.ts} +2 -2
  51. package/dist/{semantic-interaction-DqcEonqD.d.cts → semantic-interaction-B4HrJFQ2.d.cts} +1 -1
  52. package/dist/{semantic-interaction-CXH2wFqi.d.ts → semantic-interaction-unGpRNCk.d.ts} +1 -1
  53. package/dist/semantic-paint-BBNaqr1s.d.ts +133 -0
  54. package/dist/semantic-paint-DdGGra4m.d.cts +133 -0
  55. package/dist/{semantic-records-zTC0_1zi.d.ts → semantic-records-BC4bIKKL.d.ts} +28 -32
  56. package/dist/{semantic-records-COVFW5aS.d.cts → semantic-records-DC6V1U3T.d.cts} +28 -32
  57. package/dist/{shaped-measurer-CZXL-a6v.d.ts → shaped-measurer-ChSWkuAT.d.ts} +1 -1
  58. package/dist/{shaped-measurer-AFnFxoot.d.cts → shaped-measurer-SIqZp-Ty.d.cts} +1 -1
  59. package/dist/store.cjs +1 -1
  60. package/dist/store.d.cts +35 -14
  61. package/dist/store.d.ts +35 -14
  62. package/dist/store.js +1 -1
  63. package/package.json +2 -2
  64. package/dist/chunk-2DTQDAN7.js +0 -2
  65. package/dist/chunk-3HEU7MHP.js +0 -12
  66. package/dist/chunk-3JKQE4QJ.cjs +0 -2
  67. package/dist/chunk-6WIIHJFY.js +0 -1
  68. package/dist/chunk-BZK64YU3.cjs +0 -10
  69. package/dist/chunk-EDLUMMQN.cjs +0 -12
  70. package/dist/chunk-JQFDLZXQ.cjs +0 -2
  71. package/dist/chunk-QRAUDDVY.js +0 -2
  72. package/dist/chunk-STCITBJK.js +0 -12
  73. package/dist/chunk-TSXT537P.cjs +0 -12
  74. package/dist/chunk-Y7TA7TPF.js +0 -10
  75. package/dist/semantic-paint-drawings-B5Wk2so5.d.ts +0 -21
  76. package/dist/semantic-paint-drawings-x8g44lD_.d.cts +0 -21
package/dist/layout.d.ts CHANGED
@@ -1,7 +1,7 @@
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-CZXL-a6v.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-CZXL-a6v.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, B as BlockFragmentRecord, m as InlineDrawingLayoutContext, T as TextMeasurer, S as SemanticLayout, n as PageRecord, o as ParagraphFragmentRecord, A as AnchoredDrawingRecord, F as FieldPageContext, P as PageGeometry, H as HyperlinkProjector, p as CellBorderBox, q as TableBorderBox } from './semantic-records-zTC0_1zi.js';
4
- export { r as AUTO_PARAGRAPH_SPACING_PT, s as BorderGridGeometry, C as ContentControlBoundaryRecord, t as ContentControlGeometryFragment, u as ContentControlLevel, v as ContentControlLock, w as ContentControlMappedType, x as DEFAULT_PAGE_GEOMETRY, y as DEFAULT_RUN_STYLE, z as DEFAULT_TAB_INTERVAL_PT, E as DEFAULT_TAB_INTERVAL_TWIPS, G as EMPTY_TAB_STOPS, J as HeaderFooterStoryRecord, L as LineRecord, K as LineSpacingRule, N as ListMarkerRecord, O as MAX_BORDER_SPACE_PT, Q as MAX_BORDER_WIDTH_PT, U as MAX_PARAGRAPH_SPACING_PT, V as MAX_TABLE_BORDER_STROKES, W as MAX_TAB_POSITION_TWIPS, X as MAX_TAB_STOPS, Y as PARAGRAPH_BORDER_SIDES, Z as ParagraphAutoSpacingContext, _ as ParagraphBorderSide, $ as ParagraphBorderStrokeRecord, a0 as ParagraphBottomBorderRecord, a1 as ParagraphIndent, a2 as ResolvedCellBorders, a3 as ResolvedTableBorderEdge, a4 as ResolvedTableBorderEdgeSegment, a5 as ResolvedUnderline, a6 as SINGLE_LINE_SPACING, a7 as SourceRange, a8 as SpanLinkRecord, a9 as TAB_LEADER_GLYPH, aa as TabAlignment, ab as TabDestination, ac as TabLeader, ad as TabStop, ae as TableBorderSideName, af as TableBorderStrokeRecord, c as TableCellFragmentRecord, ag as TableFragmentRecord, b as TableRowFragmentRecord, ah as VerticalAlign, ai as appliedSpaceBefore, aj as applyLineSpacing, ak as baselineShiftPtOf, al as borderExtentPt, am as borderWeight, an as bottomBorderExtentPt, ao as cascadedParagraphBorders, ap as cascadedTabStops, aq as collapsedSpaceBefore, ar as contentControlsOfLayout, as as defaultTabIntervalFromSettings, at as displayText, au as effectiveContentControlLock, av as formatPageNumber, aw as fragmentsOfParagraph, ax as lineAtPosition, ay as linesOf, az as measureDisplayText, aA as nextTabDestination, aB as paragraphBorderExtentPt, aC as paragraphBorderStrokeWidthPt, aD as paragraphBorders, aE as paragraphBordersFingerprint, aF as paragraphBreaksBefore, aG as paragraphContextualSpacing, aH as paragraphFragmentsOf, aI as paragraphFragmentsOfBlocks, aJ as paragraphLineSpacing, aK as paragraphSpacing, aL as paragraphTabStops, aM as readBorderSide, aN as readCellBorders, aO as readTableBorders, aP as resolveBorderConflict, aQ as resolveRunStyle, aR as resolveTableCellBorderGrid, aS as runStylesEqual, aT as tabAdvanceWidth, aU as tabStopsFingerprint, aV as unionLayoutBoxes, aW as withDefaultTabInterval } from './semantic-records-zTC0_1zi.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-ChSWkuAT.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-ChSWkuAT.js';
3
+ import { d as SpanLinkRecord, e as LayoutBox, D as DrawingPoint, f as DrawingInsets, a as StyleSpanRecord, I as InlineDrawingRecord, M as ModelRange, R as ResolvedRunStyle, g as ThemeFonts, h as ParagraphSpacing, i as ParagraphLineSpacing, j as ParagraphBorderEdge, k as ParagraphBorders, l as ResolvedTabStops, m as TableBorderSide, B as BlockFragmentRecord, n as InlineDrawingLayoutContext, T as TextMeasurer, S as SemanticLayout, o as PageRecord, p as ParagraphFragmentRecord, A as AnchoredDrawingRecord, P as PageGeometry, q as CellBorderBox, r as TableBorderBox } from './semantic-records-BC4bIKKL.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, F as DEFAULT_TAB_INTERVAL_TWIPS, G as EMPTY_TAB_STOPS, H as FieldAtomMarker, J as HeaderFooterStoryRecord, L as LineRecord, K as LineSpacingRule, N as ListMarkerRecord, O as MAX_BORDER_SPACE_PT, Q as MAX_BORDER_WIDTH_PT, U as MAX_PARAGRAPH_SPACING_PT, V as MAX_TABLE_BORDER_STROKES, W as MAX_TAB_POSITION_TWIPS, X as MAX_TAB_STOPS, Y as PARAGRAPH_BORDER_SIDES, Z as ParagraphAutoSpacingContext, _ as ParagraphBorderSide, $ as ParagraphBorderStrokeRecord, a0 as ParagraphBottomBorderRecord, a1 as ParagraphIndent, a2 as ResolvedCellBorders, a3 as ResolvedTableBorderEdge, a4 as ResolvedTableBorderEdgeSegment, a5 as ResolvedUnderline, a6 as SINGLE_LINE_SPACING, a7 as SourceRange, a8 as TAB_LEADER_GLYPH, a9 as TabAlignment, aa as TabDestination, ab as TabLeader, ac as TabStop, ad as TableBorderSideName, ae as TableBorderStrokeRecord, c as TableCellFragmentRecord, af as TableFragmentRecord, b as TableRowFragmentRecord, ag as VerticalAlign, ah as appliedSpaceBefore, ai as applyLineSpacing, aj as baselineShiftPtOf, ak as borderExtentPt, al as borderWeight, am as bottomBorderExtentPt, an as cascadedParagraphBorders, ao as cascadedTabStops, ap as collapsedSpaceBefore, aq as contentControlsOfLayout, ar as defaultTabIntervalFromSettings, as as displayText, at as effectiveContentControlLock, au as fragmentsOfParagraph, av as lineAtPosition, aw as linesOf, ax as measureDisplayText, ay as nextTabDestination, az as paragraphBorderExtentPt, aA as paragraphBorderStrokeWidthPt, aB as paragraphBorders, aC as paragraphBordersFingerprint, aD as paragraphBreaksBefore, aE as paragraphContextualSpacing, aF as paragraphFragmentsOf, aG as paragraphFragmentsOfBlocks, aH as paragraphLineSpacing, aI as paragraphSpacing, aJ as paragraphTabStops, aK as readBorderSide, aL as readCellBorders, aM as readTableBorders, aN as resolveBorderConflict, aO as resolveRunStyle, aP as resolveTableCellBorderGrid, aQ as runStylesEqual, aR as tabAdvanceWidth, aS as tabStopsFingerprint, aT as unionLayoutBoxes, aU as withDefaultTabInterval } from './semantic-records-BC4bIKKL.js';
5
5
  import { O as OoxmlNode, a as OoxmlElement, e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
6
6
  import { O as OoxmlProperty, C as ContentControlKind, n as ContentControlLevel, o as ContentControlLock, p as ContentControlDataBinding, I as ImpactClass } from './tree-op-types-DWLCllG7.js';
7
7
  export { l as TableBorderStyle } from './tree-op-types-DWLCllG7.js';
@@ -10,22 +10,22 @@ import { R as ResolvedFootnoteProperties, a as ResolvedEndnoteProperties } from
10
10
  export { p as paragraphOrderOfPart } from './review-reads-CsoXSvUg.js';
11
11
  import { R as RevisionDisplayMode } from './revision-projection-DHAkcD_L.js';
12
12
  export { D as DEFAULT_REVISION_DISPLAY_MODE, a as RevisionAttribution, b as RevisionKind, f as formatRevisionOf, p as paragraphMarkRevisionOf, r as revisionsAreDeletion, c as revisionsVisible } from './revision-projection-DHAkcD_L.js';
13
- import { a as SectionColumns } from './semantic-cell-selection-D_8RbPII.js';
14
- 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-D_8RbPII.js';
13
+ import { a as SectionColumns } from './semantic-cell-selection-Cx8P64j2.js';
14
+ 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-Cx8P64j2.js';
15
15
  export { M as MAX_SDT_NESTING, c as collectFlowBlocks, a as contentControlContentChildren, i as isContentControl, b as isContentControlContent } from './content-control-walk-D06GijR0.js';
16
16
  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 commentBodyText, n as commentInitials, o as firstReviewRange, r as reviewAnchorIndex, p as reviewItemGeometry, q as reviewItemKey, s as reviewItemPositionRank, t as reviewItemRanges, u as reviewItemsAt, v as reviewThreadRootOf } from './review-support-B9ykYpoZ.js';
17
17
  import { T as TreeModelChange } from './tree-store-BscFPB7x.js';
18
- export { b as CaretAtOptions, C as CaretGeometry, K as KeyedRange, M as MoveCaretOptions, N as NavigationCommand, c as SelectionRect, S as SemanticPosition, a as SemanticSelection, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as documentOrder, k as hitTestSemantic, l as keyedRangeRects, m as moveCaret, p as paragraphTextFromLayout, s as selectionRects, n as spansInSelection, w as wordBoundary } from './semantic-interaction-CXH2wFqi.js';
18
+ export { b as CaretAtOptions, C as CaretGeometry, K as KeyedRange, M as MoveCaretOptions, N as NavigationCommand, c as SelectionRect, S as SemanticPosition, a as SemanticSelection, d as caretAt, e as caretStops, f as caretStopsForBlocks, g as compositionAnchor, h as contentControlAtSemantic, i as contentControlsInLayout, j as documentOrder, k as hitTestSemantic, l as keyedRangeRects, m as moveCaret, p as paragraphTextFromLayout, s as selectionRects, n as spansInSelection, w as wordBoundary } from './semantic-interaction-unGpRNCk.js';
19
19
  import './image-resources-C_YnqPhn.js';
20
20
  import './ooxml-package-D_CtywTW.js';
21
21
 
22
22
  /**
23
- * Which allowlisted complex page fields a header/footer story actually contains.
23
+ * Which allowlisted page fields a header/footer story actually contains.
24
24
  *
25
25
  * Drives layout reuse: no fields → one baseline; NUMPAGES only → one layout per page count;
26
26
  * SECTIONPAGES only → one layout per section page count; PAGE (alone or combined) → per
27
- * distinct evaluated values with a bounded cache. `w:fldSimple` never counts — it stays
28
- * layout-inert.
27
+ * distinct evaluated values with a bounded cache. Counts both complex markers and
28
+ * `w:fldSimple` (including an allowlisted page field nested inside a non-page simple field).
29
29
  */
30
30
  interface StoryPageFieldNeeds {
31
31
  readonly hasPage: boolean;
@@ -33,6 +33,90 @@ interface StoryPageFieldNeeds {
33
33
  readonly hasSectionPages: boolean;
34
34
  }
35
35
 
36
+ /**
37
+ * Page-field evaluation context for furniture projection.
38
+ *
39
+ * `pageNumber` is the displayed PAGE value after section `w:pgNumType/@w:start` (1-based).
40
+ * `pageCount` is document NUMPAGES. `sectionPageCount` is SECTIONPAGES for the attached
41
+ * section. `format` is the authored `w:pgNumType/@w:fmt` applied only to PAGE.
42
+ */
43
+ interface FieldPageContext {
44
+ readonly pageNumber: number;
45
+ readonly pageCount: number;
46
+ /** SECTIONPAGES; defaults to `pageCount` when omitted (single-section callers). */
47
+ readonly sectionPageCount?: number;
48
+ /** Authored ST_NumberFormat for PAGE; absent → decimal. */
49
+ readonly format?: string;
50
+ }
51
+ /**
52
+ * Format a displayed PAGE value through the shared ST_NumberFormat resolver.
53
+ *
54
+ * Unknown / script-specific formats fall back to decimal (same convention as list markers).
55
+ * `none` / `bullet` are meaningless for page numbers and also fall back to decimal so a
56
+ * hostile fmt cannot blank the furniture.
57
+ */
58
+ declare function formatPageNumber(value: number, format: string | undefined): string;
59
+
60
+ /**
61
+ * Lookup of derived display marks keyed by {@link formatNoteScopeId}.
62
+ *
63
+ * `null` mark = customMarkFollows (no automatic digits). Absent key = dangling / unknown
64
+ * — fail-open with an empty display (model atom preserved).
65
+ */
66
+ interface NoteMarkContext {
67
+ /** scopeId → formatted mark (or null when suppressed). */
68
+ readonly marks: ReadonlyMap<string, string | null>;
69
+ /**
70
+ * When set, every automatic mark measures at least this string's width (eachPage
71
+ * reservation). The string is the widest-measuring candidate under the effective mark
72
+ * style (actual marks plus a bounded per-section value window) — not merely the longest
73
+ * by codepoint count. Display text may still be the real mark; measurement uses the wider
74
+ * of the two so digit-width / proportional-glyph feedback cannot oscillate.
75
+ */
76
+ readonly reservedMarkText?: string;
77
+ /**
78
+ * Scope id of the note story currently being laid out (`footnote:N` / `endnote:N`).
79
+ *
80
+ * Body `noteReference` atoms carry `@w:id`; note-body `noteRef` atoms do not — they
81
+ * inherit identity from the enclosing note via this key.
82
+ */
83
+ readonly activeNoteKey?: string;
84
+ }
85
+ /**
86
+ * The key one note's mark is stored under — `footnote:N` / `endnote:N`.
87
+ *
88
+ * The same encoding `EditorScope` uses for note ids, so a mark context and a scope address name
89
+ * the same note without a translation step.
90
+ */
91
+ declare function noteMarkKey(noteKind: NoteKind, noteId: number): string;
92
+ /**
93
+ * Navigation role for a projected note atom:
94
+ * - `to-note` — body `noteReference` jumps into the note story
95
+ * - `to-body` — note-body `noteRef` jumps back to the body citation
96
+ */
97
+ type NoteNavDirection = 'to-note' | 'to-body';
98
+ interface ProjectedNoteMark {
99
+ readonly text: string;
100
+ readonly measureText?: string;
101
+ readonly projected: boolean;
102
+ readonly kind: NoteKind | null;
103
+ readonly noteId: number | null;
104
+ readonly nav?: NoteNavDirection;
105
+ readonly scopeId?: string;
106
+ }
107
+ /** Resolve display text for a noteReference / noteRef node under a mark context. */
108
+ declare function projectedNoteMarkText(node: OoxmlNode, context: NoteMarkContext | undefined): ProjectedNoteMark | null;
109
+
110
+ /**
111
+ * How layout turns a typed `w:hyperlink` node into the sanitized record spans carry.
112
+ *
113
+ * Injected rather than computed here because resolving `r:id` needs the PACKAGE's
114
+ * relationships and this module only ever sees one part's tree. `null` means the caller
115
+ * declined to project — the runs still measure and paint, they simply carry no link, which is
116
+ * the right degradation: text is never lost for want of a target.
117
+ */
118
+ type HyperlinkProjector = (link: OoxmlNode) => SpanLinkRecord | null;
119
+
36
120
  /** A fingerprint over one paragraph's layout inputs. */
37
121
  type ParagraphLayoutKey = string;
38
122
  /** Cache counters, for asserting that incremental layout is actually reusing work. */
@@ -112,56 +196,6 @@ interface ParagraphLayoutCacheOptions {
112
196
  */
113
197
  declare function createParagraphLayoutCache<T>(options?: ParagraphLayoutCacheOptions): ParagraphLayoutCache<T>;
114
198
 
115
- /**
116
- * Lookup of derived display marks keyed by {@link formatNoteScopeId}.
117
- *
118
- * `null` mark = customMarkFollows (no automatic digits). Absent key = dangling / unknown
119
- * — fail-open with an empty display (model atom preserved).
120
- */
121
- interface NoteMarkContext {
122
- /** scopeId → formatted mark (or null when suppressed). */
123
- readonly marks: ReadonlyMap<string, string | null>;
124
- /**
125
- * When set, every automatic mark measures at least this string's width (eachPage
126
- * reservation). The string is the widest-measuring candidate under the effective mark
127
- * style (actual marks plus a bounded per-section value window) — not merely the longest
128
- * by codepoint count. Display text may still be the real mark; measurement uses the wider
129
- * of the two so digit-width / proportional-glyph feedback cannot oscillate.
130
- */
131
- readonly reservedMarkText?: string;
132
- /**
133
- * Scope id of the note story currently being laid out (`footnote:N` / `endnote:N`).
134
- *
135
- * Body `noteReference` atoms carry `@w:id`; note-body `noteRef` atoms do not — they
136
- * inherit identity from the enclosing note via this key.
137
- */
138
- readonly activeNoteKey?: string;
139
- }
140
- /**
141
- * The key one note's mark is stored under — `footnote:N` / `endnote:N`.
142
- *
143
- * The same encoding `EditorScope` uses for note ids, so a mark context and a scope address name
144
- * the same note without a translation step.
145
- */
146
- declare function noteMarkKey(noteKind: NoteKind, noteId: number): string;
147
- /**
148
- * Navigation role for a projected note atom:
149
- * - `to-note` — body `noteReference` jumps into the note story
150
- * - `to-body` — note-body `noteRef` jumps back to the body citation
151
- */
152
- type NoteNavDirection = 'to-note' | 'to-body';
153
- interface ProjectedNoteMark {
154
- readonly text: string;
155
- readonly measureText?: string;
156
- readonly projected: boolean;
157
- readonly kind: NoteKind | null;
158
- readonly noteId: number | null;
159
- readonly nav?: NoteNavDirection;
160
- readonly scopeId?: string;
161
- }
162
- /** Resolve display text for a noteReference / noteRef node under a mark context. */
163
- declare function projectedNoteMarkText(node: OoxmlNode, context: NoteMarkContext | undefined): ProjectedNoteMark | null;
164
-
165
199
  type WrapTextSide = 'bothSides' | 'left' | 'right' | 'largest';
166
200
  interface WrapExclusionInput {
167
201
  readonly mode: 'square' | 'tight' | 'through' | 'topAndBottom';
@@ -2363,4 +2397,4 @@ declare class TablePaginationError extends Error {
2363
2397
  constructor(code: TablePaginationErrorCode, message: string);
2364
2398
  }
2365
2399
 
2366
- export { AUTO_PREFERRED_WIDTH, type AbstractNumDefinition, type BidiEmbeddingLevels, BlockFragmentRecord, CELL_PAD, COMPOUND_BORDER_MIN_GAP_PT, COMPOUND_BORDER_MIN_STROKE_PT, type CanvasMeasurerOptions, type CanvasTextContext, type CanvasTextMetrics, type CascadedParagraphFormatting, CellBorderBox, type CellMarginsPt, type CellVerticalAlign, type CompoundBorderMetrics, type ContentControlFragmentRecord, DEFAULT_CANVAS_FONT_STACK, DEFAULT_CELL_MARGINS, EMPTY_NUMBERING_INDEX, FixedPoint, FixedPointRoundingMode, FontByteValidator, type FontSlot, GRAPHEME_SEGMENTER_LOCALE, type GraphemeBoundary, type GraphemeSegment, type GraphemeWordSegmentRecord, HARFBUZZ_SHAPING_LIBRARY, type HarfBuzzFaceCacheEvent, type HarfBuzzOutlineCacheEvent, type HarfBuzzShapeCacheEvent, HarfBuzzShapingError, type HarfBuzzShapingErrorCode, type HarfBuzzTextShaper, type HarfBuzzTextShaperInstrumentation, type HarfBuzzTextShaperOptions, type HeaderFooterVariantName, HyperlinkProjector, LayoutBox, type LayoutCacheStats, type LayoutScheduler, type LayoutSchedulerOptions, type LayoutScope, type LayoutSession, type LayoutSessionStats, type LevelOverride, type ListCounterAdvance, type ListCounterState, type ListMarkerAlign, type ListSuffix, MAX_EACH_PAGE_MARK_CANDIDATES, MAX_LVL_OVERRIDES, MAX_LVL_TEXT_LENGTH, MAX_MARKER_TEXT_LENGTH, MAX_NOTES_LAID_OUT, MAX_NOTE_FRAGMENTS, MAX_NOTE_OVERFLOW_PAGES, MAX_NOTE_REFLOW_ATTEMPTS, MAX_NUMBERING_DEFINITIONS, MAX_STYLE_BASED_ON_DEPTH, MAX_STYLE_DEFINITIONS, MAX_TABLE_COLUMNS, MAX_TABLE_NESTING, MAX_TABLE_ROW_FRAGMENTS, MAX_TABLE_ROW_HEIGHT_PT, type MaterializationInput, type NoteDisplayMark, type NoteLayoutFallbackReason, type NoteMarkContext, type NotePaginationFallbackReason, type NoteReferenceSite, type NoteSeparatorLayout, type NoteSeparatorRuleStyle, type NoteStoryDrawings, type NoteStoryLayout, type NotesAttachResult, type NotesLayoutInput, type NumDefinition, type NumberingIndex, type NumberingLevel, type NumberingLevelIndent, type PageFurniture, PageGeometry, PageRecord, type PageRefIndex, ParagraphBorderEdge, ParagraphBorders, ParagraphFragmentRecord, type ParagraphKeyInputs, type ParagraphLayoutCache, type ParagraphLayoutCacheOptions, type ParagraphLayoutInputs, ParagraphLineSpacing, ParagraphSpacing, type PreferredWidth, type PreferredWidthType, type ResolvedListItem, ResolvedRunStyle, type ResolvedSurfaceMeasurer, ResolvedTabStops, RevisionDisplayMode, type ScriptItem, SectionColumns, SemanticLayout, type SemanticLayoutOptions, type SemanticTableCell, type SemanticTableRow, type SemanticTableStructure, ShapedRun, type StyleCascadeTable, type StyleDefinition, StyleSpanRecord, type TableAlignment, TableBorderBox, TableBorderSide, type TableCellStyleFormatting, TablePaginationError, type TablePaginationErrorCode, type TableRowHeight, type TableRowHeightRule, TextDirection, TextMeasurer, TextShaper, UnsupportedScriptError, VersionedShapingLibrary, type ViewportWindow, WORD_SEGMENTER_LOCALE, type WordBoundary, type WordBoundaryResolverDeps, type WordSegment, attachNotesToLayout, boundedFallbackWordSegments, buildNumberingIndex, buildPageRefIndex, buildStyleCascadeTable, cascadeParagraphFormatting, cascadeRunProperties, cascadedBottomBorder, clampListValue, computeDoubleBorderMetricsPt, computeFootnoteReserves, contentControlBoundaries, createBoundedFallbackWordBoundary, createDefaultWordBoundary, createFixedMeasurer, createHarfBuzzTextShaper, createIntlWordBoundary, createLayoutScheduler, createLayoutSession, createListCounterState, createParagraphLayoutCache, defaultNoteSeparatorRuleStyle, deriveNoteDisplayMarks, deriveNoteDisplayMarksResolved, effectiveBorderSide, emptyTocPlaceholderParagraphIds, emptyTocSuppressedResultParagraphIds, expandLvlText, filterRefsOnPage, findSeparatorNote, formatDecimal, formatDecimalZero, formatLowerLetter, formatLowerRoman, formatNumFmt, formatUpperLetter, formatUpperRoman, fragmentOwnsAtomOffset, graphemeBoundaryEpoch, graphemeCount, graphemeOffsetToUtf16, harfBuzzFontValidator, initializeHarfBuzz, intlGraphemeBoundary, isCanvasMeasurementAvailable, isCumulativeGeometryTrustedFromLineOrigin, isGeometryTrustedCaretOffset, isHarfBuzzInitialized, isIntlSegmenterAvailable, isIntlWordSegmenterAvailable, isMarkerOnlySeparatorNote, isValidStyleId, isWholeGraphemeHorizontalBoundary, itemizeScriptFontSlots, layoutHeaderFooterStory, layoutNoteById, layoutNoteSeparator, layoutNoteStory, layoutSemanticDocument, listMarkerBox, mergeListIndent, normalNotesOf, noteDisplayMarkMap, noteLineIdPrefix, noteMarkKey, noteSeparatorAreaBox, noteStoryBlocks, pagesToMaterialize, paragraphLayoutKey, paragraphMarkDeleted, paragraphShading, paragraphShadingBox, projectedNoteMarkText, provisionalNoteMarks, readNumPr, readTableStructure, resetGraphemeBoundary, resolveDefaultSurfaceMeasurer, resolveDefaultWordBoundary, resolveNumberingLevel, resolveOoxmlShadingFill, resolveParagraphLayoutInputs, resolveStoryListItems, resolveStrictHexFill, revisionRemovesParagraph, roundFontUnitToFixedPoint, segmentGraphemes, segmentWords, semanticHorizontalBoundaries, setGraphemeBoundary, shadingFillFromElement, shapedHorizontalBoundaries, storyBlocks, syntheticSeparatorBox, tableOriginX, tocFieldChromeParagraphIds, tryCreateCanvasMeasurer, utf16OffsetToGrapheme, walkStoryParagraphs, withNumberingStyleLinks, withResolvedListItems, wordSegmentsToGraphemeRecords };
2400
+ export { AUTO_PREFERRED_WIDTH, type AbstractNumDefinition, type BidiEmbeddingLevels, BlockFragmentRecord, CELL_PAD, COMPOUND_BORDER_MIN_GAP_PT, COMPOUND_BORDER_MIN_STROKE_PT, type CanvasMeasurerOptions, type CanvasTextContext, type CanvasTextMetrics, type CascadedParagraphFormatting, CellBorderBox, type CellMarginsPt, type CellVerticalAlign, type CompoundBorderMetrics, type ContentControlFragmentRecord, DEFAULT_CANVAS_FONT_STACK, DEFAULT_CELL_MARGINS, EMPTY_NUMBERING_INDEX, FixedPoint, FixedPointRoundingMode, FontByteValidator, type FontSlot, GRAPHEME_SEGMENTER_LOCALE, type GraphemeBoundary, type GraphemeSegment, type GraphemeWordSegmentRecord, HARFBUZZ_SHAPING_LIBRARY, type HarfBuzzFaceCacheEvent, type HarfBuzzOutlineCacheEvent, type HarfBuzzShapeCacheEvent, HarfBuzzShapingError, type HarfBuzzShapingErrorCode, type HarfBuzzTextShaper, type HarfBuzzTextShaperInstrumentation, type HarfBuzzTextShaperOptions, type HeaderFooterVariantName, type HyperlinkProjector, LayoutBox, type LayoutCacheStats, type LayoutScheduler, type LayoutSchedulerOptions, type LayoutScope, type LayoutSession, type LayoutSessionStats, type LevelOverride, type ListCounterAdvance, type ListCounterState, type ListMarkerAlign, type ListSuffix, MAX_EACH_PAGE_MARK_CANDIDATES, MAX_LVL_OVERRIDES, MAX_LVL_TEXT_LENGTH, MAX_MARKER_TEXT_LENGTH, MAX_NOTES_LAID_OUT, MAX_NOTE_FRAGMENTS, MAX_NOTE_OVERFLOW_PAGES, MAX_NOTE_REFLOW_ATTEMPTS, MAX_NUMBERING_DEFINITIONS, MAX_STYLE_BASED_ON_DEPTH, MAX_STYLE_DEFINITIONS, MAX_TABLE_COLUMNS, MAX_TABLE_NESTING, MAX_TABLE_ROW_FRAGMENTS, MAX_TABLE_ROW_HEIGHT_PT, type MaterializationInput, type NoteDisplayMark, type NoteLayoutFallbackReason, type NoteMarkContext, type NotePaginationFallbackReason, type NoteReferenceSite, type NoteSeparatorLayout, type NoteSeparatorRuleStyle, type NoteStoryDrawings, type NoteStoryLayout, type NotesAttachResult, type NotesLayoutInput, type NumDefinition, type NumberingIndex, type NumberingLevel, type NumberingLevelIndent, type PageFurniture, PageGeometry, PageRecord, type PageRefIndex, ParagraphBorderEdge, ParagraphBorders, ParagraphFragmentRecord, type ParagraphKeyInputs, type ParagraphLayoutCache, type ParagraphLayoutCacheOptions, type ParagraphLayoutInputs, ParagraphLineSpacing, ParagraphSpacing, type PreferredWidth, type PreferredWidthType, type ResolvedListItem, ResolvedRunStyle, type ResolvedSurfaceMeasurer, ResolvedTabStops, RevisionDisplayMode, type ScriptItem, SectionColumns, SemanticLayout, type SemanticLayoutOptions, type SemanticTableCell, type SemanticTableRow, type SemanticTableStructure, ShapedRun, SpanLinkRecord, type StyleCascadeTable, type StyleDefinition, StyleSpanRecord, type TableAlignment, TableBorderBox, TableBorderSide, type TableCellStyleFormatting, TablePaginationError, type TablePaginationErrorCode, type TableRowHeight, type TableRowHeightRule, TextDirection, TextMeasurer, TextShaper, UnsupportedScriptError, VersionedShapingLibrary, type ViewportWindow, WORD_SEGMENTER_LOCALE, type WordBoundary, type WordBoundaryResolverDeps, type WordSegment, attachNotesToLayout, boundedFallbackWordSegments, buildNumberingIndex, buildPageRefIndex, buildStyleCascadeTable, cascadeParagraphFormatting, cascadeRunProperties, cascadedBottomBorder, clampListValue, computeDoubleBorderMetricsPt, computeFootnoteReserves, contentControlBoundaries, createBoundedFallbackWordBoundary, createDefaultWordBoundary, createFixedMeasurer, createHarfBuzzTextShaper, createIntlWordBoundary, createLayoutScheduler, createLayoutSession, createListCounterState, createParagraphLayoutCache, defaultNoteSeparatorRuleStyle, deriveNoteDisplayMarks, deriveNoteDisplayMarksResolved, effectiveBorderSide, emptyTocPlaceholderParagraphIds, emptyTocSuppressedResultParagraphIds, expandLvlText, filterRefsOnPage, findSeparatorNote, formatDecimal, formatDecimalZero, formatLowerLetter, formatLowerRoman, formatNumFmt, formatPageNumber, formatUpperLetter, formatUpperRoman, fragmentOwnsAtomOffset, graphemeBoundaryEpoch, graphemeCount, graphemeOffsetToUtf16, harfBuzzFontValidator, initializeHarfBuzz, intlGraphemeBoundary, isCanvasMeasurementAvailable, isCumulativeGeometryTrustedFromLineOrigin, isGeometryTrustedCaretOffset, isHarfBuzzInitialized, isIntlSegmenterAvailable, isIntlWordSegmenterAvailable, isMarkerOnlySeparatorNote, isValidStyleId, isWholeGraphemeHorizontalBoundary, itemizeScriptFontSlots, layoutHeaderFooterStory, layoutNoteById, layoutNoteSeparator, layoutNoteStory, layoutSemanticDocument, listMarkerBox, mergeListIndent, normalNotesOf, noteDisplayMarkMap, noteLineIdPrefix, noteMarkKey, noteSeparatorAreaBox, noteStoryBlocks, pagesToMaterialize, paragraphLayoutKey, paragraphMarkDeleted, paragraphShading, paragraphShadingBox, projectedNoteMarkText, provisionalNoteMarks, readNumPr, readTableStructure, resetGraphemeBoundary, resolveDefaultSurfaceMeasurer, resolveDefaultWordBoundary, resolveNumberingLevel, resolveOoxmlShadingFill, resolveParagraphLayoutInputs, resolveStoryListItems, resolveStrictHexFill, revisionRemovesParagraph, roundFontUnitToFixedPoint, segmentGraphemes, segmentWords, semanticHorizontalBoundaries, setGraphemeBoundary, shadingFillFromElement, shapedHorizontalBoundaries, storyBlocks, syntheticSeparatorBox, tableOriginX, tocFieldChromeParagraphIds, tryCreateCanvasMeasurer, utf16OffsetToGrapheme, walkStoryParagraphs, withNumberingStyleLinks, withResolvedListItems, wordSegmentsToGraphemeRecords };
package/dist/layout.js CHANGED
@@ -1 +1 @@
1
- export{fa as AUTO_PARAGRAPH_SPACING_PT,Hb as AUTO_PREFERRED_WIDTH,Jb as CELL_PAD,$ as COMPOUND_BORDER_MIN_GAP_PT,_ as COMPOUND_BORDER_MIN_STROKE_PT,gd as DEFAULT_CANVAS_FONT_STACK,Lb as DEFAULT_CELL_MARGINS,Q as DEFAULT_PAGE_GEOMETRY,Za as DEFAULT_REVISION_DISPLAY_MODE,cb as DEFAULT_RUN_STYLE,yc as DEFAULT_SECTION_PROPERTIES,Ca as DEFAULT_TAB_INTERVAL_PT,Ba as DEFAULT_TAB_INTERVAL_TWIPS,$b as DEFAULT_VERTICAL_WEIGHT,Sb 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,xc as MAX_DOCUMENT_SECTIONS,Xc as MAX_EACH_PAGE_MARK_CANDIDATES,Pb as MAX_LVL_OVERRIDES,Na as MAX_LVL_TEXT_LENGTH,Ma as MAX_MARKER_TEXT_LENGTH,Jc as MAX_NOTES_LAID_OUT,Kc as MAX_NOTE_FRAGMENTS,Wc as MAX_NOTE_OVERFLOW_PAGES,Vc as MAX_NOTE_REFLOW_ATTEMPTS,Ob as MAX_NUMBERING_DEFINITIONS,ca as MAX_PARAGRAPH_SPACING_PT,ob as MAX_STYLE_BASED_ON_DEPTH,pb as MAX_STYLE_DEFINITIONS,zb as MAX_TABLE_BORDER_STROKES,Ib as MAX_TABLE_NESTING,pc as MAX_TABLE_ROW_FRAGMENTS,Kb 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,qc as TablePaginationError,n as UnsupportedScriptError,E as WORD_SEGMENTER_LOCALE,ta as appliedSpaceBefore,ka as applyLineSpacing,ad as attachNotesToLayout,hb as baselineShiftPtOf,Gb as borderExtentPt,Db as borderWeight,qa as bottomBorderExtentPt,H as boundedFallbackWordSegments,Qb as buildNumberingIndex,Zc as buildPageRefIndex,rb as buildStyleCascadeTable,N as captureOperationSnapshot,qd as caretAt,ic as caretBoxOnLine,od as caretStops,pd as caretStopsForBlocks,sb as cascadeParagraphFormatting,ub as cascadeRunProperties,tb as cascadedBottomBorder,na as cascadedParagraphBorders,Fa as cascadedTabStops,Cd as cellSelectionBetween,Fd as cellSelectionRects,Gd as cellSelectionText,Oa as clampListValue,sa as collapsedSpaceBefore,Ad as compositionAnchor,aa as computeDoubleBorderMetricsPt,$c as computeFootnoteReserves,fc as contentControlAtPoint,sd as contentControlAtSemantic,kd as contentControlBoundaries,td as contentControlsInLayout,X as contentControlsOfLayout,I as createBoundedFallbackWordBoundary,J as createDefaultWordBoundary,ed as createFixedMeasurer,m as createHarfBuzzTextShaper,G as createIntlWordBoundary,nd as createLayoutScheduler,dd as createLayoutSession,Tb as createListCounterState,kb as createParagraphLayoutCache,ld as createShapedMeasurer,e as createShapedRun,b as createShapingEnvironment,Qc as defaultNoteSeparatorRuleStyle,Ia as defaultTabIntervalFromSettings,Gc as deriveNoteDisplayMarks,Hc as deriveNoteDisplayMarksResolved,eb as displayText,wd as documentOrder,yb as effectiveBorderSide,Z as effectiveContentControlLock,vc as emptyTocPlaceholderParagraphIds,wc as emptyTocSuppressedResultParagraphIds,Dc as enumerateDocumentSections,Ec as enumerateDocumentSectionsBounded,Wa as expandLvlText,_c as filterRefsOnPage,jc as findDrawingOverlayFrameInLayout,Nc as findSeparatorNote,a as fixedPoint,Pa as formatDecimal,Qa as formatDecimalZero,Ua as formatLowerLetter,Sa as formatLowerRoman,Va as formatNumFmt,ib as formatPageNumber,ab as formatRevisionOf,Ta as formatUpperLetter,Ra as formatUpperRoman,Yc as fragmentOwnsAtomOffset,V as fragmentsOfParagraph,Fc as geometryOfSection,s as graphemeBoundaryEpoch,w as graphemeCount,y as graphemeOffsetToUtf16,O as guardOperationSnapshot,k as harfBuzzFontValidator,cc as hitTestPage,rd as hitTestSemantic,ec as hitTestSheet,h as initializeHarfBuzz,r as intlGraphemeBoundary,hd as isCanvasMeasurementAvailable,C as isCumulativeGeometryTrustedFromLineOrigin,bc as isFurniturePoint,B as isGeometryTrustedCaretOffset,i as isHarfBuzzInitialized,q as isIntlSegmenterAvailable,F as isIntlWordSegmenterAvailable,Rc as isMarkerOnlySeparatorNote,qb as isValidStyleId,A as isWholeGraphemeHorizontalBoundary,o as itemizeScriptFontSlots,vd as keyedRangeRects,cd as layoutHeaderFooterStory,Pc as layoutNoteById,Sc as layoutNoteSeparator,Oc as layoutNoteStory,fd as layoutSemanticDocument,W as lineAtPosition,gc as lineEndOffset,T as linesOf,_b as listMarkerBox,fb as measureDisplayText,Wb as mergeListIndent,zd as moveCaret,Ja as nextTabDestination,Mc as normalNotesOf,Ic as noteDisplayMarkMap,Lc as noteLineIdPrefix,Xa as noteMarkKey,Uc as noteSeparatorAreaBox,sc as noteStoryBlocks,ac as pageAtY,md 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,jb as paragraphLayoutKey,ja as paragraphLineSpacing,wb as paragraphMarkDeleted,$a as paragraphMarkRevisionOf,Bc as paragraphSectionNode,xa as paragraphShading,ya as paragraphShadingBox,ia as paragraphSpacing,Ga as paragraphTabStops,xd as paragraphTextFromLayout,Dd as paragraphsInCells,zc as parsePageNumbering,Ac as parseSectionProperties,Ya as projectedNoteMarkText,bd as provisionalNoteMarks,Ab as readBorderSide,Cb as readCellBorders,Ub as readNumPr,Cc as readSectionProperties,Bb as readTableBorders,Nb as readTableStructure,v as resetGraphemeBoundary,Eb as resolveBorderConflict,jd as resolveDefaultSurfaceMeasurer,K as resolveDefaultWordBoundary,Rb as resolveNumberingLevel,va as resolveOoxmlShadingFill,vb as resolveParagraphLayoutInputs,db as resolveRunStyle,Yb as resolveStoryListItems,ua as resolveStrictHexFill,Fb as resolveTableCellBorderGrid,xb as revisionRemovesParagraph,bb as revisionsAreDeletion,_a as revisionsVisible,l as roundFontUnitToFixedPoint,gb as runStylesEqual,t as segmentGraphemes,L as segmentWords,ud as selectionRects,D as semanticHorizontalBoundaries,u as setGraphemeBoundary,wa as shadingFillFromElement,z as shapedHorizontalBoundaries,f as shapedRunComparatorInputs,d as shapingEnvironmentFingerprint,c as shapingEnvironmentFingerprintInputs,hc as spanOffsetX,Ed as spansInCells,Bd as spansInSelection,rc as storyBlocks,Tc as syntheticSeparatorBox,Ka as tabAdvanceWidth,La as tabStopsFingerprint,Hd as tableContextAt,Mb as tableOriginX,uc as tocFieldChromeParagraphIds,id as tryCreateCanvasMeasurer,Y as unionLayoutBoxes,x as utf16OffsetToGrapheme,Xb as walkStoryParagraphs,Ha as withDefaultTabInterval,Vb as withNumberingStyleLinks,Zb as withResolvedListItems,yd as wordBoundary,M as wordSegmentsToGraphemeRecords}from'./chunk-STCITBJK.js';export{a as W15_NAMESPACE_URI,i as activeReviewItem,c as commentBodyText,d as commentInitials,f as firstReviewRange,k as reviewAnchorIndex,l as reviewItemGeometry,b as reviewItemKey,g as reviewItemPositionRank,e as reviewItemRanges,h as reviewItemsAt,j as reviewThreadRootOf}from'./chunk-4WWEDTTE.js';import'./chunk-2DTQDAN7.js';export{d as FontResolutionError,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,Ib as MAX_SDT_NESTING,ff as MAX_TABLE_COLUMNS,j as boundedStructuralFontValidator,Nb as collectFlowBlocks,Mb as contentControlContentChildren,k as createFontResourceSnapshot,e as fontRequestKey,Jb as isContentControl,Kb as isContentControlContent,fg as paragraphOrderOfPart,i as sha256FontBytes}from'./chunk-Y7TA7TPF.js';
1
+ export{fa as AUTO_PARAGRAPH_SPACING_PT,Hb as AUTO_PREFERRED_WIDTH,Jb as CELL_PAD,$ as COMPOUND_BORDER_MIN_GAP_PT,_ as COMPOUND_BORDER_MIN_STROKE_PT,gd as DEFAULT_CANVAS_FONT_STACK,Lb as DEFAULT_CELL_MARGINS,Q as DEFAULT_PAGE_GEOMETRY,cb as DEFAULT_REVISION_DISPLAY_MODE,Ya as DEFAULT_RUN_STYLE,yc as DEFAULT_SECTION_PROPERTIES,Ca as DEFAULT_TAB_INTERVAL_PT,Ba as DEFAULT_TAB_INTERVAL_TWIPS,$b as DEFAULT_VERTICAL_WEIGHT,Sb 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,xc as MAX_DOCUMENT_SECTIONS,Xc as MAX_EACH_PAGE_MARK_CANDIDATES,Pb as MAX_LVL_OVERRIDES,Na as MAX_LVL_TEXT_LENGTH,Ma as MAX_MARKER_TEXT_LENGTH,Jc as MAX_NOTES_LAID_OUT,Kc as MAX_NOTE_FRAGMENTS,Wc as MAX_NOTE_OVERFLOW_PAGES,Vc as MAX_NOTE_REFLOW_ATTEMPTS,Ob as MAX_NUMBERING_DEFINITIONS,ca as MAX_PARAGRAPH_SPACING_PT,ob as MAX_STYLE_BASED_ON_DEPTH,pb as MAX_STYLE_DEFINITIONS,zb as MAX_TABLE_BORDER_STROKES,Ib as MAX_TABLE_NESTING,pc as MAX_TABLE_ROW_FRAGMENTS,Kb 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,qc as TablePaginationError,n as UnsupportedScriptError,E as WORD_SEGMENTER_LOCALE,ta as appliedSpaceBefore,ka as applyLineSpacing,ad as attachNotesToLayout,bb as baselineShiftPtOf,Gb as borderExtentPt,Db as borderWeight,qa as bottomBorderExtentPt,H as boundedFallbackWordSegments,Qb as buildNumberingIndex,Zc as buildPageRefIndex,rb as buildStyleCascadeTable,N as captureOperationSnapshot,qd as caretAt,ic as caretBoxOnLine,od as caretStops,pd as caretStopsForBlocks,sb as cascadeParagraphFormatting,ub as cascadeRunProperties,tb as cascadedBottomBorder,na as cascadedParagraphBorders,Fa as cascadedTabStops,Cd as cellSelectionBetween,Fd as cellSelectionRects,Gd as cellSelectionText,Oa as clampListValue,sa as collapsedSpaceBefore,Ad as compositionAnchor,aa as computeDoubleBorderMetricsPt,$c as computeFootnoteReserves,fc as contentControlAtPoint,sd as contentControlAtSemantic,kd as contentControlBoundaries,td as contentControlsInLayout,X as contentControlsOfLayout,I as createBoundedFallbackWordBoundary,J as createDefaultWordBoundary,ed as createFixedMeasurer,m as createHarfBuzzTextShaper,G as createIntlWordBoundary,nd as createLayoutScheduler,dd as createLayoutSession,Tb as createListCounterState,kb as createParagraphLayoutCache,ld as createShapedMeasurer,e as createShapedRun,b as createShapingEnvironment,Qc as defaultNoteSeparatorRuleStyle,Ia as defaultTabIntervalFromSettings,Gc as deriveNoteDisplayMarks,Hc as deriveNoteDisplayMarksResolved,_a as displayText,wd as documentOrder,yb as effectiveBorderSide,Z as effectiveContentControlLock,vc as emptyTocPlaceholderParagraphIds,wc as emptyTocSuppressedResultParagraphIds,Dc as enumerateDocumentSections,Ec as enumerateDocumentSectionsBounded,Wa as expandLvlText,_c as filterRefsOnPage,jc as findDrawingOverlayFrameInLayout,Nc as findSeparatorNote,a as fixedPoint,Pa as formatDecimal,Qa as formatDecimalZero,Ua as formatLowerLetter,Sa as formatLowerRoman,Va as formatNumFmt,Xa as formatPageNumber,fb as formatRevisionOf,Ta as formatUpperLetter,Ra as formatUpperRoman,Yc as fragmentOwnsAtomOffset,V as fragmentsOfParagraph,Fc as geometryOfSection,s as graphemeBoundaryEpoch,w as graphemeCount,y as graphemeOffsetToUtf16,O as guardOperationSnapshot,k as harfBuzzFontValidator,cc as hitTestPage,rd as hitTestSemantic,ec as hitTestSheet,h as initializeHarfBuzz,r as intlGraphemeBoundary,hd as isCanvasMeasurementAvailable,C as isCumulativeGeometryTrustedFromLineOrigin,bc as isFurniturePoint,B as isGeometryTrustedCaretOffset,i as isHarfBuzzInitialized,q as isIntlSegmenterAvailable,F as isIntlWordSegmenterAvailable,Rc as isMarkerOnlySeparatorNote,qb as isValidStyleId,A as isWholeGraphemeHorizontalBoundary,o as itemizeScriptFontSlots,vd as keyedRangeRects,cd as layoutHeaderFooterStory,Pc as layoutNoteById,Sc as layoutNoteSeparator,Oc as layoutNoteStory,fd as layoutSemanticDocument,W as lineAtPosition,gc as lineEndOffset,T as linesOf,_b as listMarkerBox,$a as measureDisplayText,Wb as mergeListIndent,zd as moveCaret,Ja as nextTabDestination,Mc as normalNotesOf,Ic as noteDisplayMarkMap,Lc as noteLineIdPrefix,hb as noteMarkKey,Uc as noteSeparatorAreaBox,sc as noteStoryBlocks,ac as pageAtY,md 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,jb as paragraphLayoutKey,ja as paragraphLineSpacing,wb as paragraphMarkDeleted,eb as paragraphMarkRevisionOf,Bc as paragraphSectionNode,xa as paragraphShading,ya as paragraphShadingBox,ia as paragraphSpacing,Ga as paragraphTabStops,xd as paragraphTextFromLayout,Dd as paragraphsInCells,zc as parsePageNumbering,Ac as parseSectionProperties,ib as projectedNoteMarkText,bd as provisionalNoteMarks,Ab as readBorderSide,Cb as readCellBorders,Ub as readNumPr,Cc as readSectionProperties,Bb as readTableBorders,Nb as readTableStructure,v as resetGraphemeBoundary,Eb as resolveBorderConflict,jd as resolveDefaultSurfaceMeasurer,K as resolveDefaultWordBoundary,Rb as resolveNumberingLevel,va as resolveOoxmlShadingFill,vb as resolveParagraphLayoutInputs,Za as resolveRunStyle,Yb as resolveStoryListItems,ua as resolveStrictHexFill,Fb as resolveTableCellBorderGrid,xb as revisionRemovesParagraph,gb as revisionsAreDeletion,db as revisionsVisible,l as roundFontUnitToFixedPoint,ab as runStylesEqual,t as segmentGraphemes,L as segmentWords,ud as selectionRects,D as semanticHorizontalBoundaries,u as setGraphemeBoundary,wa as shadingFillFromElement,z as shapedHorizontalBoundaries,f as shapedRunComparatorInputs,d as shapingEnvironmentFingerprint,c as shapingEnvironmentFingerprintInputs,hc as spanOffsetX,Ed as spansInCells,Bd as spansInSelection,rc as storyBlocks,Tc as syntheticSeparatorBox,Ka as tabAdvanceWidth,La as tabStopsFingerprint,Hd as tableContextAt,Mb as tableOriginX,uc as tocFieldChromeParagraphIds,id as tryCreateCanvasMeasurer,Y as unionLayoutBoxes,x as utf16OffsetToGrapheme,Xb as walkStoryParagraphs,Ha as withDefaultTabInterval,Vb as withNumberingStyleLinks,Zb as withResolvedListItems,yd as wordBoundary,M as wordSegmentsToGraphemeRecords}from'./chunk-C24AINST.js';export{a as W15_NAMESPACE_URI,i as activeReviewItem,c as commentBodyText,d as commentInitials,f as firstReviewRange,k as reviewAnchorIndex,l as reviewItemGeometry,b as reviewItemKey,g as reviewItemPositionRank,e as reviewItemRanges,h as reviewItemsAt,j as reviewThreadRootOf}from'./chunk-4WWEDTTE.js';import'./chunk-MO7GAUO7.js';export{d as FontResolutionError,c as HARD_MAX_AGGREGATE_FONT_BYTES,a as HARD_MAX_FONT_BYTES,b as HARD_MAX_FONT_SOURCES,Ib as MAX_SDT_NESTING,hf as MAX_TABLE_COLUMNS,j as boundedStructuralFontValidator,Nb as collectFlowBlocks,Mb as contentControlContentChildren,k as createFontResourceSnapshot,e as fontRequestKey,Jb as isContentControl,Kb as isContentControlContent,hg as paragraphOrderOfPart,i as sha256FontBytes}from'./chunk-5OSFUHGF.js';
package/dist/output.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var chunk3JKQE4QJ_cjs=require('./chunk-3JKQE4QJ.cjs');require('./chunk-TSXT537P.cjs'),require('./chunk-BS554B6D.cjs'),require('./chunk-JQFDLZXQ.cjs'),require('./chunk-BZK64YU3.cjs');Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunk3JKQE4QJ_cjs.e}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunk3JKQE4QJ_cjs.d}});
1
+ 'use strict';var chunkEUTHPVTG_cjs=require('./chunk-EUTHPVTG.cjs');require('./chunk-VXEF32A5.cjs'),require('./chunk-BS554B6D.cjs'),require('./chunk-T2LVH6D3.cjs'),require('./chunk-UAOJHPQ4.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkEUTHPVTG_cjs.d}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkEUTHPVTG_cjs.f}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkEUTHPVTG_cjs.e}});
package/dist/output.d.cts CHANGED
@@ -1,108 +1,11 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-COVFW5aS.cjs';
2
- import { D as DrawingPaintStrings, P as PaintImageUrlPort } from './semantic-paint-drawings-x8g44lD_.cjs';
1
+ export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, p as paintSemanticLayout } from './semantic-paint-DdGGra4m.cjs';
2
+ import { S as SemanticLayout } from './semantic-records-DC6V1U3T.cjs';
3
+ import './image-resources-DwpNnTg3.cjs';
3
4
  import './tree-op-types-UOXlRUqQ.cjs';
4
5
  import './ooxml-tree-BU0e3DVi.cjs';
5
- import './image-resources-DwpNnTg3.cjs';
6
6
  import './ooxml-package-CR5us6ad.cjs';
7
7
  import './revision-projection-72ZApe-g.cjs';
8
8
 
9
- /**
10
- * How a layout is painted into DOM. Every field is optional.
11
- *
12
- * The painted pages ARE the editable surface, so everything here is presentation-only — nothing
13
- * set through these options is ever serialised back into the document.
14
- */
15
- interface PaintOptions {
16
- /** Points to CSS pixels. 96/72 renders a point as a CSS point at 100% zoom. */
17
- readonly scale?: number;
18
- /** Generated paragraphs that paint as non-editable navigation surfaces. */
19
- readonly readOnlyParagraphIds?: ReadonlySet<string>;
20
- /**
21
- * Empty-TOC begin paragraphs that paint subtle identifiable furniture. Paint-only — never
22
- * serialised into the document.
23
- */
24
- readonly emptyTocPlaceholderIds?: ReadonlySet<string>;
25
- /** Marks painted pages as presentational, so assistive tech reads the editable projection. */
26
- readonly ariaHidden?: boolean;
27
- /**
28
- * Page indices to build in detail (task 9.4).
29
- *
30
- * Omitted means all of them. A page left out keeps its size and position but no content,
31
- * so the document's height and page count are unchanged and scrolling to it reveals it
32
- * instead of reflowing everything underneath.
33
- */
34
- readonly materialize?: ReadonlySet<number>;
35
- /**
36
- * Family-alias lookup for fonts the host registered on behalf of THIS document (see
37
- * {@link PaintContext.fontAlias}). Painted runs emit the alias ahead of the declared
38
- * family, so a file can never shadow a family name the host page uses.
39
- */
40
- readonly fontAlias?: (family: string) => string | undefined;
41
- /** See {@link PaintContext.defaultFontFamily}. */
42
- readonly defaultFontFamily?: string;
43
- /**
44
- * Relationship id of the header/footer story currently open for editing.
45
- *
46
- * When set, the matching `[data-docx-hf]` container is editable and every body
47
- * `.docx-page-content` box is inert; all other furniture stays read-only.
48
- */
49
- readonly activeHeaderFooterRId?: string;
50
- /**
51
- * Sheet that hosts the active visual occurrence of a shared furniture part.
52
- *
53
- * Required with {@link activeHeaderFooterRId} so only one painted copy receives
54
- * `data-docx-hf-active` / the engine caret when the same rId appears on many pages.
55
- */
56
- readonly activeHeaderFooterPageIndex?: number;
57
- /**
58
- * On-demand content-control boundary chrome (show-all and/or caret-entry).
59
- *
60
- * Furniture only — never contributes layout records or changes page geometry. Omitted or
61
- * empty means no control chrome is painted. Folded into the paint-reuse key so a toggle
62
- * rebuilds furniture without a layout pass.
63
- */
64
- readonly contentControlChrome?: {
65
- readonly showAll?: boolean;
66
- /** Control ids whose boundaries are visible because the caret is inside them. */
67
- readonly activeIds?: ReadonlySet<string>;
68
- /**
69
- * Control ids whose boundaries are visible because the pointer is over them.
70
- * Used for TOC hover chrome without projecting a persistent caret-active state.
71
- *
72
- * Deliberately OUTSIDE the paint-reuse key: hover must never rebuild a page. The
73
- * surface toggles `data-hover` / `data-boundary-visible` on the painted chrome it
74
- * already has, and this set only tells a page that rebuilds for some OTHER reason
75
- * which of its controls is currently under the pointer.
76
- */
77
- readonly hoverIds?: ReadonlySet<string>;
78
- /**
79
- * Control ids whose boundary furniture is painted by something else.
80
- *
81
- * An empty TOC paints its own placeholder box on the begin paragraph, so drawing the
82
- * control boundary as well left two rounded rectangles (of different heights) plus a
83
- * label chip stacked over one empty region.
84
- */
85
- readonly suppressedIds?: ReadonlySet<string>;
86
- /** Checkbox control ids whose canonical `w14:checked` state is on. */
87
- readonly checkedIds?: ReadonlySet<string>;
88
- /** Non-SDT structured regions that intentionally reuse content-control chrome. */
89
- readonly additionalBoundaries?: readonly ContentControlBoundaryRecord[];
90
- /** Control ids that represent TOC regions (hover-only chrome; never caret-sticky). */
91
- readonly tocControlIds?: ReadonlySet<string>;
92
- };
93
- readonly drawingStrings?: DrawingPaintStrings;
94
- readonly imageUrlPort?: PaintImageUrlPort;
95
- }
96
-
97
- /**
98
- * Paint a whole layout into a container, reusing the pages that did not change.
99
- *
100
- * The DOM is built with `createElement` and `textContent` only — no file-derived string is
101
- * ever parsed as markup — and stray children (nothing this module painted) are removed, so
102
- * the container's content is always exactly the painted pages.
103
- */
104
- declare function paintSemanticLayout(container: HTMLElement, layout: SemanticLayout, options?: PaintOptions): void;
105
-
106
9
  /** A rectangle in page-content coordinates, on a named page. */
107
10
  interface OverlayRect {
108
11
  readonly pageIndex: number;
@@ -155,4 +58,4 @@ interface SelectionOverlayOptions {
155
58
  */
156
59
  declare function paintSelectionOverlay(layer: HTMLElement, layout: SemanticLayout, rects: readonly OverlayRect[], options: SelectionOverlayOptions): void;
157
60
 
158
- export { type OverlayRect, type PaintOptions, type SelectionOverlayOptions, paintSelectionOverlay, paintSemanticLayout };
61
+ export { type OverlayRect, type SelectionOverlayOptions, paintSelectionOverlay };
package/dist/output.d.ts CHANGED
@@ -1,108 +1,11 @@
1
- import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-zTC0_1zi.js';
2
- import { D as DrawingPaintStrings, P as PaintImageUrlPort } from './semantic-paint-drawings-B5Wk2so5.js';
1
+ export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, p as paintSemanticLayout } from './semantic-paint-BBNaqr1s.js';
2
+ import { S as SemanticLayout } from './semantic-records-BC4bIKKL.js';
3
+ import './image-resources-C_YnqPhn.js';
3
4
  import './tree-op-types-DWLCllG7.js';
4
5
  import './ooxml-tree-BU0e3DVi.js';
5
- import './image-resources-C_YnqPhn.js';
6
6
  import './ooxml-package-D_CtywTW.js';
7
7
  import './revision-projection-DHAkcD_L.js';
8
8
 
9
- /**
10
- * How a layout is painted into DOM. Every field is optional.
11
- *
12
- * The painted pages ARE the editable surface, so everything here is presentation-only — nothing
13
- * set through these options is ever serialised back into the document.
14
- */
15
- interface PaintOptions {
16
- /** Points to CSS pixels. 96/72 renders a point as a CSS point at 100% zoom. */
17
- readonly scale?: number;
18
- /** Generated paragraphs that paint as non-editable navigation surfaces. */
19
- readonly readOnlyParagraphIds?: ReadonlySet<string>;
20
- /**
21
- * Empty-TOC begin paragraphs that paint subtle identifiable furniture. Paint-only — never
22
- * serialised into the document.
23
- */
24
- readonly emptyTocPlaceholderIds?: ReadonlySet<string>;
25
- /** Marks painted pages as presentational, so assistive tech reads the editable projection. */
26
- readonly ariaHidden?: boolean;
27
- /**
28
- * Page indices to build in detail (task 9.4).
29
- *
30
- * Omitted means all of them. A page left out keeps its size and position but no content,
31
- * so the document's height and page count are unchanged and scrolling to it reveals it
32
- * instead of reflowing everything underneath.
33
- */
34
- readonly materialize?: ReadonlySet<number>;
35
- /**
36
- * Family-alias lookup for fonts the host registered on behalf of THIS document (see
37
- * {@link PaintContext.fontAlias}). Painted runs emit the alias ahead of the declared
38
- * family, so a file can never shadow a family name the host page uses.
39
- */
40
- readonly fontAlias?: (family: string) => string | undefined;
41
- /** See {@link PaintContext.defaultFontFamily}. */
42
- readonly defaultFontFamily?: string;
43
- /**
44
- * Relationship id of the header/footer story currently open for editing.
45
- *
46
- * When set, the matching `[data-docx-hf]` container is editable and every body
47
- * `.docx-page-content` box is inert; all other furniture stays read-only.
48
- */
49
- readonly activeHeaderFooterRId?: string;
50
- /**
51
- * Sheet that hosts the active visual occurrence of a shared furniture part.
52
- *
53
- * Required with {@link activeHeaderFooterRId} so only one painted copy receives
54
- * `data-docx-hf-active` / the engine caret when the same rId appears on many pages.
55
- */
56
- readonly activeHeaderFooterPageIndex?: number;
57
- /**
58
- * On-demand content-control boundary chrome (show-all and/or caret-entry).
59
- *
60
- * Furniture only — never contributes layout records or changes page geometry. Omitted or
61
- * empty means no control chrome is painted. Folded into the paint-reuse key so a toggle
62
- * rebuilds furniture without a layout pass.
63
- */
64
- readonly contentControlChrome?: {
65
- readonly showAll?: boolean;
66
- /** Control ids whose boundaries are visible because the caret is inside them. */
67
- readonly activeIds?: ReadonlySet<string>;
68
- /**
69
- * Control ids whose boundaries are visible because the pointer is over them.
70
- * Used for TOC hover chrome without projecting a persistent caret-active state.
71
- *
72
- * Deliberately OUTSIDE the paint-reuse key: hover must never rebuild a page. The
73
- * surface toggles `data-hover` / `data-boundary-visible` on the painted chrome it
74
- * already has, and this set only tells a page that rebuilds for some OTHER reason
75
- * which of its controls is currently under the pointer.
76
- */
77
- readonly hoverIds?: ReadonlySet<string>;
78
- /**
79
- * Control ids whose boundary furniture is painted by something else.
80
- *
81
- * An empty TOC paints its own placeholder box on the begin paragraph, so drawing the
82
- * control boundary as well left two rounded rectangles (of different heights) plus a
83
- * label chip stacked over one empty region.
84
- */
85
- readonly suppressedIds?: ReadonlySet<string>;
86
- /** Checkbox control ids whose canonical `w14:checked` state is on. */
87
- readonly checkedIds?: ReadonlySet<string>;
88
- /** Non-SDT structured regions that intentionally reuse content-control chrome. */
89
- readonly additionalBoundaries?: readonly ContentControlBoundaryRecord[];
90
- /** Control ids that represent TOC regions (hover-only chrome; never caret-sticky). */
91
- readonly tocControlIds?: ReadonlySet<string>;
92
- };
93
- readonly drawingStrings?: DrawingPaintStrings;
94
- readonly imageUrlPort?: PaintImageUrlPort;
95
- }
96
-
97
- /**
98
- * Paint a whole layout into a container, reusing the pages that did not change.
99
- *
100
- * The DOM is built with `createElement` and `textContent` only — no file-derived string is
101
- * ever parsed as markup — and stray children (nothing this module painted) are removed, so
102
- * the container's content is always exactly the painted pages.
103
- */
104
- declare function paintSemanticLayout(container: HTMLElement, layout: SemanticLayout, options?: PaintOptions): void;
105
-
106
9
  /** A rectangle in page-content coordinates, on a named page. */
107
10
  interface OverlayRect {
108
11
  readonly pageIndex: number;
@@ -155,4 +58,4 @@ interface SelectionOverlayOptions {
155
58
  */
156
59
  declare function paintSelectionOverlay(layer: HTMLElement, layout: SemanticLayout, rects: readonly OverlayRect[], options: SelectionOverlayOptions): void;
157
60
 
158
- export { type OverlayRect, type PaintOptions, type SelectionOverlayOptions, paintSelectionOverlay, paintSemanticLayout };
61
+ export { type OverlayRect, type SelectionOverlayOptions, paintSelectionOverlay };
package/dist/output.js CHANGED
@@ -1 +1 @@
1
- export{e as paintSelectionOverlay,d as paintSemanticLayout}from'./chunk-QRAUDDVY.js';import'./chunk-STCITBJK.js';import'./chunk-4WWEDTTE.js';import'./chunk-2DTQDAN7.js';import'./chunk-Y7TA7TPF.js';
1
+ export{d as DEFAULT_FIELD_SHADING,f as paintSelectionOverlay,e as paintSemanticLayout}from'./chunk-NCGKMEKU.js';import'./chunk-C24AINST.js';import'./chunk-4WWEDTTE.js';import'./chunk-MO7GAUO7.js';import'./chunk-5OSFUHGF.js';
@@ -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, S as SemanticLayout, C as ContentControlBoundaryRecord, a as StyleSpanRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-COVFW5aS.cjs';
2
+ import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, a as StyleSpanRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-DC6V1U3T.cjs';
3
3
  import { R as RevisionDisplayMode } from './revision-projection-72ZApe-g.cjs';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-DqcEonqD.cjs';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-B4HrJFQ2.cjs';
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.js';
2
- import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, a as StyleSpanRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-zTC0_1zi.js';
2
+ import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, a as StyleSpanRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-BC4bIKKL.js';
3
3
  import { R as RevisionDisplayMode } from './revision-projection-DHAkcD_L.js';
4
- import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-CXH2wFqi.js';
4
+ import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-unGpRNCk.js';
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-COVFW5aS.cjs';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-DC6V1U3T.cjs';
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-zTC0_1zi.js';
1
+ import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-BC4bIKKL.js';
2
2
 
3
3
  /** A caret position in the model. */
4
4
  interface SemanticPosition {