pptx-react-viewer 2.20.3 → 2.20.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{AiChatPanel-ZSVNVRM5.js → AiChatPanel-C3PLXWFZ.js} +23 -23
  3. package/dist/AiChatPanel-C3PLXWFZ.js.br +0 -0
  4. package/dist/AiChatPanel-C3PLXWFZ.js.gz +0 -0
  5. package/dist/{AiChatPanel-NRWACXJ7.mjs → AiChatPanel-Y4BQX3TL.mjs} +3 -3
  6. package/dist/AiChatPanel-Y4BQX3TL.mjs.br +0 -0
  7. package/dist/AiChatPanel-Y4BQX3TL.mjs.gz +0 -0
  8. package/dist/{Model3DScene-IFYFOD6F.mjs → Model3DScene-QJL5F67G.mjs} +1 -1
  9. package/dist/Model3DScene-QJL5F67G.mjs.br +0 -0
  10. package/dist/Model3DScene-QJL5F67G.mjs.gz +0 -0
  11. package/dist/{Model3DScene-3HGARMTA.js → Model3DScene-Z4JPG2NB.js} +2 -2
  12. package/dist/Model3DScene-Z4JPG2NB.js.br +0 -0
  13. package/dist/Model3DScene-Z4JPG2NB.js.gz +0 -0
  14. package/dist/{chunk-LLZ25OVR.js → chunk-7HF5DSE4.js} +154 -148
  15. package/dist/chunk-7HF5DSE4.js.br +0 -0
  16. package/dist/chunk-7HF5DSE4.js.gz +0 -0
  17. package/dist/{chunk-RJ26DQIM.mjs → chunk-ADWJUL4F.mjs} +1 -1
  18. package/dist/chunk-ADWJUL4F.mjs.br +0 -0
  19. package/dist/{chunk-RJ26DQIM.mjs.gz → chunk-ADWJUL4F.mjs.gz} +0 -0
  20. package/dist/{chunk-4JENQPJ3.js → chunk-BDMESP3M.js} +1043 -1043
  21. package/dist/chunk-BDMESP3M.js.br +0 -0
  22. package/dist/chunk-BDMESP3M.js.gz +0 -0
  23. package/dist/{chunk-463BMH5Q.js → chunk-BKBYURH5.js} +383 -383
  24. package/dist/chunk-BKBYURH5.js.br +0 -0
  25. package/dist/chunk-BKBYURH5.js.gz +0 -0
  26. package/dist/{chunk-2MENHAYJ.mjs → chunk-HXFPEJA4.mjs} +434 -385
  27. package/dist/chunk-HXFPEJA4.mjs.br +0 -0
  28. package/dist/chunk-HXFPEJA4.mjs.gz +0 -0
  29. package/dist/{chunk-O5BR276S.mjs → chunk-JL3GWABW.mjs} +8 -2
  30. package/dist/chunk-JL3GWABW.mjs.br +0 -0
  31. package/dist/chunk-JL3GWABW.mjs.gz +0 -0
  32. package/dist/{chunk-QJJX2E6I.js → chunk-KEGEDUJV.js} +3 -3
  33. package/dist/chunk-KEGEDUJV.js.br +0 -0
  34. package/dist/chunk-KEGEDUJV.js.gz +0 -0
  35. package/dist/{chunk-YAKDNRU7.mjs → chunk-KXHYUJI7.mjs} +2 -2
  36. package/dist/chunk-KXHYUJI7.mjs.br +0 -0
  37. package/dist/chunk-KXHYUJI7.mjs.gz +0 -0
  38. package/dist/{chunk-4Z4HEIP5.js → chunk-LBSMBRSD.js} +434 -385
  39. package/dist/chunk-LBSMBRSD.js.br +0 -0
  40. package/dist/chunk-LBSMBRSD.js.gz +0 -0
  41. package/dist/{chunk-AD4LAXDJ.mjs → chunk-YHEASDGN.mjs} +7 -7
  42. package/dist/chunk-YHEASDGN.mjs.br +0 -0
  43. package/dist/chunk-YHEASDGN.mjs.gz +0 -0
  44. package/dist/index.js +45 -45
  45. package/dist/index.js.br +0 -0
  46. package/dist/index.js.gz +0 -0
  47. package/dist/index.mjs +5 -5
  48. package/dist/index.mjs.br +0 -0
  49. package/dist/index.mjs.gz +0 -0
  50. package/dist/internals.js +78 -78
  51. package/dist/internals.js.br +0 -0
  52. package/dist/internals.js.gz +0 -0
  53. package/dist/internals.mjs +3 -3
  54. package/dist/internals.mjs.br +0 -0
  55. package/dist/internals.mjs.gz +0 -0
  56. package/dist/viewer/index.js +26 -26
  57. package/dist/viewer/index.js.br +0 -0
  58. package/dist/viewer/index.js.gz +0 -0
  59. package/dist/viewer/index.mjs +5 -5
  60. package/dist/viewer/index.mjs.br +0 -0
  61. package/dist/viewer/index.mjs.gz +0 -0
  62. package/package.json +1 -1
  63. package/dist/AiChatPanel-NRWACXJ7.mjs.br +0 -0
  64. package/dist/AiChatPanel-NRWACXJ7.mjs.gz +0 -0
  65. package/dist/AiChatPanel-ZSVNVRM5.js.br +0 -0
  66. package/dist/AiChatPanel-ZSVNVRM5.js.gz +0 -0
  67. package/dist/Model3DScene-3HGARMTA.js.br +0 -0
  68. package/dist/Model3DScene-3HGARMTA.js.gz +0 -0
  69. package/dist/Model3DScene-IFYFOD6F.mjs.br +0 -0
  70. package/dist/Model3DScene-IFYFOD6F.mjs.gz +0 -0
  71. package/dist/chunk-2MENHAYJ.mjs.br +0 -0
  72. package/dist/chunk-2MENHAYJ.mjs.gz +0 -0
  73. package/dist/chunk-463BMH5Q.js.br +0 -0
  74. package/dist/chunk-463BMH5Q.js.gz +0 -0
  75. package/dist/chunk-4JENQPJ3.js.br +0 -0
  76. package/dist/chunk-4JENQPJ3.js.gz +0 -0
  77. package/dist/chunk-4Z4HEIP5.js.br +0 -0
  78. package/dist/chunk-4Z4HEIP5.js.gz +0 -0
  79. package/dist/chunk-AD4LAXDJ.mjs.br +0 -0
  80. package/dist/chunk-AD4LAXDJ.mjs.gz +0 -0
  81. package/dist/chunk-LLZ25OVR.js.br +0 -0
  82. package/dist/chunk-LLZ25OVR.js.gz +0 -0
  83. package/dist/chunk-O5BR276S.mjs.br +0 -0
  84. package/dist/chunk-O5BR276S.mjs.gz +0 -0
  85. package/dist/chunk-QJJX2E6I.js.br +0 -0
  86. package/dist/chunk-QJJX2E6I.js.gz +0 -0
  87. package/dist/chunk-RJ26DQIM.mjs.br +0 -0
  88. package/dist/chunk-YAKDNRU7.mjs.br +0 -0
  89. package/dist/chunk-YAKDNRU7.mjs.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk6CPUGAK7_js = require('./chunk-6CPUGAK7.js');
