@betteroffice/docx 0.0.3 → 0.1.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 (73) hide show
  1. package/README.md +22 -8
  2. package/dist/chunk-24DL53QL.mjs +1 -0
  3. package/dist/chunk-5F6DLQZP.mjs +1 -0
  4. package/dist/chunk-BUZ2X5CT.mjs +16 -0
  5. package/dist/chunk-CTBUQRYQ.mjs +1 -0
  6. package/dist/{chunk-B4IR6YP4.mjs → chunk-GHEHBYQK.mjs} +1 -1
  7. package/dist/{chunk-NJHOPXZW.mjs → chunk-HLDJMU3R.mjs} +1 -1
  8. package/dist/chunk-HTDNSQ44.mjs +1 -0
  9. package/dist/{chunk-IFT6DUJX.mjs → chunk-LTVVQMHB.mjs} +1 -1
  10. package/dist/chunk-PI2I3TO5.mjs +57 -0
  11. package/dist/chunk-TMHG7OAZ.mjs +1 -0
  12. package/dist/chunk-VRGUAKOC.mjs +1 -0
  13. package/dist/collaboration/index.d.mts +32 -8
  14. package/dist/collaboration/index.mjs +1 -1
  15. package/dist/{content-MOZ6hKP4.d.mts → content-DrqzbIr7.d.mts} +582 -666
  16. package/dist/core.d.mts +7 -7
  17. package/dist/core.mjs +1 -1
  18. package/dist/{displayListQueries-BJlo7Jkz.d.mts → displayListQueries-DGDR-OWc.d.mts} +98 -50
  19. package/dist/docx/index.d.mts +5 -5
  20. package/dist/docx/index.mjs +1 -1
  21. package/dist/editor/index.d.mts +8 -8
  22. package/dist/{fontLoader-aSewHMKF.d.mts → fontLoader-DnixuYST.d.mts} +127 -2
  23. package/dist/{formatting-D1EPSaJP.d.mts → formatting-BqrFPeev.d.mts} +85 -203
  24. package/dist/{frameDelta-D965X8yK.d.mts → frameDelta-DMgR8n13.d.mts} +17 -10
  25. package/dist/generated/edit/docx_edit_bg.wasm +0 -0
  26. package/dist/generated/layout/docx_layout_bg.wasm +0 -0
  27. package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
  28. package/dist/generated/parse/docx_parse_bg.wasm +0 -0
  29. package/dist/{index-Dx4Z3lkz.d.mts → index-ImoMd0Ju.d.mts} +97 -67
  30. package/dist/layout/index.d.mts +40 -12
  31. package/dist/layout/index.mjs +1 -1
  32. package/dist/layout/pagination/index.d.mts +4 -4
  33. package/dist/layout/pagination/index.mjs +1 -1
  34. package/dist/layout/render/index.d.mts +33 -77
  35. package/dist/layout/render/index.mjs +1 -1
  36. package/dist/plugin-api/RenderedDomContext.d.mts +7 -7
  37. package/dist/plugin-api/index.d.mts +3 -3
  38. package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
  39. package/dist/{rustDisplayList-BRuZBqdL.d.mts → rustDisplayList-B9dQoLHI.d.mts} +79 -50
  40. package/dist/{rustMeasureSource-D1KsQvVC.d.mts → rustMeasureSource-C0EZB055.d.mts} +5 -2
  41. package/dist/{selectiveSave-CVoajSKE.d.mts → selectiveSave-CRh-_Y_C.d.mts} +3 -3
  42. package/dist/styles/index.d.mts +3 -3
  43. package/dist/{styles-Dn_o3Vo5.d.mts → styles-CMybYYHS.d.mts} +1 -1
  44. package/dist/types/content.d.mts +2 -2
  45. package/dist/types/document.d.mts +7 -7
  46. package/dist/{types-BfqUl2h_.d.mts → types-CXLxVF1t.d.mts} +27 -23
  47. package/dist/utils/comments.d.mts +2 -2
  48. package/dist/utils/index.d.mts +11 -13
  49. package/dist/utils/index.mjs +1 -1
  50. package/dist/utils/stylePreview.d.mts +2 -2
  51. package/dist/utils/units.d.mts +4 -34
  52. package/dist/utils/units.mjs +1 -1
  53. package/dist/wasm-CJHQHBDE.mjs +1 -0
  54. package/dist/wasm-T2CRCO7S.mjs +1 -0
  55. package/dist/wasm-edit.d.mts +524 -168
  56. package/dist/wasm-edit.mjs +1 -1
  57. package/dist/wasm-layout.d.mts +35 -28
  58. package/dist/wasm-layout.mjs +1 -1
  59. package/dist/wasm-opc.mjs +1 -1
  60. package/dist/wasm-parse.mjs +1 -1
  61. package/dist/yrs/index.d.mts +6 -6
  62. package/dist/yrs/index.mjs +1 -1
  63. package/dist/yrs/residentEngineWorker.mjs +1 -1
  64. package/package.json +19 -3
  65. package/dist/chunk-3UBMCDME.mjs +0 -1
  66. package/dist/chunk-AEQOEQJ7.mjs +0 -57
  67. package/dist/chunk-AZ52IWB6.mjs +0 -16
  68. package/dist/chunk-GGEGIQRK.mjs +0 -1
  69. package/dist/chunk-T4EZMUXM.mjs +0 -1
  70. package/dist/chunk-WON6K4FY.mjs +0 -1
  71. package/dist/chunk-Y7RUNRU2.mjs +0 -1
  72. package/dist/wasm-DO3BUV7C.mjs +0 -1
  73. package/dist/wasm-NWXX4H5G.mjs +0 -1
@@ -1,399 +1,213 @@
1
- import { C as ColorValue, P as ParagraphFormatting, a as TextFormatting, b as TableFormatting, c as TableRowFormatting, d as TableCellFormatting, B as BorderSpec, f as ThemeColorSlot } from './formatting-D1EPSaJP.mjs';
1
+ import { C as ColorValue, y as ThemeColorSlot, a as ParagraphFormatting, b as TextFormatting, c as TableFormatting, d as TableRowFormatting, e as TableCellFormatting, B as BorderSpec, m as ShapeType, k as ShapeFill, l as ShapeOutline, D as ShapeTextBody$1, P as PresetGeometryPathCommand } from './formatting-BqrFPeev.mjs';
2
2
  import { WrapType } from './docx/wrapTypes.mjs';
3
3
 
