ooxml-core 1.10.0 → 1.12.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 (205) hide show
  1. package/dist/PptxHandler-DNZHAHUY.cjs +12 -0
  2. package/dist/PptxHandler-E44KDHMQ.mjs +3 -0
  3. package/dist/{PptxHandler-ADEFY476.mjs → PptxHandler-NROFYT2N.mjs} +2 -2
  4. package/dist/automation/index.cjs +3504 -2888
  5. package/dist/automation/index.mjs +3504 -2888
  6. package/dist/{chunk-3N6XMMTT.cjs → chunk-2UVH6RHI.cjs} +1138 -996
  7. package/dist/{chunk-ZOUGMAZG.mjs → chunk-7DSZI7S6.mjs} +1 -1
  8. package/dist/{chunk-S6DOCMQC.cjs → chunk-7QZGRB3T.cjs} +0 -10
  9. package/dist/chunk-ANZ4Q6I3.cjs +21 -0
  10. package/dist/{chunk-5NVJN4E6.mjs → chunk-EC2W2MDY.mjs} +1 -1
  11. package/dist/chunk-EGTRL3QJ.mjs +19 -0
  12. package/dist/chunk-GXHKNSZX.mjs +9 -0
  13. package/dist/{chunk-CCHYFCPD.mjs → chunk-HCXUI5UC.mjs} +296 -103
  14. package/dist/chunk-HDQXPSHY.cjs +17 -0
  15. package/dist/chunk-KTYBFGEY.mjs +14 -0
  16. package/dist/chunk-QOO36KG4.cjs +42 -0
  17. package/dist/chunk-R2KZXD6U.mjs +39 -0
  18. package/dist/{chunk-A6P7G3UK.mjs → chunk-U2DF3EGK.mjs} +1 -1
  19. package/dist/{chunk-R6KSBNKX.mjs → chunk-UAY26XOI.mjs} +1 -9
  20. package/dist/{chunk-WUE5ZHU3.mjs → chunk-W5ARCUJB.mjs} +3 -3
  21. package/dist/chunk-XZPZHXV4.cjs +12 -0
  22. package/dist/{chunk-ZE53K7DH.mjs → chunk-YB5SRNFS.mjs} +244 -102
  23. package/dist/docx/embedded.cjs +1 -1
  24. package/dist/docx/embedded.mjs +1 -1
  25. package/dist/docx/index.cjs +1 -1
  26. package/dist/docx/index.mjs +1 -1
  27. package/dist/docx/layout/adapt-table.d.ts.map +1 -1
  28. package/dist/docx/layout/flow-table.d.ts.map +1 -1
  29. package/dist/docx/layout/index.cjs +266 -61
  30. package/dist/docx/layout/index.d.ts +1 -0
  31. package/dist/docx/layout/index.d.ts.map +1 -1
  32. package/dist/docx/layout/index.mjs +266 -62
  33. package/dist/docx/layout/input.d.ts +5 -0
  34. package/dist/docx/layout/input.d.ts.map +1 -1
  35. package/dist/docx/layout/layout-session.d.ts +10 -0
  36. package/dist/docx/layout/layout-session.d.ts.map +1 -0
  37. package/dist/docx/layout/nested-fragment-edges.d.ts +9 -0
  38. package/dist/docx/layout/nested-fragment-edges.d.ts.map +1 -0
  39. package/dist/docx/layout/paragraph-cache.d.ts +8 -0
  40. package/dist/docx/layout/paragraph-cache.d.ts.map +1 -0
  41. package/dist/docx/layout/paragraph-layout.d.ts.map +1 -1
  42. package/dist/docx/layout/paragraph-tokens.d.ts +1 -1
  43. package/dist/docx/layout/paragraph-tokens.d.ts.map +1 -1
  44. package/dist/docx/layout/result.d.ts +7 -0
  45. package/dist/docx/layout/result.d.ts.map +1 -1
  46. package/dist/docx/layout/table-border-layout.d.ts +1 -1
  47. package/dist/docx/layout/table-border-layout.d.ts.map +1 -1
  48. package/dist/docx/layout/table-cell-layout.d.ts +1 -1
  49. package/dist/docx/layout/table-cell-layout.d.ts.map +1 -1
  50. package/dist/docx/layout/table-frames.d.ts.map +1 -1
  51. package/dist/docx/layout/table-layout.d.ts +1 -1
  52. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  53. package/dist/docx/layout/table-paragraph-keeps.d.ts +14 -0
  54. package/dist/docx/layout/table-paragraph-keeps.d.ts.map +1 -0
  55. package/dist/docx/load/index.cjs +1 -1
  56. package/dist/docx/load/index.mjs +1 -1
  57. package/dist/docx/ui/index.cjs +83 -6
  58. package/dist/docx/ui/index.mjs +83 -7
  59. package/dist/docx/ui/ribbon-action-ids.d.ts +1 -1
  60. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -1
  61. package/dist/docx/ui/word-count.d.ts +3 -0
  62. package/dist/docx/ui/word-count.d.ts.map +1 -1
  63. package/dist/geometry/element-transform.d.ts +90 -0
  64. package/dist/geometry/element-transform.d.ts.map +1 -0
  65. package/dist/geometry/index.cjs +90 -0
  66. package/dist/geometry/index.d.ts +1 -0
  67. package/dist/geometry/index.d.ts.map +1 -1
  68. package/dist/geometry/index.mjs +83 -1
  69. package/dist/index.cjs +90 -0
  70. package/dist/index.mjs +90 -0
  71. package/dist/pptx/automation/index.cjs +266 -114
  72. package/dist/pptx/automation/index.d.ts +5 -4
  73. package/dist/pptx/automation/index.d.ts.map +1 -1
  74. package/dist/pptx/automation/index.mjs +5 -5
  75. package/dist/pptx/chunks/{text-operations-BqHmLaLA.d.ts → elements-DD3UGOMd.d.ts} +17 -3262
  76. package/dist/pptx/chunks/elements-DD3UGOMd.d.ts.map +1 -0
  77. package/dist/pptx/chunks/{index-DUCGeZh7.d.ts → index-BZrFyNtU.d.ts} +53 -5
  78. package/dist/pptx/chunks/index-BZrFyNtU.d.ts.map +1 -0
  79. package/dist/pptx/chunks/{index-Cuxtr76Y.d.ts → index-DdX02BSm.d.ts} +5 -3
  80. package/dist/pptx/chunks/index-DdX02BSm.d.ts.map +1 -0
  81. package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts +1512 -0
  82. package/dist/pptx/chunks/smart-art-ENMMEbmW.d.ts.map +1 -0
  83. package/dist/pptx/chunks/text-D49FKllA.d.ts +1473 -0
  84. package/dist/pptx/chunks/text-D49FKllA.d.ts.map +1 -0
  85. package/dist/pptx/chunks/text-operations-CyMTMfID.d.ts +3261 -0
  86. package/dist/pptx/chunks/text-operations-CyMTMfID.d.ts.map +1 -0
  87. package/dist/pptx/cli/index.cjs +266 -114
  88. package/dist/pptx/cli/index.d.ts +1 -1
  89. package/dist/pptx/cli/index.mjs +4 -4
  90. package/dist/pptx/converter/index.d.ts +1 -1
  91. package/dist/pptx/converter/index.mjs +2 -2
  92. package/dist/pptx/editor/render/find-replace.cjs +17 -16
  93. package/dist/pptx/editor/render/find-replace.d.ts +2 -2
  94. package/dist/pptx/editor/render/find-replace.mjs +2 -1
  95. package/dist/pptx/editor/render/font-family-update.cjs +14 -0
  96. package/dist/pptx/editor/render/font-family-update.d.ts +17 -0
  97. package/dist/pptx/editor/render/font-family-update.d.ts.map +1 -0
  98. package/dist/pptx/editor/render/font-family-update.mjs +1 -0
  99. package/dist/pptx/editor/render/paragraph-geometry-overrides.cjs +14 -0
  100. package/dist/pptx/editor/render/paragraph-geometry-overrides.d.ts +17 -0
  101. package/dist/pptx/editor/render/paragraph-geometry-overrides.d.ts.map +1 -0
  102. package/dist/pptx/editor/render/paragraph-geometry-overrides.mjs +12 -0
  103. package/dist/pptx/editor/render/slide-operations.cjs +9 -8
  104. package/dist/pptx/editor/render/slide-operations.mjs +3 -2
  105. package/dist/pptx/editor/render/table-data-grid-ops.cjs +1 -1
  106. package/dist/pptx/editor/render/table-data-grid-ops.mjs +1 -1
  107. package/dist/pptx/editor/render/text-content-style.cjs +18 -0
  108. package/dist/pptx/editor/render/text-content-style.d.ts +9 -0
  109. package/dist/pptx/editor/render/text-content-style.d.ts.map +1 -0
  110. package/dist/pptx/editor/render/text-content-style.mjs +5 -0
  111. package/dist/pptx/editor/render/text-runs-style-patch.cjs +17 -0
  112. package/dist/pptx/editor/render/text-runs-style-patch.d.ts +7 -0
  113. package/dist/pptx/editor/render/text-runs-style-patch.d.ts.map +1 -0
  114. package/dist/pptx/editor/render/text-runs-style-patch.mjs +15 -0
  115. package/dist/pptx/editor/render/text-style-scope.cjs +173 -0
  116. package/dist/pptx/editor/render/text-style-scope.d.ts +76 -0
  117. package/dist/pptx/editor/render/text-style-scope.d.ts.map +1 -0
  118. package/dist/pptx/editor/render/text-style-scope.mjs +164 -0
  119. package/dist/pptx/editor/render/theme-editor-model.cjs +1 -1
  120. package/dist/pptx/editor/render/theme-editor-model.mjs +1 -1
  121. package/dist/pptx/editor/render/update-text-segment-style.cjs +11 -0
  122. package/dist/pptx/editor/render/update-text-segment-style.d.ts +14 -0
  123. package/dist/pptx/editor/render/update-text-segment-style.d.ts.map +1 -0
  124. package/dist/pptx/editor/render/update-text-segment-style.mjs +2 -0
  125. package/dist/pptx/index.cjs +329 -114
  126. package/dist/pptx/index.d.ts +7 -5
  127. package/dist/pptx/index.mjs +5 -5
  128. package/dist/pptx/smartart-layouts/index.d.ts +1 -1
  129. package/dist/teams/index.cjs +112 -16
  130. package/dist/teams/index.mjs +112 -16
  131. package/dist/visio/edit-commands.d.ts +3 -3
  132. package/dist/visio/edit-commands.d.ts.map +1 -1
  133. package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
  134. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  135. package/dist/visio/edit-text-field-commands.d.ts +15 -0
  136. package/dist/visio/edit-text-field-commands.d.ts.map +1 -1
  137. package/dist/visio/edit-text-field.d.ts +2 -2
  138. package/dist/visio/edit-text-field.d.ts.map +1 -1
  139. package/dist/visio/edit.d.ts +1 -1
  140. package/dist/visio/edit.d.ts.map +1 -1
  141. package/dist/visio/index.cjs +696 -249
  142. package/dist/visio/index.d.ts +2 -1
  143. package/dist/visio/index.d.ts.map +1 -1
  144. package/dist/visio/index.mjs +695 -250
  145. package/dist/visio/model.d.ts +18 -0
  146. package/dist/visio/model.d.ts.map +1 -1
  147. package/dist/visio/paper-sizes.d.ts +5 -0
  148. package/dist/visio/paper-sizes.d.ts.map +1 -1
  149. package/dist/visio/parser.d.ts.map +1 -1
  150. package/dist/visio/print-count.d.ts +20 -0
  151. package/dist/visio/print-count.d.ts.map +1 -0
  152. package/dist/visio/print-settings.d.ts +14 -0
  153. package/dist/visio/print-settings.d.ts.map +1 -0
  154. package/dist/visio/shapes.d.ts.map +1 -1
  155. package/dist/visio/style.d.ts +1 -1
  156. package/dist/visio/style.d.ts.map +1 -1
  157. package/dist/visio/text-field-display.d.ts +3 -0
  158. package/dist/visio/text-field-display.d.ts.map +1 -1
  159. package/dist/visio/text-field-editability.d.ts +6 -0
  160. package/dist/visio/text-field-editability.d.ts.map +1 -0
  161. package/dist/visio/text-field-independent.d.ts +4 -0
  162. package/dist/visio/text-field-independent.d.ts.map +1 -0
  163. package/dist/visio/text-field-source.d.ts +6 -0
  164. package/dist/visio/text-field-source.d.ts.map +1 -0
  165. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  166. package/dist/visio/ui/index.cjs +588 -215
  167. package/dist/visio/ui/index.mjs +588 -215
  168. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  169. package/dist/xlsx/edit/pivots.d.ts.map +1 -1
  170. package/dist/xlsx/index.cjs +773 -514
  171. package/dist/xlsx/index.mjs +772 -515
  172. package/dist/xlsx/load/index.cjs +541 -292
  173. package/dist/xlsx/load/index.mjs +541 -292
  174. package/dist/xlsx/model-pivots.d.ts +8 -0
  175. package/dist/xlsx/model-pivots.d.ts.map +1 -1
  176. package/dist/xlsx/pivot/admission.d.ts.map +1 -1
  177. package/dist/xlsx/pivot/aggregate.d.ts.map +1 -1
  178. package/dist/xlsx/pivot/data.d.ts +2 -2
  179. package/dist/xlsx/pivot/data.d.ts.map +1 -1
  180. package/dist/xlsx/pivot/index.d.ts +2 -0
  181. package/dist/xlsx/pivot/index.d.ts.map +1 -1
  182. package/dist/xlsx/pivot/measures.d.ts +1 -1
  183. package/dist/xlsx/pivot/measures.d.ts.map +1 -1
  184. package/dist/xlsx/pivot/page-filter-admission.d.ts +5 -0
  185. package/dist/xlsx/pivot/page-filter-admission.d.ts.map +1 -0
  186. package/dist/xlsx/pivot/page-filter.d.ts +11 -0
  187. package/dist/xlsx/pivot/page-filter.d.ts.map +1 -0
  188. package/dist/xlsx/pivot/read.d.ts.map +1 -1
  189. package/dist/xlsx/pivot/table-xml.d.ts.map +1 -1
  190. package/dist/xlsx/pivot/values-axis.d.ts +4 -1
  191. package/dist/xlsx/pivot/values-axis.d.ts.map +1 -1
  192. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -1
  193. package/dist/xlsx/ui/commands/i18n/pivots.d.ts.map +1 -1
  194. package/dist/xlsx/ui/index.cjs +95 -12
  195. package/dist/xlsx/ui/index.mjs +95 -12
  196. package/dist/xlsx/ui/ribbon/parts.d.ts +1 -0
  197. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
  198. package/package.json +2 -2
  199. package/dist/PptxHandler-5UURGJEV.mjs +0 -2
  200. package/dist/PptxHandler-U5XB2HUE.cjs +0 -11
  201. package/dist/pptx/chunks/index-Cuxtr76Y.d.ts.map +0 -1
  202. package/dist/pptx/chunks/index-DUCGeZh7.d.ts.map +0 -1
  203. package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts +0 -2980
  204. package/dist/pptx/chunks/smart-art-D-sXa_Nb.d.ts.map +0 -1
  205. package/dist/pptx/chunks/text-operations-BqHmLaLA.d.ts.map +0 -1
