pptx-react-viewer 3.9.0 → 3.11.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 (163) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/{AiChatPanel-3A42W7RW.js → AiChatPanel-A3ZMMVUA.js} +25 -25
  3. package/dist/AiChatPanel-A3ZMMVUA.js.br +0 -0
  4. package/dist/AiChatPanel-A3ZMMVUA.js.gz +0 -0
  5. package/dist/{AiChatPanel-II6VOOAL.mjs → AiChatPanel-L5H455NZ.mjs} +4 -4
  6. package/dist/AiChatPanel-L5H455NZ.mjs.br +0 -0
  7. package/dist/AiChatPanel-L5H455NZ.mjs.gz +0 -0
  8. package/dist/{Area3DChartScene-JM3CQ3WQ.mjs → Area3DChartScene-OAD36KIX.mjs} +1 -1
  9. package/dist/{Area3DChartScene-JM3CQ3WQ.mjs.br → Area3DChartScene-OAD36KIX.mjs.br} +0 -0
  10. package/dist/Area3DChartScene-OAD36KIX.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-XJK4ZA4R.js → Area3DChartScene-R2CKCYCB.js} +2 -2
  12. package/dist/{Area3DChartScene-XJK4ZA4R.js.br → Area3DChartScene-R2CKCYCB.js.br} +0 -0
  13. package/dist/Area3DChartScene-R2CKCYCB.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-RGRZY5P6.js → Bar3DChartScene-CRRPMXGQ.js} +2 -2
  15. package/dist/Bar3DChartScene-CRRPMXGQ.js.br +0 -0
  16. package/dist/Bar3DChartScene-CRRPMXGQ.js.gz +0 -0
  17. package/dist/{Bar3DChartScene-VNFWI2QG.mjs → Bar3DChartScene-XNNXF26T.mjs} +1 -1
  18. package/dist/{Bar3DChartScene-VNFWI2QG.mjs.br → Bar3DChartScene-XNNXF26T.mjs.br} +0 -0
  19. package/dist/Bar3DChartScene-XNNXF26T.mjs.gz +0 -0
  20. package/dist/{Line3DChartScene-MEY42DBF.js → Line3DChartScene-44PLZML2.js} +2 -2
  21. package/dist/Line3DChartScene-44PLZML2.js.br +0 -0
  22. package/dist/Line3DChartScene-44PLZML2.js.gz +0 -0
  23. package/dist/{Line3DChartScene-GXOWGIFJ.mjs → Line3DChartScene-MNNPB3LZ.mjs} +1 -1
  24. package/dist/{Line3DChartScene-GXOWGIFJ.mjs.br → Line3DChartScene-MNNPB3LZ.mjs.br} +0 -0
  25. package/dist/Line3DChartScene-MNNPB3LZ.mjs.gz +0 -0
  26. package/dist/{Model3DScene-WJ3MMIZH.mjs → Model3DScene-5MUREFLY.mjs} +1 -1
  27. package/dist/Model3DScene-5MUREFLY.mjs.br +0 -0
  28. package/dist/Model3DScene-5MUREFLY.mjs.gz +0 -0
  29. package/dist/{Model3DScene-MWXTGHDM.js → Model3DScene-RYPYQPJH.js} +2 -2
  30. package/dist/Model3DScene-RYPYQPJH.js.br +0 -0
  31. package/dist/Model3DScene-RYPYQPJH.js.gz +0 -0
  32. package/dist/{PieChart3DScene-FJJGOQIS.js → PieChart3DScene-GACYCSSQ.js} +2 -2
  33. package/dist/{PieChart3DScene-FJJGOQIS.js.br → PieChart3DScene-GACYCSSQ.js.br} +0 -0
  34. package/dist/PieChart3DScene-GACYCSSQ.js.gz +0 -0
  35. package/dist/{PieChart3DScene-WXJEDYMK.mjs → PieChart3DScene-KYZSSG5X.mjs} +1 -1
  36. package/dist/PieChart3DScene-KYZSSG5X.mjs.br +0 -0
  37. package/dist/PieChart3DScene-KYZSSG5X.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-VDK3F224.js → SurfaceChart3DScene-RI5G4BHS.js} +2 -2
  39. package/dist/{SurfaceChart3DScene-VDK3F224.js.br → SurfaceChart3DScene-RI5G4BHS.js.br} +0 -0
  40. package/dist/SurfaceChart3DScene-RI5G4BHS.js.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-IKPE2SVE.mjs → SurfaceChart3DScene-ZUP4PRUZ.mjs} +1 -1
  42. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.br +0 -0
  43. package/dist/SurfaceChart3DScene-ZUP4PRUZ.mjs.gz +0 -0
  44. package/dist/{chunk-3NIJ5HIZ.js → chunk-4PL3GBSD.js} +1818 -1279
  45. package/dist/chunk-4PL3GBSD.js.br +0 -0
  46. package/dist/chunk-4PL3GBSD.js.gz +0 -0
  47. package/dist/{chunk-NTWFXLZX.mjs → chunk-5T4Y4QPV.mjs} +2 -2
  48. package/dist/chunk-5T4Y4QPV.mjs.br +0 -0
  49. package/dist/chunk-5T4Y4QPV.mjs.gz +0 -0
  50. package/dist/{chunk-VQX7G75Z.mjs → chunk-6BNPHEEX.mjs} +70521 -52117
  51. package/dist/chunk-6BNPHEEX.mjs.br +0 -0
  52. package/dist/chunk-6BNPHEEX.mjs.gz +0 -0
  53. package/dist/{chunk-K6Q6KLA6.js → chunk-BX4XVY5X.js} +6168 -1929
  54. package/dist/chunk-BX4XVY5X.js.br +0 -0
  55. package/dist/chunk-BX4XVY5X.js.gz +0 -0
  56. package/dist/{chunk-LBJAVP3H.js → chunk-IK25LY4C.js} +176 -176
  57. package/dist/chunk-IK25LY4C.js.br +0 -0
  58. package/dist/chunk-IK25LY4C.js.gz +0 -0
  59. package/dist/{chunk-G3JPCRKN.js → chunk-LY5535CF.js} +70559 -52147
  60. package/dist/chunk-LY5535CF.js.br +0 -0
  61. package/dist/chunk-LY5535CF.js.gz +0 -0
  62. package/dist/{chunk-5CPGDXD6.js → chunk-MRBHJ26I.js} +457 -445
  63. package/dist/chunk-MRBHJ26I.js.br +0 -0
  64. package/dist/chunk-MRBHJ26I.js.gz +0 -0
  65. package/dist/{chunk-76Z3X6JX.mjs → chunk-N75WRHON.mjs} +599 -60
  66. package/dist/chunk-N75WRHON.mjs.br +0 -0
  67. package/dist/chunk-N75WRHON.mjs.gz +0 -0
  68. package/dist/{chunk-3Y63XPIN.mjs → chunk-SUEZMQRT.mjs} +6164 -1925
  69. package/dist/chunk-SUEZMQRT.mjs.br +0 -0
  70. package/dist/chunk-SUEZMQRT.mjs.gz +0 -0
  71. package/dist/{chunk-JBSAKP4Z.mjs → chunk-TAGG5YNA.mjs} +61 -1
  72. package/dist/chunk-TAGG5YNA.mjs.br +0 -0
  73. package/dist/chunk-TAGG5YNA.mjs.gz +0 -0
  74. package/dist/{chunk-PCCM7NVY.mjs → chunk-VHFPZBUW.mjs} +21 -10
  75. package/dist/chunk-VHFPZBUW.mjs.br +0 -0
  76. package/dist/chunk-VHFPZBUW.mjs.gz +0 -0
  77. package/dist/{chunk-TEVGDXVW.js → chunk-Y6GG2OOW.js} +61 -1
  78. package/dist/chunk-Y6GG2OOW.js.br +0 -0
  79. package/dist/chunk-Y6GG2OOW.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-CGKutKk1.d.ts.map +1 -1
  87. package/dist/index.d.ts +241 -19
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +47 -47
  90. package/dist/index.js.br +0 -0
  91. package/dist/index.js.gz +0 -0
  92. package/dist/index.mjs +6 -6
  93. package/dist/index.mjs.br +0 -0
  94. package/dist/index.mjs.gz +0 -0
  95. package/dist/internals.d.ts +230 -10
  96. package/dist/internals.d.ts.map +1 -1
  97. package/dist/internals.js +79 -79
  98. package/dist/internals.js.br +0 -0
  99. package/dist/internals.js.gz +0 -0
  100. package/dist/internals.mjs +4 -4
  101. package/dist/internals.mjs.br +0 -0
  102. package/dist/internals.mjs.gz +0 -0
  103. package/dist/pptx-viewer.css +1 -1
  104. package/dist/pptx-viewer.css.br +0 -0
  105. package/dist/pptx-viewer.css.gz +0 -0
  106. package/dist/{useViewerBuildingBlocks-C8F_4Pzb.d.ts → useViewerBuildingBlocks-FbK-4ORi.d.ts} +2 -1
  107. package/dist/useViewerBuildingBlocks-FbK-4ORi.d.ts.map +1 -0
  108. package/dist/viewer/index.d.ts +220 -5
  109. package/dist/viewer/index.d.ts.map +1 -1
  110. package/dist/viewer/index.js +27 -27
  111. package/dist/viewer/index.js.br +0 -0
  112. package/dist/viewer/index.js.gz +0 -0
  113. package/dist/viewer/index.mjs +6 -6
  114. package/dist/viewer/index.mjs.br +0 -0
  115. package/dist/viewer/index.mjs.gz +0 -0
  116. package/package.json +9 -9
  117. package/dist/AiChatPanel-3A42W7RW.js.br +0 -0
  118. package/dist/AiChatPanel-3A42W7RW.js.gz +0 -0
  119. package/dist/AiChatPanel-II6VOOAL.mjs.br +0 -0
  120. package/dist/AiChatPanel-II6VOOAL.mjs.gz +0 -0
  121. package/dist/Area3DChartScene-JM3CQ3WQ.mjs.gz +0 -0
  122. package/dist/Area3DChartScene-XJK4ZA4R.js.gz +0 -0
  123. package/dist/Bar3DChartScene-RGRZY5P6.js.br +0 -0
  124. package/dist/Bar3DChartScene-RGRZY5P6.js.gz +0 -0
  125. package/dist/Bar3DChartScene-VNFWI2QG.mjs.gz +0 -0
  126. package/dist/Line3DChartScene-GXOWGIFJ.mjs.gz +0 -0
  127. package/dist/Line3DChartScene-MEY42DBF.js.br +0 -0
  128. package/dist/Line3DChartScene-MEY42DBF.js.gz +0 -0
  129. package/dist/Model3DScene-MWXTGHDM.js.br +0 -0
  130. package/dist/Model3DScene-MWXTGHDM.js.gz +0 -0
  131. package/dist/Model3DScene-WJ3MMIZH.mjs.br +0 -0
  132. package/dist/Model3DScene-WJ3MMIZH.mjs.gz +0 -0
  133. package/dist/PieChart3DScene-FJJGOQIS.js.gz +0 -0
  134. package/dist/PieChart3DScene-WXJEDYMK.mjs.br +0 -0
  135. package/dist/PieChart3DScene-WXJEDYMK.mjs.gz +0 -0
  136. package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.br +0 -0
  137. package/dist/SurfaceChart3DScene-IKPE2SVE.mjs.gz +0 -0
  138. package/dist/SurfaceChart3DScene-VDK3F224.js.gz +0 -0
  139. package/dist/chunk-3NIJ5HIZ.js.br +0 -0
  140. package/dist/chunk-3NIJ5HIZ.js.gz +0 -0
  141. package/dist/chunk-3Y63XPIN.mjs.br +0 -0
  142. package/dist/chunk-3Y63XPIN.mjs.gz +0 -0
  143. package/dist/chunk-5CPGDXD6.js.br +0 -0
  144. package/dist/chunk-5CPGDXD6.js.gz +0 -0
  145. package/dist/chunk-76Z3X6JX.mjs.br +0 -0
  146. package/dist/chunk-76Z3X6JX.mjs.gz +0 -0
  147. package/dist/chunk-G3JPCRKN.js.br +0 -0
  148. package/dist/chunk-G3JPCRKN.js.gz +0 -0
  149. package/dist/chunk-JBSAKP4Z.mjs.br +0 -0
  150. package/dist/chunk-JBSAKP4Z.mjs.gz +0 -0
  151. package/dist/chunk-K6Q6KLA6.js.br +0 -0
  152. package/dist/chunk-K6Q6KLA6.js.gz +0 -0
  153. package/dist/chunk-LBJAVP3H.js.br +0 -0
  154. package/dist/chunk-LBJAVP3H.js.gz +0 -0
  155. package/dist/chunk-NTWFXLZX.mjs.br +0 -0
  156. package/dist/chunk-NTWFXLZX.mjs.gz +0 -0
  157. package/dist/chunk-PCCM7NVY.mjs.br +0 -0
  158. package/dist/chunk-PCCM7NVY.mjs.gz +0 -0
  159. package/dist/chunk-TEVGDXVW.js.br +0 -0
  160. package/dist/chunk-TEVGDXVW.js.gz +0 -0
  161. package/dist/chunk-VQX7G75Z.mjs.br +0 -0
  162. package/dist/chunk-VQX7G75Z.mjs.gz +0 -0
  163. package/dist/useViewerBuildingBlocks-C8F_4Pzb.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkG3JPCRKN_js = require('./chunk-G3JPCRKN.js');
