pptx-react-viewer 2.13.1 → 2.13.2

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 (97) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AiChatPanel-FXPGFU6H.js → AiChatPanel-F4E3A2DE.js} +22 -22
  3. package/dist/AiChatPanel-F4E3A2DE.js.br +0 -0
  4. package/dist/AiChatPanel-F4E3A2DE.js.gz +0 -0
  5. package/dist/{AiChatPanel-WMGS5TNX.mjs → AiChatPanel-VEULATXX.mjs} +3 -3
  6. package/dist/AiChatPanel-VEULATXX.mjs.br +0 -0
  7. package/dist/AiChatPanel-VEULATXX.mjs.gz +0 -0
  8. package/dist/{Model3DScene-E2XRQAMR.mjs → Model3DScene-KIPEODEJ.mjs} +1 -1
  9. package/dist/{Model3DScene-E2XRQAMR.mjs.br → Model3DScene-KIPEODEJ.mjs.br} +0 -0
  10. package/dist/Model3DScene-KIPEODEJ.mjs.gz +0 -0
  11. package/dist/{Model3DScene-K5FPZTRG.js → Model3DScene-TD2LIHYP.js} +2 -2
  12. package/dist/Model3DScene-TD2LIHYP.js.br +0 -0
  13. package/dist/Model3DScene-TD2LIHYP.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-2W2IFPLE.mjs → SurfaceChart3DScene-GRBWZ52S.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-2W2IFPLE.mjs.br → SurfaceChart3DScene-GRBWZ52S.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-GRBWZ52S.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-JDCFTXYT.js → SurfaceChart3DScene-OTKXQH5O.js} +2 -2
  18. package/dist/SurfaceChart3DScene-OTKXQH5O.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-OTKXQH5O.js.gz +0 -0
  20. package/dist/{chunk-3OV4FR6S.mjs → chunk-3HWE6QZG.mjs} +7 -7
  21. package/dist/chunk-3HWE6QZG.mjs.br +0 -0
  22. package/dist/chunk-3HWE6QZG.mjs.gz +0 -0
  23. package/dist/{chunk-QFNJCEMS.js → chunk-BNSCH4WT.js} +327 -327
  24. package/dist/chunk-BNSCH4WT.js.br +0 -0
  25. package/dist/chunk-BNSCH4WT.js.gz +0 -0
  26. package/dist/{chunk-66ZHD7Y4.js → chunk-DOS7NY7C.js} +244 -244
  27. package/dist/chunk-DOS7NY7C.js.br +0 -0
  28. package/dist/chunk-DOS7NY7C.js.gz +0 -0
  29. package/dist/{chunk-ZMIFFURL.js → chunk-EUQ2IER3.js} +1037 -1037
  30. package/dist/chunk-EUQ2IER3.js.br +0 -0
  31. package/dist/chunk-EUQ2IER3.js.gz +0 -0
  32. package/dist/{chunk-DD2YRS6Z.js → chunk-FDR5W67L.js} +160 -50
  33. package/dist/chunk-FDR5W67L.js.br +0 -0
  34. package/dist/chunk-FDR5W67L.js.gz +0 -0
  35. package/dist/{chunk-OWGPRVRK.mjs → chunk-GKOKCOXR.mjs} +160 -50
  36. package/dist/chunk-GKOKCOXR.mjs.br +0 -0
  37. package/dist/chunk-GKOKCOXR.mjs.gz +0 -0
  38. package/dist/{chunk-GJEH27GD.mjs → chunk-GZ6TXBEO.mjs} +2 -2
  39. package/dist/chunk-GZ6TXBEO.mjs.br +0 -0
  40. package/dist/{chunk-GJEH27GD.mjs.gz → chunk-GZ6TXBEO.mjs.gz} +0 -0
  41. package/dist/{chunk-CQ2CKMG4.mjs → chunk-L5YGPCQW.mjs} +1 -1
  42. package/dist/chunk-L5YGPCQW.mjs.br +0 -0
  43. package/dist/chunk-L5YGPCQW.mjs.gz +0 -0
  44. package/dist/{chunk-PTFCMG3A.js → chunk-VY3KLDJF.js} +3 -3
  45. package/dist/chunk-VY3KLDJF.js.br +0 -0
  46. package/dist/chunk-VY3KLDJF.js.gz +0 -0
  47. package/dist/{chunk-H5H57XMH.mjs → chunk-ZFRPPY2N.mjs} +2 -2
  48. package/dist/chunk-ZFRPPY2N.mjs.br +0 -0
  49. package/dist/chunk-ZFRPPY2N.mjs.gz +0 -0
  50. package/dist/index.js +34 -34
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +5 -5
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.js +78 -78
  57. package/dist/internals.js.br +0 -0
  58. package/dist/internals.js.gz +0 -0
  59. package/dist/internals.mjs +3 -3
  60. package/dist/internals.mjs.br +0 -0
  61. package/dist/internals.mjs.gz +0 -0
  62. package/dist/viewer/index.js +21 -21
  63. package/dist/viewer/index.js.br +0 -0
  64. package/dist/viewer/index.js.gz +0 -0
  65. package/dist/viewer/index.mjs +5 -5
  66. package/dist/viewer/index.mjs.br +0 -0
  67. package/dist/viewer/index.mjs.gz +0 -0
  68. package/package.json +1 -1
  69. package/dist/AiChatPanel-FXPGFU6H.js.br +0 -0
  70. package/dist/AiChatPanel-FXPGFU6H.js.gz +0 -0
  71. package/dist/AiChatPanel-WMGS5TNX.mjs.br +0 -0
  72. package/dist/AiChatPanel-WMGS5TNX.mjs.gz +0 -0
  73. package/dist/Model3DScene-E2XRQAMR.mjs.gz +0 -0
  74. package/dist/Model3DScene-K5FPZTRG.js.br +0 -0
  75. package/dist/Model3DScene-K5FPZTRG.js.gz +0 -0
  76. package/dist/SurfaceChart3DScene-2W2IFPLE.mjs.gz +0 -0
  77. package/dist/SurfaceChart3DScene-JDCFTXYT.js.br +0 -0
  78. package/dist/SurfaceChart3DScene-JDCFTXYT.js.gz +0 -0
  79. package/dist/chunk-3OV4FR6S.mjs.br +0 -0
  80. package/dist/chunk-3OV4FR6S.mjs.gz +0 -0
  81. package/dist/chunk-66ZHD7Y4.js.br +0 -0
  82. package/dist/chunk-66ZHD7Y4.js.gz +0 -0
  83. package/dist/chunk-CQ2CKMG4.mjs.br +0 -0
  84. package/dist/chunk-CQ2CKMG4.mjs.gz +0 -0
  85. package/dist/chunk-DD2YRS6Z.js.br +0 -0
  86. package/dist/chunk-DD2YRS6Z.js.gz +0 -0
  87. package/dist/chunk-GJEH27GD.mjs.br +0 -0
  88. package/dist/chunk-H5H57XMH.mjs.br +0 -0
  89. package/dist/chunk-H5H57XMH.mjs.gz +0 -0
  90. package/dist/chunk-OWGPRVRK.mjs.br +0 -0
  91. package/dist/chunk-OWGPRVRK.mjs.gz +0 -0
  92. package/dist/chunk-PTFCMG3A.js.br +0 -0
  93. package/dist/chunk-PTFCMG3A.js.gz +0 -0
  94. package/dist/chunk-QFNJCEMS.js.br +0 -0
  95. package/dist/chunk-QFNJCEMS.js.gz +0 -0
  96. package/dist/chunk-ZMIFFURL.js.br +0 -0
  97. package/dist/chunk-ZMIFFURL.js.gz +0 -0
