pptx-react-viewer 3.4.1 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{AiChatPanel-AIM55U76.mjs → AiChatPanel-KZX4NZ5R.mjs} +4 -4
  3. package/dist/AiChatPanel-KZX4NZ5R.mjs.br +0 -0
  4. package/dist/AiChatPanel-KZX4NZ5R.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-Q2ZVO4RR.js → AiChatPanel-M7RSMOZV.js} +25 -25
  6. package/dist/AiChatPanel-M7RSMOZV.js.br +0 -0
  7. package/dist/AiChatPanel-M7RSMOZV.js.gz +0 -0
  8. package/dist/{Area3DChartScene-W5HVINQ6.js → Area3DChartScene-7AYWOGBC.js} +2 -2
  9. package/dist/Area3DChartScene-7AYWOGBC.js.br +0 -0
  10. package/dist/Area3DChartScene-7AYWOGBC.js.gz +0 -0
  11. package/dist/{Area3DChartScene-DNLGOR5F.mjs → Area3DChartScene-AD6BO2VM.mjs} +1 -1
  12. package/dist/Area3DChartScene-AD6BO2VM.mjs.br +3 -0
  13. package/dist/Area3DChartScene-AD6BO2VM.mjs.gz +0 -0
  14. package/dist/{Bar3DChartScene-SOO62TCP.js → Bar3DChartScene-FWKMBT4O.js} +2 -2
  15. package/dist/{Bar3DChartScene-SOO62TCP.js.br → Bar3DChartScene-FWKMBT4O.js.br} +0 -0
  16. package/dist/Bar3DChartScene-FWKMBT4O.js.gz +0 -0
  17. package/dist/{Bar3DChartScene-VYKQAY6X.mjs → Bar3DChartScene-JOGF3C5E.mjs} +1 -1
  18. package/dist/Bar3DChartScene-JOGF3C5E.mjs.br +0 -0
  19. package/dist/Bar3DChartScene-JOGF3C5E.mjs.gz +0 -0
  20. package/dist/{Line3DChartScene-ZVELPNOD.mjs → Line3DChartScene-ADORAAXV.mjs} +1 -1
  21. package/dist/Line3DChartScene-ADORAAXV.mjs.br +3 -0
  22. package/dist/Line3DChartScene-ADORAAXV.mjs.gz +0 -0
  23. package/dist/{Line3DChartScene-BAP3YA3R.js → Line3DChartScene-X2BJNGIK.js} +2 -2
  24. package/dist/Line3DChartScene-X2BJNGIK.js.br +0 -0
  25. package/dist/Line3DChartScene-X2BJNGIK.js.gz +0 -0
  26. package/dist/{Model3DScene-BWNVCCAZ.js → Model3DScene-KSZHZAVD.js} +2 -2
  27. package/dist/Model3DScene-KSZHZAVD.js.br +0 -0
  28. package/dist/Model3DScene-KSZHZAVD.js.gz +0 -0
  29. package/dist/{Model3DScene-ZJWU5IUY.mjs → Model3DScene-RORDMQ6Q.mjs} +1 -1
  30. package/dist/Model3DScene-RORDMQ6Q.mjs.br +0 -0
  31. package/dist/Model3DScene-RORDMQ6Q.mjs.gz +0 -0
  32. package/dist/{PieChart3DScene-2DJE4BM3.js → PieChart3DScene-BXMI7U2X.js} +2 -2
  33. package/dist/PieChart3DScene-BXMI7U2X.js.br +0 -0
  34. package/dist/PieChart3DScene-BXMI7U2X.js.gz +0 -0
  35. package/dist/{PieChart3DScene-NNLKJ6LN.mjs → PieChart3DScene-IXJHU3MI.mjs} +1 -1
  36. package/dist/PieChart3DScene-IXJHU3MI.mjs.br +0 -0
  37. package/dist/PieChart3DScene-IXJHU3MI.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-NWB4QAOI.mjs → SurfaceChart3DScene-SJ2IDLP6.mjs} +1 -1
  39. package/dist/SurfaceChart3DScene-SJ2IDLP6.mjs.br +0 -0
  40. package/dist/SurfaceChart3DScene-SJ2IDLP6.mjs.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-WRSCQKJV.js → SurfaceChart3DScene-TTBGVNYL.js} +2 -2
  42. package/dist/SurfaceChart3DScene-TTBGVNYL.js.br +0 -0
  43. package/dist/SurfaceChart3DScene-TTBGVNYL.js.gz +0 -0
  44. package/dist/{chunk-4YGGPPJZ.mjs → chunk-24XC5C2B.mjs} +2 -2
  45. package/dist/chunk-24XC5C2B.mjs.br +0 -0
  46. package/dist/chunk-24XC5C2B.mjs.gz +0 -0
  47. package/dist/{chunk-GKRE7272.js → chunk-AEP6X24D.js} +169 -169
  48. package/dist/chunk-AEP6X24D.js.br +0 -0
  49. package/dist/chunk-AEP6X24D.js.gz +0 -0
  50. package/dist/{chunk-SEJEVNXW.js → chunk-AU5YFUUK.js} +54 -5
  51. package/dist/chunk-AU5YFUUK.js.br +0 -0
  52. package/dist/chunk-AU5YFUUK.js.gz +0 -0
  53. package/dist/{chunk-QEAU2XTI.mjs → chunk-C7ZSRYF4.mjs} +76 -26
  54. package/dist/chunk-C7ZSRYF4.mjs.br +0 -0
  55. package/dist/chunk-C7ZSRYF4.mjs.gz +0 -0
  56. package/dist/{chunk-EM3D67TB.mjs → chunk-DUC32SQJ.mjs} +42 -19
  57. package/dist/chunk-DUC32SQJ.mjs.br +0 -0
  58. package/dist/chunk-DUC32SQJ.mjs.gz +0 -0
  59. package/dist/{chunk-Y2B5EZEV.js → chunk-HCTJCUGP.js} +501 -451
  60. package/dist/chunk-HCTJCUGP.js.br +0 -0
  61. package/dist/chunk-HCTJCUGP.js.gz +0 -0
  62. package/dist/{chunk-XWUMM2TX.mjs → chunk-JCJ3EPG6.mjs} +1 -0
  63. package/dist/chunk-JCJ3EPG6.mjs.br +0 -0
  64. package/dist/chunk-JCJ3EPG6.mjs.gz +0 -0
  65. package/dist/{chunk-PDVJNNWP.js → chunk-JTS7AZYQ.js} +5 -5
  66. package/dist/chunk-JTS7AZYQ.js.br +0 -0
  67. package/dist/chunk-JTS7AZYQ.js.gz +0 -0
  68. package/dist/{chunk-UNIJUD5C.js → chunk-UTIMT5CZ.js} +1 -0
  69. package/dist/chunk-UTIMT5CZ.js.br +0 -0
  70. package/dist/chunk-UTIMT5CZ.js.gz +0 -0
  71. package/dist/{chunk-IJLTDBXT.mjs → chunk-X6OJYCTW.mjs} +1 -1
  72. package/dist/chunk-X6OJYCTW.mjs.br +0 -0
  73. package/dist/chunk-X6OJYCTW.mjs.gz +0 -0
  74. package/dist/{chunk-PADP3NUM.mjs → chunk-X7L3RHFQ.mjs} +52 -6
  75. package/dist/chunk-X7L3RHFQ.mjs.br +0 -0
  76. package/dist/chunk-X7L3RHFQ.mjs.gz +0 -0
  77. package/dist/{chunk-WXQQ43IA.js → chunk-XSHYXVPD.js} +1200 -1177
  78. package/dist/chunk-XSHYXVPD.js.br +0 -0
  79. package/dist/chunk-XSHYXVPD.js.gz +0 -0
  80. package/dist/i18n.js +4 -4
  81. package/dist/i18n.js.br +0 -0
  82. package/dist/i18n.js.gz +0 -0
  83. package/dist/i18n.mjs +1 -1
  84. package/dist/i18n.mjs.br +0 -0
  85. package/dist/i18n.mjs.gz +0 -0
  86. package/dist/index.js +47 -47
  87. package/dist/index.js.br +0 -0
  88. package/dist/index.js.gz +0 -0
  89. package/dist/index.mjs +6 -6
  90. package/dist/index.mjs.br +0 -0
  91. package/dist/index.mjs.gz +0 -0
  92. package/dist/internals.d.ts +22 -0
  93. package/dist/internals.d.ts.map +1 -1
  94. package/dist/internals.js +79 -79
  95. package/dist/internals.js.br +0 -0
  96. package/dist/internals.js.gz +0 -0
  97. package/dist/internals.mjs +4 -4
  98. package/dist/internals.mjs.br +0 -0
  99. package/dist/internals.mjs.gz +0 -0
  100. package/dist/viewer/index.js +27 -27
  101. package/dist/viewer/index.js.br +0 -0
  102. package/dist/viewer/index.js.gz +0 -0
  103. package/dist/viewer/index.mjs +6 -6
  104. package/dist/viewer/index.mjs.br +0 -0
  105. package/dist/viewer/index.mjs.gz +0 -0
  106. package/package.json +1 -1
  107. package/dist/AiChatPanel-AIM55U76.mjs.br +0 -0
  108. package/dist/AiChatPanel-AIM55U76.mjs.gz +0 -0
  109. package/dist/AiChatPanel-Q2ZVO4RR.js.br +0 -0
  110. package/dist/AiChatPanel-Q2ZVO4RR.js.gz +0 -0
  111. package/dist/Area3DChartScene-DNLGOR5F.mjs.br +0 -0
  112. package/dist/Area3DChartScene-DNLGOR5F.mjs.gz +0 -0
  113. package/dist/Area3DChartScene-W5HVINQ6.js.br +0 -0
  114. package/dist/Area3DChartScene-W5HVINQ6.js.gz +0 -0
  115. package/dist/Bar3DChartScene-SOO62TCP.js.gz +0 -0
  116. package/dist/Bar3DChartScene-VYKQAY6X.mjs.br +0 -0
  117. package/dist/Bar3DChartScene-VYKQAY6X.mjs.gz +0 -0
  118. package/dist/Line3DChartScene-BAP3YA3R.js.br +0 -0
  119. package/dist/Line3DChartScene-BAP3YA3R.js.gz +0 -0
  120. package/dist/Line3DChartScene-ZVELPNOD.mjs.br +0 -0
  121. package/dist/Line3DChartScene-ZVELPNOD.mjs.gz +0 -0
  122. package/dist/Model3DScene-BWNVCCAZ.js.br +0 -0
  123. package/dist/Model3DScene-BWNVCCAZ.js.gz +0 -0
  124. package/dist/Model3DScene-ZJWU5IUY.mjs.br +0 -0
  125. package/dist/Model3DScene-ZJWU5IUY.mjs.gz +0 -0
  126. package/dist/PieChart3DScene-2DJE4BM3.js.br +0 -0
  127. package/dist/PieChart3DScene-2DJE4BM3.js.gz +0 -0
  128. package/dist/PieChart3DScene-NNLKJ6LN.mjs.br +0 -0
  129. package/dist/PieChart3DScene-NNLKJ6LN.mjs.gz +0 -0
  130. package/dist/SurfaceChart3DScene-NWB4QAOI.mjs.br +0 -0
  131. package/dist/SurfaceChart3DScene-NWB4QAOI.mjs.gz +0 -0
  132. package/dist/SurfaceChart3DScene-WRSCQKJV.js.br +0 -0
  133. package/dist/SurfaceChart3DScene-WRSCQKJV.js.gz +0 -0
  134. package/dist/chunk-4YGGPPJZ.mjs.br +0 -0
  135. package/dist/chunk-4YGGPPJZ.mjs.gz +0 -0
  136. package/dist/chunk-EM3D67TB.mjs.br +0 -0
  137. package/dist/chunk-EM3D67TB.mjs.gz +0 -0
  138. package/dist/chunk-GKRE7272.js.br +0 -0
  139. package/dist/chunk-GKRE7272.js.gz +0 -0
  140. package/dist/chunk-IJLTDBXT.mjs.br +0 -0
  141. package/dist/chunk-IJLTDBXT.mjs.gz +0 -0
  142. package/dist/chunk-PADP3NUM.mjs.br +0 -0
  143. package/dist/chunk-PADP3NUM.mjs.gz +0 -0
  144. package/dist/chunk-PDVJNNWP.js.br +0 -0
  145. package/dist/chunk-PDVJNNWP.js.gz +0 -0
  146. package/dist/chunk-QEAU2XTI.mjs.br +0 -0
  147. package/dist/chunk-QEAU2XTI.mjs.gz +0 -0
  148. package/dist/chunk-SEJEVNXW.js.br +0 -0
  149. package/dist/chunk-SEJEVNXW.js.gz +0 -0
  150. package/dist/chunk-UNIJUD5C.js.br +0 -0
  151. package/dist/chunk-UNIJUD5C.js.gz +0 -0
  152. package/dist/chunk-WXQQ43IA.js.br +0 -0
  153. package/dist/chunk-WXQQ43IA.js.gz +0 -0
  154. package/dist/chunk-XWUMM2TX.mjs.br +0 -0
  155. package/dist/chunk-XWUMM2TX.mjs.gz +0 -0
  156. package/dist/chunk-Y2B5EZEV.js.br +0 -0
  157. package/dist/chunk-Y2B5EZEV.js.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkSEJEVNXW_js = require('./chunk-SEJEVNXW.js');
