ooxml-core 1.19.2 → 1.21.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 (352) hide show
  1. package/README.md +47 -1
  2. package/dist/{PptxHandler-6TNIQ7S5.cjs → PptxHandler-DNSXWTQV.cjs} +3 -3
  3. package/dist/{PptxHandler-2V4PQL6O.mjs → PptxHandler-FSKKPZZC.mjs} +3 -3
  4. package/dist/PptxHandler-H7MEWJJJ.mjs +4 -0
  5. package/dist/{PresentationBuilder-G7MPEGXJ.mjs → PresentationBuilder-7TSENZTX.mjs} +2 -2
  6. package/dist/{PresentationBuilder-RM52LCVN.cjs → PresentationBuilder-A5NI35VN.cjs} +5 -5
  7. package/dist/{PresentationBuilder-HQ6C7L4V.mjs → PresentationBuilder-RIJWQSEU.mjs} +3 -3
  8. package/dist/automation/docx-forms.d.ts +26 -0
  9. package/dist/automation/docx-forms.d.ts.map +1 -0
  10. package/dist/automation/index.cjs +6280 -2506
  11. package/dist/automation/index.d.ts +1 -0
  12. package/dist/automation/index.d.ts.map +1 -1
  13. package/dist/automation/index.mjs +6277 -2507
  14. package/dist/automation/xlsx-read.d.ts +56 -0
  15. package/dist/automation/xlsx-read.d.ts.map +1 -0
  16. package/dist/automation/xlsx.d.ts +105 -4
  17. package/dist/automation/xlsx.d.ts.map +1 -1
  18. package/dist/chart/axis-range.d.ts.map +1 -1
  19. package/dist/chart/bubble-radius.d.ts +0 -5
  20. package/dist/chart/bubble-radius.d.ts.map +1 -1
  21. package/dist/chart/extent.d.ts +9 -0
  22. package/dist/chart/extent.d.ts.map +1 -0
  23. package/dist/chart/histogram-binning.d.ts.map +1 -1
  24. package/dist/chart/index.cjs +56 -18
  25. package/dist/chart/index.mjs +56 -18
  26. package/dist/chart/render/chart-svg-cartesian.d.ts.map +1 -1
  27. package/dist/chart/render/chart-svg-legend.d.ts.map +1 -1
  28. package/dist/chart/render/chart-view-ex.d.ts.map +1 -1
  29. package/dist/chart/render/chart-view.d.ts.map +1 -1
  30. package/dist/chart/trendline-fit.d.ts.map +1 -1
  31. package/dist/{chunk-NYTR4UZ5.cjs → chunk-4LZIUJI3.cjs} +52 -12
  32. package/dist/{chunk-SLNQNVQM.mjs → chunk-4QPOJCJG.mjs} +45 -8
  33. package/dist/{chunk-XTSHZGSM.mjs → chunk-6IIMI5RS.mjs} +52 -12
  34. package/dist/{chunk-TJPUAUWL.mjs → chunk-BA7Z6ATM.mjs} +9 -195
  35. package/dist/{chunk-JUABSM7C.mjs → chunk-DLFMCZZT.mjs} +1 -1
  36. package/dist/{chunk-M4XLF4R7.mjs → chunk-GBKBR4CX.mjs} +20 -8
  37. package/dist/{chunk-R5FIHHGB.cjs → chunk-HL3FBJ6X.cjs} +1648 -1205
  38. package/dist/{chunk-ZJ2OKIJN.mjs → chunk-LF5E5ZOH.mjs} +642 -199
  39. package/dist/{chunk-4FTUAD2B.mjs → chunk-Q5PKBQXH.mjs} +766 -202
  40. package/dist/{chunk-M6GDBVQ7.mjs → chunk-VQF6HQEE.mjs} +1 -1
  41. package/dist/collab/embedding.d.ts +103 -0
  42. package/dist/collab/embedding.d.ts.map +1 -0
  43. package/dist/collab/index.cjs +450 -342
  44. package/dist/collab/index.d.ts +1 -0
  45. package/dist/collab/index.d.ts.map +1 -1
  46. package/dist/collab/index.mjs +443 -343
  47. package/dist/color/theme-palette.d.ts +5 -1
  48. package/dist/color/theme-palette.d.ts.map +1 -1
  49. package/dist/crypto/index.cjs +27 -2
  50. package/dist/crypto/index.mjs +27 -2
  51. package/dist/diagram/index.cjs +31 -3
  52. package/dist/diagram/index.mjs +31 -3
  53. package/dist/docx/block-parser.d.ts.map +1 -1
  54. package/dist/docx/cell-blocks.d.ts +7 -1
  55. package/dist/docx/cell-blocks.d.ts.map +1 -1
  56. package/dist/docx/content-control-edit.d.ts +14 -0
  57. package/dist/docx/content-control-edit.d.ts.map +1 -1
  58. package/dist/docx/content-control-model.d.ts +8 -0
  59. package/dist/docx/content-control-model.d.ts.map +1 -1
  60. package/dist/docx/content-control-values.d.ts +20 -0
  61. package/dist/docx/content-control-values.d.ts.map +1 -0
  62. package/dist/docx/content-control.d.ts +7 -1
  63. package/dist/docx/content-control.d.ts.map +1 -1
  64. package/dist/docx/element-order.d.ts +10 -5
  65. package/dist/docx/element-order.d.ts.map +1 -1
  66. package/dist/docx/embedded.cjs +3861 -1379
  67. package/dist/docx/embedded.mjs +3861 -1379
  68. package/dist/docx/field-instruction.d.ts +22 -0
  69. package/dist/docx/field-instruction.d.ts.map +1 -0
  70. package/dist/docx/form-field-model.d.ts +48 -0
  71. package/dist/docx/form-field-model.d.ts.map +1 -0
  72. package/dist/docx/form-fields.d.ts +31 -0
  73. package/dist/docx/form-fields.d.ts.map +1 -0
  74. package/dist/docx/form-fill-fields.d.ts +61 -0
  75. package/dist/docx/form-fill-fields.d.ts.map +1 -0
  76. package/dist/docx/form-fill-labels.d.ts +8 -0
  77. package/dist/docx/form-fill-labels.d.ts.map +1 -0
  78. package/dist/docx/form-fill-sites.d.ts +59 -0
  79. package/dist/docx/form-fill-sites.d.ts.map +1 -0
  80. package/dist/docx/form-fill-values.d.ts +28 -0
  81. package/dist/docx/form-fill-values.d.ts.map +1 -0
  82. package/dist/docx/form-fill-write.d.ts +26 -0
  83. package/dist/docx/form-fill-write.d.ts.map +1 -0
  84. package/dist/docx/glossary.d.ts +15 -0
  85. package/dist/docx/glossary.d.ts.map +1 -0
  86. package/dist/docx/index.cjs +5929 -3153
  87. package/dist/docx/index.d.ts +7 -0
  88. package/dist/docx/index.d.ts.map +1 -1
  89. package/dist/docx/index.mjs +5913 -3154
  90. package/dist/docx/inline-annotations.d.ts +21 -0
  91. package/dist/docx/inline-annotations.d.ts.map +1 -0
  92. package/dist/docx/inline-container-markers.d.ts +14 -0
  93. package/dist/docx/inline-container-markers.d.ts.map +1 -0
  94. package/dist/docx/inline-containers.d.ts +54 -0
  95. package/dist/docx/inline-containers.d.ts.map +1 -0
  96. package/dist/docx/inline-form-field-bookmarks.d.ts +15 -0
  97. package/dist/docx/inline-form-field-bookmarks.d.ts.map +1 -0
  98. package/dist/docx/inline-marker-positions.d.ts +15 -0
  99. package/dist/docx/inline-marker-positions.d.ts.map +1 -0
  100. package/dist/docx/inline-markers.d.ts +63 -0
  101. package/dist/docx/inline-markers.d.ts.map +1 -0
  102. package/dist/docx/inline-slots.d.ts +24 -0
  103. package/dist/docx/inline-slots.d.ts.map +1 -0
  104. package/dist/docx/layout/adapter.d.ts.map +1 -1
  105. package/dist/docx/layout/index.cjs +1176 -563
  106. package/dist/docx/layout/index.d.ts +2 -1
  107. package/dist/docx/layout/index.d.ts.map +1 -1
  108. package/dist/docx/layout/index.mjs +1175 -564
  109. package/dist/docx/layout/input.d.ts +5 -1
  110. package/dist/docx/layout/input.d.ts.map +1 -1
  111. package/dist/docx/layout/page-style-refs.d.ts +21 -0
  112. package/dist/docx/layout/page-style-refs.d.ts.map +1 -0
  113. package/dist/docx/layout/paragraph-fragments.d.ts.map +1 -1
  114. package/dist/docx/layout/result.d.ts +1 -0
  115. package/dist/docx/layout/result.d.ts.map +1 -1
  116. package/dist/docx/layout/tab-stops.d.ts +8 -1
  117. package/dist/docx/layout/tab-stops.d.ts.map +1 -1
  118. package/dist/docx/load/index.cjs +3969 -1487
  119. package/dist/docx/load/index.mjs +3969 -1487
  120. package/dist/docx/model-run.d.ts +24 -2
  121. package/dist/docx/model-run.d.ts.map +1 -1
  122. package/dist/docx/model.d.ts +5 -0
  123. package/dist/docx/model.d.ts.map +1 -1
  124. package/dist/docx/numbering-format.d.ts.map +1 -1
  125. package/dist/docx/parse-warnings.d.ts.map +1 -1
  126. package/dist/docx/parse.d.ts.map +1 -1
  127. package/dist/docx/run-segmentation.d.ts +11 -0
  128. package/dist/docx/run-segmentation.d.ts.map +1 -0
  129. package/dist/docx/save.d.ts.map +1 -1
  130. package/dist/docx/section-model.d.ts +5 -0
  131. package/dist/docx/section-model.d.ts.map +1 -1
  132. package/dist/docx/sections.d.ts +4 -2
  133. package/dist/docx/sections.d.ts.map +1 -1
  134. package/dist/docx/settings.d.ts +9 -0
  135. package/dist/docx/settings.d.ts.map +1 -1
  136. package/dist/docx/special-characters.d.ts +34 -0
  137. package/dist/docx/special-characters.d.ts.map +1 -0
  138. package/dist/docx/style-ref-fields.d.ts +40 -0
  139. package/dist/docx/style-ref-fields.d.ts.map +1 -0
  140. package/dist/docx/style-ref.d.ts +85 -0
  141. package/dist/docx/style-ref.d.ts.map +1 -0
  142. package/dist/docx/table-model.d.ts +2 -2
  143. package/dist/docx/table-model.d.ts.map +1 -1
  144. package/dist/docx/ui/break-note-schema.d.ts.map +1 -1
  145. package/dist/docx/ui/content-control-commands.d.ts +20 -8
  146. package/dist/docx/ui/content-control-commands.d.ts.map +1 -1
  147. package/dist/docx/ui/content-control-guard.d.ts +4 -1
  148. package/dist/docx/ui/content-control-guard.d.ts.map +1 -1
  149. package/dist/docx/ui/content-control-paste.d.ts +23 -0
  150. package/dist/docx/ui/content-control-paste.d.ts.map +1 -0
  151. package/dist/docx/ui/content-control-rows.d.ts +15 -0
  152. package/dist/docx/ui/content-control-rows.d.ts.map +1 -0
  153. package/dist/docx/ui/content-control-sources.d.ts +12 -0
  154. package/dist/docx/ui/content-control-sources.d.ts.map +1 -0
  155. package/dist/docx/ui/content-control-spans.d.ts +29 -6
  156. package/dist/docx/ui/content-control-spans.d.ts.map +1 -1
  157. package/dist/docx/ui/content-control-temporary.d.ts +10 -0
  158. package/dist/docx/ui/content-control-temporary.d.ts.map +1 -0
  159. package/dist/docx/ui/form-field-commands.d.ts +41 -0
  160. package/dist/docx/ui/form-field-commands.d.ts.map +1 -0
  161. package/dist/docx/ui/form-field-guard.d.ts +24 -0
  162. package/dist/docx/ui/form-field-guard.d.ts.map +1 -0
  163. package/dist/docx/ui/form-text-blank.d.ts +18 -0
  164. package/dist/docx/ui/form-text-blank.d.ts.map +1 -0
  165. package/dist/docx/ui/index.cjs +9276 -7132
  166. package/dist/docx/ui/index.d.ts +5 -0
  167. package/dist/docx/ui/index.d.ts.map +1 -1
  168. package/dist/docx/ui/index.mjs +9259 -7137
  169. package/dist/docx/ui/positional-tab-input.d.ts +7 -0
  170. package/dist/docx/ui/positional-tab-input.d.ts.map +1 -0
  171. package/dist/docx/ui/run-compare.d.ts.map +1 -1
  172. package/dist/docx/ui/run-extra-mark.d.ts +1 -1
  173. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -1
  174. package/dist/docx/ui/schema-marks.d.ts +1 -1
  175. package/dist/docx/ui/schema-marks.d.ts.map +1 -1
  176. package/dist/docx/ui/symbol-font.d.ts +4 -0
  177. package/dist/docx/ui/symbol-font.d.ts.map +1 -0
  178. package/dist/docx/ui/yjs-collaboration.d.ts +12 -1
  179. package/dist/docx/ui/yjs-collaboration.d.ts.map +1 -1
  180. package/dist/docx/write-block-placement.d.ts +7 -0
  181. package/dist/docx/write-block-placement.d.ts.map +1 -1
  182. package/dist/docx/write-content-control.d.ts +6 -0
  183. package/dist/docx/write-content-control.d.ts.map +1 -1
  184. package/dist/docx/write-header-footer.d.ts +6 -2
  185. package/dist/docx/write-header-footer.d.ts.map +1 -1
  186. package/dist/docx/write-inline.d.ts +12 -16
  187. package/dist/docx/write-inline.d.ts.map +1 -1
  188. package/dist/docx/write-paragraph.d.ts.map +1 -1
  189. package/dist/docx/write-revisions.d.ts.map +1 -1
  190. package/dist/docx/write-run.d.ts.map +1 -1
  191. package/dist/docx/write-section-properties.d.ts +5 -0
  192. package/dist/docx/write-section-properties.d.ts.map +1 -0
  193. package/dist/docx/write-sections.d.ts.map +1 -1
  194. package/dist/docx/write-table-controls.d.ts +15 -0
  195. package/dist/docx/write-table-controls.d.ts.map +1 -0
  196. package/dist/docx/write-table-properties.d.ts.map +1 -1
  197. package/dist/docx/write-table.d.ts.map +1 -1
  198. package/dist/docx/write.d.ts.map +1 -1
  199. package/dist/docx/xml.d.ts +6 -0
  200. package/dist/docx/xml.d.ts.map +1 -1
  201. package/dist/drawingml/index.cjs +31 -3
  202. package/dist/drawingml/index.mjs +31 -3
  203. package/dist/index.cjs +102 -26
  204. package/dist/index.mjs +102 -26
  205. package/dist/math/index.cjs +27 -2
  206. package/dist/math/index.mjs +27 -2
  207. package/dist/opc/index.cjs +51 -11
  208. package/dist/opc/index.mjs +51 -11
  209. package/dist/opc/zip-folders.d.ts +11 -0
  210. package/dist/opc/zip-folders.d.ts.map +1 -0
  211. package/dist/opc/zip-limits.d.ts +9 -0
  212. package/dist/opc/zip-limits.d.ts.map +1 -1
  213. package/dist/pptx/automation/index.cjs +995 -462
  214. package/dist/pptx/automation/index.d.ts +2 -2
  215. package/dist/pptx/automation/index.mjs +6 -6
  216. package/dist/pptx/chunks/{index-Bqm-jFG-.d.ts → index-CPhsd7Df.d.ts} +7580 -7507
  217. package/dist/pptx/chunks/index-CPhsd7Df.d.ts.map +1 -0
  218. package/dist/pptx/chunks/{index-B9x557hr.d.ts → index-Q5mM8kIR.d.ts} +2 -2
  219. package/dist/pptx/chunks/{index-B9x557hr.d.ts.map → index-Q5mM8kIR.d.ts.map} +1 -1
  220. package/dist/pptx/cli/index.cjs +770 -238
  221. package/dist/pptx/cli/index.mjs +5 -5
  222. package/dist/pptx/converter/index.cjs +12 -3
  223. package/dist/pptx/converter/index.d.ts +1 -1
  224. package/dist/pptx/converter/index.mjs +3 -3
  225. package/dist/pptx/editor/render/find-replace.cjs +14 -14
  226. package/dist/pptx/editor/render/find-replace.d.ts +1 -1
  227. package/dist/pptx/editor/render/find-replace.mjs +1 -1
  228. package/dist/pptx/editor/render/slide-operations.cjs +8 -8
  229. package/dist/pptx/editor/render/slide-operations.mjs +2 -2
  230. package/dist/pptx/index.cjs +1099 -628
  231. package/dist/pptx/index.d.ts +3 -3
  232. package/dist/pptx/index.mjs +6 -6
  233. package/dist/pptx/signature-node/index.cjs +20 -8
  234. package/dist/pptx/signature-node/index.mjs +2 -2
  235. package/dist/teams/index.cjs +105 -70
  236. package/dist/teams/index.mjs +105 -70
  237. package/dist/text/text-diff.d.ts +15 -0
  238. package/dist/text/text-diff.d.ts.map +1 -0
  239. package/dist/visio/index.cjs +220 -46
  240. package/dist/visio/index.mjs +220 -46
  241. package/dist/visio/ui/contract.d.ts +8 -2
  242. package/dist/visio/ui/contract.d.ts.map +1 -1
  243. package/dist/visio/ui/index.cjs +227 -50
  244. package/dist/visio/ui/index.mjs +227 -50
  245. package/dist/xlsx/collab/index.cjs +8 -3
  246. package/dist/xlsx/collab/index.mjs +8 -3
  247. package/dist/xlsx/compare/cells.d.ts +22 -0
  248. package/dist/xlsx/compare/cells.d.ts.map +1 -0
  249. package/dist/xlsx/compare/compare.d.ts +12 -0
  250. package/dist/xlsx/compare/compare.d.ts.map +1 -0
  251. package/dist/xlsx/compare/conditional.d.ts +7 -0
  252. package/dist/xlsx/compare/conditional.d.ts.map +1 -0
  253. package/dist/xlsx/compare/format-key.d.ts +34 -0
  254. package/dist/xlsx/compare/format-key.d.ts.map +1 -0
  255. package/dist/xlsx/compare/group.d.ts +8 -0
  256. package/dist/xlsx/compare/group.d.ts.map +1 -0
  257. package/dist/xlsx/compare/index.d.ts +5 -0
  258. package/dist/xlsx/compare/index.d.ts.map +1 -0
  259. package/dist/xlsx/compare/rich-text.d.ts +7 -0
  260. package/dist/xlsx/compare/rich-text.d.ts.map +1 -0
  261. package/dist/xlsx/compare/sheets.d.ts +22 -0
  262. package/dist/xlsx/compare/sheets.d.ts.map +1 -0
  263. package/dist/xlsx/compare/structure.d.ts +11 -0
  264. package/dist/xlsx/compare/structure.d.ts.map +1 -0
  265. package/dist/xlsx/compare/text.d.ts +8 -0
  266. package/dist/xlsx/compare/text.d.ts.map +1 -0
  267. package/dist/xlsx/compare/types.d.ts +173 -0
  268. package/dist/xlsx/compare/types.d.ts.map +1 -0
  269. package/dist/xlsx/edit/cell-values.d.ts.map +1 -1
  270. package/dist/xlsx/edit/clipboard-html.d.ts.map +1 -1
  271. package/dist/xlsx/edit/clipboard-text.d.ts.map +1 -1
  272. package/dist/xlsx/edit/clipboard.d.ts.map +1 -1
  273. package/dist/xlsx/edit/clone-cell.d.ts +9 -0
  274. package/dist/xlsx/edit/clone-cell.d.ts.map +1 -0
  275. package/dist/xlsx/edit/dimensions.d.ts.map +1 -1
  276. package/dist/xlsx/edit/history-rows.d.ts +7 -0
  277. package/dist/xlsx/edit/history-rows.d.ts.map +1 -0
  278. package/dist/xlsx/edit/history.d.ts +19 -4
  279. package/dist/xlsx/edit/history.d.ts.map +1 -1
  280. package/dist/xlsx/edit/outline.d.ts.map +1 -1
  281. package/dist/xlsx/edit/row-autofit.d.ts.map +1 -1
  282. package/dist/xlsx/edit/timelines.d.ts.map +1 -1
  283. package/dist/xlsx/formula/change-areas.d.ts +9 -0
  284. package/dist/xlsx/formula/change-areas.d.ts.map +1 -0
  285. package/dist/xlsx/formula/engine-prepare.d.ts +8 -0
  286. package/dist/xlsx/formula/engine-prepare.d.ts.map +1 -1
  287. package/dist/xlsx/formula/engine.d.ts.map +1 -1
  288. package/dist/xlsx/formula/spill.d.ts +5 -1
  289. package/dist/xlsx/formula/spill.d.ts.map +1 -1
  290. package/dist/xlsx/index.cjs +2551 -1208
  291. package/dist/xlsx/index.d.ts +1 -0
  292. package/dist/xlsx/index.d.ts.map +1 -1
  293. package/dist/xlsx/index.mjs +2544 -1209
  294. package/dist/xlsx/layout/cell-view.d.ts.map +1 -1
  295. package/dist/xlsx/layout/navigate.d.ts.map +1 -1
  296. package/dist/xlsx/layout/style-view.d.ts +5 -0
  297. package/dist/xlsx/layout/style-view.d.ts.map +1 -1
  298. package/dist/xlsx/load/csv-dates.d.ts +22 -0
  299. package/dist/xlsx/load/csv-dates.d.ts.map +1 -0
  300. package/dist/xlsx/load/csv-import.d.ts +64 -0
  301. package/dist/xlsx/load/csv-import.d.ts.map +1 -0
  302. package/dist/xlsx/load/csv-separators.d.ts +13 -0
  303. package/dist/xlsx/load/csv-separators.d.ts.map +1 -0
  304. package/dist/xlsx/load/csv-traits.d.ts +20 -0
  305. package/dist/xlsx/load/csv-traits.d.ts.map +1 -0
  306. package/dist/xlsx/load/csv.d.ts +8 -4
  307. package/dist/xlsx/load/csv.d.ts.map +1 -1
  308. package/dist/xlsx/load/detect.d.ts +13 -0
  309. package/dist/xlsx/load/detect.d.ts.map +1 -1
  310. package/dist/xlsx/load/errors.d.ts +1 -0
  311. package/dist/xlsx/load/errors.d.ts.map +1 -1
  312. package/dist/xlsx/load/index.cjs +598 -98
  313. package/dist/xlsx/load/index.d.ts +3 -1
  314. package/dist/xlsx/load/index.d.ts.map +1 -1
  315. package/dist/xlsx/load/index.mjs +597 -99
  316. package/dist/xlsx/numfmt/format.d.ts +8 -0
  317. package/dist/xlsx/numfmt/format.d.ts.map +1 -1
  318. package/dist/xlsx/numfmt/input-date.d.ts +2 -0
  319. package/dist/xlsx/numfmt/input-date.d.ts.map +1 -1
  320. package/dist/xlsx/pivot/cache-xml.d.ts.map +1 -1
  321. package/dist/xlsx/pivot/groups.d.ts.map +1 -1
  322. package/dist/xlsx/read/index.d.ts +2 -1
  323. package/dist/xlsx/read/index.d.ts.map +1 -1
  324. package/dist/xlsx/read/limits.d.ts +50 -0
  325. package/dist/xlsx/read/limits.d.ts.map +1 -0
  326. package/dist/xlsx/read/load.d.ts +11 -1
  327. package/dist/xlsx/read/load.d.ts.map +1 -1
  328. package/dist/xlsx/read/package.d.ts +5 -23
  329. package/dist/xlsx/read/package.d.ts.map +1 -1
  330. package/dist/xlsx/read/shared-strings.d.ts +2 -2
  331. package/dist/xlsx/read/shared-strings.d.ts.map +1 -1
  332. package/dist/xlsx/read/sheet-data-source.d.ts.map +1 -1
  333. package/dist/xlsx/read/worksheet.d.ts +2 -0
  334. package/dist/xlsx/read/worksheet.d.ts.map +1 -1
  335. package/dist/xlsx/stable-key.d.ts +3 -0
  336. package/dist/xlsx/stable-key.d.ts.map +1 -0
  337. package/dist/xlsx/styles.d.ts.map +1 -1
  338. package/dist/xlsx/ui/index.cjs +795 -388
  339. package/dist/xlsx/ui/index.d.ts +1 -0
  340. package/dist/xlsx/ui/index.d.ts.map +1 -1
  341. package/dist/xlsx/ui/index.mjs +795 -389
  342. package/dist/xlsx/ui/selection-format.d.ts +13 -0
  343. package/dist/xlsx/ui/selection-format.d.ts.map +1 -0
  344. package/dist/xlsx/write/sheet-props.d.ts.map +1 -1
  345. package/dist/xml/index.cjs +57 -3
  346. package/dist/xml/index.mjs +57 -4
  347. package/dist/xml/lite.d.ts.map +1 -1
  348. package/dist/xml/xml.d.ts +11 -1
  349. package/dist/xml/xml.d.ts.map +1 -1
  350. package/package.json +1 -1
  351. package/dist/PptxHandler-HSPKEP5E.mjs +0 -4
  352. package/dist/pptx/chunks/index-Bqm-jFG-.d.ts.map +0 -1
