pptx-react-viewer 2.20.3 → 2.20.4

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 (89) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AiChatPanel-ZSVNVRM5.js → AiChatPanel-C3PLXWFZ.js} +23 -23
  3. package/dist/AiChatPanel-C3PLXWFZ.js.br +0 -0
  4. package/dist/AiChatPanel-C3PLXWFZ.js.gz +0 -0
  5. package/dist/{AiChatPanel-NRWACXJ7.mjs → AiChatPanel-Y4BQX3TL.mjs} +3 -3
  6. package/dist/AiChatPanel-Y4BQX3TL.mjs.br +0 -0
  7. package/dist/AiChatPanel-Y4BQX3TL.mjs.gz +0 -0
  8. package/dist/{Model3DScene-IFYFOD6F.mjs → Model3DScene-QJL5F67G.mjs} +1 -1
  9. package/dist/Model3DScene-QJL5F67G.mjs.br +0 -0
  10. package/dist/Model3DScene-QJL5F67G.mjs.gz +0 -0
  11. package/dist/{Model3DScene-3HGARMTA.js → Model3DScene-Z4JPG2NB.js} +2 -2
  12. package/dist/Model3DScene-Z4JPG2NB.js.br +0 -0
  13. package/dist/Model3DScene-Z4JPG2NB.js.gz +0 -0
  14. package/dist/{chunk-LLZ25OVR.js → chunk-7HF5DSE4.js} +154 -148
  15. package/dist/chunk-7HF5DSE4.js.br +0 -0
  16. package/dist/chunk-7HF5DSE4.js.gz +0 -0
  17. package/dist/{chunk-RJ26DQIM.mjs → chunk-ADWJUL4F.mjs} +1 -1
  18. package/dist/chunk-ADWJUL4F.mjs.br +0 -0
  19. package/dist/{chunk-RJ26DQIM.mjs.gz → chunk-ADWJUL4F.mjs.gz} +0 -0
  20. package/dist/{chunk-4JENQPJ3.js → chunk-BDMESP3M.js} +1043 -1043
  21. package/dist/chunk-BDMESP3M.js.br +0 -0
  22. package/dist/chunk-BDMESP3M.js.gz +0 -0
  23. package/dist/{chunk-463BMH5Q.js → chunk-BKBYURH5.js} +383 -383
  24. package/dist/chunk-BKBYURH5.js.br +0 -0
  25. package/dist/chunk-BKBYURH5.js.gz +0 -0
  26. package/dist/{chunk-2MENHAYJ.mjs → chunk-HXFPEJA4.mjs} +434 -385
  27. package/dist/chunk-HXFPEJA4.mjs.br +0 -0
  28. package/dist/chunk-HXFPEJA4.mjs.gz +0 -0
  29. package/dist/{chunk-O5BR276S.mjs → chunk-JL3GWABW.mjs} +8 -2
  30. package/dist/chunk-JL3GWABW.mjs.br +0 -0
  31. package/dist/chunk-JL3GWABW.mjs.gz +0 -0
  32. package/dist/{chunk-QJJX2E6I.js → chunk-KEGEDUJV.js} +3 -3
  33. package/dist/chunk-KEGEDUJV.js.br +0 -0
  34. package/dist/chunk-KEGEDUJV.js.gz +0 -0
  35. package/dist/{chunk-YAKDNRU7.mjs → chunk-KXHYUJI7.mjs} +2 -2
  36. package/dist/chunk-KXHYUJI7.mjs.br +0 -0
  37. package/dist/chunk-KXHYUJI7.mjs.gz +0 -0
  38. package/dist/{chunk-4Z4HEIP5.js → chunk-LBSMBRSD.js} +434 -385
  39. package/dist/chunk-LBSMBRSD.js.br +0 -0
  40. package/dist/chunk-LBSMBRSD.js.gz +0 -0
  41. package/dist/{chunk-AD4LAXDJ.mjs → chunk-YHEASDGN.mjs} +7 -7
  42. package/dist/chunk-YHEASDGN.mjs.br +0 -0
  43. package/dist/chunk-YHEASDGN.mjs.gz +0 -0
  44. package/dist/index.js +45 -45
  45. package/dist/index.js.br +0 -0
  46. package/dist/index.js.gz +0 -0
  47. package/dist/index.mjs +5 -5
  48. package/dist/index.mjs.br +0 -0
  49. package/dist/index.mjs.gz +0 -0
  50. package/dist/internals.js +78 -78
  51. package/dist/internals.js.br +0 -0
  52. package/dist/internals.js.gz +0 -0
  53. package/dist/internals.mjs +3 -3
  54. package/dist/internals.mjs.br +0 -0
  55. package/dist/internals.mjs.gz +0 -0
  56. package/dist/viewer/index.js +26 -26
  57. package/dist/viewer/index.js.br +0 -0
  58. package/dist/viewer/index.js.gz +0 -0
  59. package/dist/viewer/index.mjs +5 -5
  60. package/dist/viewer/index.mjs.br +0 -0
  61. package/dist/viewer/index.mjs.gz +0 -0
  62. package/package.json +1 -1
  63. package/dist/AiChatPanel-NRWACXJ7.mjs.br +0 -0
  64. package/dist/AiChatPanel-NRWACXJ7.mjs.gz +0 -0
  65. package/dist/AiChatPanel-ZSVNVRM5.js.br +0 -0
  66. package/dist/AiChatPanel-ZSVNVRM5.js.gz +0 -0
  67. package/dist/Model3DScene-3HGARMTA.js.br +0 -0
  68. package/dist/Model3DScene-3HGARMTA.js.gz +0 -0
  69. package/dist/Model3DScene-IFYFOD6F.mjs.br +0 -0
  70. package/dist/Model3DScene-IFYFOD6F.mjs.gz +0 -0
  71. package/dist/chunk-2MENHAYJ.mjs.br +0 -0
  72. package/dist/chunk-2MENHAYJ.mjs.gz +0 -0
  73. package/dist/chunk-463BMH5Q.js.br +0 -0
  74. package/dist/chunk-463BMH5Q.js.gz +0 -0
  75. package/dist/chunk-4JENQPJ3.js.br +0 -0
  76. package/dist/chunk-4JENQPJ3.js.gz +0 -0
  77. package/dist/chunk-4Z4HEIP5.js.br +0 -0
  78. package/dist/chunk-4Z4HEIP5.js.gz +0 -0
  79. package/dist/chunk-AD4LAXDJ.mjs.br +0 -0
  80. package/dist/chunk-AD4LAXDJ.mjs.gz +0 -0
  81. package/dist/chunk-LLZ25OVR.js.br +0 -0
  82. package/dist/chunk-LLZ25OVR.js.gz +0 -0
  83. package/dist/chunk-O5BR276S.mjs.br +0 -0
  84. package/dist/chunk-O5BR276S.mjs.gz +0 -0
  85. package/dist/chunk-QJJX2E6I.js.br +0 -0
  86. package/dist/chunk-QJJX2E6I.js.gz +0 -0
  87. package/dist/chunk-RJ26DQIM.mjs.br +0 -0
  88. package/dist/chunk-YAKDNRU7.mjs.br +0 -0
  89. package/dist/chunk-YAKDNRU7.mjs.gz +0 -0