@@ -6,7 +6,7 @@ import type { LayoutParagraph, LayoutRun } from './input.js';
6
6
  export declare const SCRIPT_SCALE = 0.65;
7
7
  export declare function fontOf(run: LayoutRun): LayoutFontSpec;
8
8
  /** Word applies additional character spacing after scaling the glyph advances. */
9
- export declare function runTextWidth(text: string, run: LayoutRun, measurer: TextMeasurer): number;
9
+ export declare function runTextWidth(text: string, run: LayoutRun, measurer: TextMeasurer, font?: LayoutFontSpec): number;
10
10
  export declare function resolveIndents(paragraph: LayoutParagraph): {
11
11
  leftPx: number;
12
12
  rightPx: number;
@@ -1 +1 @@
1
- {"version":3,"file":"paragraph-tokens.d.ts","sourceRoot":"","sources":["../../../docx/layout/paragraph-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG1D,uFAAuF;AACvF,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,wBAAgB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,CAerD;AAGD,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAMzF;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CACzB,CAqBA;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG;IAC9D,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB,CA6BA;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"paragraph-tokens.d.ts","sourceRoot":"","sources":["../../../docx/layout/paragraph-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG1D,uFAAuF;AACvF,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,wBAAgB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,CAerD;AAGD,kFAAkF;AAClF,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,YAAY,EACtB,IAAI,iBAAc,GAChB,MAAM,CAUR;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,eAAe,GAAG;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CACzB,CAqBA;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG;IAC9D,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB,CA6BA;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;CAClC"}
@@ -62,6 +62,8 @@ export interface LayoutParagraphBox {
62
62
  top: number;
63
63
  bottom: number;
64
64
  };
65
+ /** Measured physical bottom edge width, distinct from an interior shared row edge. */
66
+ tableFragmentBottomPx?: number;
65
67
  }
66
68
  export interface LayoutParagraphFrame {
67
69
  leftPx: number;
@@ -104,6 +106,11 @@ export interface LayoutTableBox {
104
106
  yPx: number;
105
107
  heightPx: number;
106
108
  rows: LayoutTableRowBox[];
109
+ /** Source outer edges repainted at each measured nested physical fragment. */
110
+ fragmentEdges?: {
111
+ top: (import('./input.js').LayoutBorder | undefined)[];
112
+ bottom: (import('./input.js').LayoutBorder | undefined)[];
113
+ };
107
114
  }
108
115
  export type LayoutBlockBox = LayoutParagraphBox | LayoutTableBox;
109
116
  export interface LayoutColumnBox {
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../docx/layout/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../docx/layout/result.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,cAAc,EAAE,SAAS,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,SAAS,EAAE,YAAY,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACzB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;CACjE;AAED,yEAAyE;AACzE,MAAM,WAAW,UAAU;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,sFAAsF;IACtF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,sBAAsB,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,iBAAiB,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,8FAA8F;IAC9F,eAAe,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,CAAC,EAAE;QACf,GAAG,EAAE,CAAC,OAAO,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,OAAO,SAAS,EAAE,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;KACvD,CAAC;CACF;AAED,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kGAAkG;IAClG,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,iGAAiG;IACjG,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sFAAsF;IACtF,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAC3E,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,kBAAkB,EAAE,CAAA;SAAE,CAAC;KACnE,EAAE,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,0FAA0F;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,uGAAuG;IACvG,cAAc,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAO5F"}
@@ -4,7 +4,7 @@ import type { LayoutParagraphBox } from './result.js';
4
4
  import type { TextMeasurer } from './measure.js';
5
5
  import { type RowLayout } from './table-layout.js';
6
6
  /** Native row heights include the top edge; the physical fragment also reserves its last bottom. */
7
- export declare function layoutBorderedRow(row: LayoutTableRow, width: number, measurer: TextMeasurer, note: (message: string) => void, profile: NestedFrameProfile | undefined, remaining?: LayoutParagraphBox[][]): RowLayout;
7
+ export declare function layoutBorderedRow(row: LayoutTableRow, width: number, measurer: TextMeasurer, note: (message: string) => void, profile: NestedFrameProfile | undefined, remaining?: LayoutParagraphBox[][], physicalFragments?: boolean): RowLayout;
8
8
  /** Share a horizontal stroke with the next row, retaining it when a fragment is flushed. */
9
9
  export declare class TableFragmentBorders {
10
10
  private bottom;
@@ -1 +1 @@
1
- {"version":3,"file":"table-border-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-border-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,oGAAoG;AACpG,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,GAChC,SAAS,CAwBX;AAED,4FAA4F;AAC5F,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAQ;IACxB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGvC;IACD,MAAM,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKpE;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKrE;CACD"}
1
+ {"version":3,"file":"table-border-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-border-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,oGAAoG;AACpG,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAClC,iBAAiB,CAAC,EAAE,OAAO,GACzB,SAAS,CAyBX;AAED,4FAA4F;AAC5F,qBAAa,oBAAoB;IAChC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAQ;IACxB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGvC;IACD,MAAM,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKpE;IACD,OAAO,CAAC,GAAG,EAAE,OAAO,UAAU,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAKrE;CACD"}
@@ -4,7 +4,7 @@ import type { TextMeasurer } from './measure.js';
4
4
  /** All nested source paragraphs, in OOXML story order. */
5
5
  export declare function cellParagraphs(cell: LayoutTableCell): LayoutParagraph[];
6
6
  /** Project read-only nested cell stories using the same paragraph and row layout as body tables. */
7
- export declare function stackCellBlocks(cell: LayoutTableCell, width: number, measurer: TextMeasurer, note: (message: string) => void, top: number, starts?: ReadonlyMap<string, number>): {
7
+ export declare function stackCellBlocks(cell: LayoutTableCell, width: number, measurer: TextMeasurer, note: (message: string) => void, top: number, starts?: ReadonlyMap<string, number>, physicalFragments?: boolean): {
8
8
  heightPx: number;
9
9
  boxes: LayoutParagraphBox[];
10
10
  tables?: LayoutTableBox[];
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-cell-layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,CAQvE;AACD,oGAAoG;AACpG,wBAAgB,eAAe,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;CAAE,CAuG9E"}
1
+ {"version":3,"file":"table-cell-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-cell-layout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,CAQvE;AACD,oGAAoG;AACpG,wBAAgB,eAAe,CAC9B,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,iBAAiB,UAAQ,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;CAAE,CAoH9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-frames.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-frames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,iGAAiG;AACjG,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACP,cAAc,EAAE,CA2BlB"}
1
+ {"version":3,"file":"table-frames.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-frames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,iGAAiG;AACjG,wBAAgB,eAAe,CAC9B,MAAM,EAAE,cAAc,EAAE,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,SAAI,GACP,cAAc,EAAE,CAwClB"}
@@ -23,7 +23,7 @@ export declare function stackParagraphs(paragraphs: LayoutParagraph[], widthPx:
23
23
  * Lays out one table row. Cells take their grid position and width when the table has a grid,
24
24
  * otherwise the table width split evenly, and their content is inset by the cell margins.
25
25
  */
26
- export declare function layoutRow(row: LayoutTableRow, tableWidthPx: number, measurer: TextMeasurer, note: (message: string) => void, remaining?: LayoutParagraphBox[][], startTokens?: ReadonlyMap<string, number>, frameBorders?: boolean, frameLeftBorderPx?: number): RowLayout;
26
+ export declare function layoutRow(row: LayoutTableRow, tableWidthPx: number, measurer: TextMeasurer, note: (message: string) => void, remaining?: LayoutParagraphBox[][], startTokens?: ReadonlyMap<string, number>, frameBorders?: boolean, frameLeftBorderPx?: number, physicalFragments?: boolean): RowLayout;
27
27
  export interface RowSplit {
28
28
  before: RowLayout;
29
29
  after: RowLayout | null;
@@ -1 +1 @@
1
- {"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIvF,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAChC,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC9B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,KAAK,SAAI,EACT,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,CA0BnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAClC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,YAAY,UAAQ,EACpB,iBAAiB,CAAC,EAAE,MAAM,GACxB,SAAS,CAsEX;AAwDD,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,EAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,QAAQ,CAiFV"}
1
+ {"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-layout.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAIvF,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;IAChC,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC9B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,KAAK,SAAI,EACT,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAAE,CA0BnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,SAAS,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAClC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,YAAY,UAAQ,EACpB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,UAA6B,GAC5C,SAAS,CAuEX;AAgED,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,EAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,QAAQ,CAiFV"}
@@ -0,0 +1,14 @@
1
+ import type { LayoutParagraph, LayoutTable } from './input.js';
2
+ import type { RowLayout } from './table-layout.js';
3
+ /** Source-backed admission for the measured ordinary, note-free keep-lines profile. */
4
+ export declare function tableParagraphKeeps(table: LayoutTable): TableParagraphKeeps | undefined;
5
+ /** Uses existing paragraph boxes and source tokens; it does not lay out or paginate another story. */
6
+ export declare class TableParagraphKeeps {
7
+ private readonly sources;
8
+ constructor(sources: ReadonlyMap<string, LayoutParagraph>);
9
+ /** Before an ordinary row starts, a first kept paragraph can defer the entire row. */
10
+ startupMinimum(row: RowLayout): number;
11
+ /** Defer an unstarted paragraph and its following cell content, leaving other cells independent. */
12
+ cuts(row: RowLayout, available: number, fresh: boolean): Map<string, number> | undefined;
13
+ }
14
+ //# sourceMappingURL=table-paragraph-keeps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-paragraph-keeps.d.ts","sourceRoot":"","sources":["../../../docx/layout/table-paragraph-keeps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAgDvF;AAED,sGAAsG;AACtG,qBAAa,mBAAmB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,EAAI;IAC9E,sFAAsF;IACtF,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAUrC;IACD,oGAAoG;IACpG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAoBvF;CACD"}
@@ -11859,7 +11859,7 @@ function parseRowProperties(row) {
11859
11859
  const result = {};
11860
11860
  const height = first2(trPr, "trHeight");
11861
11861
  const heightTwips = dxa(getW(height, "val"));
11862
- if (heightTwips) {
11862
+ if (heightTwips !== void 0) {
11863
11863
  result.heightTwips = heightTwips;
11864
11864
  result.heightRule = getW(height, "hRule") === "exact" ? "exact" : "atLeast";
11865
11865
  }
@@ -11853,7 +11853,7 @@ function parseRowProperties(row) {
11853
11853
  const result = {};
11854
11854
  const height = first2(trPr, "trHeight");
11855
11855
  const heightTwips = dxa(getW(height, "val"));
11856
- if (heightTwips) {
11856
+ if (heightTwips !== void 0) {
11857
11857
  result.heightTwips = heightTwips;
11858
11858
  result.heightRule = getW(height, "hRule") === "exact" ? "exact" : "atLeast";
11859
11859
  }
@@ -9690,6 +9690,33 @@ function createToggleFormat(schema, getModel = () => void 0) {
9690
9690
  // docx/ui/ribbon-action-ids.ts
9691
9691
  var RIBBON_ACTION_IDS = [
9692
9692
  "paste",
9693
+ "paste-options",
9694
+ "underline-style",
9695
+ "bullets-options",
9696
+ "numbering-options",
9697
+ "document-themes",
9698
+ "document-colors",
9699
+ "document-fonts",
9700
+ "document-paragraph-spacing",
9701
+ "document-effects",
9702
+ "set-default-formatting",
9703
+ "envelopes",
9704
+ "labels",
9705
+ "start-mail-merge",
9706
+ "select-recipients",
9707
+ "edit-recipient-list",
9708
+ "highlight-merge-fields",
9709
+ "address-block",
9710
+ "greeting-line",
9711
+ "insert-merge-field",
9712
+ "merge-rules",
9713
+ "match-fields",
9714
+ "update-labels",
9715
+ "preview-results",
9716
+ "find-recipient",
9717
+ "check-merge-errors",
9718
+ "finish-merge",
9719
+ "help",
9693
9720
  "delete-comment",
9694
9721
  "previous-comment",
9695
9722
  "next-comment",
@@ -9836,6 +9863,33 @@ var RIBBON_ACTION_IDS = [
9836
9863
  ];
9837
9864
  var RIBBON_ACTION_LABELS = {
9838
9865
  paste: "Paste",
9866
+ "paste-options": "Paste options",
9867
+ "underline-style": "Underline style",
9868
+ "bullets-options": "Bullets options",
9869
+ "numbering-options": "Numbering options",
9870
+ "document-themes": "Themes",
9871
+ "document-colors": "Colors",
9872
+ "document-fonts": "Fonts",
9873
+ "document-paragraph-spacing": "Paragraph spacing",
9874
+ "document-effects": "Effects",
9875
+ "set-default-formatting": "Set as Default",
9876
+ envelopes: "Envelopes",
9877
+ labels: "Labels",
9878
+ "start-mail-merge": "Start Mail Merge",
9879
+ "select-recipients": "Select Recipients",
9880
+ "edit-recipient-list": "Edit Recipient List",
9881
+ "highlight-merge-fields": "Highlight Merge Fields",
9882
+ "address-block": "Address Block",
9883
+ "greeting-line": "Greeting Line",
9884
+ "insert-merge-field": "Insert Merge Field",
9885
+ "merge-rules": "Rules",
9886
+ "match-fields": "Match Fields",
9887
+ "update-labels": "Update Labels",
9888
+ "preview-results": "Preview Results",
9889
+ "find-recipient": "Find Recipient",
9890
+ "check-merge-errors": "Check for Errors",
9891
+ "finish-merge": "Finish & Merge",
9892
+ help: "Help",
9839
9893
  "delete-comment": "Delete comment",
9840
9894
  "previous-comment": "Previous comment",
9841
9895
  "next-comment": "Next comment",
@@ -10512,18 +10566,40 @@ function applyThemeColors(host, previous, colors) {
10512
10566
  }
10513
10567
 
10514
10568
  // docx/ui/word-count.ts
10569
+ var segmenters = /* @__PURE__ */ new Map();
10570
+ var documentCounts = /* @__PURE__ */ new WeakMap();
10515
10571
  function countWords(text2, locale) {
10516
10572
  if (typeof Intl.Segmenter === "function") {
10517
- let segmenter;
10518
- try {
10519
- segmenter = new Intl.Segmenter(locale || void 0, { granularity: "word" });
10520
- } catch {
10521
- segmenter = new Intl.Segmenter(void 0, { granularity: "word" });
10573
+ const key = locale || "";
10574
+ let segmenter = segmenters.get(key);
10575
+ if (!segmenter) {
10576
+ try {
10577
+ segmenter = new Intl.Segmenter(locale || void 0, { granularity: "word" });
10578
+ } catch {
10579
+ segmenter = new Intl.Segmenter(void 0, { granularity: "word" });
10580
+ }
10581
+ if (segmenters.size >= 16) segmenters.clear();
10582
+ segmenters.set(key, segmenter);
10522
10583
  }
10523
- return [...segmenter.segment(text2)].filter((part) => part.isWordLike).length;
10584
+ let count = 0;
10585
+ for (const part of segmenter.segment(text2)) if (part.isWordLike) count++;
10586
+ return count;
10524
10587
  }
10525
10588
  return text2.match(/[\p{L}\p{N}][\p{L}\p{M}\p{N}'’]*/gu)?.length ?? 0;
10526
10589
  }
10590
+ function documentWordCount(node, locale) {
10591
+ const key = locale || "";
10592
+ const cached2 = documentCounts.get(node);
10593
+ const value = cached2?.get(key);
10594
+ if (value !== void 0) return value;
10595
+ let count = 0;
10596
+ if (node.isTextblock) count = countWords(node.textBetween(0, node.content.size, " "), locale);
10597
+ else node.forEach((child) => count += documentWordCount(child, locale));
10598
+ const counts = cached2 ?? /* @__PURE__ */ new Map();
10599
+ counts.set(key, count);
10600
+ documentCounts.set(node, counts);
10601
+ return count;
10602
+ }
10527
10603
 
10528
10604
  // docx/ui/zoom-fit.ts
10529
10605
  var PAGE_GAP = 24;
@@ -10580,6 +10656,7 @@ exports.deleteAroundMarkers = deleteAroundMarkers;
10580
10656
  exports.deleteComment = deleteComment;
10581
10657
  exports.deleteFieldSelection = deleteFieldSelection;
10582
10658
  exports.dispatchIsolatedCommand = dispatchIsolatedCommand;
10659
+ exports.documentWordCount = documentWordCount;
10583
10660
  exports.expectDefined = expectDefined;
10584
10661
  exports.explicitOffFields = explicitOffFields;
10585
10662
  exports.extraRunFields = extraRunFields;
@@ -9668,6 +9668,33 @@ function createToggleFormat(schema, getModel = () => void 0) {
9668
9668
  // docx/ui/ribbon-action-ids.ts
9669
9669
  var RIBBON_ACTION_IDS = [
9670
9670
  "paste",
9671
+ "paste-options",
9672
+ "underline-style",
9673
+ "bullets-options",
9674
+ "numbering-options",
9675
+ "document-themes",
9676
+ "document-colors",
9677
+ "document-fonts",
9678
+ "document-paragraph-spacing",
9679
+ "document-effects",
9680
+ "set-default-formatting",
9681
+ "envelopes",
9682
+ "labels",
9683
+ "start-mail-merge",
9684
+ "select-recipients",
9685
+ "edit-recipient-list",
9686
+ "highlight-merge-fields",
9687
+ "address-block",
9688
+ "greeting-line",
9689
+ "insert-merge-field",
9690
+ "merge-rules",
9691
+ "match-fields",
9692
+ "update-labels",
9693
+ "preview-results",
9694
+ "find-recipient",
9695
+ "check-merge-errors",
9696
+ "finish-merge",
9697
+ "help",
9671
9698
  "delete-comment",
9672
9699
  "previous-comment",
9673
9700
  "next-comment",
@@ -9814,6 +9841,33 @@ var RIBBON_ACTION_IDS = [
9814
9841
  ];
9815
9842
  var RIBBON_ACTION_LABELS = {
9816
9843
  paste: "Paste",
9844
+ "paste-options": "Paste options",
9845
+ "underline-style": "Underline style",
9846
+ "bullets-options": "Bullets options",
9847
+ "numbering-options": "Numbering options",
9848
+ "document-themes": "Themes",
9849
+ "document-colors": "Colors",
9850
+ "document-fonts": "Fonts",
9851
+ "document-paragraph-spacing": "Paragraph spacing",
9852
+ "document-effects": "Effects",
9853
+ "set-default-formatting": "Set as Default",
9854
+ envelopes: "Envelopes",
9855
+ labels: "Labels",
9856
+ "start-mail-merge": "Start Mail Merge",
9857
+ "select-recipients": "Select Recipients",
9858
+ "edit-recipient-list": "Edit Recipient List",
9859
+ "highlight-merge-fields": "Highlight Merge Fields",
9860
+ "address-block": "Address Block",
9861
+ "greeting-line": "Greeting Line",
9862
+ "insert-merge-field": "Insert Merge Field",
9863
+ "merge-rules": "Rules",
9864
+ "match-fields": "Match Fields",
9865
+ "update-labels": "Update Labels",
9866
+ "preview-results": "Preview Results",
9867
+ "find-recipient": "Find Recipient",
9868
+ "check-merge-errors": "Check for Errors",
9869
+ "finish-merge": "Finish & Merge",
9870
+ help: "Help",
9817
9871
  "delete-comment": "Delete comment",
9818
9872
  "previous-comment": "Previous comment",
9819
9873
  "next-comment": "Next comment",
@@ -10490,18 +10544,40 @@ function applyThemeColors(host, previous, colors) {
10490
10544
  }
10491
10545
 
10492
10546
  // docx/ui/word-count.ts
10547
+ var segmenters = /* @__PURE__ */ new Map();
10548
+ var documentCounts = /* @__PURE__ */ new WeakMap();
10493
10549
  function countWords(text2, locale) {
10494
10550
  if (typeof Intl.Segmenter === "function") {
10495
- let segmenter;
10496
- try {
10497
- segmenter = new Intl.Segmenter(locale || void 0, { granularity: "word" });
10498
- } catch {
10499
- segmenter = new Intl.Segmenter(void 0, { granularity: "word" });
10551
+ const key = locale || "";
10552
+ let segmenter = segmenters.get(key);
10553
+ if (!segmenter) {
10554
+ try {
10555
+ segmenter = new Intl.Segmenter(locale || void 0, { granularity: "word" });
10556
+ } catch {
10557
+ segmenter = new Intl.Segmenter(void 0, { granularity: "word" });
10558
+ }
10559
+ if (segmenters.size >= 16) segmenters.clear();
10560
+ segmenters.set(key, segmenter);
10500
10561
  }
10501
- return [...segmenter.segment(text2)].filter((part) => part.isWordLike).length;
10562
+ let count = 0;
10563
+ for (const part of segmenter.segment(text2)) if (part.isWordLike) count++;
10564
+ return count;
10502
10565
  }
10503
10566
  return text2.match(/[\p{L}\p{N}][\p{L}\p{M}\p{N}'’]*/gu)?.length ?? 0;
10504
10567
  }
10568
+ function documentWordCount(node, locale) {
10569
+ const key = locale || "";
10570
+ const cached2 = documentCounts.get(node);
10571
+ const value = cached2?.get(key);
10572
+ if (value !== void 0) return value;
10573
+ let count = 0;
10574
+ if (node.isTextblock) count = countWords(node.textBetween(0, node.content.size, " "), locale);
10575
+ else node.forEach((child) => count += documentWordCount(child, locale));
10576
+ const counts = cached2 ?? /* @__PURE__ */ new Map();
10577
+ counts.set(key, count);
10578
+ documentCounts.set(node, counts);
10579
+ return count;
10580
+ }
10505
10581
 
10506
10582
  // docx/ui/zoom-fit.ts
10507
10583
  var PAGE_GAP = 24;
@@ -10512,4 +10588,4 @@ function fitZoomPercent(mode, viewport, page) {
10512
10588
  return Math.max(10, Math.min(500, Math.floor(ratio * 100)));
10513
10589
  }
10514
10590
 
10515
- export { CollaborationAuthority, CollaborationClient, DirtyState, EDITOR_THEME_MODES, FIELD_RESULT_REPAIR_META, HEADER_FOOTER_INPUT, NotePartsStep, PAGE_GAP, PARAGRAPH_KEEP_KEYS, REMOTE_TRANSACTION_META, RIBBON_ACTION_IDS, RIBBON_ACTION_LABELS, SectionPartsStep, THEME_KEYS, WordYjsCollaboration, WordYjsComments, WordYjsMedia, acceptAllChanges, acceptChangeAtCursor, acceptRevisionRange, addComment, appendInlineNode, applyMarkFormatting, applyRunFormattingPatch, applyThemeColors, applyWordLink, authorColor, backstageFocus, chartNodeSpec, clearDirectRunFormatting, collectRevisionRanges, commentAnchors, commentHistoryAttributes, commentIdsAtSelection, commentIdsFromMarks, commentIdsFromNode, commentThreadsFromDoc, countWords, createCollaborationIdGenerator, createToggleFormat, cssBorderSide, darkTheme, deleteAroundMarkers, deleteComment, deleteFieldSelection, dispatchIsolatedCommand, expectDefined, explicitOffFields, extraRunFields, extraRunProperties, fieldGuardPlugin, fieldMarkerNodeSpec, fieldResultRanges, fieldsBalanced, fitZoomPercent, formattingRevision, freezeBatch, goToComment, goToNextChange, goToPreviousChange, hardBreakNodeSpec, hasAnyChange, hasChangeAtCursor, hasNoteRevisions, imageNodeSpec, inlineNodeRun, insertWordHardBreak, isNavigableHref, isRibbonActionId, isWordYjsRemoteTransaction, ligatureCss, ligatureStyle, lightTheme, linkFromMarks, linkMarkSpec, markSpecs, marksForRun, moveName, nodeChart, nodeNumbering, normalizeRibbonActions, normalizeThemeMode, notePartsJson, noteReferenceNodeSpec, pageBreakNodeSpec, paragraphAttrs, paragraphBoxCss, paragraphFormattingRevision, paragraphFromAttrs, parseBatch, parseBordersJson, placementClass, refreshWordYjsPresence, rejectAllChanges, rejectChangeAtCursor, rejectRevisionRange, removeCommentAnchor, removeCommentThread, removeWordLink, repairCollaborativeDocumentIds, repairCollaborativeParagraphIds, replaceAroundMarkers, replyToComment, resolveCellVisuals, resolveComment, resolveNoteRevisions, restoreNoteParts, restoreSectionParts, reviewMarks, ribbonActionIdForLabel, runPropertiesMark, runToInlineNodes, sameJson2 as sameJson, sameRuns, sectionPartsJson, setCommentThreads, setReviewRecordingPreferences, svgMarkupSpec, swatchColor, tableCellStyle, tableStructureGuardPlugin, tableStyle, themeDrawing, themeToCssVars, toggleTrackChanges, toggleTrackFormatting, toggleTrackMoves, trackChangesPlugin, trackChangesPluginKey, updateCommentThreads, wordHighlightColors, wordLinkRangeAt, wordYjsPluginKey, wordYjsPresencePlugin, wordYjsRedo, wordYjsUndo };
10591
+ export { CollaborationAuthority, CollaborationClient, DirtyState, EDITOR_THEME_MODES, FIELD_RESULT_REPAIR_META, HEADER_FOOTER_INPUT, NotePartsStep, PAGE_GAP, PARAGRAPH_KEEP_KEYS, REMOTE_TRANSACTION_META, RIBBON_ACTION_IDS, RIBBON_ACTION_LABELS, SectionPartsStep, THEME_KEYS, WordYjsCollaboration, WordYjsComments, WordYjsMedia, acceptAllChanges, acceptChangeAtCursor, acceptRevisionRange, addComment, appendInlineNode, applyMarkFormatting, applyRunFormattingPatch, applyThemeColors, applyWordLink, authorColor, backstageFocus, chartNodeSpec, clearDirectRunFormatting, collectRevisionRanges, commentAnchors, commentHistoryAttributes, commentIdsAtSelection, commentIdsFromMarks, commentIdsFromNode, commentThreadsFromDoc, countWords, createCollaborationIdGenerator, createToggleFormat, cssBorderSide, darkTheme, deleteAroundMarkers, deleteComment, deleteFieldSelection, dispatchIsolatedCommand, documentWordCount, expectDefined, explicitOffFields, extraRunFields, extraRunProperties, fieldGuardPlugin, fieldMarkerNodeSpec, fieldResultRanges, fieldsBalanced, fitZoomPercent, formattingRevision, freezeBatch, goToComment, goToNextChange, goToPreviousChange, hardBreakNodeSpec, hasAnyChange, hasChangeAtCursor, hasNoteRevisions, imageNodeSpec, inlineNodeRun, insertWordHardBreak, isNavigableHref, isRibbonActionId, isWordYjsRemoteTransaction, ligatureCss, ligatureStyle, lightTheme, linkFromMarks, linkMarkSpec, markSpecs, marksForRun, moveName, nodeChart, nodeNumbering, normalizeRibbonActions, normalizeThemeMode, notePartsJson, noteReferenceNodeSpec, pageBreakNodeSpec, paragraphAttrs, paragraphBoxCss, paragraphFormattingRevision, paragraphFromAttrs, parseBatch, parseBordersJson, placementClass, refreshWordYjsPresence, rejectAllChanges, rejectChangeAtCursor, rejectRevisionRange, removeCommentAnchor, removeCommentThread, removeWordLink, repairCollaborativeDocumentIds, repairCollaborativeParagraphIds, replaceAroundMarkers, replyToComment, resolveCellVisuals, resolveComment, resolveNoteRevisions, restoreNoteParts, restoreSectionParts, reviewMarks, ribbonActionIdForLabel, runPropertiesMark, runToInlineNodes, sameJson2 as sameJson, sameRuns, sectionPartsJson, setCommentThreads, setReviewRecordingPreferences, svgMarkupSpec, swatchColor, tableCellStyle, tableStructureGuardPlugin, tableStyle, themeDrawing, themeToCssVars, toggleTrackChanges, toggleTrackFormatting, toggleTrackMoves, trackChangesPlugin, trackChangesPluginKey, updateCommentThreads, wordHighlightColors, wordLinkRangeAt, wordYjsPluginKey, wordYjsPresencePlugin, wordYjsRedo, wordYjsUndo };
@@ -5,7 +5,7 @@ import type { LegacyRibbonLabel } from './ribbon-legacy-labels.js';
5
5
  * `element-api.test.ts` fails when a control is added to or removed from the ribbon without
6
6
  * updating this list.
7
7
  */
8
- export declare const RIBBON_ACTION_IDS: readonly ['paste', 'delete-comment', 'previous-comment', 'next-comment', 'insert-caption', 'cross-reference', 'ruler', 'page-setup-dialog', 'cover-page', 'bookmark', 'sort', 'find-options', 'select-options', 'add-text', 'blank-page', 'read-aloud', 'gridlines', 'navigation-pane', 'shading', 'borders', 'header', 'footer', 'page-number', 'header-footer-link', 'header-footer-close', 'header-footer-go-header', 'header-footer-go-footer', 'header-footer-previous', 'header-footer-next', 'header-from-top', 'footer-from-bottom', 'page-size', 'font-dialog', 'paragraph-dialog', 'indent-left', 'indent-right', 'zoom-actual-size', 'multiple-pages', 'page-width', 'one-page', 'word-count', 'spelling', 'symbol', 'date-and-time', 'line-numbers', 'multilevel-list', 'drop-cap', 'change-case', 'format-painter', 'show-paragraph-marks', 'select-all', 'replace', 'cut', 'copy', 'grow-font', 'shrink-font', 'font-family', 'font-size', 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'font-color', 'text-highlight', 'clear-formatting', 'decrease-indent', 'increase-indent', 'spacing-after', 'spacing-before', 'line-spacing', 'bulleted-list', 'numbered-list', 'decrease-list-level', 'increase-list-level', 'remove-list', 'align-left', 'align-center', 'align-right', 'justify', 'find-and-replace', 'insert-table', 'insert-picture', 'format-picture', 'insert-link', 'insert-page-break', 'insert-column-break', 'margins', 'orientation', 'vertical-alignment', 'columns', 'page-color', 'text-box', 'page-borders', 'watermark', 'hyphenation', 'page-number-format', 'page-numbering', 'different-first-page', 'different-odd-and-even-pages', 'next-page-section-break', 'continuous-section-break', 'even-page-section-break', 'odd-page-section-break', 'insert-table-of-contents', 'update-table-of-contents', 'update-fields', 'insert-table-of-figures', 'insert-footnote', 'insert-endnote', 'paragraph-direction', 'text-language', 'custom-text-language-tag', 'east-asian-language', 'custom-east-asian-language-tag', 'complex-script-language', 'custom-complex-script-language-tag', 'run-direction', 'track-changes', 'tracking-options', 'display-for-review', 'previous-change', 'next-change', 'accept', 'reject', 'accept-all', 'reject-all', 'add-comment', 'comments', 'show-hidden-text', 'page-thumbnails', 'zoom', 'zoom-dialog', 'layout-view', 'print', 'insert-row-above', 'insert-row-below', 'delete-row', 'insert-column-left', 'insert-column-right', 'delete-column', 'delete-table', 'table-properties'];
8
+ export declare const RIBBON_ACTION_IDS: readonly ['paste', 'paste-options', 'underline-style', 'bullets-options', 'numbering-options', 'document-themes', 'document-colors', 'document-fonts', 'document-paragraph-spacing', 'document-effects', 'set-default-formatting', 'envelopes', 'labels', 'start-mail-merge', 'select-recipients', 'edit-recipient-list', 'highlight-merge-fields', 'address-block', 'greeting-line', 'insert-merge-field', 'merge-rules', 'match-fields', 'update-labels', 'preview-results', 'find-recipient', 'check-merge-errors', 'finish-merge', 'help', 'delete-comment', 'previous-comment', 'next-comment', 'insert-caption', 'cross-reference', 'ruler', 'page-setup-dialog', 'cover-page', 'bookmark', 'sort', 'find-options', 'select-options', 'add-text', 'blank-page', 'read-aloud', 'gridlines', 'navigation-pane', 'shading', 'borders', 'header', 'footer', 'page-number', 'header-footer-link', 'header-footer-close', 'header-footer-go-header', 'header-footer-go-footer', 'header-footer-previous', 'header-footer-next', 'header-from-top', 'footer-from-bottom', 'page-size', 'font-dialog', 'paragraph-dialog', 'indent-left', 'indent-right', 'zoom-actual-size', 'multiple-pages', 'page-width', 'one-page', 'word-count', 'spelling', 'symbol', 'date-and-time', 'line-numbers', 'multilevel-list', 'drop-cap', 'change-case', 'format-painter', 'show-paragraph-marks', 'select-all', 'replace', 'cut', 'copy', 'grow-font', 'shrink-font', 'font-family', 'font-size', 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'font-color', 'text-highlight', 'clear-formatting', 'decrease-indent', 'increase-indent', 'spacing-after', 'spacing-before', 'line-spacing', 'bulleted-list', 'numbered-list', 'decrease-list-level', 'increase-list-level', 'remove-list', 'align-left', 'align-center', 'align-right', 'justify', 'find-and-replace', 'insert-table', 'insert-picture', 'format-picture', 'insert-link', 'insert-page-break', 'insert-column-break', 'margins', 'orientation', 'vertical-alignment', 'columns', 'page-color', 'text-box', 'page-borders', 'watermark', 'hyphenation', 'page-number-format', 'page-numbering', 'different-first-page', 'different-odd-and-even-pages', 'next-page-section-break', 'continuous-section-break', 'even-page-section-break', 'odd-page-section-break', 'insert-table-of-contents', 'update-table-of-contents', 'update-fields', 'insert-table-of-figures', 'insert-footnote', 'insert-endnote', 'paragraph-direction', 'text-language', 'custom-text-language-tag', 'east-asian-language', 'custom-east-asian-language-tag', 'complex-script-language', 'custom-complex-script-language-tag', 'run-direction', 'track-changes', 'tracking-options', 'display-for-review', 'previous-change', 'next-change', 'accept', 'reject', 'accept-all', 'reject-all', 'add-comment', 'comments', 'show-hidden-text', 'page-thumbnails', 'zoom', 'zoom-dialog', 'layout-view', 'print', 'insert-row-above', 'insert-row-below', 'delete-row', 'insert-column-left', 'insert-column-right', 'delete-column', 'delete-table', 'table-properties'];
9
9
  export type RibbonActionId = (typeof RIBBON_ACTION_IDS)[number];
10
10
  /** English control label of each action, the lookup key into the locale strings. Display-only. */
11
11
  export declare const RIBBON_ACTION_LABELS: Readonly<Record<RibbonActionId, string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ribbon-action-ids.d.ts","sourceRoot":"","sources":["../../../docx/ui/ribbon-action-ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ribbon-action-ids.d.ts","sourceRoot":"","sources":["../../../docx/ui/ribbon-action-ids.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import type { Node } from 'prosemirror-model';
1
2
  /** Unicode-aware word counting; segmentation is provided by the host's ICU data. */
2
3
  export declare function countWords(text: string, locale?: string): number;
4
+ /** Immutable editor subtrees retain their counts across typing, selection changes and undo. */
5
+ export declare function documentWordCount(node: Node, locale?: string): number;
3
6
  //# sourceMappingURL=word-count.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"word-count.d.ts","sourceRoot":"","sources":["../../../docx/ui/word-count.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAYhE"}
1
+ {"version":3,"file":"word-count.d.ts","sourceRoot":"","sources":["../../../docx/ui/word-count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAK9C,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBhE;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAYrE"}
@@ -0,0 +1,90 @@
1
+ /** Format-neutral move and resize geometry, extracted from the PowerPoint editing overlay. */
2
+ export declare const DEFAULT_INTERACTION_MIN_SIZE = 12;
3
+ /** Axis-aligned box in element (unscaled) coordinate space, plus rotation. */
4
+ export interface InteractionBox {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ /** Degrees. Defaults to 0 when omitted. */
10
+ rotation?: number;
11
+ }
12
+ /** Result of a drag/resize/rotate computation. */
13
+ export interface BoxTransform {
14
+ x: number;
15
+ y: number;
16
+ width: number;
17
+ height: number;
18
+ rotation: number;
19
+ }
20
+ /** The eight resize handles, named by compass direction. */
21
+ export type ResizeHandleId = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w';
22
+ export declare const RESIZE_HANDLES: readonly ResizeHandleId[];
23
+ /** Where one resize handle sits on the box, and the cursor it shows. */
24
+ export interface ResizeHandleGeometry {
25
+ /** CSS cursor value (not a class name). */
26
+ cursor: string;
27
+ /** Fractional x within the box: 0 = left edge, 1 = right edge. */
28
+ fx: number;
29
+ /** Fractional y within the box: 0 = top edge, 1 = bottom edge. */
30
+ fy: number;
31
+ }
32
+ /**
33
+ * The canonical placement + cursor for all eight handles.
34
+ *
35
+ * All five bindings had their own copy of this table: Vue as `HANDLE_META`,
36
+ * Svelte and Vanilla as a `HANDLE_CURSORS` / `HANDLE_POSITIONS` pair, Angular
37
+ * as a `switch` plus a string-matching `handleAnchor`, and React as `cursor-*`
38
+ * Tailwind classes on hand-placed corner/edge lists. Five copies of eight
39
+ * constants is five chances for one binding to put a handle on the wrong corner
40
+ * or show a resize cursor pointing the wrong way, with nothing to catch it.
41
+ */
42
+ export declare const RESIZE_HANDLE_GEOMETRY: Readonly<Record<ResizeHandleId, ResizeHandleGeometry>>;
43
+ /**
44
+ * Rotate-handle stem length in SCREEN px, i.e. constant at any zoom.
45
+ *
46
+ * The overlay lives inside the zoom-scaled stage, so this is divided by the
47
+ * zoom wherever it is applied; a stem that scaled with the zoom would drift
48
+ * away from the box as the user zoomed out.
49
+ */
50
+ export declare const ROTATE_STEM_PX = 24;
51
+ export interface Point {
52
+ x: number;
53
+ y: number;
54
+ }
55
+ export interface ResizeOptions {
56
+ /** Minimum width/height in element px. Defaults to `DEFAULT_INTERACTION_MIN_SIZE`. */
57
+ minSize?: number;
58
+ }
59
+ /**
60
+ * Rotate a screen-space delta into element-local space.
61
+ *
62
+ * Given a vector expressed in the canvas (screen) frame and the element's
63
+ * rotation in degrees, return the same vector expressed in the element's local
64
+ * (un-rotated) frame. This is the inverse rotation of `rotationDeg`.
65
+ */
66
+ export declare function rotateDelta(dx: number, dy: number, rotationDeg: number): Point;
67
+ /** Center point of a box in element coordinates. */
68
+ export declare function boxCenter(box: InteractionBox): Point;
69
+ /**
70
+ * Apply a screen-space pointer delta as a plain move of the whole box.
71
+ *
72
+ * Position is stored axis-aligned, so rotation does NOT affect a move - we only
73
+ * scale the screen delta down by `zoom` to get element px.
74
+ */
75
+ export declare function applyDragDelta(box: InteractionBox, dxScreen: number, dyScreen: number, zoom: number): BoxTransform;
76
+ /**
77
+ * Compute the new geometry for a resize drag on a given handle.
78
+ *
79
+ * `dxScreen`/`dyScreen` are the *total* pointer delta from the gesture start,
80
+ * in screen px. They are scaled by `zoom` into element px and (when the element
81
+ * is rotated) rotated into the element's local frame so the handle behaves
82
+ * intuitively. The min-size clamp uses `opts.minSize` (default
83
+ * `DEFAULT_INTERACTION_MIN_SIZE`).
84
+ *
85
+ * The returned box keeps the element's `rotation` unchanged. x/y describe the
86
+ * new axis-aligned top-left in element space; for rotated elements this matches
87
+ * the React behaviour of resizing in local space under a CSS transform.
88
+ */
89
+ export declare function applyResize(box: InteractionBox, handle: ResizeHandleId, dxScreen: number, dyScreen: number, zoom: number, opts?: ResizeOptions): BoxTransform;
90
+ //# sourceMappingURL=element-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-transform.d.ts","sourceRoot":"","sources":["../../geometry/element-transform.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;AAE/E,eAAO,MAAM,cAAc,EAAE,SAAS,cAAc,EAS1C,CAAC;AAEX,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACpC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC,CASzF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,KAAK;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,WAAW,aAAa;IAC7B,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CAW9E;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,KAAK,CAEpD;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACV,YAAY,CASd;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAC1B,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,aAAkB,GACtB,YAAY,CAmCd"}