pptx-react-viewer 2.21.1 → 2.22.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 (106) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{AiChatPanel-E4NQEMEI.mjs → AiChatPanel-KDHDYBMP.mjs} +3 -3
  3. package/dist/AiChatPanel-KDHDYBMP.mjs.br +0 -0
  4. package/dist/AiChatPanel-KDHDYBMP.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-VKR2IFFC.js → AiChatPanel-WVRT4OLF.js} +23 -23
  6. package/dist/AiChatPanel-WVRT4OLF.js.br +0 -0
  7. package/dist/AiChatPanel-WVRT4OLF.js.gz +0 -0
  8. package/dist/{Model3DScene-JZKLB5YT.js → Model3DScene-COI2CG35.js} +2 -2
  9. package/dist/Model3DScene-COI2CG35.js.br +0 -0
  10. package/dist/Model3DScene-COI2CG35.js.gz +0 -0
  11. package/dist/{Model3DScene-65J6IE5Q.mjs → Model3DScene-I5SQKIZC.mjs} +1 -1
  12. package/dist/Model3DScene-I5SQKIZC.mjs.br +0 -0
  13. package/dist/Model3DScene-I5SQKIZC.mjs.gz +0 -0
  14. package/dist/{PowerPointViewer-DVFkeluD.d.ts → PowerPointViewer-SkkxAGKa.d.ts} +2 -2
  15. package/dist/PowerPointViewer-SkkxAGKa.d.ts.map +1 -0
  16. package/dist/SurfaceChart3DScene-2N4TPYPU.js +49 -0
  17. package/dist/SurfaceChart3DScene-2N4TPYPU.js.br +0 -0
  18. package/dist/SurfaceChart3DScene-2N4TPYPU.js.gz +0 -0
  19. package/dist/SurfaceChart3DScene-6LTF5QPW.mjs +47 -0
  20. package/dist/SurfaceChart3DScene-6LTF5QPW.mjs.br +0 -0
  21. package/dist/SurfaceChart3DScene-6LTF5QPW.mjs.gz +0 -0
  22. package/dist/{audience-content-store-C4BFFhV5.d.ts → audience-content-store-Bx4Yj2pN.d.ts} +2 -2
  23. package/dist/{audience-content-store-C4BFFhV5.d.ts.map → audience-content-store-Bx4Yj2pN.d.ts.map} +1 -1
  24. package/dist/{chunk-HYUJVSQJ.js → chunk-34UAGEJM.js} +643 -106
  25. package/dist/chunk-34UAGEJM.js.br +0 -0
  26. package/dist/chunk-34UAGEJM.js.gz +0 -0
  27. package/dist/{chunk-VWCUKKR3.mjs → chunk-57TM4MV4.mjs} +642 -107
  28. package/dist/chunk-57TM4MV4.mjs.br +0 -0
  29. package/dist/chunk-57TM4MV4.mjs.gz +0 -0
  30. package/dist/{chunk-WX3HQHR5.mjs → chunk-7BZYDUNM.mjs} +1 -1
  31. package/dist/chunk-7BZYDUNM.mjs.br +0 -0
  32. package/dist/chunk-7BZYDUNM.mjs.gz +0 -0
  33. package/dist/{chunk-DA6DF3EU.js → chunk-K7TFZ5MW.js} +147 -147
  34. package/dist/chunk-K7TFZ5MW.js.br +0 -0
  35. package/dist/chunk-K7TFZ5MW.js.gz +0 -0
  36. package/dist/{chunk-OSPNGQF3.js → chunk-KK6DOUES.js} +1921 -1860
  37. package/dist/chunk-KK6DOUES.js.br +0 -0
  38. package/dist/chunk-KK6DOUES.js.gz +0 -0
  39. package/dist/{chunk-C3JR7RMW.js → chunk-POP5IWYB.js} +3 -3
  40. package/dist/chunk-POP5IWYB.js.br +0 -0
  41. package/dist/chunk-POP5IWYB.js.gz +0 -0
  42. package/dist/{chunk-WRJ76D5S.mjs → chunk-RJFKXPMU.mjs} +1 -1
  43. package/dist/chunk-RJFKXPMU.mjs.br +0 -0
  44. package/dist/chunk-RJFKXPMU.mjs.gz +0 -0
  45. package/dist/{chunk-2SNHVHHB.mjs → chunk-TWU72BY4.mjs} +2 -2
  46. package/dist/chunk-TWU72BY4.mjs.br +0 -0
  47. package/dist/{chunk-2SNHVHHB.mjs.gz → chunk-TWU72BY4.mjs.gz} +0 -0
  48. package/dist/{chunk-CBGTLSY7.mjs → chunk-XIBTR7KJ.mjs} +125 -64
  49. package/dist/chunk-XIBTR7KJ.mjs.br +0 -0
  50. package/dist/chunk-XIBTR7KJ.mjs.gz +0 -0
  51. package/dist/{chunk-GJHO6HPF.js → chunk-YNHWNFE3.js} +385 -385
  52. package/dist/chunk-YNHWNFE3.js.br +0 -0
  53. package/dist/{chunk-GJHO6HPF.js.gz → chunk-YNHWNFE3.js.gz} +0 -0
  54. package/dist/index.d.ts +16 -1
  55. package/dist/index.js +45 -45
  56. package/dist/index.js.br +0 -0
  57. package/dist/index.js.gz +0 -0
  58. package/dist/index.mjs +5 -5
  59. package/dist/index.mjs.br +0 -0
  60. package/dist/index.mjs.gz +0 -0
  61. package/dist/internals.d.ts +6 -1
  62. package/dist/internals.js +78 -78
  63. package/dist/internals.js.br +0 -0
  64. package/dist/internals.js.gz +0 -0
  65. package/dist/internals.mjs +3 -3
  66. package/dist/internals.mjs.br +0 -0
  67. package/dist/internals.mjs.gz +0 -0
  68. package/dist/{types-TCH6icpi.d.ts → types-kLpvSPxq.d.ts} +11 -1
  69. package/dist/{types-TCH6icpi.d.ts.map → types-kLpvSPxq.d.ts.map} +1 -1
  70. package/dist/{useViewerBuildingBlocks-BKb0qs1j.d.ts → useViewerBuildingBlocks-fh7rq4jc.d.ts} +2 -2
  71. package/dist/{useViewerBuildingBlocks-BKb0qs1j.d.ts.map → useViewerBuildingBlocks-fh7rq4jc.d.ts.map} +1 -1
  72. package/dist/viewer/index.d.ts +16 -1
  73. package/dist/viewer/index.js +26 -26
  74. package/dist/viewer/index.js.br +0 -0
  75. package/dist/viewer/index.js.gz +0 -0
  76. package/dist/viewer/index.mjs +5 -5
  77. package/dist/viewer/index.mjs.br +0 -0
  78. package/dist/viewer/index.mjs.gz +0 -0
  79. package/package.json +1 -1
  80. package/dist/AiChatPanel-E4NQEMEI.mjs.br +0 -0
  81. package/dist/AiChatPanel-E4NQEMEI.mjs.gz +0 -0
  82. package/dist/AiChatPanel-VKR2IFFC.js.br +0 -0
  83. package/dist/AiChatPanel-VKR2IFFC.js.gz +0 -0
  84. package/dist/Model3DScene-65J6IE5Q.mjs.br +0 -0
  85. package/dist/Model3DScene-65J6IE5Q.mjs.gz +0 -0
  86. package/dist/Model3DScene-JZKLB5YT.js.br +0 -0
  87. package/dist/Model3DScene-JZKLB5YT.js.gz +0 -0
  88. package/dist/PowerPointViewer-DVFkeluD.d.ts.map +0 -1
  89. package/dist/chunk-2SNHVHHB.mjs.br +0 -0
  90. package/dist/chunk-C3JR7RMW.js.br +0 -0
  91. package/dist/chunk-C3JR7RMW.js.gz +0 -0
  92. package/dist/chunk-CBGTLSY7.mjs.br +0 -0
  93. package/dist/chunk-CBGTLSY7.mjs.gz +0 -0
  94. package/dist/chunk-DA6DF3EU.js.br +0 -0
  95. package/dist/chunk-DA6DF3EU.js.gz +0 -0
  96. package/dist/chunk-GJHO6HPF.js.br +0 -0
  97. package/dist/chunk-HYUJVSQJ.js.br +0 -0
  98. package/dist/chunk-HYUJVSQJ.js.gz +0 -0
  99. package/dist/chunk-OSPNGQF3.js.br +0 -0
  100. package/dist/chunk-OSPNGQF3.js.gz +0 -0
  101. package/dist/chunk-VWCUKKR3.mjs.br +0 -0
  102. package/dist/chunk-VWCUKKR3.mjs.gz +0 -0
  103. package/dist/chunk-WRJ76D5S.mjs.br +0 -0
  104. package/dist/chunk-WRJ76D5S.mjs.gz +0 -0
  105. package/dist/chunk-WX3HQHR5.mjs.br +0 -0
  106. package/dist/chunk-WX3HQHR5.mjs.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkU6A5FWWE_js = require('./chunk-U6A5FWWE.js');
