ooxml-core 0.18.0 → 0.20.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 (297) hide show
  1. package/dist/automation/index.cjs +195 -193
  2. package/dist/automation/index.mjs +195 -193
  3. package/dist/diagram/index.cjs +2 -1
  4. package/dist/diagram/index.mjs +2 -1
  5. package/dist/docx/attr-units.d.ts +11 -0
  6. package/dist/docx/attr-units.d.ts.map +1 -0
  7. package/dist/docx/block-parser.d.ts.map +1 -1
  8. package/dist/docx/case-transform.d.ts +9 -0
  9. package/dist/docx/case-transform.d.ts.map +1 -0
  10. package/dist/docx/column-settings.d.ts +16 -0
  11. package/dist/docx/column-settings.d.ts.map +1 -0
  12. package/dist/docx/embedded.cjs +2 -1
  13. package/dist/docx/embedded.mjs +2 -1
  14. package/dist/docx/index.cjs +461 -3
  15. package/dist/docx/index.d.ts +8 -0
  16. package/dist/docx/index.d.ts.map +1 -1
  17. package/dist/docx/index.mjs +426 -4
  18. package/dist/docx/layout/adapter.d.ts.map +1 -1
  19. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  20. package/dist/docx/line-spacing.d.ts +9 -0
  21. package/dist/docx/line-spacing.d.ts.map +1 -0
  22. package/dist/docx/load/index.cjs +2 -1
  23. package/dist/docx/load/index.mjs +2 -1
  24. package/dist/docx/page-setup-model.d.ts +29 -0
  25. package/dist/docx/page-setup-model.d.ts.map +1 -0
  26. package/dist/docx/page-size.d.ts +11 -0
  27. package/dist/docx/page-size.d.ts.map +1 -0
  28. package/dist/docx/parse.d.ts.map +1 -1
  29. package/dist/docx/section-edit.d.ts +19 -0
  30. package/dist/docx/section-edit.d.ts.map +1 -0
  31. package/dist/docx/section-layout.d.ts +14 -0
  32. package/dist/docx/section-layout.d.ts.map +1 -0
  33. package/dist/docx/tab-stops.d.ts.map +1 -1
  34. package/dist/docx/ui/backstage-focus.d.ts +6 -0
  35. package/dist/docx/ui/backstage-focus.d.ts.map +1 -0
  36. package/dist/docx/ui/break-note-schema.d.ts +11 -0
  37. package/dist/docx/ui/break-note-schema.d.ts.map +1 -0
  38. package/dist/docx/ui/collaboration-authority.d.ts +31 -0
  39. package/dist/docx/ui/collaboration-authority.d.ts.map +1 -0
  40. package/dist/docx/ui/collaboration-identity.d.ts +8 -0
  41. package/dist/docx/ui/collaboration-identity.d.ts.map +1 -0
  42. package/dist/docx/ui/collaboration-protocol.d.ts +25 -0
  43. package/dist/docx/ui/collaboration-protocol.d.ts.map +1 -0
  44. package/dist/docx/ui/collaboration.d.ts +30 -0
  45. package/dist/docx/ui/collaboration.d.ts.map +1 -0
  46. package/dist/docx/ui/defined.d.ts +3 -0
  47. package/dist/docx/ui/defined.d.ts.map +1 -0
  48. package/dist/docx/ui/dirty-state.d.ts +9 -0
  49. package/dist/docx/ui/dirty-state.d.ts.map +1 -0
  50. package/dist/docx/ui/field-guard.d.ts +21 -0
  51. package/dist/docx/ui/field-guard.d.ts.map +1 -0
  52. package/dist/docx/ui/header-footer-history.d.ts +15 -0
  53. package/dist/docx/ui/header-footer-history.d.ts.map +1 -0
  54. package/dist/docx/ui/index.cjs +2380 -0
  55. package/dist/docx/ui/index.d.ts +30 -0
  56. package/dist/docx/ui/index.d.ts.map +1 -0
  57. package/dist/docx/ui/index.mjs +2317 -0
  58. package/dist/docx/ui/inline-content-schema.d.ts +15 -0
  59. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -0
  60. package/dist/docx/ui/ligature-style.d.ts +4 -0
  61. package/dist/docx/ui/ligature-style.d.ts.map +1 -0
  62. package/dist/docx/ui/node-numbering.d.ts +8 -0
  63. package/dist/docx/ui/node-numbering.d.ts.map +1 -0
  64. package/dist/docx/ui/review-schema.d.ts +90 -0
  65. package/dist/docx/ui/review-schema.d.ts.map +1 -0
  66. package/dist/docx/ui/ribbon-action-ids.d.ts +26 -0
  67. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -0
  68. package/dist/docx/ui/ribbon-colors.d.ts +3 -0
  69. package/dist/docx/ui/ribbon-colors.d.ts.map +1 -0
  70. package/dist/docx/ui/ribbon-legacy-labels.d.ts +6 -0
  71. package/dist/docx/ui/ribbon-legacy-labels.d.ts.map +1 -0
  72. package/dist/docx/ui/run-compare.d.ts +5 -0
  73. package/dist/docx/ui/run-compare.d.ts.map +1 -0
  74. package/dist/docx/ui/run-extra-mark.d.ts +17 -0
  75. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -0
  76. package/dist/docx/ui/schema-marks.d.ts +273 -0
  77. package/dist/docx/ui/schema-marks.d.ts.map +1 -0
  78. package/dist/docx/ui/smartart-theme.d.ts +21 -0
  79. package/dist/docx/ui/smartart-theme.d.ts.map +1 -0
  80. package/dist/docx/ui/table-render.d.ts +24 -0
  81. package/dist/docx/ui/table-render.d.ts.map +1 -0
  82. package/dist/docx/ui/table-visuals.d.ts +3 -0
  83. package/dist/docx/ui/table-visuals.d.ts.map +1 -0
  84. package/dist/docx/ui/theme/css-vars.d.ts +6 -0
  85. package/dist/docx/ui/theme/css-vars.d.ts.map +1 -0
  86. package/dist/docx/ui/theme/defaults.d.ts +12 -0
  87. package/dist/docx/ui/theme/defaults.d.ts.map +1 -0
  88. package/dist/docx/ui/theme/element.d.ts +9 -0
  89. package/dist/docx/ui/theme/element.d.ts.map +1 -0
  90. package/dist/docx/ui/theme/index.d.ts +5 -0
  91. package/dist/docx/ui/theme/index.d.ts.map +1 -0
  92. package/dist/docx/ui/theme/types.d.ts +42 -0
  93. package/dist/docx/ui/theme/types.d.ts.map +1 -0
  94. package/dist/docx/ui/word-count.d.ts +3 -0
  95. package/dist/docx/ui/word-count.d.ts.map +1 -0
  96. package/dist/docx/ui/zoom-fit.d.ts +16 -0
  97. package/dist/docx/ui/zoom-fit.d.ts.map +1 -0
  98. package/dist/docx/validate-paragraph.d.ts.map +1 -1
  99. package/dist/index.cjs +2 -1
  100. package/dist/index.mjs +2 -1
  101. package/dist/math/index.cjs +2 -1
  102. package/dist/math/index.mjs +2 -1
  103. package/dist/opc/index.cjs +2 -1
  104. package/dist/opc/index.mjs +2 -1
  105. package/dist/visio/index.cjs +2 -1
  106. package/dist/visio/index.mjs +2 -1
  107. package/dist/visio/ui/contract.d.ts +33 -0
  108. package/dist/visio/ui/contract.d.ts.map +1 -0
  109. package/dist/visio/ui/demo-document.d.ts +4 -0
  110. package/dist/visio/ui/demo-document.d.ts.map +1 -0
  111. package/dist/visio/ui/diagnostics.d.ts +10 -0
  112. package/dist/visio/ui/diagnostics.d.ts.map +1 -0
  113. package/dist/visio/ui/document-history.d.ts +43 -0
  114. package/dist/visio/ui/document-history.d.ts.map +1 -0
  115. package/dist/visio/ui/document-text-search.d.ts +45 -0
  116. package/dist/visio/ui/document-text-search.d.ts.map +1 -0
  117. package/dist/visio/ui/edit-commands.d.ts +4 -0
  118. package/dist/visio/ui/edit-commands.d.ts.map +1 -0
  119. package/dist/visio/ui/edit-error.d.ts +5 -0
  120. package/dist/visio/ui/edit-error.d.ts.map +1 -0
  121. package/dist/visio/ui/foreign-vector-budget.d.ts +25 -0
  122. package/dist/visio/ui/foreign-vector-budget.d.ts.map +1 -0
  123. package/dist/visio/ui/index.cjs +1523 -0
  124. package/dist/visio/ui/index.d.ts +12 -0
  125. package/dist/visio/ui/index.d.ts.map +1 -0
  126. package/dist/visio/ui/index.mjs +1498 -0
  127. package/dist/visio/ui/scene-details.d.ts +8 -0
  128. package/dist/visio/ui/scene-details.d.ts.map +1 -0
  129. package/dist/visio/ui/scene-validation.d.ts +5 -0
  130. package/dist/visio/ui/scene-validation.d.ts.map +1 -0
  131. package/dist/visio/ui/snapshot-scene.d.ts +9 -0
  132. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -0
  133. package/dist/xlsx/index.cjs +100 -98
  134. package/dist/xlsx/index.mjs +100 -98
  135. package/dist/xlsx/load/index.cjs +68 -66
  136. package/dist/xlsx/load/index.mjs +68 -66
  137. package/dist/xlsx/ui/backstage/templates.d.ts +16 -0
  138. package/dist/xlsx/ui/backstage/templates.d.ts.map +1 -0
  139. package/dist/xlsx/ui/commands/alignment.d.ts +4 -0
  140. package/dist/xlsx/ui/commands/alignment.d.ts.map +1 -0
  141. package/dist/xlsx/ui/commands/cells.d.ts +3 -0
  142. package/dist/xlsx/ui/commands/cells.d.ts.map +1 -0
  143. package/dist/xlsx/ui/commands/cf-presets.d.ts +15 -0
  144. package/dist/xlsx/ui/commands/cf-presets.d.ts.map +1 -0
  145. package/dist/xlsx/ui/commands/clipboard.d.ts +22 -0
  146. package/dist/xlsx/ui/commands/clipboard.d.ts.map +1 -0
  147. package/dist/xlsx/ui/commands/contextual.d.ts +13 -0
  148. package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -0
  149. package/dist/xlsx/ui/commands/data.d.ts +3 -0
  150. package/dist/xlsx/ui/commands/data.d.ts.map +1 -0
  151. package/dist/xlsx/ui/commands/editing.d.ts +13 -0
  152. package/dist/xlsx/ui/commands/editing.d.ts.map +1 -0
  153. package/dist/xlsx/ui/commands/font.d.ts +21 -0
  154. package/dist/xlsx/ui/commands/font.d.ts.map +1 -0
  155. package/dist/xlsx/ui/commands/formulas.d.ts +15 -0
  156. package/dist/xlsx/ui/commands/formulas.d.ts.map +1 -0
  157. package/dist/xlsx/ui/commands/i18n/core-features.d.ts +3 -0
  158. package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -0
  159. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts +3 -0
  160. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts.map +1 -0
  161. package/dist/xlsx/ui/commands/i18n/index.d.ts +4 -0
  162. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -0
  163. package/dist/xlsx/ui/commands/i18n/messages.d.ts +3 -0
  164. package/dist/xlsx/ui/commands/i18n/messages.d.ts.map +1 -0
  165. package/dist/xlsx/ui/commands/i18n/navigation.d.ts +3 -0
  166. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -0
  167. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts +3 -0
  168. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts.map +1 -0
  169. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts +3 -0
  170. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -0
  171. package/dist/xlsx/ui/commands/i18n/rules.d.ts +3 -0
  172. package/dist/xlsx/ui/commands/i18n/rules.d.ts.map +1 -0
  173. package/dist/xlsx/ui/commands/i18n/tools.d.ts +3 -0
  174. package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -0
  175. package/dist/xlsx/ui/commands/i18n/types.d.ts +5 -0
  176. package/dist/xlsx/ui/commands/i18n/types.d.ts.map +1 -0
  177. package/dist/xlsx/ui/commands/icons.d.ts +4 -0
  178. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -0
  179. package/dist/xlsx/ui/commands/number.d.ts +11 -0
  180. package/dist/xlsx/ui/commands/number.d.ts.map +1 -0
  181. package/dist/xlsx/ui/commands/page-layout.d.ts +10 -0
  182. package/dist/xlsx/ui/commands/page-layout.d.ts.map +1 -0
  183. package/dist/xlsx/ui/commands/select-special.d.ts +12 -0
  184. package/dist/xlsx/ui/commands/select-special.d.ts.map +1 -0
  185. package/dist/xlsx/ui/commands/sort-filter.d.ts +3 -0
  186. package/dist/xlsx/ui/commands/sort-filter.d.ts.map +1 -0
  187. package/dist/xlsx/ui/commands/style-presets.d.ts +21 -0
  188. package/dist/xlsx/ui/commands/style-presets.d.ts.map +1 -0
  189. package/dist/xlsx/ui/commands/util.d.ts +59 -0
  190. package/dist/xlsx/ui/commands/util.d.ts.map +1 -0
  191. package/dist/xlsx/ui/commands.d.ts +36 -0
  192. package/dist/xlsx/ui/commands.d.ts.map +1 -0
  193. package/dist/xlsx/ui/context-menu/items.d.ts +36 -0
  194. package/dist/xlsx/ui/context-menu/items.d.ts.map +1 -0
  195. package/dist/xlsx/ui/context.d.ts +65 -0
  196. package/dist/xlsx/ui/context.d.ts.map +1 -0
  197. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts +28 -0
  198. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts.map +1 -0
  199. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts +40 -0
  200. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts.map +1 -0
  201. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts +9 -0
  202. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts.map +1 -0
  203. package/dist/xlsx/ui/dialogs.d.ts +9 -0
  204. package/dist/xlsx/ui/dialogs.d.ts.map +1 -0
  205. package/dist/xlsx/ui/dirty-state.d.ts +9 -0
  206. package/dist/xlsx/ui/dirty-state.d.ts.map +1 -0
  207. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts +23 -0
  208. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts.map +1 -0
  209. package/dist/xlsx/ui/grid/cell-items.d.ts +42 -0
  210. package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -0
  211. package/dist/xlsx/ui/grid/cell-paint.d.ts +26 -0
  212. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -0
  213. package/dist/xlsx/ui/grid/edit-bridge.d.ts +47 -0
  214. package/dist/xlsx/ui/grid/edit-bridge.d.ts.map +1 -0
  215. package/dist/xlsx/ui/grid/geometry.d.ts +76 -0
  216. package/dist/xlsx/ui/grid/geometry.d.ts.map +1 -0
  217. package/dist/xlsx/ui/grid/icon-sets.d.ts +3 -0
  218. package/dist/xlsx/ui/grid/icon-sets.d.ts.map +1 -0
  219. package/dist/xlsx/ui/grid/number-fit.d.ts +3 -0
  220. package/dist/xlsx/ui/grid/number-fit.d.ts.map +1 -0
  221. package/dist/xlsx/ui/grid/selection-ops.d.ts +32 -0
  222. package/dist/xlsx/ui/grid/selection-ops.d.ts.map +1 -0
  223. package/dist/xlsx/ui/grid/view-cache.d.ts +15 -0
  224. package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -0
  225. package/dist/xlsx/ui/index.cjs +28484 -0
  226. package/dist/xlsx/ui/index.d.ts +56 -0
  227. package/dist/xlsx/ui/index.d.ts.map +1 -0
  228. package/dist/xlsx/ui/index.mjs +28290 -0
  229. package/dist/xlsx/ui/locales/de/commands.d.ts +2 -0
  230. package/dist/xlsx/ui/locales/de/commands.d.ts.map +1 -0
  231. package/dist/xlsx/ui/locales/de/grid.d.ts +2 -0
  232. package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -0
  233. package/dist/xlsx/ui/locales/de/index.d.ts +2 -0
  234. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -0
  235. package/dist/xlsx/ui/locales/de/shell.d.ts +2 -0
  236. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -0
  237. package/dist/xlsx/ui/locales/en/commands.d.ts +2 -0
  238. package/dist/xlsx/ui/locales/en/commands.d.ts.map +1 -0
  239. package/dist/xlsx/ui/locales/en/grid.d.ts +2 -0
  240. package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -0
  241. package/dist/xlsx/ui/locales/en/index.d.ts +2 -0
  242. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -0
  243. package/dist/xlsx/ui/locales/en/shell.d.ts +2 -0
  244. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -0
  245. package/dist/xlsx/ui/locales/es/commands.d.ts +2 -0
  246. package/dist/xlsx/ui/locales/es/commands.d.ts.map +1 -0
  247. package/dist/xlsx/ui/locales/es/grid.d.ts +2 -0
  248. package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -0
  249. package/dist/xlsx/ui/locales/es/index.d.ts +2 -0
  250. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -0
  251. package/dist/xlsx/ui/locales/es/shell.d.ts +2 -0
  252. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -0
  253. package/dist/xlsx/ui/locales/fr/commands.d.ts +2 -0
  254. package/dist/xlsx/ui/locales/fr/commands.d.ts.map +1 -0
  255. package/dist/xlsx/ui/locales/fr/grid.d.ts +2 -0
  256. package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -0
  257. package/dist/xlsx/ui/locales/fr/index.d.ts +2 -0
  258. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -0
  259. package/dist/xlsx/ui/locales/fr/shell.d.ts +2 -0
  260. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -0
  261. package/dist/xlsx/ui/locales/merge.d.ts +7 -0
  262. package/dist/xlsx/ui/locales/merge.d.ts.map +1 -0
  263. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts +2 -0
  264. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts.map +1 -0
  265. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts +2 -0
  266. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -0
  267. package/dist/xlsx/ui/locales/zh-CN/index.d.ts +2 -0
  268. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -0
  269. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts +2 -0
  270. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -0
  271. package/dist/xlsx/ui/localization.d.ts +23 -0
  272. package/dist/xlsx/ui/localization.d.ts.map +1 -0
  273. package/dist/xlsx/ui/ribbon/icon-paths.d.ts +9 -0
  274. package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -0
  275. package/dist/xlsx/ui/ribbon/parts.d.ts +88 -0
  276. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -0
  277. package/dist/xlsx/ui/ribbon/tab-api.d.ts +21 -0
  278. package/dist/xlsx/ui/ribbon/tab-api.d.ts.map +1 -0
  279. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts +5 -0
  280. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -0
  281. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts +8 -0
  282. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts.map +1 -0
  283. package/dist/xlsx/ui/ribbon/tell-me.d.ts +16 -0
  284. package/dist/xlsx/ui/ribbon/tell-me.d.ts.map +1 -0
  285. package/dist/xlsx/ui/selection.d.ts +34 -0
  286. package/dist/xlsx/ui/selection.d.ts.map +1 -0
  287. package/dist/xlsx/ui/theme/css-vars.d.ts +6 -0
  288. package/dist/xlsx/ui/theme/css-vars.d.ts.map +1 -0
  289. package/dist/xlsx/ui/theme/defaults.d.ts +6 -0
  290. package/dist/xlsx/ui/theme/defaults.d.ts.map +1 -0
  291. package/dist/xlsx/ui/theme/element.d.ts +9 -0
  292. package/dist/xlsx/ui/theme/element.d.ts.map +1 -0
  293. package/dist/xlsx/ui/theme/types.d.ts +54 -0
  294. package/dist/xlsx/ui/theme/types.d.ts.map +1 -0
  295. package/dist/xml/index.cjs +2 -1
  296. package/dist/xml/index.mjs +2 -1
  297. package/package.json +30 -3
