pptx-react-viewer 2.20.2 → 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 +12 -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-GUKUV7D4.js → chunk-BDMESP3M.js} +1132 -1118
  21. package/dist/chunk-BDMESP3M.js.br +0 -0
  22. package/dist/chunk-BDMESP3M.js.gz +0 -0
  23. package/dist/{chunk-GKOJO67G.js → chunk-BKBYURH5.js} +393 -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-SZJLZWEX.mjs → chunk-KXHYUJI7.mjs} +12 -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-EDJ4TZML.mjs → chunk-YHEASDGN.mjs} +98 -84
  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 +2 -2
  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-4Z4HEIP5.js.br +0 -0
  74. package/dist/chunk-4Z4HEIP5.js.gz +0 -0
  75. package/dist/chunk-EDJ4TZML.mjs.br +0 -0
  76. package/dist/chunk-EDJ4TZML.mjs.gz +0 -0
  77. package/dist/chunk-GKOJO67G.js.br +0 -0
  78. package/dist/chunk-GKOJO67G.js.gz +0 -0
  79. package/dist/chunk-GUKUV7D4.js.br +0 -0
  80. package/dist/chunk-GUKUV7D4.js.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-SZJLZWEX.mjs.br +0 -0
  89. package/dist/chunk-SZJLZWEX.mjs.gz +0 -0
@@ -19943,6 +19943,361 @@ var PptxPresentationSaveBuilder = class {
19943
19943
  presentation["p:modifyVerifier"] = mv;
19944
19944
  }
19945
19945
  };