4
- var chunkHYUJVSQJ_js = require('./chunk-HYUJVSQJ.js');
4
+ var chunk34UAGEJM_js = require('./chunk-34UAGEJM.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 chunkHYUJVSQJ_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunk34UAGEJM_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 chunkHYUJVSQJ_js.cloneHistorySnapshot(snapshot);
26
+ return chunk34UAGEJM_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 = chunkHYUJVSQJ_js.VIEWER_SHORTCUT_REFERENCE;
64
+ var SHORTCUT_REFERENCE_ITEMS = chunk34UAGEJM_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 = chunkHYUJVSQJ_js.SHAPE_PRESET_DEFS.map(
108
+ var SHAPE_PRESETS = chunk34UAGEJM_js.SHAPE_PRESET_DEFS.map(
109
109
  (def) => ({
110
110
  type: def.type,
111
111
  label: def.label,
@@ -264,7 +264,7 @@ function isConnectorOrLineElement(element) {
264
264
  if (element.type === "connector") {
265
265
  return true;
266
266
  }
267
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
267
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
268
268
  return false;
269
269
  }
270
270
  const st = getShapeType(element.shapeType);
@@ -273,7 +273,7 @@ function isConnectorOrLineElement(element) {
273
273
 
274
274
  // src/viewer/utils/image-style.ts
275
275
  function getImageMaskStyle(element) {
276
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
276
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
277
277
  return void 0;
278
278
  }
279
279
  const shapeType = element.shapeType;
@@ -282,7 +282,7 @@ function getImageMaskStyle(element) {
282
282
  }
283
283
  const normalized = shapeType.toLowerCase();
284
284
  if (normalized === "roundrect" || normalized === "round1rect" || normalized === "round2samerect" || normalized === "round2diagrect" || normalized === "sniproundrect" || normalized === "snip1rect" || normalized === "snip2diagrect") {
285
- const radiusPx = chunkHYUJVSQJ_js.getRoundRectRadiusPx2(element);
285
+ const radiusPx = chunk34UAGEJM_js.getRoundRectRadiusPx2(element);
286
286
  if (radiusPx <= 0.01) {
287
287
  return void 0;
288
288
  }
@@ -294,7 +294,7 @@ function getImageMaskStyle(element) {
294
294
  if (normalized === "can" || normalized === "cylinder") {
295
295
  return { borderRadius: "48% / 12%" };
296
296
  }
297
- const clipPath = chunkHYUJVSQJ_js.getResolvedShapeClipPath(element);
297
+ const clipPath = chunk34UAGEJM_js.getResolvedShapeClipPath(element);
298
298
  if (!clipPath) {
299
299
  return void 0;
300
300
  }
@@ -303,7 +303,7 @@ function getImageMaskStyle(element) {
303
303
  function getImageRenderStyle(element) {
304
304
  return {
305
305
  ...getImageMaskStyle(element) || {},
306
- ...chunkHYUJVSQJ_js.getImageFitStyle(element)
306
+ ...chunk34UAGEJM_js.getImageFitStyle(element)
307
307
  };
308
308
  }
309
309
  var CROP_SHAPE_CLIP_PATHS = {
@@ -316,7 +316,7 @@ var CROP_SHAPE_CLIP_PATHS = {
316
316
  star: "polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%)"
317
317
  };
318
318
  function getCropShapeClipPath(element) {
319
- if (!chunkHYUJVSQJ_js.isImageLikeElement(element)) {
319
+ if (!chunk34UAGEJM_js.isImageLikeElement(element)) {
320
320
  return void 0;
321
321
  }
322
322
  const shape = element.cropShape;
@@ -326,7 +326,7 @@ function getCropShapeClipPath(element) {
326
326
  return CROP_SHAPE_CLIP_PATHS[shape];
327
327
  }
328
328
  function getImageTilingStyle2(element) {
329
- return chunkHYUJVSQJ_js.getImageTilingStyle(element);
329
+ return chunk34UAGEJM_js.getImageTilingStyle(element);
330
330
  }
331
331
 
332
332
  // src/viewer/utils/geometry-image.ts
@@ -526,9 +526,9 @@ function registerMediaElement(elementId, el) {
526
526
  };
527
527
  }
528
528
  function executeMediaCommand(command, frameRoot) {
529
- return chunkHYUJVSQJ_js.runMediaCommand(
529
+ return chunk34UAGEJM_js.runMediaCommand(
530
530
  command,
531
- (targetId) => registry.get(targetId) ?? chunkHYUJVSQJ_js.findMediaElementByElementId(targetId, frameRoot?.())
531
+ (targetId) => registry.get(targetId) ?? chunk34UAGEJM_js.findMediaElementByElementId(targetId, frameRoot?.())
532
532
  );
533
533
  }
534
534
  function PresentationMediaController({
@@ -572,7 +572,7 @@ function PresentationMediaController({
572
572
  loop: shouldLoop,
573
573
  volume: playbackVolume,
574
574
  playbackRate
575
- } = chunkHYUJVSQJ_js.mediaPlaybackAttributes({
575
+ } = chunk34UAGEJM_js.mediaPlaybackAttributes({
576
576
  loop: element.loop,
577
577
  volume: element.volume,
578
578
  playbackSpeed: element.playbackSpeed
@@ -708,7 +708,7 @@ function PresentationMediaController({
708
708
  if (element.playAcrossSlides && element.mediaType === "audio") {
709
709
  const dataUrl = element.mediaData ?? resolvedDataUrl;
710
710
  if (dataUrl) {
711
- chunkHYUJVSQJ_js.registerPersistentAudio(
711
+ chunk34UAGEJM_js.registerPersistentAudio(
712
712
  element.id,
713
713
  dataUrl,
714
714
  element.mediaMimeType,
@@ -806,17 +806,17 @@ function Badge({
806
806
  "div",
807
807
  {
808
808
  className: `absolute inset-0 flex flex-col items-center justify-center ${isMissing ? "gap-1" : ""}`,
809
- ...{ [chunkHYUJVSQJ_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
809
+ ...{ [chunk34UAGEJM_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
810
810
  children: [
811
811
  /* @__PURE__ */ jsxRuntime.jsx(
812
812
  FallbackIcon,
813
813
  {
814
- paths: chunkHYUJVSQJ_js.mediaFallbackIcon(visual, element.mediaType),
814
+ paths: chunk34UAGEJM_js.mediaFallbackIcon(visual, element.mediaType),
815
815
  size: isMissing ? 32 : 48,
816
816
  className: isMissing ? "text-white/60" : "text-white/80 drop-shadow-md"
817
817
  }
818
818
  ),
819
- isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkHYUJVSQJ_js.mediaFallbackLabelKey(visual, element.mediaType)) })
819
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunk34UAGEJM_js.mediaFallbackLabelKey(visual, element.mediaType)) })
820
820
  ]
821
821
  }
822
822
  );
@@ -833,17 +833,17 @@ function Placeholder({
833
833
  "div",
834
834
  {
835
835
  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"}`,
836
- ...{ [chunkHYUJVSQJ_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
836
+ ...{ [chunk34UAGEJM_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
837
837
  children: [
838
838
  /* @__PURE__ */ jsxRuntime.jsx(
839
839
  FallbackIcon,
840
840
  {
841
- paths: chunkHYUJVSQJ_js.mediaFallbackIcon(visual, element.mediaType),
841
+ paths: chunk34UAGEJM_js.mediaFallbackIcon(visual, element.mediaType),
842
842
  size: isMissing ? 36 : element.mediaType === "audio" ? 24 : 32,
843
843
  className: isMissing ? "text-white/50" : "text-white/70"
844
844
  }
845
845
  ),
846
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkHYUJVSQJ_js.mediaFallbackLabelKey(visual, element.mediaType)) })
846
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunk34UAGEJM_js.mediaFallbackLabelKey(visual, element.mediaType)) })
847
847
  ]
848
848
  }
849
849
  );
@@ -853,7 +853,7 @@ function renderMediaFallback({
853
853
  posterUrl,
854
854
  surface
855
855
  }) {
856
- const visual = chunkHYUJVSQJ_js.mediaFallbackVisual(surface, {
856
+ const visual = chunk34UAGEJM_js.mediaFallbackVisual(surface, {
857
857
  hasPoster: Boolean(posterUrl),
858
858
  missing: element.mediaMissing === true
859
859
  });
@@ -882,7 +882,7 @@ function renderMediaElement(element, mediaDataUrls, options) {
882
882
  const dataUrl = element.mediaData ?? (mediaPath ? mediaDataUrls.get(mediaPath) : void 0);
883
883
  const trimFragment = buildTrimFragment(element);
884
884
  const posterUrl = element.posterFrameData ?? void 0;
885
- const shouldLoop = chunkHYUJVSQJ_js.mediaPlaybackAttributes(element).loop;
885
+ const shouldLoop = chunk34UAGEJM_js.mediaPlaybackAttributes(element).loop;
886
886
  const shouldAutoPlay = options?.autoPlay === true || element.autoPlay === true;
887
887
  const isFullScreen = options?.fullScreen === true;
888
888
  const isPresentationMode = options?.isPresentationMode === true;
@@ -965,19 +965,19 @@ function renderMediaElement(element, mediaDataUrls, options) {
965
965
 
966
966
  // src/viewer/utils/text-utils.tsx
967
967
  function getTextStyleForElement(element, fallbackColor) {
968
- return chunkHYUJVSQJ_js.buildTextBlockStyle(element, { fallbackColor });
968
+ return chunk34UAGEJM_js.buildTextBlockStyle(element, { fallbackColor });
969
969
  }
970
970
 
971
971
  // src/viewer/utils/text-layout.tsx
972
972
  function getTextLayoutStyle(element) {
973
- if (!chunkHYUJVSQJ_js.hasTextProperties(element)) {
973
+ if (!chunk34UAGEJM_js.hasTextProperties(element)) {
974
974
  return {};
975
975
  }
976
- const writingMode = chunkHYUJVSQJ_js.toCssWritingMode(element.textStyle?.textDirection);
977
- const textOrientation = chunkHYUJVSQJ_js.toCssTextOrientation(element.textStyle?.textDirection);
978
- const verticalDirection = chunkHYUJVSQJ_js.toCssVerticalDirection(element.textStyle?.textDirection);
976
+ const writingMode = chunk34UAGEJM_js.toCssWritingMode(element.textStyle?.textDirection);
977
+ const textOrientation = chunk34UAGEJM_js.toCssTextOrientation(element.textStyle?.textDirection);
978
+ const verticalDirection = chunk34UAGEJM_js.toCssVerticalDirection(element.textStyle?.textDirection);
979
979
  const textWrapNone = element.textStyle?.textWrap === "none";
980
- const hasParagraphIndents = chunkHYUJVSQJ_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
980
+ const hasParagraphIndents = chunk34UAGEJM_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
981
981
  const paragraphMarginLeft = element.textStyle?.paragraphMarginLeft;
982
982
  const paragraphIndent = element.textStyle?.paragraphIndent;
983
983
  const marginLeft = !hasParagraphIndents && typeof paragraphMarginLeft === "number" && paragraphMarginLeft !== 0 ? paragraphMarginLeft : void 0;
@@ -986,7 +986,7 @@ function getTextLayoutStyle(element) {
986
986
  const bodyBottom = element.textStyle?.bodyInsetBottom ?? DEFAULT_BODY_INSET_TB_PX;
987
987
  return {
988
988
  // Columns / flex anchoring / anchorCtr / tab-size / kinsoku, from shared.
989
- ...chunkHYUJVSQJ_js.buildTextBodyLayoutStyle(element),
989
+ ...chunk34UAGEJM_js.buildTextBodyLayoutStyle(element),
990
990
  // Body inset only. Paragraph spacing (spcBef/spcAft) is applied
991
991
  // per-paragraph by the paragraph renderer, not collapsed here.
992
992
  paddingTop: bodyTop,
@@ -1005,7 +1005,7 @@ function getTextLayoutStyle(element) {
1005
1005
 
1006
1006
  // src/viewer/utils/text-effects.tsx
1007
1007
  function buildTextBody3DSceneStyle2(textStyle) {
1008
- return chunkHYUJVSQJ_js.buildTextBody3DSceneStyle(textStyle);
1008
+ return chunk34UAGEJM_js.buildTextBody3DSceneStyle(textStyle);
1009
1009
  }
1010
1010
 
1011
1011
  // src/viewer/utils/text-warp-css.tsx
@@ -1190,13 +1190,13 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1190
1190
  if (!subElementAnimStates || subElementAnimStates.size === 0) {
1191
1191
  return renderedSegments;
1192
1192
  }
1193
- const paraKey = `${elementId}${chunkHYUJVSQJ_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1193
+ const paraKey = `${elementId}${chunk34UAGEJM_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1194
1194
  const paraState = subElementAnimStates.get(paraKey);
1195
1195
  if (paraState) {
1196
1196
  const style = buildAnimStyle(paraState);
1197
1197
  return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-anim-id": paraKey, style: { display: "inline", ...style }, children: renderedSegments }, paraKey);
1198
1198
  }
1199
- const spec = chunkHYUJVSQJ_js.buildTextBuildSpec(
1199
+ const spec = chunk34UAGEJM_js.buildTextBuildSpec(
1200
1200
  elementId,
1201
1201
  paraIndex,
1202
1202
  paraRuns.map((run) => ({ text: run.text, style: run })),
@@ -1214,7 +1214,7 @@ function wrapWithTextBuildAnimation(elementId, paraIndex, renderedSegments, para
1214
1214
  "span",
1215
1215
  {
1216
1216
  "data-anim-id": span.animId,
1217
- style: chunkHYUJVSQJ_js.textBuildSpanStyle(span),
1217
+ style: chunk34UAGEJM_js.textBuildSpanStyle(span),
1218
1218
  children: content
1219
1219
  },
1220
1220
  span.animId
@@ -1358,10 +1358,10 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1358
1358
  if (!needsScriptFonts || !text) {
1359
1359
  return text;
1360
1360
  }
1361
- const runs = chunkHYUJVSQJ_js.segmentByScript(text);
1361
+ const runs = chunk34UAGEJM_js.segmentByScript(text);
1362
1362
  if (runs.length <= 1) {
1363
1363
  if (runs.length === 1) {
1364
- const font = chunkHYUJVSQJ_js.resolveFontForScript(runs[0].script, scriptFonts);
1364
+ const font = chunk34UAGEJM_js.resolveFontForScript(runs[0].script, scriptFonts);
1365
1365
  if (font && font !== baseFontFamily) {
1366
1366
  return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { ...nestedStyle, fontFamily: font }, children: text });
1367
1367
  }
@@ -1369,7 +1369,7 @@ function renderScriptAwareText(text, needsScriptFonts, scriptFonts, baseFontFami
1369
1369
  return text;
1370
1370
  }
1371
1371
  return runs.map((run, i) => {
1372
- const font = chunkHYUJVSQJ_js.resolveFontForScript(run.script, scriptFonts);
1372
+ const font = chunk34UAGEJM_js.resolveFontForScript(run.script, scriptFonts);
1373
1373
  if (!font || font === baseFontFamily) {
1374
1374
  return /* @__PURE__ */ jsxRuntime.jsx(React6__default.default.Fragment, { children: run.text }, `${keyPrefix}-r${i}`);
1375
1375
  }
@@ -1380,7 +1380,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1380
1380
  if (!metric || !text) {
1381
1381
  return inner(text, keyPrefix);
1382
1382
  }
1383
- const pieces = chunkHYUJVSQJ_js.splitRunForMetrics(text, metric.font);
1383
+ const pieces = chunk34UAGEJM_js.splitRunForMetrics(text, metric.font);
1384
1384
  if (pieces.length <= 1) {
1385
1385
  return inner(text, keyPrefix);
1386
1386
  }
@@ -1389,7 +1389,7 @@ function renderMetricPieces(text, metric, keyPrefix, inner) {
1389
1389
  {
1390
1390
  style: {
1391
1391
  ...metric.nestedStyle,
1392
- letterSpacing: chunkHYUJVSQJ_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1392
+ letterSpacing: chunk34UAGEJM_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1393
1393
  },
1394
1394
  children: inner(piece.text, `${keyPrefix}-w${i}`)
1395
1395
  },
@@ -1476,8 +1476,8 @@ function renderSegmentContent(elementId, segmentIndex, textValue, lines, needsSc
1476
1476
  });
1477
1477
  }
1478
1478
  function renderEquationSegment(elementId, segmentIndex, equationXml, equationNumber) {
1479
- const mathml = chunkHYUJVSQJ_js.convertOmmlToMathMl(equationXml);
1480
- const safeMathml = mathml ? chunkHYUJVSQJ_js.sanitizeMathMl(mathml) : "";
1479
+ const mathml = chunk34UAGEJM_js.convertOmmlToMathMl(equationXml);
1480
+ const safeMathml = mathml ? chunk34UAGEJM_js.sanitizeMathMl(mathml) : "";
1481
1481
  const equationContent = safeMathml ? /* @__PURE__ */ jsxRuntime.jsx(
1482
1482
  "span",
1483
1483
  {
@@ -1537,7 +1537,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1537
1537
  const segmentStyle = segment?.style ?? {};
1538
1538
  const textValue = run.text;
1539
1539
  const lines = textValue.split("\n");
1540
- const resolvedSegmentColor = chunkHYUJVSQJ_js.normalizeHexColor(
1540
+ const resolvedSegmentColor = chunk34UAGEJM_js.normalizeHexColor(
1541
1541
  segmentStyle.color || element.textStyle?.color,
1542
1542
  run.hyperlink ? HYPERLINK_COLOR : fallbackColor
1543
1543
  );
@@ -1545,16 +1545,16 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1545
1545
  const baselineFraction = rawBaseline === 0 ? 0 : Math.abs(rawBaseline) >= 1e3 ? rawBaseline / 1e5 : rawBaseline / 100;
1546
1546
  const baselineFontScale = baselineFraction !== 0 ? BASELINE_FONT_SCALE : 1;
1547
1547
  const rawFontSize = segmentStyle.fontSize || element.textStyle?.fontSize || DEFAULT_TEXT_FONT_SIZE;
1548
- const baseFontSize = rawFontSize * chunkHYUJVSQJ_js.resolveAutoFitFontScale(element.textStyle);
1548
+ const baseFontSize = rawFontSize * chunk34UAGEJM_js.resolveAutoFitFontScale(element.textStyle);
1549
1549
  const baselineShift = baselineFraction !== 0 ? `${baselineFraction * baseFontSize}px` : void 0;
1550
1550
  const baseFontSizePt = baseFontSize * (72 / 96);
1551
1551
  const fontKerning = typeof segmentStyle.kerning === "number" ? segmentStyle.kerning === 0 ? "none" : baseFontSizePt >= segmentStyle.kerning / 100 ? "normal" : "none" : void 0;
1552
1552
  const rawFontFamily = segmentStyle.fontFamily || element.textStyle?.fontFamily;
1553
- const baseFontFamily = rawFontFamily ? chunkHYUJVSQJ_js.getSubstituteFontFamily(
1553
+ const baseFontFamily = rawFontFamily ? chunk34UAGEJM_js.getSubstituteFontFamily(
1554
1554
  rawFontFamily,
1555
- chunkHYUJVSQJ_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1555
+ chunk34UAGEJM_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1556
1556
  ) : DEFAULT_FONT_FAMILY2;
1557
- const scriptFont = (name, panose) => name ? chunkHYUJVSQJ_js.getSubstituteFontFamily(name, chunkHYUJVSQJ_js.parsePanoseString(panose)) : baseFontFamily;
1557
+ const scriptFont = (name, panose) => name ? chunk34UAGEJM_js.getSubstituteFontFamily(name, chunk34UAGEJM_js.parsePanoseString(panose)) : baseFontFamily;
1558
1558
  const scriptFonts = {
1559
1559
  latin: baseFontFamily,
1560
1560
  eastAsia: scriptFont(
@@ -1570,7 +1570,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1570
1570
  segmentStyle.symbolFontPanose ?? element.textStyle?.symbolFontPanose
1571
1571
  )
1572
1572
  };
1573
- const needsScriptFonts = chunkHYUJVSQJ_js.hasDistinctScriptFonts(scriptFonts);
1573
+ const needsScriptFonts = chunk34UAGEJM_js.hasDistinctScriptFonts(scriptFonts);
1574
1574
  const authoredLetterSpacing = typeof segmentStyle.characterSpacing === "number" && segmentStyle.characterSpacing !== 0 ? segmentStyle.characterSpacing / 100 * (96 / 72) : 0;
1575
1575
  const metricFont = {
1576
1576
  fontFamily: baseFontFamily,
@@ -1578,7 +1578,7 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1578
1578
  bold: Boolean(segmentStyle.bold),
1579
1579
  italic: Boolean(segmentStyle.italic)
1580
1580
  };
1581
- const nestedStyle = chunkHYUJVSQJ_js.nestedTextDecorationStyle(run.style);
1581
+ const nestedStyle = chunk34UAGEJM_js.nestedTextDecorationStyle(run.style);
1582
1582
  const metricContext = { font: metricFont, authoredPx: authoredLetterSpacing, nestedStyle };
1583
1583
  const spanStyle = { ...run.style };
1584
1584
  spanStyle.color = resolvedSegmentColor;
@@ -1586,11 +1586,11 @@ function renderParagraphRun(run, segment, ctx, keySuffix = "") {
1586
1586
  spanStyle.fontFamily = baseFontFamily;
1587
1587
  spanStyle.verticalAlign = baselineShift;
1588
1588
  spanStyle.fontKerning = fontKerning;
1589
- spanStyle.letterSpacing = chunkHYUJVSQJ_js.pieceLetterSpacing(
1589
+ spanStyle.letterSpacing = chunk34UAGEJM_js.pieceLetterSpacing(
1590
1590
  authoredLetterSpacing,
1591
- chunkHYUJVSQJ_js.resolveMetricTrackingPx(textValue, metricFont)
1591
+ chunk34UAGEJM_js.resolveMetricTrackingPx(textValue, metricFont)
1592
1592
  );
1593
- const hollow = chunkHYUJVSQJ_js.hollowTextFillStyle(segmentStyle, {
1593
+ const hollow = chunk34UAGEJM_js.hollowTextFillStyle(segmentStyle, {
1594
1594
  color: resolvedSegmentColor,
1595
1595
  textStroke: typeof spanStyle.WebkitTextStroke === "string" ? spanStyle.WebkitTextStroke : void 0
1596
1596
  });
@@ -1687,7 +1687,7 @@ function renderHyperlink(run, spanNode, key, ctx) {
1687
1687
  );
1688
1688
  }
1689
1689
  function renderTextSegments(element, fallbackColor, emptyFallback, findHighlights, onHyperlinkClick, fieldContext, subElementAnimStates, segmentOverrides, requireCtrlClick) {
1690
- if (!chunkHYUJVSQJ_js.hasTextProperties(element)) {
1690
+ if (!chunk34UAGEJM_js.hasTextProperties(element)) {
1691
1691
  return emptyFallback || null;
1692
1692
  }
1693
1693
  const segments = segmentOverrides ?? element.textSegments;
@@ -1697,7 +1697,7 @@ function renderTextSegments(element, fallbackColor, emptyFallback, findHighlight
1697
1697
  }
1698
1698
  return element.text || emptyFallback || "";
1699
1699
  }
1700
- const paragraphs = chunkHYUJVSQJ_js.buildParagraphs(element, fieldContext, segmentOverrides);
1700
+ const paragraphs = chunk34UAGEJM_js.buildParagraphs(element, fieldContext, segmentOverrides);
1701
1701
  const ctx = {
1702
1702
  element,
1703
1703
  fallbackColor,
@@ -1830,13 +1830,13 @@ function hexToRgbUnit(hex) {
1830
1830
  };
1831
1831
  }
1832
1832
  function getDuotoneColors(element) {
1833
- if (!chunkHYUJVSQJ_js.isImageLikeElement(element)) {
1833
+ if (!chunk34UAGEJM_js.isImageLikeElement(element)) {
1834
1834
  return void 0;
1835
1835
  }
1836
1836
  return element.imageEffects?.duotone;
1837
1837
  }
1838
1838
  function buildLineShadowCss(element) {
1839
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
1839
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
1840
1840
  return void 0;
1841
1841
  }
1842
1842
  const ss = element.shapeStyle;
@@ -1847,13 +1847,13 @@ function buildLineShadowCss(element) {
1847
1847
  const offsetY = typeof ss.lineShadowOffsetY === "number" ? ss.lineShadowOffsetY : 2;
1848
1848
  const blur = typeof ss.lineShadowBlur === "number" ? Math.max(0, ss.lineShadowBlur) : 4;
1849
1849
  const opacity = typeof ss.lineShadowOpacity === "number" ? Math.max(0, Math.min(1, ss.lineShadowOpacity)) : 0.35;
1850
- return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkHYUJVSQJ_js.colorWithOpacity(
1851
- chunkHYUJVSQJ_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1850
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunk34UAGEJM_js.colorWithOpacity(
1851
+ chunk34UAGEJM_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1852
1852
  opacity
1853
1853
  )}`;
1854
1854
  }
1855
1855
  function buildLineGlowFilter(element) {
1856
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
1856
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
1857
1857
  return void 0;
1858
1858
  }
1859
1859
  const ss = element.shapeStyle;
@@ -1862,14 +1862,14 @@ function buildLineGlowFilter(element) {
1862
1862
  }
1863
1863
  const glowOpacity = typeof ss.lineGlowOpacity === "number" ? ss.lineGlowOpacity : 0.75;
1864
1864
  const glowRad = Math.round(Math.max(0, ss.lineGlowRadius));
1865
- const glowCol = chunkHYUJVSQJ_js.colorWithOpacity(chunkHYUJVSQJ_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1865
+ const glowCol = chunk34UAGEJM_js.colorWithOpacity(chunk34UAGEJM_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1866
1866
  return `drop-shadow(0 0 ${glowRad}px ${glowCol})`;
1867
1867
  }
1868
1868
  function getDagDuotoneFilterId(elementId) {
1869
1869
  return `dag-duotone-${elementId}`;
1870
1870
  }
1871
1871
  function hasDagDuotoneEffect(element) {
1872
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
1872
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
1873
1873
  return false;
1874
1874
  }
1875
1875
  return Boolean(element.shapeStyle?.dagDuotone);
@@ -1921,7 +1921,7 @@ function renderDagDuotoneSvgFilter(elementId, color1, color2) {
1921
1921
 
1922
1922
  // src/viewer/utils/shape-visual-3d.ts
1923
1923
  function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elementHeight) {
1924
- return chunkHYUJVSQJ_js.build3DExtrusionData(
1924
+ return chunk34UAGEJM_js.build3DExtrusionData(
1925
1925
  shape3d,
1926
1926
  scene3d,
1927
1927
  fillColor,
@@ -1930,7 +1930,7 @@ function build3DExtrusionData2(shape3d, scene3d, fillColor, elementWidth, elemen
1930
1930
  );
1931
1931
  }
1932
1932
  function apply3dEffects2(base, scene3d, shape3d, fillColorFallback) {
1933
- chunkHYUJVSQJ_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
1933
+ chunk34UAGEJM_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
1934
1934
  }
1935
1935
 
1936
1936
  // src/viewer/utils/shape-visual-style.ts
@@ -1938,13 +1938,13 @@ function rendersCustomVectorPath(element) {
1938
1938
  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;
1939
1939
  }
1940
1940
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1941
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
1941
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
1942
1942
  return {};
1943
1943
  }
1944
1944
  const ss = element.shapeStyle;
1945
- const fill = animatesFill ? void 0 : chunkHYUJVSQJ_js.getComputedFillStyle(element, parentGroupFill);
1946
- const fx = chunkHYUJVSQJ_js.getComputedEffectStyle(element);
1947
- const stroke = chunkHYUJVSQJ_js.getComputedStrokeStyle(element);
1945
+ const fill = animatesFill ? void 0 : chunk34UAGEJM_js.getComputedFillStyle(element, parentGroupFill);
1946
+ const fx = chunk34UAGEJM_js.getComputedEffectStyle(element);
1947
+ const stroke = chunk34UAGEJM_js.getComputedStrokeStyle(element);
1948
1948
  const base = {
1949
1949
  // A gradient fill REPLACES the solid fill, it does not sit on top of it;
1950
1950
  // the whole precedence lives in shared's `getComputedFillStyle`.
@@ -1979,7 +1979,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1979
1979
  strokeLinecap: stroke.strokeLinecap
1980
1980
  };
1981
1981
  apply3dEffects2(base, ss?.scene3d, ss?.shape3d, ss?.fillColor ?? fillColor);
1982
- if (rendersCustomVectorPath(element) || chunkHYUJVSQJ_js.isStrokeOnlyPresetElement(element)) {
1982
+ if (rendersCustomVectorPath(element) || chunk34UAGEJM_js.isStrokeOnlyPresetElement(element)) {
1983
1983
  base.backgroundColor = "transparent";
1984
1984
  base.backgroundImage = void 0;
1985
1985
  base.borderWidth = void 0;
@@ -1990,7 +1990,7 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
1990
1990
  base.backgroundColor = void 0;
1991
1991
  base.backgroundImage = void 0;
1992
1992
  }
1993
- const geometry = chunkHYUJVSQJ_js.resolveShapeGeometry(element);
1993
+ const geometry = chunk34UAGEJM_js.resolveShapeGeometry(element);
1994
1994
  switch (geometry.kind) {
1995
1995
  case "bare":
1996
1996
  return { backgroundColor: "transparent", borderWidth: 0, borderStyle: "none" };
@@ -2016,13 +2016,13 @@ function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _stroke
2016
2016
  function getConnectorAdjustment(element, key, fallback) {
2017
2017
  const direct = element.shapeAdjustments?.[key];
2018
2018
  if (typeof direct === "number" && Number.isFinite(direct)) {
2019
- return chunkHYUJVSQJ_js.clampUnitInterval(direct / 1e5);
2019
+ return chunk34UAGEJM_js.clampUnitInterval(direct / 1e5);
2020
2020
  }
2021
2021
  const fallbackKey = element.shapeAdjustments?.adj;
2022
2022
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2023
- return chunkHYUJVSQJ_js.clampUnitInterval(fallbackKey / 1e5);
2023
+ return chunk34UAGEJM_js.clampUnitInterval(fallbackKey / 1e5);
2024
2024
  }
2025
- return chunkHYUJVSQJ_js.clampUnitInterval(fallback);
2025
+ return chunk34UAGEJM_js.clampUnitInterval(fallback);
2026
2026
  }
2027
2027
  function getConnectorPathGeometry(element) {
2028
2028
  const width = Math.max(element.width, 0);
@@ -2155,7 +2155,7 @@ function toHexByte(value) {
2155
2155
  return clamped.toString(16).padStart(2, "0");
2156
2156
  }
2157
2157
  function shiftHex(hex, factor, towardsWhite) {
2158
- const channels = chunkHYUJVSQJ_js.hexToRgbChannels(hex);
2158
+ const channels = chunk34UAGEJM_js.hexToRgbChannels(hex);
2159
2159
  if (!channels) {
2160
2160
  return hex;
2161
2161
  }
@@ -2181,7 +2181,7 @@ function buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity) {
2181
2181
  const fillOff = subpath.fillMode === "none" || !hasFill;
2182
2182
  return {
2183
2183
  d: subpath.d,
2184
- fill: fillOff ? "none" : chunkHYUJVSQJ_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2184
+ fill: fillOff ? "none" : chunk34UAGEJM_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2185
2185
  stroked: subpath.stroke !== false
2186
2186
  };
2187
2187
  });
@@ -2197,11 +2197,11 @@ function strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray) {
2197
2197
  strokePaint,
2198
2198
  strokeWidth,
2199
2199
  dashArray,
2200
- lineCap: chunkHYUJVSQJ_js.svgLineCap(shapeStyle?.lineCap),
2200
+ lineCap: chunk34UAGEJM_js.svgLineCap(shapeStyle?.lineCap),
2201
2201
  lineJoin,
2202
2202
  miterLimit,
2203
- offsets: chunkHYUJVSQJ_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2204
- widths: chunkHYUJVSQJ_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2203
+ offsets: chunk34UAGEJM_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2204
+ widths: chunk34UAGEJM_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2205
2205
  };
2206
2206
  }
2207
2207
  function strokeStrands(d, keyBase, ctx) {
@@ -2249,9 +2249,9 @@ function gradientDefs(gradient) {
2249
2249
  }
2250
2250
  function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredPaths, shapeStyle, hasFill, fillColor, fillOpacity, strokePaint, strokeWidth, dashArray, animatesFill = false, gradient) {
2251
2251
  const ctx = strokeContext(shapeStyle, strokePaint, strokeWidth, dashArray);
2252
- const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkHYUJVSQJ_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2252
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunk34UAGEJM_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2253
2253
  const needsPerSubpath = subpaths !== void 0 && subpaths.some((sp) => sp.fillMode && sp.fillMode !== "norm" || sp.stroke === false);
2254
- const gradientPaint = gradient ? chunkHYUJVSQJ_js.svgGradientFillRef(gradient) : void 0;
2254
+ const gradientPaint = gradient ? chunk34UAGEJM_js.svgGradientFillRef(gradient) : void 0;
2255
2255
  const nodes = [];
2256
2256
  if (subpaths && needsPerSubpath) {
2257
2257
  const paints = buildCustomSubpathPaints(subpaths, hasFill, fillColor, fillOpacity);
@@ -2283,7 +2283,7 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2283
2283
  "path",
2284
2284
  {
2285
2285
  d: pathData,
2286
- fill: animatesFill ? "inherit" : gradientPaint ?? chunkHYUJVSQJ_js.colorWithOpacity(fillColor, fillOpacity),
2286
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunk34UAGEJM_js.colorWithOpacity(fillColor, fillOpacity),
2287
2287
  stroke: "none",
2288
2288
  vectorEffect: "non-scaling-stroke"
2289
2289
  },
@@ -2309,14 +2309,14 @@ function renderCustomGeometryVector(pathData, pathWidth, pathHeight, structuredP
2309
2309
  );
2310
2310
  }
2311
2311
  function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor, animatesFill, animatesStroke) {
2312
- if (!chunkHYUJVSQJ_js.hasShapeProperties(element)) {
2312
+ if (!chunk34UAGEJM_js.hasShapeProperties(element)) {
2313
2313
  return null;
2314
2314
  }
2315
2315
  const normalizedType = (element.shapeType || "").toLowerCase();
2316
- const fillPaint = animatesFill ? "inherit" : chunkHYUJVSQJ_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2317
- const strokePaint = animatesStroke ? "inherit" : chunkHYUJVSQJ_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2318
- const dashType = chunkHYUJVSQJ_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2319
- const dashArray = chunkHYUJVSQJ_js.getSvgStrokeDasharray(
2316
+ const fillPaint = animatesFill ? "inherit" : chunk34UAGEJM_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2317
+ const strokePaint = animatesStroke ? "inherit" : chunk34UAGEJM_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2318
+ const dashType = chunk34UAGEJM_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2319
+ const dashArray = chunk34UAGEJM_js.getSvgStrokeDasharray(
2320
2320
  dashType,
2321
2321
  Math.max(strokeWidth, 1),
2322
2322
  element.shapeStyle?.customDashSegments
@@ -2397,21 +2397,21 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2397
2397
  // container's `background-image` is suppressed for custom geometry, so
2398
2398
  // without this the shape fell back to the parser's representative solid
2399
2399
  // and lost every fade (issue #132).
2400
- chunkHYUJVSQJ_js.buildSvgGradientDef(element.shapeStyle, element.id)
2400
+ chunk34UAGEJM_js.buildSvgGradientDef(element.shapeStyle, element.id)
2401
2401
  );
2402
2402
  }
2403
- if (chunkHYUJVSQJ_js.isCalloutShape(normalizedType)) {
2403
+ if (chunk34UAGEJM_js.isCalloutShape(normalizedType)) {
2404
2404
  const width = Math.max(element.width, 1);
2405
2405
  const height = Math.max(element.height, 1);
2406
- const geometry = chunkHYUJVSQJ_js.getCalloutLeaderLineGeometry(
2406
+ const geometry = chunk34UAGEJM_js.getCalloutLeaderLineGeometry(
2407
2407
  normalizedType,
2408
2408
  width,
2409
2409
  height,
2410
2410
  element.shapeAdjustments
2411
2411
  );
2412
2412
  if (geometry && geometry.points.length >= 2) {
2413
- const leaderPath = chunkHYUJVSQJ_js.buildCalloutLeaderLineSvgPath(geometry);
2414
- const bounds = chunkHYUJVSQJ_js.getCalloutViewBoxBounds(width, height, geometry);
2413
+ const leaderPath = chunk34UAGEJM_js.buildCalloutLeaderLineSvgPath(geometry);
2414
+ const bounds = chunk34UAGEJM_js.getCalloutViewBoxBounds(width, height, geometry);
2415
2415
  const lineStroke = Math.max(strokeWidth, 1);
2416
2416
  const offsetLeft = bounds.minX;
2417
2417
  const offsetTop = bounds.minY;
@@ -2474,10 +2474,10 @@ function renderVectorShape(element, hasFill, fillColor, strokeWidth, strokeColor
2474
2474
  const endArrowW = element.shapeStyle?.connectorEndArrowWidth;
2475
2475
  const endArrowL = element.shapeStyle?.connectorEndArrowLength;
2476
2476
  const compoundLine = element.shapeStyle?.compoundLine;
2477
- const connectorLineCap = chunkHYUJVSQJ_js.svgLineCap(element.shapeStyle?.lineCap);
2477
+ const connectorLineCap = chunk34UAGEJM_js.svgLineCap(element.shapeStyle?.lineCap);
2478
2478
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2479
- const offsets = chunkHYUJVSQJ_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2480
- const widths = chunkHYUJVSQJ_js.getCompoundLineWidths(compoundLine, strokeWidth);
2479
+ const offsets = chunk34UAGEJM_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2480
+ const widths = chunk34UAGEJM_js.getCompoundLineWidths(compoundLine, strokeWidth);
2481
2481
  return /* @__PURE__ */ jsxRuntime.jsxs(
2482
2482
  "svg",
2483
2483
  {
@@ -2544,15 +2544,15 @@ function parseGradientFillCss(gradFill) {
2544
2544
  }
2545
2545
  const parsed = stops.map((gs) => {
2546
2546
  const pos = Number.parseInt(String(gs["@_pos"] || "0"), 10) / 1e3;
2547
- const color = chunkHYUJVSQJ_js.parseDrawingColor(gs) ?? "#888888";
2548
- const opacity = chunkHYUJVSQJ_js.parseDrawingColorOpacity(gs);
2549
- return { pos, color: chunkHYUJVSQJ_js.colorWithOpacity(color, opacity) };
2547
+ const color = chunk34UAGEJM_js.parseDrawingColor(gs) ?? "#888888";
2548
+ const opacity = chunk34UAGEJM_js.parseDrawingColorOpacity(gs);
2549
+ return { pos, color: chunk34UAGEJM_js.colorWithOpacity(color, opacity) };
2550
2550
  }).sort((a, b) => a.pos - b.pos);
2551
2551
  const stopStrings = parsed.map((s) => `${s.color} ${s.pos.toFixed(1)}%`).join(", ");
2552
2552
  const lin = gradFill["a:lin"];
2553
2553
  if (lin) {
2554
2554
  const angRaw = Number.parseInt(String(lin["@_ang"] || "0"), 10);
2555
- const angleDeg = Math.round(chunkHYUJVSQJ_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2555
+ const angleDeg = Math.round(chunk34UAGEJM_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2556
2556
  return `linear-gradient(${angleDeg}deg, ${stopStrings})`;
2557
2557
  }
2558
2558
  const path = gradFill["a:path"];
@@ -2587,8 +2587,8 @@ function parsePatternFillCss(pattFill) {
2587
2587
  if (!pattFill) {
2588
2588
  return void 0;
2589
2589
  }
2590
- const fgColor = chunkHYUJVSQJ_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2591
- const bgColor = chunkHYUJVSQJ_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2590
+ const fgColor = chunk34UAGEJM_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2591
+ const bgColor = chunk34UAGEJM_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2592
2592
  const preset = String(pattFill["@_prst"] || "ltDnDiag");
2593
2593
  switch (preset) {
2594
2594
  case "ltHorz":
@@ -2699,11 +2699,11 @@ function parseCellBorders(cellProperties) {
2699
2699
  const prstDash = ln["a:prstDash"];
2700
2700
  const dashVal = prstDash ? String(prstDash["@_val"] || "") : void 0;
2701
2701
  const cssBorderStyle = ooxmlDashToCss(dashVal);
2702
- const color = chunkHYUJVSQJ_js.parseDrawingColor(ln["a:solidFill"]);
2702
+ const color = chunk34UAGEJM_js.parseDrawingColor(ln["a:solidFill"]);
2703
2703
  if (color) {
2704
- const opacity = chunkHYUJVSQJ_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2704
+ const opacity = chunk34UAGEJM_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2705
2705
  const key = `${edge.prefix}`;
2706
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkHYUJVSQJ_js.colorWithOpacity(color, opacity)}`;
2706
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk34UAGEJM_js.colorWithOpacity(color, opacity)}`;
2707
2707
  }
2708
2708
  }
2709
2709
  return borderStyle;
@@ -2716,7 +2716,7 @@ function parseCellTextEffects(runProps) {
2716
2716
  const textShadowParts = [];
2717
2717
  const outerShdw = effectLst["a:outerShdw"];
2718
2718
  if (outerShdw) {
2719
- const shdwColor = chunkHYUJVSQJ_js.parseDrawingColor(outerShdw);
2719
+ const shdwColor = chunk34UAGEJM_js.parseDrawingColor(outerShdw);
2720
2720
  if (shdwColor) {
2721
2721
  const blurRad = Number.parseInt(String(outerShdw["@_blurRad"] || "0"), 10);
2722
2722
  const blurPx = blurRad > 0 ? Math.round(blurRad / 12700) : 0;
@@ -2734,7 +2734,7 @@ function parseCellTextEffects(runProps) {
2734
2734
  }
2735
2735
  const glow = effectLst["a:glow"];
2736
2736
  if (glow) {
2737
- const glowColor = chunkHYUJVSQJ_js.parseDrawingColor(glow);
2737
+ const glowColor = chunk34UAGEJM_js.parseDrawingColor(glow);
2738
2738
  if (glowColor) {
2739
2739
  const glowRad = Number.parseInt(String(glow["@_rad"] || "0"), 10);
2740
2740
  const glowPx = glowRad > 0 ? Math.round(glowRad / 12700) : 2;
@@ -2814,10 +2814,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2814
2814
  if (runProps?.["@_u"] !== void 0) {
2815
2815
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
2816
2816
  }
2817
- const runColor = chunkHYUJVSQJ_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkHYUJVSQJ_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2817
+ const runColor = chunk34UAGEJM_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk34UAGEJM_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2818
2818
  if (runColor) {
2819
- const opacity = chunkHYUJVSQJ_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2820
- cellStyle.color = chunkHYUJVSQJ_js.colorWithOpacity(runColor, opacity);
2819
+ const opacity = chunk34UAGEJM_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2820
+ cellStyle.color = chunk34UAGEJM_js.colorWithOpacity(runColor, opacity);
2821
2821
  }
2822
2822
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
2823
2823
  if (fontFamily) {
@@ -2827,15 +2827,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2827
2827
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
2828
2828
  }
2829
2829
  const cellProperties = cellXml["a:tcPr"];
2830
- const cellFill = chunkHYUJVSQJ_js.parseDrawingColor(
2830
+ const cellFill = chunk34UAGEJM_js.parseDrawingColor(
2831
2831
  cellProperties?.["a:solidFill"],
2832
2832
  schemeColorOverrides
2833
2833
  );
2834
2834
  if (cellFill) {
2835
- const opacity = chunkHYUJVSQJ_js.parseDrawingColorOpacity(
2835
+ const opacity = chunk34UAGEJM_js.parseDrawingColorOpacity(
2836
2836
  cellProperties?.["a:solidFill"]
2837
2837
  );
2838
- cellStyle.backgroundColor = chunkHYUJVSQJ_js.colorWithOpacity(cellFill, opacity);
2838
+ cellStyle.backgroundColor = chunk34UAGEJM_js.colorWithOpacity(cellFill, opacity);
2839
2839
  } else {
2840
2840
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
2841
2841
  if (gradCss) {
@@ -2850,16 +2850,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2850
2850
  const edgeBorders = parseCellBorders(cellProperties);
2851
2851
  Object.assign(cellStyle, edgeBorders);
2852
2852
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
2853
- const borderColor = chunkHYUJVSQJ_js.parseDrawingColor(
2853
+ const borderColor = chunk34UAGEJM_js.parseDrawingColor(
2854
2854
  cellProperties?.["a:lnL"]?.["a:solidFill"],
2855
2855
  schemeColorOverrides
2856
- ) || chunkHYUJVSQJ_js.parseDrawingColor(
2856
+ ) || chunk34UAGEJM_js.parseDrawingColor(
2857
2857
  cellProperties?.["a:lnR"]?.["a:solidFill"],
2858
2858
  schemeColorOverrides
2859
- ) || chunkHYUJVSQJ_js.parseDrawingColor(
2859
+ ) || chunk34UAGEJM_js.parseDrawingColor(
2860
2860
  cellProperties?.["a:lnT"]?.["a:solidFill"],
2861
2861
  schemeColorOverrides
2862
- ) || chunkHYUJVSQJ_js.parseDrawingColor(
2862
+ ) || chunk34UAGEJM_js.parseDrawingColor(
2863
2863
  cellProperties?.["a:lnB"]?.["a:solidFill"],
2864
2864
  schemeColorOverrides
2865
2865
  );
@@ -2931,7 +2931,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
2931
2931
  if (element.type !== "table") {
2932
2932
  return void 0;
2933
2933
  }
2934
- return chunkHYUJVSQJ_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2934
+ return chunk34UAGEJM_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2935
2935
  tableStyleMap: styleCtx?.tableStyleMap,
2936
2936
  colorScheme: styleCtx?.theme?.colorScheme,
2937
2937
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3007,7 +3007,7 @@ function renderTableCellContent(cell, fallbackText) {
3007
3007
  return /* @__PURE__ */ jsxRuntime.jsx(
3008
3008
  "span",
3009
3009
  {
3010
- style: { position: "relative", ...chunkHYUJVSQJ_js.cellRunStyle(run) },
3010
+ style: { position: "relative", ...chunk34UAGEJM_js.cellRunStyle(run) },
3011
3011
  children: run.text
3012
3012
  },
3013
3013
  `r-${index}`
@@ -3015,7 +3015,7 @@ function renderTableCellContent(cell, fallbackText) {
3015
3015
  });
3016
3016
  }
3017
3017
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3018
- return chunkHYUJVSQJ_js.getCellDiagonalBorders(style, tableData, pos, {
3018
+ return chunk34UAGEJM_js.getCellDiagonalBorders(style, tableData, pos, {
3019
3019
  tableStyleMap: styleCtx?.tableStyleMap,
3020
3020
  colorScheme: styleCtx?.theme?.colorScheme,
3021
3021
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3148,7 +3148,7 @@ function TableResizeOverlay({
3148
3148
  const containerRef = React6.useRef(null);
3149
3149
  const [rowBounds, setRowBounds] = React6.useState([]);
3150
3150
  const dragRef = React6.useRef(null);
3151
- const colBoundaries = React6.useMemo(() => chunkHYUJVSQJ_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3151
+ const colBoundaries = React6.useMemo(() => chunk34UAGEJM_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3152
3152
  const measureRows = React6.useCallback(() => {
3153
3153
  const container = containerRef.current;
3154
3154
  if (!container) {
@@ -3195,11 +3195,11 @@ function TableResizeOverlay({
3195
3195
  const rect = containerRef.current.getBoundingClientRect();
3196
3196
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
3197
3197
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
3198
- onResizeColumns(chunkHYUJVSQJ_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3198
+ onResizeColumns(chunk34UAGEJM_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3199
3199
  } else if (drag.type === "row" && onResizeRow) {
3200
3200
  const deltaY = e.clientY - drag.startPos;
3201
- const newHeight = chunkHYUJVSQJ_js.computeResizedRowHeight(
3202
- drag.initialRowHeight ?? chunkHYUJVSQJ_js.DEFAULT_ROW_HEIGHT,
3201
+ const newHeight = chunk34UAGEJM_js.computeResizedRowHeight(
3202
+ drag.initialRowHeight ?? chunk34UAGEJM_js.DEFAULT_ROW_HEIGHT,
3203
3203
  deltaY
3204
3204
  );
3205
3205
  onResizeRow(drag.index, newHeight);
@@ -3237,7 +3237,7 @@ function TableResizeOverlay({
3237
3237
  e.stopPropagation();
3238
3238
  const table = containerRef.current?.querySelector("table");
3239
3239
  const tr = table?.querySelectorAll("tbody > tr")[index];
3240
- const actualHeight = tr?.offsetHeight ?? chunkHYUJVSQJ_js.DEFAULT_ROW_HEIGHT;
3240
+ const actualHeight = tr?.offsetHeight ?? chunk34UAGEJM_js.DEFAULT_ROW_HEIGHT;
3241
3241
  document.body.style.cursor = "row-resize";
3242
3242
  document.body.style.userSelect = "none";
3243
3243
  dragRef.current = {
@@ -3284,7 +3284,7 @@ function renderTableFromTableData(element, textStyle, options) {
3284
3284
  colorScheme: options?.styleCtx?.theme?.colorScheme,
3285
3285
  fontScheme: options?.styleCtx?.theme?.fontScheme
3286
3286
  };
3287
- const cellCss = (cell, rowIndex, cellIndex) => chunkHYUJVSQJ_js.tableCellCss(
3287
+ const cellCss = (cell, rowIndex, cellIndex) => chunk34UAGEJM_js.tableCellCss(
3288
3288
  tableData,
3289
3289
  cell,
3290
3290
  { rowIndex, cellIndex, rowCount, columnCount },
@@ -3297,7 +3297,7 @@ function renderTableFromTableData(element, textStyle, options) {
3297
3297
  }
3298
3298
  const first = selectedCell.selectedCells[0];
3299
3299
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3300
- return chunkHYUJVSQJ_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3300
+ return chunk34UAGEJM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3301
3301
  })();
3302
3302
  return /* @__PURE__ */ jsxRuntime.jsx(
3303
3303
  TableResizeOverlay,
@@ -3318,9 +3318,9 @@ function renderTableFromTableData(element, textStyle, options) {
3318
3318
  {
3319
3319
  className: "w-full h-full border-collapse table-fixed",
3320
3320
  style: {
3321
- fontFamily: chunkHYUJVSQJ_js.DEFAULT_FONT_FAMILY,
3321
+ fontFamily: chunk34UAGEJM_js.DEFAULT_FONT_FAMILY,
3322
3322
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3323
- ...chunkHYUJVSQJ_js.tableContainerCss(tableData)
3323
+ ...chunk34UAGEJM_js.tableContainerCss(tableData)
3324
3324
  },
3325
3325
  children: [
3326
3326
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3339,7 +3339,7 @@ function renderTableFromTableData(element, textStyle, options) {
3339
3339
  return null;
3340
3340
  }
3341
3341
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
3342
- const isInMultiSelection = chunkHYUJVSQJ_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3342
+ const isInMultiSelection = chunk34UAGEJM_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3343
3343
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
3344
3344
  const diag = getCellDiagonalBorders2(
3345
3345
  cell.style,
@@ -3368,7 +3368,7 @@ function renderTableFromTableData(element, textStyle, options) {
3368
3368
  }
3369
3369
  event.stopPropagation();
3370
3370
  if (event.shiftKey && selectedCell) {
3371
- const rect = chunkHYUJVSQJ_js.computeSelectionRect(
3371
+ const rect = chunk34UAGEJM_js.computeSelectionRect(
3372
3372
  selectedCell.rowIndex,
3373
3373
  selectedCell.columnIndex,
3374
3374
  rowIndex,
@@ -3378,7 +3378,7 @@ function renderTableFromTableData(element, textStyle, options) {
3378
3378
  options?.onSelectCell?.({
3379
3379
  rowIndex: selectedCell.rowIndex,
3380
3380
  columnIndex: selectedCell.columnIndex,
3381
- selectedCells: chunkHYUJVSQJ_js.rectToCells(rect)
3381
+ selectedCells: chunk34UAGEJM_js.rectToCells(rect)
3382
3382
  });
3383
3383
  } else {
3384
3384
  options?.onSelectCell?.({
@@ -3454,7 +3454,7 @@ function renderTableElement(element, textStyle, options) {
3454
3454
  }
3455
3455
  const first = selectedCell.selectedCells[0];
3456
3456
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3457
- return chunkHYUJVSQJ_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3457
+ return chunk34UAGEJM_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3458
3458
  })();
3459
3459
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
3460
3460
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3476,9 +3476,9 @@ function renderTableElement(element, textStyle, options) {
3476
3476
  {
3477
3477
  className: "w-full h-full border-collapse table-fixed",
3478
3478
  style: {
3479
- fontFamily: chunkHYUJVSQJ_js.DEFAULT_FONT_FAMILY,
3479
+ fontFamily: chunk34UAGEJM_js.DEFAULT_FONT_FAMILY,
3480
3480
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3481
- ...chunkHYUJVSQJ_js.tableContainerCss(tableEl.tableData)
3481
+ ...chunk34UAGEJM_js.tableContainerCss(tableEl.tableData)
3482
3482
  },
3483
3483
  children: [
3484
3484
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3535,7 +3535,7 @@ function renderTableElement(element, textStyle, options) {
3535
3535
  color: textStyle.color,
3536
3536
  ...bandStyle,
3537
3537
  ...xmlCellStyle,
3538
- ...tdCellOverride ? chunkHYUJVSQJ_js.cellStyleToCss(tdCellOverride) : void 0,
3538
+ ...tdCellOverride ? chunk34UAGEJM_js.cellStyleToCss(tdCellOverride) : void 0,
3539
3539
  ...diag ? { position: "relative" } : void 0
3540
3540
  };
3541
3541
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3545,7 +3545,7 @@ function renderTableElement(element, textStyle, options) {
3545
3545
  "border px-1 py-0.5 align-top",
3546
3546
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
3547
3547
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
3548
- chunkHYUJVSQJ_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3548
+ chunk34UAGEJM_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3549
3549
  ),
3550
3550
  colSpan,
3551
3551
  rowSpan: rSpan,
@@ -3556,7 +3556,7 @@ function renderTableElement(element, textStyle, options) {
3556
3556
  }
3557
3557
  event.stopPropagation();
3558
3558
  if (event.shiftKey && selectedCell && tableEl.tableData) {
3559
- const rect = chunkHYUJVSQJ_js.computeSelectionRect(
3559
+ const rect = chunk34UAGEJM_js.computeSelectionRect(
3560
3560
  selectedCell.rowIndex,
3561
3561
  selectedCell.columnIndex,
3562
3562
  rowIndex,
@@ -3566,7 +3566,7 @@ function renderTableElement(element, textStyle, options) {
3566
3566
  options?.onSelectCell?.({
3567
3567
  rowIndex: selectedCell.rowIndex,
3568
3568
  columnIndex: selectedCell.columnIndex,
3569
- selectedCells: chunkHYUJVSQJ_js.rectToCells(rect)
3569
+ selectedCells: chunk34UAGEJM_js.rectToCells(rect)
3570
3570
  });
3571
3571
  } else {
3572
3572
  options?.onSelectCell?.({
@@ -3625,23 +3625,23 @@ function renderTableElement(element, textStyle, options) {
3625
3625
  );
3626
3626
  }
3627
3627
  function partAttrs(part) {
3628
- return part ? chunkHYUJVSQJ_js.chartPartToAttrs(part) : void 0;
3628
+ return part ? chunk34UAGEJM_js.chartPartToAttrs(part) : void 0;
3629
3629
  }
3630
3630
  function resolveReactPalette(chartData) {
3631
3631
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
3632
3632
  return chartData.colorPalette;
3633
3633
  }
3634
- return [...chunkHYUJVSQJ_js.getChartStylePalette(chartData.style?.styleId)];
3634
+ return [...chunk34UAGEJM_js.getChartStylePalette(chartData.style?.styleId)];
3635
3635
  }
3636
3636
  function buildReactChartViewModel(element) {
3637
3637
  if (element.type !== "chart" || !element.chartData) {
3638
- return chunkHYUJVSQJ_js.buildChartViewModel(element);
3638
+ return chunk34UAGEJM_js.buildChartViewModel(element);
3639
3639
  }
3640
3640
  const palette = resolveReactPalette(element.chartData), themedElement = {
3641
3641
  ...element,
3642
3642
  chartData: { ...element.chartData, colorPalette: palette }
3643
3643
  };
3644
- return chunkHYUJVSQJ_js.buildChartViewModel(themedElement);
3644
+ return chunk34UAGEJM_js.buildChartViewModel(themedElement);
3645
3645
  }
3646
3646
  function renderPrimitive(prim, key) {
3647
3647
  switch (prim.kind) {
@@ -3788,7 +3788,7 @@ function renderText(t, key) {
3788
3788
  );
3789
3789
  }
3790
3790
  function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3791
- const legendItems = chunkHYUJVSQJ_js.computeChartLegendLayout(vm);
3791
+ const legendItems = chunk34UAGEJM_js.computeChartLegendLayout(vm);
3792
3792
  return /* @__PURE__ */ jsxRuntime.jsxs(
3793
3793
  "svg",
3794
3794
  {
@@ -3875,11 +3875,11 @@ function renderChartElement(element) {
3875
3875
  if (!chartData || chartData.series.length === 0) {
3876
3876
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: chunkU6A5FWWE_js.translationsEn["pptx.chart.heading"] });
3877
3877
  }
3878
- const kind = chunkHYUJVSQJ_js.resolveChartKind(chartData.chartType ?? "bar");
3878
+ const kind = chunk34UAGEJM_js.resolveChartKind(chartData.chartType ?? "bar");
3879
3879
  return renderChartViewModel(
3880
3880
  element.id,
3881
3881
  buildReactChartViewModel(element),
3882
- chunkHYUJVSQJ_js.chartPreserveAspectRatio(kind)
3882
+ chunk34UAGEJM_js.chartPreserveAspectRatio(kind)
3883
3883
  );
3884
3884
  }
3885
3885
 
@@ -3899,14 +3899,14 @@ function buildNotesPdf(pages) {
3899
3899
  notes: page.notes,
3900
3900
  slideNumber: page.slideNumber
3901
3901
  }));
3902
- const bytes = chunkHYUJVSQJ_js.buildNotesPdfBytes(images, meta);
3902
+ const bytes = chunk34UAGEJM_js.buildNotesPdfBytes(images, meta);
3903
3903
  const blob = new Blob([bytes], { type: "application/pdf" });
3904
3904
  return URL.createObjectURL(blob);
3905
3905
  }
3906
3906
 
3907
3907
  // src/viewer/utils/pdf-builder-slides.ts
3908
3908
  function buildPdfFromImageData(images) {
3909
- const bytes = chunkHYUJVSQJ_js.buildSlidesPdfBytes(images);
3909
+ const bytes = chunk34UAGEJM_js.buildSlidesPdfBytes(images);
3910
3910
  const blob = new Blob([bytes], { type: "application/pdf" });
3911
3911
  return URL.createObjectURL(blob);
3912
3912
  }
@@ -3915,7 +3915,7 @@ function buildPdfFromImageData(images) {
3915
3915
  var activePreview = null;
3916
3916
  function startPreviewAnimation(elementId, preset, options) {
3917
3917
  stopPreviewAnimation();
3918
- const descriptor = chunkHYUJVSQJ_js.buildPreviewAnimation(preset, options);
3918
+ const descriptor = chunk34UAGEJM_js.buildPreviewAnimation(preset, options);
3919
3919
  if (!descriptor) {
3920
3920
  return;
3921
3921
  }
@@ -3928,7 +3928,7 @@ function startMotionPathPreview(elementId, path, options) {
3928
3928
  return;
3929
3929
  }
3930
3930
  const stage = domEl.offsetParent;
3931
- const descriptor = chunkHYUJVSQJ_js.buildMotionPathPreview({
3931
+ const descriptor = chunk34UAGEJM_js.buildMotionPathPreview({
3932
3932
  path,
3933
3933
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
3934
3934
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,