4
- var chunk4Z4HEIP5_js = require('./chunk-4Z4HEIP5.js');
4
+ var chunkLBSMBRSD_js = require('./chunk-LBSMBRSD.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 chunk4Z4HEIP5_js.getAnimationInitialStyle(preset, nativeAnimation);
18
+ return chunkLBSMBRSD_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 chunk4Z4HEIP5_js.cloneHistorySnapshot(snapshot);
26
+ return chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.VIEWER_SHORTCUT_REFERENCE;
64
+ var SHORTCUT_REFERENCE_ITEMS = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.SHAPE_PRESET_DEFS.map(
108
+ var SHAPE_PRESETS = chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
267
+ if (!chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
276
+ if (!chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.getRoundRectRadiusPx2(element);
285
+ const radiusPx = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.getResolvedShapeClipPath(element);
297
+ const clipPath = chunkLBSMBRSD_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
- ...chunk4Z4HEIP5_js.getImageFitStyle(element)
306
+ ...chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.isImageLikeElement(element)) {
319
+ if (!chunkLBSMBRSD_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 chunk4Z4HEIP5_js.getImageTilingStyle(element);
329
+ return chunkLBSMBRSD_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 chunk4Z4HEIP5_js.runMediaCommand(
529
+ return chunkLBSMBRSD_js.runMediaCommand(
530
530
  command,
531
- (targetId) => registry.get(targetId) ?? chunk4Z4HEIP5_js.findMediaElementByElementId(targetId, frameRoot?.())
531
+ (targetId) => registry.get(targetId) ?? chunkLBSMBRSD_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
- } = chunk4Z4HEIP5_js.mediaPlaybackAttributes({
575
+ } = chunkLBSMBRSD_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
- chunk4Z4HEIP5_js.registerPersistentAudio(
711
+ chunkLBSMBRSD_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
- ...{ [chunk4Z4HEIP5_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
809
+ ...{ [chunkLBSMBRSD_js.MEDIA_CHROME_ATTRIBUTE]: visual.badge },
810
810
  children: [
811
811
  /* @__PURE__ */ jsxRuntime.jsx(
812
812
  FallbackIcon,
813
813
  {
814
- paths: chunk4Z4HEIP5_js.mediaFallbackIcon(visual, element.mediaType),
814
+ paths: chunkLBSMBRSD_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(chunk4Z4HEIP5_js.mediaFallbackLabelKey(visual, element.mediaType)) })
819
+ isMissing && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white/60", children: label(chunkLBSMBRSD_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
- ...{ [chunk4Z4HEIP5_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
836
+ ...{ [chunkLBSMBRSD_js.MEDIA_CHROME_ATTRIBUTE]: visual.placeholder },
837
837
  children: [
838
838
  /* @__PURE__ */ jsxRuntime.jsx(
839
839
  FallbackIcon,
840
840
  {
841
- paths: chunk4Z4HEIP5_js.mediaFallbackIcon(visual, element.mediaType),
841
+ paths: chunkLBSMBRSD_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(chunk4Z4HEIP5_js.mediaFallbackLabelKey(visual, element.mediaType)) })
846
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] ${isMissing ? "text-white/50" : "text-white/70"}`, children: label(chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.mediaFallbackVisual(surface, {
856
+ const visual = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.mediaPlaybackAttributes(element).loop;
885
+ const shouldLoop = chunkLBSMBRSD_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 chunk4Z4HEIP5_js.buildTextBlockStyle(element, { fallbackColor });
968
+ return chunkLBSMBRSD_js.buildTextBlockStyle(element, { fallbackColor });
969
969
  }
970
970
 
971
971
  // src/viewer/utils/text-layout.tsx
972
972
  function getTextLayoutStyle(element) {
973
- if (!chunk4Z4HEIP5_js.hasTextProperties(element)) {
973
+ if (!chunkLBSMBRSD_js.hasTextProperties(element)) {
974
974
  return {};
975
975
  }
976
- const writingMode = chunk4Z4HEIP5_js.toCssWritingMode(element.textStyle?.textDirection);
977
- const textOrientation = chunk4Z4HEIP5_js.toCssTextOrientation(element.textStyle?.textDirection);
978
- const verticalDirection = chunk4Z4HEIP5_js.toCssVerticalDirection(element.textStyle?.textDirection);
976
+ const writingMode = chunkLBSMBRSD_js.toCssWritingMode(element.textStyle?.textDirection);
977
+ const textOrientation = chunkLBSMBRSD_js.toCssTextOrientation(element.textStyle?.textDirection);
978
+ const verticalDirection = chunkLBSMBRSD_js.toCssVerticalDirection(element.textStyle?.textDirection);
979
979
  const textWrapNone = element.textStyle?.textWrap === "none";
980
- const hasParagraphIndents = chunk4Z4HEIP5_js.hasTextProperties(element) && element.paragraphIndents && element.paragraphIndents.length > 0;
980
+ const hasParagraphIndents = chunkLBSMBRSD_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
- ...chunk4Z4HEIP5_js.buildTextBodyLayoutStyle(element),
989
+ ...chunkLBSMBRSD_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 chunk4Z4HEIP5_js.buildTextBody3DSceneStyle(textStyle);
1008
+ return chunkLBSMBRSD_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}${chunk4Z4HEIP5_js.TEXT_BUILD_ID_SEP}p${paraIndex}`;
1193
+ const paraKey = `${elementId}${chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.buildTextBuildSpec(
1199
+ const spec = chunkLBSMBRSD_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: chunk4Z4HEIP5_js.textBuildSpanStyle(span),
1217
+ style: chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.segmentByScript(text);
1361
+ const runs = chunkLBSMBRSD_js.segmentByScript(text);
1362
1362
  if (runs.length <= 1) {
1363
1363
  if (runs.length === 1) {
1364
- const font = chunk4Z4HEIP5_js.resolveFontForScript(runs[0].script, scriptFonts);
1364
+ const font = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.resolveFontForScript(run.script, scriptFonts);
1372
+ const font = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.splitRunForMetrics(text, metric.font);
1383
+ const pieces = chunkLBSMBRSD_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: chunk4Z4HEIP5_js.pieceLetterSpacing(metric.authoredPx, piece.tracking)
1392
+ letterSpacing: chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.convertOmmlToMathMl(equationXml);
1480
- const safeMathml = mathml ? chunk4Z4HEIP5_js.sanitizeMathMl(mathml) : "";
1479
+ const mathml = chunkLBSMBRSD_js.convertOmmlToMathMl(equationXml);
1480
+ const safeMathml = mathml ? chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.normalizeHexColor(
1540
+ const resolvedSegmentColor = chunkLBSMBRSD_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 * chunk4Z4HEIP5_js.resolveAutoFitFontScale(element.textStyle);
1548
+ const baseFontSize = rawFontSize * chunkLBSMBRSD_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 ? chunk4Z4HEIP5_js.getSubstituteFontFamily(
1553
+ const baseFontFamily = rawFontFamily ? chunkLBSMBRSD_js.getSubstituteFontFamily(
1554
1554
  rawFontFamily,
1555
- chunk4Z4HEIP5_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1555
+ chunkLBSMBRSD_js.parsePanoseString(segmentStyle.latinFontPanose ?? element.textStyle?.latinFontPanose)
1556
1556
  ) : DEFAULT_FONT_FAMILY2;
1557
- const scriptFont = (name, panose) => name ? chunk4Z4HEIP5_js.getSubstituteFontFamily(name, chunk4Z4HEIP5_js.parsePanoseString(panose)) : baseFontFamily;
1557
+ const scriptFont = (name, panose) => name ? chunkLBSMBRSD_js.getSubstituteFontFamily(name, chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.hasDistinctScriptFonts(scriptFonts);
1573
+ const needsScriptFonts = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.nestedTextDecorationStyle(run.style);
1581
+ const nestedStyle = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.pieceLetterSpacing(
1589
+ spanStyle.letterSpacing = chunkLBSMBRSD_js.pieceLetterSpacing(
1590
1590
  authoredLetterSpacing,
1591
- chunk4Z4HEIP5_js.resolveMetricTrackingPx(textValue, metricFont)
1591
+ chunkLBSMBRSD_js.resolveMetricTrackingPx(textValue, metricFont)
1592
1592
  );
1593
- const hollow = chunk4Z4HEIP5_js.hollowTextFillStyle(segmentStyle, {
1593
+ const hollow = chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasTextProperties(element)) {
1690
+ if (!chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.buildParagraphs(element, fieldContext, segmentOverrides);
1700
+ const paragraphs = chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.isImageLikeElement(element)) {
1833
+ if (!chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
1839
+ if (!chunkLBSMBRSD_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 ${chunk4Z4HEIP5_js.colorWithOpacity(
1851
- chunk4Z4HEIP5_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1850
+ return `${Math.round(offsetX)}px ${Math.round(offsetY)}px ${Math.round(blur)}px ${chunkLBSMBRSD_js.colorWithOpacity(
1851
+ chunkLBSMBRSD_js.normalizeHexColor(ss.lineShadowColor, "#000000"),
1852
1852
  opacity
1853
1853
  )}`;
1854
1854
  }
1855
1855
  function buildLineGlowFilter(element) {
1856
- if (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
1856
+ if (!chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.colorWithOpacity(chunk4Z4HEIP5_js.normalizeHexColor(ss.lineGlowColor, "#ffff00"), glowOpacity);
1865
+ const glowCol = chunkLBSMBRSD_js.colorWithOpacity(chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
1872
+ if (!chunkLBSMBRSD_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 chunk4Z4HEIP5_js.build3DExtrusionData(
1924
+ return chunkLBSMBRSD_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
- chunk4Z4HEIP5_js.apply3dEffects(base, scene3d, shape3d, fillColorFallback);
1933
+ chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
1941
+ if (!chunkLBSMBRSD_js.hasShapeProperties(element)) {
1942
1942
  return {};
1943
1943
  }
1944
1944
  const ss = element.shapeStyle;
1945
- const fill = animatesFill ? void 0 : chunk4Z4HEIP5_js.getComputedFillStyle(element, parentGroupFill);
1946
- const fx = chunk4Z4HEIP5_js.getComputedEffectStyle(element);
1947
- const stroke = chunk4Z4HEIP5_js.getComputedStrokeStyle(element);
1945
+ const fill = animatesFill ? void 0 : chunkLBSMBRSD_js.getComputedFillStyle(element, parentGroupFill);
1946
+ const fx = chunkLBSMBRSD_js.getComputedEffectStyle(element);
1947
+ const stroke = chunkLBSMBRSD_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) || chunk4Z4HEIP5_js.isStrokeOnlyPresetElement(element)) {
1982
+ if (rendersCustomVectorPath(element) || chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.resolveShapeGeometry(element);
1993
+ const geometry = chunkLBSMBRSD_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 chunk4Z4HEIP5_js.clampUnitInterval(direct / 1e5);
2019
+ return chunkLBSMBRSD_js.clampUnitInterval(direct / 1e5);
2020
2020
  }
2021
2021
  const fallbackKey = element.shapeAdjustments?.adj;
2022
2022
  if (typeof fallbackKey === "number" && Number.isFinite(fallbackKey)) {
2023
- return chunk4Z4HEIP5_js.clampUnitInterval(fallbackKey / 1e5);
2023
+ return chunkLBSMBRSD_js.clampUnitInterval(fallbackKey / 1e5);
2024
2024
  }
2025
- return chunk4Z4HEIP5_js.clampUnitInterval(fallback);
2025
+ return chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.hexToRgbChannels(hex);
2158
+ const channels = chunkLBSMBRSD_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" : chunk4Z4HEIP5_js.colorWithOpacity(adjustFillForMode(fillColor, subpath.fillMode), fillOpacity),
2184
+ fill: fillOff ? "none" : chunkLBSMBRSD_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: chunk4Z4HEIP5_js.svgLineCap(shapeStyle?.lineCap),
2200
+ lineCap: chunkLBSMBRSD_js.svgLineCap(shapeStyle?.lineCap),
2201
2201
  lineJoin,
2202
2202
  miterLimit,
2203
- offsets: chunk4Z4HEIP5_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2204
- widths: chunk4Z4HEIP5_js.getCompoundLineWidths(shapeStyle?.compoundLine, strokeWidth)
2203
+ offsets: chunkLBSMBRSD_js.getCompoundLineOffsets(shapeStyle?.compoundLine, strokeWidth),
2204
+ widths: chunkLBSMBRSD_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 ? chunk4Z4HEIP5_js.customGeometryPathsToSvgSubpaths(structuredPaths, pathWidth, pathHeight) : void 0;
2252
+ const subpaths = structuredPaths && structuredPaths.length > 0 ? chunkLBSMBRSD_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 ? chunk4Z4HEIP5_js.svgGradientFillRef(gradient) : void 0;
2254
+ const gradientPaint = gradient ? chunkLBSMBRSD_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 ?? chunk4Z4HEIP5_js.colorWithOpacity(fillColor, fillOpacity),
2286
+ fill: animatesFill ? "inherit" : gradientPaint ?? chunkLBSMBRSD_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 (!chunk4Z4HEIP5_js.hasShapeProperties(element)) {
2312
+ if (!chunkLBSMBRSD_js.hasShapeProperties(element)) {
2313
2313
  return null;
2314
2314
  }
2315
2315
  const normalizedType = (element.shapeType || "").toLowerCase();
2316
- const fillPaint = animatesFill ? "inherit" : chunk4Z4HEIP5_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2317
- const strokePaint = animatesStroke ? "inherit" : chunk4Z4HEIP5_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2318
- const dashType = chunk4Z4HEIP5_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2319
- const dashArray = chunk4Z4HEIP5_js.getSvgStrokeDasharray(
2316
+ const fillPaint = animatesFill ? "inherit" : chunkLBSMBRSD_js.colorWithOpacity(fillColor, element.shapeStyle?.fillOpacity);
2317
+ const strokePaint = animatesStroke ? "inherit" : chunkLBSMBRSD_js.colorWithOpacity(strokeColor, element.shapeStyle?.strokeOpacity);
2318
+ const dashType = chunkLBSMBRSD_js.normalizeStrokeDashType(element.shapeStyle?.strokeDash);
2319
+ const dashArray = chunkLBSMBRSD_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
- chunk4Z4HEIP5_js.buildSvgGradientDef(element.shapeStyle, element.id)
2400
+ chunkLBSMBRSD_js.buildSvgGradientDef(element.shapeStyle, element.id)
2401
2401
  );
2402
2402
  }
2403
- if (chunk4Z4HEIP5_js.isCalloutShape(normalizedType)) {
2403
+ if (chunkLBSMBRSD_js.isCalloutShape(normalizedType)) {
2404
2404
  const width = Math.max(element.width, 1);
2405
2405
  const height = Math.max(element.height, 1);
2406
- const geometry = chunk4Z4HEIP5_js.getCalloutLeaderLineGeometry(
2406
+ const geometry = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.buildCalloutLeaderLineSvgPath(geometry);
2414
- const bounds = chunk4Z4HEIP5_js.getCalloutViewBoxBounds(width, height, geometry);
2413
+ const leaderPath = chunkLBSMBRSD_js.buildCalloutLeaderLineSvgPath(geometry);
2414
+ const bounds = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.svgLineCap(element.shapeStyle?.lineCap);
2477
+ const connectorLineCap = chunkLBSMBRSD_js.svgLineCap(element.shapeStyle?.lineCap);
2478
2478
  const hitTargetWidth = Math.max(strokeWidth * 3, 12);
2479
- const offsets = chunk4Z4HEIP5_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2480
- const widths = chunk4Z4HEIP5_js.getCompoundLineWidths(compoundLine, strokeWidth);
2479
+ const offsets = chunkLBSMBRSD_js.getCompoundLineOffsets(compoundLine, strokeWidth);
2480
+ const widths = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.parseDrawingColor(gs) ?? "#888888";
2548
- const opacity = chunk4Z4HEIP5_js.parseDrawingColorOpacity(gs);
2549
- return { pos, color: chunk4Z4HEIP5_js.colorWithOpacity(color, opacity) };
2547
+ const color = chunkLBSMBRSD_js.parseDrawingColor(gs) ?? "#888888";
2548
+ const opacity = chunkLBSMBRSD_js.parseDrawingColorOpacity(gs);
2549
+ return { pos, color: chunkLBSMBRSD_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(chunk4Z4HEIP5_js.ooxmlGradientAngleToCssDegrees(angRaw / 6e4));
2555
+ const angleDeg = Math.round(chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2591
- const bgColor = chunk4Z4HEIP5_js.parseDrawingColor(pattFill["a:bgClr"]) ?? "#ffffff";
2590
+ const fgColor = chunkLBSMBRSD_js.parseDrawingColor(pattFill["a:fgClr"]) ?? "#000000";
2591
+ const bgColor = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.parseDrawingColor(ln["a:solidFill"]);
2702
+ const color = chunkLBSMBRSD_js.parseDrawingColor(ln["a:solidFill"]);
2703
2703
  if (color) {
2704
- const opacity = chunk4Z4HEIP5_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2704
+ const opacity = chunkLBSMBRSD_js.parseDrawingColorOpacity(ln["a:solidFill"]);
2705
2705
  const key = `${edge.prefix}`;
2706
- borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunk4Z4HEIP5_js.colorWithOpacity(color, opacity)}`;
2706
+ borderStyle[key] = `${widthPx}px ${cssBorderStyle} ${chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.parseDrawingColor(outerShdw);
2719
+ const shdwColor = chunkLBSMBRSD_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 = chunk4Z4HEIP5_js.parseDrawingColor(glow);
2737
+ const glowColor = chunkLBSMBRSD_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;
@@ -2790,7 +2790,8 @@ function parseParagraphAlignment(value) {
2790
2790
  return "left";
2791
2791
  }
2792
2792
  function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2793
- const cellStyle = { ...fallbackStyle };
2793
+ const { color: _fallbackColor, ...fallbackWithoutColor } = fallbackStyle;
2794
+ const cellStyle = { ...fallbackWithoutColor };
2794
2795
  const txBody = cellXml["a:txBody"];
2795
2796
  const paragraphs = ensureArrayValue(txBody?.["a:p"]);
2796
2797
  const firstParagraph = paragraphs[0];
@@ -2813,10 +2814,10 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2813
2814
  if (runProps?.["@_u"] !== void 0) {
2814
2815
  cellStyle.textDecorationLine = runProps["@_u"] === "sng" ? "underline" : "none";
2815
2816
  }
2816
- const runColor = chunk4Z4HEIP5_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunk4Z4HEIP5_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2817
+ const runColor = chunkLBSMBRSD_js.parseDrawingColor(runProps?.["a:solidFill"], schemeColorOverrides) || chunkLBSMBRSD_js.parseDrawingColor(runProps?.["a:highlight"], schemeColorOverrides);
2817
2818
  if (runColor) {
2818
- const opacity = chunk4Z4HEIP5_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2819
- cellStyle.color = chunk4Z4HEIP5_js.colorWithOpacity(runColor, opacity);
2819
+ const opacity = chunkLBSMBRSD_js.parseDrawingColorOpacity(runProps?.["a:solidFill"]);
2820
+ cellStyle.color = chunkLBSMBRSD_js.colorWithOpacity(runColor, opacity);
2820
2821
  }
2821
2822
  const fontFamily = runProps?.["a:latin"]?.["@_typeface"] || runProps?.["a:ea"]?.["@_typeface"] || runProps?.["a:cs"]?.["@_typeface"];
2822
2823
  if (fontFamily) {
@@ -2826,15 +2827,15 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2826
2827
  cellStyle.textAlign = parseParagraphAlignment(paragraphProperties["@_algn"]);
2827
2828
  }
2828
2829
  const cellProperties = cellXml["a:tcPr"];
2829
- const cellFill = chunk4Z4HEIP5_js.parseDrawingColor(
2830
+ const cellFill = chunkLBSMBRSD_js.parseDrawingColor(
2830
2831
  cellProperties?.["a:solidFill"],
2831
2832
  schemeColorOverrides
2832
2833
  );
2833
2834
  if (cellFill) {
2834
- const opacity = chunk4Z4HEIP5_js.parseDrawingColorOpacity(
2835
+ const opacity = chunkLBSMBRSD_js.parseDrawingColorOpacity(
2835
2836
  cellProperties?.["a:solidFill"]
2836
2837
  );
2837
- cellStyle.backgroundColor = chunk4Z4HEIP5_js.colorWithOpacity(cellFill, opacity);
2838
+ cellStyle.backgroundColor = chunkLBSMBRSD_js.colorWithOpacity(cellFill, opacity);
2838
2839
  } else {
2839
2840
  const gradCss = parseGradientFillCss(cellProperties?.["a:gradFill"]);
2840
2841
  if (gradCss) {
@@ -2849,16 +2850,16 @@ function extractTableCellStyle(cellXml, fallbackStyle, schemeColorOverrides) {
2849
2850
  const edgeBorders = parseCellBorders(cellProperties);
2850
2851
  Object.assign(cellStyle, edgeBorders);
2851
2852
  if (!cellStyle.borderLeftColor && !cellStyle.borderRightColor && !cellStyle.borderTopColor && !cellStyle.borderBottomColor) {
2852
- const borderColor = chunk4Z4HEIP5_js.parseDrawingColor(
2853
+ const borderColor = chunkLBSMBRSD_js.parseDrawingColor(
2853
2854
  cellProperties?.["a:lnL"]?.["a:solidFill"],
2854
2855
  schemeColorOverrides
2855
- ) || chunk4Z4HEIP5_js.parseDrawingColor(
2856
+ ) || chunkLBSMBRSD_js.parseDrawingColor(
2856
2857
  cellProperties?.["a:lnR"]?.["a:solidFill"],
2857
2858
  schemeColorOverrides
2858
- ) || chunk4Z4HEIP5_js.parseDrawingColor(
2859
+ ) || chunkLBSMBRSD_js.parseDrawingColor(
2859
2860
  cellProperties?.["a:lnT"]?.["a:solidFill"],
2860
2861
  schemeColorOverrides
2861
- ) || chunk4Z4HEIP5_js.parseDrawingColor(
2862
+ ) || chunkLBSMBRSD_js.parseDrawingColor(
2862
2863
  cellProperties?.["a:lnB"]?.["a:solidFill"],
2863
2864
  schemeColorOverrides
2864
2865
  );
@@ -2930,7 +2931,7 @@ function getTableCellBandStyle2(element, rowIndex, cellIndex, rowCount, columnCo
2930
2931
  if (element.type !== "table") {
2931
2932
  return void 0;
2932
2933
  }
2933
- return chunk4Z4HEIP5_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2934
+ return chunkLBSMBRSD_js.getTableCellBandStyle(element.tableData, rowIndex, cellIndex, rowCount, columnCount, {
2934
2935
  tableStyleMap: styleCtx?.tableStyleMap,
2935
2936
  colorScheme: styleCtx?.theme?.colorScheme,
2936
2937
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3006,7 +3007,7 @@ function renderTableCellContent(cell, fallbackText) {
3006
3007
  return /* @__PURE__ */ jsxRuntime.jsx(
3007
3008
  "span",
3008
3009
  {
3009
- style: { position: "relative", ...chunk4Z4HEIP5_js.cellRunStyle(run) },
3010
+ style: { position: "relative", ...chunkLBSMBRSD_js.cellRunStyle(run) },
3010
3011
  children: run.text
3011
3012
  },
3012
3013
  `r-${index}`
@@ -3014,7 +3015,7 @@ function renderTableCellContent(cell, fallbackText) {
3014
3015
  });
3015
3016
  }
3016
3017
  function getCellDiagonalBorders2(style, tableData, pos, styleCtx) {
3017
- return chunk4Z4HEIP5_js.getCellDiagonalBorders(style, tableData, pos, {
3018
+ return chunkLBSMBRSD_js.getCellDiagonalBorders(style, tableData, pos, {
3018
3019
  tableStyleMap: styleCtx?.tableStyleMap,
3019
3020
  colorScheme: styleCtx?.theme?.colorScheme,
3020
3021
  fontScheme: styleCtx?.theme?.fontScheme
@@ -3147,7 +3148,7 @@ function TableResizeOverlay({
3147
3148
  const containerRef = React6.useRef(null);
3148
3149
  const [rowBounds, setRowBounds] = React6.useState([]);
3149
3150
  const dragRef = React6.useRef(null);
3150
- const colBoundaries = React6.useMemo(() => chunk4Z4HEIP5_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3151
+ const colBoundaries = React6.useMemo(() => chunkLBSMBRSD_js.computeColumnBoundaries(columnWidths), [columnWidths]);
3151
3152
  const measureRows = React6.useCallback(() => {
3152
3153
  const container = containerRef.current;
3153
3154
  if (!container) {
@@ -3194,11 +3195,11 @@ function TableResizeOverlay({
3194
3195
  const rect = containerRef.current.getBoundingClientRect();
3195
3196
  if (drag.type === "col" && drag.initialWidths && onResizeColumns) {
3196
3197
  const deltaProp = (e.clientX - drag.startPos) / rect.width;
3197
- onResizeColumns(chunk4Z4HEIP5_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3198
+ onResizeColumns(chunkLBSMBRSD_js.computeResizedColumnWidths(drag.initialWidths, drag.index, deltaProp));
3198
3199
  } else if (drag.type === "row" && onResizeRow) {
3199
3200
  const deltaY = e.clientY - drag.startPos;
3200
- const newHeight = chunk4Z4HEIP5_js.computeResizedRowHeight(
3201
- drag.initialRowHeight ?? chunk4Z4HEIP5_js.DEFAULT_ROW_HEIGHT,
3201
+ const newHeight = chunkLBSMBRSD_js.computeResizedRowHeight(
3202
+ drag.initialRowHeight ?? chunkLBSMBRSD_js.DEFAULT_ROW_HEIGHT,
3202
3203
  deltaY
3203
3204
  );
3204
3205
  onResizeRow(drag.index, newHeight);
@@ -3236,7 +3237,7 @@ function TableResizeOverlay({
3236
3237
  e.stopPropagation();
3237
3238
  const table = containerRef.current?.querySelector("table");
3238
3239
  const tr = table?.querySelectorAll("tbody > tr")[index];
3239
- const actualHeight = tr?.offsetHeight ?? chunk4Z4HEIP5_js.DEFAULT_ROW_HEIGHT;
3240
+ const actualHeight = tr?.offsetHeight ?? chunkLBSMBRSD_js.DEFAULT_ROW_HEIGHT;
3240
3241
  document.body.style.cursor = "row-resize";
3241
3242
  document.body.style.userSelect = "none";
3242
3243
  dragRef.current = {
@@ -3283,7 +3284,7 @@ function renderTableFromTableData(element, textStyle, options) {
3283
3284
  colorScheme: options?.styleCtx?.theme?.colorScheme,
3284
3285
  fontScheme: options?.styleCtx?.theme?.fontScheme
3285
3286
  };
3286
- const cellCss = (cell, rowIndex, cellIndex) => chunk4Z4HEIP5_js.tableCellCss(
3287
+ const cellCss = (cell, rowIndex, cellIndex) => chunkLBSMBRSD_js.tableCellCss(
3287
3288
  tableData,
3288
3289
  cell,
3289
3290
  { rowIndex, cellIndex, rowCount, columnCount },
@@ -3296,7 +3297,7 @@ function renderTableFromTableData(element, textStyle, options) {
3296
3297
  }
3297
3298
  const first = selectedCell.selectedCells[0];
3298
3299
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3299
- return chunk4Z4HEIP5_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3300
+ return chunkLBSMBRSD_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableData);
3300
3301
  })();
3301
3302
  return /* @__PURE__ */ jsxRuntime.jsx(
3302
3303
  TableResizeOverlay,
@@ -3317,9 +3318,9 @@ function renderTableFromTableData(element, textStyle, options) {
3317
3318
  {
3318
3319
  className: "w-full h-full border-collapse table-fixed",
3319
3320
  style: {
3320
- fontFamily: chunk4Z4HEIP5_js.DEFAULT_FONT_FAMILY,
3321
+ fontFamily: chunkLBSMBRSD_js.DEFAULT_FONT_FAMILY,
3321
3322
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3322
- ...chunk4Z4HEIP5_js.tableContainerCss(tableData)
3323
+ ...chunkLBSMBRSD_js.tableContainerCss(tableData)
3323
3324
  },
3324
3325
  children: [
3325
3326
  tableData.columnWidths.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: tableData.columnWidths.map((w, ci) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3338,7 +3339,7 @@ function renderTableFromTableData(element, textStyle, options) {
3338
3339
  return null;
3339
3340
  }
3340
3341
  const isCellSelected = selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex;
3341
- const isInMultiSelection = chunk4Z4HEIP5_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3342
+ const isInMultiSelection = chunkLBSMBRSD_js.isCellInRect(rowIndex, cellIndex, selectionRect);
3342
3343
  const isCellEditing = isCellSelected && selectedCell?.isEditing;
3343
3344
  const diag = getCellDiagonalBorders2(
3344
3345
  cell.style,
@@ -3367,7 +3368,7 @@ function renderTableFromTableData(element, textStyle, options) {
3367
3368
  }
3368
3369
  event.stopPropagation();
3369
3370
  if (event.shiftKey && selectedCell) {
3370
- const rect = chunk4Z4HEIP5_js.computeSelectionRect(
3371
+ const rect = chunkLBSMBRSD_js.computeSelectionRect(
3371
3372
  selectedCell.rowIndex,
3372
3373
  selectedCell.columnIndex,
3373
3374
  rowIndex,
@@ -3377,7 +3378,7 @@ function renderTableFromTableData(element, textStyle, options) {
3377
3378
  options?.onSelectCell?.({
3378
3379
  rowIndex: selectedCell.rowIndex,
3379
3380
  columnIndex: selectedCell.columnIndex,
3380
- selectedCells: chunk4Z4HEIP5_js.rectToCells(rect)
3381
+ selectedCells: chunkLBSMBRSD_js.rectToCells(rect)
3381
3382
  });
3382
3383
  } else {
3383
3384
  options?.onSelectCell?.({
@@ -3453,7 +3454,7 @@ function renderTableElement(element, textStyle, options) {
3453
3454
  }
3454
3455
  const first = selectedCell.selectedCells[0];
3455
3456
  const last = selectedCell.selectedCells[selectedCell.selectedCells.length - 1];
3456
- return chunk4Z4HEIP5_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3457
+ return chunkLBSMBRSD_js.computeSelectionRect(first.row, first.col, last.row, last.col, tableEl.tableData);
3457
3458
  })();
3458
3459
  const schemeOverrides = options?.styleCtx?.theme?.colorScheme ? options.styleCtx.theme.colorScheme : void 0;
3459
3460
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3475,9 +3476,9 @@ function renderTableElement(element, textStyle, options) {
3475
3476
  {
3476
3477
  className: "w-full h-full border-collapse table-fixed",
3477
3478
  style: {
3478
- fontFamily: chunk4Z4HEIP5_js.DEFAULT_FONT_FAMILY,
3479
+ fontFamily: chunkLBSMBRSD_js.DEFAULT_FONT_FAMILY,
3479
3480
  // `a:tblPr@rtl` mirrors the column order for RTL decks.
3480
- ...chunk4Z4HEIP5_js.tableContainerCss(tableEl.tableData)
3481
+ ...chunkLBSMBRSD_js.tableContainerCss(tableEl.tableData)
3481
3482
  },
3482
3483
  children: [
3483
3484
  parsedTable.columnPercentages.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("colgroup", { children: parsedTable.columnPercentages.map((percentage, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -3527,9 +3528,14 @@ function renderTableElement(element, textStyle, options) {
3527
3528
  options?.styleCtx
3528
3529
  );
3529
3530
  const mergedStyle = {
3531
+ // Lowest-priority fallback: `xmlCellStyle` never carries a
3532
+ // `color` of its own (see `extractTableCellStyle`), so this
3533
+ // is the only source when neither the table style band nor
3534
+ // an explicit run/cell colour applies.
3535
+ color: textStyle.color,
3530
3536
  ...bandStyle,
3531
3537
  ...xmlCellStyle,
3532
- ...tdCellOverride ? chunk4Z4HEIP5_js.cellStyleToCss(tdCellOverride) : void 0,
3538
+ ...tdCellOverride ? chunkLBSMBRSD_js.cellStyleToCss(tdCellOverride) : void 0,
3533
3539
  ...diag ? { position: "relative" } : void 0
3534
3540
  };
3535
3541
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3539,7 +3545,7 @@ function renderTableElement(element, textStyle, options) {
3539
3545
  "border px-1 py-0.5 align-top",
3540
3546
  isEditable && hasCellSelectionHandler ? "border-blue-200/70 cursor-cell" : "border-white/30",
3541
3547
  selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex ? "ring-1 ring-inset ring-blue-500" : null,
3542
- chunk4Z4HEIP5_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
+ chunkLBSMBRSD_js.isCellInRect(rowIndex, cellIndex, xmlSelectionRect) && !(selectedCell?.rowIndex === rowIndex && selectedCell?.columnIndex === cellIndex) ? "bg-blue-500/15 ring-1 ring-inset ring-blue-400/50" : null
3543
3549
  ),
3544
3550
  colSpan,
3545
3551
  rowSpan: rSpan,
@@ -3550,7 +3556,7 @@ function renderTableElement(element, textStyle, options) {
3550
3556
  }
3551
3557
  event.stopPropagation();
3552
3558
  if (event.shiftKey && selectedCell && tableEl.tableData) {
3553
- const rect = chunk4Z4HEIP5_js.computeSelectionRect(
3559
+ const rect = chunkLBSMBRSD_js.computeSelectionRect(
3554
3560
  selectedCell.rowIndex,
3555
3561
  selectedCell.columnIndex,
3556
3562
  rowIndex,
@@ -3560,7 +3566,7 @@ function renderTableElement(element, textStyle, options) {
3560
3566
  options?.onSelectCell?.({
3561
3567
  rowIndex: selectedCell.rowIndex,
3562
3568
  columnIndex: selectedCell.columnIndex,
3563
- selectedCells: chunk4Z4HEIP5_js.rectToCells(rect)
3569
+ selectedCells: chunkLBSMBRSD_js.rectToCells(rect)
3564
3570
  });
3565
3571
  } else {
3566
3572
  options?.onSelectCell?.({
@@ -3619,23 +3625,23 @@ function renderTableElement(element, textStyle, options) {
3619
3625
  );
3620
3626
  }
3621
3627
  function partAttrs(part) {
3622
- return part ? chunk4Z4HEIP5_js.chartPartToAttrs(part) : void 0;
3628
+ return part ? chunkLBSMBRSD_js.chartPartToAttrs(part) : void 0;
3623
3629
  }
3624
3630
  function resolveReactPalette(chartData) {
3625
3631
  if (chartData.colorPalette && chartData.colorPalette.length > 0) {
3626
3632
  return chartData.colorPalette;
3627
3633
  }
3628
- return [...chunk4Z4HEIP5_js.getChartStylePalette(chartData.style?.styleId)];
3634
+ return [...chunkLBSMBRSD_js.getChartStylePalette(chartData.style?.styleId)];
3629
3635
  }
3630
3636
  function buildReactChartViewModel(element) {
3631
3637
  if (element.type !== "chart" || !element.chartData) {
3632
- return chunk4Z4HEIP5_js.buildChartViewModel(element);
3638
+ return chunkLBSMBRSD_js.buildChartViewModel(element);
3633
3639
  }
3634
3640
  const palette = resolveReactPalette(element.chartData), themedElement = {
3635
3641
  ...element,
3636
3642
  chartData: { ...element.chartData, colorPalette: palette }
3637
3643
  };
3638
- return chunk4Z4HEIP5_js.buildChartViewModel(themedElement);
3644
+ return chunkLBSMBRSD_js.buildChartViewModel(themedElement);
3639
3645
  }
3640
3646
  function renderPrimitive(prim, key) {
3641
3647
  switch (prim.kind) {
@@ -3782,7 +3788,7 @@ function renderText(t, key) {
3782
3788
  );
3783
3789
  }
3784
3790
  function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3785
- const legendItems = chunk4Z4HEIP5_js.computeChartLegendLayout(vm);
3791
+ const legendItems = chunkLBSMBRSD_js.computeChartLegendLayout(vm);
3786
3792
  return /* @__PURE__ */ jsxRuntime.jsxs(
3787
3793
  "svg",
3788
3794
  {
@@ -3869,11 +3875,11 @@ function renderChartElement(element) {
3869
3875
  if (!chartData || chartData.series.length === 0) {
3870
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: chunk6CPUGAK7_js.translationsEn["pptx.chart.heading"] });
3871
3877
  }
3872
- const kind = chunk4Z4HEIP5_js.resolveChartKind(chartData.chartType ?? "bar");
3878
+ const kind = chunkLBSMBRSD_js.resolveChartKind(chartData.chartType ?? "bar");
3873
3879
  return renderChartViewModel(
3874
3880
  element.id,
3875
3881
  buildReactChartViewModel(element),
3876
- chunk4Z4HEIP5_js.chartPreserveAspectRatio(kind)
3882
+ chunkLBSMBRSD_js.chartPreserveAspectRatio(kind)
3877
3883
  );
3878
3884
  }
3879
3885
 
@@ -3893,14 +3899,14 @@ function buildNotesPdf(pages) {
3893
3899
  notes: page.notes,
3894
3900
  slideNumber: page.slideNumber
3895
3901
  }));
3896
- const bytes = chunk4Z4HEIP5_js.buildNotesPdfBytes(images, meta);
3902
+ const bytes = chunkLBSMBRSD_js.buildNotesPdfBytes(images, meta);
3897
3903
  const blob = new Blob([bytes], { type: "application/pdf" });
3898
3904
  return URL.createObjectURL(blob);
3899
3905
  }
3900
3906
 
3901
3907
  // src/viewer/utils/pdf-builder-slides.ts
3902
3908
  function buildPdfFromImageData(images) {
3903
- const bytes = chunk4Z4HEIP5_js.buildSlidesPdfBytes(images);
3909
+ const bytes = chunkLBSMBRSD_js.buildSlidesPdfBytes(images);
3904
3910
  const blob = new Blob([bytes], { type: "application/pdf" });
3905
3911
  return URL.createObjectURL(blob);
3906
3912
  }
@@ -3909,7 +3915,7 @@ function buildPdfFromImageData(images) {
3909
3915
  var activePreview = null;
3910
3916
  function startPreviewAnimation(elementId, preset, options) {
3911
3917
  stopPreviewAnimation();
3912
- const descriptor = chunk4Z4HEIP5_js.buildPreviewAnimation(preset, options);
3918
+ const descriptor = chunkLBSMBRSD_js.buildPreviewAnimation(preset, options);
3913
3919
  if (!descriptor) {
3914
3920
  return;
3915
3921
  }
@@ -3922,7 +3928,7 @@ function startMotionPathPreview(elementId, path, options) {
3922
3928
  return;
3923
3929
  }
3924
3930
  const stage = domEl.offsetParent;
3925
- const descriptor = chunk4Z4HEIP5_js.buildMotionPathPreview({
3931
+ const descriptor = chunkLBSMBRSD_js.buildMotionPathPreview({
3926
3932
  path,
3927
3933
  slideWidth: stage?.offsetWidth || DEFAULT_PREVIEW_SLIDE_WIDTH,
3928
3934
  slideHeight: stage?.offsetHeight || DEFAULT_PREVIEW_SLIDE_HEIGHT,