19946
+ var NAMESPACE_PAIRS = [
19947
+ // -- PresentationML --
19948
+ [
19949
+ "http://purl.oclc.org/ooxml/presentationml/main",
19950
+ "http://schemas.openxmlformats.org/presentationml/2006/main"
19951
+ ],
19952
+ // -- DrawingML --
19953
+ [
19954
+ "http://purl.oclc.org/ooxml/drawingml/main",
19955
+ "http://schemas.openxmlformats.org/drawingml/2006/main"
19956
+ ],
19957
+ [
19958
+ "http://purl.oclc.org/ooxml/drawingml/chart",
19959
+ "http://schemas.openxmlformats.org/drawingml/2006/chart"
19960
+ ],
19961
+ [
19962
+ "http://purl.oclc.org/ooxml/drawingml/chartDrawing",
19963
+ "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"
19964
+ ],
19965
+ [
19966
+ "http://purl.oclc.org/ooxml/drawingml/diagram",
19967
+ "http://schemas.openxmlformats.org/drawingml/2006/diagram"
19968
+ ],
19969
+ [
19970
+ "http://purl.oclc.org/ooxml/drawingml/lockedCanvas",
19971
+ "http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"
19972
+ ],
19973
+ [
19974
+ "http://purl.oclc.org/ooxml/drawingml/picture",
19975
+ "http://schemas.openxmlformats.org/drawingml/2006/picture"
19976
+ ],
19977
+ [
19978
+ "http://purl.oclc.org/ooxml/drawingml/spreadsheetDrawing",
19979
+ "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
19980
+ ],
19981
+ [
19982
+ "http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing",
19983
+ "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
19984
+ ],
19985
+ // -- Relationships --
19986
+ [
19987
+ "http://purl.oclc.org/ooxml/officeDocument/relationships",
19988
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
19989
+ ],
19990
+ [
19991
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/chart",
19992
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
19993
+ ],
19994
+ [
19995
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/comments",
19996
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
19997
+ ],
19998
+ [
19999
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml",
20000
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml"
20001
+ ],
20002
+ [
20003
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramColors",
20004
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors"
20005
+ ],
20006
+ [
20007
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramData",
20008
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData"
20009
+ ],
20010
+ [
20011
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramLayout",
20012
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout"
20013
+ ],
20014
+ [
20015
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramStyle",
20016
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramStyle"
20017
+ ],
20018
+ [
20019
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/customProperties",
20020
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties"
20021
+ ],
20022
+ [
20023
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/extendedProperties",
20024
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
20025
+ ],
20026
+ [
20027
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/font",
20028
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"
20029
+ ],
20030
+ [
20031
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/handoutMaster",
20032
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster"
20033
+ ],
20034
+ [
20035
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/hyperlink",
20036
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
20037
+ ],
20038
+ [
20039
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/image",
20040
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
20041
+ ],
20042
+ [
20043
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/media",
20044
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/media"
20045
+ ],
20046
+ [
20047
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/notesMaster",
20048
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
20049
+ ],
20050
+ [
20051
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/notesSlide",
20052
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
20053
+ ],
20054
+ [
20055
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/oleObject",
20056
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
20057
+ ],
20058
+ [
20059
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/presProps",
20060
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps"
20061
+ ],
20062
+ [
20063
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slide",
20064
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
20065
+ ],
20066
+ [
20067
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slideLayout",
20068
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"
20069
+ ],
20070
+ [
20071
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/slideMaster",
20072
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
20073
+ ],
20074
+ [
20075
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/tags",
20076
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tags"
20077
+ ],
20078
+ [
20079
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/theme",
20080
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
20081
+ ],
20082
+ [
20083
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/themeOverride",
20084
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/themeOverride"
20085
+ ],
20086
+ [
20087
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/video",
20088
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"
20089
+ ],
20090
+ [
20091
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/audio",
20092
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio"
20093
+ ],
20094
+ [
20095
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/viewProps",
20096
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps"
20097
+ ],
20098
+ [
20099
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/tableStyles",
20100
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"
20101
+ ],
20102
+ // -- OfficeDocument core --
20103
+ [
20104
+ "http://purl.oclc.org/ooxml/officeDocument/math",
20105
+ "http://schemas.openxmlformats.org/officeDocument/2006/math"
20106
+ ],
20107
+ [
20108
+ "http://purl.oclc.org/ooxml/officeDocument/bibliography",
20109
+ "http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
20110
+ ],
20111
+ [
20112
+ "http://purl.oclc.org/ooxml/officeDocument/customProperties",
20113
+ "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
20114
+ ],
20115
+ [
20116
+ "http://purl.oclc.org/ooxml/officeDocument/extendedProperties",
20117
+ "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
20118
+ ],
20119
+ [
20120
+ "http://purl.oclc.org/ooxml/officeDocument/docPropsVTypes",
20121
+ "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
20122
+ ],
20123
+ // -- OfficeDocument document relationship --
20124
+ // (Other OPC-defined relationship types - package/relationships,
20125
+ // core-properties, digital-signature - are conformance-independent and
20126
+ // intentionally omitted; see the module header.)
20127
+ [
20128
+ "http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument",
20129
+ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
20130
+ ],
20131
+ // -- Schema Library --
20132
+ [
20133
+ "http://purl.oclc.org/ooxml/schemaLibrary/main",
20134
+ "http://schemas.openxmlformats.org/schemaLibrary/2006/main"
20135
+ ],
20136
+ // -- Content-type descriptions (note the distinct transitional host) --
20137
+ [
20138
+ "http://purl.oclc.org/ooxml/descriptions/base",
20139
+ "http://descriptions.openxmlformats.org/description/base"
20140
+ ],
20141
+ [
20142
+ "http://purl.oclc.org/ooxml/descriptions/full",
20143
+ "http://descriptions.openxmlformats.org/description/full"
20144
+ ],
20145
+ // -- SpreadsheetML (for embedded charts / workbooks) --
20146
+ [
20147
+ "http://purl.oclc.org/ooxml/spreadsheetml/main",
20148
+ "http://schemas.openxmlformats.org/spreadsheetml/2006/main"
20149
+ ],
20150
+ // -- WordprocessingML (for embedded docs) --
20151
+ [
20152
+ "http://purl.oclc.org/ooxml/wordprocessingml/main",
20153
+ "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
20154
+ ]
20155
+ ];
20156
+ var STRICT_TO_TRANSITIONAL_NS = new Map(NAMESPACE_PAIRS);
20157
+ var TRANSITIONAL_TO_STRICT_NS = new Map(
20158
+ NAMESPACE_PAIRS.map(([strict, transitional]) => [transitional, strict])
20159
+ );
20160
+ var STRICT_BASE = "http://purl.oclc.org/ooxml/";
20161
+ var TRANSITIONAL_BASE = "http://schemas.openxmlformats.org/";
20162
+ var ALGORITHMIC_FAMILIES = /* @__PURE__ */ new Set([
20163
+ "presentationml",
20164
+ "drawingml",
20165
+ "spreadsheetml",
20166
+ "wordprocessingml",
20167
+ "officeDocument",
20168
+ "schemaLibrary"
20169
+ ]);
20170
+ function deriveTransitionalUri(uri) {
20171
+ if (!uri.startsWith(STRICT_BASE)) {
20172
+ return void 0;
20173
+ }
20174
+ const segments = uri.slice(STRICT_BASE.length).split("/");
20175
+ if (segments.length < 2 || !ALGORITHMIC_FAMILIES.has(segments[0])) {
20176
+ return void 0;
20177
+ }
20178
+ if (segments[1] !== "2006") {
20179
+ segments.splice(1, 0, "2006");
20180
+ }
20181
+ return TRANSITIONAL_BASE + segments.join("/");
20182
+ }
20183
+ function deriveStrictUri(uri) {
20184
+ if (!uri.startsWith(TRANSITIONAL_BASE)) {
20185
+ return void 0;
20186
+ }
20187
+ const segments = uri.slice(TRANSITIONAL_BASE.length).split("/");
20188
+ if (segments.length < 3 || !ALGORITHMIC_FAMILIES.has(segments[0]) || segments[1] !== "2006") {
20189
+ return void 0;
20190
+ }
20191
+ segments.splice(1, 1);
20192
+ return STRICT_BASE + segments.join("/");
20193
+ }
20194
+ function normalizeNamespaceUri(uri) {
20195
+ return STRICT_TO_TRANSITIONAL_NS.get(uri) ?? deriveTransitionalUri(uri) ?? uri;
20196
+ }
20197
+ function isStrictNamespaceUri(uri) {
20198
+ return uri.startsWith("http://purl.oclc.org/ooxml/");
20199
+ }
20200
+ function detectStrictConformance(xmlObj) {
20201
+ for (const key2 of Object.keys(xmlObj)) {
20202
+ const child222 = xmlObj[key2];
20203
+ if (typeof child222 !== "object" || child222 === null || Array.isArray(child222)) {
20204
+ continue;
20205
+ }
20206
+ const node = child222;
20207
+ for (const attrKey of Object.keys(node)) {
20208
+ if (!attrKey.startsWith("@_xmlns")) {
20209
+ continue;
20210
+ }
20211
+ const value = String(node[attrKey] || "");
20212
+ if (isStrictNamespaceUri(value)) {
20213
+ return true;
20214
+ }
20215
+ }
20216
+ }
20217
+ return false;
20218
+ }
20219
+ function normalizeStrictXml(node) {
20220
+ if (typeof node !== "object" || node === null || Array.isArray(node)) {
20221
+ return node;
20222
+ }
20223
+ for (const key2 of Object.keys(node)) {
20224
+ const value = node[key2];
20225
+ if (key2.startsWith("@_xmlns")) {
20226
+ if (typeof value === "string") {
20227
+ node[key2] = normalizeNamespaceUri(value);
20228
+ }
20229
+ continue;
20230
+ }
20231
+ if (key2 === "@_Type" && typeof value === "string") {
20232
+ node[key2] = normalizeNamespaceUri(value);
20233
+ continue;
20234
+ }
20235
+ if (key2 === "@_uri" && typeof value === "string") {
20236
+ node[key2] = normalizeNamespaceUri(value);
20237
+ continue;
20238
+ }
20239
+ if (key2.startsWith("@_")) {
20240
+ continue;
20241
+ }
20242
+ if (Array.isArray(value)) {
20243
+ for (const item of value) {
20244
+ if (typeof item === "object" && item !== null) {
20245
+ normalizeStrictXml(item);
20246
+ }
20247
+ }
20248
+ } else if (typeof value === "object" && value !== null) {
20249
+ normalizeStrictXml(value);
20250
+ }
20251
+ }
20252
+ return node;
20253
+ }
20254
+ function toStrictNamespaceUri(uri) {
20255
+ return TRANSITIONAL_TO_STRICT_NS.get(uri) ?? deriveStrictUri(uri) ?? uri;
20256
+ }
20257
+ function isTransitionalNamespaceUri(uri) {
20258
+ return TRANSITIONAL_TO_STRICT_NS.has(uri) || deriveStrictUri(uri) !== void 0;
20259
+ }
20260
+ function convertXmlToStrict(node, setConformance = false) {
20261
+ if (typeof node !== "object" || node === null || Array.isArray(node)) {
20262
+ return node;
20263
+ }
20264
+ if (setConformance && "p:presentation" in node) {
20265
+ const presentation = node["p:presentation"];
20266
+ if (typeof presentation === "object" && presentation !== null) {
20267
+ presentation["@_conformance"] = "strict";
20268
+ }
20269
+ }
20270
+ for (const key2 of Object.keys(node)) {
20271
+ const value = node[key2];
20272
+ if (key2.startsWith("@_xmlns")) {
20273
+ if (typeof value === "string") {
20274
+ node[key2] = toStrictNamespaceUri(value);
20275
+ }
20276
+ continue;
20277
+ }
20278
+ if (key2 === "@_Type" && typeof value === "string") {
20279
+ node[key2] = toStrictNamespaceUri(value);
20280
+ continue;
20281
+ }
20282
+ if (key2 === "@_uri" && typeof value === "string") {
20283
+ node[key2] = toStrictNamespaceUri(value);
20284
+ continue;
20285
+ }
20286
+ if (key2.startsWith("@_")) {
20287
+ continue;
20288
+ }
20289
+ if (Array.isArray(value)) {
20290
+ for (const item of value) {
20291
+ if (typeof item === "object" && item !== null) {
20292
+ convertXmlToStrict(item);
20293
+ }
20294
+ }
20295
+ } else if (typeof value === "object" && value !== null) {
20296
+ convertXmlToStrict(value);
20297
+ }
20298
+ }
20299
+ return node;
20300
+ }
19946
20301
  function buildSlideReferenceRemap(init) {
19947
20302
  const pathToNewRId = /* @__PURE__ */ new Map();
19948
20303
  for (const slide of init.slides) {
@@ -20012,7 +20367,7 @@ var PptxPresentationSlidesReconciler = class {
20012
20367
  if (typeof relationshipId2 === "string" && relationshipId2.length > 0) {
20013
20368
  usedRIds.add(relationshipId2);
20014
20369
  }
20015
- if (relationshipType === input.slideRelationshipType && typeof relationshipId2 === "string" && typeof relationshipTarget2 === "string") {
20370
+ if (typeof relationshipType === "string" && normalizeNamespaceUri(relationshipType) === normalizeNamespaceUri(input.slideRelationshipType) && typeof relationshipId2 === "string" && typeof relationshipTarget2 === "string") {
20016
20371
  slideTargetByRid.set(relationshipId2, relationshipTarget2);
20017
20372
  continue;
20018
20373
  }
@@ -25432,6 +25787,12 @@ function parseAlignmentAttr2(algn) {
25432
25787
  }
25433
25788
  return ALIGN_MAP[algn] || void 0;
25434
25789
  }
25790
+ function resolveParagraphAlignment(authoredAlignment, placeholderAlignment, paragraphRtl) {
25791
+ if (authoredAlignment !== void 0 && authoredAlignment !== null) {
25792
+ return parseAlignmentAttr2(String(authoredAlignment)) ?? "left";
25793
+ }
25794
+ return placeholderAlignment ?? (paragraphRtl ? "right" : "left");
25795
+ }
25435
25796
  function parseParagraphSpacingPx(spacingNode) {
25436
25797
  if (!spacingNode) {
25437
25798
  return void 0;
@@ -32448,354 +32809,6 @@ function ensureArray3(val2) {
32448
32809
  const arr = Array.isArray(val2) ? val2 : [val2];
32449
32810
  return arr;
32450
32811
  }
32451
- var NAMESPACE_PAIRS = [
32452
- // -- PresentationML --
32453
- [
32454
- "http://purl.oclc.org/ooxml/presentationml/main",
32455
- "http://schemas.openxmlformats.org/presentationml/2006/main"
32456
- ],
32457
- // -- DrawingML --
32458
- [
32459
- "http://purl.oclc.org/ooxml/drawingml/main",
32460
- "http://schemas.openxmlformats.org/drawingml/2006/main"
32461
- ],
32462
- [
32463
- "http://purl.oclc.org/ooxml/drawingml/chart",
32464
- "http://schemas.openxmlformats.org/drawingml/2006/chart"
32465
- ],
32466
- [
32467
- "http://purl.oclc.org/ooxml/drawingml/chartDrawing",
32468
- "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"
32469
- ],
32470
- [
32471
- "http://purl.oclc.org/ooxml/drawingml/diagram",
32472
- "http://schemas.openxmlformats.org/drawingml/2006/diagram"
32473
- ],
32474
- [
32475
- "http://purl.oclc.org/ooxml/drawingml/lockedCanvas",
32476
- "http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas"
32477
- ],
32478
- [
32479
- "http://purl.oclc.org/ooxml/drawingml/picture",
32480
- "http://schemas.openxmlformats.org/drawingml/2006/picture"
32481
- ],
32482
- [
32483
- "http://purl.oclc.org/ooxml/drawingml/spreadsheetDrawing",
32484
- "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
32485
- ],
32486
- [
32487
- "http://purl.oclc.org/ooxml/drawingml/wordprocessingDrawing",
32488
- "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
32489
- ],
32490
- // -- Relationships --
32491
- [
32492
- "http://purl.oclc.org/ooxml/officeDocument/relationships",
32493
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships"
32494
- ],
32495
- [
32496
- "http://purl.oclc.org/ooxml/officeDocument/relationships/chart",
32497
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
32498
- ],
32499
- [
32500
- "http://purl.oclc.org/ooxml/officeDocument/relationships/comments",
32501
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
32502
- ],
32503
- [
32504
- "http://purl.oclc.org/ooxml/officeDocument/relationships/customXml",
32505
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml"
32506
- ],
32507
- [
32508
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramColors",
32509
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors"
32510
- ],
32511
- [
32512
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramData",
32513
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramData"
32514
- ],
32515
- [
32516
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramLayout",
32517
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout"
32518
- ],
32519
- [
32520
- "http://purl.oclc.org/ooxml/officeDocument/relationships/diagramStyle",
32521
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramStyle"
32522
- ],
32523
- [
32524
- "http://purl.oclc.org/ooxml/officeDocument/relationships/extended-properties",
32525
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
32526
- ],
32527
- [
32528
- "http://purl.oclc.org/ooxml/officeDocument/relationships/font",
32529
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font"
32530
- ],
32531
- [
32532
- "http://purl.oclc.org/ooxml/officeDocument/relationships/handoutMaster",
32533
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/handoutMaster"
32534
- ],
32535
- [
32536
- "http://purl.oclc.org/ooxml/officeDocument/relationships/hyperlink",
32537
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
32538
- ],
32539
- [
32540
- "http://purl.oclc.org/ooxml/officeDocument/relationships/image",
32541
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
32542
- ],
32543
- [
32544
- "http://purl.oclc.org/ooxml/officeDocument/relationships/media",
32545
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/media"
32546
- ],
32547
- [
32548
- "http://purl.oclc.org/ooxml/officeDocument/relationships/notesMaster",
32549
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster"
32550
- ],
32551
- [
32552
- "http://purl.oclc.org/ooxml/officeDocument/relationships/notesSlide",
32553
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide"
32554
- ],
32555
- [
32556
- "http://purl.oclc.org/ooxml/officeDocument/relationships/oleObject",
32557
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
32558
- ],
32559
- [
32560
- "http://purl.oclc.org/ooxml/officeDocument/relationships/presProps",
32561
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps"
32562
- ],
32563
- [
32564
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slide",
32565
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"
32566
- ],
32567
- [
32568
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slideLayout",
32569
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"
32570
- ],
32571
- [
32572
- "http://purl.oclc.org/ooxml/officeDocument/relationships/slideMaster",
32573
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"
32574
- ],
32575
- [
32576
- "http://purl.oclc.org/ooxml/officeDocument/relationships/tags",
32577
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tags"
32578
- ],
32579
- [
32580
- "http://purl.oclc.org/ooxml/officeDocument/relationships/theme",
32581
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
32582
- ],
32583
- [
32584
- "http://purl.oclc.org/ooxml/officeDocument/relationships/themeOverride",
32585
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/themeOverride"
32586
- ],
32587
- [
32588
- "http://purl.oclc.org/ooxml/officeDocument/relationships/video",
32589
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/video"
32590
- ],
32591
- [
32592
- "http://purl.oclc.org/ooxml/officeDocument/relationships/audio",
32593
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/audio"
32594
- ],
32595
- [
32596
- "http://purl.oclc.org/ooxml/officeDocument/relationships/viewProps",
32597
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps"
32598
- ],
32599
- [
32600
- "http://purl.oclc.org/ooxml/officeDocument/relationships/tableStyles",
32601
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles"
32602
- ],
32603
- // -- OfficeDocument core --
32604
- [
32605
- "http://purl.oclc.org/ooxml/officeDocument/math",
32606
- "http://schemas.openxmlformats.org/officeDocument/2006/math"
32607
- ],
32608
- [
32609
- "http://purl.oclc.org/ooxml/officeDocument/bibliography",
32610
- "http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
32611
- ],
32612
- [
32613
- "http://purl.oclc.org/ooxml/officeDocument/custom-properties",
32614
- "http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
32615
- ],
32616
- [
32617
- "http://purl.oclc.org/ooxml/officeDocument/extended-properties",
32618
- "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
32619
- ],
32620
- [
32621
- "http://purl.oclc.org/ooxml/officeDocument/docPropsVTypes",
32622
- "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
32623
- ],
32624
- // -- OfficeDocument document relationship --
32625
- // (Other OPC-defined relationship types - package/relationships,
32626
- // core-properties, digital-signature - are conformance-independent and
32627
- // intentionally omitted; see the module header.)
32628
- [
32629
- "http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument",
32630
- "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
32631
- ],
32632
- // -- Schema Library --
32633
- [
32634
- "http://purl.oclc.org/ooxml/schemaLibrary/main",
32635
- "http://schemas.openxmlformats.org/schemaLibrary/2006/main"
32636
- ],
32637
- // -- Content-type descriptions (note the distinct transitional host) --
32638
- [
32639
- "http://purl.oclc.org/ooxml/descriptions/base",
32640
- "http://descriptions.openxmlformats.org/description/base"
32641
- ],
32642
- [
32643
- "http://purl.oclc.org/ooxml/descriptions/full",
32644
- "http://descriptions.openxmlformats.org/description/full"
32645
- ],
32646
- // -- SpreadsheetML (for embedded charts / workbooks) --
32647
- [
32648
- "http://purl.oclc.org/ooxml/spreadsheetml/main",
32649
- "http://schemas.openxmlformats.org/spreadsheetml/2006/main"
32650
- ],
32651
- // -- WordprocessingML (for embedded docs) --
32652
- [
32653
- "http://purl.oclc.org/ooxml/wordprocessingml/main",
32654
- "http://schemas.openxmlformats.org/wordprocessingml/2006/main"
32655
- ]
32656
- ];
32657
- var STRICT_TO_TRANSITIONAL_NS = new Map(NAMESPACE_PAIRS);
32658
- var TRANSITIONAL_TO_STRICT_NS = new Map(
32659
- NAMESPACE_PAIRS.map(([strict, transitional]) => [transitional, strict])
32660
- );
32661
- var STRICT_BASE = "http://purl.oclc.org/ooxml/";
32662
- var TRANSITIONAL_BASE = "http://schemas.openxmlformats.org/";
32663
- var ALGORITHMIC_FAMILIES = /* @__PURE__ */ new Set([
32664
- "presentationml",
32665
- "drawingml",
32666
- "spreadsheetml",
32667
- "wordprocessingml",
32668
- "officeDocument",
32669
- "schemaLibrary"
32670
- ]);
32671
- function deriveTransitionalUri(uri) {
32672
- if (!uri.startsWith(STRICT_BASE)) {
32673
- return void 0;
32674
- }
32675
- const segments = uri.slice(STRICT_BASE.length).split("/");
32676
- if (segments.length < 2 || !ALGORITHMIC_FAMILIES.has(segments[0])) {
32677
- return void 0;
32678
- }
32679
- if (segments[1] !== "2006") {
32680
- segments.splice(1, 0, "2006");
32681
- }
32682
- return TRANSITIONAL_BASE + segments.join("/");
32683
- }
32684
- function deriveStrictUri(uri) {
32685
- if (!uri.startsWith(TRANSITIONAL_BASE)) {
32686
- return void 0;
32687
- }
32688
- const segments = uri.slice(TRANSITIONAL_BASE.length).split("/");
32689
- if (segments.length < 3 || !ALGORITHMIC_FAMILIES.has(segments[0]) || segments[1] !== "2006") {
32690
- return void 0;
32691
- }
32692
- segments.splice(1, 1);
32693
- return STRICT_BASE + segments.join("/");
32694
- }
32695
- function normalizeNamespaceUri(uri) {
32696
- return STRICT_TO_TRANSITIONAL_NS.get(uri) ?? deriveTransitionalUri(uri) ?? uri;
32697
- }
32698
- function isStrictNamespaceUri(uri) {
32699
- return uri.startsWith("http://purl.oclc.org/ooxml/");
32700
- }
32701
- function detectStrictConformance(xmlObj) {
32702
- for (const key2 of Object.keys(xmlObj)) {
32703
- const child222 = xmlObj[key2];
32704
- if (typeof child222 !== "object" || child222 === null || Array.isArray(child222)) {
32705
- continue;
32706
- }
32707
- const node = child222;
32708
- for (const attrKey of Object.keys(node)) {
32709
- if (!attrKey.startsWith("@_xmlns")) {
32710
- continue;
32711
- }
32712
- const value = String(node[attrKey] || "");
32713
- if (isStrictNamespaceUri(value)) {
32714
- return true;
32715
- }
32716
- }
32717
- }
32718
- return false;
32719
- }
32720
- function normalizeStrictXml(node) {
32721
- if (typeof node !== "object" || node === null || Array.isArray(node)) {
32722
- return node;
32723
- }
32724
- for (const key2 of Object.keys(node)) {
32725
- const value = node[key2];
32726
- if (key2.startsWith("@_xmlns")) {
32727
- if (typeof value === "string") {
32728
- node[key2] = normalizeNamespaceUri(value);
32729
- }
32730
- continue;
32731
- }
32732
- if (key2 === "@_Type" && typeof value === "string") {
32733
- node[key2] = normalizeNamespaceUri(value);
32734
- continue;
32735
- }
32736
- if (key2 === "@_uri" && typeof value === "string") {
32737
- node[key2] = normalizeNamespaceUri(value);
32738
- continue;
32739
- }
32740
- if (key2.startsWith("@_")) {
32741
- continue;
32742
- }
32743
- if (Array.isArray(value)) {
32744
- for (const item of value) {
32745
- if (typeof item === "object" && item !== null) {
32746
- normalizeStrictXml(item);
32747
- }
32748
- }
32749
- } else if (typeof value === "object" && value !== null) {
32750
- normalizeStrictXml(value);
32751
- }
32752
- }
32753
- return node;
32754
- }
32755
- function toStrictNamespaceUri(uri) {
32756
- return TRANSITIONAL_TO_STRICT_NS.get(uri) ?? deriveStrictUri(uri) ?? uri;
32757
- }
32758
- function convertXmlToStrict(node, setConformance = false) {
32759
- if (typeof node !== "object" || node === null || Array.isArray(node)) {
32760
- return node;
32761
- }
32762
- if (setConformance && "p:presentation" in node) {
32763
- const presentation = node["p:presentation"];
32764
- if (typeof presentation === "object" && presentation !== null) {
32765
- presentation["@_conformance"] = "strict";
32766
- }
32767
- }
32768
- for (const key2 of Object.keys(node)) {
32769
- const value = node[key2];
32770
- if (key2.startsWith("@_xmlns")) {
32771
- if (typeof value === "string") {
32772
- node[key2] = toStrictNamespaceUri(value);
32773
- }
32774
- continue;
32775
- }
32776
- if (key2 === "@_Type" && typeof value === "string") {
32777
- node[key2] = toStrictNamespaceUri(value);
32778
- continue;
32779
- }
32780
- if (key2 === "@_uri" && typeof value === "string") {
32781
- node[key2] = toStrictNamespaceUri(value);
32782
- continue;
32783
- }
32784
- if (key2.startsWith("@_")) {
32785
- continue;
32786
- }
32787
- if (Array.isArray(value)) {
32788
- for (const item of value) {
32789
- if (typeof item === "object" && item !== null) {
32790
- convertXmlToStrict(item);
32791
- }
32792
- }
32793
- } else if (typeof value === "object" && value !== null) {
32794
- convertXmlToStrict(value);
32795
- }
32796
- }
32797
- return node;
32798
- }
32799
32812
  var EMU_PER_PX6 = 9525;
32800
32813
  function ensureArray4(val2) {
32801
32814
  if (val2 === void 0 || val2 === null) {
@@ -37528,6 +37541,25 @@ function ensureArrayLike(value) {
37528
37541
  }
37529
37542
  return Array.isArray(value) ? value : [value];
37530
37543
  }
37544
+ function readPositiveInteger(value) {
37545
+ const parsed = Number.parseInt(String(value ?? ""), 10);
37546
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
37547
+ }
37548
+ function getTableGridExtent(graphicData) {
37549
+ const table = graphicData?.["a:tbl"];
37550
+ if (!table) {
37551
+ return void 0;
37552
+ }
37553
+ const grid = table["a:tblGrid"];
37554
+ const widthEmu = ensureArrayLike(
37555
+ grid?.["a:gridCol"]
37556
+ ).reduce((sum, column) => sum + readPositiveInteger(column?.["@_w"]), 0);
37557
+ const heightEmu = ensureArrayLike(table["a:tr"]).reduce(
37558
+ (sum, row) => sum + readPositiveInteger(row?.["@_h"]),
37559
+ 0
37560
+ );
37561
+ return widthEmu > 0 && heightEmu > 0 ? { widthEmu, heightEmu } : void 0;
37562
+ }
37531
37563
  function collectGraphicFrameExtensions(graphicData) {
37532
37564
  if (!graphicData) {
37533
37565
  return [];
@@ -37776,8 +37808,13 @@ var PptxGraphicFrameParser = class {
37776
37808
  const extensionXml = collectGraphicFrameExtensions(graphicData);
37777
37809
  if (type === "table" && graphicData) {
37778
37810
  const tableData = this.context.parseTableData(graphicData);
37811
+ const tableGridExtent = getTableGridExtent(graphicData);
37779
37812
  return {
37780
37813
  ...baseElement,
37814
+ ...tableGridExtent ? {
37815
+ width: Math.round(tableGridExtent.widthEmu / this.context.emuPerPx),
37816
+ height: Math.round(tableGridExtent.heightEmu / this.context.emuPerPx)
37817
+ } : {},
37781
37818
  tableData,
37782
37819
  ...extensionXml.length > 0 ? { extensionXml } : {}
37783
37820
  };
@@ -44966,8 +45003,10 @@ function parseEotHeader(data) {
44966
45003
  const styleName = readNameString();
44967
45004
  const versionName = readNameString();
44968
45005
  const fullName = readNameString();
44969
- if (version >= 131074) {
45006
+ if (version >= 131073) {
44970
45007
  readNameString();
45008
+ }
45009
+ if (version >= 131074) {
44971
45010
  offset += 8;
44972
45011
  if (offset + 4 <= data.length) {
44973
45012
  const signatureSize = readUint16LE(data, offset + 2);
@@ -53917,6 +53956,10 @@ var PptxHandlerRuntime = class {
53917
53956
  }
53918
53957
  };
53919
53958
  var EMU_PER_PIXEL = 9525;
53959
+ function parseTintShadeVal(value) {
53960
+ const fraction = parseOoxmlPercent(value);
53961
+ return fraction === void 0 || fraction === 0 ? void 0 : Math.round(fraction * 1e5);
53962
+ }
53920
53963
  var BORDER_SIDES = [
53921
53964
  "left",
53922
53965
  "right",
@@ -53940,9 +53983,9 @@ function parseSolidFillStyle(solidFill3) {
53940
53983
  return void 0;
53941
53984
  }
53942
53985
  const tintRaw = schemeClr["a:tint"];
53943
- const tint3 = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
53986
+ const tint3 = tintRaw ? parseTintShadeVal(tintRaw["@_val"]) : void 0;
53944
53987
  const shadeRaw = schemeClr["a:shade"];
53945
- const shade3 = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
53988
+ const shade3 = shadeRaw ? parseTintShadeVal(shadeRaw["@_val"]) : void 0;
53946
53989
  return { schemeColor, tint: tint3, shade: shade3 };
53947
53990
  }
53948
53991
  function parseBorderSide(side) {
@@ -54023,12 +54066,12 @@ function parseColorChoiceFill(node) {
54023
54066
  }
54024
54067
  const fill = { schemeColor: "", color: color2 };
54025
54068
  const tintRaw = srgb?.["a:tint"];
54026
- const tint3 = tintRaw ? parseInt(String(tintRaw["@_val"] || "0"), 10) || void 0 : void 0;
54069
+ const tint3 = tintRaw ? parseTintShadeVal(tintRaw["@_val"]) : void 0;
54027
54070
  if (tint3 !== void 0) {
54028
54071
  fill.tint = tint3;
54029
54072
  }
54030
54073
  const shadeRaw = srgb?.["a:shade"];
54031
- const shade3 = shadeRaw ? parseInt(String(shadeRaw["@_val"] || "0"), 10) || void 0 : void 0;
54074
+ const shade3 = shadeRaw ? parseTintShadeVal(shadeRaw["@_val"]) : void 0;
54032
54075
  if (shade3 !== void 0) {
54033
54076
  fill.shade = shade3;
54034
54077
  }
@@ -54149,11 +54192,11 @@ function parseTableStyleSectionText(section) {
54149
54192
  hasProps = true;
54150
54193
  const tintNode = schemeClr["a:tint"];
54151
54194
  if (tintNode) {
54152
- result.fontTint = parseInt(String(tintNode["@_val"] || "0"), 10) || void 0;
54195
+ result.fontTint = parseTintShadeVal(tintNode["@_val"]);
54153
54196
  }
54154
54197
  const shadeNode = schemeClr["a:shade"];
54155
54198
  if (shadeNode) {
54156
- result.fontShade = parseInt(String(shadeNode["@_val"] || "0"), 10) || void 0;
54199
+ result.fontShade = parseTintShadeVal(shadeNode["@_val"]);
54157
54200
  }
54158
54201
  }
54159
54202
  } else {
@@ -63066,12 +63109,19 @@ var PptxHandlerRuntime24 = class _PptxHandlerRuntime8 extends PptxHandlerRuntime
63066
63109
  if (!xmlText2.trim()) {
63067
63110
  continue;
63068
63111
  }
63112
+ const isPresentationXml = path === "ppt/presentation.xml";
63113
+ if (!isPresentationXml) {
63114
+ const candidateUris = xmlText2.match(/https?:\/\/[^"'<>\s]+/gu);
63115
+ const hasConvertibleUri = candidateUris?.some((uri) => isTransitionalNamespaceUri(uri));
63116
+ if (!hasConvertibleUri) {
63117
+ continue;
63118
+ }
63119
+ }
63069
63120
  try {
63070
63121
  const parsed = parse(xmlText2);
63071
63122
  if (typeof parsed !== "object" || parsed === null) {
63072
63123
  continue;
63073
63124
  }
63074
- const isPresentationXml = path === "ppt/presentation.xml";
63075
63125
  convertXmlToStrict(parsed, isPresentationXml);
63076
63126
  this.zip.file(path, this.builder.build(parsed));
63077
63127
  } catch {
@@ -70917,22 +70967,14 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
70917
70967
  if (paragraphRtl !== void 0 && textStyle.rtl === void 0) {
70918
70968
  textStyle.rtl = paragraphRtl;
70919
70969
  }
70920
- let paraAlign = paragraphRtl ? "right" : "left";
70921
- if (pPr?.["@_algn"]) {
70922
- const alignMap = {
70923
- l: "left",
70924
- ctr: "center",
70925
- r: "right",
70926
- just: "justify",
70927
- justify: "justify",
70928
- justLow: "justLow",
70929
- dist: "dist",
70930
- thaiDist: "thaiDist"
70931
- };
70932
- paraAlign = alignMap[pPr["@_algn"]] || "left";
70933
- if (!textStyle.align) {
70934
- textStyle.align = paraAlign;
70935
- }
70970
+ const ownPlaceholderAlignment = ctx.effectiveLevelStyles?.[level]?.alignment ?? ctx.effectiveLevelStyles?.[-1]?.alignment;
70971
+ const paraAlign = resolveParagraphAlignment(
70972
+ pPr?.["@_algn"],
70973
+ ownPlaceholderAlignment,
70974
+ paragraphRtl
70975
+ );
70976
+ if (pPr?.["@_algn"] && !textStyle.align) {
70977
+ textStyle.align = paraAlign;
70936
70978
  }
70937
70979
  const spacingBasisPx = typeof textStyle.fontSize === "number" ? textStyle.fontSize : void 0;
70938
70980
  if (textStyle.paragraphSpacingBefore === void 0) {
@@ -71079,9 +71121,6 @@ var PptxHandlerRuntime62 = class _PptxHandlerRuntime26 extends PptxHandlerRuntim
71079
71121
  this.applyPlaceholderLevelDefaults(textStyle, phBase);
71080
71122
  }
71081
71123
  }
71082
- if (pPr?.["@_algn"] === void 0 && textStyle.align !== void 0) {
71083
- paraAlign = textStyle.align;
71084
- }
71085
71124
  const parMarginLeft = pPr?.["@_marL"] !== void 0 ? Number.parseInt(String(pPr["@_marL"]), 10) / _PptxHandlerRuntime26.EMU_PER_PX : void 0;
71086
71125
  const parIndent = pPr?.["@_indent"] !== void 0 ? Number.parseInt(String(pPr["@_indent"]), 10) / _PptxHandlerRuntime26.EMU_PER_PX : void 0;
71087
71126
  let effectiveMarginLeft = parMarginLeft;
@@ -76573,9 +76612,6 @@ var PptxHandlerRuntime85 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
76573
76612
  const y = Math.round(parseInt(String(off["@_y"] || "0"), 10) / emuPerPx);
76574
76613
  const width = Math.round(parseInt(String(ext["@_cx"] || "0"), 10) / emuPerPx);
76575
76614
  const height = Math.round(parseInt(String(ext["@_cy"] || "0"), 10) / emuPerPx);
76576
- if (width <= 0 || height <= 0) {
76577
- return null;
76578
- }
76579
76615
  const rotation = xfrm?.["@_rot"] ? parseInt(String(xfrm["@_rot"]), 10) / 6e4 : void 0;
76580
76616
  const skewX = xfrm?.["@_skewX"] ? parseInt(String(xfrm["@_skewX"]), 10) / 6e4 : void 0;
76581
76617
  const skewY = xfrm?.["@_skewY"] ? parseInt(String(xfrm["@_skewY"]), 10) / 6e4 : void 0;
@@ -76603,6 +76639,9 @@ var PptxHandlerRuntime85 = class _PptxHandlerRuntime35 extends PptxHandlerRuntim
76603
76639
  };
76604
76640
  }
76605
76641
  }
76642
+ if ((width <= 0 || height <= 0) && shapeType !== "line") {
76643
+ return null;
76644
+ }
76606
76645
  const fill = extractDrawingShapeFill(spPr, this.drawingShapeStyleDeps());
76607
76646
  const lnNode = this.xmlLookupService.getChildByLocalName(spPr, "ln");
76608
76647
  const lnFill = lnNode ? this.xmlLookupService.getChildByLocalName(lnNode, "solidFill") : void 0;
@@ -116274,7 +116313,14 @@ function buildBulletMarkerStyle(bullet, firstSeg, fontScale, textIndentPx) {
116274
116313
  }
116275
116314
  var PT_TO_PX = 96 / 72;
116276
116315
  function resolveParagraphSpacing(input) {
116277
- const { paraProps, bodyStyle, isFirst = false, isLast = false, spaceFirstLast = true } = input;
116316
+ const {
116317
+ paraProps,
116318
+ bodyStyle,
116319
+ isFirst = false,
116320
+ isLast = false,
116321
+ spaceFirstLast = true,
116322
+ lineSpacingReduction
116323
+ } = input;
116278
116324
  const out = {};
116279
116325
  const before = paraProps?.paragraphSpacingBefore ?? bodyStyle?.paragraphSpacingBefore;
116280
116326
  if (typeof before === "number" && before > 0 && (!isFirst || spaceFirstLast)) {
@@ -116291,11 +116337,12 @@ function resolveParagraphSpacing(input) {
116291
116337
  if (typeof exactPt === "number" && exactPt > 0) {
116292
116338
  out.lineHeight = `${exactPt * PT_TO_PX}px`;
116293
116339
  } else if (typeof multiplier === "number" && multiplier > 0) {
116294
- out.lineHeight = proportionalLineHeight(multiplier);
116340
+ const proportional = proportionalLineHeight(multiplier);
116341
+ out.lineHeight = typeof lineSpacingReduction === "number" && lineSpacingReduction > 0 ? proportional * (1 - lineSpacingReduction) : proportional;
116295
116342
  }
116296
116343
  return out;
116297
116344
  }
116298
- function resolveParagraphStrutFontSize(segments, bodyFontSize) {
116345
+ function resolveParagraphStrutFontSize(segments, bodyFontSize, fontScale = 1) {
116299
116346
  let largest;
116300
116347
  for (const segment of segments) {
116301
116348
  if (segment.bulletInfo) {
@@ -116315,7 +116362,7 @@ function resolveParagraphStrutFontSize(segments, bodyFontSize) {
116315
116362
  if (typeof bodyFontSize === "number" && Math.abs(largest - bodyFontSize) < 0.01) {
116316
116363
  return void 0;
116317
116364
  }
116318
- return largest;
116365
+ return largest * fontScale;
116319
116366
  }
116320
116367
  function buildParagraphs(element, fieldContext, segmentOverrides) {
116321
116368
  if (!hasTextProperties(element)) {
@@ -116371,11 +116418,13 @@ function buildParagraphs(element, fieldContext, segmentOverrides) {
116371
116418
  bodyStyle,
116372
116419
  isFirst: paraIndex === 0,
116373
116420
  isLast: paraIndex === grouped.length - 1,
116374
- spaceFirstLast: bodyStyle?.spaceFirstLastParagraph !== false
116421
+ spaceFirstLast: bodyStyle?.spaceFirstLastParagraph !== false,
116422
+ lineSpacingReduction: element.textStyle?.autoFitLineSpacingReduction
116375
116423
  });
116376
116424
  const strutFontSizePx = resolveParagraphStrutFontSize(
116377
116425
  paraSegments.length > 0 ? paraSegments : terminator ? [terminator] : [],
116378
- hasTextProperties(element) ? element.textStyle?.fontSize : void 0
116426
+ hasTextProperties(element) ? element.textStyle?.fontSize : void 0,
116427
+ fontScale
116379
116428
  );
116380
116429
  const rtl = resolveParagraphRtl(
116381
116430
  paraSegments.map((seg) => ({ segment: seg })),