@@ -38,4 +38,12 @@ export { withParseWarnings, enumValue, reportParseWarning } from './parse-diagno
38
38
  export { PROPERTY_FIELDS, type DocumentProperties } from './core-properties.js';
39
39
  export { captionParagraphs, isCaptionOf, tableOfFiguresInstruction, tocCaptionLabel, } from './table-of-figures.js';
40
40
  export * from './document-stats.js';
41
+ export * from './column-settings.js';
42
+ export * from './line-spacing.js';
43
+ export * from './section-layout.js';
44
+ export * from './attr-units.js';
45
+ export * from './case-transform.js';
46
+ export * from './page-setup-model.js';
47
+ export * from './page-size.js';
48
+ export * from './section-edit.js';
41
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docx/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/docx/index.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,8 @@ function parseXml(xml, options = {}) {
31
31
  }).parseFromString(xml, "application/xml");
32
32
  } catch (error) {
33
33
  throw new Error(
34
- `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`
34
+ `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
35
+ { cause: error }
35
36
  );
36
37
  }
37
38
  if (parseError || !parsed.documentElement)
@@ -509,7 +510,7 @@ var twipsFromPoints = (points) => roundTwips(points * 20);
509
510
  var signedTwipsFromPoints = (points) => roundSignedTwips(points * 20);
510
511
  var twipsFromPixels = (pixels) => roundTwips(pixels * 15);
511
512
  var signedTwipsFromPixels = (pixels) => roundSignedTwips(pixels * 15);
512
- var twipsFromInches = (inches) => roundTwips(inches * 1440);
513
+ var twipsFromInches = (inches2) => roundTwips(inches2 * 1440);
513
514
  var halfPointsFromPoints = (points) => roundHalfPoints(points * 2);
514
515
  var eighthPointsFromPoints = (points) => roundEighthPoints(points * 8);
515
516
  var emuFromPixels = (pixels) => roundEmu(pixels * 9525);
@@ -3667,7 +3668,7 @@ var add = (parent, ...items) => {
3667
3668
  for (const item of items) parent.appendChild(item);
3668
3669
  return parent;
3669
3670
  };
3670
- var emu2 = (px2) => String(Math.max(1, Math.round(px2 * EMU_PER_PIXEL)));
3671
+ var emu2 = (px3) => String(Math.max(1, Math.round(px3 * EMU_PER_PIXEL)));
3671
3672
  var descendants = (root, ns, local) => Array.from(root.getElementsByTagNameNS(ns, local));
3672
3673
  function paragraphsFor(doc, lines) {
3673
3674
  return (lines.length ? lines : [""]).map((line) => {
@@ -9657,4 +9658,425 @@ function plainText2(model) {
9657
9658
  ).join("\n");
9658
9659
  }
9659
9660
 
9660
- export { DEFAULT_STYLES_XML, DEFAULT_TABLE_BORDERS, DEFAULT_TOC_INSTRUCTION, DIAGRAM_GRAPHIC_URI, DocxModelValidationError, EMPTY_FIGURES_TEXT, EMPTY_TOC_TEXT, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, LIGATURE_VALUES, PIXELS_PER_INCH, PROPERTY_FIELDS, ST_AlgClass, ST_AlgType, ST_AnnotationVMerge, ST_Border, ST_BrClear, ST_BrType, ST_CalendarType, ST_CaptionPos, ST_ChapterSep, ST_CharacterSpacing, ST_CombineBrackets, ST_ConformanceClass, ST_CryptProv, ST_Direction, ST_DisplacedByCustomXml, ST_DocGrid, ST_DocPartBehavior, ST_DocPartGallery, ST_DocPartType, ST_DocProtect, ST_DropCap, ST_EdGrp, ST_EdnPos, ST_Em, ST_FFTextType, ST_FldCharType, ST_FontFamily, ST_FrameLayout, ST_FrameScrollbar, ST_FtnEdn, ST_FtnPos, ST_HAnchor, ST_HdrFtr, ST_HeightRule, ST_HexColorAuto, ST_HighlightColor, ST_Hint, ST_InfoTextType, ST_Jc, ST_JcTable, ST_LevelSuffix, ST_LineNumberRestart, ST_LineSpacingRule, ST_Lock, ST_MailMergeDest, ST_MailMergeDocType, ST_MailMergeOdsoFMDFieldType, ST_MailMergeSourceType, ST_Merge, ST_MultiLevelType, ST_NumberFormat, ST_ObjectDrawAspect, ST_ObjectUpdateMode, ST_OnOff1, ST_PTabAlignment, ST_PTabLeader, ST_PTabRelativeTo, ST_PageBorderDisplay, ST_PageBorderOffset, ST_PageBorderZOrder, ST_PageOrientation, ST_Pitch, ST_Proof, ST_ProofErr, ST_RelFromH, ST_RelFromV, ST_RestartNumber, ST_RubyAlign, ST_SchemeColorVal, ST_SdtDateMappingType, ST_SectionMark, ST_Shd, ST_StyleSort, ST_StyleType, ST_TabJc, ST_TabTlc, ST_TargetScreenSz, ST_TblLayoutType, ST_TblOverlap, ST_TblStyleOverrideType, ST_TblWidth, ST_TextAlignment, ST_TextDirection, ST_TextEffect, ST_TextboxTightWrap, ST_Theme, ST_ThemeColor, ST_TrueFalse, ST_TrueFalseBlank, ST_Underline, ST_VAnchor, ST_VerticalAlignRun, ST_VerticalJc, ST_View, ST_WmlColorSchemeIndex, ST_Wrap, ST_XAlign, ST_YAlign, ST_Zoom, TWIPS_PER_INCH, TWIPS_PER_POINT, WORD_HIGHLIGHT_TOKENS, WORD_UNDERLINE_TOKENS, acceptAllRevisions, acceptRevision, alignFromJustification, applyThemeShade, applyThemeTint, assertValidDocumentModel, buildTableOfContents, captionParagraphs, computeListLabels, createDocument, createListDefinition, dateFieldResult, datePicture, defaultStyleCatalogs, diagramColorTheme, diagramsIn, displayListLabel, documentStats, eighthPoints, eighthPointsFromPoints, eighthPointsToPoints, emu, emuFromPixels, emuToPixels, ensureListDefinition, enumValue, fieldName, findRevision, findTableOfContents, formatListNumber, formatNoteNumber, formatWordDate, halfPoints, halfPointsFromPoints, halfPointsToPoints, headingLevel, headingListLevels, isCaptionOf, isHeadingListKind, isLigatures, isStAlgClass, isStAlgType, isStAnnotationVMerge, isStBorder, isStBrClear, isStBrType, isStCalendarType, isStCaptionPos, isStChapterSep, isStCharacterSpacing, isStCombineBrackets, isStConformanceClass, isStCryptProv, isStDirection, isStDisplacedByCustomXml, isStDocGrid, isStDocPartBehavior, isStDocPartGallery, isStDocPartType, isStDocProtect, isStDropCap, isStEdGrp, isStEdnPos, isStEm, isStFFTextType, isStFldCharType, isStFontFamily, isStFrameLayout, isStFrameScrollbar, isStFtnEdn, isStFtnPos, isStHAnchor, isStHdrFtr, isStHeightRule, isStHexColorAuto, isStHighlightColor, isStHint, isStInfoTextType, isStJc, isStJcTable, isStLevelSuffix, isStLineNumberRestart, isStLineSpacingRule, isStLock, isStMailMergeDest, isStMailMergeDocType, isStMailMergeOdsoFMDFieldType, isStMailMergeSourceType, isStMerge, isStMultiLevelType, isStNumberFormat, isStObjectDrawAspect, isStObjectUpdateMode, isStOnOff1, isStPTabAlignment, isStPTabLeader, isStPTabRelativeTo, isStPageBorderDisplay, isStPageBorderOffset, isStPageBorderZOrder, isStPageOrientation, isStPitch, isStProof, isStProofErr, isStRelFromH, isStRelFromV, isStRestartNumber, isStRubyAlign, isStSchemeColorVal, isStSdtDateMappingType, isStSectionMark, isStShd, isStStyleSort, isStStyleType, isStTabJc, isStTabTlc, isStTargetScreenSz, isStTblLayoutType, isStTblOverlap, isStTblStyleOverrideType, isStTblWidth, isStTextAlignment, isStTextDirection, isStTextEffect, isStTextboxTightWrap, isStTheme, isStThemeColor, isStTrueFalse, isStTrueFalseBlank, isStUnderline, isStVAnchor, isStVerticalAlignRun, isStVerticalJc, isStView, isStWmlColorSchemeIndex, isStWrap, isStXAlign, isStYAlign, isStZoom, isThemeColorToken, isValidLanguageTag, isWordHighlightToken, isWordUnderlineStyle, linkStylesToList, listRevisions, loadDocx, numberNotesInOrder, onOffAttribute, onOffElement, parseColorSchemeMapping, parseEighthPoints, parseHalfPoints, parseHexColor, parseInteger, parseJustification, parseNumberingCatalog, parseOnOff, parseParagraphStyleCatalog, parseRgbColor, parseRunStyleCatalog, parseSignedHalfPoints, parseSignedTwips, parseTableStyleCatalog, parseTextScale, parseTheme, parseTintShade, parseTwips, parseUnsignedInteger, plainText2 as plainText, rejectAllRevisions, rejectRevision, reportParseWarning, resolveCellVisuals, resolveDiagramColor, resolveNumberingLevel, resolveParagraphFormatting, resolveParagraphNumbering, resolveRunFormatting, resolveStyleNumbering, resolveTableStyleFormatting, resolveThemeColorReference, resolveThemeColorToken, roundEighthPoints, roundEmu, roundHalfPoints, roundSignedTwips, roundTwips, saveDocx, signedTwips, signedTwipsFromPixels, signedTwipsFromPoints, tableOfFiguresInstruction, tocBookmarks, tocCaptionLabel, tocEntries, tocHyperlinks, tocLevels, twips, twipsFromInches, twipsFromPixels, twipsFromPoints, twipsToInches, twipsToPixels, twipsToPoints, universalMeasureToTwips, updateTableOfContents, validateDocumentModel, withParseWarnings, withTocBookmarks };
9661
+ // src/docx/column-settings.ts
9662
+ var columnTextWidth = (section) => section.pageWidthTwips - section.marginLeftTwips - section.marginRightTwips - (section.gutterTwips ?? 0);
9663
+ function unequalColumnPreset(section, preset) {
9664
+ const gap = 720;
9665
+ const available = columnTextWidth(section) - gap;
9666
+ const narrow = Math.round(available / 3);
9667
+ const wide = available - narrow;
9668
+ return {
9669
+ count: 2,
9670
+ equalWidth: false,
9671
+ spacingTwips: twips(gap),
9672
+ widths: [
9673
+ { widthTwips: twips(preset === "left" ? narrow : wide), spacingTwips: twips(gap) },
9674
+ { widthTwips: twips(preset === "left" ? wide : narrow) }
9675
+ ]
9676
+ };
9677
+ }
9678
+ function columnPreset(columns) {
9679
+ if (columns.equalWidth) return String(columns.count);
9680
+ const [a, b] = columns.widths ?? [];
9681
+ if (columns.count === 2 && a && b) {
9682
+ if (Math.abs(a.widthTwips * 2 - b.widthTwips) <= 2) return "left";
9683
+ if (Math.abs(b.widthTwips * 2 - a.widthTwips) <= 2) return "right";
9684
+ }
9685
+ return "";
9686
+ }
9687
+ function equalColumnDraft(total, count, gap) {
9688
+ const width = Math.floor((total - gap * (count - 1)) / count);
9689
+ return {
9690
+ widths: Array.from(
9691
+ { length: count },
9692
+ (_, i) => i === count - 1 ? total - gap * (count - 1) - width * (count - 1) : width
9693
+ ),
9694
+ gaps: Array.from({ length: count }, (_, i) => i === count - 1 ? 0 : gap)
9695
+ };
9696
+ }
9697
+ function readColumnDraft(section) {
9698
+ const fallback = equalColumnDraft(
9699
+ columnTextWidth(section),
9700
+ section.columns.count,
9701
+ section.columns.spacingTwips ?? 720
9702
+ );
9703
+ return !section.columns.equalWidth && section.columns.widths?.length === section.columns.count ? {
9704
+ widths: section.columns.widths.map((column) => column.widthTwips),
9705
+ gaps: section.columns.widths.map(
9706
+ (column, i) => i === section.columns.count - 1 ? 0 : column.spacingTwips ?? section.columns.spacingTwips ?? 720
9707
+ )
9708
+ } : fallback;
9709
+ }
9710
+ function changeColumnWidth(draft, index, width) {
9711
+ const delta = width - draft.widths[index];
9712
+ draft.widths[index] = width;
9713
+ const neighbor = index < draft.widths.length - 1 ? index + 1 : index - 1;
9714
+ if (neighbor >= 0) draft.widths[neighbor] = draft.widths[neighbor] - delta;
9715
+ }
9716
+ function changeColumnGap(draft, index, gap) {
9717
+ const delta = gap - draft.gaps[index];
9718
+ draft.gaps[index] = gap;
9719
+ if (index + 1 < draft.widths.length) draft.widths[index + 1] = draft.widths[index + 1] - delta;
9720
+ }
9721
+ function validColumnDraft(draft, total) {
9722
+ return draft.widths.every((width) => Number.isSafeInteger(width) && width >= 720) && draft.gaps.every((gap) => Number.isSafeInteger(gap) && gap >= 0) && Math.abs(draft.widths.reduce((sum, value, i) => sum + value + draft.gaps[i], 0) - total) <= 1;
9723
+ }
9724
+
9725
+ // src/docx/line-spacing.ts
9726
+ var lineSpacingOptions = [
9727
+ ["inherit", "Line: style default"],
9728
+ ["auto:240", "1.0 lines"],
9729
+ ["auto:276", "1.15 lines"],
9730
+ ["auto:360", "1.5 lines"],
9731
+ ["auto:480", "2.0 lines"],
9732
+ ["auto:600", "2.5 lines"],
9733
+ ["auto:720", "3.0 lines"]
9734
+ ];
9735
+ function lineSpacingValue(attrs) {
9736
+ const rule = attrs.lineSpacingRule === "exact" || attrs.lineSpacingRule === "atLeast" ? attrs.lineSpacingRule : "auto";
9737
+ if (!Number.isSafeInteger(attrs.lineSpacingTwips))
9738
+ return attrs.lineSpacingRule === "exact" || attrs.lineSpacingRule === "atLeast" ? `rule-only:${attrs.lineSpacingRule}` : "inherit";
9739
+ return `${rule}:${Number(attrs.lineSpacingTwips)}`;
9740
+ }
9741
+ function lineSpacingLabel(value) {
9742
+ if (value === "inherit") return "Style default";
9743
+ const ruleOnly = /^rule-only:(exact|atLeast)$/.exec(value);
9744
+ if (ruleOnly) return `${ruleOnly[1] === "exact" ? "Exact" : "At least"} rule (no amount)`;
9745
+ const match = /^(auto|exact|atLeast):(\d+)$/.exec(value);
9746
+ if (!match) return "Mixed paragraphs";
9747
+ const [, rule, rawTwips] = match;
9748
+ const twips3 = Number(rawTwips);
9749
+ if (rule === "auto") {
9750
+ const ratios = {
9751
+ 240: "1.0",
9752
+ 276: "1.15",
9753
+ 360: "1.5",
9754
+ 480: "2.0",
9755
+ 600: "2.5",
9756
+ 720: "3.0"
9757
+ };
9758
+ return ratios[twips3] ? `${ratios[twips3]} lines` : `Automatic ${(twips3 / 240).toLocaleString(void 0, { maximumFractionDigits: 3 })} lines (${twips3}/240)`;
9759
+ }
9760
+ const points = (twips3 / 20).toLocaleString(void 0, { maximumFractionDigits: 2 });
9761
+ return `${rule === "exact" ? "Exact" : "At least"} ${points} pt`;
9762
+ }
9763
+ function parseLineSpacingValue(value) {
9764
+ const match = /^(auto|exact|atLeast):(\d+)$/.exec(value);
9765
+ if (!match) return null;
9766
+ const twips3 = Number(match[2]);
9767
+ return Number.isSafeInteger(twips3) && twips3 >= 0 ? { rule: match[1], twips: twips3 } : null;
9768
+ }
9769
+
9770
+ // src/docx/section-layout.ts
9771
+ function sectionLayoutJson(sections) {
9772
+ return JSON.stringify(
9773
+ sections.map(({ headers: _headers, footers: _footers, ...layout2 }) => layout2)
9774
+ );
9775
+ }
9776
+ function sectionsFromLayout(json, prior, blocks) {
9777
+ const layout2 = JSON.parse(json);
9778
+ const order = new Map(blocks.map((block, index) => [block.id, index]));
9779
+ const priorSections = prior ?? [];
9780
+ const endOf = (section, index, list) => index === list.length - 1 ? Number.POSITIVE_INFINITY : order.get(section.endsAtBlockId) ?? -1;
9781
+ const kept = layout2.filter(
9782
+ (section, index) => index === layout2.length - 1 || order.has(section.endsAtBlockId)
9783
+ );
9784
+ return kept.map((section, index) => {
9785
+ const end = endOf(section, index, kept);
9786
+ const source = priorSections.find((candidate) => candidate.endsAtBlockId === section.endsAtBlockId) ?? priorSections.find(
9787
+ (candidate, position) => endOf(candidate, position, priorSections) >= end
9788
+ ) ?? priorSections.at(-1);
9789
+ return {
9790
+ ...section,
9791
+ ...source?.headers ? { headers: source.headers } : {},
9792
+ ...source?.footers ? { footers: source.footers } : {}
9793
+ };
9794
+ });
9795
+ }
9796
+ function sectionsOf(model) {
9797
+ if (model.sections?.length) return model.sections;
9798
+ const { page } = model;
9799
+ return [
9800
+ {
9801
+ endsAtBlockId: model.blocks.at(-1)?.id ?? "",
9802
+ type: "nextPage",
9803
+ pageWidthTwips: twipsFromPixels(page.width),
9804
+ pageHeightTwips: twipsFromPixels(page.height),
9805
+ orientation: page.width > page.height ? "landscape" : "portrait",
9806
+ marginTopTwips: signedTwipsFromPixels(page.marginTop),
9807
+ marginRightTwips: twipsFromPixels(page.marginRight),
9808
+ marginBottomTwips: signedTwipsFromPixels(page.marginBottom),
9809
+ marginLeftTwips: twipsFromPixels(page.marginLeft),
9810
+ headerDistanceTwips: twips(720),
9811
+ footerDistanceTwips: twips(720),
9812
+ gutterTwips: twips(0),
9813
+ columns: { count: 1, spacingTwips: twips(720), equalWidth: true }
9814
+ }
9815
+ ];
9816
+ }
9817
+
9818
+ // src/docx/attr-units.ts
9819
+ function twipsAttr(value) {
9820
+ return typeof value === "number" && Number.isFinite(value) && value >= 0 ? roundTwips(value) : void 0;
9821
+ }
9822
+ function signedTwipsAttr(value) {
9823
+ return typeof value === "number" && Number.isFinite(value) ? roundSignedTwips(value) : void 0;
9824
+ }
9825
+ function paragraphTwipsFromAttrs(attrs) {
9826
+ const result = {};
9827
+ const spacingBefore = twipsAttr(attrs.spacingBeforeTwips);
9828
+ const spacingAfter = twipsAttr(attrs.spacingAfterTwips);
9829
+ const lineSpacing = signedTwipsAttr(attrs.lineSpacingTwips);
9830
+ const left = signedTwipsAttr(attrs.indentLeftTwips);
9831
+ const right = signedTwipsAttr(attrs.indentRightTwips);
9832
+ const start = signedTwipsAttr(attrs.indentStartTwips);
9833
+ const end = signedTwipsAttr(attrs.indentEndTwips);
9834
+ const firstLine = twipsAttr(attrs.firstLineTwips);
9835
+ const hanging = twipsAttr(attrs.hangingTwips);
9836
+ if (spacingBefore !== void 0) result.spacingBeforeTwips = spacingBefore;
9837
+ if (spacingAfter !== void 0) result.spacingAfterTwips = spacingAfter;
9838
+ if (lineSpacing !== void 0) result.lineSpacingTwips = lineSpacing;
9839
+ if (left !== void 0) result.indentLeftTwips = left;
9840
+ if (right !== void 0) result.indentRightTwips = right;
9841
+ if (start !== void 0) result.indentStartTwips = start;
9842
+ if (end !== void 0) result.indentEndTwips = end;
9843
+ if (firstLine !== void 0) result.firstLineTwips = firstLine;
9844
+ if (hanging !== void 0) result.hangingTwips = hanging;
9845
+ return result;
9846
+ }
9847
+
9848
+ // src/docx/case-transform.ts
9849
+ var WORD = /[\p{L}\p{N}'’]/u;
9850
+ var swap = (char) => {
9851
+ const upper = char.toLocaleUpperCase();
9852
+ return char === upper ? char.toLocaleLowerCase() : upper;
9853
+ };
9854
+ function transformCase(text, mode, atSentenceStart = true) {
9855
+ if (mode === "lower") return text.toLocaleLowerCase();
9856
+ if (mode === "upper") return text.toLocaleUpperCase();
9857
+ if (mode === "toggle") return [...text].map(swap).join("");
9858
+ let start = mode === "sentence" ? atSentenceStart : true;
9859
+ let previousWord = false;
9860
+ let out = "";
9861
+ for (const char of text) {
9862
+ const isWord = WORD.test(char);
9863
+ if (mode === "title") {
9864
+ out += isWord && !previousWord ? char.toLocaleUpperCase() : char;
9865
+ } else if (isWord && start) {
9866
+ out += char.toLocaleUpperCase();
9867
+ start = false;
9868
+ } else {
9869
+ out += isWord ? char.toLocaleLowerCase() : char;
9870
+ if (/[.!?]/.test(char)) start = true;
9871
+ else if (isWord) start = false;
9872
+ }
9873
+ previousWord = isWord;
9874
+ }
9875
+ return out;
9876
+ }
9877
+
9878
+ // src/docx/section-edit.ts
9879
+ var px2 = twipsToPixels;
9880
+ function withSection(model, index, change) {
9881
+ const sections = sectionsOf(model).map(
9882
+ (section, position) => position === index ? change(structuredClone(section)) : section
9883
+ );
9884
+ const last = sections.at(-1);
9885
+ return {
9886
+ ...model,
9887
+ sections,
9888
+ page: {
9889
+ width: px2(last.pageWidthTwips),
9890
+ height: px2(last.pageHeightTwips),
9891
+ marginTop: px2(last.marginTopTwips),
9892
+ marginRight: px2(last.marginRightTwips),
9893
+ marginBottom: px2(last.marginBottomTwips),
9894
+ marginLeft: px2(last.marginLeftTwips)
9895
+ }
9896
+ };
9897
+ }
9898
+ var NORMAL_MARGIN = twips(1440);
9899
+ var MARGINS = {
9900
+ normal: NORMAL_MARGIN,
9901
+ narrow: twips(720),
9902
+ wide: twips(2160)
9903
+ };
9904
+ function setMargins(model, index, preset) {
9905
+ if (preset === "moderate")
9906
+ return withSection(model, index, (section) => ({
9907
+ ...section,
9908
+ marginTopTwips: NORMAL_MARGIN,
9909
+ marginBottomTwips: NORMAL_MARGIN,
9910
+ marginLeftTwips: twips(1080),
9911
+ marginRightTwips: twips(1080)
9912
+ }));
9913
+ const value = MARGINS[preset] ?? NORMAL_MARGIN;
9914
+ return withSection(model, index, (section) => ({
9915
+ ...section,
9916
+ marginTopTwips: value,
9917
+ marginRightTwips: value,
9918
+ marginBottomTwips: value,
9919
+ marginLeftTwips: value
9920
+ }));
9921
+ }
9922
+ function setOrientation(model, index, orientation) {
9923
+ return withSection(model, index, (section) => {
9924
+ const { pageWidthTwips: width, pageHeightTwips: height } = section;
9925
+ const long = width >= height ? width : height;
9926
+ const short = width >= height ? height : width;
9927
+ return {
9928
+ ...section,
9929
+ orientation,
9930
+ pageWidthTwips: orientation === "landscape" ? long : short,
9931
+ pageHeightTwips: orientation === "landscape" ? short : long
9932
+ };
9933
+ });
9934
+ }
9935
+ function setColumns(model, index, count) {
9936
+ return withSection(model, index, (section) => ({
9937
+ ...section,
9938
+ columns: { count, spacingTwips: section.columns.spacingTwips ?? twips(720), equalWidth: true }
9939
+ }));
9940
+ }
9941
+ function setVerticalAlign(model, index, verticalAlign) {
9942
+ return withSection(model, index, (section) => {
9943
+ const { verticalAlign: _previous, ...rest } = section;
9944
+ return verticalAlign === "top" ? rest : { ...rest, verticalAlign };
9945
+ });
9946
+ }
9947
+ function setTitlePage(model, index, titlePage) {
9948
+ return withSection(model, index, (section) => ({ ...section, titlePage }));
9949
+ }
9950
+ function setPageNumbering(model, index, change) {
9951
+ return withSection(model, index, (section) => {
9952
+ const numbering = { ...section.pageNumbering };
9953
+ if (change.format !== void 0) numbering.format = change.format;
9954
+ if (change.restart === true) numbering.start = 1;
9955
+ if (change.restart === false) delete numbering.start;
9956
+ if (numbering.format === "decimal") delete numbering.format;
9957
+ const { pageNumbering: _previous, ...rest } = section;
9958
+ return Object.keys(numbering).length ? { ...rest, pageNumbering: numbering } : rest;
9959
+ });
9960
+ }
9961
+ function setLineNumbering(model, index, mode) {
9962
+ return withSection(model, index, (section) => {
9963
+ const { lineNumbering: _on, lineNumberSettings: previous, ...rest } = section;
9964
+ if (mode === "none") return rest;
9965
+ return {
9966
+ ...rest,
9967
+ lineNumbering: true,
9968
+ lineNumberSettings: {
9969
+ countBy: previous?.countBy ?? 1,
9970
+ start: previous?.start ?? 1,
9971
+ restart: mode,
9972
+ ...previous?.distanceTwips !== void 0 ? { distanceTwips: previous.distanceTwips } : {}
9973
+ }
9974
+ };
9975
+ });
9976
+ }
9977
+
9978
+ // src/docx/page-size.ts
9979
+ var PAGE_SIZES = {
9980
+ letter: [12240, 15840],
9981
+ legal: [12240, 20160],
9982
+ tabloid: [15840, 24480],
9983
+ executive: [10440, 15120],
9984
+ a3: [16838, 23811],
9985
+ a4: [11906, 16838],
9986
+ a5: [8391, 11906],
9987
+ b5: [10319, 14570]
9988
+ };
9989
+ var PAGE_SIZE_OPTIONS = [
9990
+ ["letter", "Letter"],
9991
+ ["legal", "Legal"],
9992
+ ["tabloid", "Tabloid"],
9993
+ ["executive", "Executive"],
9994
+ ["a3", "A3"],
9995
+ ["a4", "A4"],
9996
+ ["a5", "A5"],
9997
+ ["b5", "B5 (JIS)"]
9998
+ ];
9999
+ function setPageSize(model, index, preset) {
10000
+ const size = PAGE_SIZES[preset];
10001
+ if (!size) return model;
10002
+ return withSection(model, index, (section) => {
10003
+ const [short, long] = size;
10004
+ const landscape = section.orientation === "landscape";
10005
+ return {
10006
+ ...section,
10007
+ pageWidthTwips: twips(landscape ? long : short),
10008
+ pageHeightTwips: twips(landscape ? short : long)
10009
+ };
10010
+ });
10011
+ }
10012
+ function pageSizeOf(section) {
10013
+ const a = Math.min(section.pageWidthTwips, section.pageHeightTwips);
10014
+ const b = Math.max(section.pageWidthTwips, section.pageHeightTwips);
10015
+ for (const [key, [short, long]] of Object.entries(PAGE_SIZES))
10016
+ if (Math.abs(short - a) <= 2 && Math.abs(long - b) <= 2) return key;
10017
+ return null;
10018
+ }
10019
+
10020
+ // src/docx/page-setup-model.ts
10021
+ var TWIPS_PER_INCH2 = 1440;
10022
+ var MAX_PAGE_INCHES = 22;
10023
+ var MIN_TEXT_INCHES = 0.5;
10024
+ var inches = (value) => Math.round(value / TWIPS_PER_INCH2 * 1e3) / 1e3;
10025
+ function readPageSetup(section) {
10026
+ const short = Math.min(section.pageWidthTwips, section.pageHeightTwips);
10027
+ const long = Math.max(section.pageWidthTwips, section.pageHeightTwips);
10028
+ return {
10029
+ topIn: inches(section.marginTopTwips),
10030
+ bottomIn: inches(section.marginBottomTwips),
10031
+ leftIn: inches(section.marginLeftTwips),
10032
+ rightIn: inches(section.marginRightTwips),
10033
+ gutterIn: inches(section.gutterTwips ?? 0),
10034
+ headerIn: inches(section.headerDistanceTwips ?? 720),
10035
+ footerIn: inches(section.footerDistanceTwips ?? 720),
10036
+ orientation: section.orientation,
10037
+ widthIn: inches(short),
10038
+ heightIn: inches(long)
10039
+ };
10040
+ }
10041
+ function validatePageSetup(values) {
10042
+ const margins = [values.topIn, values.bottomIn, values.leftIn, values.rightIn, values.gutterIn];
10043
+ const measures = [...margins, values.headerIn, values.footerIn];
10044
+ if (measures.some((value) => !Number.isFinite(value) || value < 0 || value > MAX_PAGE_INCHES))
10045
+ return "range";
10046
+ if (![values.widthIn, values.heightIn].every((v) => v > 0 && v <= MAX_PAGE_INCHES))
10047
+ return "range";
10048
+ const short = Math.min(values.widthIn, values.heightIn);
10049
+ const long = Math.max(values.widthIn, values.heightIn);
10050
+ const [width, height] = values.orientation === "landscape" ? [long, short] : [short, long];
10051
+ if (width - values.leftIn - values.rightIn - values.gutterIn < MIN_TEXT_INCHES) return "width";
10052
+ if (height - values.topIn - values.bottomIn < MIN_TEXT_INCHES) return "height";
10053
+ return null;
10054
+ }
10055
+ var toTwips = (value) => Math.round(value * TWIPS_PER_INCH2);
10056
+ function applyPageSetup(model, index, values) {
10057
+ if (validatePageSetup(values)) return model;
10058
+ const short = Math.min(values.widthIn, values.heightIn);
10059
+ const long = Math.max(values.widthIn, values.heightIn);
10060
+ const landscape = values.orientation === "landscape";
10061
+ return withSection(model, index, (section) => ({
10062
+ ...section,
10063
+ orientation: values.orientation,
10064
+ pageWidthTwips: twips(toTwips(landscape ? long : short)),
10065
+ pageHeightTwips: twips(toTwips(landscape ? short : long)),
10066
+ marginTopTwips: signedTwips(toTwips(values.topIn)),
10067
+ marginBottomTwips: signedTwips(toTwips(values.bottomIn)),
10068
+ marginLeftTwips: twips(toTwips(values.leftIn)),
10069
+ marginRightTwips: twips(toTwips(values.rightIn)),
10070
+ gutterTwips: twips(toTwips(values.gutterIn)),
10071
+ headerDistanceTwips: twips(toTwips(values.headerIn)),
10072
+ footerDistanceTwips: twips(toTwips(values.footerIn))
10073
+ }));
10074
+ }
10075
+ function presetOf(values) {
10076
+ return pageSizeOf({
10077
+ pageWidthTwips: twips(toTwips(values.widthIn)),
10078
+ pageHeightTwips: twips(toTwips(values.heightIn))
10079
+ });
10080
+ }
10081
+
10082
+ export { DEFAULT_STYLES_XML, DEFAULT_TABLE_BORDERS, DEFAULT_TOC_INSTRUCTION, DIAGRAM_GRAPHIC_URI, DocxModelValidationError, EMPTY_FIGURES_TEXT, EMPTY_TOC_TEXT, EMU_PER_INCH, EMU_PER_PIXEL, EMU_PER_POINT, LIGATURE_VALUES, PAGE_SIZES, PAGE_SIZE_OPTIONS, PIXELS_PER_INCH, PROPERTY_FIELDS, ST_AlgClass, ST_AlgType, ST_AnnotationVMerge, ST_Border, ST_BrClear, ST_BrType, ST_CalendarType, ST_CaptionPos, ST_ChapterSep, ST_CharacterSpacing, ST_CombineBrackets, ST_ConformanceClass, ST_CryptProv, ST_Direction, ST_DisplacedByCustomXml, ST_DocGrid, ST_DocPartBehavior, ST_DocPartGallery, ST_DocPartType, ST_DocProtect, ST_DropCap, ST_EdGrp, ST_EdnPos, ST_Em, ST_FFTextType, ST_FldCharType, ST_FontFamily, ST_FrameLayout, ST_FrameScrollbar, ST_FtnEdn, ST_FtnPos, ST_HAnchor, ST_HdrFtr, ST_HeightRule, ST_HexColorAuto, ST_HighlightColor, ST_Hint, ST_InfoTextType, ST_Jc, ST_JcTable, ST_LevelSuffix, ST_LineNumberRestart, ST_LineSpacingRule, ST_Lock, ST_MailMergeDest, ST_MailMergeDocType, ST_MailMergeOdsoFMDFieldType, ST_MailMergeSourceType, ST_Merge, ST_MultiLevelType, ST_NumberFormat, ST_ObjectDrawAspect, ST_ObjectUpdateMode, ST_OnOff1, ST_PTabAlignment, ST_PTabLeader, ST_PTabRelativeTo, ST_PageBorderDisplay, ST_PageBorderOffset, ST_PageBorderZOrder, ST_PageOrientation, ST_Pitch, ST_Proof, ST_ProofErr, ST_RelFromH, ST_RelFromV, ST_RestartNumber, ST_RubyAlign, ST_SchemeColorVal, ST_SdtDateMappingType, ST_SectionMark, ST_Shd, ST_StyleSort, ST_StyleType, ST_TabJc, ST_TabTlc, ST_TargetScreenSz, ST_TblLayoutType, ST_TblOverlap, ST_TblStyleOverrideType, ST_TblWidth, ST_TextAlignment, ST_TextDirection, ST_TextEffect, ST_TextboxTightWrap, ST_Theme, ST_ThemeColor, ST_TrueFalse, ST_TrueFalseBlank, ST_Underline, ST_VAnchor, ST_VerticalAlignRun, ST_VerticalJc, ST_View, ST_WmlColorSchemeIndex, ST_Wrap, ST_XAlign, ST_YAlign, ST_Zoom, TWIPS_PER_INCH, TWIPS_PER_POINT, WORD, WORD_HIGHLIGHT_TOKENS, WORD_UNDERLINE_TOKENS, acceptAllRevisions, acceptRevision, alignFromJustification, applyPageSetup, applyThemeShade, applyThemeTint, assertValidDocumentModel, buildTableOfContents, captionParagraphs, changeColumnGap, changeColumnWidth, columnPreset, columnTextWidth, computeListLabels, createDocument, createListDefinition, dateFieldResult, datePicture, defaultStyleCatalogs, diagramColorTheme, diagramsIn, displayListLabel, documentStats, eighthPoints, eighthPointsFromPoints, eighthPointsToPoints, emu, emuFromPixels, emuToPixels, ensureListDefinition, enumValue, equalColumnDraft, fieldName, findRevision, findTableOfContents, formatListNumber, formatNoteNumber, formatWordDate, halfPoints, halfPointsFromPoints, halfPointsToPoints, headingLevel, headingListLevels, isCaptionOf, isHeadingListKind, isLigatures, isStAlgClass, isStAlgType, isStAnnotationVMerge, isStBorder, isStBrClear, isStBrType, isStCalendarType, isStCaptionPos, isStChapterSep, isStCharacterSpacing, isStCombineBrackets, isStConformanceClass, isStCryptProv, isStDirection, isStDisplacedByCustomXml, isStDocGrid, isStDocPartBehavior, isStDocPartGallery, isStDocPartType, isStDocProtect, isStDropCap, isStEdGrp, isStEdnPos, isStEm, isStFFTextType, isStFldCharType, isStFontFamily, isStFrameLayout, isStFrameScrollbar, isStFtnEdn, isStFtnPos, isStHAnchor, isStHdrFtr, isStHeightRule, isStHexColorAuto, isStHighlightColor, isStHint, isStInfoTextType, isStJc, isStJcTable, isStLevelSuffix, isStLineNumberRestart, isStLineSpacingRule, isStLock, isStMailMergeDest, isStMailMergeDocType, isStMailMergeOdsoFMDFieldType, isStMailMergeSourceType, isStMerge, isStMultiLevelType, isStNumberFormat, isStObjectDrawAspect, isStObjectUpdateMode, isStOnOff1, isStPTabAlignment, isStPTabLeader, isStPTabRelativeTo, isStPageBorderDisplay, isStPageBorderOffset, isStPageBorderZOrder, isStPageOrientation, isStPitch, isStProof, isStProofErr, isStRelFromH, isStRelFromV, isStRestartNumber, isStRubyAlign, isStSchemeColorVal, isStSdtDateMappingType, isStSectionMark, isStShd, isStStyleSort, isStStyleType, isStTabJc, isStTabTlc, isStTargetScreenSz, isStTblLayoutType, isStTblOverlap, isStTblStyleOverrideType, isStTblWidth, isStTextAlignment, isStTextDirection, isStTextEffect, isStTextboxTightWrap, isStTheme, isStThemeColor, isStTrueFalse, isStTrueFalseBlank, isStUnderline, isStVAnchor, isStVerticalAlignRun, isStVerticalJc, isStView, isStWmlColorSchemeIndex, isStWrap, isStXAlign, isStYAlign, isStZoom, isThemeColorToken, isValidLanguageTag, isWordHighlightToken, isWordUnderlineStyle, lineSpacingLabel, lineSpacingOptions, lineSpacingValue, linkStylesToList, listRevisions, loadDocx, numberNotesInOrder, onOffAttribute, onOffElement, pageSizeOf, paragraphTwipsFromAttrs, parseColorSchemeMapping, parseEighthPoints, parseHalfPoints, parseHexColor, parseInteger, parseJustification, parseLineSpacingValue, parseNumberingCatalog, parseOnOff, parseParagraphStyleCatalog, parseRgbColor, parseRunStyleCatalog, parseSignedHalfPoints, parseSignedTwips, parseTableStyleCatalog, parseTextScale, parseTheme, parseTintShade, parseTwips, parseUnsignedInteger, plainText2 as plainText, presetOf, readColumnDraft, readPageSetup, rejectAllRevisions, rejectRevision, reportParseWarning, resolveCellVisuals, resolveDiagramColor, resolveNumberingLevel, resolveParagraphFormatting, resolveParagraphNumbering, resolveRunFormatting, resolveStyleNumbering, resolveTableStyleFormatting, resolveThemeColorReference, resolveThemeColorToken, roundEighthPoints, roundEmu, roundHalfPoints, roundSignedTwips, roundTwips, saveDocx, sectionLayoutJson, sectionsFromLayout, sectionsOf, setColumns, setLineNumbering, setMargins, setOrientation, setPageNumbering, setPageSize, setTitlePage, setVerticalAlign, signedTwips, signedTwipsAttr, signedTwipsFromPixels, signedTwipsFromPoints, tableOfFiguresInstruction, tocBookmarks, tocCaptionLabel, tocEntries, tocHyperlinks, tocLevels, transformCase, twips, twipsAttr, twipsFromInches, twipsFromPixels, twipsFromPoints, twipsToInches, twipsToPixels, twipsToPoints, unequalColumnPreset, universalMeasureToTwips, updateTableOfContents, validColumnDraft, validateDocumentModel, validatePageSetup, withParseWarnings, withSection, withTocBookmarks };
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,aAAa,EAKb,MAAM,aAAa,CAAC;AAmBrB,OAAO,KAAK,EAEX,mBAAmB,EAMnB,MAAM,YAAY,CAAC;AA2BpB,oFAAoF;AACpF,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,GACxC,mBAAmB,CA8PrB"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,aAAa,EAIb,MAAM,aAAa,CAAC;AAmBrB,OAAO,KAAK,EAEX,mBAAmB,EAKnB,MAAM,YAAY,CAAC;AA2BpB,oFAAoF;AACpF,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAe,GACxC,mBAAmB,CA8PrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/table-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAmB,cAAc,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAC/B;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,CAyBnD;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,GAChC,SAAS,CAyCX;AAsDD,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAoB9E"}
1
+ {"version":3,"file":"table-layout.d.ts","sourceRoot":"","sources":["../../../src/docx/layout/table-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAC/B;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,CAyBnD;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,GAChC,SAAS,CAyCX;AAsDD,MAAM,WAAW,QAAQ;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAoB9E"}
@@ -0,0 +1,9 @@
1
+ export type LineSpacingRule = 'auto' | 'exact' | 'atLeast';
2
+ export declare const lineSpacingOptions: Array<[string, string]>;
3
+ export declare function lineSpacingValue(attrs: Record<string, unknown>): string;
4
+ export declare function lineSpacingLabel(value: string): string;
5
+ export declare function parseLineSpacingValue(value: string): {
6
+ rule: LineSpacingRule;
7
+ twips: number;
8
+ } | null;
9
+ //# sourceMappingURL=line-spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-spacing.d.ts","sourceRoot":"","sources":["../../src/docx/line-spacing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAQtD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAUvE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAuBtD;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOjD"}
@@ -1879,7 +1879,8 @@ function parseXml(xml, options = {}) {
1879
1879
  }).parseFromString(xml, "application/xml");
1880
1880
  } catch (error) {
1881
1881
  throw new Error(
1882
- `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`
1882
+ `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
1883
+ { cause: error }
1883
1884
  );
1884
1885
  }