4
- var chunkTEVGDXVW_js = require('./chunk-TEVGDXVW.js');
3
+ var chunkLY5535CF_js = require('./chunk-LY5535CF.js');
4
+ var chunkY6GG2OOW_js = require('./chunk-Y6GG2OOW.js');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var React7 = require('react');
@@ -15,7 +15,7 @@ var React7__default = /*#__PURE__*/_interopDefault(React7);
15
15
 
16
16
  // src/viewer/utils/animation-effects.ts
17
17
  function getAnimationInitialStyle2(preset, nativeAnimation) {
18
- return chunkG3JPCRKN_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkLY5535CF_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 chunkG3JPCRKN_js.cloneHistorySnapshot(snapshot);
26
+ return chunkLY5535CF_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 = chunkG3JPCRKN_js.VIEWER_SHORTCUT_REFERENCE;
64
+ var SHORTCUT_REFERENCE_ITEMS = chunkLY5535CF_js.VIEWER_SHORTCUT_REFERENCE;
65
65
 
66
66
  // src/viewer/constants/transitions-animations.ts
67
67
  var ANIMATION_PRESET_OPTIONS = [
@@ -89,7 +89,7 @@ var GLYPH_COMPONENTS = {
89
89
  plus: lu.LuPlus,
90
90
  triangle: lu.LuTriangle
91
91
  };
92
- var SHAPE_PRESETS = chunkG3JPCRKN_js.SHAPE_PRESET_DEFS.map(
92
+ var SHAPE_PRESETS = chunkLY5535CF_js.SHAPE_PRESET_DEFS.map(
93
93
  (def) => ({
94
94
  type: def.type,
95
95
  label: def.label,
@@ -114,7 +114,7 @@ var ARROW_SIZE_OPTIONS = [
114
114
  { value: "med", label: "Medium", i18nKey: "pptx.connectorOptions.sizeMedium" },
115
115
  { value: "lg", label: "Large", i18nKey: "pptx.connectorOptions.sizeLarge" }
116
116
  ];
117
- var STROKE_DASH_OPTIONS2 = chunkG3JPCRKN_js.STROKE_DASH_OPTIONS;
117
+ var STROKE_DASH_OPTIONS2 = chunkLY5535CF_js.STROKE_DASH_OPTIONS;
118
118
 
119
119
  // src/viewer/utils/shape-types.tsx
120
120
  function getShapeType(shapeType) {
@@ -223,7 +223,7 @@ function isConnectorOrLineElement(element) {
223
223
  if (element.type === "connector") {
224
224
  return true;
225
225
  }
226
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
226
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
227
227
  return false;
228
228
  }
229
229
  const st = getShapeType(element.shapeType);
@@ -232,17 +232,17 @@ function isConnectorOrLineElement(element) {
232
232
 
233
233
  // src/viewer/utils/image-style.ts
234
234
  function getImageMaskStyle(element) {
235
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
235
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
236
236
  return void 0;
237
237
  }
238
- const geometry = chunkG3JPCRKN_js.resolveShapeGeometry(element);
238
+ const geometry = chunkLY5535CF_js.resolveShapeGeometry(element);
239
239
  if (geometry.kind === "borderRadius") {
240
240
  return { borderRadius: geometry.radius };
241
241
  }
242
242
  return geometry.kind === "clipPath" ? { clipPath: geometry.clipPath } : void 0;
243
243
  }
244
244
  function getImageRenderStyle(element) {
245
- const fit = chunkG3JPCRKN_js.getImageFitStyle(element);
245
+ const fit = chunkLY5535CF_js.getImageFitStyle(element);
246
246
  return {
247
247
  // A translated/scaled crop must be masked by its stationary wrapper, not
248
248
  // by the moving bitmap itself.
@@ -259,7 +259,7 @@ function getImageSurfaceMaskStyle(element) {
259
259
  };
260
260
  }
261
261
  function getImageSurfaceStyle(element) {
262
- const fill = chunkG3JPCRKN_js.hasShapeProperties(element) ? chunkG3JPCRKN_js.getComputedFillStyle(element) : void 0;
262
+ const fill = chunkLY5535CF_js.hasShapeProperties(element) ? chunkLY5535CF_js.getComputedFillStyle(element) : void 0;
263
263
  return {
264
264
  position: "absolute",
265
265
  inset: 0,
@@ -272,13 +272,13 @@ function getImageSurfaceStyle(element) {
272
272
  };
273
273
  }
274
274
  function getCropShapeClipPath2(element) {
275
- if (!chunkG3JPCRKN_js.isImageLikeElement(element)) {
275
+ if (!chunkLY5535CF_js.isImageLikeElement(element)) {
276
276
  return void 0;
277
277
  }
278
- return chunkG3JPCRKN_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
278
+ return chunkLY5535CF_js.getCropShapeClipPath(element.cropShape, element.width, element.height);
279
279
  }
280
280
  function getImageTilingStyle2(element) {
281
- return chunkG3JPCRKN_js.getImageTilingStyle(element);
281
+ return chunkLY5535CF_js.getImageTilingStyle(element);
282
282
  }
283
283
 
284
284
  // src/viewer/utils/geometry-image.ts
@@ -410,7 +410,7 @@ function VideoWithMetadata({
410
410
  {
411
411
  ref: mediaRef,
412
412
  className: "w-full h-full pointer-events-auto",
413
- style: isFullScreen ? { objectFit: "cover" } : chunkG3JPCRKN_js.getImageFitStyle(element),
413
+ style: isFullScreen ? { objectFit: "cover" } : chunkLY5535CF_js.getImageFitStyle(element),
414
414
  controls: showTransport,
415
415
  preload: "metadata",
416
416
  playsInline: true,
@@ -467,7 +467,7 @@ function PresentationMediaController({
467
467
  const [isMediaPlaying, setIsMediaPlaying] = React7.useState(false);
468
468
  const trimStartSec = element.trimStartMs !== void 0 ? element.trimStartMs / 1e3 : 0;
469
469
  const hideWhenNotPlaying = isPresentationMode && element.hideWhenNotPlaying === true;
470
- const { volume: playbackVolume, playbackRate } = chunkG3JPCRKN_js.mediaPlaybackAttributes({
470
+ const { volume: playbackVolume, playbackRate } = chunkLY5535CF_js.mediaPlaybackAttributes({
471
471
  loop: element.loop,
472
472
  volume: element.volume,
473
473
  playbackSpeed: element.playbackSpeed
@@ -515,7 +515,7 @@ function PresentationMediaController({
515
515
  if (!el || !isPresentationMode) {
516
516
  return;
517
517
  }
518
- return chunkG3JPCRKN_js.scheduleMediaTrimAndFade(el, {
518
+ return chunkLY5535CF_js.scheduleMediaTrimAndFade(el, {
519
519
  trimStartMs: element.trimStartMs,
520
520
  trimEndMs: element.trimEndMs,
521
521
  fadeInDuration: element.fadeInDuration,
@@ -536,7 +536,7 @@ function PresentationMediaController({
536
536
  }
537
537
  if (element.playAcrossSlides && element.mediaType === "audio") {
538
538
  const dataUrl = element.mediaData ?? resolvedDataUrl;
539
- if (chunkG3JPCRKN_js.registerCrossSlideAudio(element, dataUrl)) {
539
+ if (chunkLY5535CF_js.registerCrossSlideAudio(element, dataUrl)) {
540
540
  return;
541
541
  }
542
542
  }
@@ -581,7 +581,7 @@ function PresentationMediaController({
581
581
  ] });
582
582
  }
583
583
  function label(key) {
584
- return key === void 0 ? void 0 : chunkTEVGDXVW_js.translationsEn[key];
584
+ return key === void 0 ? void 0 : chunkY6GG2OOW_js.translationsEn[key];
585
585
  }
586
586
  function FallbackIcon({
587
587
  paths,
@@ -617,17 +617,17 @@ function Badge({
617
617
  "div",
618
618
  {
619
619
  className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
620
- ...{ [chunkG3JPCRKN_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
620
+ ...{ [chunkLY5535CF_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
621
621
  children: [
622
622
  /* @__PURE__ */ jsxRuntime.jsx(
623
623
  FallbackIcon,
624
624
  {
625
- paths: chunkG3JPCRKN_js.mediaFallbackIcon(visual, element.mediaType),
625
+ paths: chunkLY5535CF_js.mediaFallbackIcon(visual, element.mediaType),
626
626
  size: isMissing ? 32 : 48,
627
627
  className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
628
628
  }
629
629
  ),
630
- isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkG3JPCRKN_js.mediaFallbackLabelKey(visual, element.mediaType)) })
630
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkLY5535CF_js.mediaFallbackLabelKey(visual, element.mediaType)) })
631
631
  ]
632
632
  }
633
633
  );
@@ -644,17 +644,17 @@ function Placeholder({
644
644
  "div",
645
645
  {
646
646
  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"}`,
647
- ...{ [chunkG3JPCRKN_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
647
+ ...{ [chunkLY5535CF_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
648
648
  children: [
649
649
  /* @__PURE__ */ jsxRuntime.jsx(
650
650
  FallbackIcon,
651
651
  {
652
- paths: chunkG3JPCRKN_js.mediaFallbackIcon(visual, element.mediaType),
652
+ paths: chunkLY5535CF_js.mediaFallbackIcon(visual, element.mediaType),
653
653
  size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
654
654
  className: isMissing ? "text-white/50" : "text-white/70"
655
655
  }
656
656
  ),
657
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkG3JPCRKN_js.mediaFallbackLabelKey(visual, element.mediaType)) })
657
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkLY5535CF_js.mediaFallbackLabelKey(visual, element.mediaType)) })
658
658
  ]
659
659
  }
660
660
  );
@@ -664,7 +664,7 @@ function renderMediaFallback({
664
664
  posterUrl,
665
665
  surface
666
666
  }) {
667
- const visual = chunkG3JPCRKN_js.mediaFallbackVisual(surface, {
667
+ const visual = chunkLY5535CF_js.mediaFallbackVisual(surface, {
668
668
  hasPoster: Boolean(posterUrl),
669
669
  missing: element.mediaMissing === true
670
670
  });
@@ -674,9 +674,9 @@ function renderMediaFallback({
674
674
  "img",
675
675
  {
676
676
  src: posterUrl,
677
- alt: visual.dimPoster ? chunkTEVGDXVW_js.translationsEn["pptx.media.posterAlt"] : chunkTEVGDXVW_js.translationsEn["pptx.media.videoPosterAlt"],
677
+ alt: visual.dimPoster ? chunkY6GG2OOW_js.translationsEn["pptx.media.posterAlt"] : chunkY6GG2OOW_js.translationsEn["pptx.media.videoPosterAlt"],
678
678
  className: `w-full h-full${visual.dimPoster ? " opacity-50" : ""}`,
679
- style: chunkG3JPCRKN_js.getImageFitStyle(element)
679
+ style: chunkLY5535CF_js.getImageFitStyle(element)
680
680
  }
681
681
  ),
682
682
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { visual, element })
@@ -686,7 +686,7 @@ function renderMediaFallback({
686
686
  }
687
687
  function renderMediaElement(element, mediaDataUrls, options) {
688
688
  if (element.type !== "media") {
689
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkTEVGDXVW_js.translationsEn["pptx.media.title"] });
689
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.media.title"] });
690
690
  }
691
691
  const mediaType = element.mediaType;
692
692
  const mediaPath = element.mediaPath;
@@ -694,7 +694,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
694
694
  const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
695
695
  const trimFragment = buildTrimFragment(element);
696
696
  const posterUrl = element.posterFrameData ?? void 0;
697
- const shouldLoop = chunkG3JPCRKN_js.mediaPlaybackAttributes(element).loop;
697
+ const shouldLoop = chunkLY5535CF_js.mediaPlaybackAttributes(element).loop;
698
698
  const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
699
699
  const isFullScreen = options?.fullScreen === true;
700
700
  const isPresentationMode = options?.isPresentationMode === true;
@@ -772,25 +772,25 @@ function renderMediaElement(element, mediaDataUrls, options) {
772
772
  if (surface.presenting || surface.preview) {
773
773
  return null;
774
774
  }
775
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkTEVGDXVW_js.translationsEn["pptx.media.title"] });
775
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.media.title"] });
776
776
  }
777
777
 
778
778
  // src/viewer/utils/text-utils.tsx
779
779
  function getTextStyleForElement(element, fallbackColor) {
780
- return chunkG3JPCRKN_js.buildTextBlockStyle(element, { fallbackColor });
780
+ return chunkLY5535CF_js.buildTextBlockStyle(element, { fallbackColor });
781
781
  }
782
782
 
783
783
  // src/viewer/utils/text-layout.tsx
784
784
  function getTextLayoutStyle(element) {
785
- if (!chunkG3JPCRKN_js.hasTextProperties(element)) {
785
+ if (!chunkLY5535CF_js.hasTextProperties(element)) {
786
786
  return {};
787
787
  }
788
- const writingMode = chunkG3JPCRKN_js.toCssWritingMode(element.textStyle?.textDirection);
789
- const textOrientation = chunkG3JPCRKN_js.toCssTextOrientation(element.textStyle?.textDirection);
790
- const verticalDirection = chunkG3JPCRKN_js.toCssVerticalDirection(element.textStyle?.textDirection);
788
+ const writingMode = chunkLY5535CF_js.toCssWritingMode(element.textStyle?.textDirection);
789
+ const textOrientation = chunkLY5535CF_js.toCssTextOrientation(element.textStyle?.textDirection);
790
+ const verticalDirection = chunkLY5535CF_js.toCssVerticalDirection(element.textStyle?.textDirection);
791
791
  const textWrapNone = element.textStyle?.textWrap === "none";
792
792
  const shapeAutoFitTextBox = element.textStyle?.autoFitMode === "shrink" && (element.type === "text" || element.locks?.txBox === true);
793
- const hasParagraphIndents = chunkG3JPCRKN_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
793
+ const hasParagraphIndents = chunkLY5535CF_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
794
794
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
795
795
  const paragraphIndent = element.textStyle?.paragraphIndent;
796
796
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -799,7 +799,7 @@ function getTextLayoutStyle(element) {
799
799
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
800
800
  return {
801
801
  // Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
802
- ...chunkG3JPCRKN_js.buildTextBodyLayoutStyle(element),
802
+ ...chunkLY5535CF_js.buildTextBodyLayoutStyle(element),
803
803
  // Body inset only. Paragraph spacing (spcBef/spcAft) is applied
804
804
  // per-paragraph by the paragraph renderer, not collapsed here.
805
805
  paddingTop: bodyTop,
@@ -827,7 +827,7 @@ function getTextLayoutStyle(element) {
827
827
 
828
828
  // src/viewer/utils/text-effects.tsx
829
829
  function buildTextBody3DSceneStyle2(textStyle, elementSize) {
830
- return chunkG3JPCRKN_js.buildTextBody3DSceneStyle(textStyle, elementSize);
830
+ return chunkLY5535CF_js.buildTextBody3DSceneStyle(textStyle, elementSize);
831
831
  }
832
832
 
833
833
  // src/viewer/utils/text-warp-css.tsx
@@ -1012,13 +1012,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1012
1012
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1013
1013
  return renderedSegments;
1014
1014
  }
1015
- const paraKey = `${elementId}${chunkG3JPCRKN_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1015
+ const paraKey = `${elementId}${chunkLY5535CF_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1016
1016
  const paraState = subElementAnimStates.get(paraKey);
1017
1017
  if (paraState) {
1018
1018
  const style = buildAnimStyle(paraState);
1019
1019
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1020
1020
  }
1021
- const spec = chunkG3JPCRKN_js.buildTextBuildSpec(
1021
+ const spec = chunkLY5535CF_js.buildTextBuildSpec(
1022
1022
  elementId,
1023
1023
  paraIndex,
1024
1024
  paraRuns.map((run) => ({ text: run.text, style: run })),
@@ -1036,7 +1036,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1036
1036
  "span",
1037
1037
  {
1038
1038
  "data-anim-id": span.animId,
1039
- style: chunkG3JPCRKN_js.textBuildSpanStyle(span),
1039
+ style: chunkLY5535CF_js.textBuildSpanStyle(span),
1040
1040
  children: content
1041
1041
  },
1042
1042
  span.animId
@@ -1047,13 +1047,13 @@ function renderUnderlineWords(text, isUnderlineWords, wordDecoration, metric, ke
1047
1047
  if (!isUnderlineWords || !text) {
1048
1048
  return inner(text, keyPrefix, metric);
1049
1049
  }
1050
- const pieces = chunkG3JPCRKN_js.splitWordsForUnderline(text);
1050
+ const pieces = chunkLY5535CF_js.splitWordsForUnderline(text);
1051
1051
  if (pieces.length === 0) {
1052
1052
  return inner(text, keyPrefix, metric);
1053
1053
  }
1054
1054
  const gapMetric = metric ? {
1055
1055
  ...metric,
1056
- nestedStyle: metric.nestedStyle ? chunkG3JPCRKN_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
1056
+ nestedStyle: metric.nestedStyle ? chunkLY5535CF_js.stripUnderlineDecoration(metric.nestedStyle) : void 0
1057
1057
  } : void 0;
1058
1058
  return pieces.map((piece, i) => {
1059
1059
  const key = `${keyPrefix}-u${i}`;
@@ -1086,7 +1086,7 @@ function makeSegmentPieceRenderer(needsScriptFonts, scriptFonts, baseFontFamily,
1086
1086
  );
1087
1087
  }
1088
1088
  function renderTabbedLine(line, ctx, keyPrefix, renderPiece, nestedStyle, underlineWords = false) {
1089
- const [lineLayout] = chunkG3JPCRKN_js.buildRunTabLines(
1089
+ const [lineLayout] = chunkLY5535CF_js.buildRunTabLines(
1090
1090
  line,
1091
1091
  ctx,
1092
1092
  nestedStyle,
@@ -1105,7 +1105,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1105
1105
  if (!needsScriptFonts || !text) {
1106
1106
  return text;
1107
1107
  }
1108
- const pieces = chunkG3JPCRKN_js.splitRunByScriptFont(
1108
+ const pieces = chunkLY5535CF_js.splitRunByScriptFont(
1109
1109
  text,
1110
1110
  scriptFonts,
1111
1111
  baseFontFamily,
@@ -1122,7 +1122,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1122
1122
  if (!metric || !text) {
1123
1123
  return inner(text, keyPrefix);
1124
1124
  }
1125
- const pieces = chunkG3JPCRKN_js.splitRunForMetrics(text, metric.font);
1125
+ const pieces = chunkLY5535CF_js.splitRunForMetrics(text, metric.font);
1126
1126
  if (pieces.length <= 1) {
1127
1127
  return inner(text, keyPrefix);
1128
1128
  }
@@ -1131,7 +1131,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1131
1131
  {
1132
1132
  style: {
1133
1133
  ...metric.nestedStyle,
1134
- letterSpacing: chunkG3JPCRKN_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1134
+ letterSpacing: chunkLY5535CF_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1135
1135
  },
1136
1136
  children: inner(piece.text, `${keyPrefix}-w${i}`)
1137
1137
  },
@@ -1207,8 +1207,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1207
1207
  });
1208
1208
  }
1209
1209
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1210
- const mathml = chunkG3JPCRKN_js.convertOmmlToMathMl(equationXml);
1211
- const safeMathml = mathml ? chunkG3JPCRKN_js.sanitizeMathMl(mathml) : "";
1210
+ const mathml = chunkLY5535CF_js.convertOmmlToMathMl(equationXml);
1211
+ const safeMathml = mathml ? chunkLY5535CF_js.sanitizeMathMl(mathml) : "";
1212
1212
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1213
1213
  "span",
1214
1214
  {
@@ -1218,7 +1218,7 @@ function renderEquationSegment(elementId, segmentIndex, equationXml, equationNum
1218
1218
  },
1219
1219
  dangerouslySetInnerHTML: { __html: safeMathml }
1220
1220
  }
1221
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkTEVGDXVW_js.translationsEn["pptx.textSegment.equationFallback"] });
1221
+ ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block px-1 py-0.5 rounded text-xs bg-gray-200/20 text-gray-400 italic", children: chunkY6GG2OOW_js.translationsEn["pptx.textSegment.equationFallback"] });
1222
1222
  if (equationNumber) {
1223
1223
  return /* @__PURE__ */ jsxRuntime.jsxs(
1224
1224
  "span",
@@ -1337,7 +1337,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1337
1337
  const segmentStyle = segment?.style ?? {};
1338
1338
  const textValue = run.text;
1339
1339
  const lines = textValue.split("\n");
1340
- const resolvedSegmentColor = chunkG3JPCRKN_js.normalizeHexColor(
1340
+ const resolvedSegmentColor = chunkLY5535CF_js.normalizeHexColor(
1341
1341
  segmentStyle.color || element.textStyle?.color,
1342
1342
  run.hyperlink ? HYPERLINK_COLOR : fallbackColor
1343
1343
  );
@@ -1345,16 +1345,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1345
1345
  const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
1346
1346
  const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
1347
1347
  const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
1348
- const baseFontSize = rawFontSize * chunkG3JPCRKN_js.resolveAutoFitFontScale(element.textStyle);
1348
+ const baseFontSize = rawFontSize * chunkLY5535CF_js.resolveAutoFitFontScale(element.textStyle);
1349
1349
  const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
1350
- const fontKerning = chunkG3JPCRKN_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1350
+ const fontKerning = chunkLY5535CF_js.resolveFontKerning(segmentStyle.kerning, baseFontSize);
1351
1351
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1352
- const baseFontFamily = rawFontFamily ? chunkG3JPCRKN_js.getSubstituteFontFamily(
1352
+ const baseFontFamily = rawFontFamily ? chunkLY5535CF_js.getSubstituteFontFamily(
1353
1353
  rawFontFamily,
1354
- chunkG3JPCRKN_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1354
+ chunkLY5535CF_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1355
1355
  ) : DEFAULT_FONT_FAMILY2;
1356
- const scriptFonts = chunkG3JPCRKN_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1357
- const needsScriptFonts = chunkG3JPCRKN_js.hasDistinctScriptFonts(scriptFonts);
1356
+ const scriptFonts = chunkLY5535CF_js.resolveScriptFontSet(segmentStyle, element.textStyle, baseFontFamily);
1357
+ const needsScriptFonts = chunkLY5535CF_js.hasDistinctScriptFonts(scriptFonts);
1358
1358
  const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
1359
1359
  const metricFont = {
1360
1360
  fontFamily: baseFontFamily,
@@ -1362,7 +1362,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1362
1362
  bold: Boolean(segmentStyle.bold),
1363
1363
  italic: Boolean(segmentStyle.italic)
1364
1364
  };
1365
- const nestedStyle = chunkG3JPCRKN_js.nestedTextDecorationStyle(run.style);
1365
+ const nestedStyle = chunkLY5535CF_js.nestedTextDecorationStyle(run.style);
1366
1366
  const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
1367
1367
  const spanStyle = { ...run.style };
1368
1368
  spanStyle.color = resolvedSegmentColor;
@@ -1370,11 +1370,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1370
1370
  spanStyle.fontFamily = baseFontFamily;
1371
1371
  spanStyle.verticalAlign = baselineShift;
1372
1372
  spanStyle.fontKerning = fontKerning;
1373
- spanStyle.letterSpacing = chunkG3JPCRKN_js.pieceLetterSpacing(
1373
+ spanStyle.letterSpacing = chunkLY5535CF_js.pieceLetterSpacing(
1374
1374
  authoredLetterSpacing,
1375
- chunkG3JPCRKN_js.resolveMetricTrackingPx(textValue, metricFont)
1375
+ chunkLY5535CF_js.resolveMetricTrackingPx(textValue, metricFont)
1376
1376
  );
1377
- const hollow = chunkG3JPCRKN_js.hollowTextFillStyle(segmentStyle, {
1377
+ const hollow = chunkLY5535CF_js.hollowTextFillStyle(segmentStyle, {
1378
1378
  color: resolvedSegmentColor,
1379
1379
  textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
1380
1380
  });
@@ -1389,7 +1389,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1389
1389
  const isUnderlineWords = Boolean(segmentStyle.underline) && segmentStyle.underlineStyle === "words";
1390
1390
  const wordDecoration = isUnderlineWords ? nestedStyle ?? run.underlineWordPieces?.find((piece) => piece.style)?.style : void 0;
1391
1391
  if (isUnderlineWords) {
1392
- const stripped = chunkG3JPCRKN_js.stripUnderlineDecoration(spanStyle);
1392
+ const stripped = chunkLY5535CF_js.stripUnderlineDecoration(spanStyle);
1393
1393
  spanStyle.textDecoration = stripped.textDecoration;
1394
1394
  delete spanStyle.textDecorationStyle;
1395
1395
  delete spanStyle.textDecorationThickness;
@@ -1405,7 +1405,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1405
1405
  scriptFonts,
1406
1406
  baseFontFamily,
1407
1407
  findHighlights,
1408
- chunkG3JPCRKN_js.buildTabContext(
1408
+ chunkLY5535CF_js.buildTabContext(
1409
1409
  element.textStyle?.tabStops,
1410
1410
  element.textStyle?.defaultTabSize,
1411
1411
  baseFontSize,
@@ -1433,7 +1433,7 @@ function renderRubyOrText(run, baseContent) {
1433
1433
  ] });
1434
1434
  }
1435
1435
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick, placeholderPrompt) {
1436
- if (!chunkG3JPCRKN_js.hasTextProperties(element)) {
1436
+ if (!chunkLY5535CF_js.hasTextProperties(element)) {
1437
1437
  return emptyFallback || null;
1438
1438
  }
1439
1439
  const segments = segmentOverrides ?? element.textSegments;
@@ -1443,7 +1443,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
1443
1443
  }
1444
1444
  return element.text || emptyFallback || "";
1445
1445
  }
1446
- const paragraphs = chunkG3JPCRKN_js.buildParagraphs(element, fieldContext, segmentOverrides);
1446
+ const paragraphs = chunkLY5535CF_js.buildParagraphs(element, fieldContext, segmentOverrides);
1447
1447
  const ctx = {
1448
1448
  element,
1449
1449
  fallbackColor,
@@ -1569,13 +1569,13 @@ function renderBulletMarker(para, paraIndex, elementId) {
1569
1569
  );
1570
1570
  }
1571
1571
  function getDuotoneColors(element) {
1572
- if (!chunkG3JPCRKN_js.isImageLikeElement(element)) {
1572
+ if (!chunkLY5535CF_js.isImageLikeElement(element)) {
1573
1573
  return void 0;
1574
1574
  }
1575
1575
  return element.imageEffects?.duotone;
1576
1576
  }
1577
1577
  function buildLineShadowCss(element) {
1578
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
1578
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
1579
1579
  return void 0;
1580
1580
  }
1581
1581
  const ss = element.shapeStyle;
@@ -1586,13 +1586,13 @@ function buildLineShadowCss(element) {
1586
1586
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
1587
1587
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
1588
1588
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
1589
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkG3JPCRKN_js.colorWithOpacity(
1590
- chunkG3JPCRKN_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1589
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkLY5535CF_js.colorWithOpacity(
1590
+ chunkLY5535CF_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1591
1591
  opacity
1592
1592
  )}`;
1593
1593
  }
1594
1594
  function buildLineGlowFilter(element) {
1595
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
1595
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
1596
1596
  return void 0;
1597
1597
  }
1598
1598
  const ss = element.shapeStyle;
@@ -1601,22 +1601,22 @@ function buildLineGlowFilter(element) {
1601
1601
  }
1602
1602
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
1603
1603
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
1604
- const glowCol = chunkG3JPCRKN_js.colorWithOpacity(chunkG3JPCRKN_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1604
+ const glowCol = chunkLY5535CF_js.colorWithOpacity(chunkLY5535CF_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1605
1605
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
1606
1606
  }
1607
1607
  function getDagDuotoneFilterId(elementId) {
1608
1608
  return `dag-duotone-${elementId}`;
1609
1609
  }
1610
1610
  function hasDagDuotoneEffect(element) {
1611
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
1611
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
1612
1612
  return false;
1613
1613
  }
1614
1614
  return Boolean(element.shapeStyle?.dagDuotone);
1615
1615
  }
1616
1616
  function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1617
1617
  const filterId = getDagDuotoneFilterId(elementId);
1618
- const c1 = chunkG3JPCRKN_js.hexToRgbUnit(color1);
1619
- const c2 = chunkG3JPCRKN_js.hexToRgbUnit(color2);
1618
+ const c1 = chunkLY5535CF_js.hexToRgbUnit(color1);
1619
+ const c2 = chunkLY5535CF_js.hexToRgbUnit(color2);
1620
1620
  const grayscaleMatrix = [
1621
1621
  0.2126,
1622
1622
  0.7152,
@@ -1660,7 +1660,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1660
1660
 
1661
1661
  // src/viewer/utils/shape-visual-3d.ts
1662
1662
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
1663
- return chunkG3JPCRKN_js.build3DExtrusionData(
1663
+ return chunkLY5535CF_js.build3DExtrusionData(
1664
1664
  shape3d,
1665
1665
  scene3d,
1666
1666
  fillColor,
@@ -1669,7 +1669,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
1669
1669
  );
1670
1670
  }
1671
1671
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback, elementSize) {
1672
- chunkG3JPCRKN_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback, elementSize);
1672
+ chunkLY5535CF_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback, elementSize);
1673
1673
  }
1674
1674
 
1675
1675
  // src/viewer/utils/shape-visual-style.ts
@@ -1677,11 +1677,11 @@ function rendersCustomVectorPath(element) {
1677
1677
  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;
1678
1678
  }
1679
1679
  function rendersWedgeCalloutVector(element) {
1680
- return element.type === "shape" && chunkG3JPCRKN_js.isWedgeCalloutPresetShape(element.shapeType);
1680
+ return element.type === "shape" && chunkLY5535CF_js.isWedgeCalloutPresetShape(element.shapeType);
1681
1681
  }
1682
1682
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1683
1683
  if (element.type === "group") {
1684
- const fx2 = chunkG3JPCRKN_js.getComputedEffectStyle(element);
1684
+ const fx2 = chunkLY5535CF_js.getComputedEffectStyle(element);
1685
1685
  const groupStyle = {};
1686
1686
  if (fx2.filter) {
1687
1687
  groupStyle.filter = fx2.filter;
@@ -1691,13 +1691,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1691
1691
  }
1692
1692
  return groupStyle;
1693
1693
  }
1694
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
1694
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
1695
1695
  return {};
1696
1696
  }
1697
1697
  const ss = element.shapeStyle;
1698
- const fill = animatesFill ? void 0 : chunkG3JPCRKN_js.getComputedFillStyle(element, parentGroupFill);
1699
- const fx = chunkG3JPCRKN_js.getComputedEffectStyle(element);
1700
- const stroke = chunkG3JPCRKN_js.getComputedStrokeStyle(element);
1698
+ const fill = animatesFill ? void 0 : chunkLY5535CF_js.getComputedFillStyle(element, parentGroupFill);
1699
+ const fx = chunkLY5535CF_js.getComputedEffectStyle(element);
1700
+ const stroke = chunkLY5535CF_js.getComputedStrokeStyle(element);
1701
1701
  const base = {
1702
1702
  // A gradient fill REPLACES the solid fill, it does not sit on top of it;
1703
1703
  // the whole precedence lives in shared's `getComputedFillStyle`.
@@ -1736,7 +1736,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1736
1736
  };
1737
1737
  Object.assign(
1738
1738
  base,
1739
- chunkG3JPCRKN_js.getAnimationColorBaseStyle(element, {
1739
+ chunkLY5535CF_js.getAnimationColorBaseStyle(element, {
1740
1740
  animatesFill,
1741
1741
  animatesStroke,
1742
1742
  parentGroupFill
@@ -1751,7 +1751,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1751
1751
  width: element.width,
1752
1752
  height: element.height
1753
1753
  });
1754
- if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkG3JPCRKN_js.isStrokeOnlyPresetElement(element)) {
1754
+ if (rendersCustomVectorPath(element) || rendersWedgeCalloutVector(element) || chunkLY5535CF_js.isStrokeOnlyPresetElement(element)) {
1755
1755
  base.backgroundColor = "transparent";
1756
1756
  base.backgroundImage = void 0;
1757
1757
  base.borderWidth = void 0;
@@ -1765,7 +1765,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1765
1765
  if (rendersWedgeCalloutVector(element)) {
1766
1766
  return base;
1767
1767
  }
1768
- const geometry = chunkG3JPCRKN_js.resolveShapeGeometry(element);
1768
+ const geometry = chunkLY5535CF_js.resolveShapeGeometry(element);
1769
1769
  switch (geometry.kind) {
1770
1770
  case "bare":
1771
1771
  return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
@@ -1791,13 +1791,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1791
1791
  function getConnectorAdjustment(element, key, fallback) {
1792
1792
  const direct = element.shapeAdjustments?.[key];
1793
1793
  if (typeof direct === "number" && Number.isFinite(direct)) {
1794
- return chunkG3JPCRKN_js.clampUnitInterval(direct / 1e5);
1794
+ return chunkLY5535CF_js.clampUnitInterval(direct / 1e5);
1795
1795
  }
1796
1796
  const fallbackKey = element.shapeAdjustments?.adj;
1797
1797
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
1798
- return chunkG3JPCRKN_js.clampUnitInterval(fallbackKey / 1e5);
1798
+ return chunkLY5535CF_js.clampUnitInterval(fallbackKey / 1e5);
1799
1799
  }
1800
- return chunkG3JPCRKN_js.clampUnitInterval(fallback);
1800
+ return chunkLY5535CF_js.clampUnitInterval(fallback);
1801
1801
  }
1802
1802
  function getConnectorPathGeometry(element) {
1803
1803
  const width = Math.max(element.width, 0);
@@ -1962,11 +1962,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
1962
1962
  strokePaint,
1963
1963
  strokeWidth,
1964
1964
  dashArray,
1965
- lineCap: chunkG3JPCRKN_js.svgLineCap(shapeStyle?.lineCap),
1965
+ lineCap: chunkLY5535CF_js.svgLineCap(shapeStyle?.lineCap),
1966
1966
  lineJoin,
1967
1967
  miterLimit,
1968
- offsets: chunkG3JPCRKN_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1969
- widths: chunkG3JPCRKN_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1968
+ offsets: chunkLY5535CF_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
1969
+ widths: chunkLY5535CF_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
1970
1970
  };
1971
1971
  }
1972
1972
  function strokeStrands(d, keyBase, ctx) {
@@ -1989,12 +1989,12 @@ function strokeStrands(d, keyBase, ctx) {
1989
1989
  }
1990
1990
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
1991
1991
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
1992
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkG3JPCRKN_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
1992
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkLY5535CF_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
1993
1993
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
1994
- const gradientPaint = gradient ? chunkG3JPCRKN_js.svgGradientFillRef(gradient) : void 0;
1994
+ const gradientPaint = gradient ? chunkLY5535CF_js.svgGradientFillRef(gradient) : void 0;
1995
1995
  const nodes = [];
1996
1996
  if (subpaths && needsPerSubpath) {
1997
- const paints = chunkG3JPCRKN_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
1997
+ const paints = chunkLY5535CF_js.buildSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
1998
1998
  paints.forEach((paint, idx) => {
1999
1999
  if (paint.fill !== "none") {
2000
2000
  const mode = subpaths[idx]?.fillMode;
@@ -2023,7 +2023,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2023
2023
  "path",
2024
2024
  {
2025
2025
  d: pathData,
2026
- fill: animatesFill ? "inherit" : gradientPaint ?? chunkG3JPCRKN_js.colorWithOpacity(fillColor, fillOpacity),
2026
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunkLY5535CF_js.colorWithOpacity(fillColor, fillOpacity),
2027
2027
  stroke: "none",
2028
2028
  vectorEffect: "non-scaling-stroke"
2029
2029
  },
@@ -2049,14 +2049,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2049
2049
  );
2050
2050
  }
2051
2051
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2052
- if (!chunkG3JPCRKN_js.hasShapeProperties(element)) {
2052
+ if (!chunkLY5535CF_js.hasShapeProperties(element)) {
2053
2053
  return null;
2054
2054
  }
2055
2055
  const normalizedType = (element.shapeType || "").toLowerCase();
2056
- const fillPaint = animatesFill ? "inherit" : chunkG3JPCRKN_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2057
- const strokePaint = animatesStroke ? "inherit" : chunkG3JPCRKN_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2058
- const dashType = chunkG3JPCRKN_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2059
- const dashArray = chunkG3JPCRKN_js.getSvgStrokeDasharray(
2056
+ const fillPaint = animatesFill ? "inherit" : chunkLY5535CF_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2057
+ const strokePaint = animatesStroke ? "inherit" : chunkLY5535CF_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2058
+ const dashType = chunkLY5535CF_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2059
+ const dashArray = chunkLY5535CF_js.getSvgStrokeDasharray(
2060
2060
  dashType,
2061
2061
  Math.max(strokeWidth, 1),
2062
2062
  element.shapeStyle?.customDashSegments
@@ -2137,13 +2137,13 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2137
2137
  // container's `background-image` is suppressed for custom geometry, so
2138
2138
  // without this the shape fell back to the parser's representative solid
2139
2139
  // and lost every fade (issue #132).
2140
- chunkG3JPCRKN_js.buildSvgGradientDef(element.shapeStyle, element.id)
2140
+ chunkLY5535CF_js.buildSvgGradientDef(element.shapeStyle, element.id)
2141
2141
  );
2142
2142
  }
2143
- if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkG3JPCRKN_js.buildStrokeOutline(element)) {
2143
+ if ((element.type === "image" || element.type === "picture") && strokeWidth > 0 && !chunkLY5535CF_js.buildStrokeOutline(element)) {
2144
2144
  const width = Math.max(element.width, 1);
2145
2145
  const height = Math.max(element.height, 1);
2146
- const geometry = chunkG3JPCRKN_js.getPresetShapeVectorGeometry(
2146
+ const geometry = chunkLY5535CF_js.getPresetShapeVectorGeometry(
2147
2147
  element.shapeType || "rect",
2148
2148
  width,
2149
2149
  height,
@@ -2171,18 +2171,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2171
2171
  );
2172
2172
  }
2173
2173
  }
2174
- if (element.type === "shape" && chunkG3JPCRKN_js.isWedgeCalloutPresetShape(element.shapeType)) {
2174
+ if (element.type === "shape" && chunkLY5535CF_js.isWedgeCalloutPresetShape(element.shapeType)) {
2175
2175
  const width = Math.max(element.width, 1);
2176
2176
  const height = Math.max(element.height, 1);
2177
- const geometry = chunkG3JPCRKN_js.getPresetShapeVectorGeometry(
2177
+ const geometry = chunkLY5535CF_js.getPresetShapeVectorGeometry(
2178
2178
  element.shapeType,
2179
2179
  width,
2180
2180
  height,
2181
2181
  element.shapeAdjustments
2182
2182
  );
2183
2183
  if (geometry) {
2184
- const gradient = chunkG3JPCRKN_js.buildSvgGradientDef(element.shapeStyle, element.id);
2185
- const gradientPaint = gradient ? chunkG3JPCRKN_js.svgGradientFillRef(gradient) : void 0;
2184
+ const gradient = chunkLY5535CF_js.buildSvgGradientDef(element.shapeStyle, element.id);
2185
+ const gradientPaint = gradient ? chunkLY5535CF_js.svgGradientFillRef(gradient) : void 0;
2186
2186
  return /* @__PURE__ */ jsxRuntime.jsxs(
2187
2187
  "svg",
2188
2188
  {
@@ -2215,18 +2215,18 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2215
2215
  );
2216
2216
  }
2217
2217
  }
2218
- if (chunkG3JPCRKN_js.isCalloutShape(normalizedType)) {
2218
+ if (chunkLY5535CF_js.isCalloutShape(normalizedType)) {
2219
2219
  const width = Math.max(element.width, 1);
2220
2220
  const height = Math.max(element.height, 1);
2221
- const geometry = chunkG3JPCRKN_js.getCalloutLeaderLineGeometry(
2221
+ const geometry = chunkLY5535CF_js.getCalloutLeaderLineGeometry(
2222
2222
  normalizedType,
2223
2223
  width,
2224
2224
  height,
2225
2225
  element.shapeAdjustments
2226
2226
  );
2227
2227
  if (geometry && geometry.points.length >= 2) {
2228
- const leaderPath = chunkG3JPCRKN_js.buildCalloutLeaderLineSvgPath(geometry);
2229
- const bounds = chunkG3JPCRKN_js.getCalloutViewBoxBounds(width, height, geometry);
2228
+ const leaderPath = chunkLY5535CF_js.buildCalloutLeaderLineSvgPath(geometry);
2229
+ const bounds = chunkLY5535CF_js.getCalloutViewBoxBounds(width, height, geometry);
2230
2230
  const lineStroke = Math.max(strokeWidth, 1);
2231
2231
  const offsetLeft = bounds.minX;
2232
2232
  const offsetTop = bounds.minY;
@@ -2289,10 +2289,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2289
2289
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
2290
2290
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
2291
2291
  const compoundLine = element.shapeStyle?.compoundLine;
2292
- const connectorLineCap = chunkG3JPCRKN_js.svgLineCap(element.shapeStyle?.lineCap);
2292
+ const connectorLineCap = chunkLY5535CF_js.svgLineCap(element.shapeStyle?.lineCap);
2293
2293
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2294
- const offsets = chunkG3JPCRKN_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2295
- const widths = chunkG3JPCRKN_js.getCompoundLineWidths(compoundLine, strokeWidth);
2294
+ const offsets = chunkLY5535CF_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2295
+ const widths = chunkLY5535CF_js.getCompoundLineWidths(compoundLine, strokeWidth);
2296
2296
  return /* @__PURE__ */ jsxRuntime.jsxs(
2297
2297
  "svg",
2298
2298
  {
@@ -2359,15 +2359,15 @@ function parseGradientFillCss(gradFill) {
2359
2359
  }
2360
2360
  const rawStops = stops.map((gs) => {
2361
2361
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
2362
- const color = chunkG3JPCRKN_js.parseDrawingColor(gs) ?? "#888888";
2363
- const opacity = chunkG3JPCRKN_js.parseDrawingColorOpacity(gs);
2362
+ const color = chunkLY5535CF_js.parseDrawingColor(gs) ?? "#888888";
2363
+ const opacity = chunkLY5535CF_js.parseDrawingColorOpacity(gs);
2364
2364
  return { position: pos, color, opacity };
2365
2365
  }).sort((a, b) => a.position - b.position);
2366
- const stopStrings = rawStops.map((s) => `${chunkG3JPCRKN_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2366
+ const stopStrings = rawStops.map((s) => `${chunkLY5535CF_js.colorWithOpacity(s.color, s.opacity)} ${s.position.toFixed(1)}%`).join(", ");
2367
2367
  const lin = gradFill["a:lin"];
2368
2368
  if (lin) {
2369
2369
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
2370
- const angleDeg = Math.round(chunkG3JPCRKN_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2370
+ const angleDeg = Math.round(chunkLY5535CF_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2371
2371
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
2372
2372
  }
2373
2373
  const path = gradFill["a:path"];
@@ -2381,7 +2381,7 @@ function parseGradientFillCss(gradFill) {
2381
2381
  b: Number.parseInt(String(fillToRectXml["@_b"] || "0"), 10) / 1e5
2382
2382
  } : void 0;
2383
2383
  if (pathType === "rect") {
2384
- return chunkG3JPCRKN_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2384
+ return chunkLY5535CF_js.buildRectPathGradient(rawStops, void 0, fillToRect);
2385
2385
  }
2386
2386
  let cx = 50;
2387
2387
  let cy = 50;
@@ -2403,8 +2403,8 @@ function parsePatternFillCss(pattFill) {
2403
2403
  if (!pattFill) {
2404
2404
  return void 0;
2405
2405
  }
2406
- const fgColor = chunkG3JPCRKN_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2407
- const bgColor = chunkG3JPCRKN_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2406
+ const fgColor = chunkLY5535CF_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2407
+ const bgColor = chunkLY5535CF_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2408
2408
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
2409
2409
  switch (preset) {
2410
2410
  case "ltHorz":
@@ -2515,11 +2515,11 @@ function parseCellBorders(cellProperties) {
2515
2515
  const prstDash = ln["a:prstDash"];
2516
2516
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
2517
2517
  const cssBorderStyle = ooxmlDashToCss(dashVal);
2518
- const color = chunkG3JPCRKN_js.parseDrawingColor(ln["a:solidFill"]);
2518
+ const color = chunkLY5535CF_js.parseDrawingColor(ln["a:solidFill"]);
2519
2519
  if (color) {
2520
- const opacity = chunkG3JPCRKN_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2520
+ const opacity = chunkLY5535CF_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2521
2521
  const key = `${edge.prefix}`;
2522
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkG3JPCRKN_js.colorWithOpacity(color, opacity)}`;
2522
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkLY5535CF_js.colorWithOpacity(color, opacity)}`;
2523
2523
  }
2524
2524
  }
2525
2525
  return borderStyle;
@@ -2532,7 +2532,7 @@ function parseCellTextEffects(runProps) {
2532
2532
  const textShadowParts = [];
2533
2533
  const outerShdw = effectLst["a:outerShdw"];
2534
2534
  if (outerShdw) {
2535
- const shdwColor = chunkG3JPCRKN_js.parseDrawingColor(outerShdw);
2535
+ const shdwColor = chunkLY5535CF_js.parseDrawingColor(outerShdw);
2536
2536
  if (shdwColor) {
2537
2537
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
2538
2538
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -2550,7 +2550,7 @@ function parseCellTextEffects(runProps) {
2550
2550
  }
2551
2551
  const glow = effectLst["a:glow"];
2552
2552
  if (glow) {
2553
- const glowColor = chunkG3JPCRKN_js.parseDrawingColor(glow);
2553
+ const glowColor = chunkLY5535CF_js.parseDrawingColor(glow);
2554
2554
  if (glowColor) {
2555
2555
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
2556
2556
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -2630,10 +2630,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2630
2630
  if (runProps?.["@_u"] !== void 0) {
2631
2631
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
2632
2632
  }
2633
- const runColor = chunkG3JPCRKN_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkG3JPCRKN_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2633
+ const runColor = chunkLY5535CF_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkLY5535CF_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2634
2634
  if (runColor) {
2635
- const opacity = chunkG3JPCRKN_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2636
- cellStyle.color = chunkG3JPCRKN_js.colorWithOpacity(runColor, opacity);
2635
+ const opacity = chunkLY5535CF_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2636
+ cellStyle.color = chunkLY5535CF_js.colorWithOpacity(runColor, opacity);
2637
2637
  }
2638
2638
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
2639
2639
  if (fontFamily) {
@@ -2643,15 +2643,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2643
2643
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
2644
2644
  }
2645
2645
  const cellProperties = cellXml["a:tcPr"];
2646
- const cellFill = chunkG3JPCRKN_js.parseDrawingColor(
2646
+ const cellFill = chunkLY5535CF_js.parseDrawingColor(
2647
2647
  cellProperties?.["a:solidFill"],
2648
2648
  schemeColorOverrides
2649
2649
  );
2650
2650
  if (cellFill) {
2651
- const opacity = chunkG3JPCRKN_js.parseDrawingColorOpacity(
2651
+ const opacity = chunkLY5535CF_js.parseDrawingColorOpacity(
2652
2652
  cellProperties?.["a:solidFill"]
2653
2653
  );
2654
- cellStyle.backgroundColor = chunkG3JPCRKN_js.colorWithOpacity(cellFill, opacity);
2654
+ cellStyle.backgroundColor = chunkLY5535CF_js.colorWithOpacity(cellFill, opacity);
2655
2655
  } else {
2656
2656
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
2657
2657
  if (gradCss) {
@@ -2666,16 +2666,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2666
2666
  const edgeBorders = parseCellBorders(cellProperties);
2667
2667
  Object.assign(cellStyle, edgeBorders);
2668
2668
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
2669
- const borderColor = chunkG3JPCRKN_js.parseDrawingColor(
2669
+ const borderColor = chunkLY5535CF_js.parseDrawingColor(
2670
2670
  cellProperties?.["a:lnL"]?.["a:solidFill"],
2671
2671
  schemeColorOverrides
2672
- ) || chunkG3JPCRKN_js.parseDrawingColor(
2672
+ ) || chunkLY5535CF_js.parseDrawingColor(
2673
2673
  cellProperties?.["a:lnR"]?.["a:solidFill"],
2674
2674
  schemeColorOverrides
2675
- ) || chunkG3JPCRKN_js.parseDrawingColor(
2675
+ ) || chunkLY5535CF_js.parseDrawingColor(
2676
2676
  cellProperties?.["a:lnT"]?.["a:solidFill"],
2677
2677
  schemeColorOverrides
2678
- ) || chunkG3JPCRKN_js.parseDrawingColor(
2678
+ ) || chunkLY5535CF_js.parseDrawingColor(
2679
2679
  cellProperties?.["a:lnB"]?.["a:solidFill"],
2680
2680
  schemeColorOverrides
2681
2681
  );
@@ -2747,7 +2747,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
2747
2747
  if (element.type !== "table") {
2748
2748
  return void 0;
2749
2749
  }
2750
- return chunkG3JPCRKN_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2750
+ return chunkLY5535CF_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2751
2751
  tableStyleMap: styleCtx?.tableStyleMap,
2752
2752
  colorScheme: styleCtx?.theme?.colorScheme,
2753
2753
  fontScheme: styleCtx?.theme?.fontScheme
@@ -2823,7 +2823,7 @@ function renderTableCellContent(cell, fallbackText) {
2823
2823
  return /* @__PURE__ */ jsxRuntime.jsx(
2824
2824
  "span",
2825
2825
  {
2826
- style: { position: "relative", ...chunkG3JPCRKN_js.cellRunStyle(run) },
2826
+ style: { position: "relative", ...chunkLY5535CF_js.cellRunStyle(run) },
2827
2827
  children: run.text
2828
2828
  },
2829
2829
  `r-${index}`
@@ -2831,7 +2831,7 @@ function renderTableCellContent(cell, fallbackText) {
2831
2831
  });
2832
2832
  }
2833
2833
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
2834
- return chunkG3JPCRKN_js.getCellDiagonalBorders(style, tableData, pos, {
2834
+ return chunkLY5535CF_js.getCellDiagonalBorders(style, tableData, pos, {
2835
2835
  tableStyleMap: styleCtx?.tableStyleMap,
2836
2836
  colorScheme: styleCtx?.theme?.colorScheme,
2837
2837
  fontScheme: styleCtx?.theme?.fontScheme
@@ -2964,7 +2964,7 @@ function TableResizeOverlay({
2964
2964
  const containerRef = React7.useRef(null);
2965
2965
  const [rowBounds, setRowBounds] = React7.useState([]);
2966
2966
  const dragRef = React7.useRef(null);
2967
- const colBoundaries = React7.useMemo(() => chunkG3JPCRKN_js.computeColumnBoundaries(columnWidths), [columnWidths]);
2967
+ const colBoundaries = React7.useMemo(() => chunkLY5535CF_js.computeColumnBoundaries(columnWidths), [columnWidths]);
2968
2968
  const measureRows = React7.useCallback(() => {
2969
2969
  const container = containerRef.current;
2970
2970
  if (!container) {
@@ -3011,11 +3011,11 @@ function TableResizeOverlay({
3011
3011
  const rect = containerRef.current.getBoundingClientRect();
3012
3012
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
3013
3013
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
3014
- onResizeColumns(chunkG3JPCRKN_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3014
+ onResizeColumns(chunkLY5535CF_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3015
3015
  } else if (drag.type === "row" && onResizeRow) {
3016
3016
  const deltaY = e.clientY - drag.startPos;
3017
- const newHeight = chunkG3JPCRKN_js.computeResizedRowHeight(
3018
- drag.initialRowHeight ?? chunkG3JPCRKN_js.DEFAULT_ROW_HEIGHT,
3017
+ const newHeight = chunkLY5535CF_js.computeResizedRowHeight(
3018
+ drag.initialRowHeight ?? chunkLY5535CF_js.DEFAULT_ROW_HEIGHT,
3019
3019
  deltaY
3020
3020
  );
3021
3021
  onResizeRow(drag.index, newHeight);
@@ -3053,7 +3053,7 @@ function TableResizeOverlay({
3053
3053
  e.stopPropagation();
3054
3054
  const table = containerRef.current?.querySelector("table");
3055
3055
  const tr = table?.querySelectorAll("tbody > tr")[index];
3056
- const actualHeight = tr?.offsetHeight ?? chunkG3JPCRKN_js.DEFAULT_ROW_HEIGHT;
3056
+ const actualHeight = tr?.offsetHeight ?? chunkLY5535CF_js.DEFAULT_ROW_HEIGHT;
3057
3057
  document.body.style.cursor = "row-resize";
3058
3058
  document.body.style.userSelect = "none";
3059
3059
  dragRef.current = {
@@ -3093,14 +3093,14 @@ function renderTableFromTableData(element, textStyle, options) {
3093
3093
  const rowCount = tableData.rows.length;
3094
3094
  const columnCount = tableData.columnWidths.length;
3095
3095
  const selectedCell = options?.selectedCell || null;
3096
- const isEditable = Boolean(options?.editable) && chunkG3JPCRKN_js.canDrillDown(element);
3096
+ const isEditable = Boolean(options?.editable) && chunkLY5535CF_js.canDrillDown(element);
3097
3097
  const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
3098
3098
  const sharedCtx = {
3099
3099
  tableStyleMap: options?.styleCtx?.tableStyleMap,
3100
3100
  colorScheme: options?.styleCtx?.theme?.colorScheme,
3101
3101
  fontScheme: options?.styleCtx?.theme?.fontScheme
3102
3102
  };
3103
- const cellCss = (cell, rowIndex, cellIndex) => chunkG3JPCRKN_js.tableCellCss(
3103
+ const cellCss = (cell, rowIndex, cellIndex) => chunkLY5535CF_js.tableCellCss(
3104
3104
  tableData,
3105
3105
  cell,
3106
3106
  { rowIndex, cellIndex, rowCount, columnCount },
@@ -3113,7 +3113,7 @@ function renderTableFromTableData(element, textStyle, options) {
3113
3113
  }
3114
3114
  const first = selectedCell.selectedCells[0];
3115
3115
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3116
- return chunkG3JPCRKN_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3116
+ return chunkLY5535CF_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3117
3117
  })();
3118
3118
  return /* @__PURE__ */ jsxRuntime.jsx(
3119
3119
  TableResizeOverlay,
@@ -3134,9 +3134,9 @@ function renderTableFromTableData(element, textStyle, options) {
3134
3134
  {
3135
3135
  className: "w-full h-full border-collapse table-fixed",
3136
3136
  style: {
3137
- fontFamily: chunkG3JPCRKN_js.DEFAULT_FONT_FAMILY,
3137
+ fontFamily: chunkLY5535CF_js.DEFAULT_FONT_FAMILY,
3138
3138
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3139
- ...chunkG3JPCRKN_js.tableContainerCss(tableData)
3139
+ ...chunkLY5535CF_js.tableContainerCss(tableData)
3140
3140
  },
3141
3141
  children: [
3142
3142
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3155,7 +3155,7 @@ function renderTableFromTableData(element, textStyle, options) {
3155
3155
  return null;
3156
3156
  }
3157
3157
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
3158
- const isInMultiSelection = chunkG3JPCRKN_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3158
+ const isInMultiSelection = chunkLY5535CF_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3159
3159
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
3160
3160
  const diag = getCellDiagonalBorders2(
3161
3161
  cell.style,
@@ -3184,7 +3184,7 @@ function renderTableFromTableData(element, textStyle, options) {
3184
3184
  }
3185
3185
  event.stopPropagation();
3186
3186
  if (event.shiftKey && selectedCell) {
3187
- const rect = chunkG3JPCRKN_js.computeSelectionRect(
3187
+ const rect = chunkLY5535CF_js.computeSelectionRect(
3188
3188
  selectedCell.rowIndex,
3189
3189
  selectedCell.columnIndex,
3190
3190
  rowIndex,
@@ -3194,7 +3194,7 @@ function renderTableFromTableData(element, textStyle, options) {
3194
3194
  options?.onSelectCell?.({
3195
3195
  rowIndex: selectedCell.rowIndex,
3196
3196
  columnIndex: selectedCell.columnIndex,
3197
- selectedCells: chunkG3JPCRKN_js.rectToCells(rect)
3197
+ selectedCells: chunkLY5535CF_js.rectToCells(rect)
3198
3198
  });
3199
3199
  } else {
3200
3200
  options?.onSelectCell?.({
@@ -3255,10 +3255,10 @@ function renderTableElement(element, textStyle, options) {
3255
3255
  if (tableEl2.tableData && tableEl2.tableData.rows.length > 0) {
3256
3256
  return renderTableFromTableData(tableEl2, textStyle, options);
3257
3257
  }
3258
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkTEVGDXVW_js.translationsEn["pptx.table.title"] });
3258
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.table.title"] });
3259
3259
  }
3260
3260
  const selectedCell = options?.selectedCell || null;
3261
- const isEditable = Boolean(options?.editable) && chunkG3JPCRKN_js.canDrillDown(element);
3261
+ const isEditable = Boolean(options?.editable) && chunkLY5535CF_js.canDrillDown(element);
3262
3262
  const hasCellSelectionHandler = typeof options?.onSelectCell === "function";
3263
3263
  const tableEl = element;
3264
3264
  const xmlSelectionRect = (() => {
@@ -3270,7 +3270,7 @@ function renderTableElement(element, textStyle, options) {
3270
3270
  }
3271
3271
  const first = selectedCell.selectedCells[0];
3272
3272
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3273
- return chunkG3JPCRKN_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3273
+ return chunkLY5535CF_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3274
3274
  })();
3275
3275
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
3276
3276
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3292,9 +3292,9 @@ function renderTableElement(element, textStyle, options) {
3292
3292
  {
3293
3293
  className: "w-full h-full border-collapse table-fixed",
3294
3294
  style: {
3295
- fontFamily: chunkG3JPCRKN_js.DEFAULT_FONT_FAMILY,
3295
+ fontFamily: chunkLY5535CF_js.DEFAULT_FONT_FAMILY,
3296
3296
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3297
- ...chunkG3JPCRKN_js.tableContainerCss(tableEl.tableData)
3297
+ ...chunkLY5535CF_js.tableContainerCss(tableEl.tableData)
3298
3298
  },
3299
3299
  children: [
3300
3300
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3351,7 +3351,7 @@ function renderTableElement(element, textStyle, options) {
3351
3351
  color: textStyle.color,
3352
3352
  ...bandStyle,
3353
3353
  ...xmlCellStyle,
3354
- ...tdCellOverride ? chunkG3JPCRKN_js.cellStyleToCss(tdCellOverride) : void 0,
3354
+ ...tdCellOverride ? chunkLY5535CF_js.cellStyleToCss(tdCellOverride) : void 0,
3355
3355
  ...diag ? { position: "relative" } : void 0
3356
3356
  };
3357
3357
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3361,7 +3361,7 @@ function renderTableElement(element, textStyle, options) {
3361
3361
  "border px-1 py-0.5 align-top",
3362
3362
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
3363
3363
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
3364
- chunkG3JPCRKN_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3364
+ chunkLY5535CF_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3365
3365
  ),
3366
3366
  colSpan,
3367
3367
  rowSpan: rSpan,
@@ -3372,7 +3372,7 @@ function renderTableElement(element, textStyle, options) {
3372
3372
  }
3373
3373
  event.stopPropagation();
3374
3374
  if (event.shiftKey && selectedCell && tableEl.tableData) {
3375
- const rect = chunkG3JPCRKN_js.computeSelectionRect(
3375
+ const rect = chunkLY5535CF_js.computeSelectionRect(
3376
3376
  selectedCell.rowIndex,
3377
3377
  selectedCell.columnIndex,
3378
3378
  rowIndex,
@@ -3382,7 +3382,7 @@ function renderTableElement(element, textStyle, options) {
3382
3382
  options?.onSelectCell?.({
3383
3383
  rowIndex: selectedCell.rowIndex,
3384
3384
  columnIndex: selectedCell.columnIndex,
3385
- selectedCells: chunkG3JPCRKN_js.rectToCells(rect)
3385
+ selectedCells: chunkLY5535CF_js.rectToCells(rect)
3386
3386
  });
3387
3387
  } else {
3388
3388
  options?.onSelectCell?.({
@@ -3441,23 +3441,23 @@ function renderTableElement(element, textStyle, options) {
3441
3441
  );
3442
3442
  }
3443
3443
  function partAttrs(part) {
3444
- return part ? chunkG3JPCRKN_js.chartPartToAttrs(part) : void 0;
3444
+ return part ? chunkLY5535CF_js.chartPartToAttrs(part) : void 0;
3445
3445
  }
3446
3446
  function resolveReactPalette(chartData) {
3447
3447
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
3448
3448
  return chartData.colorPalette;
3449
3449
  }
3450
- return [...chunkG3JPCRKN_js.getChartStylePalette(chartData.style?.styleId)];
3450
+ return [...chunkLY5535CF_js.getChartStylePalette(chartData.style?.styleId)];
3451
3451
  }
3452
3452
  function buildReactChartViewModel(element) {
3453
3453
  if (element.type !== "chart" || !element.chartData) {
3454
- return chunkG3JPCRKN_js.buildChartViewModel(element);
3454
+ return chunkLY5535CF_js.buildChartViewModel(element);
3455
3455
  }
3456
3456
  const palette = resolveReactPalette(element.chartData), themedElement = {
3457
3457
  ...element,
3458
3458
  chartData: { ...element.chartData, colorPalette: palette }
3459
3459
  };
3460
- return chunkG3JPCRKN_js.buildChartViewModel(themedElement);
3460
+ return chunkLY5535CF_js.buildChartViewModel(themedElement);
3461
3461
  }
3462
3462
  function renderPrimitive(prim, key) {
3463
3463
  switch (prim.kind) {
@@ -3608,7 +3608,7 @@ function renderText(t, key) {
3608
3608
  );
3609
3609
  }
3610
3610
  function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3611
- const legendItems = chunkG3JPCRKN_js.computeChartLegendLayout(vm);
3611
+ const legendItems = chunkLY5535CF_js.computeChartLegendLayout(vm);
3612
3612
  return /* @__PURE__ */ jsxRuntime.jsxs(
3613
3613
  "svg",
3614
3614
  {
@@ -3746,17 +3746,17 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3746
3746
  }
3747
3747
  function renderChartElement(element) {
3748
3748
  if (element.type !== "chart") {
3749
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkTEVGDXVW_js.translationsEn["pptx.chart.heading"] });
3749
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.chart.heading"] });
3750
3750
  }
3751
3751
  const chartData = element.chartData;
3752
3752
  if (!chartData || chartData.series.length === 0) {
3753
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkTEVGDXVW_js.translationsEn["pptx.chart.heading"] });
3753
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkY6GG2OOW_js.translationsEn["pptx.chart.heading"] });
3754
3754
  }
3755
- const kind = chunkG3JPCRKN_js.resolveChartKind(chartData.chartType ?? "bar");
3755
+ const kind = chunkLY5535CF_js.resolveChartKind(chartData.chartType ?? "bar");
3756
3756
  return renderChartViewModel(
3757
3757
  element.id,
3758
3758
  buildReactChartViewModel(element),
3759
- chunkG3JPCRKN_js.chartPreserveAspectRatio(kind)
3759
+ chunkLY5535CF_js.chartPreserveAspectRatio(kind)
3760
3760
  );
3761
3761
  }
3762
3762
 
@@ -3776,14 +3776,14 @@ function buildNotesPdf(pages) {
3776
3776
  notes: page.notes,
3777
3777
  slideNumber: page.slideNumber
3778
3778
  }));
3779
- const bytes = chunkG3JPCRKN_js.buildNotesPdfBytes(images, meta);
3779
+ const bytes = chunkLY5535CF_js.buildNotesPdfBytes(images, meta);
3780
3780
  const blob = new Blob([bytes], { type: "application/pdf" });
3781
3781
  return URL.createObjectURL(blob);
3782
3782
  }
3783
3783
 
3784
3784
  // src/viewer/utils/pdf-builder-slides.ts
3785
3785
  function buildPdfFromImageData(images) {
3786
- const bytes = chunkG3JPCRKN_js.buildSlidesPdfBytes(images);
3786
+ const bytes = chunkLY5535CF_js.buildSlidesPdfBytes(images);
3787
3787
  const blob = new Blob([bytes], { type: "application/pdf" });
3788
3788
  return URL.createObjectURL(blob);
3789
3789
  }
@@ -3792,7 +3792,7 @@ function buildPdfFromImageData(images) {
3792
3792
  var activePreview = null;
3793
3793
  function startPreviewAnimation(elementId, preset, options) {
3794
3794
  stopPreviewAnimation();
3795
- const descriptor = chunkG3JPCRKN_js.buildPreviewAnimation(preset, options);
3795
+ const descriptor = chunkLY5535CF_js.buildPreviewAnimation(preset, options);
3796
3796
  if (!descriptor) {
3797
3797
  return;
3798
3798
  }
@@ -3805,7 +3805,7 @@ function startMotionPathPreview(elementId, path, options) {
3805
3805
  return;
3806
3806
  }
3807
3807
  const stage = domEl.offsetParent;
3808
- const descriptor = chunkG3JPCRKN_js.buildMotionPathPreview({
3808
+ const descriptor = chunkLY5535CF_js.buildMotionPathPreview({
3809
3809
  path,
3810
3810
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
3811
3811
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,