@@ -2848,10 +2848,13 @@ var DEFAULT_ZIP_LIMITS = {
2848
2848
  var ZipLimitError = class extends Error {
2849
2849
  code = "ZIP_BOMB";
2850
2850
  limit;
2851
+ /** The check that failed (absent when the error was built without one). */
2852
+ kind;
2851
2853
  constructor(message, details) {
2852
2854
  super(message);
2853
2855
  this.name = "ZipLimitError";
2854
2856
  this.limit = details.limit;
2857
+ this.kind = details.kind;
2855
2858
  }
2856
2859
  };
2857
2860
  var mib = (bytes) => Math.round(bytes / 1048576);
@@ -2874,7 +2877,7 @@ function resolveLimits(limits) {
2874
2877
  maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
2875
2878
  maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
2876
2879
  label: limits.label ?? "ZIP",
2877
- fail: (message, limit) => create ? create(message, { limit }) : new ZipLimitError(message, { limit })
2880
+ fail: (message, limit, kind) => create ? create(message, { limit, kind }) : new ZipLimitError(message, { limit, kind })
2878
2881
  };
2879
2882
  }
2880
2883
  function inflateEntryGuarded(entry, alreadyRead, limits) {
@@ -2897,13 +2900,18 @@ function inflateEntryGuarded(entry, alreadyRead, limits) {
2897
2900
  size += chunk2.byteLength;
2898
2901
  if (size > declared || size > r.maxEntryBytes)
2899
2902
  return abort(
2900
- r.fail(`${r.label} part ${entry.name} inflates past its declared size`, r.maxEntryBytes)
2903
+ r.fail(
2904
+ `${r.label} part ${entry.name} inflates past its declared size`,
2905
+ r.maxEntryBytes,
2906
+ size > declared ? "declaredSize" : "maxEntryBytes"
2907
+ )
2901
2908
  );
2902
2909
  if (alreadyRead + size > r.maxTotalBytes)
2903
2910
  return abort(
2904
2911
  r.fail(
2905
2912
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
2906
- r.maxTotalBytes
2913
+ r.maxTotalBytes,
2914
+ "maxTotalBytes"
2907
2915
  )
2908
2916
  );
2909
2917
  chunks.push(chunk2);
@@ -2936,26 +2944,29 @@ function guardZip(zip, limits = {}) {
2936
2944
  if (entries.length > r.maxEntries)
2937
2945
  throw r.fail(
2938
2946
  `${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
2939
- r.maxEntries
2947
+ r.maxEntries,
2948
+ "maxEntries"
2940
2949
  );
2941
2950
  let declared = 0;
2942
2951
  for (const entry of entries) {
2943
2952
  const original = entry.unsafeOriginalName;
2944
2953
  if (!isSafePartName(entry.name) || original !== void 0 && !isSafePartName(original))
2945
- throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
2954
+ throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
2946
2955
  if (entry.dir) continue;
2947
2956
  const size = declaredEntrySize(entry);
2948
2957
  if (size > r.maxEntryBytes)
2949
2958
  throw r.fail(
2950
2959
  `${r.label} part ${entry.name} exceeds the uncompressed part size limit`,
2951
- r.maxEntryBytes
2960
+ r.maxEntryBytes,
2961
+ "maxEntryBytes"
2952
2962
  );
2953
2963
  declared += size;
2954
2964
  }
2955
2965
  if (declared > r.maxTotalBytes)
2956
2966
  throw r.fail(
2957
2967
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
2958
- r.maxTotalBytes
2968
+ r.maxTotalBytes,
2969
+ "maxTotalBytes"
2959
2970
  );
2960
2971
  const produced = /* @__PURE__ */ new Map();
2961
2972
  let total = 0;
@@ -2993,7 +3004,8 @@ async function openZip(input, limits = {}) {
2993
3004
  if (bytes.byteLength > maxInput)
2994
3005
  throw r.fail(
2995
3006
  `${r.label} package exceeds the ${mib(maxInput)} MiB compressed input limit`,
2996
- maxInput
3007
+ maxInput,
3008
+ "maxInputBytes"
2997
3009
  );
2998
3010
  return guardZip(await JSZip__default.default.loadAsync(bytes), limits);
2999
3011
  }
@@ -29124,6 +29136,19 @@ var DEFAULT_XML_LIMITS = {
29124
29136
  maxDepth: 512,
29125
29137
  maxNodes: 5e6
29126
29138
  };
29139
+ var XmlLimitError = class extends Error {
29140
+ code = "xml-limit";
29141
+ /** The limit that was exceeded. */
29142
+ limit;
29143
+ /** Its value: the largest depth or element count allowed. */
29144
+ maximum;
29145
+ constructor(message, limit, maximum) {
29146
+ super(message);
29147
+ this.name = "XmlLimitError";
29148
+ this.limit = limit;
29149
+ this.maximum = maximum;
29150
+ }
29151
+ };
29127
29152
  var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
29128
29153
  var MARKUP_SKIPS = [
29129
29154
  ["<!--", "-->"],
@@ -29157,11 +29182,22 @@ function checkXmlLimits(xml, label, limits = {}) {
29157
29182
  continue;
29158
29183
  }
29159
29184
  nodes++;
29160
- if (nodes > maxNodes) throw new Error(`${label} XML exceeds the limit of ${maxNodes} elements`);
29185
+ if (nodes > maxNodes)
29186
+ throw new XmlLimitError(
29187
+ `${label} XML exceeds the limit of ${maxNodes} elements`,
29188
+ "maxNodes",
29189
+ maxNodes
29190
+ );
29161
29191
  if (!selfClosing && ++depth > maxDepth2)
29162
- throw new Error(`${label} XML exceeds the nesting depth limit of ${maxDepth2}`);
29192
+ throw new XmlLimitError(
29193
+ `${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
29194
+ "maxDepth",
29195
+ maxDepth2
29196
+ );
29163
29197
  }
29164
29198
  }
29199
+ var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
29200
+ var crlfDeclarations = /* @__PURE__ */ new WeakSet();
29165
29201
  function parseXml(xml, options = {}) {
29166
29202
  const label = options.label ?? "OOXML";
29167
29203
  if (/<!DOCTYPE|<!ENTITY/i.test(xml))
@@ -29183,9 +29219,13 @@ function parseXml(xml, options = {}) {
29183
29219
  }
29184
29220
  if (parseError || !parsed.documentElement)
29185
29221
  throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
29222
+ if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
29186
29223
  return parsed;
29187
29224
  }
29188
- var buildXml = (node) => new xmldom.XMLSerializer().serializeToString(node);
29225
+ var buildXml = (node) => {
29226
+ const xml = new xmldom.XMLSerializer().serializeToString(node);
29227
+ return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
29228
+ };
29189
29229
  var isElement = (node) => node.nodeType === 1;
29190
29230
  var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
29191
29231
  function named(element, local, ns, lenient = true) {
@@ -44045,7 +44085,7 @@ function getShapeType(shapeType) {
44045
44085
  if (normalized === "downarrow") {
44046
44086
  return "downArrow";
44047
44087
  }
44048
- if (normalized.includes("connector")) {
44088
+ if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
44049
44089
  return "connector";
44050
44090
  }
44051
44091
  if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
@@ -1,4 +1,4 @@
1
- import { openNestedZip, openPptxZip } from './chunk-M4XLF4R7.mjs';
1
+ import { openNestedZip, openPptxZip } from './chunk-GBKBR4CX.mjs';
2
2
  import { cloneTextStyle, cloneElement, cloneXmlObject, parseOrderedWhen } from './chunk-54S5A5PZ.mjs';
3
3
  import { themeColorRefToSolidFillWithOpacity, normalizeHexColor, parseDrawingFraction, toHex, scrgbLinearToSrgb8, applyDrawingColorTransforms, parseDrawingHueDegrees, parseDrawingPercent, hslToRgb, clampUnitInterval, parseOoxmlPercent, resolveThemeColorRef } from './chunk-KII4AAYH.mjs';
4
4
  import { XMLBuilder, XMLParser } from 'fast-xml-parser';
@@ -12494,7 +12494,7 @@ function getShapeType(shapeType) {
12494
12494
  if (normalized === "downarrow") {
12495
12495
  return "downArrow";
12496
12496
  }
12497
- if (normalized.includes("connector")) {
12497
+ if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
12498
12498
  return "connector";
12499
12499
  }
12500
12500
  if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
@@ -21818,7 +21818,7 @@ function findTextBearingElementById(elements3, elementId) {
21818
21818
  }
21819
21819
  async function loadNestedDeck(pptxBytes) {
21820
21820
  try {
21821
- const { PptxHandler } = await import('./PptxHandler-2V4PQL6O.mjs');
21821
+ const { PptxHandler } = await import('./PptxHandler-FSKKPZZC.mjs');
21822
21822
  const handler = new PptxHandler();
21823
21823
  const data = await handler.load(pptxBytes.buffer.slice(0));
21824
21824
  return { handler, slides: data.slides };
@@ -38777,6 +38777,19 @@ var DEFAULT_XML_LIMITS = {
38777
38777
  maxDepth: 512,
38778
38778
  maxNodes: 5e6
38779
38779
  };
38780
+ var XmlLimitError = class extends Error {
38781
+ code = "xml-limit";
38782
+ /** The limit that was exceeded. */
38783
+ limit;
38784
+ /** Its value: the largest depth or element count allowed. */
38785
+ maximum;
38786
+ constructor(message, limit, maximum) {
38787
+ super(message);
38788
+ this.name = "XmlLimitError";
38789
+ this.limit = limit;
38790
+ this.maximum = maximum;
38791
+ }
38792
+ };
38780
38793
  var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
38781
38794
  var MARKUP_SKIPS = [
38782
38795
  ["<!--", "-->"],
@@ -38810,11 +38823,22 @@ function checkXmlLimits(xml, label, limits = {}) {
38810
38823
  continue;
38811
38824
  }
38812
38825
  nodes++;
38813
- if (nodes > maxNodes) throw new Error(`${label} XML exceeds the limit of ${maxNodes} elements`);
38826
+ if (nodes > maxNodes)
38827
+ throw new XmlLimitError(
38828
+ `${label} XML exceeds the limit of ${maxNodes} elements`,
38829
+ "maxNodes",
38830
+ maxNodes
38831
+ );
38814
38832
  if (!selfClosing && ++depth > maxDepth2)
38815
- throw new Error(`${label} XML exceeds the nesting depth limit of ${maxDepth2}`);
38833
+ throw new XmlLimitError(
38834
+ `${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
38835
+ "maxDepth",
38836
+ maxDepth2
38837
+ );
38816
38838
  }
38817
38839
  }
38840
+ var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
38841
+ var crlfDeclarations = /* @__PURE__ */ new WeakSet();
38818
38842
  function parseXml(xml, options = {}) {
38819
38843
  const label = options.label ?? "OOXML";
38820
38844
  if (/<!DOCTYPE|<!ENTITY/i.test(xml))
@@ -38836,9 +38860,13 @@ function parseXml(xml, options = {}) {
38836
38860
  }
38837
38861
  if (parseError || !parsed.documentElement)
38838
38862
  throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
38863
+ if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
38839
38864
  return parsed;
38840
38865
  }
38841
- var buildXml = (node) => new XMLSerializer().serializeToString(node);
38866
+ var buildXml = (node) => {
38867
+ const xml = new XMLSerializer().serializeToString(node);
38868
+ return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
38869
+ };
38842
38870
  var isElement = (node) => node.nodeType === 1;
38843
38871
  var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
38844
38872
  function named(element, local, ns, lenient = true) {
@@ -50482,20 +50510,29 @@ var FONT_STYLE_SUFFIX_TOKENS = /* @__PURE__ */ new Set([
50482
50510
  "italic",
50483
50511
  "oblique"
50484
50512
  ]);
50513
+ var FONT_WEIGHT_PREFIX_TOKENS = /* @__PURE__ */ new Set(["semi", "demi", "extra", "ultra"]);
50514
+ var FONT_PREFIXED_WEIGHT_TOKENS = /* @__PURE__ */ new Set(["bold", "light", "black"]);
50485
50515
  function stripFontStyleSuffix(fontName) {
50486
50516
  let name = fontName.trim();
50487
50517
  let stripped = false;
50488
- for (let i2 = 0; i2 < 2; i2++) {
50518
+ let previous = "";
50519
+ let tokens = 0;
50520
+ for (; ; ) {
50489
50521
  const idx = name.lastIndexOf(" ");
50490
50522
  if (idx <= 0) {
50491
50523
  break;
50492
50524
  }
50493
50525
  const token = name.slice(idx + 1).toLowerCase().replace(/-/g, "");
50494
- if (!FONT_STYLE_SUFFIX_TOKENS.has(token)) {
50526
+ const prefix = FONT_WEIGHT_PREFIX_TOKENS.has(token) && FONT_PREFIXED_WEIGHT_TOKENS.has(previous);
50527
+ if (!prefix && (tokens >= 2 || !FONT_STYLE_SUFFIX_TOKENS.has(token))) {
50495
50528
  break;
50496
50529
  }
50497
50530
  name = name.slice(0, idx).trim();
50498
50531
  stripped = true;
50532
+ previous = prefix ? "" : token;
50533
+ if (!prefix) {
50534
+ tokens++;
50535
+ }
50499
50536
  }
50500
50537
  return stripped && name.length > 0 ? name : void 0;
50501
50538
  }
@@ -2842,10 +2842,13 @@ var DEFAULT_ZIP_LIMITS = {
2842
2842
  var ZipLimitError = class extends Error {
2843
2843
  code = "ZIP_BOMB";
2844
2844
  limit;
2845
+ /** The check that failed (absent when the error was built without one). */
2846
+ kind;
2845
2847
  constructor(message, details) {
2846
2848
  super(message);
2847
2849
  this.name = "ZipLimitError";
2848
2850
  this.limit = details.limit;
2851
+ this.kind = details.kind;
2849
2852
  }
2850
2853
  };
2851
2854
  var mib = (bytes) => Math.round(bytes / 1048576);
@@ -2868,7 +2871,7 @@ function resolveLimits(limits) {
2868
2871
  maxEntryBytes: limits.maxEntryBytes ?? DEFAULT_ZIP_LIMITS.maxEntryBytes,
2869
2872
  maxTotalBytes: limits.maxTotalBytes ?? DEFAULT_ZIP_LIMITS.maxTotalBytes,
2870
2873
  label: limits.label ?? "ZIP",
2871
- fail: (message, limit) => create ? create(message, { limit }) : new ZipLimitError(message, { limit })
2874
+ fail: (message, limit, kind) => create ? create(message, { limit, kind }) : new ZipLimitError(message, { limit, kind })
2872
2875
  };
2873
2876
  }
2874
2877
  function inflateEntryGuarded(entry, alreadyRead, limits) {
@@ -2891,13 +2894,18 @@ function inflateEntryGuarded(entry, alreadyRead, limits) {
2891
2894
  size += chunk2.byteLength;
2892
2895
  if (size > declared || size > r.maxEntryBytes)
2893
2896
  return abort(
2894
- r.fail(`${r.label} part ${entry.name} inflates past its declared size`, r.maxEntryBytes)
2897
+ r.fail(
2898
+ `${r.label} part ${entry.name} inflates past its declared size`,
2899
+ r.maxEntryBytes,
2900
+ size > declared ? "declaredSize" : "maxEntryBytes"
2901
+ )
2895
2902
  );
2896
2903
  if (alreadyRead + size > r.maxTotalBytes)
2897
2904
  return abort(
2898
2905
  r.fail(
2899
2906
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
2900
- r.maxTotalBytes
2907
+ r.maxTotalBytes,
2908
+ "maxTotalBytes"
2901
2909
  )
2902
2910
  );
2903
2911
  chunks.push(chunk2);
@@ -2930,26 +2938,29 @@ function guardZip(zip, limits = {}) {
2930
2938
  if (entries.length > r.maxEntries)
2931
2939
  throw r.fail(
2932
2940
  `${r.label} package exceeds the ${r.maxEntries.toLocaleString("en-US")} part limit`,
2933
- r.maxEntries
2941
+ r.maxEntries,
2942
+ "maxEntries"
2934
2943
  );
2935
2944
  let declared = 0;
2936
2945
  for (const entry of entries) {
2937
2946
  const original = entry.unsafeOriginalName;
2938
2947
  if (!isSafePartName(entry.name) || original !== void 0 && !isSafePartName(original))
2939
- throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries);
2948
+ throw r.fail(`${r.label} package has an unsafe part name`, r.maxEntries, "partName");
2940
2949
  if (entry.dir) continue;
2941
2950
  const size = declaredEntrySize(entry);
2942
2951
  if (size > r.maxEntryBytes)
2943
2952
  throw r.fail(
2944
2953
  `${r.label} part ${entry.name} exceeds the uncompressed part size limit`,
2945
- r.maxEntryBytes
2954
+ r.maxEntryBytes,
2955
+ "maxEntryBytes"
2946
2956
  );
2947
2957
  declared += size;
2948
2958
  }
2949
2959
  if (declared > r.maxTotalBytes)
2950
2960
  throw r.fail(
2951
2961
  `${r.label} package exceeds the ${mib(r.maxTotalBytes)} MiB uncompressed content limit`,
2952
- r.maxTotalBytes
2962
+ r.maxTotalBytes,
2963
+ "maxTotalBytes"
2953
2964
  );
2954
2965
  const produced = /* @__PURE__ */ new Map();
2955
2966
  let total = 0;
@@ -2987,7 +2998,8 @@ async function openZip(input, limits = {}) {
2987
2998
  if (bytes.byteLength > maxInput)
2988
2999
  throw r.fail(
2989
3000
  `${r.label} package exceeds the ${mib(maxInput)} MiB compressed input limit`,
2990
- maxInput
3001
+ maxInput,
3002
+ "maxInputBytes"
2991
3003
  );
2992
3004
  return guardZip(await JSZip.loadAsync(bytes), limits);
2993
3005
  }
@@ -29118,6 +29130,19 @@ var DEFAULT_XML_LIMITS = {
29118
29130
  maxDepth: 512,
29119
29131
  maxNodes: 5e6
29120
29132
  };
29133
+ var XmlLimitError = class extends Error {
29134
+ code = "xml-limit";
29135
+ /** The limit that was exceeded. */
29136
+ limit;
29137
+ /** Its value: the largest depth or element count allowed. */
29138
+ maximum;
29139
+ constructor(message, limit, maximum) {
29140
+ super(message);
29141
+ this.name = "XmlLimitError";
29142
+ this.limit = limit;
29143
+ this.maximum = maximum;
29144
+ }
29145
+ };
29121
29146
  var TAG_RE = /<(\/?)([^\s\/><]+)(?:\s+[^\s=\/><]+\s*=\s*(?:"[^"<]*"|'[^'<]*'))*\s*(\/?)>/y;
29122
29147
  var MARKUP_SKIPS = [
29123
29148
  ["<!--", "-->"],
@@ -29151,11 +29176,22 @@ function checkXmlLimits(xml, label, limits = {}) {
29151
29176
  continue;
29152
29177
  }
29153
29178
  nodes++;
29154
- if (nodes > maxNodes) throw new Error(`${label} XML exceeds the limit of ${maxNodes} elements`);
29179
+ if (nodes > maxNodes)
29180
+ throw new XmlLimitError(
29181
+ `${label} XML exceeds the limit of ${maxNodes} elements`,
29182
+ "maxNodes",
29183
+ maxNodes
29184
+ );
29155
29185
  if (!selfClosing && ++depth > maxDepth2)
29156
- throw new Error(`${label} XML exceeds the nesting depth limit of ${maxDepth2}`);
29186
+ throw new XmlLimitError(
29187
+ `${label} XML exceeds the nesting depth limit of ${maxDepth2}`,
29188
+ "maxDepth",
29189
+ maxDepth2
29190
+ );
29157
29191
  }
29158
29192
  }
29193
+ var CRLF_DECLARATION = /^<\?xml[^>]*\?>\r\n/;
29194
+ var crlfDeclarations = /* @__PURE__ */ new WeakSet();
29159
29195
  function parseXml(xml, options = {}) {
29160
29196
  const label = options.label ?? "OOXML";
29161
29197
  if (/<!DOCTYPE|<!ENTITY/i.test(xml))
@@ -29177,9 +29213,13 @@ function parseXml(xml, options = {}) {
29177
29213
  }
29178
29214
  if (parseError || !parsed.documentElement)
29179
29215
  throw new Error(`Invalid ${label} XML: ${parseError || "missing root element"}`);
29216
+ if (CRLF_DECLARATION.test(xml)) crlfDeclarations.add(parsed);
29180
29217
  return parsed;
29181
29218
  }
29182
- var buildXml = (node) => new XMLSerializer().serializeToString(node);
29219
+ var buildXml = (node) => {
29220
+ const xml = new XMLSerializer().serializeToString(node);
29221
+ return crlfDeclarations.has(node) ? xml.replace(/^(<\?xml[^>]*\?>)\n/, "$1\r\n") : xml;
29222
+ };
29183
29223
  var isElement = (node) => node.nodeType === 1;
29184
29224
  var elements = (parent) => Array.from(parent.childNodes).filter(isElement);
29185
29225
  function named(element, local, ns, lenient = true) {
@@ -44039,7 +44079,7 @@ function getShapeType(shapeType) {
44039
44079
  if (normalized === "downarrow") {
44040
44080
  return "downArrow";
44041
44081
  }
44042
- if (normalized.includes("connector")) {
44082
+ if (normalized.includes("connector") && !normalized.startsWith("flowchart")) {
44043
44083
  return "connector";
44044
44084
  }
44045
44085
  if (PRESET_SHAPE_CLIP_PATHS[normalized] !== void 0) {
@@ -1,7 +1,7 @@
1
- import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-JUABSM7C.mjs';
2
- import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, isLineDrawnChartType, chartFormatTargetKey, applyChartGroupOptionsInput, STANDARD_LAYOUTS, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, relationshipsPartFor, parseRelationships, resolvePartPath, clonePartGraph, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-4FTUAD2B.mjs';
3
- import { escAttr, EMU_PER_PIXEL, EMU_PER_INCH, parseXml, first, elements, buildXml, bytesToBase64, base64ToBytes, hasTextProperties } from './chunk-SLNQNVQM.mjs';
4
- import { openPptxZip } from './chunk-M4XLF4R7.mjs';
1
+ import { findText, replaceText, replaceTextInSlide, mergePresentation } from './chunk-DLFMCZZT.mjs';
2
+ import { PresentationBuilder, PptxHandler, SlideBuilder, validateSeriesIndex, removeEmptyDataPoint, ensureDataPoint, ensureChartData, assertChartGradientSupported, toChartGradientFill, isLineDrawnChartType, chartFormatTargetKey, applyChartGroupOptionsInput, countExistingLayouts, addLayoutToSlideMaster, addLayoutContentType, createLayout, STANDARD_LAYOUTS, generateLayoutXml, layoutRelsXml, createTextElement, createShapeElement, createImageElement, createTableElement, createChartElement, createConnectorElement, createMediaElement, createGroupElement, relationshipsPartFor, parseRelationships, resolvePartPath, clonePartGraph, buildRelationshipsXml, buildBlankPresentationArchive, nextRelationshipId, relativePartTarget, PptxXmlBuilder } from './chunk-Q5PKBQXH.mjs';
3
+ import { EMU_PER_PIXEL, EMU_PER_INCH, parseXml, first, elements, buildXml, bytesToBase64, base64ToBytes, hasTextProperties, escAttr } from './chunk-4QPOJCJG.mjs';
4
+ import { openPptxZip } from './chunk-GBKBR4CX.mjs';
5
5
  import { cloneSlide, cloneElement } from './chunk-54S5A5PZ.mjs';
6
6
 
7
7
  // pptx/core/types/transition.ts
@@ -1293,7 +1293,9 @@ var Presentation = class _Presentation {
1293
1293
  data,
1294
1294
  createSlide: (layoutName) => {
1295
1295
  const slideNum = data.slides.length + 1;
1296
- return new SlideBuilder(slideNum, void 0, layoutName);
1296
+ const layouts = handler.getLayoutOptions();
1297
+ const layout = layouts.find((item) => item.name === layoutName) ?? layouts.find((item) => item.name === "Blank") ?? layouts[0];
1298
+ return new SlideBuilder(slideNum, layout?.path, layout?.name ?? layoutName, handler);
1297
1299
  }
1298
1300
  });
1299
1301
  }
@@ -2397,194 +2399,6 @@ function addChartUserShapeGroupChild(element, groupPath, child) {
2397
2399
  });
2398
2400
  }
2399
2401
 
2400
- // pptx/core/builders/sdk/layout-operations.ts
2401
- var EMU_PER_PIXEL2 = 9525;
2402
- function pxToEmu(px) {
2403
- return Math.round(px * EMU_PER_PIXEL2);
2404
- }
2405
- function placeholderSpXml(ph, shapeId) {
2406
- const name = ph.name ?? `${ph.type.charAt(0).toUpperCase() + ph.type.slice(1)} Placeholder ${shapeId - 1}`;
2407
- const x = pxToEmu(ph.x);
2408
- const y = pxToEmu(ph.y);
2409
- const cx = pxToEmu(ph.width);
2410
- const cy = pxToEmu(ph.height);
2411
- const idxAttr = ph.idx !== void 0 ? ` idx="${Math.max(0, Math.round(ph.idx))}"` : "";
2412
- return ` <p:sp>
2413
- <p:nvSpPr>
2414
- <p:cNvPr id="${shapeId}" name="${escAttr(name)}"/>
2415
- <p:cNvSpPr><a:spLocks noGrp="1"/></p:cNvSpPr>
2416
- <p:nvPr><p:ph type="${escAttr(ph.type)}"${idxAttr}/></p:nvPr>
2417
- </p:nvSpPr>
2418
- <p:spPr>
2419
- <a:xfrm><a:off x="${x}" y="${y}"/><a:ext cx="${cx}" cy="${cy}"/></a:xfrm>
2420
- </p:spPr>
2421
- <p:txBody>
2422
- <a:bodyPr/>
2423
- <a:lstStyle/>
2424
- <a:p><a:endParaRPr lang="en-US"/></a:p>
2425
- </p:txBody>
2426
- </p:sp>`;
2427
- }
2428
- function normalizeSrgbHex(color) {
2429
- if (!color) {
2430
- return void 0;
2431
- }
2432
- const raw = color.trim().replace(/^#/, "").toUpperCase();
2433
- if (/^[0-9A-F]{6}$/.test(raw)) {
2434
- return raw;
2435
- }
2436
- if (/^[0-9A-F]{3}$/.test(raw)) {
2437
- return raw.replace(/./g, (ch) => ch + ch);
2438
- }
2439
- return void 0;
2440
- }
2441
- function generateLayoutXml(definition) {
2442
- const layoutType = definition.type ?? "obj";
2443
- const placeholders = definition.placeholders ?? [];
2444
- const phShapes = placeholders.map((ph, i) => placeholderSpXml(ph, i + 2)).join("\n");
2445
- let bgXml = "";
2446
- const hex = normalizeSrgbHex(definition.backgroundColor);
2447
- if (hex) {
2448
- bgXml = ` <p:bg><p:bgPr><a:solidFill><a:srgbClr val="${hex}"/></a:solidFill><a:effectLst/></p:bgPr></p:bg>
2449
- `;
2450
- }
2451
- return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2452
- <p:sldLayout xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"
2453
- xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
2454
- xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"
2455
- type="${escAttr(layoutType)}" preserve="1">
2456
- <p:cSld name="${escAttr(definition.name)}">
2457
- ${bgXml} <p:spTree>
2458
- <p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr>
2459
- <p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr>
2460
- ${phShapes}
2461
- </p:spTree>
2462
- </p:cSld>
2463
- <p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>
2464
- </p:sldLayout>`;
2465
- }
2466
- function layoutRelsXml(masterIndex = 1) {
2467
- return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2468
- <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
2469
- <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster${masterIndex}.xml"/>
2470
- </Relationships>`;
2471
- }
2472
- function countExistingLayouts(zip) {
2473
- let count = 0;
2474
- zip.forEach((relativePath) => {
2475
- if (/^ppt\/slideLayouts\/slideLayout\d+\.xml$/.test(relativePath)) {
2476
- count++;
2477
- }
2478
- });
2479
- return count;
2480
- }
2481
- async function addLayoutToSlideMaster(zip, layoutIndex, masterIndex = 1) {
2482
- const masterRelsPath = `ppt/slideMasters/_rels/slideMaster${masterIndex}.xml.rels`;
2483
- const masterRelsContent = await zip.file(masterRelsPath)?.async("string");
2484
- if (!masterRelsContent) {
2485
- throw new Error(`Slide master rels not found at ${masterRelsPath}`);
2486
- }
2487
- const rIdMatches = [...masterRelsContent.matchAll(/rId(\d+)/g)];
2488
- const maxRId = rIdMatches.reduce((max, m) => Math.max(max, parseInt(m[1], 10)), 0);
2489
- const newRId = `rId${maxRId + 1}`;
2490
- const newRel = ` <Relationship Id="${newRId}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout${layoutIndex}.xml"/>`;
2491
- const updatedRels = masterRelsContent.replace("</Relationships>", `${newRel}
2492
- </Relationships>`);
2493
- zip.file(masterRelsPath, updatedRels);
2494
- const masterPath = `ppt/slideMasters/slideMaster${masterIndex}.xml`;
2495
- const masterContent = await zip.file(masterPath)?.async("string");
2496
- if (!masterContent) {
2497
- throw new Error(`Slide master not found at ${masterPath}`);
2498
- }
2499
- const idMatches = [...masterContent.matchAll(/sldLayoutId\s+id="(\d+)"/g)];
2500
- const maxLayoutId = idMatches.reduce((max, m) => Math.max(max, parseInt(m[1], 10)), 2147483648);
2501
- const newLayoutId = maxLayoutId + 1;
2502
- const newLayoutIdEntry = ` <p:sldLayoutId id="${newLayoutId}" r:id="${newRId}"/>`;
2503
- const updatedMaster = masterContent.replace(
2504
- "</p:sldLayoutIdLst>",
2505
- `${newLayoutIdEntry}
2506
- </p:sldLayoutIdLst>`
2507
- );
2508
- zip.file(masterPath, updatedMaster);
2509
- }
2510
- async function addLayoutContentType(zip, layoutIndex) {
2511
- const ctPath = "[Content_Types].xml";
2512
- const ctContent = await zip.file(ctPath)?.async("string");
2513
- if (!ctContent) {
2514
- throw new Error("Content types file not found");
2515
- }
2516
- const override = ` <Override PartName="/ppt/slideLayouts/slideLayout${layoutIndex}.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/>`;
2517
- const updatedCt = ctContent.replace("</Types>", `${override}
2518
- </Types>`);
2519
- zip.file(ctPath, updatedCt);
2520
- }
2521
- async function createLayout(handler, data, definition, masterIndex = 1) {
2522
- const bytes = await handler.save(data.slides);
2523
- const zip = await openPptxZip(bytes);
2524
- const existingCount = countExistingLayouts(zip);
2525
- const newIndex = existingCount + 1;
2526
- const layoutPath = `ppt/slideLayouts/slideLayout${newIndex}.xml`;
2527
- zip.file(layoutPath, generateLayoutXml(definition));
2528
- zip.file(`ppt/slideLayouts/_rels/slideLayout${newIndex}.xml.rels`, layoutRelsXml(masterIndex));
2529
- await addLayoutToSlideMaster(zip, newIndex, masterIndex);
2530
- await addLayoutContentType(zip, newIndex);
2531
- const updatedBuffer = await zip.generateAsync({ type: "arraybuffer" });
2532
- const newHandler = new PptxHandler();
2533
- const newData = await newHandler.load(updatedBuffer);
2534
- return {
2535
- layoutPath,
2536
- layoutName: definition.name,
2537
- handler: newHandler,
2538
- data: newData
2539
- };
2540
- }
2541
- async function createLayouts(handler, data, definitions, masterIndex = 1) {
2542
- if (definitions.length === 0) {
2543
- return { layoutPaths: [], handler, data };
2544
- }
2545
- const bytes = await handler.save(data.slides);
2546
- const zip = await openPptxZip(bytes);
2547
- const existingCount = countExistingLayouts(zip);
2548
- const layoutPaths = [];
2549
- for (let i = 0; i < definitions.length; i++) {
2550
- const def = definitions[i];
2551
- const newIndex = existingCount + i + 1;
2552
- const layoutPath = `ppt/slideLayouts/slideLayout${newIndex}.xml`;
2553
- zip.file(layoutPath, generateLayoutXml(def));
2554
- zip.file(`ppt/slideLayouts/_rels/slideLayout${newIndex}.xml.rels`, layoutRelsXml(masterIndex));
2555
- await addLayoutToSlideMaster(zip, newIndex, masterIndex);
2556
- await addLayoutContentType(zip, newIndex);
2557
- layoutPaths.push(layoutPath);
2558
- }
2559
- const updatedBuffer = await zip.generateAsync({ type: "arraybuffer" });
2560
- const newHandler = new PptxHandler();
2561
- const newData = await newHandler.load(updatedBuffer);
2562
- return { layoutPaths, handler: newHandler, data: newData };
2563
- }
2564
- function findLayoutByName(data, name) {
2565
- const lowerName = name.toLowerCase();
2566
- const fromOptions = data.layoutOptions?.find((l) => l.name.toLowerCase() === lowerName);
2567
- if (fromOptions) {
2568
- return fromOptions;
2569
- }
2570
- if (data.slideMasters) {
2571
- for (const master of data.slideMasters) {
2572
- const layout = master.layouts?.find((l) => l.name?.toLowerCase() === lowerName);
2573
- if (layout) {
2574
- return { path: layout.path, name: layout.name ?? name };
2575
- }
2576
- }
2577
- }
2578
- return void 0;
2579
- }
2580
- function findLayoutByType(data, type) {
2581
- const fromOptions = data.layoutOptions?.find((l) => l.type === type);
2582
- if (fromOptions) {
2583
- return fromOptions;
2584
- }
2585
- return void 0;
2586
- }
2587
-
2588
2402
  // pptx/core/builders/sdk/master-layout-crud-lookup.ts
2589
2403
  var NOT_FOUND = { ok: false, reason: "notFound" };
2590
2404
  function findMaster(data, masterId) {
@@ -14957,7 +14771,7 @@ async function setPresentationRunText(bytes, slideIndex, elementId, runIndex, te
14957
14771
  async function createPresentationFromOutline(slides, options = {}) {
14958
14772
  if (!(slides instanceof Array) || !slides.length || slides.length > 200)
14959
14773
  throw new Error("A presentation outline has 1 to 200 slides");
14960
- const { PresentationBuilder: PresentationBuilder2 } = await import('./PresentationBuilder-HQ6C7L4V.mjs');
14774
+ const { PresentationBuilder: PresentationBuilder2 } = await import('./PresentationBuilder-RIJWQSEU.mjs');
14961
14775
  const { handler, data, createSlide } = await PresentationBuilder2.create({
14962
14776
  ...options.title ? { title: options.title } : {}
14963
14777
  });
@@ -14993,4 +14807,4 @@ async function createPresentationFromOutline(slides, options = {}) {
14993
14807
  return handler.save(data.slides);
14994
14808
  }
14995
14809
 
14996
- export { ChartBuilder, ConnectorBuilder, GroupBuilder, ImageBuilder, MediaBuilder, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Presentation, SLIDE_PACKAGE_CLIPBOARD_MIME, ShapeBuilder, SlideSizes, THEME_PRESETS, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, ThemePresets, addChartUserShape, addChartUserShapeGroupChild, addSection, applyTemplate, chartFormatTargetSupports, chartSupportsSecondaryAxis, cm, cmToEmu, collectLayoutNames, collectMasterNames, createLayout, createLayouts, createPresentationFromOutline, createSlideClipboardPackage, deleteLayout, deleteSlideMaster, deserializeSlidePackageClipboard, diffPresentations, diffSlides, duplicateElement, duplicateLayout, duplicateSlide, duplicateSlideMaster, emuToPixels, findLayoutByName, findLayoutByType, findOpenXmlCoverage, findPlaceholders, generateLayoutXml, getChartUserShapeAtPath, getSectionForSlide, getThemePreset, importSlidePackage, inches, inchesToEmu, insertLayout, insertSlideMaster, inspectPresentationText, interpolateShapeGeometry, isChartSeriesOnSecondaryAxis, listChartUserShapes, listUnassessedOpenXmlCoverage, mailMerge, mm, moveSlidesToSection, parseSvgPath, pixelsToEmu, pt, readChartElementFormat, removeChartUserShape, removeChartUserShapeAtPath, removeSection, renameLayout, renameSlideMaster, reorderSections, replaceShapeGeometry, replaceWithCustomGeometry, resetChartElementFormat, resetCloneIdCounter, resetSectionIdCounter, serializeSlidePackageClipboard, serializeSvgPath, setChartColorMapOverride, setChartDataPointGradient, setChartDataPointStyle, setChartHelperLine, setChartSeriesGradient, setElementLocked, setPresentationRunText, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, uniqueDisplayName, uniquePrefixedName, updateChartUserShape, updateChartUserShapeAtPath, withChartAxisOptions, withChartDataLabelOptions, withChartElementFormat, withChartLegendOptions, withChartSeriesOnSecondaryAxis, withChartSeriesOptions };
14810
+ export { ChartBuilder, ConnectorBuilder, GroupBuilder, ImageBuilder, MediaBuilder, OPENXML_COVERAGE, OPENXML_SCHEMA_CONSTRUCT_IDS, OPENXML_STRICT_SCHEMA_CONSTRUCT_IDS, OPENXML_TRANSITIONAL_SCHEMA_CONSTRUCT_IDS, Presentation, SLIDE_PACKAGE_CLIPBOARD_MIME, ShapeBuilder, SlideSizes, THEME_PRESETS, TRANSITION_PATTERN_OPTIONS, TRANSITION_THRUBLK_TYPES, TRANSITION_VALID_DIRECTIONS, TableBuilder, TextBuilder, ThemePresets, addChartUserShape, addChartUserShapeGroupChild, addSection, applyTemplate, chartFormatTargetSupports, chartSupportsSecondaryAxis, cm, cmToEmu, collectLayoutNames, collectMasterNames, createPresentationFromOutline, createSlideClipboardPackage, deleteLayout, deleteSlideMaster, deserializeSlidePackageClipboard, diffPresentations, diffSlides, duplicateElement, duplicateLayout, duplicateSlide, duplicateSlideMaster, emuToPixels, findOpenXmlCoverage, findPlaceholders, getChartUserShapeAtPath, getSectionForSlide, getThemePreset, importSlidePackage, inches, inchesToEmu, insertLayout, insertSlideMaster, inspectPresentationText, interpolateShapeGeometry, isChartSeriesOnSecondaryAxis, listChartUserShapes, listUnassessedOpenXmlCoverage, mailMerge, mm, moveSlidesToSection, parseSvgPath, pixelsToEmu, pt, readChartElementFormat, removeChartUserShape, removeChartUserShapeAtPath, removeSection, renameLayout, renameSlideMaster, reorderSections, replaceShapeGeometry, replaceWithCustomGeometry, resetChartElementFormat, resetCloneIdCounter, resetSectionIdCounter, serializeSlidePackageClipboard, serializeSvgPath, setChartColorMapOverride, setChartDataPointGradient, setChartDataPointStyle, setChartHelperLine, setChartSeriesGradient, setElementLocked, setPresentationRunText, summarizeOpenXmlCoverage, summarizeOpenXmlCoverageByVocabulary, uniqueDisplayName, uniquePrefixedName, updateChartUserShape, updateChartUserShapeAtPath, withChartAxisOptions, withChartDataLabelOptions, withChartElementFormat, withChartLegendOptions, withChartSeriesOnSecondaryAxis, withChartSeriesOptions };
@@ -1,4 +1,4 @@
1
- import { hasTextProperties } from './chunk-SLNQNVQM.mjs';
1
+ import { hasTextProperties } from './chunk-4QPOJCJG.mjs';
2
2
  import { cloneSlide } from './chunk-54S5A5PZ.mjs';
3
3
 
4
4
  // pptx/core/builders/sdk/merge-operations.ts