4
- /**
5
- * DrawingML shape primitives — preset shape types, fill/outline/text-body
6
- * types, and the pure a:-namespace parsers for gradients, line ends,
7
- * transforms (a:xfrm), and preset geometry.
8
- */
9
-
10
- /**
11
- * Shape types
12
- *
13
- * @public
14
- */
15
- type ShapeType = 'rect' | 'roundRect' | 'ellipse' | 'triangle' | 'rtTriangle' | 'parallelogram' | 'trapezoid' | 'pentagon' | 'hexagon' | 'heptagon' | 'octagon' | 'decagon' | 'dodecagon' | 'star4' | 'star5' | 'star6' | 'star7' | 'star8' | 'star10' | 'star12' | 'star16' | 'star24' | 'star32' | 'line' | 'straightConnector1' | 'bentConnector2' | 'bentConnector3' | 'bentConnector4' | 'bentConnector5' | 'curvedConnector2' | 'curvedConnector3' | 'curvedConnector4' | 'curvedConnector5' | 'rightArrow' | 'leftArrow' | 'upArrow' | 'downArrow' | 'leftRightArrow' | 'upDownArrow' | 'quadArrow' | 'leftRightUpArrow' | 'bentArrow' | 'uturnArrow' | 'leftUpArrow' | 'bentUpArrow' | 'curvedRightArrow' | 'curvedLeftArrow' | 'curvedUpArrow' | 'curvedDownArrow' | 'stripedRightArrow' | 'notchedRightArrow' | 'homePlate' | 'chevron' | 'rightArrowCallout' | 'downArrowCallout' | 'leftArrowCallout' | 'upArrowCallout' | 'leftRightArrowCallout' | 'quadArrowCallout' | 'circularArrow' | 'flowChartProcess' | 'flowChartAlternateProcess' | 'flowChartDecision' | 'flowChartInputOutput' | 'flowChartPredefinedProcess' | 'flowChartInternalStorage' | 'flowChartDocument' | 'flowChartMultidocument' | 'flowChartTerminator' | 'flowChartPreparation' | 'flowChartManualInput' | 'flowChartManualOperation' | 'flowChartConnector' | 'flowChartOffpageConnector' | 'flowChartPunchedCard' | 'flowChartPunchedTape' | 'flowChartSummingJunction' | 'flowChartOr' | 'flowChartCollate' | 'flowChartSort' | 'flowChartExtract' | 'flowChartMerge' | 'flowChartOnlineStorage' | 'flowChartDelay' | 'flowChartMagneticTape' | 'flowChartMagneticDisk' | 'flowChartMagneticDrum' | 'flowChartDisplay' | 'wedgeRectCallout' | 'wedgeRoundRectCallout' | 'wedgeEllipseCallout' | 'cloudCallout' | 'borderCallout1' | 'borderCallout2' | 'borderCallout3' | 'accentCallout1' | 'accentCallout2' | 'accentCallout3' | 'callout1' | 'callout2' | 'callout3' | 'accentBorderCallout1' | 'accentBorderCallout2' | 'accentBorderCallout3' | 'actionButtonBlank' | 'actionButtonHome' | 'actionButtonHelp' | 'actionButtonInformation' | 'actionButtonBackPrevious' | 'actionButtonForwardNext' | 'actionButtonBeginning' | 'actionButtonEnd' | 'actionButtonReturn' | 'actionButtonDocument' | 'actionButtonSound' | 'actionButtonMovie' | 'irregularSeal1' | 'irregularSeal2' | 'frame' | 'halfFrame' | 'corner' | 'diagStripe' | 'chord' | 'arc' | 'bracketPair' | 'bracePair' | 'leftBracket' | 'rightBracket' | 'leftBrace' | 'rightBrace' | 'can' | 'cube' | 'bevel' | 'donut' | 'noSmoking' | 'blockArc' | 'foldedCorner' | 'smileyFace' | 'heart' | 'lightningBolt' | 'sun' | 'moon' | 'cloud' | 'snip1Rect' | 'snip2SameRect' | 'snip2DiagRect' | 'snipRoundRect' | 'round1Rect' | 'round2SameRect' | 'round2DiagRect' | 'plaque' | 'teardrop' | 'mathPlus' | 'mathMinus' | 'mathMultiply' | 'mathDivide' | 'mathEqual' | 'mathNotEqual' | 'gear6' | 'gear9' | 'funnel' | 'pieWedge' | 'pie' | 'leftCircularArrow' | 'leftRightCircularArrow' | 'swooshArrow' | 'textBox';
16
- /**
17
- * Shape fill type
18
- *
19
- * @public
20
- */
21
- interface ShapeFill {
22
- type: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture';
23
- /** Solid fill color */
4
+ interface ShapeFillPaint {
5
+ kind?: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture' | 'theme';
24
6
  color?: ColorValue;
25
- /** Gradient stops for gradient fill */
26
- gradient?: {
27
- type: 'linear' | 'radial' | 'rectangular' | 'path';
28
- angle?: number;
29
- stops: Array<{
30
- position: number;
31
- color: ColorValue;
32
- }>;
7
+ themeColor?: ThemeColorSlot;
8
+ gradientType?: 'linear' | 'path' | 'radial' | 'rectangular';
9
+ angle?: number;
10
+ stops?: Array<{
11
+ position?: number;
12
+ color?: ColorValue;
13
+ }>;
14
+ pathShape?: 'circle' | 'rect' | 'shape';
15
+ focusRect?: {
16
+ left?: number;
17
+ top?: number;
18
+ right?: number;
19
+ bottom?: number;
20
+ };
21
+ rotateWithShape?: boolean;
22
+ patternPreset?: string;
23
+ foregroundColor?: ColorValue;
24
+ backgroundColor?: ColorValue;
25
+ picture?: Image;
26
+ themeRefIndex?: number;
27
+ srcRect?: {
28
+ left?: number;
29
+ top?: number;
30
+ right?: number;
31
+ bottom?: number;
32
+ };
33
+ fillMode?: 'stretch' | 'tile';
34
+ tile?: {
35
+ offsetX?: number;
36
+ offsetY?: number;
37
+ scaleX?: number;
38
+ scaleY?: number;
39
+ alignment?: string;
40
+ flip?: 'none' | 'x' | 'y' | 'xy';
41
+ };
42
+ stretchRect?: {
43
+ left?: number;
44
+ top?: number;
45
+ right?: number;
46
+ bottom?: number;
33
47
  };
48
+ pictureOpacity?: number;
34
49
  }
35
- /**
36
- * Shape outline/stroke
37
- *
38
- * @public
39
- */
40
- interface ShapeOutline {
41
- /** Line width in EMUs */
50
+ interface ShapeStrokePaint {
51
+ fill?: ShapeFillPaint;
42
52
  width?: number;
43
- /** Line color */
44
- color?: ColorValue;
45
- /** Line style */
46
- style?: 'solid' | 'dot' | 'dash' | 'lgDash' | 'dashDot' | 'lgDashDot' | 'lgDashDotDot' | 'sysDot' | 'sysDash' | 'sysDashDot' | 'sysDashDotDot';
47
- /** Line cap */
53
+ dash?: string;
54
+ customDash?: number[];
55
+ compound?: 'single' | 'double' | 'thickThin' | 'thinThick' | 'triple';
56
+ alignment?: 'center' | 'inset';
48
57
  cap?: 'flat' | 'round' | 'square';
49
- /** Line join */
50
58
  join?: 'bevel' | 'miter' | 'round';
51
- /** Head arrow */
59
+ miterLimit?: number;
52
60
  headEnd?: {
53
- type: 'none' | 'triangle' | 'stealth' | 'diamond' | 'oval' | 'arrow';
54
- width?: 'sm' | 'med' | 'lg';
55
- length?: 'sm' | 'med' | 'lg';
61
+ type?: string;
62
+ width?: string;
63
+ length?: string;
56
64
  };
57
- /** Tail arrow */
58
65
  tailEnd?: {
59
- type: 'none' | 'triangle' | 'stealth' | 'diamond' | 'oval' | 'arrow';
60
- width?: 'sm' | 'med' | 'lg';
61
- length?: 'sm' | 'med' | 'lg';
66
+ type?: string;
67
+ width?: string;
68
+ length?: string;
62
69
  };
70
+ themeRefIndex?: number;
63
71
  }
64
- /**
65
- * Text body inside a shape.
66
- *
67
- * `TContent` is the host's paragraph/content type — DrawingML itself does
68
- * not prescribe what a paragraph looks like (docx uses `w:p`, pptx `a:p`).
69
- *
70
- * @public
71
- */
72
- interface ShapeTextBody$1<TContent = unknown> {
73
- /** Text direction */
74
- vertical?: boolean;
75
- /** Rotation */
72
+ interface ShapeEffect {
73
+ kind?: 'shadow' | 'glow' | 'reflection' | 'softEdge' | 'blur' | 'unknown';
74
+ color?: ColorValue;
75
+ opacity?: number;
76
+ blurRadius?: number;
77
+ distance?: number;
78
+ direction?: number;
79
+ size?: number;
80
+ rawName?: string;
81
+ }
82
+ interface ShapeTextBodyProperties {
83
+ vertical?: 'horizontal' | 'vertical' | 'vertical270' | 'wordArtVertical' | 'eastAsianVertical' | 'mongolianVertical';
76
84
  rotation?: number;
77
- /** Anchor/vertical alignment */
85
+ upright?: boolean;
78
86
  anchor?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
79
- /** Anchor center */
80
87
  anchorCenter?: boolean;
81
- /** Auto fit */
82
- autoFit?: 'none' | 'normal' | 'shape';
83
- /** Text margins */
88
+ columns?: number;
89
+ columnSpacing?: number;
90
+ wrap?: 'square' | 'none';
91
+ horizontalOverflow?: 'clip' | 'overflow';
92
+ verticalOverflow?: 'clip' | 'ellipsis' | 'overflow';
84
93
  margins?: {
85
94
  top?: number;
86
95
  bottom?: number;
87
96
  left?: number;
88
97
  right?: number;
89
98
  };
90
- /** Paragraphs inside the shape */
91
- content: TContent[];
99
+ autoFit?: 'none' | 'normal' | 'shape';
100
+ fontScale?: number;
101
+ lineSpacingReduction?: number;
102
+ fromWordArt?: boolean;
103
+ presetTextWarp?: string;
104
+ }
105
+ interface DrawingSceneNode {
106
+ kind?: 'shape' | 'group' | 'canvas' | 'picture' | 'chart' | 'graphicFrame' | 'contentPart';
107
+ id?: string;
108
+ name?: string;
109
+ shape?: Shape;
110
+ image?: Image;
111
+ chart?: Chart;
112
+ children?: DrawingSceneNode[];
113
+ transform?: {
114
+ offsetX?: number;
115
+ offsetY?: number;
116
+ width?: number;
117
+ height?: number;
118
+ childOffsetX?: number;
119
+ childOffsetY?: number;
120
+ childWidth?: number;
121
+ childHeight?: number;
122
+ rotation?: number;
123
+ flipH?: boolean;
124
+ flipV?: boolean;
125
+ };
126
+ fill?: ShapeFillPaint;
127
+ effects?: ShapeEffect[];
128
+ relationshipId?: string;
129
+ }
130
+ interface DrawingScene {
131
+ version?: number;
132
+ root?: DrawingSceneNode;
133
+ title?: string;
134
+ description?: string;
135
+ decorative?: boolean;
136
+ hidden?: boolean;
92
137
  }
93
- /**
94
- * Normalized DrawingML preset-geometry path command.
95
- *
96
- * Coordinates are shape-local fractions in the `[0, 1]` box. Consumers scale
97
- * `x/y` and control points by the shape's resolved width/height.
98
- *
99
- * @public
100
- */
101
- type PresetGeometryPathCommand = {
102
- type: 'move';
103
- x: number;
104
- y: number;
105
- } | {
106
- type: 'line';
107
- x: number;
108
- y: number;
109
- } | {
110
- type: 'quad';
111
- cpx: number;
112
- cpy: number;
113
- x: number;
114
- y: number;
115
- } | {
116
- type: 'cubic';
117
- cp1x: number;
118
- cp1y: number;
119
- cp2x: number;
120
- cp2y: number;
121
- x: number;
122
- y: number;
123
- } | {
124
- type: 'close';
125
- };
126
138
 
127
139
  /**
128
- * Embedded images (`w:drawing` → `pic:pic`): size, wrap, position,
129
- * transform, padding, crop.
140
+ * Lists & Numbering Types
141
+ *
142
+ * Types for bullet lists, numbered lists, and numbering definitions.
130
143
  */
131
144
 
132
- /** One point in a `wp:wrapPolygon`, in the drawing's authored coordinates. */
133
- interface ImageWrapPoint {
134
- x?: number;
135
- y?: number;
136
- }
137
145
  /**
138
- * Image size specification
146
+ * Number format type
139
147
  */
140
- interface ImageSize {
141
- /** Width in EMUs (English Metric Units) */
142
- width: number;
143
- /** Height in EMUs */
144
- height: number;
145
- }
148
+ type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
146
149
  /**
147
- * Image wrap type for floating images
150
+ * Multi-level suffix (what follows the number)
148
151
  */
149
- interface ImageWrap {
150
- type: WrapType;
151
- /** Wrap text direction */
152
- wrapText?: 'bothSides' | 'left' | 'right' | 'largest';
153
- /** Distance from text */
154
- distT?: number;
155
- distB?: number;
156
- distL?: number;
157
- distR?: number;
158
- /** Tight/through contour. Undefined = rectangular wrap. */
159
- polygon?: ImageWrapPoint[];
160
- }
152
+ type LevelSuffix = 'tab' | 'space' | 'nothing';
161
153
  /**
162
- * Position for floating images
154
+ * One indentation level of an abstract numbering definition (`w:lvl`).
155
+ * Carries the number format, the marker template (`lvlText` — e.g.
156
+ * `"%1.%2."`), the level's paragraph properties (indent, hanging) and
157
+ * character properties (font, size, color for the marker itself).
158
+ *
159
+ * `ilvl` ranges 0-8 in standard Word documents.
163
160
  */
164
- interface ImagePosition {
165
- /** Use `wp:simplePos` instead of positionH/V. Undefined = false. */
166
- useSimplePos?: boolean;
167
- /** `wp:simplePos` coordinates in EMUs. */
168
- simplePos?: {
169
- x?: number;
170
- y?: number;
171
- };
172
- /** Stable z-order (`wp:anchor/@relativeHeight`). Undefined = source order. */
173
- relativeHeight?: number;
174
- /** Behind-text plane (`wp:anchor/@behindDoc`). Undefined = false. */
175
- behindDoc?: boolean;
176
- /** Hidden drawing. Undefined = visible. */
177
- hidden?: boolean;
178
- /** Locked drawing metadata. Undefined = editable. */
179
- locked?: boolean;
180
- /** Horizontal positioning */
181
- horizontal: {
182
- relativeTo: 'character' | 'column' | 'insideMargin' | 'leftMargin' | 'margin' | 'outsideMargin' | 'page' | 'rightMargin';
183
- alignment?: 'left' | 'right' | 'center' | 'inside' | 'outside';
184
- posOffset?: number;
185
- };
186
- /** Vertical positioning */
187
- vertical: {
188
- relativeTo: 'insideMargin' | 'line' | 'margin' | 'outsideMargin' | 'page' | 'paragraph' | 'topMargin' | 'bottomMargin';
189
- alignment?: 'top' | 'bottom' | 'center' | 'inside' | 'outside';
190
- posOffset?: number;
161
+ interface ListLevel {
162
+ /** Level index (0-8) */
163
+ ilvl: number;
164
+ /** Starting number */
165
+ start?: number;
166
+ /** Number format */
167
+ numFmt: NumberFormat;
168
+ /** Level text (e.g., "%1." or "•") */
169
+ lvlText: string;
170
+ /** Justification */
171
+ lvlJc?: 'left' | 'center' | 'right';
172
+ /** Suffix after number */
173
+ suffix?: LevelSuffix;
174
+ /** Paragraph properties for this level */
175
+ pPr?: ParagraphFormatting;
176
+ /** Run properties for the number/bullet */
177
+ rPr?: TextFormatting;
178
+ /** Restart numbering from higher level */
179
+ lvlRestart?: number;
180
+ /** Is legal numbering style */
181
+ isLgl?: boolean;
182
+ /** Legacy settings */
183
+ legacy?: {
184
+ legacy?: boolean;
185
+ legacySpace?: number;
186
+ legacyIndent?: number;
191
187
  };
192
188
  }
193
189
  /**
194
- * Image transformation
190
+ * Abstract numbering definition (`w:abstractNum`) — the reusable template
191
+ * for a list: which `NumberFormat` at each indentation level, what
192
+ * marker text, what paragraph/character formatting. Multiple
193
+ * `NumberingInstance`s (`w:num`) can reference one abstract numbering
194
+ * to share the template while keeping independent counters.
195
+ *
196
+ * See ECMA-376 §17.9.
195
197
  */
196
- interface ImageTransform {
197
- /** Rotation in degrees */
198
- rotation?: number;
199
- /** Flip horizontal */
200
- flipH?: boolean;
201
- /** Flip vertical */
202
- flipV?: boolean;
203
- }
204
- /** Post-transform layout footprint, kept separate from the content frame. */
205
- interface ImageRotationBounds {
206
- width?: number;
207
- height?: number;
208
- offsetX?: number;
209
- offsetY?: number;
210
- }
211
- /** One ordered DrawingML blip effect. Unknown effects stay named and inert. */
212
- interface ImageEffect {
213
- kind?: 'brightnessContrast' | 'saturation' | 'grayscale' | 'biLevel' | 'colorChange' | 'duotone' | 'alpha' | 'blur' | 'unknown';
214
- amount?: number;
215
- threshold?: number;
216
- colors?: string[];
217
- rawName?: string;
218
- }
219
- /** Safe hyperlink metadata attached to picture non-visual properties. */
220
- interface ImageHyperlink {
221
- href?: string;
222
- tooltip?: string;
223
- target?: string;
224
- history?: boolean;
225
- docLocation?: string;
226
- }
227
- /**
228
- * Image padding/margins
229
- */
230
- interface ImagePadding {
231
- top?: number;
232
- bottom?: number;
233
- left?: number;
234
- right?: number;
235
- }
236
- /**
237
- * Image crop, expressed as fractions of the source image to trim from each
238
- * edge. OOXML's `<a:srcRect l="10000" t="0" r="5000" b="0"/>` uses units of
239
- * 1/100000 (so 10000 → 0.1 → 10% trimmed from the left). We store the
240
- * normalised fraction so both the renderer and the saver can read it
241
- * directly without re-parsing units.
242
- */
243
- interface ImageCrop {
244
- left?: number;
245
- top?: number;
246
- right?: number;
247
- bottom?: number;
248
- }
249
- /**
250
- * Embedded image (`w:drawing` with an inline or anchored picture). Carries
251
- * the relationship-id pointer to the binary in `word/media/`, its
252
- * resolved data URL (`src`), display dimensions, optional crop /
253
- * transform / wrap behaviors, and anchor positioning for floating
254
- * images.
255
- *
256
- * See ECMA-376 §20.4 (DrawingML wordprocessingDrawing).
257
- */
258
- interface Image {
259
- type: 'image';
260
- /** Unique ID */
261
- id?: string;
262
- /** Relationship ID for the image data */
263
- rId: string;
264
- /** Resolved image data (base64 or blob URL) */
265
- src?: string;
266
- /** Image MIME type */
267
- mimeType?: string;
268
- /** Original filename */
269
- filename?: string;
270
- /** Alt text for accessibility */
271
- alt?: string;
272
- /** Title/description */
273
- title?: string;
274
- /** Image size */
275
- size: ImageSize;
276
- /** Original size before any transforms */
277
- originalSize?: ImageSize;
278
- /** Wrap settings */
279
- wrap: ImageWrap;
280
- /** Position for floating images */
281
- position?: ImagePosition;
282
- /** Image transformations */
283
- transform?: ImageTransform;
284
- /** Padding around image */
285
- padding?: ImagePadding;
286
- /** Source-image crop (fractional, OOXML `a:srcRect`). */
287
- crop?: ImageCrop;
288
- /** Opacity in [0, 1] (OOXML `a:alphaModFix amt`). Undefined = fully opaque. */
289
- opacity?: number;
290
- /** Whether this is a decorative image */
291
- decorative?: boolean;
292
- /**
293
- * `wp:anchor layoutInCell` — when true (default), an anchored image inside
294
- * a table cell is constrained to the cell. When false, the image escapes
295
- * the cell into the page area. Round-tripped on save.
296
- */
297
- layoutInCell?: boolean;
298
- /**
299
- * `wp:anchor allowOverlap` — when true (default), anchored objects may
300
- * overlap; when false, Word repositions them to avoid collisions. We
301
- * don't currently reposition; we round-trip the flag so saving preserves
302
- * the author's intent.
303
- */
304
- allowOverlap?: boolean;
305
- /** Hyperlink URL for clickable image */
306
- hlinkHref?: string;
307
- /** Image outline/border */
308
- outline?: ShapeOutline;
309
- /** Image effects */
310
- effects?: {
311
- brightness?: number;
312
- contrast?: number;
313
- saturation?: number;
314
- /** Ordered blip-effect list. Undefined = legacy scalar effects only. */
315
- ordered?: ImageEffect[];
316
- };
317
- /** Rotated layout bbox. Undefined = use untransformed `size`. */
318
- rotationBounds?: ImageRotationBounds;
319
- /** Complete picture hyperlink metadata. Undefined = use `hlinkHref`. */
320
- hyperlink?: ImageHyperlink;
321
- /** Effect extents in EMUs. Undefined = no extra wrap/ink extent. */
322
- effectExtent?: ImagePadding;
323
- }
324
-
325
- /**
326
- * Lists & Numbering Types
327
- *
328
- * Types for bullet lists, numbered lists, and numbering definitions.
329
- */
330
-
331
- /**
332
- * Number format type
333
- */
334
- type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
335
- /**
336
- * Multi-level suffix (what follows the number)
337
- */
338
- type LevelSuffix = 'tab' | 'space' | 'nothing';
339
- /**
340
- * One indentation level of an abstract numbering definition (`w:lvl`).
341
- * Carries the number format, the marker template (`lvlText` — e.g.
342
- * `"%1.%2."`), the level's paragraph properties (indent, hanging) and
343
- * character properties (font, size, color for the marker itself).
344
- *
345
- * `ilvl` ranges 0-8 in standard Word documents.
346
- */
347
- interface ListLevel {
348
- /** Level index (0-8) */
349
- ilvl: number;
350
- /** Starting number */
351
- start?: number;
352
- /** Number format */
353
- numFmt: NumberFormat;
354
- /** Level text (e.g., "%1." or "•") */
355
- lvlText: string;
356
- /** Justification */
357
- lvlJc?: 'left' | 'center' | 'right';
358
- /** Suffix after number */
359
- suffix?: LevelSuffix;
360
- /** Paragraph properties for this level */
361
- pPr?: ParagraphFormatting;
362
- /** Run properties for the number/bullet */
363
- rPr?: TextFormatting;
364
- /** Restart numbering from higher level */
365
- lvlRestart?: number;
366
- /** Is legal numbering style */
367
- isLgl?: boolean;
368
- /** Legacy settings */
369
- legacy?: {
370
- legacy?: boolean;
371
- legacySpace?: number;
372
- legacyIndent?: number;
373
- };
374
- }
375
- /**
376
- * Abstract numbering definition (`w:abstractNum`) — the reusable template
377
- * for a list: which `NumberFormat` at each indentation level, what
378
- * marker text, what paragraph/character formatting. Multiple
379
- * `NumberingInstance`s (`w:num`) can reference one abstract numbering
380
- * to share the template while keeping independent counters.
381
- *
382
- * See ECMA-376 §17.9.
383
- */
384
- interface AbstractNumbering {
385
- /** Abstract numbering ID */
386
- abstractNumId: number;
387
- /** Multi-level type */
388
- multiLevelType?: 'hybridMultilevel' | 'multilevel' | 'singleLevel';
389
- /** Numbering style link */
390
- numStyleLink?: string;
391
- /** Style link */
392
- styleLink?: string;
393
- /** Level definitions */
394
- levels: ListLevel[];
395
- /** Name */
396
- name?: string;
198
+ interface AbstractNumbering {
199
+ /** Abstract numbering ID */
200
+ abstractNumId: number;
201
+ /** Multi-level type */
202
+ multiLevelType?: 'hybridMultilevel' | 'multilevel' | 'singleLevel';
203
+ /** Numbering style link */
204
+ numStyleLink?: string;
205
+ /** Style link */
206
+ styleLink?: string;
207
+ /** Level definitions */
208
+ levels: ListLevel[];
209
+ /** Name */
210
+ name?: string;
397
211
  }
398
212
  /**
399
213
  * Numbering instance (w:num)
@@ -468,153 +282,42 @@ interface NumberingDefinitions {
468
282
  }
469
283
 
470
284
  /**
471
- * DrawingML chart model for basic rendered charts.
472
- *
473
- * This is intentionally normalized for display rather than lossless OOXML
474
- * round-trip. Unsupported chart families stay in the original package parts.
285
+ * Math equations (`m:oMath`, `m:oMathPara`). OMML XML is round-tripped
286
+ * verbatim to preserve fidelity Word/Pages/Docs can disagree on.
475
287
  */
288
+ /**
289
+ * Math equation content (m:oMath or m:oMathPara)
290
+ */
291
+ interface MathEquation {
292
+ type: 'mathEquation';
293
+ /** Whether this is a block (oMathPara) or inline (oMath) equation */
294
+ display: 'inline' | 'block';
295
+ /** Raw OMML XML for round-trip preservation */
296
+ ommlXml: string;
297
+ /** Plain text representation for accessibility/fallback */
298
+ plainText?: string;
299
+ }
476
300
 
477
- type ChartType = 'bar' | 'column' | 'line' | 'pie' | 'doughnut';
478
- type ChartGrouping = 'standard' | 'clustered' | 'stacked' | 'percentStacked';
479
- interface ChartPoint {
480
- index?: number;
481
- value?: number;
482
- category?: string;
483
- color?: string;
484
- explosion?: number;
485
- marker?: {
486
- symbol?: string;
487
- size?: number;
488
- color?: string;
489
- };
490
- label?: string;
491
- }
492
- interface ChartSeries {
493
- name?: string;
494
- categories: string[];
495
- values: number[];
496
- color?: string;
497
- index?: number;
498
- order?: number;
499
- categoryFormula?: string;
500
- valueFormula?: string;
501
- axisIds?: string[];
502
- points?: ChartPoint[];
503
- grouping?: ChartGrouping;
504
- marker?: {
505
- symbol?: string;
506
- size?: number;
507
- color?: string;
508
- };
509
- smooth?: boolean;
510
- }
511
- interface ChartAxis {
512
- id?: string;
513
- title?: string;
514
- min?: number;
515
- max?: number;
516
- labels?: string[];
517
- axisType?: 'category' | 'value' | 'date' | 'series';
518
- position?: 'left' | 'right' | 'top' | 'bottom';
519
- crossAxisId?: string;
520
- crosses?: 'autoZero' | 'min' | 'max' | 'value';
521
- crossesAt?: number;
522
- majorUnit?: number;
523
- minorUnit?: number;
524
- logarithmicBase?: number;
525
- reversed?: boolean;
526
- numberFormat?: string;
527
- majorTickMark?: string;
528
- minorTickMark?: string;
529
- tickLabelPosition?: string;
530
- hidden?: boolean;
531
- }
532
- /** One chart-family element inside `c:plotArea`. */
533
- interface ChartPlotGroup {
534
- chartType?: ChartType | 'area' | 'scatter' | 'radar' | 'stock' | 'bubble' | 'ofPie' | 'surface';
535
- grouping?: ChartGrouping;
536
- overlap?: number;
537
- gapWidth?: number;
538
- axisIds?: string[];
539
- series?: ChartSeries[];
540
- varyColors?: boolean;
541
- firstSliceAngle?: number;
542
- holeSize?: number;
543
- showDataLabels?: boolean;
544
- }
545
- interface ChartLegend {
546
- position?: 'left' | 'right' | 'top' | 'bottom';
547
- visible?: boolean;
548
- }
549
- interface Chart {
550
- type: 'chart';
551
- chartType: ChartType;
552
- /** Relationship id used by the owning drawing part. */
553
- rId?: string;
554
- /** Normalized package path, e.g. word/charts/chart1.xml. */
555
- path?: string;
556
- title?: string;
557
- legend?: ChartLegend;
558
- series: ChartSeries[];
559
- axes?: {
560
- category?: ChartAxis;
561
- value?: ChartAxis;
562
- };
563
- /** Drawing extent from wp:extent in EMUs. */
564
- size?: ImageSize;
565
- /** Wrap metadata from the containing drawing; v1 layout treats charts as inline blocks. */
566
- wrap?: ImageWrap;
567
- /** Floating anchor. Undefined = inline legacy behavior. */
568
- position?: ImagePosition;
569
- /** Multiple/combo plot groups. Undefined = synthesize one from legacy fields. */
570
- plotGroups?: ChartPlotGroup[];
571
- /** Complete axis collection keyed through plot-group `axisIds`. */
572
- axisList?: ChartAxis[];
573
- /** Chart accessibility description. */
574
- description?: string;
575
- /** Decorative flag. Undefined = false. */
576
- decorative?: boolean;
577
- /** Stable z-order for anchored charts. Undefined = source order. */
578
- relativeHeight?: number;
579
- }
580
-
581
- /**
582
- * Math equations (`m:oMath`, `m:oMathPara`). OMML XML is round-tripped
583
- * verbatim to preserve fidelity Word/Pages/Docs can disagree on.
584
- */
585
- /**
586
- * Math equation content (m:oMath or m:oMathPara)
587
- */
588
- interface MathEquation {
589
- type: 'mathEquation';
590
- /** Whether this is a block (oMathPara) or inline (oMath) equation */
591
- display: 'inline' | 'block';
592
- /** Raw OMML XML for round-trip preservation */
593
- ommlXml: string;
594
- /** Plain text representation for accessibility/fallback */
595
- plainText?: string;
596
- }
597
-
598
- /**
599
- * Tables (`w:tbl`), rows (`w:tr`), and cells (`w:tc`).
600
- */
601
-
602
- /**
603
- * Table cell (`w:tc`). Holds nested block content (paragraphs and nested
604
- * tables), cell-level formatting (borders, shading, vertical merge),
605
- * tracked property changes, and tracked structural changes for cell
606
- * insert/delete/merge operations.
607
- */
608
- interface TableCell {
609
- type: 'tableCell';
610
- /** Cell formatting */
611
- formatting?: TableCellFormatting;
612
- /** Cell-level tracked property changes (w:tcPrChange) */
613
- propertyChanges?: TableCellPropertyChange[];
614
- /** Tracked structural changes (cell insert/delete/merge) */
615
- structuralChange?: TableStructuralChangeInfo;
616
- /** Cell content (paragraphs, tables, etc.) */
617
- content: (Paragraph | Table)[];
301
+ /**
302
+ * Tables (`w:tbl`), rows (`w:tr`), and cells (`w:tc`).
303
+ */
304
+
305
+ /**
306
+ * Table cell (`w:tc`). Holds nested block content (paragraphs and nested
307
+ * tables), cell-level formatting (borders, shading, vertical merge),
308
+ * tracked property changes, and tracked structural changes for cell
309
+ * insert/delete/merge operations.
310
+ */
311
+ interface TableCell {
312
+ type: 'tableCell';
313
+ /** Cell formatting */
314
+ formatting?: TableCellFormatting;
315
+ /** Cell-level tracked property changes (w:tcPrChange) */
316
+ propertyChanges?: TableCellPropertyChange[];
317
+ /** Tracked structural changes (cell insert/delete/merge) */
318
+ structuralChange?: TableStructuralChangeInfo;
319
+ /** Cell content (paragraphs, tables, etc.) */
320
+ content: (Paragraph | Table)[];
618
321
  }
619
322
  /**
620
323
  * Table row (`w:tr`) — an ordered list of `TableCell` plus row-level
@@ -666,8 +369,8 @@ interface Table {
666
369
  * file, scaled, optionally "washed out" (lightened).
667
370
  *
668
371
  * We model the watermark as a dedicated field on the owning `HeaderFooter`
669
- * rather than as editable run content, so it stays out of the ProseMirror text
670
- * flow while still round-tripping through parse → render → serialize.
372
+ * rather than as editable run content, so it stays out of the text flow while
373
+ * still round-tripping through parse → render → serialize.
671
374
  */
672
375
  /**
673
376
  * Text watermark (e.g. "CONFIDENTIAL", "DRAFT").
@@ -837,16 +540,7 @@ interface Footnote {
837
540
  * and stays editable on round-trip.
838
541
  */
839
542
  content: BlockContent[];
840
- /**
841
- * Verbatim original XML of the entire `<w:footnote>` element, captured at
842
- * parse time ONLY when the note body carries a block-level construct the
843
- * model still can't represent — note-level bookmarks
844
- * (`w:bookmarkStart`/`w:bookmarkEnd`) or `w:customXml`. Block-level `w:sdt`
845
- * is NOT a trigger: it round-trips through the model as `BlockSdt`. When
846
- * present the serializer re-emits these bytes instead of rebuilding from
847
- * `content`, restoring pre-#646 fidelity for the unmodeled constructs.
848
- * See `parseNoteBlockContent` / `serializeNote` for the gate (#646 F3).
849
- */
543
+ /** Verbatim note XML for unmodeled bookmarks or custom XML. */
850
544
  verbatimXml?: string;
851
545
  }
852
546
  /**
@@ -864,7 +558,7 @@ interface Endnote {
864
558
  * on `Footnote.content`.
865
559
  */
866
560
  content: BlockContent[];
867
- /** Verbatim original XML — see `Footnote.verbatimXml` (#646 F3). */
561
+ /** Verbatim note XML for unmodeled blocks. */
868
562
  verbatimXml?: string;
869
563
  }
870
564
 
@@ -1509,9 +1203,9 @@ interface TrackedChangeInfo {
1509
1203
  date?: string;
1510
1204
  }
1511
1205
  /**
1512
- * Tracked-change attribute triple as it appears on PM node attrs
1206
+ * Tracked-change attribute triple as it appears on node attrs
1513
1207
  * (`paragraph.pPrIns`, `tableRow.trIns`, etc). Mirrors `TrackedChangeInfo`
1514
- * but with a `null` date (PM attr defaults) and a `revisionId` name that
1208
+ * but with a `null` date (attr defaults) and a `revisionId` name that
1515
1209
  * matches OOXML's `w:id` more idiomatically on the editor side.
1516
1210
  *
1517
1211
  * Round-trip pairs with `TrackedChangeInfo` via
@@ -1524,7 +1218,7 @@ interface RevisionInfo {
1524
1218
  }
1525
1219
  /**
1526
1220
  * Tracked-cell marker — the OOXML `<w:cellIns>` / `<w:cellDel>` /
1527
- * `<w:cellMerge>` shape attached to a `TableCell` PM node and surfaced
1221
+ * `<w:cellMerge>` shape attached to a `TableCell` node and surfaced
1528
1222
  * to the layout model and painter for visual rendering.
1529
1223
  *
1530
1224
  * `kind` matches the OOXML element name (ins / del / merge).
@@ -1958,151 +1652,6 @@ interface Paragraph {
1958
1652
  * Text body inside a shape (content typed as docx paragraphs)
1959
1653
  */
1960
1654
  type ShapeTextBody = ShapeTextBody$1<Paragraph>;
1961
- /** Detailed DrawingML paint server retained alongside the legacy shared fill. */
1962
- interface ShapeFillPaint {
1963
- kind?: 'none' | 'solid' | 'gradient' | 'pattern' | 'picture' | 'theme';
1964
- color?: ColorValue;
1965
- themeColor?: ThemeColorSlot;
1966
- gradientType?: 'linear' | 'path' | 'radial' | 'rectangular';
1967
- angle?: number;
1968
- stops?: Array<{
1969
- position?: number;
1970
- color?: ColorValue;
1971
- }>;
1972
- pathShape?: 'circle' | 'rect' | 'shape';
1973
- focusRect?: {
1974
- left?: number;
1975
- top?: number;
1976
- right?: number;
1977
- bottom?: number;
1978
- };
1979
- rotateWithShape?: boolean;
1980
- patternPreset?: string;
1981
- foregroundColor?: ColorValue;
1982
- backgroundColor?: ColorValue;
1983
- picture?: Image;
1984
- themeRefIndex?: number;
1985
- /** Picture-fill source crop fractions (`a:srcRect`, 0..1; negative = outset). */
1986
- srcRect?: {
1987
- left?: number;
1988
- top?: number;
1989
- right?: number;
1990
- bottom?: number;
1991
- };
1992
- /** Picture-fill mode: `a:stretch` (default) or `a:tile`. */
1993
- fillMode?: 'stretch' | 'tile';
1994
- /** Picture-fill tile parameters (`a:tile`). Offsets px, scales fractions. */
1995
- tile?: {
1996
- offsetX?: number;
1997
- offsetY?: number;
1998
- scaleX?: number;
1999
- scaleY?: number;
2000
- alignment?: string;
2001
- flip?: 'none' | 'x' | 'y' | 'xy';
2002
- };
2003
- /** Picture-fill stretch target rect fractions (`a:stretch/a:fillRect`, 0..1). */
2004
- stretchRect?: {
2005
- left?: number;
2006
- top?: number;
2007
- right?: number;
2008
- bottom?: number;
2009
- };
2010
- /** Picture-fill alpha 0..1 (`a:alphaModFix` on the blip). */
2011
- pictureOpacity?: number;
2012
- }
2013
- /** Detailed DrawingML line contract, including arrows and compound/custom dash. */
2014
- interface ShapeStrokePaint {
2015
- fill?: ShapeFillPaint;
2016
- width?: number;
2017
- dash?: string;
2018
- customDash?: number[];
2019
- compound?: 'single' | 'double' | 'thickThin' | 'thinThick' | 'triple';
2020
- alignment?: 'center' | 'inset';
2021
- cap?: 'flat' | 'round' | 'square';
2022
- join?: 'bevel' | 'miter' | 'round';
2023
- miterLimit?: number;
2024
- headEnd?: {
2025
- type?: string;
2026
- width?: string;
2027
- length?: string;
2028
- };
2029
- tailEnd?: {
2030
- type?: string;
2031
- width?: string;
2032
- length?: string;
2033
- };
2034
- themeRefIndex?: number;
2035
- }
2036
- /** Common 2-D shape effect. Missing parameters mean the OOXML default. */
2037
- interface ShapeEffect {
2038
- kind?: 'shadow' | 'glow' | 'reflection' | 'softEdge' | 'blur' | 'unknown';
2039
- color?: ColorValue;
2040
- opacity?: number;
2041
- blurRadius?: number;
2042
- distance?: number;
2043
- direction?: number;
2044
- size?: number;
2045
- rawName?: string;
2046
- }
2047
- /** Full `a:bodyPr` projection used by text-body/autofit layout. */
2048
- interface ShapeTextBodyProperties {
2049
- vertical?: 'horizontal' | 'vertical' | 'vertical270' | 'wordArtVertical' | 'eastAsianVertical' | 'mongolianVertical';
2050
- rotation?: number;
2051
- upright?: boolean;
2052
- anchor?: 'top' | 'middle' | 'bottom' | 'distributed' | 'justified';
2053
- anchorCenter?: boolean;
2054
- columns?: number;
2055
- columnSpacing?: number;
2056
- wrap?: 'square' | 'none';
2057
- horizontalOverflow?: 'clip' | 'overflow';
2058
- verticalOverflow?: 'clip' | 'ellipsis' | 'overflow';
2059
- margins?: {
2060
- top?: number;
2061
- bottom?: number;
2062
- left?: number;
2063
- right?: number;
2064
- };
2065
- autoFit?: 'none' | 'normal' | 'shape';
2066
- fontScale?: number;
2067
- lineSpacingReduction?: number;
2068
- fromWordArt?: boolean;
2069
- presetTextWarp?: string;
2070
- }
2071
- /** Heterogeneous DrawingML group/canvas scene node. */
2072
- interface DrawingSceneNode {
2073
- kind?: 'shape' | 'group' | 'canvas' | 'picture' | 'chart' | 'graphicFrame' | 'contentPart';
2074
- id?: string;
2075
- name?: string;
2076
- shape?: Shape;
2077
- image?: Image;
2078
- chart?: Chart;
2079
- children?: DrawingSceneNode[];
2080
- transform?: {
2081
- offsetX?: number;
2082
- offsetY?: number;
2083
- width?: number;
2084
- height?: number;
2085
- childOffsetX?: number;
2086
- childOffsetY?: number;
2087
- childWidth?: number;
2088
- childHeight?: number;
2089
- rotation?: number;
2090
- flipH?: boolean;
2091
- flipV?: boolean;
2092
- };
2093
- fill?: ShapeFillPaint;
2094
- effects?: ShapeEffect[];
2095
- relationshipId?: string;
2096
- }
2097
- /** Versioned general DrawingML scene. Undefined version reads as legacy v0. */
2098
- interface DrawingScene {
2099
- version?: number;
2100
- root?: DrawingSceneNode;
2101
- title?: string;
2102
- description?: string;
2103
- decorative?: boolean;
2104
- hidden?: boolean;
2105
- }
2106
1655
  /**
2107
1656
  * Shape/drawing object (wps:wsp)
2108
1657
  */
@@ -2199,4 +1748,371 @@ interface TextBox {
2199
1748
  bodyProperties?: ShapeTextBodyProperties;
2200
1749
  }
2201
1750
 
2202
- export { type FieldType as $, type AbstractNumbering as A, type BlockContent as B, type CellMarker as C, type DrawingScene as D, type EndnoteProperties as E, type FootnoteProperties as F, type CommentAuthor as G, type HeaderFooter as H, type CommentRangeEnd as I, type CommentRangeStart as J, type CommentReferenceContent as K, type ComplexField as L, type ContentPosition as M, type NoteKind as N, DEFAULT_WATERMARK_PRESETS as O, type PresetGeometryPathCommand as P, type Deletion as Q, type RevisionInfo as R, type SectionProperties as S, type DrawingContent as T, type DrawingSceneNode as U, type EndnotePosition as V, type Watermark as W, type Field as X, type FieldCharContent as Y, type FieldFormData as Z, type FieldInlineContent as _, type SdtControlState as a, type SimpleField as a$, type FooterReference as a0, type FootnotePosition as a1, type HeaderFooterType as a2, type HeaderReference as a3, type Hyperlink as a4, type HyperlinkContent as a5, type Image as a6, type ImageCrop as a7, type ImageEffect as a8, type ImageHyperlink as a9, type NumberFormat as aA, type NumberingInstance as aB, type PageNumberingProperties as aC, type PageOrientation as aD, type ParagraphContent as aE, type ParagraphPropertyChange as aF, type PictureWatermark as aG, type PropertyChangeInfo as aH, type Run as aI, type RunContent as aJ, type RunPropertyChange as aK, type SdtCheckboxGlyph as aL, type SdtDataBinding as aM, type SdtDateState as aN, type SdtGalleryState as aO, type SdtType as aP, type Section as aQ, type SectionStart as aR, type SeparatorContent as aS, type Shape as aT, type ShapeContent as aU, type ShapeFill as aV, type ShapeFillPaint as aW, type ShapeOutline as aX, type ShapeStrokePaint as aY, type ShapeTextBody as aZ, type ShapeType as a_, type ImagePadding as aa, type ImagePosition as ab, type ImageRotationBounds as ac, type ImageSize as ad, type ImageTransform as ae, type ImageWrap as af, type ImageWrapPoint as ag, type InlineSdt as ah, type Insertion as ai, type InstrTextContent as aj, type LevelSuffix as ak, type LineNumberRestart as al, type ListLevel as am, type ListRendering as an, type MathEquation as ao, type MoveFrom as ap, type MoveFromRangeEnd as aq, type MoveFromRangeStart as ar, type MoveTo as as, type MoveToRangeEnd as at, type MoveToRangeStart as au, type NoBreakHyphenContent as av, type NoteNumberRestart as aw, type NoteRefMarkContent as ax, type NoteReferenceContent as ay, type NoteSeparatorReference as az, type SdtProperties as b, type SoftHyphenContent as b0, type StructuredFieldContent as b1, type StructuredFieldTree as b2, type SymbolContent as b3, type TabContent as b4, type Table as b5, type TableCell as b6, type TableCellPropertyChange as b7, type TablePropertyChange as b8, type TableRow as b9, type TableRowPropertyChange as ba, type TableStructuralChangeInfo as bb, type TextBox as bc, type TextContent as bd, type TextWatermark as be, type TrackedChangeInfo as bf, type TrackedRunChange as bg, type VerticalAlign as bh, pictureWatermarkDisplayEmu as bi, type ShapeEffect as c, type ShapeTextBodyProperties as d, type Chart as e, type Paragraph as f, type Comment as g, type DocumentBody as h, type NumberingDefinitions as i, type Footnote as j, type Endnote as k, type BookmarkRange as l, type BlockSdt as m, type BookmarkEnd as n, type BookmarkStart as o, type BreakContent as p, type ChartAxis as q, type ChartContent as r, type ChartGrouping as s, type ChartLegend as t, type ChartPlotGroup as u, type ChartPoint as v, type ChartSeries as w, type ChartType as x, type Column as y, type CommentAnchorRange as z };
1751
+ /**
1752
+ * Embedded images (`w:drawing` → `pic:pic`): size, wrap, position,
1753
+ * transform, padding, crop.
1754
+ */
1755
+
1756
+ /** One point in a `wp:wrapPolygon`, in the drawing's authored coordinates. */
1757
+ interface ImageWrapPoint {
1758
+ x?: number;
1759
+ y?: number;
1760
+ }
1761
+ /**
1762
+ * Image size specification
1763
+ */
1764
+ interface ImageSize {
1765
+ /** Width in EMUs (English Metric Units) */
1766
+ width: number;
1767
+ /** Height in EMUs */
1768
+ height: number;
1769
+ }
1770
+ /**
1771
+ * Image wrap type for floating images
1772
+ */
1773
+ interface ImageWrap {
1774
+ type: WrapType;
1775
+ /** Wrap text direction */
1776
+ wrapText?: 'bothSides' | 'left' | 'right' | 'largest';
1777
+ /** Distance from text */
1778
+ distT?: number;
1779
+ distB?: number;
1780
+ distL?: number;
1781
+ distR?: number;
1782
+ /** Tight/through contour. Undefined = rectangular wrap. */
1783
+ polygon?: ImageWrapPoint[];
1784
+ }
1785
+ /**
1786
+ * Position for floating images
1787
+ */
1788
+ interface ImagePosition {
1789
+ /** Use `wp:simplePos` instead of positionH/V. Undefined = false. */
1790
+ useSimplePos?: boolean;
1791
+ /** `wp:simplePos` coordinates in EMUs. */
1792
+ simplePos?: {
1793
+ x?: number;
1794
+ y?: number;
1795
+ };
1796
+ /** Stable z-order (`wp:anchor/@relativeHeight`). Undefined = source order. */
1797
+ relativeHeight?: number;
1798
+ /** Behind-text plane (`wp:anchor/@behindDoc`). Undefined = false. */
1799
+ behindDoc?: boolean;
1800
+ /** Hidden drawing. Undefined = visible. */
1801
+ hidden?: boolean;
1802
+ /** Locked drawing metadata. Undefined = editable. */
1803
+ locked?: boolean;
1804
+ /** Horizontal positioning */
1805
+ horizontal: {
1806
+ relativeTo: 'character' | 'column' | 'insideMargin' | 'leftMargin' | 'margin' | 'outsideMargin' | 'page' | 'rightMargin';
1807
+ alignment?: 'left' | 'right' | 'center' | 'inside' | 'outside';
1808
+ posOffset?: number;
1809
+ };
1810
+ /** Vertical positioning */
1811
+ vertical: {
1812
+ relativeTo: 'insideMargin' | 'line' | 'margin' | 'outsideMargin' | 'page' | 'paragraph' | 'topMargin' | 'bottomMargin';
1813
+ alignment?: 'top' | 'bottom' | 'center' | 'inside' | 'outside';
1814
+ posOffset?: number;
1815
+ };
1816
+ }
1817
+ /**
1818
+ * Image transformation
1819
+ */
1820
+ interface ImageTransform {
1821
+ /** Rotation in degrees */
1822
+ rotation?: number;
1823
+ /** Flip horizontal */
1824
+ flipH?: boolean;
1825
+ /** Flip vertical */
1826
+ flipV?: boolean;
1827
+ }
1828
+ /** Post-transform layout footprint, kept separate from the content frame. */
1829
+ interface ImageRotationBounds {
1830
+ width?: number;
1831
+ height?: number;
1832
+ offsetX?: number;
1833
+ offsetY?: number;
1834
+ }
1835
+ /** One ordered DrawingML blip effect. Unknown effects stay named and inert. */
1836
+ interface ImageEffect {
1837
+ kind?: 'brightnessContrast' | 'saturation' | 'grayscale' | 'biLevel' | 'colorChange' | 'duotone' | 'alpha' | 'blur' | 'unknown';
1838
+ amount?: number;
1839
+ threshold?: number;
1840
+ colors?: string[];
1841
+ rawName?: string;
1842
+ }
1843
+ /** Safe hyperlink metadata attached to picture non-visual properties. */
1844
+ interface ImageHyperlink {
1845
+ href?: string;
1846
+ tooltip?: string;
1847
+ target?: string;
1848
+ history?: boolean;
1849
+ docLocation?: string;
1850
+ }
1851
+ /**
1852
+ * Image padding/margins
1853
+ */
1854
+ interface ImagePadding {
1855
+ top?: number;
1856
+ bottom?: number;
1857
+ left?: number;
1858
+ right?: number;
1859
+ }
1860
+ /**
1861
+ * Image crop, expressed as fractions of the source image to trim from each
1862
+ * edge. OOXML's `<a:srcRect l="10000" t="0" r="5000" b="0"/>` uses units of
1863
+ * 1/100000 (so 10000 → 0.1 → 10% trimmed from the left). We store the
1864
+ * normalised fraction so both the renderer and the saver can read it
1865
+ * directly without re-parsing units.
1866
+ */
1867
+ interface ImageCrop {
1868
+ left?: number;
1869
+ top?: number;
1870
+ right?: number;
1871
+ bottom?: number;
1872
+ }
1873
+ /**
1874
+ * Embedded image (`w:drawing` with an inline or anchored picture). Carries
1875
+ * the relationship-id pointer to the binary in `word/media/`, its
1876
+ * resolved data URL (`src`), display dimensions, optional crop /
1877
+ * transform / wrap behaviors, and anchor positioning for floating
1878
+ * images.
1879
+ *
1880
+ * See ECMA-376 §20.4 (DrawingML wordprocessingDrawing).
1881
+ */
1882
+ interface Image {
1883
+ type: 'image';
1884
+ /** Unique ID */
1885
+ id?: string;
1886
+ /** Relationship ID for the image data */
1887
+ rId: string;
1888
+ /** Resolved image data (base64 or blob URL) */
1889
+ src?: string;
1890
+ /** Image MIME type */
1891
+ mimeType?: string;
1892
+ /** Original filename */
1893
+ filename?: string;
1894
+ /** Alt text for accessibility */
1895
+ alt?: string;
1896
+ /** Title/description */
1897
+ title?: string;
1898
+ /** Image size */
1899
+ size: ImageSize;
1900
+ /** Original size before any transforms */
1901
+ originalSize?: ImageSize;
1902
+ /** Wrap settings */
1903
+ wrap: ImageWrap;
1904
+ /** Position for floating images */
1905
+ position?: ImagePosition;
1906
+ /** Image transformations */
1907
+ transform?: ImageTransform;
1908
+ /** Padding around image */
1909
+ padding?: ImagePadding;
1910
+ /** Source-image crop (fractional, OOXML `a:srcRect`). */
1911
+ crop?: ImageCrop;
1912
+ /** Opacity in [0, 1] (OOXML `a:alphaModFix amt`). Undefined = fully opaque. */
1913
+ opacity?: number;
1914
+ /** Whether this is a decorative image */
1915
+ decorative?: boolean;
1916
+ /**
1917
+ * `wp:anchor layoutInCell` — when true (default), an anchored image inside
1918
+ * a table cell is constrained to the cell. When false, the image escapes
1919
+ * the cell into the page area. Round-tripped on save.
1920
+ */
1921
+ layoutInCell?: boolean;
1922
+ /**
1923
+ * `wp:anchor allowOverlap` — when true (default), anchored objects may
1924
+ * overlap; when false, Word repositions them to avoid collisions. We
1925
+ * don't currently reposition; we round-trip the flag so saving preserves
1926
+ * the author's intent.
1927
+ */
1928
+ allowOverlap?: boolean;
1929
+ /** Hyperlink URL for clickable image */
1930
+ hlinkHref?: string;
1931
+ /** Image outline/border */
1932
+ outline?: ShapeOutline;
1933
+ /** Image effects */
1934
+ effects?: {
1935
+ brightness?: number;
1936
+ contrast?: number;
1937
+ saturation?: number;
1938
+ /** Ordered blip-effect list. Undefined = legacy scalar effects only. */
1939
+ ordered?: ImageEffect[];
1940
+ };
1941
+ /** Rotated layout bbox. Undefined = use untransformed `size`. */
1942
+ rotationBounds?: ImageRotationBounds;
1943
+ /** Complete picture hyperlink metadata. Undefined = use `hlinkHref`. */
1944
+ hyperlink?: ImageHyperlink;
1945
+ /** Effect extents in EMUs. Undefined = no extra wrap/ink extent. */
1946
+ effectExtent?: ImagePadding;
1947
+ }
1948
+
1949
+ /**
1950
+ * DrawingML chart model for basic rendered charts.
1951
+ *
1952
+ * This is intentionally normalized for display rather than lossless OOXML
1953
+ * round-trip. Unsupported chart families stay in the original package parts.
1954
+ */
1955
+
1956
+ type ChartType = 'bar' | 'column' | 'line' | 'pie' | 'doughnut';
1957
+ type ChartGrouping = 'standard' | 'clustered' | 'stacked' | 'percentStacked';
1958
+ interface ChartPoint {
1959
+ index?: number;
1960
+ value?: number;
1961
+ category?: string;
1962
+ color?: string;
1963
+ explosion?: number;
1964
+ marker?: {
1965
+ symbol?: string;
1966
+ size?: number;
1967
+ color?: string;
1968
+ };
1969
+ label?: string;
1970
+ }
1971
+ /** Run properties from a `c:txPr`; unset fields inherit from the chart. */
1972
+ interface ChartTextProperties {
1973
+ font?: string;
1974
+ sizePt?: number;
1975
+ bold?: boolean;
1976
+ italic?: boolean;
1977
+ color?: string;
1978
+ }
1979
+ /** One `c:dLbl`: an index plus the switches it overrides. */
1980
+ interface ChartPointLabel {
1981
+ index?: number;
1982
+ text?: string;
1983
+ labels: ChartDataLabels;
1984
+ }
1985
+ /** A `c:dLbls`; every switch is optional so an unset one inherits. */
1986
+ interface ChartDataLabels {
1987
+ delete?: boolean;
1988
+ showValue?: boolean;
1989
+ showCategoryName?: boolean;
1990
+ showSeriesName?: boolean;
1991
+ showPercent?: boolean;
1992
+ showLegendKey?: boolean;
1993
+ showBubbleSize?: boolean;
1994
+ separator?: string;
1995
+ position?: string;
1996
+ numberFormat?: string;
1997
+ text?: ChartTextProperties;
1998
+ points?: ChartPointLabel[];
1999
+ }
2000
+ interface ChartSeries {
2001
+ name?: string;
2002
+ categories: string[];
2003
+ values: number[];
2004
+ color?: string;
2005
+ index?: number;
2006
+ order?: number;
2007
+ categoryFormula?: string;
2008
+ valueFormula?: string;
2009
+ axisIds?: string[];
2010
+ points?: ChartPoint[];
2011
+ grouping?: ChartGrouping;
2012
+ marker?: {
2013
+ symbol?: string;
2014
+ size?: number;
2015
+ color?: string;
2016
+ };
2017
+ smooth?: boolean;
2018
+ /** `c:xVal` of a scatter or bubble series. */
2019
+ xValues?: number[];
2020
+ /** `c:bubbleSize` of a bubble series. */
2021
+ bubbleSizes?: number[];
2022
+ dataLabels?: ChartDataLabels;
2023
+ }
2024
+ interface ChartAxis {
2025
+ id?: string;
2026
+ title?: string;
2027
+ min?: number;
2028
+ max?: number;
2029
+ labels?: string[];
2030
+ axisType?: 'category' | 'value' | 'date' | 'series';
2031
+ position?: 'left' | 'right' | 'top' | 'bottom';
2032
+ crossAxisId?: string;
2033
+ crosses?: 'autoZero' | 'min' | 'max' | 'value';
2034
+ crossesAt?: number;
2035
+ majorUnit?: number;
2036
+ minorUnit?: number;
2037
+ logarithmicBase?: number;
2038
+ reversed?: boolean;
2039
+ numberFormat?: string;
2040
+ majorTickMark?: string;
2041
+ minorTickMark?: string;
2042
+ tickLabelPosition?: string;
2043
+ hidden?: boolean;
2044
+ majorGridlines?: boolean;
2045
+ minorGridlines?: boolean;
2046
+ text?: ChartTextProperties;
2047
+ }
2048
+ /** One chart-family element inside `c:plotArea`. */
2049
+ interface ChartPlotGroup {
2050
+ chartType?: ChartType | 'area' | 'scatter' | 'radar' | 'stock' | 'bubble' | 'ofPie' | 'surface';
2051
+ grouping?: ChartGrouping;
2052
+ overlap?: number;
2053
+ gapWidth?: number;
2054
+ axisIds?: string[];
2055
+ series?: ChartSeries[];
2056
+ varyColors?: boolean;
2057
+ firstSliceAngle?: number;
2058
+ holeSize?: number;
2059
+ showDataLabels?: boolean;
2060
+ /** `c:scatterStyle`. */
2061
+ scatterStyle?: 'none' | 'line' | 'lineMarker' | 'marker' | 'smooth' | 'smoothMarker';
2062
+ /** `c:radarStyle`. */
2063
+ radarStyle?: 'standard' | 'marker' | 'filled';
2064
+ /** `c:bubbleScale`, a percentage of the default bubble size. */
2065
+ bubbleScale?: number;
2066
+ /** `c:sizeRepresents`. */
2067
+ sizeRepresents?: 'area' | 'w';
2068
+ /** `c:wireframe` of a surface chart. */
2069
+ wireframe?: boolean;
2070
+ hiLowLines?: boolean;
2071
+ upDownBars?: boolean;
2072
+ /** `c:marker` of a line chart, which switches every series marker off. */
2073
+ marker?: boolean;
2074
+ dataLabels?: ChartDataLabels;
2075
+ }
2076
+ interface ChartLegend {
2077
+ position?: 'left' | 'right' | 'top' | 'bottom';
2078
+ visible?: boolean;
2079
+ /** `c:txPr` on the legend; unset fields inherit from the chart. */
2080
+ text?: ChartTextProperties;
2081
+ }
2082
+ interface Chart {
2083
+ type: 'chart';
2084
+ chartType: ChartType;
2085
+ /** Relationship id used by the owning drawing part. */
2086
+ rId?: string;
2087
+ /** Normalized package path, e.g. word/charts/chart1.xml. */
2088
+ path?: string;
2089
+ title?: string;
2090
+ legend?: ChartLegend;
2091
+ series: ChartSeries[];
2092
+ axes?: {
2093
+ category?: ChartAxis;
2094
+ value?: ChartAxis;
2095
+ };
2096
+ /** Drawing extent from wp:extent in EMUs. */
2097
+ size?: ImageSize;
2098
+ /** Wrap metadata from the containing drawing; v1 layout treats charts as inline blocks. */
2099
+ wrap?: ImageWrap;
2100
+ /** Floating anchor. Undefined = inline legacy behavior. */
2101
+ position?: ImagePosition;
2102
+ /** Multiple/combo plot groups. Undefined = synthesize one from legacy fields. */
2103
+ plotGroups?: ChartPlotGroup[];
2104
+ /** Complete axis collection keyed through plot-group `axisIds`. */
2105
+ axisList?: ChartAxis[];
2106
+ /** Chart accessibility description. */
2107
+ description?: string;
2108
+ /** Decorative flag. Undefined = false. */
2109
+ decorative?: boolean;
2110
+ /** Stable z-order for anchored charts. Undefined = source order. */
2111
+ relativeHeight?: number;
2112
+ /** `c:txPr` on `c:chartSpace`: the root of chart text inheritance. */
2113
+ text?: ChartTextProperties;
2114
+ /** `c:txPr` on `c:title`. */
2115
+ titleText?: ChartTextProperties;
2116
+ }
2117
+
2118
+ export { type FieldInlineContent as $, type AbstractNumbering as A, type BlockContent as B, type CellMarker as C, type DrawingScene as D, type EndnoteProperties as E, type FootnoteProperties as F, type CommentAnchorRange as G, type HeaderFooter as H, type CommentAuthor as I, type CommentRangeEnd as J, type CommentRangeStart as K, type CommentReferenceContent as L, type ComplexField as M, type NoteKind as N, type ContentPosition as O, type Paragraph as P, DEFAULT_WATERMARK_PRESETS as Q, type RevisionInfo as R, type SectionProperties as S, type Deletion as T, type DrawingContent as U, type DrawingSceneNode as V, type Watermark as W, type EndnotePosition as X, type Field as Y, type FieldCharContent as Z, type FieldFormData as _, type SdtControlState as a, type StructuredFieldContent as a$, type FieldType as a0, type FooterReference as a1, type FootnotePosition as a2, type HeaderFooterType as a3, type HeaderReference as a4, type Hyperlink as a5, type HyperlinkContent as a6, type Image as a7, type ImageCrop as a8, type ImageEffect as a9, type NoteSeparatorReference as aA, type NumberFormat as aB, type NumberingInstance as aC, type PageNumberingProperties as aD, type PageOrientation as aE, type ParagraphContent as aF, type ParagraphPropertyChange as aG, type PictureWatermark as aH, type PropertyChangeInfo as aI, type Run as aJ, type RunContent as aK, type RunPropertyChange as aL, type SdtCheckboxGlyph as aM, type SdtDataBinding as aN, type SdtDateState as aO, type SdtGalleryState as aP, type SdtType as aQ, type Section as aR, type SectionStart as aS, type SeparatorContent as aT, type Shape as aU, type ShapeContent as aV, type ShapeFillPaint as aW, type ShapeStrokePaint as aX, type ShapeTextBody as aY, type SimpleField as aZ, type SoftHyphenContent as a_, type ImageHyperlink as aa, type ImagePadding as ab, type ImagePosition as ac, type ImageRotationBounds as ad, type ImageSize as ae, type ImageTransform as af, type ImageWrap as ag, type ImageWrapPoint as ah, type InlineSdt as ai, type Insertion as aj, type InstrTextContent as ak, type LevelSuffix as al, type LineNumberRestart as am, type ListLevel as an, type ListRendering as ao, type MathEquation as ap, type MoveFrom as aq, type MoveFromRangeEnd as ar, type MoveFromRangeStart as as, type MoveTo as at, type MoveToRangeEnd as au, type MoveToRangeStart as av, type NoBreakHyphenContent as aw, type NoteNumberRestart as ax, type NoteRefMarkContent as ay, type NoteReferenceContent as az, type SdtProperties as b, type StructuredFieldTree as b0, type SymbolContent as b1, type TabContent as b2, type Table as b3, type TableCell as b4, type TableCellPropertyChange as b5, type TablePropertyChange as b6, type TableRow as b7, type TableRowPropertyChange as b8, type TableStructuralChangeInfo as b9, type TextBox as ba, type TextContent as bb, type TextWatermark as bc, type TrackedChangeInfo as bd, type TrackedRunChange as be, type VerticalAlign as bf, pictureWatermarkDisplayEmu as bg, type ShapeEffect as c, type ShapeTextBodyProperties as d, type Chart as e, type Comment as f, type DocumentBody as g, type NumberingDefinitions as h, type Footnote as i, type Endnote as j, type BookmarkRange as k, type BlockSdt as l, type BookmarkEnd as m, type BookmarkStart as n, type BreakContent as o, type ChartAxis as p, type ChartContent as q, type ChartDataLabels as r, type ChartGrouping as s, type ChartLegend as t, type ChartPlotGroup as u, type ChartPoint as v, type ChartPointLabel as w, type ChartSeries as x, type ChartType as y, type Column as z };