@@ -19950,6 +19950,361 @@ var PptxPresentationSaveBuilder = class {
19950
19950
  presentation["p:modifyVerifier"] = mv;
19951
19951
  }
19952
19952
  };
19953
+ var NAMESPACE_PAIRS = [
19954
+ // -- PresentationML --
19955
+ [
19956
+ "http://purl.oclc.org/ooxml/presentationml/main",
19957
+ "http://schemas.openxmlformats.org/presentationml/2006/main"
19958
+ ],
19959
+ // -- DrawingML --
19960
+ [
19961
+ "http://purl.oclc.org/ooxml/drawingml/main",
19962
+ "http://schemas.openxmlformats.org/drawingml/2006/main"
19963
+ ],
19964
+ [
19965
+ "http://purl.oclc.org/ooxml/drawingml/chart",
19966
+ "http://schemas.openxmlformats.org/drawingml/2006/chart"
19967
+ ],
19968
+ [
19969
+ "http://purl.oclc.org/ooxml/drawingml/chartDrawing",
19970
+ "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"
19971
+ ],
19972
+ [
19973
+ "http://purl.oclc.org/ooxml/drawingml/diagram",
19974
+ "http://schemas.openxmlformats.org/drawingml/2006/diagram"
19975
+ ],
19976
+ [
19977
+ "http://purl.oclc.org/ooxml/drawingml/lockedCanvas",
19978
+ "http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"
19979
+ ],
19980
+ [
19981
+ "http://purl.oclc.org/ooxml/drawingml/picture",
19982
+ "http://schemas.openxmlformats.org/drawingml/2006/picture"
19983
+ ],
19984
+ [
19985
+ "http://purl.oclc.org/ooxml/drawingml/spreadsheetDrawing",
19986
+ "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
19987
+ ],
19988
+ [
19989
+ "http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing",
19990
+ "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
19991
+ ],
19992
+ // -- Relationships --
19993
+ [
19994
+ "http://purl.oclc.org/ooxml/officeDocument/relationships",
19995
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
19996
+ ],
19997
+ [
19998
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/chart",
19999
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
20000
+ ],
20001
+ [
20002
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/comments",
20003
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
20004
+ ],
20005
+ [
20006
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml",
20007
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml"
20008
+ ],
20009
+ [
20010
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramColors",
20011
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors"
20012
+ ],
20013
+ [
20014
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramData",
20015
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData"
20016
+ ],
20017
+ [
20018
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramLayout",
20019
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout"
20020
+ ],
20021
+ [
20022
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramStyle",
20023
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramStyle"
20024
+ ],
20025
+ [
20026
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/customProperties",
20027
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties"
20028
+ ],
20029
+ [
20030
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/extendedProperties",
20031
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
20032
+ ],
20033
+ [
20034
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/font",
20035
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"
20036
+ ],
20037
+ [
20038
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/handoutMaster",
20039
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster"
20040
+ ],
20041
+ [
20042
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/hyperlink",
20043
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
20044
+ ],
20045
+ [
20046
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/image",
20047
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
20048
+ ],
20049
+ [
20050
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/media",
20051
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/media"
20052
+ ],
20053
+ [
20054
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/notesMaster",
20055
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
20056
+ ],
20057
+ [
20058
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/notesSlide",
20059
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
20060
+ ],
20061
+ [
20062
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/oleObject",
20063
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
20064
+ ],
20065
+ [
20066
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/presProps",
20067
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps"
20068
+ ],
20069
+ [
20070
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slide",
20071
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
20072
+ ],
20073
+ [
20074
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slideLayout",
20075
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"
20076
+ ],
20077
+ [
20078
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slideMaster",
20079
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
20080
+ ],
20081
+ [
20082
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/tags",
20083
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tags"
20084
+ ],
20085
+ [
20086
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/theme",
20087
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
20088
+ ],
20089
+ [
20090
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/themeOverride",
20091
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/themeOverride"
20092
+ ],
20093
+ [
20094
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/video",
20095
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"
20096
+ ],
20097
+ [
20098
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/audio",
20099
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio"
20100
+ ],
20101
+ [
20102
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/viewProps",
20103
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps"
20104
+ ],
20105
+ [
20106
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/tableStyles",
20107
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"
20108
+ ],
20109
+ // -- OfficeDocument core --
20110
+ [
20111
+ "http://purl.oclc.org/ooxml/officeDocument/math",
20112
+ "http://schemas.openxmlformats.org/officeDocument/2006/math"
20113
+ ],
20114
+ [
20115
+ "http://purl.oclc.org/ooxml/officeDocument/bibliography",
20116
+ "http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
20117
+ ],
20118
+ [
20119
+ "http://purl.oclc.org/ooxml/officeDocument/customProperties",
20120
+ "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
20121
+ ],
20122
+ [
20123
+ "http://purl.oclc.org/ooxml/officeDocument/extendedProperties",
20124
+ "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
20125
+ ],
20126
+ [
20127
+ "http://purl.oclc.org/ooxml/officeDocument/docPropsVTypes",
20128
+ "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
20129
+ ],
20130
+ // -- OfficeDocument document relationship --
20131
+ // (Other OPC-defined relationship types - package/relationships,
20132
+ // core-properties, digital-signature - are conformance-independent and
20133
+ // intentionally omitted; see the module header.)
20134
+ [
20135
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument",
20136
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
20137
+ ],
20138
+ // -- Schema Library --
20139
+ [
20140
+ "http://purl.oclc.org/ooxml/schemaLibrary/main",
20141
+ "http://schemas.openxmlformats.org/schemaLibrary/2006/main"
20142
+ ],
20143
+ // -- Content-type descriptions (note the distinct transitional host) --
20144
+ [
20145
+ "http://purl.oclc.org/ooxml/descriptions/base",
20146
+ "http://descriptions.openxmlformats.org/description/base"
20147
+ ],
20148
+ [
20149
+ "http://purl.oclc.org/ooxml/descriptions/full",
20150
+ "http://descriptions.openxmlformats.org/description/full"
20151
+ ],
20152
+ // -- SpreadsheetML (for embedded charts / workbooks) --
20153
+ [
20154
+ "http://purl.oclc.org/ooxml/spreadsheetml/main",
20155
+ "http://schemas.openxmlformats.org/spreadsheetml/2006/main"
20156
+ ],
20157
+ // -- WordprocessingML (for embedded docs) --
20158
+ [
20159
+ "http://purl.oclc.org/ooxml/wordprocessingml/main",
20160
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
20161
+ ]
20162
+ ];
20163
+ var STRICT_TO_TRANSITIONAL_NS = new Map(NAMESPACE_PAIRS);
20164
+ var TRANSITIONAL_TO_STRICT_NS = new Map(
20165
+ NAMESPACE_PAIRS.map(([strict, transitional]) => [transitional, strict])
20166
+ );
20167
+ var STRICT_BASE = "http://purl.oclc.org/ooxml/";
20168
+ var TRANSITIONAL_BASE = "http://schemas.openxmlformats.org/";
20169
+ var ALGORITHMIC_FAMILIES = /* @__PURE__ */ new Set([
20170
+ "presentationml",
20171
+ "drawingml",
20172
+ "spreadsheetml",
20173
+ "wordprocessingml",
20174
+ "officeDocument",
20175
+ "schemaLibrary"
20176
+ ]);
20177
+ function deriveTransitionalUri(uri) {
20178
+ if (!uri.startsWith(STRICT_BASE)) {
20179
+ return void 0;
20180
+ }
20181
+ const segments = uri.slice(STRICT_BASE.length).split("/");
20182
+ if (segments.length < 2 || !ALGORITHMIC_FAMILIES.has(segments[0])) {
20183
+ return void 0;
20184
+ }
20185
+ if (segments[1] !== "2006") {
20186
+ segments.splice(1, 0, "2006");
20187
+ }
20188
+ return TRANSITIONAL_BASE + segments.join("/");
20189
+ }
20190
+ function deriveStrictUri(uri) {
20191
+ if (!uri.startsWith(TRANSITIONAL_BASE)) {
20192
+ return void 0;
20193
+ }
20194
+ const segments = uri.slice(TRANSITIONAL_BASE.length).split("/");
20195
+ if (segments.length < 3 || !ALGORITHMIC_FAMILIES.has(segments[0]) || segments[1] !== "2006") {
20196
+ return void 0;
20197
+ }
20198
+ segments.splice(1, 1);
20199
+ return STRICT_BASE + segments.join("/");
20200
+ }
20201
+ function normalizeNamespaceUri(uri) {
20202
+ return STRICT_TO_TRANSITIONAL_NS.get(uri) ?? deriveTransitionalUri(uri) ?? uri;
20203
+ }
20204
+ function isStrictNamespaceUri(uri) {
20205
+ return uri.startsWith("http://purl.oclc.org/ooxml/");
20206
+ }
20207
+ function detectStrictConformance(xmlObj) {
20208
+ for (const key2 of Object.keys(xmlObj)) {
20209
+ const child222 = xmlObj[key2];
20210
+ if (typeof child222 !== "object" || child222 === null || Array.isArray(child222)) {
20211
+ continue;
20212
+ }
20213
+ const node = child222;
20214
+ for (const attrKey of Object.keys(node)) {
20215
+ if (!attrKey.startsWith("@_xmlns")) {
20216
+ continue;
20217
+ }
20218
+ const value = String(node[attrKey] || "");
20219
+ if (isStrictNamespaceUri(value)) {
20220
+ return true;
20221
+ }
20222
+ }
20223
+ }
20224
+ return false;
20225
+ }
20226
+ function normalizeStrictXml(node) {
20227
+ if (typeof node !== "object" || node === null || Array.isArray(node)) {
20228
+ return node;
20229
+ }
20230
+ for (const key2 of Object.keys(node)) {
20231
+ const value = node[key2];
20232
+ if (key2.startsWith("@_xmlns")) {
20233
+ if (typeof value === "string") {
20234
+ node[key2] = normalizeNamespaceUri(value);
20235
+ }
20236
+ continue;
20237
+ }
20238
+ if (key2 === "@_Type" && typeof value === "string") {
20239
+ node[key2] = normalizeNamespaceUri(value);
20240
+ continue;
20241
+ }
20242
+ if (key2 === "@_uri" && typeof value === "string") {
20243
+ node[key2] = normalizeNamespaceUri(value);
20244
+ continue;
20245
+ }
20246
+ if (key2.startsWith("@_")) {
20247
+ continue;
20248
+ }
20249
+ if (Array.isArray(value)) {
20250
+ for (const item of value) {
20251
+ if (typeof item === "object" && item !== null) {
20252
+ normalizeStrictXml(item);
20253
+ }
20254
+ }
20255
+ } else if (typeof value === "object" && value !== null) {
20256
+ normalizeStrictXml(value);
20257
+ }
20258
+ }
20259
+ return node;
20260
+ }
20261
+ function toStrictNamespaceUri(uri) {
20262
+ return TRANSITIONAL_TO_STRICT_NS.get(uri) ?? deriveStrictUri(uri) ?? uri;
20263
+ }
20264
+ function isTransitionalNamespaceUri(uri) {
20265
+ return TRANSITIONAL_TO_STRICT_NS.has(uri) || deriveStrictUri(uri) !== void 0;
20266
+ }
20267
+ function convertXmlToStrict(node, setConformance = false) {
20268
+ if (typeof node !== "object" || node === null || Array.isArray(node)) {
20269
+ return node;
20270
+ }
20271
+ if (setConformance && "p:presentation" in node) {
20272
+ const presentation = node["p:presentation"];
20273
+ if (typeof presentation === "object" && presentation !== null) {
20274
+ presentation["@_conformance"] = "strict";
20275
+ }
20276
+ }
20277
+ for (const key2 of Object.keys(node)) {
20278
+ const value = node[key2];
20279
+ if (key2.startsWith("@_xmlns")) {
20280
+ if (typeof value === "string") {
20281
+ node[key2] = toStrictNamespaceUri(value);
20282
+ }
20283
+ continue;
20284
+ }
20285
+ if (key2 === "@_Type" && typeof value === "string") {
20286
+ node[key2] = toStrictNamespaceUri(value);
20287
+ continue;
20288
+ }
20289
+ if (key2 === "@_uri" && typeof value === "string") {
20290
+ node[key2] = toStrictNamespaceUri(value);
20291
+ continue;
20292
+ }
20293
+ if (key2.startsWith("@_")) {
20294
+ continue;
20295
+ }
20296
+ if (Array.isArray(value)) {
20297
+ for (const item of value) {
20298
+ if (typeof item === "object" && item !== null) {
20299
+ convertXmlToStrict(item);
20300
+ }
20301
+ }
20302
+ } else if (typeof value === "object" && value !== null) {
20303
+ convertXmlToStrict(value);
20304
+ }
20305
+ }
20306
+ return node;
20307
+ }
19953
20308
  function buildSlideReferenceRemap(init) {
19954
20309
  const pathToNewRId = /* @__PURE__ */ new Map();
19955
20310
  for (const slide of init.slides) {
@@ -20019,7 +20374,7 @@ var PptxPresentationSlidesReconciler = class {
20019
20374
  if (typeof relationshipId2 === "string" && relationshipId2.length > 0) {
20020
20375
  usedRIds.add(relationshipId2);
20021
20376
  }
20022
- if (relationshipType === input.slideRelationshipType && typeof relationshipId2 === "string" && typeof relationshipTarget2 === "string") {
20377
+ if (typeof relationshipType === "string" && normalizeNamespaceUri(relationshipType) === normalizeNamespaceUri(input.slideRelationshipType) && typeof relationshipId2 === "string" && typeof relationshipTarget2 === "string") {
20023
20378
  slideTargetByRid.set(relationshipId2, relationshipTarget2);
20024
20379
  continue;
20025
20380
  }
@@ -25439,6 +25794,12 @@ function parseAlignmentAttr2(algn) {
25439
25794
  }
25440
25795
  return ALIGN_MAP[algn] || void 0;
25441
25796
  }
25797
+ function resolveParagraphAlignment(authoredAlignment, placeholderAlignment, paragraphRtl) {
25798
+ if (authoredAlignment !== void 0 && authoredAlignment !== null) {
25799
+ return parseAlignmentAttr2(String(authoredAlignment)) ?? "left";
25800
+ }
25801
+ return placeholderAlignment ?? (paragraphRtl ? "right" : "left");
25802
+ }
25442
25803
  function parseParagraphSpacingPx(spacingNode) {
25443
25804
  if (!spacingNode) {
25444
25805
  return void 0;
@@ -32455,354 +32816,6 @@ function ensureArray3(val2) {
32455
32816
  const arr = Array.isArray(val2) ? val2 : [val2];
32456
32817
  return arr;
32457
32818
  }
32458
- var NAMESPACE_PAIRS = [
32459
- // -- PresentationML --
32460
- [
32461
- "http://purl.oclc.org/ooxml/presentationml/main",
32462
- "http://schemas.openxmlformats.org/presentationml/2006/main"
32463
- ],
32464
- // -- DrawingML --
32465
- [
32466
- "http://purl.oclc.org/ooxml/drawingml/main",
32467
- "http://schemas.openxmlformats.org/drawingml/2006/main"
32468
- ],
32469
- [
32470
- "http://purl.oclc.org/ooxml/drawingml/chart",
32471
- "http://schemas.openxmlformats.org/drawingml/2006/chart"
32472
- ],
32473
- [
32474
- "http://purl.oclc.org/ooxml/drawingml/chartDrawing",
32475
- "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"
32476
- ],
32477
- [
32478
- "http://purl.oclc.org/ooxml/drawingml/diagram",
32479
- "http://schemas.openxmlformats.org/drawingml/2006/diagram"
32480
- ],
32481
- [
32482
- "http://purl.oclc.org/ooxml/drawingml/lockedCanvas",
32483
- "http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"
32484
- ],
32485
- [
32486
- "http://purl.oclc.org/ooxml/drawingml/picture",
32487
- "http://schemas.openxmlformats.org/drawingml/2006/picture"
32488
- ],
32489
- [
32490
- "http://purl.oclc.org/ooxml/drawingml/spreadsheetDrawing",
32491
- "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
32492
- ],
32493
- [
32494
- "http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing",
32495
- "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
32496
- ],
32497
- // -- Relationships --
32498
- [
32499
- "http://purl.oclc.org/ooxml/officeDocument/relationships",
32500
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
32501
- ],
32502
- [
32503
- "http://purl.oclc.org/ooxml/officeDocument/relationships/chart",
32504
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
32505
- ],
32506
- [
32507
- "http://purl.oclc.org/ooxml/officeDocument/relationships/comments",
32508
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
32509
- ],
32510
- [
32511
- "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml",
32512
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml"
32513
- ],
32514
- [
32515
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramColors",
32516
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors"
32517
- ],
32518
- [
32519
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramData",
32520
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData"
32521
- ],
32522
- [
32523
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramLayout",
32524
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout"
32525
- ],
32526
- [
32527
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramStyle",
32528
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramStyle"
32529
- ],
32530
- [
32531
- "http://purl.oclc.org/ooxml/officeDocument/relationships/extended-properties",
32532
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
32533
- ],
32534
- [
32535
- "http://purl.oclc.org/ooxml/officeDocument/relationships/font",
32536
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"
32537
- ],
32538
- [
32539
- "http://purl.oclc.org/ooxml/officeDocument/relationships/handoutMaster",
32540
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster"
32541
- ],
32542
- [
32543
- "http://purl.oclc.org/ooxml/officeDocument/relationships/hyperlink",
32544
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
32545
- ],
32546
- [
32547
- "http://purl.oclc.org/ooxml/officeDocument/relationships/image",
32548
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
32549
- ],
32550
- [
32551
- "http://purl.oclc.org/ooxml/officeDocument/relationships/media",
32552
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/media"
32553
- ],
32554
- [
32555
- "http://purl.oclc.org/ooxml/officeDocument/relationships/notesMaster",
32556
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
32557
- ],
32558
- [
32559
- "http://purl.oclc.org/ooxml/officeDocument/relationships/notesSlide",
32560
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
32561
- ],
32562
- [
32563
- "http://purl.oclc.org/ooxml/officeDocument/relationships/oleObject",
32564
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
32565
- ],
32566
- [
32567
- "http://purl.oclc.org/ooxml/officeDocument/relationships/presProps",
32568
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps"
32569
- ],
32570
- [
32571
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slide",
32572
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
32573
- ],
32574
- [
32575
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slideLayout",
32576
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"
32577
- ],
32578
- [
32579
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slideMaster",
32580
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
32581
- ],
32582
- [
32583
- "http://purl.oclc.org/ooxml/officeDocument/relationships/tags",
32584
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tags"
32585
- ],
32586
- [
32587
- "http://purl.oclc.org/ooxml/officeDocument/relationships/theme",
32588
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
32589
- ],
32590
- [
32591
- "http://purl.oclc.org/ooxml/officeDocument/relationships/themeOverride",
32592
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/themeOverride"
32593
- ],
32594
- [
32595
- "http://purl.oclc.org/ooxml/officeDocument/relationships/video",
32596
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"
32597
- ],
32598
- [
32599
- "http://purl.oclc.org/ooxml/officeDocument/relationships/audio",
32600
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio"
32601
- ],
32602
- [
32603
- "http://purl.oclc.org/ooxml/officeDocument/relationships/viewProps",
32604
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps"
32605
- ],
32606
- [
32607
- "http://purl.oclc.org/ooxml/officeDocument/relationships/tableStyles",
32608
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"
32609
- ],
32610
- // -- OfficeDocument core --
32611
- [
32612
- "http://purl.oclc.org/ooxml/officeDocument/math",
32613
- "http://schemas.openxmlformats.org/officeDocument/2006/math"
32614
- ],
32615
- [
32616
- "http://purl.oclc.org/ooxml/officeDocument/bibliography",
32617
- "http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
32618
- ],
32619
- [
32620
- "http://purl.oclc.org/ooxml/officeDocument/custom-properties",
32621
- "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
32622
- ],
32623
- [
32624
- "http://purl.oclc.org/ooxml/officeDocument/extended-properties",
32625
- "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
32626
- ],
32627
- [
32628
- "http://purl.oclc.org/ooxml/officeDocument/docPropsVTypes",
32629
- "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
32630
- ],
32631
- // -- OfficeDocument document relationship --
32632
- // (Other OPC-defined relationship types - package/relationships,
32633
- // core-properties, digital-signature - are conformance-independent and
32634
- // intentionally omitted; see the module header.)
32635
- [
32636
- "http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument",
32637
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
32638
- ],
32639
- // -- Schema Library --
32640
- [
32641
- "http://purl.oclc.org/ooxml/schemaLibrary/main",
32642
- "http://schemas.openxmlformats.org/schemaLibrary/2006/main"
32643
- ],
32644
- // -- Content-type descriptions (note the distinct transitional host) --
32645
- [
32646
- "http://purl.oclc.org/ooxml/descriptions/base",
32647
- "http://descriptions.openxmlformats.org/description/base"
32648
- ],
32649
- [
32650
- "http://purl.oclc.org/ooxml/descriptions/full",
32651
- "http://descriptions.openxmlformats.org/description/full"
32652
- ],
32653
- // -- SpreadsheetML (for embedded charts / workbooks) --
32654
- [
32655
- "http://purl.oclc.org/ooxml/spreadsheetml/main",
32656
- "http://schemas.openxmlformats.org/spreadsheetml/2006/main"
32657
- ],
32658
- // -- WordprocessingML (for embedded docs) --
32659
- [
32660
- "http://purl.oclc.org/ooxml/wordprocessingml/main",
32661
- "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
32662
- ]
32663
- ];
32664
- var STRICT_TO_TRANSITIONAL_NS = new Map(NAMESPACE_PAIRS);
32665
- var TRANSITIONAL_TO_STRICT_NS = new Map(
32666
- NAMESPACE_PAIRS.map(([strict, transitional]) => [transitional, strict])
32667
- );
32668
- var STRICT_BASE = "http://purl.oclc.org/ooxml/";
32669
- var TRANSITIONAL_BASE = "http://schemas.openxmlformats.org/";
32670
- var ALGORITHMIC_FAMILIES = /* @__PURE__ */ new Set([
32671
- "presentationml",
32672
- "drawingml",
32673
- "spreadsheetml",
32674
- "wordprocessingml",
32675
- "officeDocument",
32676
- "schemaLibrary"
32677
- ]);
32678
- function deriveTransitionalUri(uri) {
32679
- if (!uri.startsWith(STRICT_BASE)) {
32680
- return void 0;
32681
- }
32682
- const segments = uri.slice(STRICT_BASE.length).split("/");
32683
- if (segments.length < 2 || !ALGORITHMIC_FAMILIES.has(segments[0])) {
32684
- return void 0;
32685
- }
32686
- if (segments[1] !== "2006") {
32687
- segments.splice(1, 0, "2006");
32688
- }
32689
- return TRANSITIONAL_BASE + segments.join("/");
32690
- }
32691
- function deriveStrictUri(uri) {
32692
- if (!uri.startsWith(TRANSITIONAL_BASE)) {
32693
- return void 0;
32694
- }
32695
- const segments = uri.slice(TRANSITIONAL_BASE.length).split("/");
32696
- if (segments.length < 3 || !ALGORITHMIC_FAMILIES.has(segments[0]) || segments[1] !== "2006") {
32697
- return void 0;
32698
- }
32699
- segments.splice(1, 1);
32700
- return STRICT_BASE + segments.join("/");
32701
- }
32702
- function normalizeNamespaceUri(uri) {
32703
- return STRICT_TO_TRANSITIONAL_NS.get(uri) ?? deriveTransitionalUri(uri) ?? uri;
32704
- }
32705
- function isStrictNamespaceUri(uri) {
32706
- return uri.startsWith("http://purl.oclc.org/ooxml/");
32707
- }
32708
- function detectStrictConformance(xmlObj) {
32709
- for (const key2 of Object.keys(xmlObj)) {
32710
- const child222 = xmlObj[key2];
32711
- if (typeof child222 !== "object" || child222 === null || Array.isArray(child222)) {
32712
- continue;
32713
- }
32714
- const node = child222;
32715
- for (const attrKey of Object.keys(node)) {
32716
- if (!attrKey.startsWith("@_xmlns")) {
32717
- continue;
32718
- }
32719
- const value = String(node[attrKey] || "");
32720
- if (isStrictNamespaceUri(value)) {
32721
- return true;
32722
- }
32723
- }
32724
- }
32725
- return false;
32726
- }
32727
- function normalizeStrictXml(node) {
32728
- if (typeof node !== "object" || node === null || Array.isArray(node)) {
32729
- return node;
32730
- }
32731
- for (const key2 of Object.keys(node)) {
32732
- const value = node[key2];
32733
- if (key2.startsWith("@_xmlns")) {
32734
- if (typeof value === "string") {
32735
- node[key2] = normalizeNamespaceUri(value);
32736
- }
32737
- continue;
32738
- }
32739
- if (key2 === "@_Type" && typeof value === "string") {
32740
- node[key2] = normalizeNamespaceUri(value);
32741
- continue;
32742
- }
32743
- if (key2 === "@_uri" && typeof value === "string") {
32744
- node[key2] = normalizeNamespaceUri(value);
32745
- continue;
32746
- }
32747
- if (key2.startsWith("@_")) {
32748
- continue;
32749
- }
32750
- if (Array.isArray(value)) {
32751
- for (const item of value) {
32752
- if (typeof item === "object" && item !== null) {
32753
- normalizeStrictXml(item);
32754
- }
32755
- }
32756
- } else if (typeof value === "object" && value !== null) {
32757
- normalizeStrictXml(value);
32758
- }
32759
- }
32760
- return node;
32761
- }
32762
- function toStrictNamespaceUri(uri) {
32763
- return TRANSITIONAL_TO_STRICT_NS.get(uri) ?? deriveStrictUri(uri) ?? uri;
32764
- }
32765
- function convertXmlToStrict(node, setConformance = false) {
32766
- if (typeof node !== "object" || node === null || Array.isArray(node)) {
32767
- return node;
32768
- }
32769
- if (setConformance && "p:presentation" in node) {
32770
- const presentation = node["p:presentation"];
32771
- if (typeof presentation === "object" && presentation !== null) {
32772
- presentation["@_conformance"] = "strict";
32773
- }
32774
- }
32775
- for (const key2 of Object.keys(node)) {
32776
- const value = node[key2];
32777
- if (key2.startsWith("@_xmlns")) {
32778
- if (typeof value === "string") {
32779
- node[key2] = toStrictNamespaceUri(value);
32780
- }
32781
- continue;
32782
- }
32783
- if (key2 === "@_Type" && typeof value === "string") {
32784
- node[key2] = toStrictNamespaceUri(value);
32785
- continue;
32786
- }
32787
- if (key2 === "@_uri" && typeof value === "string") {
32788
- node[key2] = toStrictNamespaceUri(value);
32789
- continue;
32790
- }
32791
- if (key2.startsWith("@_")) {
32792
- continue;
32793
- }
32794
- if (Array.isArray(value)) {
32795
- for (const item of value) {
32796
- if (typeof item === "object" && item !== null) {
32797
- convertXmlToStrict(item);
32798
- }
32799
- }
32800
- } else if (typeof value === "object" && value !== null) {
32801
- convertXmlToStrict(value);
32802
- }
32803
- }
32804
- return node;
32805
- }
32806
32819
  var EMU_PER_PX6 = 9525;
32807
32820
  function ensureArray4(val2) {
32808
32821
  if (val2 === void 0 || val2 === null) {
@@ -37535,6 +37548,25 @@ function ensureArrayLike(value) {
37535
37548
  }
37536
37549
  return Array.isArray(value) ? value : [value];
37537
37550
  }
37551
+ function readPositiveInteger(value) {
37552
+ const parsed = Number.parseInt(String(value ?? ""), 10);
37553
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
37554
+ }
37555
+ function getTableGridExtent(graphicData) {
37556
+ const table = graphicData?.["a:tbl"];
37557
+ if (!table) {
37558
+ return void 0;
37559
+ }
37560
+ const grid = table["a:tblGrid"];
37561
+ const widthEmu = ensureArrayLike(
37562
+ grid?.["a:gridCol"]
37563
+ ).reduce((sum, column) => sum + readPositiveInteger(column?.["@_w"]), 0);
37564
+ const heightEmu = ensureArrayLike(table["a:tr"]).reduce(
37565
+ (sum, row) => sum + readPositiveInteger(row?.["@_h"]),
37566
+ 0
37567
+ );
37568
+ return widthEmu > 0 && heightEmu > 0 ? { widthEmu, heightEmu } : void 0;
37569
+ }
37538
37570
  function collectGraphicFrameExtensions(graphicData) {
37539
37571
  if (!graphicData) {
37540
37572
  return [];
@@ -37783,8 +37815,13 @@ var PptxGraphicFrameParser = class {
37783
37815
  const extensionXml = collectGraphicFrameExtensions(graphicData);
37784
37816
  if (type === "table" && graphicData) {
37785
37817
  const tableData = this.context.parseTableData(graphicData);
37818
+ const tableGridExtent = getTableGridExtent(graphicData);
37786
37819
  return {
37787
37820
  ...baseElement,
37821
+ ...tableGridExtent ? {
37822
+ width: Math.round(tableGridExtent.widthEmu / this.context.emuPerPx),
37823
+ height: Math.round(tableGridExtent.heightEmu / this.context.emuPerPx)
37824
+ } : {},
37788
37825
  tableData,
37789
37826
  ...extensionXml.length > 0 ? { extensionXml } : {}
37790
37827
  };
@@ -44973,8 +45010,10 @@ function parseEotHeader(data) {
44973
45010
  const styleName = readNameString();
44974
45011
  const versionName = readNameString();
44975
45012
  const fullName = readNameString();
44976
- if (version >= 131074) {
45013
+ if (version >= 131073) {
44977
45014
  readNameString();
45015
+ }
45016
+ if (version >= 131074) {
44978
45017
  offset += 8;
44979
45018
  if (offset + 4 <= data.length) {
44980
45019
  const signatureSize = readUint16LE(data, offset + 2);
@@ -53924,6 +53963,10 @@ var PptxHandlerRuntime = class {
53924
53963
  }
53925
53964
  };
53926
53965
  var EMU_PER_PIXEL = 9525;
53966
+ function parseTintShadeVal(value) {
53967
+ const fraction = parseOoxmlPercent(value);
53968
+ return fraction === void 0 || fraction === 0 ? void 0 : Math.round(fraction * 1e5);
53969
+ }
53927
53970
  var BORDER_SIDES = [
53928
53971
  "left",
53929
53972
  "right",
@@ -53947,9 +53990,9 @@ function parseSolidFillStyle(solidFill3) {
53947
53990
  return void 0;
53948
53991
  }
53949
53992
  const tintRaw = schemeClr["a:tint"];
53950
- const tint3 = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
53993
+ const tint3 = tintRaw ? parseTintShadeVal(tintRaw["@_val"]) : void 0;
53951
53994
  const shadeRaw = schemeClr["a:shade"];
53952
- const shade3 = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
53995
+ const shade3 = shadeRaw ? parseTintShadeVal(shadeRaw["@_val"]) : void 0;
53953
53996
  return { schemeColor, tint: tint3, shade: shade3 };
53954
53997
  }
53955
53998
  function parseBorderSide(side) {
@@ -54030,12 +54073,12 @@ function parseColorChoiceFill(node) {
54030
54073
  }
54031
54074
  const fill = { schemeColor: "", color: color2 };
54032
54075
  const tintRaw = srgb?.["a:tint"];
54033
- const tint3 = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
54076
+ const tint3 = tintRaw ? parseTintShadeVal(tintRaw["@_val"]) : void 0;
54034
54077
  if (tint3 !== void 0) {
54035
54078
  fill.tint = tint3;
54036
54079
  }
54037
54080
  const shadeRaw = srgb?.["a:shade"];
54038
- const shade3 = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
54081
+ const shade3 = shadeRaw ? parseTintShadeVal(shadeRaw["@_val"]) : void 0;
54039
54082
  if (shade3 !== void 0) {
54040
54083
  fill.shade = shade3;
54041
54084
  }
@@ -54156,11 +54199,11 @@ function parseTableStyleSectionText(section) {
54156
54199
  hasProps = true;
54157
54200
  const tintNode = schemeClr["a:tint"];
54158
54201
  if (tintNode) {
54159
- result.fontTint = parseInt(String(tintNode["@_val"] || "0"), 10) || void 0;
54202
+ result.fontTint = parseTintShadeVal(tintNode["@_val"]);
54160
54203
  }
54161
54204
  const shadeNode = schemeClr["a:shade"];
54162
54205
  if (shadeNode) {
54163
- result.fontShade = parseInt(String(shadeNode["@_val"] || "0"), 10) || void 0;
54206
+ result.fontShade = parseTintShadeVal(shadeNode["@_val"]);
54164
54207
  }
54165
54208
  }
54166
54209
  } else {
@@ -63073,12 +63116,19 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime8 extends PptxHandlerRuntime
63073
63116
  if (!xmlText2.trim()) {
63074
63117
  continue;
63075
63118
  }
63119
+ const isPresentationXml = path === "ppt/presentation.xml";
63120
+ if (!isPresentationXml) {
63121
+ const candidateUris = xmlText2.match(/https?:\/\/[^"'<>\s]+/gu);
63122
+ const hasConvertibleUri = candidateUris?.some((uri) => isTransitionalNamespaceUri(uri));
63123
+ if (!hasConvertibleUri) {
63124
+ continue;
63125
+ }
63126
+ }
63076
63127
  try {
63077
63128
  const parsed = parse(xmlText2);
63078
63129
  if (typeof parsed !== "object" || parsed === null) {
63079
63130
  continue;
63080
63131
  }
63081
- const isPresentationXml = path === "ppt/presentation.xml";
63082
63132
  convertXmlToStrict(parsed, isPresentationXml);
63083
63133
  this.zip.file(path, this.builder.build(parsed));
63084
63134
  } catch {
@@ -70924,22 +70974,14 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
70924
70974
  if (paragraphRtl !== void 0 && textStyle.rtl === void 0) {
70925
70975
  textStyle.rtl = paragraphRtl;
70926
70976
  }
70927
- let paraAlign = paragraphRtl ? "right" : "left";
70928
- if (pPr?.["@_algn"]) {
70929
- const alignMap = {
70930
- l: "left",
70931
- ctr: "center",
70932
- r: "right",
70933
- just: "justify",
70934
- justify: "justify",
70935
- justLow: "justLow",
70936
- dist: "dist",
70937
- thaiDist: "thaiDist"
70938
- };
70939
- paraAlign = alignMap[pPr["@_algn"]] || "left";
70940
- if (!textStyle.align) {
70941
- textStyle.align = paraAlign;
70942
- }
70977
+ const ownPlaceholderAlignment = ctx.effectiveLevelStyles?.[level]?.alignment ?? ctx.effectiveLevelStyles?.[-1]?.alignment;
70978
+ const paraAlign = resolveParagraphAlignment(
70979
+ pPr?.["@_algn"],
70980
+ ownPlaceholderAlignment,
70981
+ paragraphRtl
70982
+ );
70983
+ if (pPr?.["@_algn"] && !textStyle.align) {
70984
+ textStyle.align = paraAlign;
70943
70985
  }
70944
70986
  const spacingBasisPx = typeof textStyle.fontSize === "number" ? textStyle.fontSize : void 0;
70945
70987
  if (textStyle.paragraphSpacingBefore === void 0) {
@@ -71086,9 +71128,6 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
71086
71128
  this.applyPlaceholderLevelDefaults(textStyle, phBase);
71087
71129
  }
71088
71130
  }
71089
- if (pPr?.["@_algn"] === void 0 && textStyle.align !== void 0) {
71090
- paraAlign = textStyle.align;
71091
- }
71092
71131
  const parMarginLeft = pPr?.["@_marL"] !== void 0 ? Number.parseInt(String(pPr["@_marL"]), 10) / _PptxHandlerRuntime26.EMU_PER_PX : void 0;
71093
71132
  const parIndent = pPr?.["@_indent"] !== void 0 ? Number.parseInt(String(pPr["@_indent"]), 10) / _PptxHandlerRuntime26.EMU_PER_PX : void 0;
71094
71133
  let effectiveMarginLeft = parMarginLeft;
@@ -76580,9 +76619,6 @@ var PptxHandlerRuntime85 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
76580
76619
  const y = Math.round(parseInt(String(off["@_y"] || "0"), 10) / emuPerPx);
76581
76620
  const width = Math.round(parseInt(String(ext["@_cx"] || "0"), 10) / emuPerPx);
76582
76621
  const height = Math.round(parseInt(String(ext["@_cy"] || "0"), 10) / emuPerPx);
76583
- if (width <= 0 || height <= 0) {
76584
- return null;
76585
- }
76586
76622
  const rotation = xfrm?.["@_rot"] ? parseInt(String(xfrm["@_rot"]), 10) / 6e4 : void 0;
76587
76623
  const skewX = xfrm?.["@_skewX"] ? parseInt(String(xfrm["@_skewX"]), 10) / 6e4 : void 0;
76588
76624
  const skewY = xfrm?.["@_skewY"] ? parseInt(String(xfrm["@_skewY"]), 10) / 6e4 : void 0;
@@ -76610,6 +76646,9 @@ var PptxHandlerRuntime85 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
76610
76646
  };
76611
76647
  }
76612
76648
  }
76649
+ if ((width <= 0 || height <= 0) && shapeType !== "line") {
76650
+ return null;
76651
+ }
76613
76652
  const fill = extractDrawingShapeFill(spPr, this.drawingShapeStyleDeps());
76614
76653
  const lnNode = this.xmlLookupService.getChildByLocalName(spPr, "ln");
76615
76654
  const lnFill = lnNode ? this.xmlLookupService.getChildByLocalName(lnNode, "solidFill") : void 0;
@@ -116281,7 +116320,14 @@ function buildBulletMarkerStyle(bullet, firstSeg, fontScale, textIndentPx) {
116281
116320
  }
116282
116321
  var PT_TO_PX = 96 / 72;
116283
116322
  function resolveParagraphSpacing(input) {
116284
- const { paraProps, bodyStyle, isFirst = false, isLast = false, spaceFirstLast = true } = input;
116323
+ const {
116324
+ paraProps,
116325
+ bodyStyle,
116326
+ isFirst = false,
116327
+ isLast = false,
116328
+ spaceFirstLast = true,
116329
+ lineSpacingReduction
116330
+ } = input;
116285
116331
  const out = {};
116286
116332
  const before = paraProps?.paragraphSpacingBefore ?? bodyStyle?.paragraphSpacingBefore;
116287
116333
  if (typeof before === "number" && before > 0 && (!isFirst || spaceFirstLast)) {
@@ -116298,11 +116344,12 @@ function resolveParagraphSpacing(input) {
116298
116344
  if (typeof exactPt === "number" && exactPt > 0) {
116299
116345
  out.lineHeight = `${exactPt * PT_TO_PX}px`;
116300
116346
  } else if (typeof multiplier === "number" && multiplier > 0) {
116301
- out.lineHeight = proportionalLineHeight(multiplier);
116347
+ const proportional = proportionalLineHeight(multiplier);
116348
+ out.lineHeight = typeof lineSpacingReduction === "number" && lineSpacingReduction > 0 ? proportional * (1 - lineSpacingReduction) : proportional;
116302
116349
  }
116303
116350
  return out;
116304
116351
  }
116305
- function resolveParagraphStrutFontSize(segments, bodyFontSize) {
116352
+ function resolveParagraphStrutFontSize(segments, bodyFontSize, fontScale = 1) {
116306
116353
  let largest;
116307
116354
  for (const segment of segments) {
116308
116355
  if (segment.bulletInfo) {
@@ -116322,7 +116369,7 @@ function resolveParagraphStrutFontSize(segments, bodyFontSize) {
116322
116369
  if (typeof bodyFontSize === "number" && Math.abs(largest - bodyFontSize) < 0.01) {
116323
116370
  return void 0;
116324
116371
  }
116325
- return largest;
116372
+ return largest * fontScale;
116326
116373
  }
116327
116374
  function buildParagraphs(element, fieldContext, segmentOverrides) {
116328
116375
  if (!hasTextProperties(element)) {
@@ -116378,11 +116425,13 @@ function buildParagraphs(element, fieldContext, segmentOverrides) {
116378
116425
  bodyStyle,
116379
116426
  isFirst: paraIndex === 0,
116380
116427
  isLast: paraIndex === grouped.length - 1,
116381
- spaceFirstLast: bodyStyle?.spaceFirstLastParagraph !== false
116428
+ spaceFirstLast: bodyStyle?.spaceFirstLastParagraph !== false,
116429
+ lineSpacingReduction: element.textStyle?.autoFitLineSpacingReduction
116382
116430
  });
116383
116431
  const strutFontSizePx = resolveParagraphStrutFontSize(
116384
116432
  paraSegments.length > 0 ? paraSegments : terminator ? [terminator] : [],
116385
- hasTextProperties(element) ? element.textStyle?.fontSize : void 0
116433
+ hasTextProperties(element) ? element.textStyle?.fontSize : void 0,
116434
+ fontScale
116386
116435
  );
116387
116436
  const rtl = resolveParagraphRtl(
116388
116437
  paraSegments.map((seg) => ({ segment: seg })),