@@ -41533,6 +41533,30 @@ var FONT_SUBSTITUTION_MAP = {
41533
41533
  Gulim: ["Noto Sans CJK KR", "AppleGothic", "sans-serif"],
41534
41534
  Malgun: ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
41535
41535
  "Malgun Gothic": ["Noto Sans CJK KR", "Apple SD Gothic Neo", "sans-serif"],
41536
+ // Source Han Sans (Adobe/Google) ships the same glyphs as Noto Sans CJK;
41537
+ // the zh-CN name 思源黑体 is how decks authored in Chinese reference it.
41538
+ "\u601D\u6E90\u9ED1\u4F53 CN": [
41539
+ "Source Han Sans CN",
41540
+ "Noto Sans CJK SC",
41541
+ "Noto Sans SC",
41542
+ "Microsoft YaHei",
41543
+ "sans-serif"
41544
+ ],
41545
+ \u601D\u6E90\u9ED1\u4F53: [
41546
+ "Source Han Sans SC",
41547
+ "Noto Sans CJK SC",
41548
+ "Noto Sans SC",
41549
+ "Microsoft YaHei",
41550
+ "sans-serif"
41551
+ ],
41552
+ "Source Han Sans CN": [
41553
+ "\u601D\u6E90\u9ED1\u4F53 CN",
41554
+ "Noto Sans CJK SC",
41555
+ "Noto Sans SC",
41556
+ "Microsoft YaHei",
41557
+ "sans-serif"
41558
+ ],
41559
+ \u5FAE\u8F6F\u96C5\u9ED1: ["Microsoft YaHei", "Noto Sans CJK SC", "PingFang SC", "sans-serif"],
41536
41560
  // Complex script fonts
41537
41561
  "Arabic Typesetting": ["Noto Naskh Arabic", "serif"],
41538
41562
  "Simplified Arabic": ["Noto Sans Arabic", "sans-serif"],
@@ -41552,6 +41576,11 @@ var FONT_SUBSTITUTION_MAP = {
41552
41576
  Nyala: ["Noto Sans Ethiopic", "sans-serif"],
41553
41577
  MoolBoran: ["Noto Sans Khmer", "sans-serif"],
41554
41578
  // Decorative / Display
41579
+ // Condensed display faces: decks often reference the FULL style name
41580
+ // ("Bebas Neue Regular"); the suffix-stripped base resolves here. The
41581
+ // fallbacks must stay condensed, or short numeric labels sized to the
41582
+ // narrow face overflow their text boxes and wrap (issue #132, "77%").
41583
+ "Bebas Neue": ["Oswald", "Arial Narrow", "Impact", "sans-serif"],
41555
41584
  "Century Gothic": ["URW Gothic", "Futura", "sans-serif"],
41556
41585
  Oswald: ["Agency FB", "Arial Narrow", "sans-serif"],
41557
41586
  "Franklin Gothic": ["Liberation Sans", "Helvetica Neue", "sans-serif"],
@@ -41563,6 +41592,48 @@ var FONT_SUBSTITUTION_MAP = {
41563
41592
  Constantia: ["Liberation Serif", "Palatino", "serif"],
41564
41593
  Corbel: ["Liberation Sans", "Lucida Grande", "sans-serif"]
41565
41594
  };
41595
+ var FONT_STYLE_SUFFIX_TOKENS = /* @__PURE__ */ new Set([
41596
+ "regular",
41597
+ "normal",
41598
+ "book",
41599
+ "roman",
41600
+ "thin",
41601
+ "hairline",
41602
+ "extralight",
41603
+ "ultralight",
41604
+ "demilight",
41605
+ "semilight",
41606
+ "light",
41607
+ "medium",
41608
+ "demibold",
41609
+ "semibold",
41610
+ "bold",
41611
+ "extrabold",
41612
+ "ultrabold",
41613
+ "heavy",
41614
+ "black",
41615
+ "extrablack",
41616
+ "ultra",
41617
+ "italic",
41618
+ "oblique"
41619
+ ]);
41620
+ function stripFontStyleSuffix(fontName) {
41621
+ let name = fontName.trim();
41622
+ let stripped = false;
41623
+ for (let i = 0; i < 2; i++) {
41624
+ const idx = name.lastIndexOf(" ");
41625
+ if (idx <= 0) {
41626
+ break;
41627
+ }
41628
+ const token2 = name.slice(idx + 1).toLowerCase().replace(/-/g, "");
41629
+ if (!FONT_STYLE_SUFFIX_TOKENS.has(token2)) {
41630
+ break;
41631
+ }
41632
+ name = name.slice(0, idx).trim();
41633
+ stripped = true;
41634
+ }
41635
+ return stripped && name.length > 0 ? name : void 0;
41636
+ }
41566
41637
  var PANOSE_FAMILY_MAP = {
41567
41638
  0: "sans-serif",
41568
41639
  // Any — default to sans-serif
@@ -41636,18 +41707,27 @@ function getSubstituteFontFamily(fontName, panose) {
41636
41707
  if (!trimmed) {
41637
41708
  return "sans-serif";
41638
41709
  }
41639
- const directSubs = FONT_SUBSTITUTION_MAP[trimmed];
41710
+ return buildFontFamilyString(trimmed, getSubstituteFonts(trimmed, panose));
41711
+ }
41712
+ function getSubstituteFonts(fontName, panose) {
41713
+ const trimmed = fontName.trim();
41714
+ if (!trimmed) {
41715
+ return ["sans-serif"];
41716
+ }
41717
+ const baseName = stripFontStyleSuffix(trimmed);
41718
+ const basePrefix = baseName ? [baseName] : [];
41719
+ const directSubs = FONT_SUBSTITUTION_MAP[trimmed] ?? (baseName ? FONT_SUBSTITUTION_MAP[baseName] : void 0);
41640
41720
  if (directSubs) {
41641
- return buildFontFamilyString(trimmed, directSubs);
41721
+ return [...basePrefix, ...directSubs];
41642
41722
  }
41643
41723
  if (panose && panose.length >= 4) {
41644
41724
  const genericFamily = classifyPanose(panose);
41645
41725
  const concreteFonts = GENERIC_FAMILY_CONCRETE_FONTS[genericFamily];
41646
41726
  if (concreteFonts) {
41647
- return buildFontFamilyString(trimmed, concreteFonts);
41727
+ return [...basePrefix, ...concreteFonts];
41648
41728
  }
41649
41729
  }
41650
- return buildFontFamilyString(trimmed, ["sans-serif"]);
41730
+ return [...basePrefix, "sans-serif"];
41651
41731
  }
41652
41732
  var CSS_GENERIC_FAMILIES = /* @__PURE__ */ new Set([
41653
41733
  "serif",
@@ -87363,8 +87443,8 @@ function formatAxisValue(val2, formatCode) {
87363
87443
  return val2.toFixed(1);
87364
87444
  }
87365
87445
  function computeLayout(elementWidth, elementHeight, style, hasAxes, legendPos, options) {
87366
- const svgWidth = Math.max(320, elementWidth);
87367
- const svgHeight = Math.max(180, elementHeight);
87446
+ const svgWidth = Math.max(1, elementWidth);
87447
+ const svgHeight = Math.max(1, elementHeight);
87368
87448
  let plotLeft = hasAxes ? 48 : 8;
87369
87449
  let plotTop = 8;
87370
87450
  let plotRight = svgWidth - 8;
@@ -87419,6 +87499,12 @@ function chartAreaFill(chartData) {
87419
87499
  function plotAreaFill(chartData) {
87420
87500
  return resolve(chartData?.style?.plotAreaFill, void 0);
87421
87501
  }
87502
+ var CHART_PX_PER_PT = 4 / 3;
87503
+ function chartFontPx(sizePt) {
87504
+ return sizePt * CHART_PX_PER_PT;
87505
+ }
87506
+ var DEFAULT_CHART_TEXT_PX = chartFontPx(10);
87507
+ var DEFAULT_CHART_DATA_LABEL_PX = chartFontPx(9);
87422
87508
  var LOG_EXPONENT_TOLERANCE = 1e-12;
87423
87509
  function computeLogValueRange(series, logBase) {
87424
87510
  const allValues = series.flatMap((item) => item.values).filter((value) => value > 0);
@@ -87997,9 +88083,9 @@ function dashArray(style, width) {
87997
88083
  }
87998
88084
  return `${unit * 3} ${unit * 2}`;
87999
88085
  }
88000
- function chartAxisTextStyle(axis, defaultFontSize = 8) {
88086
+ function chartAxisTextStyle(axis, defaultFontSizePx = DEFAULT_CHART_TEXT_PX) {
88001
88087
  return {
88002
- fontSize: axis?.fontSize ?? defaultFontSize,
88088
+ fontSize: axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : defaultFontSizePx,
88003
88089
  fill: axis?.fontColor ?? DEFAULT_COLOR2,
88004
88090
  ...axis?.fontBold !== void 0 ? { fontWeight: axis.fontBold ? "bold" : "normal" } : {},
88005
88091
  ...axis?.fontFamily ? { fontFamily: axis.fontFamily } : {}
@@ -88146,7 +88232,7 @@ function buildPrimaryAxis(range, layout, axis, axisX = layout.plotLeft) {
88146
88232
  x: labelX,
88147
88233
  y: midY,
88148
88234
  text: unitLabel,
88149
- ...chartAxisTextStyle(axis, 9),
88235
+ ...chartAxisTextStyle(axis),
88150
88236
  textAnchor: "middle",
88151
88237
  transform: `rotate(-90, ${labelX}, ${midY})`
88152
88238
  });
@@ -88158,7 +88244,7 @@ function buildSecondaryAxis(range, layout, axis, axisX = layout.plotRight) {
88158
88244
  const gridlines = [];
88159
88245
  const axisLabels = [];
88160
88246
  const textStyle = chartAxisTextStyle(axis);
88161
- const captionStyle = chartAxisTextStyle(axis, 9);
88247
+ const captionStyle = chartAxisTextStyle(axis);
88162
88248
  const axisLine = buildVerticalAxisLine(axis, axisX, layout);
88163
88249
  if (axisLine) {
88164
88250
  gridlines.push(axisLine);
@@ -88380,7 +88466,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
88380
88466
  x: x + singleBarWidth / 2,
88381
88467
  y: val2 >= 0 ? y - 4 : y + h + 10,
88382
88468
  text: formatAxisValue2(val2, series[si].numberFormat),
88383
- fontSize: 7,
88469
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88384
88470
  fill: "#334155",
88385
88471
  textAnchor: "middle"
88386
88472
  });
@@ -88452,7 +88538,7 @@ function buildBars(chartData, catCount, layout, primaryRange, secondaryRange, se
88452
88538
  x: x + barW / 2,
88453
88539
  y: y + h / 2 + 3,
88454
88540
  text: `${Math.round(val2)}%`,
88455
- fontSize: 7,
88541
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88456
88542
  fill: "#ffffff",
88457
88543
  textAnchor: "middle",
88458
88544
  fontWeight: "bold"
@@ -88485,7 +88571,7 @@ function pushClusteredStackedLabels(series, sourceIndices2, catCount, layout, ra
88485
88571
  x,
88486
88572
  y: labelY,
88487
88573
  text: formatAxisValue2(val2, series[si].numberFormat),
88488
- fontSize: 7,
88574
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88489
88575
  fill: "#334155",
88490
88576
  textAnchor: "middle"
88491
88577
  });
@@ -88771,7 +88857,7 @@ function buildLines(chartData, catCount, layout, primaryRange, secondaryRange, s
88771
88857
  x: pt.x,
88772
88858
  y: pt.y - 7,
88773
88859
  text: formatAxisValue2(val2, series.numberFormat),
88774
- fontSize: 7,
88860
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88775
88861
  fill: "#334155",
88776
88862
  textAnchor: "middle"
88777
88863
  });
@@ -88843,7 +88929,7 @@ function buildAreas(chartData, catCount, layout, range, sourceIndices2, xPositio
88843
88929
  x: pt.x,
88844
88930
  y: pt.y - 6,
88845
88931
  text: formatAxisValue2(val2, series.numberFormat),
88846
- fontSize: 7,
88932
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88847
88933
  fill: "#334155",
88848
88934
  textAnchor: "middle"
88849
88935
  });
@@ -88888,7 +88974,7 @@ function buildScatter(chartData, layout, range) {
88888
88974
  x: dot.cx,
88889
88975
  y: dot.cy - 6,
88890
88976
  text: formatAxisValue2(val2, series.numberFormat),
88891
- fontSize: 7,
88977
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88892
88978
  fill: "#334155",
88893
88979
  textAnchor: "middle"
88894
88980
  });
@@ -88935,7 +89021,7 @@ function buildBubbles(chartData, layout, range) {
88935
89021
  x: dot.cx,
88936
89022
  y: dot.cy - 10,
88937
89023
  text: formatAxisValue2(val2, series.numberFormat),
88938
- fontSize: 7,
89024
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
88939
89025
  fill: "#334155",
88940
89026
  textAnchor: "middle"
88941
89027
  });
@@ -89085,7 +89171,8 @@ function buildMultiLevelCategoryLabels(categoryLabels, categoryLevels, sourceInd
89085
89171
  const skip = Math.max(1, axis?.tickLabelSkip ?? 1);
89086
89172
  const textAnchor = axis?.labelAlignment === "l" ? "start" : axis?.labelAlignment === "r" ? "end" : "middle";
89087
89173
  const direction = labelsAbove ? -1 : 1;
89088
- const bandHeight = Math.max(axis?.fontSize ?? 8, 8) + 4;
89174
+ const fontPx = axis?.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
89175
+ const bandHeight = Math.max(fontPx, 8) + 4;
89089
89176
  return levels.flatMap((level, levelIndex) => {
89090
89177
  const values = sourceIndices2.map((sourceIndex) => level[sourceIndex] ?? "");
89091
89178
  return groupedLabels(values).flatMap((group2) => {
@@ -89820,7 +89907,7 @@ function computeTrendlinePrimitives(chartData, catCount, layout, range, mode = "
89820
89907
  x: last.x,
89821
89908
  y: last.y - 6,
89822
89909
  text: labelParts.join(" "),
89823
- fontSize: 7,
89910
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
89824
89911
  fill: strokeColor,
89825
89912
  textAnchor: "end"
89826
89913
  };
@@ -89837,6 +89924,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
89837
89924
  if (!axes || axes.length === 0) {
89838
89925
  return out;
89839
89926
  }
89927
+ const titleFontPx = (axis) => axis.fontSize !== void 0 ? chartFontPx(axis.fontSize) : DEFAULT_CHART_TEXT_PX;
89840
89928
  const catAxis = axes.find((a) => a.axisType === "catAx" && a.axPos !== "r" && a.titleText);
89841
89929
  if (catAxis?.titleText) {
89842
89930
  const xTitle = {
@@ -89844,7 +89932,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
89844
89932
  x: layout.plotLeft + layout.plotWidth / 2,
89845
89933
  y: layout.plotBottom + 22,
89846
89934
  text: catAxis.titleText,
89847
- fontSize: 9,
89935
+ fontSize: titleFontPx(catAxis),
89848
89936
  fill: AXIS_TITLE_COLOR,
89849
89937
  textAnchor: "middle",
89850
89938
  fontWeight: "bold"
@@ -89860,7 +89948,7 @@ function computeAxisTitlePrimitives(chartData, layout) {
89860
89948
  x: yx,
89861
89949
  y: yy,
89862
89950
  text: valAxis.titleText,
89863
- fontSize: 9,
89951
+ fontSize: titleFontPx(valAxis),
89864
89952
  fill: AXIS_TITLE_COLOR,
89865
89953
  textAnchor: "middle",
89866
89954
  fontWeight: "bold",
@@ -90345,7 +90433,7 @@ function buildComboViewModel(element, chartData, categoryLabels) {
90345
90433
  x: point.x,
90346
90434
  y: point.y - 7,
90347
90435
  text: formatAxisValue2(point.value, series.numberFormat),
90348
- fontSize: 7,
90436
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
90349
90437
  fill: "#334155",
90350
90438
  textAnchor: "middle"
90351
90439
  });
@@ -90400,7 +90488,7 @@ function appendBarLabels(series, chartData, layout, catCount, range, sourceIndic
90400
90488
  x: xPositions?.[displayIndex] ?? layout.plotLeft + groupWidth * displayIndex + offset + barWidth / 2,
90401
90489
  y: value >= 0 ? Math.min(zeroY, valueY) - 4 : Math.max(zeroY, valueY) + 10,
90402
90490
  text: formatAxisValue2(value, series.numberFormat),
90403
- fontSize: 7,
90491
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
90404
90492
  fill: "#334155",
90405
90493
  textAnchor: "middle"
90406
90494
  });
@@ -90501,7 +90589,7 @@ function buildStockViewModel(element, chartData, categoryLabels) {
90501
90589
  x: cx,
90502
90590
  y: highY - 4,
90503
90591
  text: formatAxisValue2(close),
90504
- fontSize: 7,
90592
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
90505
90593
  fill: "#334155",
90506
90594
  textAnchor: "middle"
90507
90595
  });
@@ -90946,7 +91034,7 @@ function buildHistogramViewModel(element, chartData, categoryLabels) {
90946
91034
  x: bar.x + bar.w / 2,
90947
91035
  y: bar.y - 4,
90948
91036
  text: formatAxisValue2(values[index]),
90949
- fontSize: 7,
91037
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
90950
91038
  fill: DATA_LABEL_COLOR,
90951
91039
  textAnchor: "middle"
90952
91040
  })) : [];
@@ -91255,8 +91343,8 @@ function sliceAngles(values) {
91255
91343
  });
91256
91344
  }
91257
91345
  function computeOfPieGeom(element, secondPieSize) {
91258
- const svgWidth = Math.max(element.width, 320);
91259
- const svgHeight = Math.max(element.height, 180);
91346
+ const svgWidth = Math.max(element.width, 1);
91347
+ const svgHeight = Math.max(element.height, 1);
91260
91348
  const primaryR = Math.max(Math.min(svgWidth * 0.28, svgHeight * 0.4), 4);
91261
91349
  const secScale = Math.min(Math.max(secondPieSize / 100, 0.3), 1.4);
91262
91350
  return {
@@ -91276,7 +91364,7 @@ function sliceLabel(x, y, value) {
91276
91364
  x,
91277
91365
  y,
91278
91366
  text: formatAxisValue2(value),
91279
- fontSize: 8,
91367
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
91280
91368
  fill: "#ffffff",
91281
91369
  textAnchor: "middle",
91282
91370
  fontWeight: "bold",
@@ -91451,7 +91539,7 @@ function buildPieDataLabels(params) {
91451
91539
  x: slice.labelX,
91452
91540
  y: slice.labelY,
91453
91541
  text: formatAxisValue2(val2, numberFormat),
91454
- fontSize: 8,
91542
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
91455
91543
  fill: "#ffffff",
91456
91544
  textAnchor: "middle",
91457
91545
  fontWeight: "bold",
@@ -91471,7 +91559,7 @@ function buildPieDataLabels(params) {
91471
91559
  x: labelX + (cos >= 0 ? 2 : -2),
91472
91560
  y: labelY,
91473
91561
  text: formatAxisValue2(val2, numberFormat),
91474
- fontSize: 8,
91562
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
91475
91563
  fill: "#334155",
91476
91564
  textAnchor: anchor,
91477
91565
  dominantBaseline: "central"
@@ -91895,7 +91983,8 @@ function textPrimitives(shape, box) {
91895
91983
  if (!shape.paragraphs || shape.paragraphs.length === 0) {
91896
91984
  return [];
91897
91985
  }
91898
- const lineH = 12;
91986
+ const fontPxOf = (para) => para.fontSize !== void 0 ? chartFontPx(para.fontSize) : DEFAULT_CHART_TEXT_PX;
91987
+ const lineH = Math.max(12, ...shape.paragraphs.map((para) => fontPxOf(para) * 1.2));
91899
91988
  const totalH = shape.paragraphs.length * lineH;
91900
91989
  let cursorY = box.y + Math.max((box.h - totalH) / 2, 0) + lineH * 0.75;
91901
91990
  const out = [];
@@ -91912,7 +92001,7 @@ function textPrimitives(shape, box) {
91912
92001
  x: tx,
91913
92002
  y: cursorY,
91914
92003
  text: para.text,
91915
- fontSize: para.fontSize ?? 9,
92004
+ fontSize: fontPxOf(para),
91916
92005
  fill: para.color ?? "#1e293b",
91917
92006
  textAnchor: anchor,
91918
92007
  fontWeight: para.bold ? "bold" : "normal"
@@ -92108,7 +92197,7 @@ function buildWaterfallViewModel(element, chartData, categoryLabels) {
92108
92197
  x: x + barWidth / 2,
92109
92198
  y: y - 4,
92110
92199
  text: formatAxisValue2(value),
92111
- fontSize: 7,
92200
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
92112
92201
  fill: "#334155",
92113
92202
  textAnchor: "middle"
92114
92203
  });
@@ -92430,8 +92519,8 @@ function regionViewBounds(viewedRegionType, regionValues) {
92430
92519
  };
92431
92520
  }
92432
92521
  function buildRegionMapViewModel(element, chartData, categoryLabels) {
92433
- const svgWidth = Math.max(element.width, 320);
92434
- const svgHeight = Math.max(element.height, 200);
92522
+ const svgWidth = Math.max(element.width, 1);
92523
+ const svgHeight = Math.max(element.height, 1);
92435
92524
  const categories = categoryLabels.length > 0 ? categoryLabels : chartData.categories;
92436
92525
  const series = chartData.series[0];
92437
92526
  const options = series?.regionMapOptions;
@@ -92793,8 +92882,8 @@ function formatAxisValue2(val2, formatCode) {
92793
92882
  return val2.toFixed(1);
92794
92883
  }
92795
92884
  function computePlotLayout(elementWidth, elementHeight, chartData, hasAxes, options) {
92796
- const svgWidth = Math.max(320, elementWidth);
92797
- const svgHeight = Math.max(180, elementHeight);
92885
+ const svgWidth = Math.max(1, elementWidth);
92886
+ const svgHeight = Math.max(1, elementHeight);
92798
92887
  let plotLeft = hasAxes ? 48 : 8;
92799
92888
  let plotTop = 8;
92800
92889
  let plotRight = svgWidth - 8;
@@ -92874,7 +92963,7 @@ function buildGridlinesAndLabels(range, layout) {
92874
92963
  x: layout.plotLeft - 4,
92875
92964
  y,
92876
92965
  text: formatAxisValue2(val2),
92877
- fontSize: 8,
92966
+ fontSize: DEFAULT_CHART_TEXT_PX,
92878
92967
  fill: AXIS_LABEL_COLOR,
92879
92968
  textAnchor: "end",
92880
92969
  dominantBaseline: "central"
@@ -92906,7 +92995,7 @@ function buildCategoryLabels(categoryLabels, layout, catSpacing) {
92906
92995
  x,
92907
92996
  y: layout.plotBottom + 12,
92908
92997
  text: label,
92909
- fontSize: 8,
92998
+ fontSize: DEFAULT_CHART_TEXT_PX,
92910
92999
  fill: AXIS_LABEL_COLOR,
92911
93000
  textAnchor: "middle"
92912
93001
  };
@@ -93251,8 +93340,8 @@ function buildFlatViewModel(element, chartData, categoryLabels, kind) {
93251
93340
  return buildCartesianViewModel(element, chartData, categoryLabels, kind);
93252
93341
  }
93253
93342
  function buildFallbackViewModel(width, height, label) {
93254
- const svgWidth = Math.max(width, 100);
93255
- const svgHeight = Math.max(height, 60);
93343
+ const svgWidth = Math.max(width, 1);
93344
+ const svgHeight = Math.max(height, 1);
93256
93345
  return {
93257
93346
  svgWidth,
93258
93347
  svgHeight,
@@ -93406,7 +93495,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
93406
93495
  x: cx + labelR * Math.cos(angle),
93407
93496
  y: cy + labelR * Math.sin(angle),
93408
93497
  text: categoryLabels[i] ?? "",
93409
- fontSize: 8,
93498
+ fontSize: DEFAULT_CHART_TEXT_PX,
93410
93499
  fill: RADAR_LABEL_COLOR,
93411
93500
  textAnchor: "middle",
93412
93501
  dominantBaseline: "central"
@@ -93450,7 +93539,7 @@ function buildRadarViewModel(element, chartData, categoryLabels) {
93450
93539
  x: p.x,
93451
93540
  y: p.y - 8,
93452
93541
  text: formatAxisValue2(val2, series.numberFormat),
93453
- fontSize: 7,
93542
+ fontSize: DEFAULT_CHART_DATA_LABEL_PX,
93454
93543
  fill: "#334155",
93455
93544
  textAnchor: "middle"
93456
93545
  });
@@ -102345,6 +102434,10 @@ var SCALAR_ELEMENT_KEYS = /* @__PURE__ */ new Set([
102345
102434
  "cropTop",
102346
102435
  "cropRight",
102347
102436
  "cropBottom",
102437
+ "fillRectLeft",
102438
+ "fillRectTop",
102439
+ "fillRectRight",
102440
+ "fillRectBottom",
102348
102441
  "tileOffsetX",
102349
102442
  "tileOffsetY",
102350
102443
  "tileScaleX",
@@ -103959,9 +104052,16 @@ var CINEMATIC_TRANSITION_KEYFRAMES = `
103959
104052
  /* \u2500\u2500 Airplane (fly off like a paper plane) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
103960
104053
  @keyframes pptx-tr-airplane-out { 0% { transform: perspective(1200px) translate3d(0, 0, 0) rotate3d(1, -1, 0, 0deg) scale(1); opacity: 1; } 40% { transform: perspective(1200px) translate3d(10%, -10%, 0) rotate3d(1, -1, 0, 25deg) scale(.85); opacity: 1; } 100% { transform: perspective(1200px) translate3d(150%, -70%, 0) rotate3d(1, -1, 1, 70deg) scale(.05); opacity: 0; } }
103961
104054
 
103962
- /* \u2500\u2500 Origami (fold out / unfold in) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
103963
- @keyframes pptx-tr-origami-out { from { transform: perspective(1600px) rotateY(0deg) scaleX(1); transform-origin: left center; opacity: 1; } to { transform: perspective(1600px) rotateY(75deg) scaleX(.25); transform-origin: left center; opacity: .2; } }
103964
- @keyframes pptx-tr-origami-in { from { transform: perspective(1600px) rotateY(-75deg) scaleX(.25); transform-origin: right center; opacity: .2; } to { transform: perspective(1600px) rotateY(0deg) scaleX(1); transform-origin: right center; opacity: 1; } }
104055
+ /* \u2500\u2500 Origami (fold the sheet over its top edge; the next unfolds up) \u2500\u2500
104056
+ The old single-phase rotateY + scaleX compressed the outgoing slide into a
104057
+ narrow vertical sliver for most of the (3+ second) duration, which read as
104058
+ "just a grey line" instead of paper folding (issue #132). The fold is now
104059
+ hinged like a real sheet: the outgoing slide creases over its TOP edge,
104060
+ dims as it tips through edge-on, and tumbles away shrinking; the incoming
104061
+ slide lies folded at its BOTTOM edge and rises into place. The edge-on
104062
+ moment is brief and already mid-fade, so no line artifact survives. */
104063
+ @keyframes pptx-tr-origami-out { 0% { transform: perspective(1400px) rotateX(0deg) translateY(0) scale(1); transform-origin: top center; opacity: 1; filter: brightness(1); } 45% { transform: perspective(1400px) rotateX(-52deg) translateY(2%) scale(.96); transform-origin: top center; opacity: 1; filter: brightness(.82); } 70% { transform: perspective(1400px) rotateX(-84deg) translateY(8%) scale(.88); transform-origin: top center; opacity: .8; filter: brightness(.68); } 100% { transform: perspective(1400px) rotateX(-125deg) translateY(30%) scale(.68); transform-origin: top center; opacity: 0; filter: brightness(.55); } }
104064
+ @keyframes pptx-tr-origami-in { 0% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: 0; filter: brightness(.7); } 30% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: .65; filter: brightness(.75); } 100% { transform: perspective(1400px) rotateX(0deg) scale(1); transform-origin: bottom center; opacity: 1; filter: brightness(1); } }
103965
104065
  `;
103966
104066
  var CORE_SLIDE_TRANSITION_KEYFRAMES = `
103967
104067
  /* \u2500\u2500 Fade \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
@@ -110745,8 +110845,14 @@ function attachPresentationVisibilityPause(options = {}) {
110745
110845
  }
110746
110846
  const root = options.root ?? document;
110747
110847
  let pausedMedia = [];
110748
- const onVisibilityChange = () => {
110749
- if (document.visibilityState === "hidden") {
110848
+ let suspended = false;
110849
+ const update = () => {
110850
+ const shouldSuspend = document.visibilityState === "hidden" || !document.hasFocus();
110851
+ if (shouldSuspend === suspended) {
110852
+ return;
110853
+ }
110854
+ suspended = shouldSuspend;
110855
+ if (shouldSuspend) {
110750
110856
  pausedMedia = [];
110751
110857
  for (const media of root.querySelectorAll("audio, video")) {
110752
110858
  if (!media.paused && !media.ended) {
@@ -110768,9 +110874,13 @@ function attachPresentationVisibilityPause(options = {}) {
110768
110874
  resumeAllPersistentAudio();
110769
110875
  options.onVisible?.();
110770
110876
  };
110771
- document.addEventListener("visibilitychange", onVisibilityChange);
110877
+ document.addEventListener("visibilitychange", update);
110878
+ window.addEventListener("blur", update);
110879
+ window.addEventListener("focus", update);
110772
110880
  return () => {
110773
- document.removeEventListener("visibilitychange", onVisibilityChange);
110881
+ document.removeEventListener("visibilitychange", update);
110882
+ window.removeEventListener("blur", update);
110883
+ window.removeEventListener("focus", update);
110774
110884
  };
110775
110885
  }
110776
110886
  function buildSummaryZoomView(element, lookup) {
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  import { translationsEn } from './chunk-TEXIGSA6.mjs';
2
- import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, getImageFitStyle, isImageLikeElement, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, suppressesCssBorder, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx, registerPersistentAudio, proportionalLineHeight, substituteFieldText, resolveUnderlineDecorationStyle, POWERPOINT_METRIC_TRACKING, resolveAutoFitFontScale, getSubstituteFontFamily, parsePanoseString, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, sanitizeGradientStops, getGradientTileFlipCss, getGradientTileRectCss, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, chartAreaFill, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-OWGPRVRK.mjs';
2
+ import { SHAPE_PRESET_DEFS, computeValueRangeForChart, VIEWER_SHORTCUT_REFERENCE, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, isTemplateElement, getImageFitStyle, isImageLikeElement, runMediaCommand, findMediaElementByElementId, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, getKinsokuLineBreakStyles, buildTextBody3DSceneStyle, resolveParagraphRtl, resolveParagraphAlign, resolveCssTextAlign, resolveParagraphStrutFontSize, colorWithOpacity, normalizeHexColor, build3DExtrusionData, getResolvedShapeClipPath, normalizeStrokeDashType, buildCssGradientFromShapeStyle, buildShadowCssFromShapeStyle, buildInnerShadowCssFromShapeStyle, suppressesCssBorder, buildMultiLayerShadowCss, buildGlowBoxShadow, getCompoundLineBoxShadow, getSoftEdgeFilterId, getEffectDagFilter, buildPatternFillCss, buildReflectionCss, getCssBorderDashStyle, getCompoundLineBorderWidth, getSvgStrokeDasharray, buildSvgGradientDef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, computeSelectionRect, rectToCells, isCellInRect, buildChartViewModel, buildNotesPdfBytes, buildSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, getRoundRectRadiusPx, registerPersistentAudio, proportionalLineHeight, substituteFieldText, resolveUnderlineDecorationStyle, POWERPOINT_METRIC_TRACKING, resolveAutoFitFontScale, getSubstituteFontFamily, parsePanoseString, hasDistinctScriptFonts, buildTextReflectionCss, getTextAlphaOpacity, buildTextRunFilterChain, buildTextShadowCss, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, evaluatePresetShape, sanitizeGradientStops, getGradientTileFlipCss, getGradientTileRectCss, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, svgGradientFillRef, computeColumnBoundaries, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, getPatternSvg, ooxmlDashToCssBorderStyle, cell3DBevelCss, getChartStylePalette, chartAreaFill, computeLayout, valueToY, formatAxisValue, computeLayoutOptions, splitSeriesByAxis, computeValueRange, getSecondaryValueAxis, seriesColor, paletteColor, resolveRegionCode, normalizeValue, sequentialColorScale, convertOmmlToMathMl, sanitizeMathMl, buildTextFillCss, resolvePictureBullet, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, resolveFontRefIdx, tintColor2, shadeColor2, ooxmlGradientAngleToCssDegrees, segmentByScript, resolveFontForScript, generateLogTicks, formatAxisValueWithUnits, getDisplayUnitLabel, hexToRgbChannels, chartPartToAttrs } from './chunk-GKOKCOXR.mjs';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import React6, { useState, useEffect, useMemo, Suspense, useRef, useCallback, useLayoutEffect } from 'react';
@@ -6198,7 +6198,7 @@ function FailedToLoad() {
6198
6198
  var LazySurfaceChart3DScene = React6.lazy(
6199
6199
  async () => {
6200
6200
  try {
6201
- return await import('./SurfaceChart3DScene-2W2IFPLE.mjs');
6201
+ return await import('./SurfaceChart3DScene-GRBWZ52S.mjs');
6202
6202
  } catch {
6203
6203
  return { default: FailedToLoad };
6204
6204
  }
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter } from './chunk-OWGPRVRK.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter } from './chunk-GKOKCOXR.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkDD2YRS6Z_js = require('./chunk-DD2YRS6Z.js');
3
+ var chunkFDR5W67L_js = require('./chunk-FDR5W67L.js');
4
4
  var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
5
5
  var mcp = require('pptx-viewer-mcp');
6
6
  var mcpSchemas = require('pptx-viewer-mcp/schemas');
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
14879
14879
  };
14880
14880
  let markdown;
14881
14881
  try {
14882
- const converter = new chunkDD2YRS6Z_js.PptxMarkdownConverter(
14882
+ const converter = new chunkFDR5W67L_js.PptxMarkdownConverter(
14883
14883
  "",
14884
14884
  {
14885
14885
  sourceName: meta3.title ?? "deck.pptx",
@@ -15470,7 +15470,7 @@ var getTheme = (ctx) => {
15470
15470
  name: theme?.name,
15471
15471
  colorScheme: theme?.colorScheme,
15472
15472
  fontScheme: theme?.fontScheme,
15473
- availablePresets: Object.keys(chunkDD2YRS6Z_js.ThemePresets)
15473
+ availablePresets: Object.keys(chunkFDR5W67L_js.ThemePresets)
15474
15474
  };
15475
15475
  };
15476
15476
  var readExecutors = {
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-GJEH27GD.mjs';
1
+ import { cloneHistorySnapshot, MIN_ELEMENT_SIZE, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, UNGROUPED_SECTION_ID, buildSaveSlides, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, executeMediaCommand, buildPdfFromImageData, buildNotesPdf, EMU_PER_PX, GRID_SIZE, DEFAULT_TEXT_FONT_SIZE } from './chunk-GZ6TXBEO.mjs';
2
2
  import { translationsEn } from './chunk-TEXIGSA6.mjs';
3
- import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-OWGPRVRK.mjs';
3
+ import { TOOLBAR_TABS, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, BROADCAST_THROTTLE_MS, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, clampZoomScale, zoomInScale, zoomOutScale, PresentationAnimationController, computeEntranceAnimationDelay, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, createPresenterShowGuard, attachPresentationVisibilityPause, buildMorphTransitionPlan, morphOptionToMode, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, collectMediaElements, collectImagePaths, buildInitialGuides, EncryptedFileError, saveAutosaveSnapshot, isTemplateElementId, hasShapeProperties, hasTextProperties, getInlineEditorSelection, applyStyleToSelectedSegments, setPendingSelectionRestore, applyCaseTransformToSegments, transformTextCase, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, normalizeColorsForCapture, preprocessCssForCapture, downloadBlob, sanitizeDownloadFilename, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, recordProgressPercent, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, detectTouchDevice, detectOrientation, isMobileViewport, MOBILE_BREAKPOINT, TABLET_BREAKPOINT, mayLeaveSlideShow, stopAllPersistentAudio, remapTextToSegments, guidePxToEmu, shouldLoopContinuously, applyRehearsalTimings, copyFormatFromElement, applyFormatToElement, mapEditorKey, isEditorTextInputTarget, createViewerOptionsStore, readSlidesFromYDoc, reconcileSlidesInYDoc, LOCAL_SYNC_ORIGIN, observeYDocSlides, shouldAutoFollowBroadcaster, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, openPptxFile, readBackstageRecentFile, isActionHidden, buildElementClipboardPayload, generatePackageReadme, groupElements, generateElementId, makeCloneId, alignElements, distributeElements, bringForward, sendBackward, bringToFront, sendToBack, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, mergeShapes, derivePresenceList, mapPresentationKey, lastShowSlideIndex, firstShowSlideIndex, buildPrintDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildThemeColorMap, reResolveSlideColors, createPresentationSessionId, resolveTransitionDurationMs, runPresentationAction, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, presenterElapsed, stepPresenterZoom, resetPresenterTimer, togglePresenterTimer, canvasToJpegData, downloadDataUrl, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, encodeGif, resolveShowSlideIndexes, groupSlidesBySection, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, cloneElementForPaste, computeScrollDelta, getPresetShapeClipPath, svgPathToPolygons, polygonsToSvgPath, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, buildPrintHtmlDocument, deleteTableColumn, rebuildTableStructureInRawXml, insertTableColumn, deleteTableRow, insertTableRow, updateCellTextStyleInRawXml, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, isPpactionUrl, parsePpactionUrl, safeOpenUrl, ACTION_BUTTON_PRESETS, elementActionToPptxAction, buildSmartArtPresetData, computeSnapToShape, publishLiveGeometry, computeMarqueeHitIds, mergeAdditiveSelection, applyResize, snapBoxToGrid, applyMotionPathPreset } from './chunk-GKOKCOXR.mjs';
4
4
  import { useRef, useState, useEffect, useCallback, useMemo, useSyncExternalStore, useImperativeHandle } from 'react';
5
5
  import JSZip from 'jszip';
6
6
  import { useTranslation } from 'react-i18next';
Binary file
Binary file