4
- var chunkUNIJUD5C_js = require('./chunk-UNIJUD5C.js');
3
+ var chunkAU5YFUUK_js = require('./chunk-AU5YFUUK.js');
4
+ var chunkUTIMT5CZ_js = require('./chunk-UTIMT5CZ.js');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var React6 = require('react');
@@ -15,7 +15,7 @@ var React6__default = /*#__PURE__*/_interopDefault(React6);
15
15
 
16
16
  // src/viewer/utils/animation-effects.ts
17
17
  function getAnimationInitialStyle2(preset, nativeAnimation) {
18
- return chunkSEJEVNXW_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkAU5YFUUK_js.getAnimationInitialStyle(preset, nativeAnimation);
19
19
  }
20
20
  function cn(...inputs) {
21
21
  return tailwindMerge.twMerge(clsx.clsx(inputs));
@@ -23,7 +23,7 @@ function cn(...inputs) {
23
23
 
24
24
  // src/viewer/utils/clone.ts
25
25
  function cloneHistorySnapshot2(snapshot) {
26
- return chunkSEJEVNXW_js.cloneHistorySnapshot(snapshot);
26
+ return chunkAU5YFUUK_js.cloneHistorySnapshot(snapshot);
27
27
  }
28
28
 
29
29
  // src/viewer/constants/scalar.ts
@@ -61,7 +61,7 @@ var TOOLBAR_SECTIONS = [
61
61
  { id: "view", labelKey: "pptx.ribbon.tab.view" },
62
62
  { id: "help", labelKey: "pptx.ribbon.tab.help" }
63
63
  ];
64
- var SHORTCUT_REFERENCE_ITEMS = chunkSEJEVNXW_js.VIEWER_SHORTCUT_REFERENCE;
64
+ var SHORTCUT_REFERENCE_ITEMS = chunkAU5YFUUK_js.VIEWER_SHORTCUT_REFERENCE;
65
65
 
66
66
  // src/viewer/constants/theme.ts
67
67
  var THEME_COLOR_SWATCHES = [
@@ -105,7 +105,7 @@ var GLYPH_COMPONENTS = {
105
105
  plus: lu.LuPlus,
106
106
  triangle: lu.LuTriangle
107
107
  };
108
- var SHAPE_PRESETS = chunkSEJEVNXW_js.SHAPE_PRESET_DEFS.map(
108
+ var SHAPE_PRESETS = chunkAU5YFUUK_js.SHAPE_PRESET_DEFS.map(
109
109
  (def) => ({
110
110
  type: def.type,
111
111
  label: def.label,
@@ -130,7 +130,7 @@ var ARROW_SIZE_OPTIONS = [
130
130
  { value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
131
131
  { value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
132
132
  ];
133
- var STROKE_DASH_OPTIONS2 = chunkSEJEVNXW_js.STROKE_DASH_OPTIONS;
133
+ var STROKE_DASH_OPTIONS2 = chunkAU5YFUUK_js.STROKE_DASH_OPTIONS;
134
134
 
135
135
  // src/viewer/utils/shape-types.tsx
136
136
  function getShapeType(shapeType) {
@@ -239,7 +239,7 @@ function isConnectorOrLineElement(element) {
239
239
  if (element.type === "connector") {
240
240
  return true;
241
241
  }
242
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
242
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
243
243
  return false;
244
244
  }
245
245
  const st = getShapeType(element.shapeType);
@@ -248,17 +248,17 @@ function isConnectorOrLineElement(element) {
248
248
 
249
249
  // src/viewer/utils/image-style.ts
250
250
  function getImageMaskStyle(element) {
251
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
251
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
252
252
  return void 0;
253
253
  }
254
- const geometry = chunkSEJEVNXW_js.resolveShapeGeometry(element);
254
+ const geometry = chunkAU5YFUUK_js.resolveShapeGeometry(element);
255
255
  if (geometry.kind === "borderRadius") {
256
256
  return { borderRadius: geometry.radius };
257
257
  }
258
258
  return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
259
259
  }
260
260
  function getImageRenderStyle(element) {
261
- const fit = chunkSEJEVNXW_js.getImageFitStyle(element);
261
+ const fit = chunkAU5YFUUK_js.getImageFitStyle(element);
262
262
  return {
263
263
  // A translated/scaled crop must be masked by its stationary wrapper, not
264
264
  // by the moving bitmap itself.
@@ -275,7 +275,7 @@ function getImageSurfaceMaskStyle(element) {
275
275
  };
276
276
  }
277
277
  function getImageSurfaceStyle(element) {
278
- const fill = chunkSEJEVNXW_js.hasShapeProperties(element) ? chunkSEJEVNXW_js.getComputedFillStyle(element) : void 0;
278
+ const fill = chunkAU5YFUUK_js.hasShapeProperties(element) ? chunkAU5YFUUK_js.getComputedFillStyle(element) : void 0;
279
279
  return {
280
280
  position: "absolute",
281
281
  inset: 0,
@@ -288,13 +288,13 @@ function getImageSurfaceStyle(element) {
288
288
  };
289
289
  }
290
290
  function getCropShapeClipPath2(element) {
291
- if (!chunkSEJEVNXW_js.isImageLikeElement(element)) {
291
+ if (!chunkAU5YFUUK_js.isImageLikeElement(element)) {
292
292
  return void 0;
293
293
  }
294
- return chunkSEJEVNXW_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
294
+ return chunkAU5YFUUK_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
295
295
  }
296
296
  function getImageTilingStyle2(element) {
297
- return chunkSEJEVNXW_js.getImageTilingStyle(element);
297
+ return chunkAU5YFUUK_js.getImageTilingStyle(element);
298
298
  }
299
299
 
300
300
  // src/viewer/utils/geometry-image.ts
@@ -436,7 +436,7 @@ function VideoWithMetadata({
436
436
  {
437
437
  ref: mediaRef,
438
438
  className: "w-full h-full pointer-events-auto",
439
- style: isFullScreen ? { objectFit: "cover" } : chunkSEJEVNXW_js.getImageFitStyle(element),
439
+ style: isFullScreen ? { objectFit: "cover" } : chunkAU5YFUUK_js.getImageFitStyle(element),
440
440
  controls: showTransport,
441
441
  preload: "metadata",
442
442
  playsInline: true,
@@ -509,7 +509,7 @@ function PresentationMediaController({
509
509
  }
510
510
  };
511
511
  }, []);
512
- const { volume: playbackVolume, playbackRate } = chunkSEJEVNXW_js.mediaPlaybackAttributes({
512
+ const { volume: playbackVolume, playbackRate } = chunkAU5YFUUK_js.mediaPlaybackAttributes({
513
513
  loop: element.loop,
514
514
  volume: element.volume,
515
515
  playbackSpeed: element.playbackSpeed
@@ -644,7 +644,7 @@ function PresentationMediaController({
644
644
  }
645
645
  if (element.playAcrossSlides && element.mediaType === "audio") {
646
646
  const dataUrl = element.mediaData ?? resolvedDataUrl;
647
- if (chunkSEJEVNXW_js.registerCrossSlideAudio(element, dataUrl)) {
647
+ if (chunkAU5YFUUK_js.registerCrossSlideAudio(element, dataUrl)) {
648
648
  return;
649
649
  }
650
650
  }
@@ -687,7 +687,7 @@ function PresentationMediaController({
687
687
  ] });
688
688
  }
689
689
  function label(key) {
690
- return key === void 0 ? void 0 : chunkUNIJUD5C_js.translationsEn[key];
690
+ return key === void 0 ? void 0 : chunkUTIMT5CZ_js.translationsEn[key];
691
691
  }
692
692
  function FallbackIcon({
693
693
  paths,
@@ -723,17 +723,17 @@ function Badge({
723
723
  "div",
724
724
  {
725
725
  className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
726
- ...{ [chunkSEJEVNXW_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
726
+ ...{ [chunkAU5YFUUK_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
727
727
  children: [
728
728
  /* @__PURE__ */ jsxRuntime.jsx(
729
729
  FallbackIcon,
730
730
  {
731
- paths: chunkSEJEVNXW_js.mediaFallbackIcon(visual, element.mediaType),
731
+ paths: chunkAU5YFUUK_js.mediaFallbackIcon(visual, element.mediaType),
732
732
  size: isMissing ? 32 : 48,
733
733
  className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
734
734
  }
735
735
  ),
736
- isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkSEJEVNXW_js.mediaFallbackLabelKey(visual, element.mediaType)) })
736
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkAU5YFUUK_js.mediaFallbackLabelKey(visual, element.mediaType)) })
737
737
  ]
738
738
  }
739
739
  );
@@ -750,17 +750,17 @@ function Placeholder({
750
750
  "div",
751
751
  {
752
752
  className: `w-full h-full flex flex-col items-center justify-center gap-1 pointer-events-none rounded ${isMissing ? "bg-black/30 border border-dashed border-white/20" : element.mediaType === "audio" ? "bg-black/10" : "bg-black/20"}`,
753
- ...{ [chunkSEJEVNXW_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
753
+ ...{ [chunkAU5YFUUK_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
754
754
  children: [
755
755
  /* @__PURE__ */ jsxRuntime.jsx(
756
756
  FallbackIcon,
757
757
  {
758
- paths: chunkSEJEVNXW_js.mediaFallbackIcon(visual, element.mediaType),
758
+ paths: chunkAU5YFUUK_js.mediaFallbackIcon(visual, element.mediaType),
759
759
  size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
760
760
  className: isMissing ? "text-white/50" : "text-white/70"
761
761
  }
762
762
  ),
763
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkSEJEVNXW_js.mediaFallbackLabelKey(visual, element.mediaType)) })
763
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkAU5YFUUK_js.mediaFallbackLabelKey(visual, element.mediaType)) })
764
764
  ]
765
765
  }
766
766
  );
@@ -770,7 +770,7 @@ function renderMediaFallback({
770
770
  posterUrl,
771
771
  surface
772
772
  }) {
773
- const visual = chunkSEJEVNXW_js.mediaFallbackVisual(surface, {
773
+ const visual = chunkAU5YFUUK_js.mediaFallbackVisual(surface, {
774
774
  hasPoster: Boolean(posterUrl),
775
775
  missing: element.mediaMissing === true
776
776
  });
@@ -780,9 +780,9 @@ function renderMediaFallback({
780
780
  "img",
781
781
  {
782
782
  src: posterUrl,
783
- alt: visual.dimPoster ? chunkUNIJUD5C_js.translationsEn["pptx.media.posterAlt"] : chunkUNIJUD5C_js.translationsEn["pptx.media.videoPosterAlt"],
783
+ alt: visual.dimPoster ? chunkUTIMT5CZ_js.translationsEn["pptx.media.posterAlt"] : chunkUTIMT5CZ_js.translationsEn["pptx.media.videoPosterAlt"],
784
784
  className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
785
- style: chunkSEJEVNXW_js.getImageFitStyle(element)
785
+ style: chunkAU5YFUUK_js.getImageFitStyle(element)
786
786
  }
787
787
  ),
788
788
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
@@ -792,7 +792,7 @@ function renderMediaFallback({
792
792
  }
793
793
  function renderMediaElement(element, mediaDataUrls, options) {
794
794
  if (element.type !== "media") {
795
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUNIJUD5C_js.translationsEn["pptx.media.title"] });
795
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.media.title"] });
796
796
  }
797
797
  const mediaType = element.mediaType;
798
798
  const mediaPath = element.mediaPath;
@@ -800,7 +800,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
800
800
  const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
801
801
  const trimFragment = buildTrimFragment(element);
802
802
  const posterUrl = element.posterFrameData ?? void 0;
803
- const shouldLoop = chunkSEJEVNXW_js.mediaPlaybackAttributes(element).loop;
803
+ const shouldLoop = chunkAU5YFUUK_js.mediaPlaybackAttributes(element).loop;
804
804
  const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
805
805
  const isFullScreen = options?.fullScreen === true;
806
806
  const isPresentationMode = options?.isPresentationMode === true;
@@ -878,25 +878,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
878
878
  if (surface.presenting || surface.preview) {
879
879
  return null;
880
880
  }
881
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUNIJUD5C_js.translationsEn["pptx.media.title"] });
881
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.media.title"] });
882
882
  }
883
883
 
884
884
  // src/viewer/utils/text-utils.tsx
885
885
  function getTextStyleForElement(element, fallbackColor) {
886
- return chunkSEJEVNXW_js.buildTextBlockStyle(element, { fallbackColor });
886
+ return chunkAU5YFUUK_js.buildTextBlockStyle(element, { fallbackColor });
887
887
  }
888
888
 
889
889
  // src/viewer/utils/text-layout.tsx
890
890
  function getTextLayoutStyle(element) {
891
- if (!chunkSEJEVNXW_js.hasTextProperties(element)) {
891
+ if (!chunkAU5YFUUK_js.hasTextProperties(element)) {
892
892
  return {};
893
893
  }
894
- const writingMode = chunkSEJEVNXW_js.toCssWritingMode(element.textStyle?.textDirection);
895
- const textOrientation = chunkSEJEVNXW_js.toCssTextOrientation(element.textStyle?.textDirection);
896
- const verticalDirection = chunkSEJEVNXW_js.toCssVerticalDirection(element.textStyle?.textDirection);
894
+ const writingMode = chunkAU5YFUUK_js.toCssWritingMode(element.textStyle?.textDirection);
895
+ const textOrientation = chunkAU5YFUUK_js.toCssTextOrientation(element.textStyle?.textDirection);
896
+ const verticalDirection = chunkAU5YFUUK_js.toCssVerticalDirection(element.textStyle?.textDirection);
897
897
  const textWrapNone = element.textStyle?.textWrap === "none";
898
898
  const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
899
- const hasParagraphIndents = chunkSEJEVNXW_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
899
+ const hasParagraphIndents = chunkAU5YFUUK_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
900
900
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
901
901
  const paragraphIndent = element.textStyle?.paragraphIndent;
902
902
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -905,7 +905,7 @@ function getTextLayoutStyle(element) {
905
905
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
906
906
  return {
907
907
  // Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
908
- ...chunkSEJEVNXW_js.buildTextBodyLayoutStyle(element),
908
+ ...chunkAU5YFUUK_js.buildTextBodyLayoutStyle(element),
909
909
  // Body inset only. Paragraph spacing (spcBef/spcAft) is applied
910
910
  // per-paragraph by the paragraph renderer, not collapsed here.
911
911
  paddingTop: bodyTop,
@@ -933,7 +933,7 @@ function getTextLayoutStyle(element) {
933
933
 
934
934
  // src/viewer/utils/text-effects.tsx
935
935
  function buildTextBody3DSceneStyle2(textStyle) {
936
- return chunkSEJEVNXW_js.buildTextBody3DSceneStyle(textStyle);
936
+ return chunkAU5YFUUK_js.buildTextBody3DSceneStyle(textStyle);
937
937
  }
938
938
 
939
939
  // src/viewer/utils/text-warp-css.tsx
@@ -1118,13 +1118,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1118
1118
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1119
1119
  return renderedSegments;
1120
1120
  }
1121
- const paraKey = `${elementId}${chunkSEJEVNXW_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1121
+ const paraKey = `${elementId}${chunkAU5YFUUK_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1122
1122
  const paraState = subElementAnimStates.get(paraKey);
1123
1123
  if (paraState) {
1124
1124
  const style = buildAnimStyle(paraState);
1125
1125
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1126
1126
  }
1127
- const spec = chunkSEJEVNXW_js.buildTextBuildSpec(
1127
+ const spec = chunkAU5YFUUK_js.buildTextBuildSpec(
1128
1128
  elementId,
1129
1129
  paraIndex,
1130
1130
  paraRuns.map((run) => ({ text: run.text, style: run })),
@@ -1142,7 +1142,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1142
1142
  "span",
1143
1143
  {
1144
1144
  "data-anim-id": span.animId,
1145
- style: chunkSEJEVNXW_js.textBuildSpanStyle(span),
1145
+ style: chunkAU5YFUUK_js.textBuildSpanStyle(span),
1146
1146
  children: content
1147
1147
  },
1148
1148
  span.animId
@@ -1150,7 +1150,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1150
1150
  });
1151
1151
  }
1152
1152
  function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle) {
1153
- const [lineLayout] = chunkSEJEVNXW_js.buildRunTabLines(line, ctx, nestedStyle);
1153
+ const [lineLayout] = chunkAU5YFUUK_js.buildRunTabLines(line, ctx, nestedStyle);
1154
1154
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-block", whiteSpace: "nowrap" }, children: lineLayout.pieces.map((piece, i) => {
1155
1155
  const key = `${keyPrefix}-tab-${i}`;
1156
1156
  return /* @__PURE__ */ jsxRuntime.jsxs(React6__default.default.Fragment, { children: [
@@ -1163,7 +1163,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1163
1163
  if (!needsScriptFonts || !text) {
1164
1164
  return text;
1165
1165
  }
1166
- const pieces = chunkSEJEVNXW_js.splitRunByScriptFont(
1166
+ const pieces = chunkAU5YFUUK_js.splitRunByScriptFont(
1167
1167
  text,
1168
1168
  scriptFonts,
1169
1169
  baseFontFamily,
@@ -1180,7 +1180,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1180
1180
  if (!metric || !text) {
1181
1181
  return inner(text, keyPrefix);
1182
1182
  }
1183
- const pieces = chunkSEJEVNXW_js.splitRunForMetrics(text, metric.font);
1183
+ const pieces = chunkAU5YFUUK_js.splitRunForMetrics(text, metric.font);
1184
1184
  if (pieces.length <= 1) {
1185
1185
  return inner(text, keyPrefix);
1186
1186
  }
@@ -1189,7 +1189,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1189
1189
  {
1190
1190
  style: {
1191
1191
  ...metric.nestedStyle,
1192
- letterSpacing: chunkSEJEVNXW_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1192
+ letterSpacing: chunkAU5YFUUK_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1193
1193
  },
1194
1194
  children: inner(piece.text, `${keyPrefix}-w${i}`)
1195
1195
  },
@@ -1276,8 +1276,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1276
1276
  });
1277
1277
  }
1278
1278
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1279
- const mathml = chunkSEJEVNXW_js.convertOmmlToMathMl(equationXml);
1280
- const safeMathml = mathml ? chunkSEJEVNXW_js.sanitizeMathMl(mathml) : "";
1279
+ const mathml = chunkAU5YFUUK_js.convertOmmlToMathMl(equationXml);
1280
+ const safeMathml = mathml ? chunkAU5YFUUK_js.sanitizeMathMl(mathml) : "";
1281
1281
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1282
1282
  "span",
1283
1283
  {
@@ -1287,7 +1287,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1287
1287
  },
1288
1288
  dangerouslySetInnerHTML: { __html: safeMathml }
1289
1289
  }
1290
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkUNIJUD5C_js.translationsEn["pptx.textSegment.equationFallback"] });
1290
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkUTIMT5CZ_js.translationsEn["pptx.textSegment.equationFallback"] });
1291
1291
  if (equationNumber) {
1292
1292
  return /* @__PURE__ */ jsxRuntime.jsxs(
1293
1293
  "span",
@@ -1405,7 +1405,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1405
1405
  const segmentStyle = segment?.style ?? {};
1406
1406
  const textValue = run.text;
1407
1407
  const lines = textValue.split("\n");
1408
- const resolvedSegmentColor = chunkSEJEVNXW_js.normalizeHexColor(
1408
+ const resolvedSegmentColor = chunkAU5YFUUK_js.normalizeHexColor(
1409
1409
  segmentStyle.color || element.textStyle?.color,
1410
1410
  run.hyperlink ? HYPERLINK_COLOR : fallbackColor
1411
1411
  );
@@ -1413,16 +1413,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1413
1413
  const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
1414
1414
  const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
1415
1415
  const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
1416
- const baseFontSize = rawFontSize * chunkSEJEVNXW_js.resolveAutoFitFontScale(element.textStyle);
1416
+ const baseFontSize = rawFontSize * chunkAU5YFUUK_js.resolveAutoFitFontScale(element.textStyle);
1417
1417
  const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
1418
- const fontKerning = chunkSEJEVNXW_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1418
+ const fontKerning = chunkAU5YFUUK_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1419
1419
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1420
- const baseFontFamily = rawFontFamily ? chunkSEJEVNXW_js.getSubstituteFontFamily(
1420
+ const baseFontFamily = rawFontFamily ? chunkAU5YFUUK_js.getSubstituteFontFamily(
1421
1421
  rawFontFamily,
1422
- chunkSEJEVNXW_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1422
+ chunkAU5YFUUK_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1423
1423
  ) : DEFAULT_FONT_FAMILY2;
1424
- const scriptFonts = chunkSEJEVNXW_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1425
- const needsScriptFonts = chunkSEJEVNXW_js.hasDistinctScriptFonts(scriptFonts);
1424
+ const scriptFonts = chunkAU5YFUUK_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1425
+ const needsScriptFonts = chunkAU5YFUUK_js.hasDistinctScriptFonts(scriptFonts);
1426
1426
  const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
1427
1427
  const metricFont = {
1428
1428
  fontFamily: baseFontFamily,
@@ -1430,7 +1430,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1430
1430
  bold: Boolean(segmentStyle.bold),
1431
1431
  italic: Boolean(segmentStyle.italic)
1432
1432
  };
1433
- const nestedStyle = chunkSEJEVNXW_js.nestedTextDecorationStyle(run.style);
1433
+ const nestedStyle = chunkAU5YFUUK_js.nestedTextDecorationStyle(run.style);
1434
1434
  const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
1435
1435
  const spanStyle = { ...run.style };
1436
1436
  spanStyle.color = resolvedSegmentColor;
@@ -1438,11 +1438,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1438
1438
  spanStyle.fontFamily = baseFontFamily;
1439
1439
  spanStyle.verticalAlign = baselineShift;
1440
1440
  spanStyle.fontKerning = fontKerning;
1441
- spanStyle.letterSpacing = chunkSEJEVNXW_js.pieceLetterSpacing(
1441
+ spanStyle.letterSpacing = chunkAU5YFUUK_js.pieceLetterSpacing(
1442
1442
  authoredLetterSpacing,
1443
- chunkSEJEVNXW_js.resolveMetricTrackingPx(textValue, metricFont)
1443
+ chunkAU5YFUUK_js.resolveMetricTrackingPx(textValue, metricFont)
1444
1444
  );
1445
- const hollow = chunkSEJEVNXW_js.hollowTextFillStyle(segmentStyle, {
1445
+ const hollow = chunkAU5YFUUK_js.hollowTextFillStyle(segmentStyle, {
1446
1446
  color: resolvedSegmentColor,
1447
1447
  textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
1448
1448
  });
@@ -1463,7 +1463,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1463
1463
  scriptFonts,
1464
1464
  baseFontFamily,
1465
1465
  findHighlights,
1466
- chunkSEJEVNXW_js.buildTabContext(
1466
+ chunkAU5YFUUK_js.buildTabContext(
1467
1467
  element.textStyle?.tabStops,
1468
1468
  element.textStyle?.defaultTabSize,
1469
1469
  baseFontSize,
@@ -1489,7 +1489,7 @@ function renderRubyOrText(run, baseContent) {
1489
1489
  ] });
1490
1490
  }
1491
1491
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt) {
1492
- if (!chunkSEJEVNXW_js.hasTextProperties(element)) {
1492
+ if (!chunkAU5YFUUK_js.hasTextProperties(element)) {
1493
1493
  return emptyFallback || null;
1494
1494
  }
1495
1495
  const segments = segmentOverrides ?? element.textSegments;
@@ -1499,7 +1499,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
1499
1499
  }
1500
1500
  return element.text || emptyFallback || "";
1501
1501
  }
1502
- const paragraphs = chunkSEJEVNXW_js.buildParagraphs(element, fieldContext, segmentOverrides);
1502
+ const paragraphs = chunkAU5YFUUK_js.buildParagraphs(element, fieldContext, segmentOverrides);
1503
1503
  const ctx = {
1504
1504
  element,
1505
1505
  fallbackColor,
@@ -1621,13 +1621,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
1621
1621
  );
1622
1622
  }
1623
1623
  function getDuotoneColors(element) {
1624
- if (!chunkSEJEVNXW_js.isImageLikeElement(element)) {
1624
+ if (!chunkAU5YFUUK_js.isImageLikeElement(element)) {
1625
1625
  return void 0;
1626
1626
  }
1627
1627
  return element.imageEffects?.duotone;
1628
1628
  }
1629
1629
  function buildLineShadowCss(element) {
1630
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
1630
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
1631
1631
  return void 0;
1632
1632
  }
1633
1633
  const ss = element.shapeStyle;
@@ -1638,13 +1638,13 @@ function buildLineShadowCss(element) {
1638
1638
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
1639
1639
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
1640
1640
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
1641
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkSEJEVNXW_js.colorWithOpacity(
1642
- chunkSEJEVNXW_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1641
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkAU5YFUUK_js.colorWithOpacity(
1642
+ chunkAU5YFUUK_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1643
1643
  opacity
1644
1644
  )}`;
1645
1645
  }
1646
1646
  function buildLineGlowFilter(element) {
1647
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
1647
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
1648
1648
  return void 0;
1649
1649
  }
1650
1650
  const ss = element.shapeStyle;
@@ -1653,22 +1653,22 @@ function buildLineGlowFilter(element) {
1653
1653
  }
1654
1654
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
1655
1655
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
1656
- const glowCol = chunkSEJEVNXW_js.colorWithOpacity(chunkSEJEVNXW_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1656
+ const glowCol = chunkAU5YFUUK_js.colorWithOpacity(chunkAU5YFUUK_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1657
1657
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
1658
1658
  }
1659
1659
  function getDagDuotoneFilterId(elementId) {
1660
1660
  return `dag-duotone-${elementId}`;
1661
1661
  }
1662
1662
  function hasDagDuotoneEffect(element) {
1663
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
1663
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
1664
1664
  return false;
1665
1665
  }
1666
1666
  return Boolean(element.shapeStyle?.dagDuotone);
1667
1667
  }
1668
1668
  function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1669
1669
  const filterId = getDagDuotoneFilterId(elementId);
1670
- const c1 = chunkSEJEVNXW_js.hexToRgbUnit(color1);
1671
- const c2 = chunkSEJEVNXW_js.hexToRgbUnit(color2);
1670
+ const c1 = chunkAU5YFUUK_js.hexToRgbUnit(color1);
1671
+ const c2 = chunkAU5YFUUK_js.hexToRgbUnit(color2);
1672
1672
  const grayscaleMatrix = [
1673
1673
  0.2126,
1674
1674
  0.7152,
@@ -1712,7 +1712,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1712
1712
 
1713
1713
  // src/viewer/utils/shape-visual-3d.ts
1714
1714
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
1715
- return chunkSEJEVNXW_js.build3DExtrusionData(
1715
+ return chunkAU5YFUUK_js.build3DExtrusionData(
1716
1716
  shape3d,
1717
1717
  scene3d,
1718
1718
  fillColor,
@@ -1721,7 +1721,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
1721
1721
  );
1722
1722
  }
1723
1723
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
1724
- chunkSEJEVNXW_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
1724
+ chunkAU5YFUUK_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
1725
1725
  }
1726
1726
 
1727
1727
  // src/viewer/utils/shape-visual-style.ts
@@ -1729,16 +1729,16 @@ function rendersCustomVectorPath(element) {
1729
1729
  return (element.type === "shape" || element.type === "image" || element.type === "picture") && Boolean(element.pathData) && typeof element.pathWidth === "number" && element.pathWidth > 0 && typeof element.pathHeight === "number" && element.pathHeight > 0;
1730
1730
  }
1731
1731
  function rendersWedgeCalloutVector(element) {
1732
- return element.type === "shape" && chunkSEJEVNXW_js.isWedgeCalloutPresetShape(element.shapeType);
1732
+ return element.type === "shape" && chunkAU5YFUUK_js.isWedgeCalloutPresetShape(element.shapeType);
1733
1733
  }
1734
1734
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1735
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
1735
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
1736
1736
  return {};
1737
1737
  }
1738
1738
  const ss = element.shapeStyle;
1739
- const fill = animatesFill ? void 0 : chunkSEJEVNXW_js.getComputedFillStyle(element, parentGroupFill);
1740
- const fx = chunkSEJEVNXW_js.getComputedEffectStyle(element);
1741
- const stroke = chunkSEJEVNXW_js.getComputedStrokeStyle(element);
1739
+ const fill = animatesFill ? void 0 : chunkAU5YFUUK_js.getComputedFillStyle(element, parentGroupFill);
1740
+ const fx = chunkAU5YFUUK_js.getComputedEffectStyle(element);
1741
+ const stroke = chunkAU5YFUUK_js.getComputedStrokeStyle(element);
1742
1742
  const base = {
1743
1743
  // A gradient fill REPLACES the solid fill, it does not sit on top of it;
1744
1744
  // the whole precedence lives in shared's `getComputedFillStyle`.
@@ -1777,7 +1777,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1777
1777
  };
1778
1778
  Object.assign(
1779
1779
  base,
1780
- chunkSEJEVNXW_js.getAnimationColorBaseStyle(element, {
1780
+ chunkAU5YFUUK_js.getAnimationColorBaseStyle(element, {
1781
1781
  animatesFill,
1782
1782
  animatesStroke,
1783
1783
  parentGroupFill
@@ -1789,7 +1789,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1789
1789
  base.borderStyle = void 0;
1790
1790
  }
1791
1791
  apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
1792
- if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkSEJEVNXW_js.isStrokeOnlyPresetElement(element)) {
1792
+ if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkAU5YFUUK_js.isStrokeOnlyPresetElement(element)) {
1793
1793
  base.backgroundColor = "transparent";
1794
1794
  base.backgroundImage = void 0;
1795
1795
  base.borderWidth = void 0;
@@ -1803,7 +1803,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1803
1803
  if (rendersWedgeCalloutVector(element)) {
1804
1804
  return base;
1805
1805
  }
1806
- const geometry = chunkSEJEVNXW_js.resolveShapeGeometry(element);
1806
+ const geometry = chunkAU5YFUUK_js.resolveShapeGeometry(element);
1807
1807
  switch (geometry.kind) {
1808
1808
  case "bare":
1809
1809
  return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
@@ -1829,13 +1829,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1829
1829
  function getConnectorAdjustment(element, key, fallback) {
1830
1830
  const direct = element.shapeAdjustments?.[key];
1831
1831
  if (typeof direct === "number" && Number.isFinite(direct)) {
1832
- return chunkSEJEVNXW_js.clampUnitInterval(direct / 1e5);
1832
+ return chunkAU5YFUUK_js.clampUnitInterval(direct / 1e5);
1833
1833
  }
1834
1834
  const fallbackKey = element.shapeAdjustments?.adj;
1835
1835
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
1836
- return chunkSEJEVNXW_js.clampUnitInterval(fallbackKey / 1e5);
1836
+ return chunkAU5YFUUK_js.clampUnitInterval(fallbackKey / 1e5);
1837
1837
  }
1838
- return chunkSEJEVNXW_js.clampUnitInterval(fallback);
1838
+ return chunkAU5YFUUK_js.clampUnitInterval(fallback);
1839
1839
  }
1840
1840
  function getConnectorPathGeometry(element) {
1841
1841
  const width = Math.max(element.width, 0);
@@ -1972,11 +1972,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
1972
1972
  strokePaint,
1973
1973
  strokeWidth,
1974
1974
  dashArray,
1975
- lineCap: chunkSEJEVNXW_js.svgLineCap(shapeStyle?.lineCap),
1975
+ lineCap: chunkAU5YFUUK_js.svgLineCap(shapeStyle?.lineCap),
1976
1976
  lineJoin,
1977
1977
  miterLimit,
1978
- offsets: chunkSEJEVNXW_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1979
- widths: chunkSEJEVNXW_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1978
+ offsets: chunkAU5YFUUK_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1979
+ widths: chunkAU5YFUUK_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1980
1980
  };
1981
1981
  }
1982
1982
  function strokeStrands(d, keyBase, ctx) {
@@ -2024,12 +2024,12 @@ function gradientDefs(gradient) {
2024
2024
  }
2025
2025
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
2026
2026
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2027
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkSEJEVNXW_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2027
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkAU5YFUUK_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2028
2028
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2029
- const gradientPaint = gradient ? chunkSEJEVNXW_js.svgGradientFillRef(gradient) : void 0;
2029
+ const gradientPaint = gradient ? chunkAU5YFUUK_js.svgGradientFillRef(gradient) : void 0;
2030
2030
  const nodes = [];
2031
2031
  if (subpaths && needsPerSubpath) {
2032
- const paints = chunkSEJEVNXW_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
2032
+ const paints = chunkAU5YFUUK_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
2033
2033
  paints.forEach((paint, idx) => {
2034
2034
  if (paint.fill !== "none") {
2035
2035
  const mode = subpaths[idx]?.fillMode;
@@ -2058,7 +2058,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2058
2058
  "path",
2059
2059
  {
2060
2060
  d: pathData,
2061
- fill: animatesFill ? "inherit" : gradientPaint ?? chunkSEJEVNXW_js.colorWithOpacity(fillColor, fillOpacity),
2061
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunkAU5YFUUK_js.colorWithOpacity(fillColor, fillOpacity),
2062
2062
  stroke: "none",
2063
2063
  vectorEffect: "non-scaling-stroke"
2064
2064
  },
@@ -2101,14 +2101,14 @@ function renderGradientDefs(gradient) {
2101
2101
  ) });
2102
2102
  }
2103
2103
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2104
- if (!chunkSEJEVNXW_js.hasShapeProperties(element)) {
2104
+ if (!chunkAU5YFUUK_js.hasShapeProperties(element)) {
2105
2105
  return null;
2106
2106
  }
2107
2107
  const normalizedType = (element.shapeType || "").toLowerCase();
2108
- const fillPaint = animatesFill ? "inherit" : chunkSEJEVNXW_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2109
- const strokePaint = animatesStroke ? "inherit" : chunkSEJEVNXW_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2110
- const dashType = chunkSEJEVNXW_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2111
- const dashArray = chunkSEJEVNXW_js.getSvgStrokeDasharray(
2108
+ const fillPaint = animatesFill ? "inherit" : chunkAU5YFUUK_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2109
+ const strokePaint = animatesStroke ? "inherit" : chunkAU5YFUUK_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2110
+ const dashType = chunkAU5YFUUK_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2111
+ const dashArray = chunkAU5YFUUK_js.getSvgStrokeDasharray(
2112
2112
  dashType,
2113
2113
  Math.max(strokeWidth, 1),
2114
2114
  element.shapeStyle?.customDashSegments
@@ -2189,13 +2189,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2189
2189
  // container's `background-image` is suppressed for custom geometry, so
2190
2190
  // without this the shape fell back to the parser's representative solid
2191
2191
  // and lost every fade (issue #132).
2192
- chunkSEJEVNXW_js.buildSvgGradientDef(element.shapeStyle, element.id)
2192
+ chunkAU5YFUUK_js.buildSvgGradientDef(element.shapeStyle, element.id)
2193
2193
  );
2194
2194
  }
2195
- if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkSEJEVNXW_js.buildStrokeOutline(element)) {
2195
+ if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkAU5YFUUK_js.buildStrokeOutline(element)) {
2196
2196
  const width = Math.max(element.width, 1);
2197
2197
  const height = Math.max(element.height, 1);
2198
- const geometry = chunkSEJEVNXW_js.getPresetShapeVectorGeometry(
2198
+ const geometry = chunkAU5YFUUK_js.getPresetShapeVectorGeometry(
2199
2199
  element.shapeType || "rect",
2200
2200
  width,
2201
2201
  height,
@@ -2223,18 +2223,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2223
2223
  );
2224
2224
  }
2225
2225
  }
2226
- if (element.type === "shape" && chunkSEJEVNXW_js.isWedgeCalloutPresetShape(element.shapeType)) {
2226
+ if (element.type === "shape" && chunkAU5YFUUK_js.isWedgeCalloutPresetShape(element.shapeType)) {
2227
2227
  const width = Math.max(element.width, 1);
2228
2228
  const height = Math.max(element.height, 1);
2229
- const geometry = chunkSEJEVNXW_js.getPresetShapeVectorGeometry(
2229
+ const geometry = chunkAU5YFUUK_js.getPresetShapeVectorGeometry(
2230
2230
  element.shapeType,
2231
2231
  width,
2232
2232
  height,
2233
2233
  element.shapeAdjustments
2234
2234
  );
2235
2235
  if (geometry) {
2236
- const gradient = chunkSEJEVNXW_js.buildSvgGradientDef(element.shapeStyle, element.id);
2237
- const gradientPaint = gradient ? chunkSEJEVNXW_js.svgGradientFillRef(gradient) : void 0;
2236
+ const gradient = chunkAU5YFUUK_js.buildSvgGradientDef(element.shapeStyle, element.id);
2237
+ const gradientPaint = gradient ? chunkAU5YFUUK_js.svgGradientFillRef(gradient) : void 0;
2238
2238
  return /* @__PURE__ */ jsxRuntime.jsxs(
2239
2239
  "svg",
2240
2240
  {
@@ -2267,18 +2267,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2267
2267
  );
2268
2268
  }
2269
2269
  }
2270
- if (chunkSEJEVNXW_js.isCalloutShape(normalizedType)) {
2270
+ if (chunkAU5YFUUK_js.isCalloutShape(normalizedType)) {
2271
2271
  const width = Math.max(element.width, 1);
2272
2272
  const height = Math.max(element.height, 1);
2273
- const geometry = chunkSEJEVNXW_js.getCalloutLeaderLineGeometry(
2273
+ const geometry = chunkAU5YFUUK_js.getCalloutLeaderLineGeometry(
2274
2274
  normalizedType,
2275
2275
  width,
2276
2276
  height,
2277
2277
  element.shapeAdjustments
2278
2278
  );
2279
2279
  if (geometry && geometry.points.length >= 2) {
2280
- const leaderPath = chunkSEJEVNXW_js.buildCalloutLeaderLineSvgPath(geometry);
2281
- const bounds = chunkSEJEVNXW_js.getCalloutViewBoxBounds(width, height, geometry);
2280
+ const leaderPath = chunkAU5YFUUK_js.buildCalloutLeaderLineSvgPath(geometry);
2281
+ const bounds = chunkAU5YFUUK_js.getCalloutViewBoxBounds(width, height, geometry);
2282
2282
  const lineStroke = Math.max(strokeWidth, 1);
2283
2283
  const offsetLeft = bounds.minX;
2284
2284
  const offsetTop = bounds.minY;
@@ -2341,10 +2341,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2341
2341
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
2342
2342
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
2343
2343
  const compoundLine = element.shapeStyle?.compoundLine;
2344
- const connectorLineCap = chunkSEJEVNXW_js.svgLineCap(element.shapeStyle?.lineCap);
2344
+ const connectorLineCap = chunkAU5YFUUK_js.svgLineCap(element.shapeStyle?.lineCap);
2345
2345
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2346
- const offsets = chunkSEJEVNXW_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2347
- const widths = chunkSEJEVNXW_js.getCompoundLineWidths(compoundLine, strokeWidth);
2346
+ const offsets = chunkAU5YFUUK_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2347
+ const widths = chunkAU5YFUUK_js.getCompoundLineWidths(compoundLine, strokeWidth);
2348
2348
  return /* @__PURE__ */ jsxRuntime.jsxs(
2349
2349
  "svg",
2350
2350
  {
@@ -2411,15 +2411,15 @@ function parseGradientFillCss(gradFill) {
2411
2411
  }
2412
2412
  const rawStops = stops.map((gs) => {
2413
2413
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
2414
- const color = chunkSEJEVNXW_js.parseDrawingColor(gs) ?? "#888888";
2415
- const opacity = chunkSEJEVNXW_js.parseDrawingColorOpacity(gs);
2414
+ const color = chunkAU5YFUUK_js.parseDrawingColor(gs) ?? "#888888";
2415
+ const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(gs);
2416
2416
  return { position: pos, color, opacity };
2417
2417
  }).sort((a, b) => a.position - b.position);
2418
- const stopStrings = rawStops.map((s) => `${chunkSEJEVNXW_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2418
+ const stopStrings = rawStops.map((s) => `${chunkAU5YFUUK_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2419
2419
  const lin = gradFill["a:lin"];
2420
2420
  if (lin) {
2421
2421
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
2422
- const angleDeg = Math.round(chunkSEJEVNXW_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2422
+ const angleDeg = Math.round(chunkAU5YFUUK_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2423
2423
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
2424
2424
  }
2425
2425
  const path = gradFill["a:path"];
@@ -2433,7 +2433,7 @@ function parseGradientFillCss(gradFill) {
2433
2433
  b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
2434
2434
  } : void 0;
2435
2435
  if (pathType === "rect") {
2436
- return chunkSEJEVNXW_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2436
+ return chunkAU5YFUUK_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2437
2437
  }
2438
2438
  let cx = 50;
2439
2439
  let cy = 50;
@@ -2455,8 +2455,8 @@ function parsePatternFillCss(pattFill) {
2455
2455
  if (!pattFill) {
2456
2456
  return void 0;
2457
2457
  }
2458
- const fgColor = chunkSEJEVNXW_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2459
- const bgColor = chunkSEJEVNXW_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2458
+ const fgColor = chunkAU5YFUUK_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2459
+ const bgColor = chunkAU5YFUUK_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2460
2460
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
2461
2461
  switch (preset) {
2462
2462
  case "ltHorz":
@@ -2567,11 +2567,11 @@ function parseCellBorders(cellProperties) {
2567
2567
  const prstDash = ln["a:prstDash"];
2568
2568
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
2569
2569
  const cssBorderStyle = ooxmlDashToCss(dashVal);
2570
- const color = chunkSEJEVNXW_js.parseDrawingColor(ln["a:solidFill"]);
2570
+ const color = chunkAU5YFUUK_js.parseDrawingColor(ln["a:solidFill"]);
2571
2571
  if (color) {
2572
- const opacity = chunkSEJEVNXW_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2572
+ const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2573
2573
  const key = `${edge.prefix}`;
2574
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkSEJEVNXW_js.colorWithOpacity(color, opacity)}`;
2574
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkAU5YFUUK_js.colorWithOpacity(color, opacity)}`;
2575
2575
  }
2576
2576
  }
2577
2577
  return borderStyle;
@@ -2584,7 +2584,7 @@ function parseCellTextEffects(runProps) {
2584
2584
  const textShadowParts = [];
2585
2585
  const outerShdw = effectLst["a:outerShdw"];
2586
2586
  if (outerShdw) {
2587
- const shdwColor = chunkSEJEVNXW_js.parseDrawingColor(outerShdw);
2587
+ const shdwColor = chunkAU5YFUUK_js.parseDrawingColor(outerShdw);
2588
2588
  if (shdwColor) {
2589
2589
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
2590
2590
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -2602,7 +2602,7 @@ function parseCellTextEffects(runProps) {
2602
2602
  }
2603
2603
  const glow = effectLst["a:glow"];
2604
2604
  if (glow) {
2605
- const glowColor = chunkSEJEVNXW_js.parseDrawingColor(glow);
2605
+ const glowColor = chunkAU5YFUUK_js.parseDrawingColor(glow);
2606
2606
  if (glowColor) {
2607
2607
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
2608
2608
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -2682,10 +2682,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2682
2682
  if (runProps?.["@_u"] !== void 0) {
2683
2683
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
2684
2684
  }
2685
- const runColor = chunkSEJEVNXW_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkSEJEVNXW_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2685
+ const runColor = chunkAU5YFUUK_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkAU5YFUUK_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2686
2686
  if (runColor) {
2687
- const opacity = chunkSEJEVNXW_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2688
- cellStyle.color = chunkSEJEVNXW_js.colorWithOpacity(runColor, opacity);
2687
+ const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2688
+ cellStyle.color = chunkAU5YFUUK_js.colorWithOpacity(runColor, opacity);
2689
2689
  }
2690
2690
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
2691
2691
  if (fontFamily) {
@@ -2695,15 +2695,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2695
2695
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
2696
2696
  }
2697
2697
  const cellProperties = cellXml["a:tcPr"];
2698
- const cellFill = chunkSEJEVNXW_js.parseDrawingColor(
2698
+ const cellFill = chunkAU5YFUUK_js.parseDrawingColor(
2699
2699
  cellProperties?.["a:solidFill"],
2700
2700
  schemeColorOverrides
2701
2701
  );
2702
2702
  if (cellFill) {
2703
- const opacity = chunkSEJEVNXW_js.parseDrawingColorOpacity(
2703
+ const opacity = chunkAU5YFUUK_js.parseDrawingColorOpacity(
2704
2704
  cellProperties?.["a:solidFill"]
2705
2705
  );
2706
- cellStyle.backgroundColor = chunkSEJEVNXW_js.colorWithOpacity(cellFill, opacity);
2706
+ cellStyle.backgroundColor = chunkAU5YFUUK_js.colorWithOpacity(cellFill, opacity);
2707
2707
  } else {
2708
2708
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
2709
2709
  if (gradCss) {
@@ -2718,16 +2718,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2718
2718
  const edgeBorders = parseCellBorders(cellProperties);
2719
2719
  Object.assign(cellStyle, edgeBorders);
2720
2720
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
2721
- const borderColor = chunkSEJEVNXW_js.parseDrawingColor(
2721
+ const borderColor = chunkAU5YFUUK_js.parseDrawingColor(
2722
2722
  cellProperties?.["a:lnL"]?.["a:solidFill"],
2723
2723
  schemeColorOverrides
2724
- ) || chunkSEJEVNXW_js.parseDrawingColor(
2724
+ ) || chunkAU5YFUUK_js.parseDrawingColor(
2725
2725
  cellProperties?.["a:lnR"]?.["a:solidFill"],
2726
2726
  schemeColorOverrides
2727
- ) || chunkSEJEVNXW_js.parseDrawingColor(
2727
+ ) || chunkAU5YFUUK_js.parseDrawingColor(
2728
2728
  cellProperties?.["a:lnT"]?.["a:solidFill"],
2729
2729
  schemeColorOverrides
2730
- ) || chunkSEJEVNXW_js.parseDrawingColor(
2730
+ ) || chunkAU5YFUUK_js.parseDrawingColor(
2731
2731
  cellProperties?.["a:lnB"]?.["a:solidFill"],
2732
2732
  schemeColorOverrides
2733
2733
  );
@@ -2799,7 +2799,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
2799
2799
  if (element.type !== "table") {
2800
2800
  return void 0;
2801
2801
  }
2802
- return chunkSEJEVNXW_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2802
+ return chunkAU5YFUUK_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2803
2803
  tableStyleMap: styleCtx?.tableStyleMap,
2804
2804
  colorScheme: styleCtx?.theme?.colorScheme,
2805
2805
  fontScheme: styleCtx?.theme?.fontScheme
@@ -2875,7 +2875,7 @@ function renderTableCellContent(cell, fallbackText) {
2875
2875
  return /* @__PURE__ */ jsxRuntime.jsx(
2876
2876
  "span",
2877
2877
  {
2878
- style: { position: "relative", ...chunkSEJEVNXW_js.cellRunStyle(run) },
2878
+ style: { position: "relative", ...chunkAU5YFUUK_js.cellRunStyle(run) },
2879
2879
  children: run.text
2880
2880
  },
2881
2881
  `r-${index}`
@@ -2883,7 +2883,7 @@ function renderTableCellContent(cell, fallbackText) {
2883
2883
  });
2884
2884
  }
2885
2885
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
2886
- return chunkSEJEVNXW_js.getCellDiagonalBorders(style, tableData, pos, {
2886
+ return chunkAU5YFUUK_js.getCellDiagonalBorders(style, tableData, pos, {
2887
2887
  tableStyleMap: styleCtx?.tableStyleMap,
2888
2888
  colorScheme: styleCtx?.theme?.colorScheme,
2889
2889
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3016,7 +3016,7 @@ function TableResizeOverlay({
3016
3016
  const containerRef = React6.useRef(null);
3017
3017
  const [rowBounds, setRowBounds] = React6.useState([]);
3018
3018
  const dragRef = React6.useRef(null);
3019
- const colBoundaries = React6.useMemo(() => chunkSEJEVNXW_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3019
+ const colBoundaries = React6.useMemo(() => chunkAU5YFUUK_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3020
3020
  const measureRows = React6.useCallback(() => {
3021
3021
  const container = containerRef.current;
3022
3022
  if (!container) {
@@ -3063,11 +3063,11 @@ function TableResizeOverlay({
3063
3063
  const rect = containerRef.current.getBoundingClientRect();
3064
3064
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
3065
3065
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
3066
- onResizeColumns(chunkSEJEVNXW_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3066
+ onResizeColumns(chunkAU5YFUUK_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3067
3067
  } else if (drag.type === "row" && onResizeRow) {
3068
3068
  const deltaY = e.clientY - drag.startPos;
3069
- const newHeight = chunkSEJEVNXW_js.computeResizedRowHeight(
3070
- drag.initialRowHeight ?? chunkSEJEVNXW_js.DEFAULT_ROW_HEIGHT,
3069
+ const newHeight = chunkAU5YFUUK_js.computeResizedRowHeight(
3070
+ drag.initialRowHeight ?? chunkAU5YFUUK_js.DEFAULT_ROW_HEIGHT,
3071
3071
  deltaY
3072
3072
  );
3073
3073
  onResizeRow(drag.index, newHeight);
@@ -3105,7 +3105,7 @@ function TableResizeOverlay({
3105
3105
  e.stopPropagation();
3106
3106
  const table = containerRef.current?.querySelector("table");
3107
3107
  const tr = table?.querySelectorAll("tbody > tr")[index];
3108
- const actualHeight = tr?.offsetHeight ?? chunkSEJEVNXW_js.DEFAULT_ROW_HEIGHT;
3108
+ const actualHeight = tr?.offsetHeight ?? chunkAU5YFUUK_js.DEFAULT_ROW_HEIGHT;
3109
3109
  document.body.style.cursor = "row-resize";
3110
3110
  document.body.style.userSelect = "none";
3111
3111
  dragRef.current = {
@@ -3152,7 +3152,7 @@ function renderTableFromTableData(element, textStyle, options) {
3152
3152
  colorScheme: options?.styleCtx?.theme?.colorScheme,
3153
3153
  fontScheme: options?.styleCtx?.theme?.fontScheme
3154
3154
  };
3155
- const cellCss = (cell, rowIndex, cellIndex) => chunkSEJEVNXW_js.tableCellCss(
3155
+ const cellCss = (cell, rowIndex, cellIndex) => chunkAU5YFUUK_js.tableCellCss(
3156
3156
  tableData,
3157
3157
  cell,
3158
3158
  { rowIndex, cellIndex, rowCount, columnCount },
@@ -3165,7 +3165,7 @@ function renderTableFromTableData(element, textStyle, options) {
3165
3165
  }
3166
3166
  const first = selectedCell.selectedCells[0];
3167
3167
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3168
- return chunkSEJEVNXW_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3168
+ return chunkAU5YFUUK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3169
3169
  })();
3170
3170
  return /* @__PURE__ */ jsxRuntime.jsx(
3171
3171
  TableResizeOverlay,
@@ -3186,9 +3186,9 @@ function renderTableFromTableData(element, textStyle, options) {
3186
3186
  {
3187
3187
  className: "w-full h-full border-collapse table-fixed",
3188
3188
  style: {
3189
- fontFamily: chunkSEJEVNXW_js.DEFAULT_FONT_FAMILY,
3189
+ fontFamily: chunkAU5YFUUK_js.DEFAULT_FONT_FAMILY,
3190
3190
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3191
- ...chunkSEJEVNXW_js.tableContainerCss(tableData)
3191
+ ...chunkAU5YFUUK_js.tableContainerCss(tableData)
3192
3192
  },
3193
3193
  children: [
3194
3194
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3207,7 +3207,7 @@ function renderTableFromTableData(element, textStyle, options) {
3207
3207
  return null;
3208
3208
  }
3209
3209
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
3210
- const isInMultiSelection = chunkSEJEVNXW_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3210
+ const isInMultiSelection = chunkAU5YFUUK_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3211
3211
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
3212
3212
  const diag = getCellDiagonalBorders2(
3213
3213
  cell.style,
@@ -3236,7 +3236,7 @@ function renderTableFromTableData(element, textStyle, options) {
3236
3236
  }
3237
3237
  event.stopPropagation();
3238
3238
  if (event.shiftKey && selectedCell) {
3239
- const rect = chunkSEJEVNXW_js.computeSelectionRect(
3239
+ const rect = chunkAU5YFUUK_js.computeSelectionRect(
3240
3240
  selectedCell.rowIndex,
3241
3241
  selectedCell.columnIndex,
3242
3242
  rowIndex,
@@ -3246,7 +3246,7 @@ function renderTableFromTableData(element, textStyle, options) {
3246
3246
  options?.onSelectCell?.({
3247
3247
  rowIndex: selectedCell.rowIndex,
3248
3248
  columnIndex: selectedCell.columnIndex,
3249
- selectedCells: chunkSEJEVNXW_js.rectToCells(rect)
3249
+ selectedCells: chunkAU5YFUUK_js.rectToCells(rect)
3250
3250
  });
3251
3251
  } else {
3252
3252
  options?.onSelectCell?.({
@@ -3307,7 +3307,7 @@ function renderTableElement(element, textStyle, options) {
3307
3307
  if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
3308
3308
  return renderTableFromTableData(tableEl2, textStyle, options);
3309
3309
  }
3310
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUNIJUD5C_js.translationsEn["pptx.table.title"] });
3310
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.table.title"] });
3311
3311
  }
3312
3312
  const selectedCell = options?.selectedCell || null;
3313
3313
  const isEditable = Boolean(options?.editable);
@@ -3322,7 +3322,7 @@ function renderTableElement(element, textStyle, options) {
3322
3322
  }
3323
3323
  const first = selectedCell.selectedCells[0];
3324
3324
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3325
- return chunkSEJEVNXW_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3325
+ return chunkAU5YFUUK_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3326
3326
  })();
3327
3327
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
3328
3328
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3344,9 +3344,9 @@ function renderTableElement(element, textStyle, options) {
3344
3344
  {
3345
3345
  className: "w-full h-full border-collapse table-fixed",
3346
3346
  style: {
3347
- fontFamily: chunkSEJEVNXW_js.DEFAULT_FONT_FAMILY,
3347
+ fontFamily: chunkAU5YFUUK_js.DEFAULT_FONT_FAMILY,
3348
3348
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3349
- ...chunkSEJEVNXW_js.tableContainerCss(tableEl.tableData)
3349
+ ...chunkAU5YFUUK_js.tableContainerCss(tableEl.tableData)
3350
3350
  },
3351
3351
  children: [
3352
3352
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3403,7 +3403,7 @@ function renderTableElement(element, textStyle, options) {
3403
3403
  color: textStyle.color,
3404
3404
  ...bandStyle,
3405
3405
  ...xmlCellStyle,
3406
- ...tdCellOverride ? chunkSEJEVNXW_js.cellStyleToCss(tdCellOverride) : void 0,
3406
+ ...tdCellOverride ? chunkAU5YFUUK_js.cellStyleToCss(tdCellOverride) : void 0,
3407
3407
  ...diag ? { position: "relative" } : void 0
3408
3408
  };
3409
3409
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3413,7 +3413,7 @@ function renderTableElement(element, textStyle, options) {
3413
3413
  "border px-1 py-0.5 align-top",
3414
3414
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
3415
3415
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
3416
- chunkSEJEVNXW_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3416
+ chunkAU5YFUUK_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3417
3417
  ),
3418
3418
  colSpan,
3419
3419
  rowSpan: rSpan,
@@ -3424,7 +3424,7 @@ function renderTableElement(element, textStyle, options) {
3424
3424
  }
3425
3425
  event.stopPropagation();
3426
3426
  if (event.shiftKey && selectedCell && tableEl.tableData) {
3427
- const rect = chunkSEJEVNXW_js.computeSelectionRect(
3427
+ const rect = chunkAU5YFUUK_js.computeSelectionRect(
3428
3428
  selectedCell.rowIndex,
3429
3429
  selectedCell.columnIndex,
3430
3430
  rowIndex,
@@ -3434,7 +3434,7 @@ function renderTableElement(element, textStyle, options) {
3434
3434
  options?.onSelectCell?.({
3435
3435
  rowIndex: selectedCell.rowIndex,
3436
3436
  columnIndex: selectedCell.columnIndex,
3437
- selectedCells: chunkSEJEVNXW_js.rectToCells(rect)
3437
+ selectedCells: chunkAU5YFUUK_js.rectToCells(rect)
3438
3438
  });
3439
3439
  } else {
3440
3440
  options?.onSelectCell?.({
@@ -3493,23 +3493,23 @@ function renderTableElement(element, textStyle, options) {
3493
3493
  );
3494
3494
  }
3495
3495
  function partAttrs(part) {
3496
- return part ? chunkSEJEVNXW_js.chartPartToAttrs(part) : void 0;
3496
+ return part ? chunkAU5YFUUK_js.chartPartToAttrs(part) : void 0;
3497
3497
  }
3498
3498
  function resolveReactPalette(chartData) {
3499
3499
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
3500
3500
  return chartData.colorPalette;
3501
3501
  }
3502
- return [...chunkSEJEVNXW_js.getChartStylePalette(chartData.style?.styleId)];
3502
+ return [...chunkAU5YFUUK_js.getChartStylePalette(chartData.style?.styleId)];
3503
3503
  }
3504
3504
  function buildReactChartViewModel(element) {
3505
3505
  if (element.type !== "chart" || !element.chartData) {
3506
- return chunkSEJEVNXW_js.buildChartViewModel(element);
3506
+ return chunkAU5YFUUK_js.buildChartViewModel(element);
3507
3507
  }
3508
3508
  const palette = resolveReactPalette(element.chartData), themedElement = {
3509
3509
  ...element,
3510
3510
  chartData: { ...element.chartData, colorPalette: palette }
3511
3511
  };
3512
- return chunkSEJEVNXW_js.buildChartViewModel(themedElement);
3512
+ return chunkAU5YFUUK_js.buildChartViewModel(themedElement);
3513
3513
  }
3514
3514
  function renderPrimitive(prim, key) {
3515
3515
  switch (prim.kind) {
@@ -3658,7 +3658,7 @@ function renderText(t, key) {
3658
3658
  );
3659
3659
  }
3660
3660
  function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3661
- const legendItems = chunkSEJEVNXW_js.computeChartLegendLayout(vm);
3661
+ const legendItems = chunkAU5YFUUK_js.computeChartLegendLayout(vm);
3662
3662
  return /* @__PURE__ */ jsxRuntime.jsxs(
3663
3663
  "svg",
3664
3664
  {
@@ -3751,17 +3751,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3751
3751
  }
3752
3752
  function renderChartElement(element) {
3753
3753
  if (element.type !== "chart") {
3754
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUNIJUD5C_js.translationsEn["pptx.chart.heading"] });
3754
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.chart.heading"] });
3755
3755
  }
3756
3756
  const chartData = element.chartData;
3757
3757
  if (!chartData || chartData.series.length === 0) {
3758
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUNIJUD5C_js.translationsEn["pptx.chart.heading"] });
3758
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkUTIMT5CZ_js.translationsEn["pptx.chart.heading"] });
3759
3759
  }
3760
- const kind = chunkSEJEVNXW_js.resolveChartKind(chartData.chartType ?? "bar");
3760
+ const kind = chunkAU5YFUUK_js.resolveChartKind(chartData.chartType ?? "bar");
3761
3761
  return renderChartViewModel(
3762
3762
  element.id,
3763
3763
  buildReactChartViewModel(element),
3764
- chunkSEJEVNXW_js.chartPreserveAspectRatio(kind)
3764
+ chunkAU5YFUUK_js.chartPreserveAspectRatio(kind)
3765
3765
  );
3766
3766
  }
3767
3767
 
@@ -3781,14 +3781,14 @@ function buildNotesPdf(pages) {
3781
3781
  notes: page.notes,
3782
3782
  slideNumber: page.slideNumber
3783
3783
  }));
3784
- const bytes = chunkSEJEVNXW_js.buildNotesPdfBytes(images, meta);
3784
+ const bytes = chunkAU5YFUUK_js.buildNotesPdfBytes(images, meta);
3785
3785
  const blob = new Blob([bytes], { type: "application/pdf" });
3786
3786
  return URL.createObjectURL(blob);
3787
3787
  }
3788
3788
 
3789
3789
  // src/viewer/utils/pdf-builder-slides.ts
3790
3790
  function buildPdfFromImageData(images) {
3791
- const bytes = chunkSEJEVNXW_js.buildSlidesPdfBytes(images);
3791
+ const bytes = chunkAU5YFUUK_js.buildSlidesPdfBytes(images);
3792
3792
  const blob = new Blob([bytes], { type: "application/pdf" });
3793
3793
  return URL.createObjectURL(blob);
3794
3794
  }
@@ -3797,7 +3797,7 @@ function buildPdfFromImageData(images) {
3797
3797
  var activePreview = null;
3798
3798
  function startPreviewAnimation(elementId, preset, options) {
3799
3799
  stopPreviewAnimation();
3800
- const descriptor = chunkSEJEVNXW_js.buildPreviewAnimation(preset, options);
3800
+ const descriptor = chunkAU5YFUUK_js.buildPreviewAnimation(preset, options);
3801
3801
  if (!descriptor) {
3802
3802
  return;
3803
3803
  }
@@ -3810,7 +3810,7 @@ function startMotionPathPreview(elementId, path, options) {
3810
3810
  return;
3811
3811
  }
3812
3812
  const stage = domEl.offsetParent;
3813
- const descriptor = chunkSEJEVNXW_js.buildMotionPathPreview({
3813
+ const descriptor = chunkAU5YFUUK_js.buildMotionPathPreview({
3814
3814
  path,
3815
3815
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
3816
3816
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,