1885
1886
  if (parseError || !parsed.documentElement)
@@ -1873,7 +1873,8 @@ function parseXml(xml, options = {}) {
1873
1873
  }).parseFromString(xml, "application/xml");
1874
1874
  } catch (error) {
1875
1875
  throw new Error(
1876
- `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`
1876
+ `Invalid ${label} XML: ${error instanceof Error ? error.message : String(error)}`,
1877
+ { cause: error }
1877
1878
  );
1878
1879
  }
1879
1880
  if (parseError || !parsed.documentElement)
@@ -0,0 +1,29 @@
1
+ import type { DocumentModel } from './model.js';
2
+ import type { SectionProperties } from './section-model.js';
3
+ /** What Word's Page Setup dialog edits for one section, in inches. */
4
+ export interface PageSetupValues {
5
+ topIn: number;
6
+ bottomIn: number;
7
+ leftIn: number;
8
+ rightIn: number;
9
+ gutterIn: number;
10
+ headerIn: number;
11
+ footerIn: number;
12
+ orientation: 'portrait' | 'landscape';
13
+ /** Portrait width and height; landscape swaps them when applied. */
14
+ widthIn: number;
15
+ heightIn: number;
16
+ }
17
+ export type PageSetupProblem = 'range' | 'width' | 'height';
18
+ /** The section's current settings, with the paper always in portrait terms. */
19
+ export declare function readPageSetup(section: SectionProperties): PageSetupValues;
20
+ /**
21
+ * Checks the values as Word does: every measure in range, and margins that leave room for text
22
+ * (at least half an inch each way). Returns the first problem, or null when they can be applied.
23
+ */
24
+ export declare function validatePageSetup(values: PageSetupValues): PageSetupProblem | null;
25
+ /** Applies validated values to section `index`; invalid values leave the model as it was. */
26
+ export declare function applyPageSetup(model: DocumentModel, index: number, values: PageSetupValues): DocumentModel;
27
+ /** The paper-size preset a set of values matches, or null for a custom size. */
28
+ export declare function presetOf(values: PageSetupValues): string | null;
29
+ //# sourceMappingURL=page-setup-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-setup-model.d.ts","sourceRoot":"","sources":["../../src/docx/page-setup-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAO5D,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAezE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CAalF;AAID,6FAA6F;AAC7F,wBAAgB,cAAc,CAC7B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,GACrB,aAAa,CAkBf;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAK/D"}
@@ -0,0 +1,11 @@
1
+ import type { DocumentModel } from './model.js';
2
+ import type { SectionProperties } from './section-model.js';
3
+ /** Word's Layout > Size presets, portrait width by height in twips (1/1440 inch). */
4
+ export declare const PAGE_SIZES: Record<string, readonly [width: number, height: number]>;
5
+ /** English labels for the size list; paper names are proper nouns and stay as they are. */
6
+ export declare const PAGE_SIZE_OPTIONS: Array<[string, string]>;
7
+ /** Sets a section's paper size, keeping its orientation (landscape swaps width and height). */
8
+ export declare function setPageSize(model: DocumentModel, index: number, preset: string): DocumentModel;
9
+ /** The preset a section's paper matches in either orientation, or null for a custom size. */
10
+ export declare function pageSizeOf(section: SectionProperties): string | null;
11
+ //# sourceMappingURL=page-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-size.d.ts","sourceRoot":"","sources":["../../src/docx/page-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAS/E,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD,CAAC;AAEF,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAY9F;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAMpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/docx/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+BvE,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3E,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC,CAAC,CAgLD;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAUvF"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/docx/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAS,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA8BvE,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC3E,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC,CAAC,CAgLD;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAUvF"}
@@ -0,0 +1,19 @@
1
+ import type { DocumentModel } from './model.js';
2
+ import type { SectionProperties } from './section-model.js';
3
+ /** Returns `model` with section `index` changed; the last section also drives `model.page`. */
4
+ export declare function withSection(model: DocumentModel, index: number, change: (section: SectionProperties) => SectionProperties): DocumentModel;
5
+ export declare function setMargins(model: DocumentModel, index: number, preset: string): DocumentModel;
6
+ export declare function setOrientation(model: DocumentModel, index: number, orientation: 'portrait' | 'landscape'): DocumentModel;
7
+ export declare function setColumns(model: DocumentModel, index: number, count: number): DocumentModel;
8
+ /** Layout > Page Setup > Vertical alignment for one section. */
9
+ export declare function setVerticalAlign(model: DocumentModel, index: number, verticalAlign: NonNullable<SectionProperties['verticalAlign']>): DocumentModel;
10
+ /** Header & Footer > Different First Page for one section. */
11
+ export declare function setTitlePage(model: DocumentModel, index: number, titlePage: boolean): DocumentModel;
12
+ /** Page number format, and whether numbering continues or restarts at 1 in this section. */
13
+ export declare function setPageNumbering(model: DocumentModel, index: number, change: {
14
+ format?: NonNullable<SectionProperties['pageNumbering']>['format'];
15
+ restart?: boolean;
16
+ }): DocumentModel;
17
+ /** Layout > Line Numbers: off, or on with the restart rule; other line-number values are kept. */
18
+ export declare function setLineNumbering(model: DocumentModel, index: number, mode: 'none' | 'continuous' | 'newPage' | 'newSection'): DocumentModel;
19
+ //# sourceMappingURL=section-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-edit.d.ts","sourceRoot":"","sources":["../../src/docx/section-edit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,+FAA+F;AAC/F,wBAAgB,WAAW,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,iBAAiB,GACvD,aAAa,CAiBf;AASD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAiB7F;AAED,wBAAgB,cAAc,CAC7B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,UAAU,GAAG,WAAW,GACnC,aAAa,CAYf;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAK5F;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAC5D,aAAa,CAKf;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAC3B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GAChB,aAAa,CAEf;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/F,aAAa,CAUf;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GACpD,aAAa,CAef"}
@@ -0,0 +1,14 @@
1
+ import type { Block, DocumentModel } from './model.js';
2
+ import type { SectionProperties } from './section-model.js';
3
+ /** Section layout without header/footer content, as stored on the editor document for undo. */
4
+ export declare function sectionLayoutJson(sections: SectionProperties[]): string;
5
+ /**
6
+ * Rebuilds sections from the editor document's layout JSON, reattaching header/footer content
7
+ * from the previous model: a section keeps the content of the prior section ending at the same
8
+ * block, and a newly split section takes the content of the section it was split from. Sections
9
+ * whose ending paragraph no longer exists are dropped (deleting a break merges sections).
10
+ */
11
+ export declare function sectionsFromLayout(json: string, prior: SectionProperties[] | undefined, blocks: Block[]): SectionProperties[];
12
+ /** The document's sections, creating one from the page settings for documents without any. */
13
+ export declare function sectionsOf(model: DocumentModel): SectionProperties[];
14
+ //# sourceMappingURL=section-layout.d.ts.map